aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.mailmap2
-rw-r--r--Documentation/ABI/testing/sysfs-firmware-sgi_uv27
-rw-r--r--Documentation/ABI/testing/sysfs-gpio26
-rw-r--r--Documentation/DMA-mapping.txt2
-rw-r--r--Documentation/HOWTO3
-rw-r--r--Documentation/SubmitChecklist2
-rw-r--r--Documentation/cpusets.txt18
-rw-r--r--Documentation/dontdiff2
-rw-r--r--Documentation/feature-removal-schedule.txt8
-rw-r--r--Documentation/filesystems/Locking15
-rw-r--r--Documentation/filesystems/ext4.txt6
-rw-r--r--Documentation/filesystems/ntfs.txt4
-rw-r--r--Documentation/filesystems/proc.txt21
-rw-r--r--Documentation/ioctl/cdrom.txt4
-rw-r--r--Documentation/ja_JP/HOWTO67
-rw-r--r--Documentation/ja_JP/SubmitChecklist111
-rw-r--r--Documentation/kernel-parameters.txt9
-rw-r--r--Documentation/laptops/thinkpad-acpi.txt11
-rw-r--r--Documentation/lguest/lguest.c8
-rw-r--r--Documentation/sysctl/kernel.txt7
-rw-r--r--Documentation/usb/anchors.txt12
-rw-r--r--Documentation/video4linux/CARDLIST.au08281
-rw-r--r--Documentation/video4linux/gspca.txt29
-rw-r--r--MAINTAINERS207
-rw-r--r--Makefile2
-rw-r--r--arch/alpha/kernel/osf_sys.c19
-rw-r--r--arch/arm/Kconfig5
-rw-r--r--arch/arm/configs/ams_delta_defconfig1314
-rw-r--r--arch/arm/configs/n770_defconfig1421
-rw-r--r--arch/arm/configs/omap_2430sdp_defconfig1304
-rw-r--r--arch/arm/configs/omap_apollon_2420_defconfig962
-rw-r--r--arch/arm/configs/omap_generic_1510_defconfig1172
-rw-r--r--arch/arm/configs/omap_generic_1610_defconfig1178
-rw-r--r--arch/arm/configs/omap_generic_1710_defconfig1088
-rw-r--r--arch/arm/configs/omap_generic_2420_defconfig655
-rw-r--r--arch/arm/configs/omap_h2_1610_defconfig509
-rw-r--r--arch/arm/configs/omap_h4_2420_defconfig1120
-rw-r--r--arch/arm/configs/omap_innovator_1510_defconfig1253
-rw-r--r--arch/arm/configs/omap_innovator_1610_defconfig839
-rw-r--r--arch/arm/configs/omap_osk_5912_defconfig169
-rw-r--r--arch/arm/configs/omap_perseus2_730_defconfig928
-rw-r--r--arch/arm/configs/orion5x_defconfig146
-rw-r--r--arch/arm/configs/palmte_defconfig761
-rw-r--r--arch/arm/configs/palmtt_defconfig844
-rw-r--r--arch/arm/configs/palmz71_defconfig891
-rw-r--r--arch/arm/configs/sx1_defconfig1118
-rw-r--r--arch/arm/include/asm/io.h5
-rw-r--r--arch/arm/include/asm/mach/map.h14
-rw-r--r--arch/arm/include/asm/pci.h2
-rw-r--r--arch/arm/kernel/kgdb.c2
-rw-r--r--arch/arm/lib/sha1.S2
-rw-r--r--arch/arm/mach-davinci/psc.c3
-rw-r--r--arch/arm/mach-footbridge/time.c18
-rw-r--r--arch/arm/mach-integrator/impd1.c2
-rw-r--r--arch/arm/mach-ixp4xx/fsg-setup.c4
-rw-r--r--arch/arm/mach-mx3/pcm037.c2
-rw-r--r--arch/arm/mach-omap1/mcbsp.c8
-rw-r--r--arch/arm/mach-omap2/board-2430sdp.c2
-rw-r--r--arch/arm/mach-omap2/mcbsp.c4
-rw-r--r--arch/arm/mach-orion5x/common.h1
-rw-r--r--arch/arm/mach-orion5x/dns323-setup.c6
-rw-r--r--arch/arm/mach-orion5x/kurobox_pro-setup.c4
-rw-r--r--arch/arm/mach-orion5x/pci.c13
-rw-r--r--arch/arm/mach-orion5x/ts209-setup.c9
-rw-r--r--arch/arm/mach-orion5x/ts409-setup.c9
-rw-r--r--arch/arm/mach-pxa/clock.c25
-rw-r--r--arch/arm/mach-pxa/clock.h5
-rw-r--r--arch/arm/mach-pxa/corgi.c2
-rw-r--r--arch/arm/mach-pxa/eseries.c170
-rw-r--r--arch/arm/mach-pxa/include/mach/irqs.h1
-rw-r--r--arch/arm/mach-pxa/lubbock.c2
-rw-r--r--arch/arm/mach-pxa/poodle.c2
-rw-r--r--arch/arm/mach-pxa/pxa25x.c10
-rw-r--r--arch/arm/mach-pxa/pxa300.c2
-rw-r--r--arch/arm/mach-pxa/spitz.c2
-rw-r--r--arch/arm/mach-pxa/time.c2
-rw-r--r--arch/arm/mach-pxa/tosa.c11
-rw-r--r--arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h10
-rw-r--r--arch/arm/mach-s3c2410/nor-simtec.c3
-rw-r--r--arch/arm/mach-s3c2412/mach-jive.c2
-rw-r--r--arch/arm/mach-sa1100/generic.c2
-rw-r--r--arch/arm/mach-sa1100/include/mach/jornada720.h11
-rw-r--r--arch/arm/mach-sa1100/jornada720_ssp.c10
-rw-r--r--arch/arm/mach-versatile/core.c2
-rw-r--r--arch/arm/mm/mmu.c20
-rw-r--r--arch/arm/plat-mxc/clock.c1
-rw-r--r--arch/arm/plat-omap/clock.c1
-rw-r--r--arch/arm/plat-omap/devices.c110
-rw-r--r--arch/arm/plat-omap/gpio.c2
-rw-r--r--arch/arm/plat-omap/include/mach/mcbsp.h2
-rw-r--r--arch/arm/plat-omap/mcbsp.c5
-rw-r--r--arch/arm/plat-s3c24xx/gpiolib.c12
-rw-r--r--arch/arm/plat-s3c24xx/pwm-clock.c6
-rw-r--r--arch/arm/plat-s3c24xx/pwm.c5
-rw-r--r--arch/avr32/boards/atstk1000/atstk1002.c2
-rw-r--r--arch/avr32/boot/images/.gitignore4
-rw-r--r--arch/avr32/kernel/.gitignore1
-rw-r--r--arch/avr32/kernel/asm-offsets.c6
-rw-r--r--arch/avr32/kernel/avr32_ksyms.c1
-rw-r--r--arch/avr32/kernel/entry-avr32b.S59
-rw-r--r--arch/avr32/kernel/syscall-stubs.S9
-rw-r--r--arch/avr32/kernel/syscall_table.S2
-rw-r--r--arch/avr32/kernel/traps.c8
-rw-r--r--arch/avr32/lib/findbit.S30
-rw-r--r--arch/avr32/mach-at32ap/pm-at32ap700x.S2
-rw-r--r--arch/blackfin/Kconfig1
-rw-r--r--arch/blackfin/Makefile26
-rw-r--r--arch/blackfin/include/asm/.gitignore (renamed from include/asm-blackfin/.gitignore)0
-rw-r--r--arch/blackfin/include/asm/Kbuild (renamed from include/asm-blackfin/Kbuild)0
-rw-r--r--arch/blackfin/include/asm/a.out.h (renamed from include/asm-blackfin/a.out.h)0
-rw-r--r--arch/blackfin/include/asm/atomic.h (renamed from include/asm-blackfin/atomic.h)0
-rw-r--r--arch/blackfin/include/asm/auxvec.h (renamed from include/asm-blackfin/auxvec.h)0
-rw-r--r--arch/blackfin/include/asm/bfin-global.h (renamed from include/asm-blackfin/bfin-global.h)0
-rw-r--r--arch/blackfin/include/asm/bfin5xx_spi.h (renamed from include/asm-blackfin/bfin5xx_spi.h)0
-rw-r--r--arch/blackfin/include/asm/bfin_simple_timer.h (renamed from include/asm-blackfin/bfin_simple_timer.h)0
-rw-r--r--arch/blackfin/include/asm/bfin_sport.h (renamed from include/asm-blackfin/bfin_sport.h)0
-rw-r--r--arch/blackfin/include/asm/bitops.h (renamed from include/asm-blackfin/bitops.h)0
-rw-r--r--arch/blackfin/include/asm/blackfin.h (renamed from include/asm-blackfin/blackfin.h)4
-rw-r--r--arch/blackfin/include/asm/bug.h (renamed from include/asm-blackfin/bug.h)0
-rw-r--r--arch/blackfin/include/asm/bugs.h (renamed from include/asm-blackfin/bugs.h)0
-rw-r--r--arch/blackfin/include/asm/byteorder.h (renamed from include/asm-blackfin/byteorder.h)0
-rw-r--r--arch/blackfin/include/asm/cache.h (renamed from include/asm-blackfin/cache.h)0
-rw-r--r--arch/blackfin/include/asm/cacheflush.h (renamed from include/asm-blackfin/cacheflush.h)0
-rw-r--r--arch/blackfin/include/asm/cdef_LPBlackfin.h (renamed from include/asm-blackfin/mach-common/cdef_LPBlackfin.h)2
-rw-r--r--arch/blackfin/include/asm/checksum.h (renamed from include/asm-blackfin/checksum.h)0
-rw-r--r--arch/blackfin/include/asm/clocks.h (renamed from include/asm-blackfin/mach-common/clocks.h)0
-rw-r--r--arch/blackfin/include/asm/context.S (renamed from include/asm-blackfin/mach-common/context.S)0
-rw-r--r--arch/blackfin/include/asm/cplb-mpu.h (renamed from include/asm-blackfin/cplb-mpu.h)0
-rw-r--r--arch/blackfin/include/asm/cplb.h (renamed from include/asm-blackfin/cplb.h)2
-rw-r--r--arch/blackfin/include/asm/cplbinit.h (renamed from include/asm-blackfin/cplbinit.h)0
-rw-r--r--arch/blackfin/include/asm/cpumask.h (renamed from include/asm-blackfin/cpumask.h)0
-rw-r--r--arch/blackfin/include/asm/cputime.h (renamed from include/asm-blackfin/cputime.h)0
-rw-r--r--arch/blackfin/include/asm/current.h (renamed from include/asm-blackfin/current.h)0
-rw-r--r--arch/blackfin/include/asm/def_LPBlackfin.h (renamed from include/asm-blackfin/mach-common/def_LPBlackfin.h)2
-rw-r--r--arch/blackfin/include/asm/delay.h (renamed from include/asm-blackfin/delay.h)2
-rw-r--r--arch/blackfin/include/asm/device.h (renamed from include/asm-blackfin/device.h)0
-rw-r--r--arch/blackfin/include/asm/div64.h (renamed from include/asm-blackfin/div64.h)0
-rw-r--r--arch/blackfin/include/asm/dma-mapping.h (renamed from include/asm-blackfin/dma-mapping.h)0
-rw-r--r--arch/blackfin/include/asm/dma.h (renamed from include/asm-blackfin/dma.h)2
-rw-r--r--arch/blackfin/include/asm/dpmc.h (renamed from include/asm-blackfin/dpmc.h)0
-rw-r--r--arch/blackfin/include/asm/early_printk.h (renamed from include/asm-blackfin/early_printk.h)0
-rw-r--r--arch/blackfin/include/asm/elf.h (renamed from include/asm-blackfin/elf.h)0
-rw-r--r--arch/blackfin/include/asm/emergency-restart.h (renamed from include/asm-blackfin/emergency-restart.h)0
-rw-r--r--arch/blackfin/include/asm/entry.h (renamed from include/asm-blackfin/entry.h)0
-rw-r--r--arch/blackfin/include/asm/errno.h (renamed from include/asm-blackfin/errno.h)0
-rw-r--r--arch/blackfin/include/asm/fb.h (renamed from include/asm-blackfin/fb.h)0
-rw-r--r--arch/blackfin/include/asm/fcntl.h (renamed from include/asm-blackfin/fcntl.h)0
-rw-r--r--arch/blackfin/include/asm/fixed_code.h (renamed from include/asm-blackfin/fixed_code.h)0
-rw-r--r--arch/blackfin/include/asm/flat.h (renamed from include/asm-blackfin/flat.h)0
-rw-r--r--arch/blackfin/include/asm/futex.h (renamed from include/asm-blackfin/futex.h)0
-rw-r--r--arch/blackfin/include/asm/gpio.h (renamed from include/asm-blackfin/gpio.h)2
-rw-r--r--arch/blackfin/include/asm/gptimers.h (renamed from include/asm-blackfin/gptimers.h)0
-rw-r--r--arch/blackfin/include/asm/hardirq.h (renamed from include/asm-blackfin/hardirq.h)0
-rw-r--r--arch/blackfin/include/asm/hw_irq.h (renamed from include/asm-blackfin/hw_irq.h)0
-rw-r--r--arch/blackfin/include/asm/io.h (renamed from include/asm-blackfin/io.h)0
-rw-r--r--arch/blackfin/include/asm/ioctl.h (renamed from include/asm-blackfin/ioctl.h)0
-rw-r--r--arch/blackfin/include/asm/ioctls.h (renamed from include/asm-blackfin/ioctls.h)0
-rw-r--r--arch/blackfin/include/asm/ipcbuf.h (renamed from include/asm-blackfin/ipcbuf.h)0
-rw-r--r--arch/blackfin/include/asm/irq.h (renamed from include/asm-blackfin/irq.h)4
-rw-r--r--arch/blackfin/include/asm/irq_handler.h (renamed from include/asm-blackfin/irq_handler.h)0
-rw-r--r--arch/blackfin/include/asm/irq_regs.h (renamed from include/asm-blackfin/irq_regs.h)0
-rw-r--r--arch/blackfin/include/asm/kdebug.h (renamed from include/asm-blackfin/kdebug.h)0
-rw-r--r--arch/blackfin/include/asm/kgdb.h (renamed from include/asm-blackfin/kgdb.h)0
-rw-r--r--arch/blackfin/include/asm/kmap_types.h (renamed from include/asm-blackfin/kmap_types.h)0
-rw-r--r--arch/blackfin/include/asm/l1layout.h (renamed from include/asm-blackfin/l1layout.h)0
-rw-r--r--arch/blackfin/include/asm/linkage.h (renamed from include/asm-blackfin/linkage.h)0
-rw-r--r--arch/blackfin/include/asm/local.h (renamed from include/asm-blackfin/local.h)0
-rw-r--r--arch/blackfin/include/asm/mem_map.h (renamed from include/asm-blackfin/mem_map.h)2
-rw-r--r--arch/blackfin/include/asm/mman.h (renamed from include/asm-blackfin/mman.h)0
-rw-r--r--arch/blackfin/include/asm/mmu.h (renamed from include/asm-blackfin/mmu.h)0
-rw-r--r--arch/blackfin/include/asm/mmu_context.h (renamed from include/asm-blackfin/mmu_context.h)6
-rw-r--r--arch/blackfin/include/asm/module.h (renamed from include/asm-blackfin/module.h)0
-rw-r--r--arch/blackfin/include/asm/msgbuf.h (renamed from include/asm-blackfin/msgbuf.h)0
-rw-r--r--arch/blackfin/include/asm/mutex.h (renamed from include/asm-blackfin/mutex.h)0
-rw-r--r--arch/blackfin/include/asm/nand.h (renamed from include/asm-blackfin/nand.h)0
-rw-r--r--arch/blackfin/include/asm/page.h (renamed from include/asm-blackfin/page.h)0
-rw-r--r--arch/blackfin/include/asm/page_offset.h (renamed from include/asm-blackfin/page_offset.h)0
-rw-r--r--arch/blackfin/include/asm/param.h (renamed from include/asm-blackfin/param.h)0
-rw-r--r--arch/blackfin/include/asm/pci.h (renamed from include/asm-blackfin/pci.h)0
-rw-r--r--arch/blackfin/include/asm/percpu.h (renamed from include/asm-blackfin/percpu.h)0
-rw-r--r--arch/blackfin/include/asm/pgalloc.h (renamed from include/asm-blackfin/pgalloc.h)0
-rw-r--r--arch/blackfin/include/asm/pgtable.h (renamed from include/asm-blackfin/pgtable.h)2
-rw-r--r--arch/blackfin/include/asm/poll.h (renamed from include/asm-blackfin/poll.h)0
-rw-r--r--arch/blackfin/include/asm/portmux.h (renamed from include/asm-blackfin/portmux.h)2
-rw-r--r--arch/blackfin/include/asm/posix_types.h (renamed from include/asm-blackfin/posix_types.h)0
-rw-r--r--arch/blackfin/include/asm/processor.h (renamed from include/asm-blackfin/processor.h)0
-rw-r--r--arch/blackfin/include/asm/ptrace.h (renamed from include/asm-blackfin/ptrace.h)0
-rw-r--r--arch/blackfin/include/asm/reboot.h (renamed from include/asm-blackfin/reboot.h)0
-rw-r--r--arch/blackfin/include/asm/resource.h (renamed from include/asm-blackfin/resource.h)0
-rw-r--r--arch/blackfin/include/asm/scatterlist.h (renamed from include/asm-blackfin/scatterlist.h)0
-rw-r--r--arch/blackfin/include/asm/sections.h (renamed from include/asm-blackfin/sections.h)0
-rw-r--r--arch/blackfin/include/asm/segment.h (renamed from include/asm-blackfin/segment.h)0
-rw-r--r--arch/blackfin/include/asm/sembuf.h (renamed from include/asm-blackfin/sembuf.h)0
-rw-r--r--arch/blackfin/include/asm/serial.h (renamed from include/asm-blackfin/serial.h)0
-rw-r--r--arch/blackfin/include/asm/setup.h (renamed from include/asm-blackfin/setup.h)0
-rw-r--r--arch/blackfin/include/asm/shmbuf.h (renamed from include/asm-blackfin/shmbuf.h)0
-rw-r--r--arch/blackfin/include/asm/shmparam.h (renamed from include/asm-blackfin/shmparam.h)0
-rw-r--r--arch/blackfin/include/asm/sigcontext.h (renamed from include/asm-blackfin/sigcontext.h)0
-rw-r--r--arch/blackfin/include/asm/siginfo.h (renamed from include/asm-blackfin/siginfo.h)0
-rw-r--r--arch/blackfin/include/asm/signal.h (renamed from include/asm-blackfin/signal.h)0
-rw-r--r--arch/blackfin/include/asm/socket.h (renamed from include/asm-blackfin/socket.h)0
-rw-r--r--arch/blackfin/include/asm/sockios.h (renamed from include/asm-blackfin/sockios.h)0
-rw-r--r--arch/blackfin/include/asm/spinlock.h (renamed from include/asm-blackfin/spinlock.h)0
-rw-r--r--arch/blackfin/include/asm/stat.h (renamed from include/asm-blackfin/stat.h)0
-rw-r--r--arch/blackfin/include/asm/statfs.h (renamed from include/asm-blackfin/statfs.h)0
-rw-r--r--arch/blackfin/include/asm/string.h (renamed from include/asm-blackfin/string.h)0
-rw-r--r--arch/blackfin/include/asm/system.h (renamed from include/asm-blackfin/system.h)2
-rw-r--r--arch/blackfin/include/asm/termbits.h (renamed from include/asm-blackfin/termbits.h)0
-rw-r--r--arch/blackfin/include/asm/termios.h (renamed from include/asm-blackfin/termios.h)0
-rw-r--r--arch/blackfin/include/asm/thread_info.h (renamed from include/asm-blackfin/thread_info.h)0
-rw-r--r--arch/blackfin/include/asm/time.h (renamed from include/asm-blackfin/time.h)0
-rw-r--r--arch/blackfin/include/asm/timex.h (renamed from include/asm-blackfin/timex.h)0
-rw-r--r--arch/blackfin/include/asm/tlb.h (renamed from include/asm-blackfin/tlb.h)0
-rw-r--r--arch/blackfin/include/asm/tlbflush.h (renamed from include/asm-blackfin/tlbflush.h)0
-rw-r--r--arch/blackfin/include/asm/topology.h (renamed from include/asm-blackfin/topology.h)0
-rw-r--r--arch/blackfin/include/asm/trace.h (renamed from include/asm-blackfin/trace.h)0
-rw-r--r--arch/blackfin/include/asm/traps.h (renamed from include/asm-blackfin/traps.h)0
-rw-r--r--arch/blackfin/include/asm/types.h (renamed from include/asm-blackfin/types.h)0
-rw-r--r--arch/blackfin/include/asm/uaccess.h (renamed from include/asm-blackfin/uaccess.h)0
-rw-r--r--arch/blackfin/include/asm/ucontext.h (renamed from include/asm-blackfin/ucontext.h)0
-rw-r--r--arch/blackfin/include/asm/unaligned.h (renamed from include/asm-blackfin/unaligned.h)0
-rw-r--r--arch/blackfin/include/asm/unistd.h (renamed from include/asm-blackfin/unistd.h)0
-rw-r--r--arch/blackfin/include/asm/user.h (renamed from include/asm-blackfin/user.h)0
-rw-r--r--arch/blackfin/kernel/entry.S2
-rw-r--r--arch/blackfin/mach-bf527/head.S4
-rw-r--r--arch/blackfin/mach-bf527/include/mach/anomaly.h (renamed from include/asm-blackfin/mach-bf527/anomaly.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/bf527.h (renamed from include/asm-blackfin/mach-bf527/bf527.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h (renamed from include/asm-blackfin/mach-bf527/bfin_serial_5xx.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/bfin_sir.h (renamed from include/asm-blackfin/mach-bf527/bfin_sir.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/blackfin.h (renamed from include/asm-blackfin/mach-bf527/blackfin.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/cdefBF522.h (renamed from include/asm-blackfin/mach-bf527/cdefBF522.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/cdefBF525.h (renamed from include/asm-blackfin/mach-bf527/cdefBF525.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/cdefBF527.h (renamed from include/asm-blackfin/mach-bf527/cdefBF527.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/cdefBF52x_base.h (renamed from include/asm-blackfin/mach-bf527/cdefBF52x_base.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/defBF522.h (renamed from include/asm-blackfin/mach-bf527/defBF522.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/defBF525.h (renamed from include/asm-blackfin/mach-bf527/defBF525.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/defBF527.h (renamed from include/asm-blackfin/mach-bf527/defBF527.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/defBF52x_base.h (renamed from include/asm-blackfin/mach-bf527/defBF52x_base.h)185
-rw-r--r--arch/blackfin/mach-bf527/include/mach/dma.h (renamed from include/asm-blackfin/mach-bf527/dma.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/irq.h (renamed from include/asm-blackfin/mach-bf527/irq.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/mem_init.h (renamed from include/asm-blackfin/mach-bf527/mem_init.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/mem_map.h (renamed from include/asm-blackfin/mach-bf527/mem_map.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/portmux.h (renamed from include/asm-blackfin/mach-bf527/portmux.h)0
-rw-r--r--arch/blackfin/mach-bf533/head.S4
-rw-r--r--arch/blackfin/mach-bf533/include/mach/anomaly.h (renamed from include/asm-blackfin/mach-bf533/anomaly.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/bf533.h (renamed from include/asm-blackfin/mach-bf533/bf533.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h (renamed from include/asm-blackfin/mach-bf533/bfin_serial_5xx.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/bfin_sir.h (renamed from include/asm-blackfin/mach-bf533/bfin_sir.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/blackfin.h (renamed from include/asm-blackfin/mach-bf533/blackfin.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/cdefBF532.h (renamed from include/asm-blackfin/mach-bf533/cdefBF532.h)2
-rw-r--r--arch/blackfin/mach-bf533/include/mach/defBF532.h (renamed from include/asm-blackfin/mach-bf533/defBF532.h)2
-rw-r--r--arch/blackfin/mach-bf533/include/mach/dma.h (renamed from include/asm-blackfin/mach-bf533/dma.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/irq.h (renamed from include/asm-blackfin/mach-bf533/irq.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/mem_init.h (renamed from include/asm-blackfin/mach-bf533/mem_init.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/mem_map.h (renamed from include/asm-blackfin/mach-bf533/mem_map.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/portmux.h (renamed from include/asm-blackfin/mach-bf533/portmux.h)0
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c27
-rw-r--r--arch/blackfin/mach-bf537/head.S4
-rw-r--r--arch/blackfin/mach-bf537/include/mach/anomaly.h (renamed from include/asm-blackfin/mach-bf537/anomaly.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/bf537.h (renamed from include/asm-blackfin/mach-bf537/bf537.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h (renamed from include/asm-blackfin/mach-bf537/bfin_serial_5xx.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/bfin_sir.h (renamed from include/asm-blackfin/mach-bf537/bfin_sir.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/blackfin.h (renamed from include/asm-blackfin/mach-bf537/blackfin.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/cdefBF534.h (renamed from include/asm-blackfin/mach-bf537/cdefBF534.h)2
-rw-r--r--arch/blackfin/mach-bf537/include/mach/cdefBF537.h (renamed from include/asm-blackfin/mach-bf537/cdefBF537.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/defBF534.h (renamed from include/asm-blackfin/mach-bf537/defBF534.h)2
-rw-r--r--arch/blackfin/mach-bf537/include/mach/defBF537.h (renamed from include/asm-blackfin/mach-bf537/defBF537.h)2
-rw-r--r--arch/blackfin/mach-bf537/include/mach/dma.h (renamed from include/asm-blackfin/mach-bf537/dma.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/irq.h (renamed from include/asm-blackfin/mach-bf537/irq.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/mem_init.h (renamed from include/asm-blackfin/mach-bf537/mem_init.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/mem_map.h (renamed from include/asm-blackfin/mach-bf537/mem_map.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/portmux.h (renamed from include/asm-blackfin/mach-bf537/portmux.h)0
-rw-r--r--arch/blackfin/mach-bf548/boards/cm_bf548.c4
-rw-r--r--arch/blackfin/mach-bf548/boards/ezkit.c4
-rw-r--r--arch/blackfin/mach-bf548/head.S4
-rw-r--r--arch/blackfin/mach-bf548/include/mach/anomaly.h (renamed from include/asm-blackfin/mach-bf548/anomaly.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bf548.h (renamed from include/asm-blackfin/mach-bf548/bf548.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bf54x-lq043.h (renamed from include/asm-blackfin/mach-bf548/bf54x-lq043.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bf54x_keys.h (renamed from include/asm-blackfin/mach-bf548/bf54x_keys.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h (renamed from include/asm-blackfin/mach-bf548/bfin_serial_5xx.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bfin_sir.h (renamed from include/asm-blackfin/mach-bf548/bfin_sir.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/blackfin.h (renamed from include/asm-blackfin/mach-bf548/blackfin.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/cdefBF542.h (renamed from include/asm-blackfin/mach-bf548/cdefBF542.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/cdefBF544.h (renamed from include/asm-blackfin/mach-bf548/cdefBF544.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/cdefBF547.h (renamed from include/asm-blackfin/mach-bf548/cdefBF547.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/cdefBF548.h (renamed from include/asm-blackfin/mach-bf548/cdefBF548.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/cdefBF549.h (renamed from include/asm-blackfin/mach-bf548/cdefBF549.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/cdefBF54x_base.h (renamed from include/asm-blackfin/mach-bf548/cdefBF54x_base.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/defBF542.h (renamed from include/asm-blackfin/mach-bf548/defBF542.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/defBF544.h (renamed from include/asm-blackfin/mach-bf548/defBF544.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/defBF547.h (renamed from include/asm-blackfin/mach-bf548/defBF547.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/defBF548.h (renamed from include/asm-blackfin/mach-bf548/defBF548.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/defBF549.h (renamed from include/asm-blackfin/mach-bf548/defBF549.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/defBF54x_base.h (renamed from include/asm-blackfin/mach-bf548/defBF54x_base.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/dma.h (renamed from include/asm-blackfin/mach-bf548/dma.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/gpio.h (renamed from include/asm-blackfin/mach-bf548/gpio.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/irq.h (renamed from include/asm-blackfin/mach-bf548/irq.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/mem_init.h (renamed from include/asm-blackfin/mach-bf548/mem_init.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/mem_map.h (renamed from include/asm-blackfin/mach-bf548/mem_map.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/portmux.h (renamed from include/asm-blackfin/mach-bf548/portmux.h)0
-rw-r--r--arch/blackfin/mach-bf561/head.S4
-rw-r--r--arch/blackfin/mach-bf561/include/mach/anomaly.h (renamed from include/asm-blackfin/mach-bf561/anomaly.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/bf561.h (renamed from include/asm-blackfin/mach-bf561/bf561.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h (renamed from include/asm-blackfin/mach-bf561/bfin_serial_5xx.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/bfin_sir.h (renamed from include/asm-blackfin/mach-bf561/bfin_sir.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/blackfin.h (renamed from include/asm-blackfin/mach-bf561/blackfin.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/cdefBF561.h (renamed from include/asm-blackfin/mach-bf561/cdefBF561.h)2
-rw-r--r--arch/blackfin/mach-bf561/include/mach/defBF561.h (renamed from include/asm-blackfin/mach-bf561/defBF561.h)2
-rw-r--r--arch/blackfin/mach-bf561/include/mach/dma.h (renamed from include/asm-blackfin/mach-bf561/dma.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/irq.h (renamed from include/asm-blackfin/mach-bf561/irq.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/mem_init.h (renamed from include/asm-blackfin/mach-bf561/mem_init.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/mem_map.h (renamed from include/asm-blackfin/mach-bf561/mem_map.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/portmux.h (renamed from include/asm-blackfin/mach-bf561/portmux.h)0
-rw-r--r--arch/blackfin/mach-common/arch_checks.c4
-rw-r--r--arch/blackfin/mach-common/dpmc_modes.S2
-rw-r--r--arch/blackfin/mach-common/entry.S2
-rw-r--r--arch/blackfin/mach-common/interrupt.S4
-rw-r--r--arch/blackfin/mach-common/ints-priority.c4
-rw-r--r--arch/blackfin/mm/blackfin_sram.c24
-rw-r--r--arch/cris/arch-v32/kernel/fasttimer.c2
-rw-r--r--arch/ia64/include/asm/elf.h15
-rw-r--r--arch/ia64/include/asm/io.h10
-rw-r--r--arch/ia64/include/asm/sections.h17
-rw-r--r--arch/ia64/include/asm/sn/bte.h9
-rw-r--r--arch/ia64/kernel/efi.c5
-rw-r--r--arch/ia64/kernel/head.S9
-rw-r--r--arch/ia64/kernel/module.c9
-rw-r--r--arch/ia64/kernel/setup.c2
-rw-r--r--arch/ia64/kernel/smpboot.c5
-rw-r--r--arch/ia64/kernel/vmlinux.lds.S8
-rw-r--r--arch/ia64/kvm/kvm-ia64.c7
-rw-r--r--arch/ia64/mm/contig.c2
-rw-r--r--arch/ia64/mm/discontig.c2
-rw-r--r--arch/ia64/sn/pci/tioca_provider.c4
-rw-r--r--arch/m32r/Kconfig10
-rw-r--r--arch/m32r/kernel/entry.S2
-rw-r--r--arch/m32r/kernel/head.S1
-rw-r--r--arch/m32r/kernel/irq.c6
-rw-r--r--arch/m32r/kernel/m32r_ksyms.c2
-rw-r--r--arch/m32r/kernel/process.c30
-rw-r--r--arch/m32r/kernel/smp.c4
-rw-r--r--arch/m32r/kernel/time.c5
-rw-r--r--arch/m32r/kernel/traps.c8
-rw-r--r--arch/m32r/lib/delay.c2
-rw-r--r--arch/m68k/atari/atakeyb.c9
-rw-r--r--arch/m68k/configs/amiga_defconfig53
-rw-r--r--arch/m68k/configs/apollo_defconfig53
-rw-r--r--arch/m68k/configs/atari_defconfig60
-rw-r--r--arch/m68k/configs/bvme6000_defconfig52
-rw-r--r--arch/m68k/configs/hp300_defconfig52
-rw-r--r--arch/m68k/configs/mac_defconfig53
-rw-r--r--arch/m68k/configs/multi_defconfig62
-rw-r--r--arch/m68k/configs/mvme147_defconfig52
-rw-r--r--arch/m68k/configs/mvme16x_defconfig52
-rw-r--r--arch/m68k/configs/q40_defconfig53
-rw-r--r--arch/m68k/configs/sun3_defconfig54
-rw-r--r--arch/m68k/configs/sun3x_defconfig52
-rw-r--r--arch/mips/Kconfig35
-rw-r--r--arch/mips/au1000/common/gpio.c6
-rw-r--r--arch/mips/emma2rh/markeins/setup.c16
-rw-r--r--arch/mips/jazz/setup.c13
-rw-r--r--arch/mips/kernel/.gitignore1
-rw-r--r--arch/mips/kernel/Makefile1
-rw-r--r--arch/mips/kernel/cevt-r4k.c173
-rw-r--r--arch/mips/kernel/cevt-smtc.c321
-rw-r--r--arch/mips/kernel/cpu-probe.c26
-rw-r--r--arch/mips/kernel/entry.S10
-rw-r--r--arch/mips/kernel/genex.S41
-rw-r--r--arch/mips/kernel/kgdb.c10
-rw-r--r--arch/mips/kernel/mips-mt-fpaff.c2
-rw-r--r--arch/mips/kernel/process.c19
-rw-r--r--arch/mips/kernel/ptrace.c2
-rw-r--r--arch/mips/kernel/scall32-o32.S6
-rw-r--r--arch/mips/kernel/scall64-64.S6
-rw-r--r--arch/mips/kernel/scall64-n32.S6
-rw-r--r--arch/mips/kernel/scall64-o32.S6
-rw-r--r--arch/mips/kernel/setup.c75
-rw-r--r--arch/mips/kernel/smtc.c260
-rw-r--r--arch/mips/kernel/traps.c46
-rw-r--r--arch/mips/kernel/vmlinux.lds.S1
-rw-r--r--arch/mips/lib/csum_partial.S21
-rw-r--r--arch/mips/mm/c-r3k.c1
-rw-r--r--arch/mips/mm/c-r4k.c18
-rw-r--r--arch/mips/mm/c-tx39.c2
-rw-r--r--arch/mips/mm/cache.c1
-rw-r--r--arch/mips/mm/tlbex.c6
-rw-r--r--arch/mips/mti-malta/Makefile2
-rw-r--r--arch/mips/mti-malta/malta-smtc.c9
-rw-r--r--arch/mips/pci/Makefile1
-rw-r--r--arch/mips/pci/pci-bcm47xx.c60
-rw-r--r--arch/mips/pci/pci-ip27.c41
-rw-r--r--arch/mips/rb532/devices.c16
-rw-r--r--arch/mips/sgi-ip22/ip22-platform.c2
-rw-r--r--arch/mips/txx9/generic/setup.c4
-rw-r--r--arch/mips/vr41xx/common/irq.c6
-rw-r--r--arch/mn10300/kernel/irq.c71
-rw-r--r--arch/mn10300/kernel/mn10300-serial.c1
-rw-r--r--arch/mn10300/kernel/time.c52
-rw-r--r--arch/mn10300/mm/fault.c2
-rw-r--r--arch/mn10300/unit-asb2303/unit-init.c2
-rw-r--r--arch/mn10300/unit-asb2305/unit-init.c2
-rw-r--r--arch/parisc/hpux/fs.c30
-rw-r--r--arch/parisc/kernel/module.c14
-rw-r--r--arch/powerpc/Makefile5
-rw-r--r--arch/powerpc/boot/Makefile4
-rw-r--r--arch/powerpc/boot/dts/holly.dts106
-rw-r--r--arch/powerpc/boot/dts/mpc8610_hpcd.dts8
-rw-r--r--arch/powerpc/boot/dts/mpc8641_hpcn.dts2
-rw-r--r--arch/powerpc/boot/dts/tqm8548-bigflash.dts8
-rw-r--r--arch/powerpc/boot/dts/tqm8548.dts3
-rwxr-xr-xarch/powerpc/boot/wrapper2
-rw-r--r--arch/powerpc/configs/83xx/asp8347_defconfig (renamed from arch/powerpc/configs/asp8347_defconfig)312
-rw-r--r--arch/powerpc/configs/83xx/mpc8313_rdb_defconfig188
-rw-r--r--arch/powerpc/configs/83xx/mpc8315_rdb_defconfig188
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_mds_defconfig172
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_rdb_defconfig176
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig175
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig172
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_mds_defconfig168
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_mds_defconfig172
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_rdk_defconfig183
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_mds_defconfig351
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_rdb_defconfig340
-rw-r--r--arch/powerpc/configs/83xx/sbc834x_defconfig239
-rw-r--r--arch/powerpc/configs/85xx/ksi8560_defconfig95
-rw-r--r--arch/powerpc/configs/85xx/mpc8536_ds_defconfig (renamed from arch/powerpc/configs/mpc8536_ds_defconfig)167
-rw-r--r--arch/powerpc/configs/85xx/mpc8540_ads_defconfig71
-rw-r--r--arch/powerpc/configs/85xx/mpc8544_ds_defconfig178
-rw-r--r--arch/powerpc/configs/85xx/mpc8560_ads_defconfig98
-rw-r--r--arch/powerpc/configs/85xx/mpc8568mds_defconfig121
-rw-r--r--arch/powerpc/configs/85xx/mpc8572_ds_defconfig177
-rw-r--r--arch/powerpc/configs/85xx/mpc85xx_cds_defconfig85
-rw-r--r--arch/powerpc/configs/85xx/sbc8548_defconfig63
-rw-r--r--arch/powerpc/configs/85xx/sbc8560_defconfig69
-rw-r--r--arch/powerpc/configs/85xx/stx_gp3_defconfig163
-rw-r--r--arch/powerpc/configs/85xx/tqm8540_defconfig112
-rw-r--r--arch/powerpc/configs/85xx/tqm8541_defconfig139
-rw-r--r--arch/powerpc/configs/85xx/tqm8548_defconfig129
-rw-r--r--arch/powerpc/configs/85xx/tqm8555_defconfig139
-rw-r--r--arch/powerpc/configs/85xx/tqm8560_defconfig139
-rw-r--r--arch/powerpc/configs/adder875_defconfig55
-rw-r--r--arch/powerpc/configs/c2k_defconfig245
-rw-r--r--arch/powerpc/configs/chrp32_defconfig141
-rw-r--r--arch/powerpc/configs/ep8248e_defconfig198
-rw-r--r--arch/powerpc/configs/ep88xc_defconfig57
-rw-r--r--arch/powerpc/configs/g5_defconfig227
-rw-r--r--arch/powerpc/configs/iseries_defconfig87
-rw-r--r--arch/powerpc/configs/linkstation_defconfig133
-rw-r--r--arch/powerpc/configs/maple_defconfig381
-rw-r--r--arch/powerpc/configs/mpc7448_hpc2_defconfig72
-rw-r--r--arch/powerpc/configs/mpc8272_ads_defconfig132
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig389
-rw-r--r--arch/powerpc/configs/mpc85xx_defconfig207
-rw-r--r--arch/powerpc/configs/mpc8610_hpcd_defconfig165
-rw-r--r--arch/powerpc/configs/mpc8641_hpcn_defconfig215
-rw-r--r--arch/powerpc/configs/mpc866_ads_defconfig61
-rw-r--r--arch/powerpc/configs/mpc885_ads_defconfig57
-rw-r--r--arch/powerpc/configs/pmac32_defconfig241
-rw-r--r--arch/powerpc/configs/ppc64_defconfig237
-rw-r--r--arch/powerpc/configs/ppc6xx_defconfig144
-rw-r--r--arch/powerpc/configs/pq2fads_defconfig147
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig125
-rw-r--r--arch/powerpc/configs/ps3_defconfig153
-rw-r--r--arch/powerpc/configs/pseries_defconfig172
-rw-r--r--arch/powerpc/configs/sbc8641d_defconfig173
-rw-r--r--arch/powerpc/configs/storcenter_defconfig113
-rw-r--r--arch/powerpc/include/asm/cpm2.h5
-rw-r--r--arch/powerpc/include/asm/elf.h7
-rw-r--r--arch/powerpc/include/asm/pgtable-ppc64.h6
-rw-r--r--arch/powerpc/include/asm/sections.h13
-rw-r--r--arch/powerpc/kernel/Makefile7
-rw-r--r--arch/powerpc/kernel/align.c2
-rw-r--r--arch/powerpc/kernel/idle.c6
-rw-r--r--arch/powerpc/kernel/idle_6xx.S2
-rw-r--r--arch/powerpc/kernel/idle_e500.S3
-rw-r--r--arch/powerpc/kernel/kgdb.c5
-rw-r--r--arch/powerpc/kernel/module_64.c8
-rw-r--r--arch/powerpc/kernel/vmlinux.lds.S7
-rw-r--r--arch/powerpc/mm/hash_utils_64.c18
-rw-r--r--arch/powerpc/platforms/cell/spufs/sched.c29
-rw-r--r--arch/powerpc/platforms/fsl_uli1575.c12
-rw-r--r--arch/powerpc/platforms/powermac/Makefile2
-rw-r--r--arch/powerpc/platforms/ps3/htab.c269
-rw-r--r--arch/powerpc/platforms/ps3/setup.c1
-rw-r--r--arch/powerpc/platforms/ps3/spu.c18
-rw-r--r--arch/powerpc/platforms/pseries/setup.c1
-rw-r--r--arch/powerpc/sysdev/bestcomm/gen_bd.c1
-rw-r--r--arch/powerpc/sysdev/cpm_common.c37
-rw-r--r--arch/powerpc/sysdev/qe_lib/ucc_fast.c4
-rw-r--r--arch/powerpc/sysdev/qe_lib/ucc_slow.c8
-rw-r--r--arch/s390/defconfig54
-rw-r--r--arch/s390/include/asm/bitops.h6
-rw-r--r--arch/s390/kernel/compat_ptrace.h1
-rw-r--r--arch/s390/kernel/process.c4
-rw-r--r--arch/s390/kernel/ptrace.c28
-rw-r--r--arch/s390/kernel/smp.c2
-rw-r--r--arch/s390/kernel/time.c2
-rw-r--r--arch/s390/kernel/vmlinux.lds.S2
-rw-r--r--arch/s390/lib/delay.c88
-rw-r--r--arch/sh/configs/ap325rxa_defconfig22
-rw-r--r--arch/sh/configs/migor_defconfig21
-rw-r--r--arch/sh/include/asm/uaccess_64.h2
-rw-r--r--arch/sh/kernel/cpu/sh5/entry.S14
-rw-r--r--arch/sh/kernel/entry-common.S27
-rw-r--r--arch/sh/kernel/machine_kexec.c2
-rw-r--r--arch/sh/kernel/ptrace_64.c2
-rw-r--r--arch/sh/kernel/setup.c6
-rw-r--r--arch/sh/kernel/sys_sh.c2
-rw-r--r--arch/sh/mm/consistent.c6
-rw-r--r--arch/sparc/Makefile8
-rw-r--r--arch/sparc/boot/Makefile6
-rw-r--r--arch/sparc/include/asm/smp_32.h25
-rw-r--r--arch/sparc/kernel/of_device.c21
-rw-r--r--arch/sparc/kernel/ptrace.c4
-rw-r--r--arch/sparc/kernel/sun4d_smp.c16
-rw-r--r--arch/sparc/kernel/sun4m_smp.c12
-rw-r--r--arch/sparc64/Kconfig1
-rw-r--r--arch/sparc64/kernel/irq.c7
-rw-r--r--arch/sparc64/kernel/of_device.c29
-rw-r--r--arch/sparc64/kernel/pci.c2
-rw-r--r--arch/sparc64/kernel/pci_psycho.c14
-rw-r--r--arch/sparc64/kernel/prom.c104
-rw-r--r--arch/sparc64/kernel/ptrace.c8
-rw-r--r--arch/sparc64/kernel/smp.c14
-rw-r--r--arch/sparc64/kernel/traps.c3
-rw-r--r--arch/sparc64/mm/init.c2
-rw-r--r--arch/x86/Kconfig103
-rw-r--r--arch/x86/Kconfig.cpu31
-rw-r--r--arch/x86/boot/compressed/head_32.S5
-rw-r--r--arch/x86/boot/compressed/misc.c12
-rw-r--r--arch/x86/boot/compressed/relocs.c2
-rw-r--r--arch/x86/boot/cpucheck.c8
-rw-r--r--arch/x86/boot/header.S1
-rw-r--r--arch/x86/configs/i386_defconfig316
-rw-r--r--arch/x86/configs/x86_64_defconfig279
-rw-r--r--arch/x86/ia32/ia32_aout.c11
-rw-r--r--arch/x86/ia32/ia32_signal.c21
-rw-r--r--arch/x86/ia32/sys_ia32.c9
-rw-r--r--arch/x86/kernel/acpi/boot.c5
-rw-r--r--arch/x86/kernel/alternative.c44
-rw-r--r--arch/x86/kernel/amd_iommu.c24
-rw-r--r--arch/x86/kernel/aperture_64.c6
-rw-r--r--arch/x86/kernel/apm_32.c4
-rw-r--r--arch/x86/kernel/asm-offsets_64.c2
-rw-r--r--arch/x86/kernel/bios_uv.c10
-rw-r--r--arch/x86/kernel/cpu/addon_cpuid_features.c17
-rw-r--r--arch/x86/kernel/cpu/amd.c9
-rw-r--r--arch/x86/kernel/cpu/centaur.c11
-rw-r--r--arch/x86/kernel/cpu/common.c18
-rw-r--r--arch/x86/kernel/cpu/common_64.c125
-rw-r--r--arch/x86/kernel/cpu/cyrix.c50
-rw-r--r--arch/x86/kernel/cpu/feature_names.c3
-rw-r--r--arch/x86/kernel/cpu/intel.c3
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_64.c5
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_amd_64.c18
-rw-r--r--arch/x86/kernel/cpu/mtrr/generic.c15
-rw-r--r--arch/x86/kernel/cpu/mtrr/if.c4
-rw-r--r--arch/x86/kernel/cpu/mtrr/main.c281
-rw-r--r--arch/x86/kernel/cpu/perfctr-watchdog.c86
-rw-r--r--arch/x86/kernel/cpuid.c16
-rw-r--r--arch/x86/kernel/crash_dump_64.c13
-rw-r--r--arch/x86/kernel/ds.c954
-rw-r--r--arch/x86/kernel/e820.c2
-rw-r--r--arch/x86/kernel/efi.c6
-rw-r--r--arch/x86/kernel/entry_64.S4
-rw-r--r--arch/x86/kernel/genx2apic_uv_x.c8
-rw-r--r--arch/x86/kernel/head64.c5
-rw-r--r--arch/x86/kernel/hpet.c19
-rw-r--r--arch/x86/kernel/io_delay.c8
-rw-r--r--arch/x86/kernel/ioport.c1
-rw-r--r--arch/x86/kernel/ipi.c3
-rw-r--r--arch/x86/kernel/irq_32.c2
-rw-r--r--arch/x86/kernel/irq_64.c2
-rw-r--r--arch/x86/kernel/kdebugfs.c1
-rw-r--r--arch/x86/kernel/kgdb.c43
-rw-r--r--arch/x86/kernel/kvm.c2
-rw-r--r--arch/x86/kernel/ldt.c1
-rw-r--r--arch/x86/kernel/msr.c38
-rw-r--r--arch/x86/kernel/nmi.c11
-rw-r--r--arch/x86/kernel/numaq_32.c2
-rw-r--r--arch/x86/kernel/olpc.c6
-rw-r--r--arch/x86/kernel/paravirt.c3
-rw-r--r--arch/x86/kernel/paravirt_patch_32.c2
-rw-r--r--arch/x86/kernel/pci-calgary_64.c14
-rw-r--r--arch/x86/kernel/pci-dma.c2
-rw-r--r--arch/x86/kernel/pci-gart_64.c47
-rw-r--r--arch/x86/kernel/pcspeaker.c13
-rw-r--r--arch/x86/kernel/process.c20
-rw-r--r--arch/x86/kernel/process_32.c64
-rw-r--r--arch/x86/kernel/process_64.c172
-rw-r--r--arch/x86/kernel/ptrace.c480
-rw-r--r--arch/x86/kernel/reboot.c6
-rw-r--r--arch/x86/kernel/setup.c37
-rw-r--r--arch/x86/kernel/setup_percpu.c9
-rw-r--r--arch/x86/kernel/sigframe.h5
-rw-r--r--arch/x86/kernel/signal_32.c12
-rw-r--r--arch/x86/kernel/signal_64.c112
-rw-r--r--arch/x86/kernel/smpboot.c12
-rw-r--r--arch/x86/kernel/sys_i386_32.c2
-rw-r--r--arch/x86/kernel/sys_x86_64.c44
-rw-r--r--arch/x86/kernel/syscall_64.c4
-rw-r--r--arch/x86/kernel/time_32.c1
-rw-r--r--arch/x86/kernel/tlb_uv.c3
-rw-r--r--arch/x86/kernel/tls.c1
-rw-r--r--arch/x86/kernel/traps_64.c66
-rw-r--r--arch/x86/kernel/tsc.c424
-rw-r--r--arch/x86/kernel/tsc_sync.c6
-rw-r--r--arch/x86/kernel/visws_quirks.c16
-rw-r--r--arch/x86/kernel/vm86_32.c1
-rw-r--r--arch/x86/kernel/vmi_32.c12
-rw-r--r--arch/x86/kernel/vsmp_64.c2
-rw-r--r--arch/x86/kvm/mmu.c4
-rw-r--r--arch/x86/kvm/paging_tmpl.h2
-rw-r--r--arch/x86/kvm/svm.c12
-rw-r--r--arch/x86/kvm/vmx.c3
-rw-r--r--arch/x86/kvm/vmx.h2
-rw-r--r--arch/x86/lib/msr-on-cpu.c76
-rw-r--r--arch/x86/lib/string_32.c42
-rw-r--r--arch/x86/lib/strstr_32.c6
-rw-r--r--arch/x86/mach-default/setup.c4
-rw-r--r--arch/x86/mach-rdc321x/platform.c1
-rw-r--r--arch/x86/mm/discontig_32.c2
-rw-r--r--arch/x86/mm/dump_pagetables.c4
-rw-r--r--arch/x86/mm/fault.c3
-rw-r--r--arch/x86/mm/init_32.c5
-rw-r--r--arch/x86/mm/init_64.c44
-rw-r--r--arch/x86/mm/ioremap.c12
-rw-r--r--arch/x86/mm/mmio-mod.c4
-rw-r--r--arch/x86/mm/numa_64.c10
-rw-r--r--arch/x86/mm/pageattr.c10
-rw-r--r--arch/x86/mm/pat.c50
-rw-r--r--arch/x86/mm/pgtable.c6
-rw-r--r--arch/x86/mm/pgtable_32.c3
-rw-r--r--arch/x86/oprofile/nmi_int.c43
-rw-r--r--arch/x86/oprofile/op_model_p4.c175
-rw-r--r--arch/x86/pci/amd_bus.c52
-rw-r--r--arch/x86/pci/i386.c9
-rw-r--r--arch/x86/pci/irq.c67
-rw-r--r--arch/x86/power/hibernate_asm_32.S14
-rw-r--r--arch/x86/xen/enlighten.c22
-rw-r--r--arch/x86/xen/setup.c2
-rw-r--r--block/blk-core.c2
-rw-r--r--block/blk-tag.c6
-rw-r--r--block/bsg.c44
-rw-r--r--block/cmd-filter.c201
-rw-r--r--block/genhd.c51
-rw-r--r--block/scsi_ioctl.c94
-rw-r--r--crypto/async_tx/async_tx.c3
-rw-r--r--crypto/authenc.c10
-rw-r--r--crypto/camellia.c84
-rw-r--r--drivers/accessibility/braille/braille_console.c13
-rw-r--r--drivers/acpi/dispatcher/dsobject.c2
-rw-r--r--drivers/acpi/glue.c5
-rw-r--r--drivers/acpi/processor_core.c2
-rw-r--r--drivers/acpi/processor_perflib.c2
-rw-r--r--drivers/acpi/sbshc.c7
-rw-r--r--drivers/acpi/sleep/proc.c10
-rw-r--r--drivers/acpi/tables.c2
-rw-r--r--drivers/ata/Kconfig6
-rw-r--r--drivers/ata/ahci.c29
-rw-r--r--drivers/ata/ata_piix.c10
-rw-r--r--drivers/ata/libata-core.c60
-rw-r--r--drivers/ata/libata-eh.c30
-rw-r--r--drivers/ata/libata-sff.c5
-rw-r--r--drivers/ata/pata_acpi.c2
-rw-r--r--drivers/ata/pata_atiixp.c2
-rw-r--r--drivers/ata/pata_cs5530.c6
-rw-r--r--drivers/ata/pata_it821x.c2
-rw-r--r--drivers/ata/pata_marvell.c51
-rw-r--r--drivers/ata/pata_oldpiix.c2
-rw-r--r--drivers/ata/pata_sc1200.c6
-rw-r--r--drivers/ata/pata_sil680.c3
-rw-r--r--drivers/ata/pata_via.c59
-rw-r--r--drivers/ata/sata_inic162x.c3
-rw-r--r--drivers/ata/sata_mv.c40
-rw-r--r--drivers/ata/sata_nv.c27
-rw-r--r--drivers/atm/adummy.c1
-rw-r--r--drivers/base/class.c11
-rw-r--r--drivers/base/core.c31
-rw-r--r--drivers/base/driver.c3
-rw-r--r--drivers/base/power/main.c19
-rw-r--r--drivers/base/power/power.h9
-rw-r--r--drivers/block/pktcdvd.c35
-rw-r--r--drivers/bluetooth/btusb.c28
-rw-r--r--drivers/char/random.c19
-rw-r--r--drivers/char/tty_io.c21
-rw-r--r--drivers/char/tty_ioctl.c6
-rw-r--r--drivers/char/xilinx_hwicap/buffer_icap.h1
-rw-r--r--drivers/char/xilinx_hwicap/fifo_icap.h1
-rw-r--r--drivers/char/xilinx_hwicap/xilinx_hwicap.h1
-rw-r--r--drivers/clocksource/acpi_pm.c53
-rw-r--r--drivers/crypto/talitos.c6
-rw-r--r--drivers/dma/dw_dmac.c2
-rw-r--r--drivers/edac/edac_core.h1
-rw-r--r--drivers/firmware/iscsi_ibft.c3
-rw-r--r--drivers/gpu/drm/drm_irq.c20
-rw-r--r--drivers/gpu/drm/drm_lock.c33
-rw-r--r--drivers/gpu/drm/radeon/r300_cmdbuf.c196
-rw-r--r--drivers/gpu/drm/radeon/r300_reg.h5
-rw-r--r--drivers/gpu/drm/radeon/radeon_cp.c38
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.h19
-rw-r--r--drivers/hwmon/ad7414.c2
-rw-r--r--drivers/hwmon/atxp1.c18
-rw-r--r--drivers/hwmon/it87.c4
-rw-r--r--drivers/i2c/busses/i2c-at91.c1
-rw-r--r--drivers/i2c/busses/i2c-powermac.c4
-rw-r--r--drivers/i2c/busses/i2c-sh_mobile.c271
-rw-r--r--drivers/i2c/i2c-core.c18
-rw-r--r--drivers/i2c/i2c-dev.c4
-rw-r--r--drivers/ide/Kconfig30
-rw-r--r--drivers/ide/arm/palm_bk3710.c8
-rw-r--r--drivers/ide/ide-disk.c14
-rw-r--r--drivers/ide/ide-tape.c10
-rw-r--r--drivers/ide/mips/swarm.c1
-rw-r--r--drivers/ide/pci/hpt366.c31
-rw-r--r--drivers/infiniband/hw/ehca/ehca_tools.h1
-rw-r--r--drivers/infiniband/hw/ipath/ipath_fs.c1
-rw-r--r--drivers/infiniband/hw/ipath/ipath_iba7220.c2
-rw-r--r--drivers/infiniband/hw/ipath/ipath_ud.c8
-rw-r--r--drivers/infiniband/hw/mlx4/mr.c2
-rw-r--r--drivers/infiniband/hw/mlx4/qp.c6
-rw-r--r--drivers/infiniband/hw/nes/nes.h1
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.c11
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib.h2
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_main.c28
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_multicast.c21
-rw-r--r--drivers/infiniband/ulp/iser/iser_verbs.c1
-rw-r--r--drivers/input/keyboard/bf54x-keys.c3
-rw-r--r--drivers/input/mouse/bcm5974.c87
-rw-r--r--drivers/input/serio/i8042-x86ia64io.h2
-rw-r--r--drivers/input/touchscreen/jornada720_ts.c4
-rw-r--r--drivers/input/touchscreen/mainstone-wm97xx.c1
-rw-r--r--drivers/leds/leds-fsg.c28
-rw-r--r--drivers/leds/leds-pca955x.c70
-rw-r--r--drivers/lguest/lguest_device.c8
-rw-r--r--drivers/md/bitmap.c45
-rw-r--r--drivers/md/dm-mpath.c16
-rw-r--r--drivers/md/dm.c12
-rw-r--r--drivers/md/md.c10
-rw-r--r--drivers/media/common/saa7146_video.c4
-rw-r--r--drivers/media/common/tuners/mt2131.c2
-rw-r--r--drivers/media/common/tuners/mt2131.h2
-rw-r--r--drivers/media/common/tuners/mt2131_priv.h2
-rw-r--r--drivers/media/common/tuners/mxl5005s.c4
-rw-r--r--drivers/media/common/tuners/mxl5005s.h2
-rw-r--r--drivers/media/common/tuners/tuner-simple.c33
-rw-r--r--drivers/media/common/tuners/xc5000.c2
-rw-r--r--drivers/media/common/tuners/xc5000.h2
-rw-r--r--drivers/media/common/tuners/xc5000_priv.h2
-rw-r--r--drivers/media/dvb/b2c2/flexcop-fe-tuner.c3
-rw-r--r--drivers/media/dvb/b2c2/flexcop-i2c.c12
-rw-r--r--drivers/media/dvb/bt8xx/dst.c4
-rw-r--r--drivers/media/dvb/dvb-core/dmxdev.c1
-rw-r--r--drivers/media/dvb/dvb-core/dvb_ca_en50221.c4
-rw-r--r--drivers/media/dvb/dvb-core/dvb_frontend.c8
-rw-r--r--drivers/media/dvb/dvb-usb/cxusb.c2
-rw-r--r--drivers/media/dvb/dvb-usb/dib0700_devices.c9
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-ids.h1
-rw-r--r--drivers/media/dvb/frontends/au8522.c47
-rw-r--r--drivers/media/dvb/frontends/au8522.h11
-rw-r--r--drivers/media/dvb/frontends/cx22702.c2
-rw-r--r--drivers/media/dvb/frontends/cx22702.h2
-rw-r--r--drivers/media/dvb/frontends/cx24123.c6
-rw-r--r--drivers/media/dvb/frontends/cx24123.h2
-rw-r--r--drivers/media/dvb/frontends/s5h1409.c3
-rw-r--r--drivers/media/dvb/frontends/s5h1409.h2
-rw-r--r--drivers/media/dvb/frontends/s5h1411.c3
-rw-r--r--drivers/media/dvb/frontends/s5h1411.h2
-rw-r--r--drivers/media/dvb/frontends/s5h1420.c3
-rw-r--r--drivers/media/dvb/frontends/tda10048.c4
-rw-r--r--drivers/media/dvb/frontends/tda10048.h2
-rw-r--r--drivers/media/dvb/siano/sms-cards.c2
-rw-r--r--drivers/media/dvb/siano/sms-cards.h2
-rw-r--r--drivers/media/dvb/siano/smscoreapi.c2
-rw-r--r--drivers/media/dvb/siano/smscoreapi.h2
-rw-r--r--drivers/media/dvb/siano/smsdvb.c2
-rw-r--r--drivers/media/dvb/siano/smsusb.c2
-rw-r--r--drivers/media/dvb/ttpci/budget-patch.c3
-rw-r--r--drivers/media/dvb/ttpci/budget.c3
-rw-r--r--drivers/media/radio/Makefile4
-rw-r--r--drivers/media/radio/dsbr100.c2
-rw-r--r--drivers/media/radio/miropcm20-radio.c266
-rw-r--r--drivers/media/radio/miropcm20-rds-core.c211
-rw-r--r--drivers/media/radio/miropcm20-rds-core.h19
-rw-r--r--drivers/media/radio/miropcm20-rds.c136
-rw-r--r--drivers/media/radio/radio-aimslab.c3
-rw-r--r--drivers/media/radio/radio-aztech.c3
-rw-r--r--drivers/media/radio/radio-cadet.c2
-rw-r--r--drivers/media/radio/radio-gemtek-pci.c2
-rw-r--r--drivers/media/radio/radio-gemtek.c3
-rw-r--r--drivers/media/radio/radio-maestro.c3
-rw-r--r--drivers/media/radio/radio-maxiradio.c28
-rw-r--r--drivers/media/radio/radio-rtrack2.c3
-rw-r--r--drivers/media/radio/radio-sf16fmi.c2
-rw-r--r--drivers/media/radio/radio-si470x.c4
-rw-r--r--drivers/media/radio/radio-terratec.c3
-rw-r--r--drivers/media/radio/radio-trust.c3
-rw-r--r--drivers/media/radio/radio-zoltrix.c3
-rw-r--r--drivers/media/video/Kconfig2
-rw-r--r--drivers/media/video/Makefile4
-rw-r--r--drivers/media/video/au0828/Kconfig1
-rw-r--r--drivers/media/video/au0828/au0828-cards.c9
-rw-r--r--drivers/media/video/au0828/au0828-cards.h3
-rw-r--r--drivers/media/video/au0828/au0828-core.c4
-rw-r--r--drivers/media/video/au0828/au0828-dvb.c25
-rw-r--r--drivers/media/video/au0828/au0828-i2c.c2
-rw-r--r--drivers/media/video/au0828/au0828-reg.h2
-rw-r--r--drivers/media/video/au0828/au0828.h2
-rw-r--r--drivers/media/video/bt8xx/bttv-cards.c73
-rw-r--r--drivers/media/video/bt8xx/bttv-driver.c1
-rw-r--r--drivers/media/video/bt8xx/bttv-risc.c3
-rw-r--r--drivers/media/video/bt8xx/bttvp.h5
-rw-r--r--drivers/media/video/btcx-risc.c4
-rw-r--r--drivers/media/video/btcx-risc.h2
-rw-r--r--drivers/media/video/bw-qcam.c3
-rw-r--r--drivers/media/video/c-qcam.c3
-rw-r--r--drivers/media/video/cpia.c2
-rw-r--r--drivers/media/video/cpia2/cpia2_v4l.c4
-rw-r--r--drivers/media/video/cx18/cx18-av-firmware.c16
-rw-r--r--drivers/media/video/cx18/cx18-driver.c6
-rw-r--r--drivers/media/video/cx18/cx18-dvb.c2
-rw-r--r--drivers/media/video/cx18/cx18-dvb.h2
-rw-r--r--drivers/media/video/cx18/cx18-irq.c2
-rw-r--r--drivers/media/video/cx18/cx18-queue.c129
-rw-r--r--drivers/media/video/cx18/cx18-queue.h2
-rw-r--r--drivers/media/video/cx23885/cx23885-417.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-cards.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-core.c4
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-i2c.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-reg.h2
-rw-r--r--drivers/media/video/cx23885/cx23885-vbi.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-video.c4
-rw-r--r--drivers/media/video/cx23885/cx23885.h2
-rw-r--r--drivers/media/video/cx25840/cx25840-core.c2
-rw-r--r--drivers/media/video/dabusb.c1
-rw-r--r--drivers/media/video/et61x251/et61x251_core.c1
-rw-r--r--drivers/media/video/gspca/conex.c28
-rw-r--r--drivers/media/video/gspca/etoms.c30
-rw-r--r--drivers/media/video/gspca/gspca.c119
-rw-r--r--drivers/media/video/gspca/gspca.h21
-rw-r--r--drivers/media/video/gspca/mars.c41
-rw-r--r--drivers/media/video/gspca/ov519.c1167
-rw-r--r--drivers/media/video/gspca/pac207.c87
-rw-r--r--drivers/media/video/gspca/pac7311.c1110
-rw-r--r--drivers/media/video/gspca/pac_common.h60
-rw-r--r--drivers/media/video/gspca/sonixb.c594
-rw-r--r--drivers/media/video/gspca/sonixj.c539
-rw-r--r--drivers/media/video/gspca/spca500.c20
-rw-r--r--drivers/media/video/gspca/spca501.c16
-rw-r--r--drivers/media/video/gspca/spca505.c16
-rw-r--r--drivers/media/video/gspca/spca506.c20
-rw-r--r--drivers/media/video/gspca/spca508.c21
-rw-r--r--drivers/media/video/gspca/spca561.c727
-rw-r--r--drivers/media/video/gspca/stk014.c20
-rw-r--r--drivers/media/video/gspca/sunplus.c167
-rw-r--r--drivers/media/video/gspca/t613.c41
-rw-r--r--drivers/media/video/gspca/tv8532.c20
-rw-r--r--drivers/media/video/gspca/vc032x.c31
-rw-r--r--drivers/media/video/gspca/zc3xx.c85
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.h1
-rw-r--r--drivers/media/video/ivtv/ivtv-irq.c29
-rw-r--r--drivers/media/video/ivtv/ivtv-queue.h2
-rw-r--r--drivers/media/video/ivtv/ivtv-streams.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-vbi.c4
-rw-r--r--drivers/media/video/ivtv/ivtv-version.h2
-rw-r--r--drivers/media/video/ks0127.c31
-rw-r--r--drivers/media/video/meye.c2
-rw-r--r--drivers/media/video/mxb.c12
-rw-r--r--drivers/media/video/ov511.c14
-rw-r--r--drivers/media/video/pms.c13
-rw-r--r--drivers/media/video/pwc/pwc-ctrl.c18
-rw-r--r--drivers/media/video/saa7115.c5
-rw-r--r--drivers/media/video/se401.c2
-rw-r--r--drivers/media/video/sn9c102/sn9c102_core.c1
-rw-r--r--drivers/media/video/sn9c102/sn9c102_devtable.h21
-rw-r--r--drivers/media/video/stv680.c2
-rw-r--r--drivers/media/video/usbvideo/ibmcam.c6
-rw-r--r--drivers/media/video/usbvideo/vicam.c2
-rw-r--r--drivers/media/video/v4l2-dev.c5
-rw-r--r--drivers/media/video/v4l2-ioctl.c4
-rw-r--r--drivers/media/video/vivi.c52
-rw-r--r--drivers/media/video/w9966.c2
-rw-r--r--drivers/media/video/zc0301/zc0301_core.c1
-rw-r--r--drivers/media/video/zc0301/zc0301_sensor.h19
-rw-r--r--drivers/memstick/core/memstick.c10
-rw-r--r--drivers/memstick/core/mspro_block.c33
-rw-r--r--drivers/memstick/host/jmb38x_ms.c39
-rw-r--r--drivers/mfd/Kconfig4
-rw-r--r--drivers/mfd/asic3.c3
-rw-r--r--drivers/misc/acer-wmi.c8
-rw-r--r--drivers/misc/eeprom_93cx6.c1
-rw-r--r--drivers/misc/fujitsu-laptop.c7
-rw-r--r--drivers/misc/hp-wmi.c91
-rw-r--r--drivers/misc/sgi-gru/grufile.c3
-rw-r--r--drivers/misc/thinkpad_acpi.c1
-rw-r--r--drivers/mmc/card/block.c13
-rw-r--r--drivers/mmc/card/mmc_test.c4
-rw-r--r--drivers/mmc/host/at91_mci.c20
-rw-r--r--drivers/mmc/host/atmel-mci.c12
-rw-r--r--drivers/mmc/host/tmio_mmc.h4
-rw-r--r--drivers/mtd/maps/amd76xrom.c1
-rw-r--r--drivers/mtd/maps/ck804xrom.c1
-rw-r--r--drivers/mtd/maps/esb2rom.c1
-rw-r--r--drivers/mtd/mtdchar.c16
-rw-r--r--drivers/mtd/nand/au1550nd.c1
-rw-r--r--drivers/mtd/nand/tmio_nand.c8
-rw-r--r--drivers/net/Kconfig6
-rw-r--r--drivers/net/atl1e/atl1e_main.c3
-rw-r--r--drivers/net/atlx/atl1.c1
-rw-r--r--drivers/net/bnx2.h2
-rw-r--r--drivers/net/bnx2x.h7
-rw-r--r--drivers/net/bnx2x_main.c250
-rw-r--r--drivers/net/e100.c8
-rw-r--r--drivers/net/e1000/e1000_hw.c23
-rw-r--r--drivers/net/e1000/e1000_param.c81
-rw-r--r--drivers/net/e1000e/e1000.h5
-rw-r--r--drivers/net/e1000e/ethtool.c9
-rw-r--r--drivers/net/e1000e/ich8lan.c78
-rw-r--r--drivers/net/e1000e/netdev.c72
-rw-r--r--drivers/net/e1000e/param.c30
-rw-r--r--drivers/net/forcedeth.c28
-rw-r--r--drivers/net/fs_enet/fs_enet-main.c8
-rw-r--r--drivers/net/fs_enet/mac-scc.c8
-rw-r--r--drivers/net/gianfar.c22
-rw-r--r--drivers/net/gianfar.h1
-rw-r--r--drivers/net/hp-plus.c8
-rw-r--r--drivers/net/ibm_newemac/core.c6
-rw-r--r--drivers/net/ibmveth.c5
-rw-r--r--drivers/net/igb/e1000_82575.c1
-rw-r--r--drivers/net/igb/e1000_hw.h1
-rw-r--r--drivers/net/igb/igb_ethtool.c17
-rw-r--r--drivers/net/igb/igb_main.c25
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c14
-rw-r--r--drivers/net/mlx4/mr.c10
-rw-r--r--drivers/net/mv643xx_eth.c35
-rw-r--r--drivers/net/myri10ge/myri10ge.c3
-rw-r--r--drivers/net/netxen/netxen_nic.h1
-rw-r--r--drivers/net/netxen/netxen_nic_ethtool.c1
-rw-r--r--drivers/net/netxen/netxen_nic_hdr.h2
-rw-r--r--drivers/net/netxen/netxen_nic_main.c10
-rw-r--r--drivers/net/niu.c56
-rw-r--r--drivers/net/pcmcia/axnet_cs.c1
-rw-r--r--drivers/net/pcmcia/pcnet_cs.c2
-rw-r--r--drivers/net/r8169.c2
-rw-r--r--drivers/net/skfp/ess.c6
-rw-r--r--drivers/net/smc91x.c2
-rw-r--r--drivers/net/tokenring/lanstreamer.c1
-rw-r--r--drivers/net/tokenring/lanstreamer.h2
-rw-r--r--drivers/net/usb/hso.c3
-rw-r--r--drivers/net/usb/mcs7830.c47
-rw-r--r--drivers/net/usb/pegasus.c11
-rw-r--r--drivers/net/wan/sbni.c8
-rw-r--r--drivers/net/wd.c2
-rw-r--r--drivers/net/wireless/ath5k/base.c23
-rw-r--r--drivers/net/wireless/ath5k/base.h1
-rw-r--r--drivers/net/wireless/ath9k/beacon.c13
-rw-r--r--drivers/net/wireless/ath9k/core.c11
-rw-r--r--drivers/net/wireless/ath9k/core.h2
-rw-r--r--drivers/net/wireless/ath9k/hw.c8
-rw-r--r--drivers/net/wireless/ath9k/main.c40
-rw-r--r--drivers/net/wireless/ath9k/recv.c5
-rw-r--r--drivers/net/wireless/ath9k/xmit.c10
-rw-r--r--drivers/net/wireless/atmel.c51
-rw-r--r--drivers/net/wireless/b43/rfkill.c18
-rw-r--r--drivers/net/wireless/b43legacy/main.c1
-rw-r--r--drivers/net/wireless/b43legacy/rfkill.c18
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-led.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c14
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c35
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c77
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-fh.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-led.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-rfkill.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-rx.c5
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-scan.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-tx.c29
-rw-r--r--drivers/net/wireless/libertas/if_cs.c13
-rw-r--r--drivers/net/wireless/orinoco.c10
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00reg.h5
-rw-r--r--drivers/net/wireless/zd1211rw/zd_usb.c1
-rw-r--r--drivers/oprofile/cpu_buffer.c4
-rw-r--r--drivers/oprofile/event_buffer.c2
-rw-r--r--drivers/pci/hotplug/fakephp.c6
-rw-r--r--drivers/pci/hotplug/pciehp.h1
-rw-r--r--drivers/pci/hotplug/pciehp_core.c21
-rw-r--r--drivers/pci/hotplug/pciehp_hpc.c13
-rw-r--r--drivers/pci/hotplug/shpchp_core.c34
-rw-r--r--drivers/pci/intel-iommu.c23
-rw-r--r--drivers/pci/pci-sysfs.c19
-rw-r--r--drivers/pci/pcie/aspm.c2
-rw-r--r--drivers/pci/probe.c18
-rw-r--r--drivers/pci/search.c8
-rw-r--r--drivers/pci/setup-bus.c11
-rw-r--r--drivers/pcmcia/ds.c23
-rw-r--r--drivers/pcmcia/soc_common.c6
-rw-r--r--drivers/pnp/pnpacpi/rsparser.c2
-rw-r--r--drivers/rtc/rtc-cmos.c38
-rw-r--r--drivers/rtc/rtc-dev.c15
-rw-r--r--drivers/rtc/rtc-lib.c5
-rw-r--r--drivers/rtc/rtc-max6902.c2
-rw-r--r--drivers/rtc/rtc-r9701.c1
-rw-r--r--drivers/s390/block/dasd.c5
-rw-r--r--drivers/s390/block/dasd_eckd.h2
-rw-r--r--drivers/s390/block/dasd_eer.c3
-rw-r--r--drivers/s390/block/dcssblk.c5
-rw-r--r--drivers/s390/char/tape_char.c2
-rw-r--r--drivers/s390/char/tape_std.c2
-rw-r--r--drivers/s390/cio/ccwgroup.c22
-rw-r--r--drivers/s390/cio/chp.c7
-rw-r--r--drivers/s390/cio/cio.c5
-rw-r--r--drivers/s390/cio/css.c33
-rw-r--r--drivers/s390/cio/device.c40
-rw-r--r--drivers/s390/cio/device.h2
-rw-r--r--drivers/s390/cio/device_fsm.c38
-rw-r--r--drivers/s390/cio/qdio_debug.h6
-rw-r--r--drivers/s390/cio/qdio_main.c74
-rw-r--r--drivers/s390/cio/qdio_setup.c59
-rw-r--r--drivers/s390/cio/qdio_thinint.c6
-rw-r--r--drivers/s390/net/claw.c79
-rw-r--r--drivers/s390/net/ctcm_fsms.c56
-rw-r--r--drivers/s390/net/ctcm_main.c24
-rw-r--r--drivers/s390/net/ctcm_main.h9
-rw-r--r--drivers/s390/net/ctcm_mpc.c47
-rw-r--r--drivers/s390/net/lcs.c3
-rw-r--r--drivers/s390/net/qeth_core.h1
-rw-r--r--drivers/s390/net/qeth_core_main.c2
-rw-r--r--drivers/s390/net/qeth_l2_main.c27
-rw-r--r--drivers/s390/net/qeth_l3_sys.c2
-rw-r--r--drivers/s390/scsi/zfcp_ccw.c6
-rw-r--r--drivers/s390/scsi/zfcp_fc.c33
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c88
-rw-r--r--drivers/s390/scsi/zfcp_qdio.c4
-rw-r--r--drivers/scsi/Kconfig2
-rw-r--r--drivers/scsi/device_handler/scsi_dh_alua.c12
-rw-r--r--drivers/scsi/device_handler/scsi_dh_emc.c4
-rw-r--r--drivers/scsi/device_handler/scsi_dh_rdac.c4
-rw-r--r--drivers/scsi/dpt/dpti_i2o.h1
-rw-r--r--drivers/scsi/ips.c1
-rw-r--r--drivers/scsi/ips.h1
-rw-r--r--drivers/scsi/lpfc/lpfc_debugfs.c1
-rw-r--r--drivers/scsi/nsp32.c1
-rw-r--r--drivers/scsi/nsp32.h1
-rw-r--r--drivers/scsi/pcmcia/nsp_cs.c1
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c1
-rw-r--r--drivers/scsi/qla2xxx/qla_mid.c1
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c2
-rw-r--r--drivers/scsi/qlogicpti.c1
-rw-r--r--drivers/scsi/scsi_error.c2
-rw-r--r--drivers/scsi/scsi_lib.c3
-rw-r--r--drivers/scsi/scsi_scan.c3
-rw-r--r--drivers/scsi/sg.c17
-rw-r--r--drivers/serial/8250.c16
-rw-r--r--drivers/serial/8250.h1
-rw-r--r--drivers/serial/atmel_serial.c32
-rw-r--r--drivers/serial/bfin_5xx.c2
-rw-r--r--drivers/serial/imx.c27
-rw-r--r--drivers/spi/orion_spi.c2
-rw-r--r--drivers/spi/pxa2xx_spi.c116
-rw-r--r--drivers/spi/spi_mpc83xx.c26
-rw-r--r--drivers/spi/spi_s3c24xx.c6
-rw-r--r--drivers/ssb/main.c1
-rw-r--r--drivers/uio/Kconfig13
-rw-r--r--drivers/uio/Makefile1
-rw-r--r--drivers/uio/uio_pdrv.c4
-rw-r--r--drivers/uio/uio_pdrv_genirq.c188
-rw-r--r--drivers/usb/atm/ueagle-atm.c1
-rw-r--r--drivers/usb/class/cdc-acm.c5
-rw-r--r--drivers/usb/core/driver.c96
-rw-r--r--drivers/usb/core/hcd.c12
-rw-r--r--drivers/usb/core/hcd.h4
-rw-r--r--drivers/usb/core/hub.c48
-rw-r--r--drivers/usb/core/urb.c9
-rw-r--r--drivers/usb/core/usb.c73
-rw-r--r--drivers/usb/core/usb.h3
-rw-r--r--drivers/usb/gadget/amd5536udc.c1
-rw-r--r--drivers/usb/gadget/fsl_usb2_udc.c2
-rw-r--r--drivers/usb/gadget/omap_udc.c4
-rw-r--r--drivers/usb/gadget/pxa27x_udc.c2
-rw-r--r--drivers/usb/gadget/s3c2410_udc.c1
-rw-r--r--drivers/usb/host/ehci-hcd.c26
-rw-r--r--drivers/usb/host/ehci-sched.c32
-rw-r--r--drivers/usb/host/isp1760-hcd.c2
-rw-r--r--drivers/usb/host/ohci-at91.c1
-rw-r--r--drivers/usb/host/ohci-au1xxx.c1
-rw-r--r--drivers/usb/host/ohci-ep93xx.c1
-rw-r--r--drivers/usb/host/ohci-hub.c53
-rw-r--r--drivers/usb/host/ohci-lh7a404.c1
-rw-r--r--drivers/usb/host/ohci-omap.c3
-rw-r--r--drivers/usb/host/ohci-pci.c1
-rw-r--r--drivers/usb/host/ohci-pnx4008.c1
-rw-r--r--drivers/usb/host/ohci-pnx8550.c1
-rw-r--r--drivers/usb/host/ohci-ppc-of.c1
-rw-r--r--drivers/usb/host/ohci-ppc-soc.c1
-rw-r--r--drivers/usb/host/ohci-ps3.c1
-rw-r--r--drivers/usb/host/ohci-pxa27x.c1
-rw-r--r--drivers/usb/host/ohci-s3c2410.c1
-rw-r--r--drivers/usb/host/ohci-sa1111.c1
-rw-r--r--drivers/usb/host/ohci-sh.c1
-rw-r--r--drivers/usb/host/ohci-sm501.c1
-rw-r--r--drivers/usb/host/ohci-ssb.c1
-rw-r--r--drivers/usb/host/u132-hcd.c11
-rw-r--r--drivers/usb/misc/iowarrior.c1
-rw-r--r--drivers/usb/misc/sisusbvga/sisusb.c1
-rw-r--r--drivers/usb/musb/Kconfig14
-rw-r--r--drivers/usb/musb/Makefile21
-rw-r--r--drivers/usb/musb/musb_core.c42
-rw-r--r--drivers/usb/musb/musb_core.h19
-rw-r--r--drivers/usb/musb/musb_debug.h4
-rw-r--r--drivers/usb/musb/musb_gadget_ep0.c2
-rw-r--r--drivers/usb/musb/musb_procfs.c830
-rw-r--r--drivers/usb/musb/omap2430.c4
-rw-r--r--drivers/usb/musb/omap2430.h4
-rw-r--r--drivers/usb/serial/console.c2
-rw-r--r--drivers/usb/serial/cp2101.c3
-rw-r--r--drivers/usb/serial/ftdi_sio.c3
-rw-r--r--drivers/usb/serial/ftdi_sio.h5
-rw-r--r--drivers/usb/serial/garmin_gps.c2
-rw-r--r--drivers/usb/serial/option.c4
-rw-r--r--drivers/usb/serial/sierra.c12
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.c2
-rw-r--r--drivers/usb/serial/usb-serial.c4
-rw-r--r--drivers/usb/storage/Kconfig12
-rw-r--r--drivers/usb/storage/Makefile3
-rw-r--r--drivers/usb/storage/unusual_devs.h30
-rw-r--r--drivers/usb/storage/usb.c2
-rw-r--r--drivers/video/arkfb.c1
-rw-r--r--drivers/video/atmel_lcdfb.c94
-rw-r--r--drivers/video/bf54x-lq043fb.c2
-rw-r--r--drivers/video/cirrusfb.c59
-rw-r--r--drivers/video/console/fbcon.c6
-rw-r--r--drivers/video/console/fbcon.h2
-rw-r--r--drivers/video/s3fb.c1
-rw-r--r--drivers/video/tdfxfb.c9
-rw-r--r--drivers/video/vermilion/vermilion.h1
-rw-r--r--drivers/video/vt8623fb.c1
-rw-r--r--drivers/video/xilinxfb.c1
-rw-r--r--drivers/virtio/virtio_balloon.c2
-rw-r--r--drivers/watchdog/Kconfig24
-rw-r--r--drivers/watchdog/Makefile3
-rw-r--r--drivers/watchdog/at91rm9200_wdt.c2
-rw-r--r--drivers/watchdog/geodewdt.c6
-rw-r--r--drivers/watchdog/hpwdt.c93
-rw-r--r--drivers/watchdog/ibmasr.c1
-rw-r--r--drivers/watchdog/mpc8xx_wdt.c170
-rw-r--r--drivers/watchdog/mpc8xxx_wdt.c11
-rw-r--r--drivers/watchdog/pc87413_wdt.c1
-rw-r--r--drivers/watchdog/pnx4008_wdt.c4
-rw-r--r--drivers/watchdog/rc32434_wdt.c344
-rw-r--r--drivers/watchdog/rdc321x_wdt.c285
-rw-r--r--drivers/watchdog/s3c2410_wdt.c16
-rw-r--r--drivers/watchdog/wdt285.c15
-rw-r--r--drivers/xen/balloon.c2
-rw-r--r--drivers/xen/manage.c2
-rw-r--r--firmware/Makefile16
-rw-r--r--fs/9p/vfs_dir.c1
-rw-r--r--fs/9p/vfs_inode.c3
-rw-r--r--fs/Kconfig21
-rw-r--r--fs/adfs/dir.c1
-rw-r--r--fs/affs/dir.c1
-rw-r--r--fs/autofs4/root.c2
-rw-r--r--fs/befs/linuxvfs.c1
-rw-r--r--fs/bfs/dir.c2
-rw-r--r--fs/bio.c48
-rw-r--r--fs/buffer.c13
-rw-r--r--fs/cifs/CHANGES10
-rw-r--r--fs/cifs/README44
-rw-r--r--fs/cifs/asn1.c11
-rw-r--r--fs/cifs/cifs_spnego.c4
-rw-r--r--fs/cifs/cifs_spnego.h2
-rw-r--r--fs/cifs/cifsencrypt.c1
-rw-r--r--fs/cifs/cifsglob.h3
-rw-r--r--fs/cifs/connect.c33
-rw-r--r--fs/cifs/dns_resolve.c7
-rw-r--r--fs/cifs/file.c4
-rw-r--r--fs/cifs/inode.c3
-rw-r--r--fs/cifs/sess.c13
-rw-r--r--fs/compat.c8
-rw-r--r--fs/configfs/dir.c17
-rw-r--r--fs/dcache.c12
-rw-r--r--fs/efs/namei.c3
-rw-r--r--fs/exec.c2
-rw-r--r--fs/ext4/balloc.c3
-rw-r--r--fs/ext4/dir.c20
-rw-r--r--fs/ext4/ext4.h4
-rw-r--r--fs/ext4/ext4_extents.h4
-rw-r--r--fs/ext4/ext4_jbd2.h8
-rw-r--r--fs/ext4/extents.c113
-rw-r--r--fs/ext4/ialloc.c2
-rw-r--r--fs/ext4/inode.c478
-rw-r--r--fs/ext4/mballoc.c53
-rw-r--r--fs/ext4/migrate.c3
-rw-r--r--fs/ext4/resize.c3
-rw-r--r--fs/ext4/super.c1
-rw-r--r--fs/inotify_user.c27
-rw-r--r--fs/jffs2/jffs2_fs_i.h1
-rw-r--r--fs/nfs/super.c6
-rw-r--r--fs/nfsd/nfs4acl.c2
-rw-r--r--fs/nfsd/nfs4proc.c12
-rw-r--r--fs/ntfs/namei.c89
-rw-r--r--fs/ntfs/usnjrnl.h4
-rw-r--r--fs/ocfs2/aops.c2
-rw-r--r--fs/ocfs2/cluster/netdebug.c26
-rw-r--r--fs/ocfs2/cluster/tcp.c44
-rw-r--r--fs/ocfs2/cluster/tcp_internal.h32
-rw-r--r--fs/ocfs2/dir.c11
-rw-r--r--fs/ocfs2/journal.c23
-rw-r--r--fs/ocfs2/stackglue.c7
-rw-r--r--fs/partitions/check.c4
-rw-r--r--fs/proc/array.c59
-rw-r--r--fs/proc/generic.c5
-rw-r--r--fs/proc/proc_misc.c7
-rw-r--r--fs/ramfs/file-nommu.c2
-rw-r--r--fs/readdir.c8
-rw-r--r--fs/seq_file.c11
-rw-r--r--fs/ubifs/budget.c114
-rw-r--r--fs/ubifs/debug.c2
-rw-r--r--fs/ubifs/dir.c3
-rw-r--r--fs/ubifs/file.c20
-rw-r--r--fs/ubifs/find.c19
-rw-r--r--fs/ubifs/gc.c20
-rw-r--r--fs/ubifs/misc.h49
-rw-r--r--fs/ubifs/super.c25
-rw-r--r--fs/ubifs/tnc.c116
-rw-r--r--fs/ubifs/ubifs-media.h2
-rw-r--r--fs/ubifs/ubifs.h14
-rw-r--r--fs/udf/file.c1
-rw-r--r--fs/udf/ialloc.c44
-rw-r--r--fs/xfs/linux-2.6/xfs_aops.c4
-rw-r--r--fs/xfs/linux-2.6/xfs_file.c1
-rw-r--r--fs/xfs/linux-2.6/xfs_iops.c2
-rw-r--r--fs/xfs/linux-2.6/xfs_super.c20
-rw-r--r--fs/xfs/xfs_buf_item.c44
-rw-r--r--fs/xfs/xfs_dfrag.c9
-rw-r--r--fs/xfs/xfs_dmapi.h1
-rw-r--r--fs/xfs/xfs_inode.c94
-rw-r--r--fs/xfs/xfs_log.c62
-rw-r--r--fs/xfs/xfs_log_priv.h1
-rw-r--r--fs/xfs/xfs_vnodeops.c26
-rw-r--r--include/asm-generic/Kbuild.asm6
-rw-r--r--include/asm-generic/bug.h10
-rw-r--r--include/asm-generic/rtc.h12
-rw-r--r--include/asm-generic/sections.h6
-rw-r--r--include/asm-generic/syscall.h2
-rw-r--r--include/asm-mips/cacheflush.h1
-rw-r--r--include/asm-mips/cevt-r4k.h46
-rw-r--r--include/asm-mips/irqflags.h26
-rw-r--r--include/asm-mips/mipsregs.h6
-rw-r--r--include/asm-mips/pgtable-32.h2
-rw-r--r--include/asm-mips/smtc.h8
-rw-r--r--include/asm-mips/stackframe.h72
-rw-r--r--include/asm-mips/unistd.h30
-rw-r--r--include/asm-parisc/sections.h5
-rw-r--r--include/asm-x86/a.out-core.h6
-rw-r--r--include/asm-x86/a.out.h6
-rw-r--r--include/asm-x86/acpi.h8
-rw-r--r--include/asm-x86/agp.h6
-rw-r--r--include/asm-x86/alternative.h6
-rw-r--r--include/asm-x86/amd_iommu.h6
-rw-r--r--include/asm-x86/amd_iommu_types.h6
-rw-r--r--include/asm-x86/apic.h15
-rw-r--r--include/asm-x86/apicdef.h6
-rw-r--r--include/asm-x86/arch_hooks.h6
-rw-r--r--include/asm-x86/asm.h13
-rw-r--r--include/asm-x86/atomic_32.h6
-rw-r--r--include/asm-x86/atomic_64.h6
-rw-r--r--include/asm-x86/auxvec.h6
-rw-r--r--include/asm-x86/bios_ebda.h6
-rw-r--r--include/asm-x86/bitops.h6
-rw-r--r--include/asm-x86/boot.h6
-rw-r--r--include/asm-x86/bootparam.h6
-rw-r--r--include/asm-x86/bug.h6
-rw-r--r--include/asm-x86/bugs.h6
-rw-r--r--include/asm-x86/byteorder.h6
-rw-r--r--include/asm-x86/cache.h6
-rw-r--r--include/asm-x86/cacheflush.h6
-rw-r--r--include/asm-x86/calgary.h6
-rw-r--r--include/asm-x86/checksum_32.h6
-rw-r--r--include/asm-x86/checksum_64.h6
-rw-r--r--include/asm-x86/cmpxchg_32.h6
-rw-r--r--include/asm-x86/cmpxchg_64.h6
-rw-r--r--include/asm-x86/compat.h6
-rw-r--r--include/asm-x86/cpu.h6
-rw-r--r--include/asm-x86/cpufeature.h20
-rw-r--r--include/asm-x86/current.h6
-rw-r--r--include/asm-x86/debugreg.h6
-rw-r--r--include/asm-x86/delay.h6
-rw-r--r--include/asm-x86/desc.h6
-rw-r--r--include/asm-x86/desc_defs.h6
-rw-r--r--include/asm-x86/device.h6
-rw-r--r--include/asm-x86/div64.h6
-rw-r--r--include/asm-x86/dma-mapping.h6
-rw-r--r--include/asm-x86/dma.h6
-rw-r--r--include/asm-x86/dmi.h6
-rw-r--r--include/asm-x86/ds.h266
-rw-r--r--include/asm-x86/dwarf2.h6
-rw-r--r--include/asm-x86/e820.h7
-rw-r--r--include/asm-x86/edac.h6
-rw-r--r--include/asm-x86/efi.h6
-rw-r--r--include/asm-x86/elf.h11
-rw-r--r--include/asm-x86/emergency-restart.h6
-rw-r--r--include/asm-x86/fb.h6
-rw-r--r--include/asm-x86/fixmap.h6
-rw-r--r--include/asm-x86/fixmap_32.h6
-rw-r--r--include/asm-x86/fixmap_64.h6
-rw-r--r--include/asm-x86/floppy.h6
-rw-r--r--include/asm-x86/ftrace.h6
-rw-r--r--include/asm-x86/futex.h12
-rw-r--r--include/asm-x86/gart.h12
-rw-r--r--include/asm-x86/genapic_32.h7
-rw-r--r--include/asm-x86/genapic_64.h7
-rw-r--r--include/asm-x86/geode.h6
-rw-r--r--include/asm-x86/gpio.h2
-rw-r--r--include/asm-x86/hardirq_32.h6
-rw-r--r--include/asm-x86/hardirq_64.h6
-rw-r--r--include/asm-x86/highmem.h6
-rw-r--r--include/asm-x86/hpet.h6
-rw-r--r--include/asm-x86/hugetlb.h6
-rw-r--r--include/asm-x86/hw_irq.h26
-rw-r--r--include/asm-x86/hypertransport.h6
-rw-r--r--include/asm-x86/i387.h7
-rw-r--r--include/asm-x86/i8253.h6
-rw-r--r--include/asm-x86/i8259.h6
-rw-r--r--include/asm-x86/ia32.h6
-rw-r--r--include/asm-x86/ia32_unistd.h6
-rw-r--r--include/asm-x86/idle.h8
-rw-r--r--include/asm-x86/intel_arch_perfmon.h6
-rw-r--r--include/asm-x86/io.h8
-rw-r--r--include/asm-x86/io_32.h6
-rw-r--r--include/asm-x86/io_64.h7
-rw-r--r--include/asm-x86/io_apic.h6
-rw-r--r--include/asm-x86/ioctls.h6
-rw-r--r--include/asm-x86/iommu.h6
-rw-r--r--include/asm-x86/ipcbuf.h6
-rw-r--r--include/asm-x86/ipi.h6
-rw-r--r--include/asm-x86/irq.h6
-rw-r--r--include/asm-x86/irq_regs_32.h6
-rw-r--r--include/asm-x86/irq_vectors.h7
-rw-r--r--include/asm-x86/ist.h6
-rw-r--r--include/asm-x86/k8.h6
-rw-r--r--include/asm-x86/kdebug.h6
-rw-r--r--include/asm-x86/kexec.h6
-rw-r--r--include/asm-x86/kgdb.h30
-rw-r--r--include/asm-x86/kmap_types.h6
-rw-r--r--include/asm-x86/kprobes.h6
-rw-r--r--include/asm-x86/kvm.h6
-rw-r--r--include/asm-x86/kvm_host.h10
-rw-r--r--include/asm-x86/kvm_para.h6
-rw-r--r--include/asm-x86/kvm_x86_emulate.h6
-rw-r--r--include/asm-x86/ldt.h6
-rw-r--r--include/asm-x86/lguest.h6
-rw-r--r--include/asm-x86/lguest_hcall.h6
-rw-r--r--include/asm-x86/linkage.h6
-rw-r--r--include/asm-x86/local.h6
-rw-r--r--include/asm-x86/mach-bigsmp/mach_apic.h6
-rw-r--r--include/asm-x86/mach-bigsmp/mach_apicdef.h6
-rw-r--r--include/asm-x86/mach-bigsmp/mach_ipi.h6
-rw-r--r--include/asm-x86/mach-default/apm.h6
-rw-r--r--include/asm-x86/mach-default/mach_apic.h6
-rw-r--r--include/asm-x86/mach-default/mach_apicdef.h6
-rw-r--r--include/asm-x86/mach-default/mach_ipi.h6
-rw-r--r--include/asm-x86/mach-default/mach_mpparse.h6
-rw-r--r--include/asm-x86/mach-default/mach_mpspec.h6
-rw-r--r--include/asm-x86/mach-default/mach_timer.h6
-rw-r--r--include/asm-x86/mach-default/mach_traps.h6
-rw-r--r--include/asm-x86/mach-default/mach_wakecpu.h6
-rw-r--r--include/asm-x86/mach-es7000/mach_apic.h6
-rw-r--r--include/asm-x86/mach-es7000/mach_apicdef.h6
-rw-r--r--include/asm-x86/mach-es7000/mach_ipi.h6
-rw-r--r--include/asm-x86/mach-es7000/mach_mpparse.h6
-rw-r--r--include/asm-x86/mach-es7000/mach_wakecpu.h6
-rw-r--r--include/asm-x86/mach-generic/gpio.h6
-rw-r--r--include/asm-x86/mach-generic/irq_vectors_limits.h6
-rw-r--r--include/asm-x86/mach-generic/mach_apic.h6
-rw-r--r--include/asm-x86/mach-generic/mach_apicdef.h6
-rw-r--r--include/asm-x86/mach-generic/mach_ipi.h6
-rw-r--r--include/asm-x86/mach-generic/mach_mpparse.h6
-rw-r--r--include/asm-x86/mach-generic/mach_mpspec.h6
-rw-r--r--include/asm-x86/mach-numaq/mach_apic.h6
-rw-r--r--include/asm-x86/mach-numaq/mach_apicdef.h6
-rw-r--r--include/asm-x86/mach-numaq/mach_ipi.h6
-rw-r--r--include/asm-x86/mach-numaq/mach_mpparse.h6
-rw-r--r--include/asm-x86/mach-numaq/mach_wakecpu.h6
-rw-r--r--include/asm-x86/mach-rdc321x/gpio.h9
-rw-r--r--include/asm-x86/mach-summit/irq_vectors_limits.h6
-rw-r--r--include/asm-x86/mach-summit/mach_apic.h6
-rw-r--r--include/asm-x86/mach-summit/mach_apicdef.h6
-rw-r--r--include/asm-x86/mach-summit/mach_ipi.h6
-rw-r--r--include/asm-x86/mach-summit/mach_mpparse.h6
-rw-r--r--include/asm-x86/math_emu.h6
-rw-r--r--include/asm-x86/mc146818rtc.h6
-rw-r--r--include/asm-x86/mca.h6
-rw-r--r--include/asm-x86/mca_dma.h6
-rw-r--r--include/asm-x86/mce.h7
-rw-r--r--include/asm-x86/mman.h6
-rw-r--r--include/asm-x86/mmconfig.h6
-rw-r--r--include/asm-x86/mmu.h11
-rw-r--r--include/asm-x86/mmu_context.h6
-rw-r--r--include/asm-x86/mmu_context_32.h6
-rw-r--r--include/asm-x86/mmu_context_64.h6
-rw-r--r--include/asm-x86/mmx.h6
-rw-r--r--include/asm-x86/mmzone_32.h6
-rw-r--r--include/asm-x86/mmzone_64.h6
-rw-r--r--include/asm-x86/module.h6
-rw-r--r--include/asm-x86/mpspec.h6
-rw-r--r--include/asm-x86/mpspec_def.h6
-rw-r--r--include/asm-x86/msgbuf.h6
-rw-r--r--include/asm-x86/msidef.h6
-rw-r--r--include/asm-x86/msr-index.h6
-rw-r--r--include/asm-x86/msr.h50
-rw-r--r--include/asm-x86/mtrr.h6
-rw-r--r--include/asm-x86/mutex_32.h6
-rw-r--r--include/asm-x86/mutex_64.h6
-rw-r--r--include/asm-x86/nmi.h7
-rw-r--r--include/asm-x86/nops.h6
-rw-r--r--include/asm-x86/numa_32.h6
-rw-r--r--include/asm-x86/numa_64.h6
-rw-r--r--include/asm-x86/numaq.h6
-rw-r--r--include/asm-x86/olpc.h6
-rw-r--r--include/asm-x86/page.h6
-rw-r--r--include/asm-x86/page_32.h10
-rw-r--r--include/asm-x86/page_64.h7
-rw-r--r--include/asm-x86/param.h6
-rw-r--r--include/asm-x86/paravirt.h48
-rw-r--r--include/asm-x86/parport.h6
-rw-r--r--include/asm-x86/pat.h6
-rw-r--r--include/asm-x86/pci-direct.h6
-rw-r--r--include/asm-x86/pci.h6
-rw-r--r--include/asm-x86/pci_32.h6
-rw-r--r--include/asm-x86/pci_64.h6
-rw-r--r--include/asm-x86/pda.h6
-rw-r--r--include/asm-x86/percpu.h6
-rw-r--r--include/asm-x86/pgalloc.h6
-rw-r--r--include/asm-x86/pgtable-2level-defs.h6
-rw-r--r--include/asm-x86/pgtable-2level.h8
-rw-r--r--include/asm-x86/pgtable-3level-defs.h6
-rw-r--r--include/asm-x86/pgtable-3level.h13
-rw-r--r--include/asm-x86/pgtable.h15
-rw-r--r--include/asm-x86/pgtable_32.h12
-rw-r--r--include/asm-x86/pgtable_64.h8
-rw-r--r--include/asm-x86/posix_types_32.h6
-rw-r--r--include/asm-x86/posix_types_64.h6
-rw-r--r--include/asm-x86/prctl.h6
-rw-r--r--include/asm-x86/processor-flags.h6
-rw-r--r--include/asm-x86/processor.h22
-rw-r--r--include/asm-x86/proto.h6
-rw-r--r--include/asm-x86/ptrace-abi.h20
-rw-r--r--include/asm-x86/ptrace.h52
-rw-r--r--include/asm-x86/pvclock-abi.h6
-rw-r--r--include/asm-x86/pvclock.h6
-rw-r--r--include/asm-x86/reboot.h6
-rw-r--r--include/asm-x86/reboot_fixups.h6
-rw-r--r--include/asm-x86/required-features.h14
-rw-r--r--include/asm-x86/resume-trace.h8
-rw-r--r--include/asm-x86/rio.h6
-rw-r--r--include/asm-x86/rwlock.h6
-rw-r--r--include/asm-x86/rwsem.h6
-rw-r--r--include/asm-x86/scatterlist.h6
-rw-r--r--include/asm-x86/seccomp_32.h6
-rw-r--r--include/asm-x86/seccomp_64.h6
-rw-r--r--include/asm-x86/segment.h6
-rw-r--r--include/asm-x86/sembuf.h6
-rw-r--r--include/asm-x86/serial.h6
-rw-r--r--include/asm-x86/setup.h7
-rw-r--r--include/asm-x86/shmbuf.h6
-rw-r--r--include/asm-x86/shmparam.h6
-rw-r--r--include/asm-x86/sigcontext.h6
-rw-r--r--include/asm-x86/sigcontext32.h6
-rw-r--r--include/asm-x86/siginfo.h6
-rw-r--r--include/asm-x86/signal.h9
-rw-r--r--include/asm-x86/smp.h10
-rw-r--r--include/asm-x86/socket.h6
-rw-r--r--include/asm-x86/sockios.h6
-rw-r--r--include/asm-x86/sparsemem.h6
-rw-r--r--include/asm-x86/spinlock.h12
-rw-r--r--include/asm-x86/spinlock_types.h6
-rw-r--r--include/asm-x86/srat.h6
-rw-r--r--include/asm-x86/stacktrace.h6
-rw-r--r--include/asm-x86/stat.h6
-rw-r--r--include/asm-x86/statfs.h6
-rw-r--r--include/asm-x86/string_32.h6
-rw-r--r--include/asm-x86/string_64.h6
-rw-r--r--include/asm-x86/suspend_32.h6
-rw-r--r--include/asm-x86/suspend_64.h6
-rw-r--r--include/asm-x86/swiotlb.h6
-rw-r--r--include/asm-x86/sync_bitops.h6
-rw-r--r--include/asm-x86/syscall.h211
-rw-r--r--include/asm-x86/syscalls.h93
-rw-r--r--include/asm-x86/system.h6
-rw-r--r--include/asm-x86/system_64.h6
-rw-r--r--include/asm-x86/tce.h6
-rw-r--r--include/asm-x86/termbits.h6
-rw-r--r--include/asm-x86/termios.h6
-rw-r--r--include/asm-x86/therm_throt.h6
-rw-r--r--include/asm-x86/thread_info.h10
-rw-r--r--include/asm-x86/time.h8
-rw-r--r--include/asm-x86/timer.h11
-rw-r--r--include/asm-x86/timex.h6
-rw-r--r--include/asm-x86/tlb.h6
-rw-r--r--include/asm-x86/tlbflush.h6
-rw-r--r--include/asm-x86/topology.h6
-rw-r--r--include/asm-x86/trampoline.h6
-rw-r--r--include/asm-x86/traps.h10
-rw-r--r--include/asm-x86/tsc.h6
-rw-r--r--include/asm-x86/types.h6
-rw-r--r--include/asm-x86/uaccess.h6
-rw-r--r--include/asm-x86/uaccess_32.h6
-rw-r--r--include/asm-x86/uaccess_64.h7
-rw-r--r--include/asm-x86/ucontext.h6
-rw-r--r--include/asm-x86/unaligned.h6
-rw-r--r--include/asm-x86/unistd_32.h6
-rw-r--r--include/asm-x86/unistd_64.h6
-rw-r--r--include/asm-x86/unwind.h6
-rw-r--r--include/asm-x86/user32.h6
-rw-r--r--include/asm-x86/user_32.h6
-rw-r--r--include/asm-x86/user_64.h6
-rw-r--r--include/asm-x86/uv/bios.h6
-rw-r--r--include/asm-x86/uv/uv_bau.h11
-rw-r--r--include/asm-x86/uv/uv_hub.h6
-rw-r--r--include/asm-x86/uv/uv_mmrs.h6
-rw-r--r--include/asm-x86/vdso.h6
-rw-r--r--include/asm-x86/vga.h6
-rw-r--r--include/asm-x86/vgtod.h6
-rw-r--r--include/asm-x86/visws/cobalt.h6
-rw-r--r--include/asm-x86/visws/lithium.h6
-rw-r--r--include/asm-x86/visws/piix4.h6
-rw-r--r--include/asm-x86/vm86.h6
-rw-r--r--include/asm-x86/vmi_time.h6
-rw-r--r--include/asm-x86/vsyscall.h6
-rw-r--r--include/asm-x86/xen/events.h6
-rw-r--r--include/asm-x86/xen/grant_table.h6
-rw-r--r--include/asm-x86/xen/hypercall.h6
-rw-r--r--include/asm-x86/xen/hypervisor.h7
-rw-r--r--include/asm-x86/xen/interface.h6
-rw-r--r--include/asm-x86/xen/interface_32.h6
-rw-r--r--include/asm-x86/xen/interface_64.h6
-rw-r--r--include/asm-x86/xen/page.h6
-rw-r--r--include/linux/Kbuild7
-rw-r--r--include/linux/ata.h2
-rw-r--r--include/linux/blkdev.h20
-rw-r--r--include/linux/clockchips.h2
-rw-r--r--include/linux/cnt32_to_63.h (renamed from arch/arm/include/asm/cnt32_to_63.h)46
-rw-r--r--include/linux/cpuset.h2
-rw-r--r--include/linux/dcache.h2
-rw-r--r--include/linux/device.h5
-rw-r--r--include/linux/fs_uart_pd.h1
-rw-r--r--include/linux/genhd.h10
-rw-r--r--include/linux/hrtimer.h18
-rw-r--r--include/linux/i2c.h12
-rw-r--r--include/linux/ide.h5
-rw-r--r--include/linux/ioport.h5
-rw-r--r--include/linux/kvm.h4
-rw-r--r--include/linux/libata.h24
-rw-r--r--include/linux/list.h13
-rw-r--r--include/linux/memstick.h97
-rw-r--r--include/linux/mlx4/device.h4
-rw-r--r--include/linux/mmzone.h12
-rw-r--r--include/linux/mroute.h2
-rw-r--r--include/linux/mroute6.h1
-rw-r--r--include/linux/net.h14
-rw-r--r--include/linux/pci.h8
-rw-r--r--include/linux/pim.h18
-rw-r--r--include/linux/pnp.h7
-rw-r--r--include/linux/quicklist.h7
-rw-r--r--include/linux/ramfs.h1
-rw-r--r--include/linux/res_counter.h2
-rw-r--r--include/linux/sched.h4
-rw-r--r--include/linux/smb.h2
-rw-r--r--include/linux/stacktrace.h2
-rw-r--r--include/linux/stop_machine.h19
-rw-r--r--include/linux/sunrpc/svc_rdma.h1
-rw-r--r--include/linux/tick.h5
-rw-r--r--include/linux/tracehook.h2
-rw-r--r--include/linux/usb.h3
-rw-r--r--include/linux/videodev2.h2
-rw-r--r--include/net/9p/9p.h1
-rw-r--r--include/net/9p/transport.h9
-rw-r--r--include/net/bluetooth/hci_core.h3
-rw-r--r--include/net/inet_timewait_sock.h3
-rw-r--r--include/net/netlink.h2
-rw-r--r--include/net/pkt_sched.h1
-rw-r--r--include/net/sch_generic.h17
-rw-r--r--include/net/sctp/sm.h3
-rw-r--r--include/scsi/scsi.h14
-rw-r--r--init/main.c9
-rw-r--r--kernel/auditsc.c3
-rw-r--r--kernel/cgroup.c5
-rw-r--r--kernel/cpuset.c349
-rw-r--r--kernel/exit.c100
-rw-r--r--kernel/hrtimer.c95
-rw-r--r--kernel/kexec.c8
-rw-r--r--kernel/kgdb.c10
-rw-r--r--kernel/lockdep.c6
-rw-r--r--kernel/lockdep_proc.c3
-rw-r--r--kernel/module.c2
-rw-r--r--kernel/nsproxy.c1
-rw-r--r--kernel/pid_namespace.c3
-rw-r--r--kernel/pm_qos_params.c25
-rw-r--r--kernel/posix-timers.c2
-rw-r--r--kernel/power/disk.c13
-rw-r--r--kernel/power/main.c5
-rw-r--r--kernel/power/swap.c1
-rw-r--r--kernel/rcupdate.c1
-rw-r--r--kernel/resource.c88
-rw-r--r--kernel/sched.c90
-rw-r--r--kernel/sched_clock.c84
-rw-r--r--kernel/sched_features.h2
-rw-r--r--kernel/sched_rt.c14
-rw-r--r--kernel/smp.c10
-rw-r--r--kernel/softlockup.c3
-rw-r--r--kernel/sysctl.c1
-rw-r--r--kernel/time/clockevents.c15
-rw-r--r--kernel/time/ntp.c2
-rw-r--r--kernel/time/tick-broadcast.c99
-rw-r--r--kernel/time/tick-common.c15
-rw-r--r--kernel/time/tick-internal.h11
-rw-r--r--kernel/time/tick-oneshot.c44
-rw-r--r--kernel/time/tick-sched.c22
-rw-r--r--kernel/trace/trace_sysprof.c2
-rw-r--r--kernel/user_namespace.c1
-rw-r--r--kernel/utsname.c1
-rw-r--r--kernel/utsname_sysctl.c1
-rw-r--r--lib/Kconfig.debug6
-rw-r--r--lib/debugobjects.c31
-rw-r--r--lib/kobject.c3
-rw-r--r--lib/scatterlist.c4
-rw-r--r--lib/swiotlb.c2
-rw-r--r--lib/vsprintf.c11
-rw-r--r--mm/filemap.c11
-rw-r--r--mm/memcontrol.c18
-rw-r--r--mm/mmap.c4
-rw-r--r--mm/mmzone.c2
-rw-r--r--mm/page_alloc.c22
-rw-r--r--mm/page_isolation.c13
-rw-r--r--mm/quicklist.c9
-rw-r--r--mm/slub.c5
-rw-r--r--mm/tiny-shmem.c26
-rw-r--r--mm/truncate.c4
-rw-r--r--mm/vmstat.c19
-rw-r--r--net/9p/client.c10
-rw-r--r--net/9p/conv.c6
-rw-r--r--net/9p/mod.c92
-rw-r--r--net/9p/trans_fd.c104
-rw-r--r--net/9p/trans_virtio.c2
-rw-r--r--net/bluetooth/af_bluetooth.c2
-rw-r--r--net/bluetooth/hci_conn.c21
-rw-r--r--net/bluetooth/hci_core.c3
-rw-r--r--net/bluetooth/hci_event.c11
-rw-r--r--net/bluetooth/l2cap.c34
-rw-r--r--net/bluetooth/sco.c2
-rw-r--r--net/bridge/br_ioctl.c8
-rw-r--r--net/bridge/br_sysfs_br.c26
-rw-r--r--net/core/dev.c13
-rw-r--r--net/ipv4/devinet.c15
-rw-r--r--net/ipv4/icmp.c22
-rw-r--r--net/ipv4/inet_timewait_sock.c35
-rw-r--r--net/ipv4/route.c24
-rw-r--r--net/ipv4/tcp_ipv4.c3
-rw-r--r--net/ipv4/tcp_output.c6
-rw-r--r--net/ipv4/udp.c62
-rw-r--r--net/ipv6/addrconf.c1
-rw-r--r--net/ipv6/icmp.c23
-rw-r--r--net/ipv6/ip6_output.c64
-rw-r--r--net/ipv6/netfilter/ip6t_hbh.c8
-rw-r--r--net/ipv6/raw.c6
-rw-r--r--net/ipv6/route.c2
-rw-r--r--net/ipv6/sysctl_net_ipv6.c2
-rw-r--r--net/ipv6/tcp_ipv6.c3
-rw-r--r--net/iucv/iucv.c3
-rw-r--r--net/key/af_key.c30
-rw-r--r--net/mac80211/debugfs_key.c6
-rw-r--r--net/mac80211/debugfs_netdev.c24
-rw-r--r--net/mac80211/ieee80211_i.h10
-rw-r--r--net/mac80211/mesh.c2
-rw-r--r--net/mac80211/mlme.c4
-rw-r--r--net/netfilter/nf_conntrack_irc.c10
-rw-r--r--net/netfilter/nf_conntrack_proto_gre.c14
-rw-r--r--net/netfilter/nf_conntrack_sip.c6
-rw-r--r--net/rfkill/rfkill.c2
-rw-r--r--net/sched/cls_api.c2
-rw-r--r--net/sched/cls_route.c2
-rw-r--r--net/sched/sch_api.c74
-rw-r--r--net/sched/sch_cbq.c10
-rw-r--r--net/sched/sch_generic.c12
-rw-r--r--net/sched/sch_hfsc.c4
-rw-r--r--net/sched/sch_htb.c8
-rw-r--r--net/sched/sch_netem.c2
-rw-r--r--net/sched/sch_teql.c2
-rw-r--r--net/sctp/associola.c9
-rw-r--r--net/sctp/auth.c7
-rw-r--r--net/sctp/endpointola.c4
-rw-r--r--net/sctp/output.c3
-rw-r--r--net/sctp/sm_make_chunk.c52
-rw-r--r--net/sctp/sm_statefuns.c48
-rw-r--r--net/sctp/socket.c96
-rw-r--r--net/socket.c2
-rw-r--r--net/sunrpc/sysctl.c18
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_recvfrom.c8
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_transport.c5
-rw-r--r--net/tipc/bcast.c22
-rw-r--r--net/tipc/bcast.h22
-rw-r--r--net/tipc/bearer.c2
-rw-r--r--net/tipc/bearer.h2
-rw-r--r--net/tipc/cluster.c16
-rw-r--r--net/tipc/cluster.h10
-rw-r--r--net/tipc/discover.c2
-rw-r--r--net/tipc/link.c26
-rw-r--r--net/tipc/link.h2
-rw-r--r--net/tipc/name_table.h2
-rw-r--r--net/tipc/net.c2
-rw-r--r--net/tipc/net.h2
-rw-r--r--net/tipc/node.c60
-rw-r--r--net/tipc/node.h42
-rw-r--r--net/tipc/node_subscr.c4
-rw-r--r--net/tipc/node_subscr.h10
-rw-r--r--net/tipc/port.h2
-rw-r--r--net/tipc/zone.c4
-rw-r--r--net/tipc/zone.h2
-rw-r--r--net/wireless/Kconfig3
-rw-r--r--net/xfrm/xfrm_output.c12
-rw-r--r--net/xfrm/xfrm_policy.c7
-rw-r--r--net/xfrm/xfrm_state.c34
-rw-r--r--scripts/kconfig/conf.c123
-rw-r--r--scripts/kconfig/confdata.c8
-rwxr-xr-xscripts/kernel-doc4
-rw-r--r--scripts/mod/file2alias.c16
-rw-r--r--security/device_cgroup.c18
-rw-r--r--security/selinux/ss/services.c17
-rw-r--r--sound/Kconfig4
-rw-r--r--sound/core/pcm.c4
-rw-r--r--sound/core/pcm_native.c13
-rw-r--r--sound/core/rawmidi.c4
-rw-r--r--sound/mips/au1x00.c1
-rw-r--r--sound/pci/ca0106/ca0106_main.c5
-rw-r--r--sound/pci/hda/hda_intel.c9
-rw-r--r--sound/pci/hda/patch_realtek.c30
-rw-r--r--sound/pci/hda/patch_sigmatel.c7
-rw-r--r--sound/pci/oxygen/hifier.c4
-rw-r--r--sound/pci/oxygen/oxygen.c4
-rw-r--r--sound/pci/oxygen/oxygen_mixer.c5
-rw-r--r--sound/ppc/awacs.c50
-rw-r--r--sound/soc/at32/at32-pcm.c5
-rw-r--r--sound/soc/at91/eti_b1_wm8731.c1
-rw-r--r--sound/soc/codecs/ak4535.c11
-rw-r--r--sound/soc/codecs/cs4270.c103
-rw-r--r--sound/soc/codecs/tlv320aic3x.c11
-rw-r--r--sound/soc/codecs/uda1380.c9
-rw-r--r--sound/soc/codecs/wm8510.c9
-rw-r--r--sound/soc/codecs/wm8731.c11
-rw-r--r--sound/soc/codecs/wm8750.c10
-rw-r--r--sound/soc/codecs/wm8753.c16
-rw-r--r--sound/soc/codecs/wm8990.c11
-rw-r--r--sound/soc/codecs/wm9712.c1
-rw-r--r--sound/soc/omap/n810.c18
-rw-r--r--sound/soc/pxa/pxa2xx-i2s.c40
1759 files changed, 43448 insertions, 16423 deletions
diff --git a/.mailmap b/.mailmap
index 726084286d3..dfab12f809e 100644
--- a/.mailmap
+++ b/.mailmap
@@ -96,4 +96,6 @@ Tejun Heo <htejun@gmail.com>
96Thomas Graf <tgraf@suug.ch> 96Thomas Graf <tgraf@suug.ch>
97Tony Luck <tony.luck@intel.com> 97Tony Luck <tony.luck@intel.com>
98Tsuneo Yoshioka <Tsuneo.Yoshioka@f-secure.com> 98Tsuneo Yoshioka <Tsuneo.Yoshioka@f-secure.com>
99Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
100Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
99Valdis Kletnieks <Valdis.Kletnieks@vt.edu> 101Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
diff --git a/Documentation/ABI/testing/sysfs-firmware-sgi_uv b/Documentation/ABI/testing/sysfs-firmware-sgi_uv
new file mode 100644
index 00000000000..4573fd4b787
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-firmware-sgi_uv
@@ -0,0 +1,27 @@
1What: /sys/firmware/sgi_uv/
2Date: August 2008
3Contact: Russ Anderson <rja@sgi.com>
4Description:
5 The /sys/firmware/sgi_uv directory contains information
6 about the SGI UV platform.
7
8 Under that directory are a number of files:
9
10 partition_id
11 coherence_id
12
13 The partition_id entry contains the partition id.
14 SGI UV systems can be partitioned into multiple physical
15 machines, which each partition running a unique copy
16 of the operating system. Each partition will have a unique
17 partition id. To display the partition id, use the command:
18
19 cat /sys/firmware/sgi_uv/partition_id
20
21 The coherence_id entry contains the coherence id.
22 A partitioned SGI UV system can have one or more coherence
23 domain. The coherence id indicates which coherence domain
24 this partition is in. To display the coherence id, use the
25 command:
26
27 cat /sys/firmware/sgi_uv/coherence_id
diff --git a/Documentation/ABI/testing/sysfs-gpio b/Documentation/ABI/testing/sysfs-gpio
new file mode 100644
index 00000000000..8aab8092ad3
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-gpio
@@ -0,0 +1,26 @@
1What: /sys/class/gpio/
2Date: July 2008
3KernelVersion: 2.6.27
4Contact: David Brownell <dbrownell@users.sourceforge.net>
5Description:
6
7 As a Kconfig option, individual GPIO signals may be accessed from
8 userspace. GPIOs are only made available to userspace by an explicit
9 "export" operation. If a given GPIO is not claimed for use by
10 kernel code, it may be exported by userspace (and unexported later).
11 Kernel code may export it for complete or partial access.
12
13 GPIOs are identified as they are inside the kernel, using integers in
14 the range 0..INT_MAX. See Documentation/gpio.txt for more information.
15
16 /sys/class/gpio
17 /export ... asks the kernel to export a GPIO to userspace
18 /unexport ... to return a GPIO to the kernel
19 /gpioN ... for each exported GPIO #N
20 /value ... always readable, writes fail for input GPIOs
21 /direction ... r/w as: in, out (default low); write: high, low
22 /gpiochipN ... for each gpiochip; #N is its first GPIO
23 /base ... (r/o) same as N
24 /label ... (r/o) descriptive, not necessarily unique
25 /ngpio ... (r/o) number of GPIOs; numbered N to N + (ngpio - 1)
26
diff --git a/Documentation/DMA-mapping.txt b/Documentation/DMA-mapping.txt
index b463ecd0c7c..c74fec8c235 100644
--- a/Documentation/DMA-mapping.txt
+++ b/Documentation/DMA-mapping.txt
@@ -740,7 +740,7 @@ failure can be determined by:
740 dma_addr_t dma_handle; 740 dma_addr_t dma_handle;
741 741
742 dma_handle = pci_map_single(pdev, addr, size, direction); 742 dma_handle = pci_map_single(pdev, addr, size, direction);
743 if (pci_dma_mapping_error(dma_handle)) { 743 if (pci_dma_mapping_error(pdev, dma_handle)) {
744 /* 744 /*
745 * reduce current DMA mapping usage, 745 * reduce current DMA mapping usage,
746 * delay and try again later or 746 * delay and try again later or
diff --git a/Documentation/HOWTO b/Documentation/HOWTO
index c2371c5a98f..48a3955f05f 100644
--- a/Documentation/HOWTO
+++ b/Documentation/HOWTO
@@ -77,7 +77,8 @@ documentation files are also added which explain how to use the feature.
77When a kernel change causes the interface that the kernel exposes to 77When a kernel change causes the interface that the kernel exposes to
78userspace to change, it is recommended that you send the information or 78userspace to change, it is recommended that you send the information or
79a patch to the manual pages explaining the change to the manual pages 79a patch to the manual pages explaining the change to the manual pages
80maintainer at mtk.manpages@gmail.com. 80maintainer at mtk.manpages@gmail.com, and CC the list
81linux-api@vger.kernel.org.
81 82
82Here is a list of files that are in the kernel source tree that are 83Here is a list of files that are in the kernel source tree that are
83required reading: 84required reading:
diff --git a/Documentation/SubmitChecklist b/Documentation/SubmitChecklist
index da10e071424..21f0795af20 100644
--- a/Documentation/SubmitChecklist
+++ b/Documentation/SubmitChecklist
@@ -67,6 +67,8 @@ kernel patches.
67 67
6819: All new userspace interfaces are documented in Documentation/ABI/. 6819: All new userspace interfaces are documented in Documentation/ABI/.
69 See Documentation/ABI/README for more information. 69 See Documentation/ABI/README for more information.
70 Patches that change userspace interfaces should be CCed to
71 linux-api@vger.kernel.org.
70 72
7120: Check that it all passes `make headers_check'. 7320: Check that it all passes `make headers_check'.
72 74
diff --git a/Documentation/cpusets.txt b/Documentation/cpusets.txt
index 1f5a924d1e5..47e568a9370 100644
--- a/Documentation/cpusets.txt
+++ b/Documentation/cpusets.txt
@@ -635,14 +635,16 @@ prior 'mems' setting, will not be moved.
635 635
636There is an exception to the above. If hotplug functionality is used 636There is an exception to the above. If hotplug functionality is used
637to remove all the CPUs that are currently assigned to a cpuset, 637to remove all the CPUs that are currently assigned to a cpuset,
638then the kernel will automatically update the cpus_allowed of all 638then all the tasks in that cpuset will be moved to the nearest ancestor
639tasks attached to CPUs in that cpuset to allow all CPUs. When memory 639with non-empty cpus. But the moving of some (or all) tasks might fail if
640hotplug functionality for removing Memory Nodes is available, a 640cpuset is bound with another cgroup subsystem which has some restrictions
641similar exception is expected to apply there as well. In general, 641on task attaching. In this failing case, those tasks will stay
642the kernel prefers to violate cpuset placement, over starving a task 642in the original cpuset, and the kernel will automatically update
643that has had all its allowed CPUs or Memory Nodes taken offline. User 643their cpus_allowed to allow all online CPUs. When memory hotplug
644code should reconfigure cpusets to only refer to online CPUs and Memory 644functionality for removing Memory Nodes is available, a similar exception
645Nodes when using hotplug to add or remove such resources. 645is expected to apply there as well. In general, the kernel prefers to
646violate cpuset placement, over starving a task that has had all
647its allowed CPUs or Memory Nodes taken offline.
646 648
647There is a second exception to the above. GFP_ATOMIC requests are 649There is a second exception to the above. GFP_ATOMIC requests are
648kernel internal allocations that must be satisfied, immediately. 650kernel internal allocations that must be satisfied, immediately.
diff --git a/Documentation/dontdiff b/Documentation/dontdiff
index 881e6dd03ae..27809357da5 100644
--- a/Documentation/dontdiff
+++ b/Documentation/dontdiff
@@ -5,6 +5,8 @@
5*.css 5*.css
6*.dvi 6*.dvi
7*.eps 7*.eps
8*.fw.gen.S
9*.fw
8*.gif 10*.gif
9*.grep 11*.grep
10*.grp 12*.grp
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index eb1a47b9742..83c88cae1ed 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -322,3 +322,11 @@ Why: Accounting can now be enabled/disabled without kernel recompilation.
322 controlled by a kernel/module/sysfs/sysctl parameter. 322 controlled by a kernel/module/sysfs/sysctl parameter.
323Who: Krzysztof Piotr Oledzki <ole@ans.pl> 323Who: Krzysztof Piotr Oledzki <ole@ans.pl>
324 324
325---------------------------
326
327What: ide-scsi (BLK_DEV_IDESCSI)
328When: 2.6.29
329Why: The 2.6 kernel supports direct writing to ide CD drives, which
330 eliminates the need for ide-scsi. The new method is more
331 efficient in every way.
332Who: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 680fb566b92..8362860e21a 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -144,8 +144,8 @@ prototypes:
144 void (*kill_sb) (struct super_block *); 144 void (*kill_sb) (struct super_block *);
145locking rules: 145locking rules:
146 may block BKL 146 may block BKL
147get_sb yes yes 147get_sb yes no
148kill_sb yes yes 148kill_sb yes no
149 149
150->get_sb() returns error or 0 with locked superblock attached to the vfsmount 150->get_sb() returns error or 0 with locked superblock attached to the vfsmount
151(exclusive on ->s_umount). 151(exclusive on ->s_umount).
@@ -409,12 +409,12 @@ ioctl: yes (see below)
409unlocked_ioctl: no (see below) 409unlocked_ioctl: no (see below)
410compat_ioctl: no 410compat_ioctl: no
411mmap: no 411mmap: no
412open: maybe (see below) 412open: no
413flush: no 413flush: no
414release: no 414release: no
415fsync: no (see below) 415fsync: no (see below)
416aio_fsync: no 416aio_fsync: no
417fasync: yes (see below) 417fasync: no
418lock: yes 418lock: yes
419readv: no 419readv: no
420writev: no 420writev: no
@@ -431,13 +431,6 @@ For many filesystems, it is probably safe to acquire the inode
431semaphore. Note some filesystems (i.e. remote ones) provide no 431semaphore. Note some filesystems (i.e. remote ones) provide no
432protection for i_size so you will need to use the BKL. 432protection for i_size so you will need to use the BKL.
433 433
434->open() locking is in-transit: big lock partially moved into the methods.
435The only exception is ->open() in the instances of file_operations that never
436end up in ->i_fop/->proc_fops, i.e. ones that belong to character devices
437(chrdev_open() takes lock before replacing ->f_op and calling the secondary
438method. As soon as we fix the handling of module reference counters all
439instances of ->open() will be called without the BKL.
440
441Note: ext2_release() was *the* source of contention on fs-intensive 434Note: ext2_release() was *the* source of contention on fs-intensive
442loads and dropping BKL on ->release() helps to get rid of that (we still 435loads and dropping BKL on ->release() helps to get rid of that (we still
443grab BKL for cases when we close a file that had been opened r/w, but that 436grab BKL for cases when we close a file that had been opened r/w, but that
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt
index 80e193d82e2..0d5394920a3 100644
--- a/Documentation/filesystems/ext4.txt
+++ b/Documentation/filesystems/ext4.txt
@@ -26,6 +26,12 @@ Mailing list: linux-ext4@vger.kernel.org
26 26
27 git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git 27 git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
28 28
29 - Note that it is highly important to install the mke2fs.conf file
30 that comes with the e2fsprogs 1.41.x sources in /etc/mke2fs.conf. If
31 you have edited the /etc/mke2fs.conf file installed on your system,
32 you will need to merge your changes with the version from e2fsprogs
33 1.41.x.
34
29 - Create a new filesystem using the ext4dev filesystem type: 35 - Create a new filesystem using the ext4dev filesystem type:
30 36
31 # mke2fs -t ext4dev /dev/hda1 37 # mke2fs -t ext4dev /dev/hda1
diff --git a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt
index e79ee2db183..ac2a261c5f7 100644
--- a/Documentation/filesystems/ntfs.txt
+++ b/Documentation/filesystems/ntfs.txt
@@ -40,7 +40,7 @@ Web site
40======== 40========
41 41
42There is plenty of additional information on the linux-ntfs web site 42There is plenty of additional information on the linux-ntfs web site
43at http://linux-ntfs.sourceforge.net/ 43at http://www.linux-ntfs.org/
44 44
45The web site has a lot of additional information, such as a comprehensive 45The web site has a lot of additional information, such as a comprehensive
46FAQ, documentation on the NTFS on-disk format, information on the Linux-NTFS 46FAQ, documentation on the NTFS on-disk format, information on the Linux-NTFS
@@ -272,7 +272,7 @@ And you would know that /dev/hda2 has a size of 37768814 - 4209030 + 1 =
272For Win2k and later dynamic disks, you can for example use the ldminfo utility 272For Win2k and later dynamic disks, you can for example use the ldminfo utility
273which is part of the Linux LDM tools (the latest version at the time of 273which is part of the Linux LDM tools (the latest version at the time of
274writing is linux-ldm-0.0.8.tar.bz2). You can download it from: 274writing is linux-ldm-0.0.8.tar.bz2). You can download it from:
275 http://linux-ntfs.sourceforge.net/downloads.html 275 http://www.linux-ntfs.org/
276Simply extract the downloaded archive (tar xvjf linux-ldm-0.0.8.tar.bz2), go 276Simply extract the downloaded archive (tar xvjf linux-ldm-0.0.8.tar.bz2), go
277into it (cd linux-ldm-0.0.8) and change to the test directory (cd test). You 277into it (cd linux-ldm-0.0.8) and change to the test directory (cd test). You
278will find the precompiled (i386) ldminfo utility there. NOTE: You will not be 278will find the precompiled (i386) ldminfo utility there. NOTE: You will not be
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index 64557821ee5..f566ad9bcb7 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -1339,6 +1339,25 @@ Enables/Disables the protection of the per-process proc entries "maps" and
1339"smaps". When enabled, the contents of these files are visible only to 1339"smaps". When enabled, the contents of these files are visible only to
1340readers that are allowed to ptrace() the given process. 1340readers that are allowed to ptrace() the given process.
1341 1341
1342msgmni
1343------
1344
1345Maximum number of message queue ids on the system.
1346This value scales to the amount of lowmem. It is automatically recomputed
1347upon memory add/remove or ipc namespace creation/removal.
1348When a value is written into this file, msgmni's value becomes fixed, i.e. it
1349is not recomputed anymore when one of the above events occurs.
1350Use auto_msgmni to change this behavior.
1351
1352auto_msgmni
1353-----------
1354
1355Enables/Disables automatic recomputing of msgmni upon memory add/remove or
1356upon ipc namespace creation/removal (see the msgmni description above).
1357Echoing "1" into this file enables msgmni automatic recomputing.
1358Echoing "0" turns it off.
1359auto_msgmni default value is 1.
1360
1342 1361
13432.4 /proc/sys/vm - The virtual memory subsystem 13622.4 /proc/sys/vm - The virtual memory subsystem
1344----------------------------------------------- 1363-----------------------------------------------
@@ -2394,6 +2413,8 @@ The following 4 memory types are supported:
2394 - (bit 1) anonymous shared memory 2413 - (bit 1) anonymous shared memory
2395 - (bit 2) file-backed private memory 2414 - (bit 2) file-backed private memory
2396 - (bit 3) file-backed shared memory 2415 - (bit 3) file-backed shared memory
2416 - (bit 4) ELF header pages in file-backed private memory areas (it is
2417 effective only if the bit 2 is cleared)
2397 2418
2398 Note that MMIO pages such as frame buffer are never dumped and vDSO pages 2419 Note that MMIO pages such as frame buffer are never dumped and vDSO pages
2399 are always dumped regardless of the bitmask status. 2420 are always dumped regardless of the bitmask status.
diff --git a/Documentation/ioctl/cdrom.txt b/Documentation/ioctl/cdrom.txt
index 62d4af44ec4..59df81c8da2 100644
--- a/Documentation/ioctl/cdrom.txt
+++ b/Documentation/ioctl/cdrom.txt
@@ -271,14 +271,14 @@ CDROMCLOSETRAY pendant of CDROMEJECT
271 271
272 usage: 272 usage:
273 273
274 ioctl(fd, CDROMEJECT, 0); 274 ioctl(fd, CDROMCLOSETRAY, 0);
275 275
276 inputs: none 276 inputs: none
277 277
278 outputs: none 278 outputs: none
279 279
280 error returns: 280 error returns:
281 ENOSYS cd drive not capable of ejecting 281 ENOSYS cd drive not capable of closing the tray
282 EBUSY other processes are accessing drive, or door is locked 282 EBUSY other processes are accessing drive, or door is locked
283 283
284 notes: 284 notes:
diff --git a/Documentation/ja_JP/HOWTO b/Documentation/ja_JP/HOWTO
index 488c77fa3aa..0775cf4798b 100644
--- a/Documentation/ja_JP/HOWTO
+++ b/Documentation/ja_JP/HOWTO
@@ -11,14 +11,14 @@ for non English (read: Japanese) speakers and is not intended as a
11fork. So if you have any comments or updates for this file, please try 11fork. So if you have any comments or updates for this file, please try
12to update the original English file first. 12to update the original English file first.
13 13
14Last Updated: 2007/11/16 14Last Updated: 2008/08/21
15================================== 15==================================
16ã“ã‚Œã¯ã€ 16ã“ã‚Œã¯ã€
17linux-2.6.24/Documentation/HOWTO 17linux-2.6.27/Documentation/HOWTO
18ã®å’Œè¨³ã§ã™ã€‚ 18ã®å’Œè¨³ã§ã™ã€‚
19 19
20翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ > 20翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ >
21翻訳日: 2007/11/10 21翻訳日: 2008/8/5
22翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com> 22翻訳者: Tsugikazu Shibata <tshibata at ab dot jp dot nec dot com>
23校正者: æ¾å€‰ã•ã‚“ <nbh--mats at nifty dot com> 23校正者: æ¾å€‰ã•ã‚“ <nbh--mats at nifty dot com>
24 å°æž— é›…å…¸ã•ã‚“ (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp> 24 å°æž— é›…å…¸ã•ã‚“ (Masanori Kobayasi) <zap03216 at nifty dot ne dot jp>
@@ -287,13 +287,15 @@ Linux カーãƒãƒ«ã®é–‹ç™ºãƒ—ロセスã¯ç¾åœ¨å¹¾ã¤ã‹ã®ç•°ãªã‚‹ãƒ¡ã‚¤ãƒ³ã‚
287 ã«å®‰å®šã—ãŸçŠ¶æ…‹ã«ã‚ã‚‹ã¨åˆ¤æ–­ã—ãŸã¨ãã«ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã¾ã™ã€‚目標ã¯æ¯Žé€±æ–° 287 ã«å®‰å®šã—ãŸçŠ¶æ…‹ã«ã‚ã‚‹ã¨åˆ¤æ–­ã—ãŸã¨ãã«ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã¾ã™ã€‚目標ã¯æ¯Žé€±æ–°
288 ã—ã„ -rc カーãƒãƒ«ã‚’リリースã™ã‚‹ã“ã¨ã§ã™ã€‚ 288 ã—ã„ -rc カーãƒãƒ«ã‚’リリースã™ã‚‹ã“ã¨ã§ã™ã€‚
289 289
290 - 以下㮠URL ã§å„ -rc リリースã«å­˜åœ¨ã™ã‚‹æ—¢çŸ¥ã®å¾Œæˆ»ã‚Šå•é¡Œã®ãƒªã‚¹ãƒˆ
291 ãŒè¿½è·¡ã•ã‚Œã¾ã™-
292 http://kernelnewbies.org/known_regressions
293
294 - ã“ã®ãƒ—ロセスã¯ã‚«ãƒ¼ãƒãƒ«ãŒ 「準備ãŒã§ããŸã€ã¨è€ƒãˆã‚‰ã‚Œã‚‹ã¾ã§ç¶™ç¶šã—ã¾ 290 - ã“ã®ãƒ—ロセスã¯ã‚«ãƒ¼ãƒãƒ«ãŒ 「準備ãŒã§ããŸã€ã¨è€ƒãˆã‚‰ã‚Œã‚‹ã¾ã§ç¶™ç¶šã—ã¾
295 ã™ã€‚ã“ã®ãƒ—ロセスã¯ã ã„ãŸã„ 6週間継続ã—ã¾ã™ã€‚ 291 ã™ã€‚ã“ã®ãƒ—ロセスã¯ã ã„ãŸã„ 6週間継続ã—ã¾ã™ã€‚
296 292
293 - å„リリースã§ã®æ—¢çŸ¥ã®å¾Œæˆ»ã‚Šå•é¡Œ(regression: ã“ã®ãƒªãƒªãƒ¼ã‚¹ã®ä¸­ã§æ–°è¦
294 ã«ä½œã‚Šè¾¼ã¾ã‚ŒãŸå•é¡Œã‚’指ã™) ã¯ãã®éƒ½åº¦ Linux-kernel メーリングリスト
295 ã«æŠ•ç¨¿ã•ã‚Œã¾ã™ã€‚ゴールã¨ã—ã¦ã¯ã€ã‚«ãƒ¼ãƒãƒ«ãŒ 「準備ãŒã§ããŸã€ã¨å®£è¨€
296 ã™ã‚‹å‰ã«ã“ã®ãƒªã‚¹ãƒˆã®é•·ã•ã‚’ゼロã«æ¸›ã‚‰ã™ã“ã¨ã§ã™ãŒã€ç¾å®Ÿã«ã¯ã€æ•°å€‹ã®
297 後戻りå•é¡ŒãŒãƒªãƒªãƒ¼ã‚¹æ™‚ã«ãŸã³ãŸã³æ®‹ã£ã¦ã—ã¾ã„ã¾ã™ã€‚
298
297Andrew Morton ㌠Linux-kernel メーリングリストã«ã‚«ãƒ¼ãƒãƒ«ãƒªãƒªãƒ¼ã‚¹ã«ã¤ã„ 299Andrew Morton ㌠Linux-kernel メーリングリストã«ã‚«ãƒ¼ãƒãƒ«ãƒªãƒªãƒ¼ã‚¹ã«ã¤ã„
298ã¦æ›¸ã„ãŸã“ã¨ã‚’ã“ã“ã§è¨€ã£ã¦ãŠãã“ã¨ã¯ä¾¡å€¤ãŒã‚ã‚Šã¾ã™- 300ã¦æ›¸ã„ãŸã“ã¨ã‚’ã“ã“ã§è¨€ã£ã¦ãŠãã“ã¨ã¯ä¾¡å€¤ãŒã‚ã‚Šã¾ã™-
299 「カーãƒãƒ«ãŒã„ã¤ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã‚‹ã‹ã¯èª°ã‚‚知りã¾ã›ã‚“。ãªãœãªã‚‰ã€ã“ã‚Œã¯ç¾ 301 「カーãƒãƒ«ãŒã„ã¤ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã‚‹ã‹ã¯èª°ã‚‚知りã¾ã›ã‚“。ãªãœãªã‚‰ã€ã“ã‚Œã¯ç¾
@@ -303,18 +305,20 @@ Andrew Morton ㌠Linux-kernel メーリングリストã«ã‚«ãƒ¼ãƒãƒ«ãƒªãƒªãƒ¼ã
3032.6.x.y -stable カーãƒãƒ«ãƒ„リー 3052.6.x.y -stable カーãƒãƒ«ãƒ„リー
304--------------------------- 306---------------------------
305 307
306ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«4ã¤ç›®ã®æ•°å­—ãŒã¤ã„ãŸã‚«ãƒ¼ãƒãƒ«ã¯ -stable カーãƒãƒ«ã§ã™ã€‚ã“れ㫠308ãƒãƒ¼ã‚¸ãƒ§ãƒ³ç•ªå·ãŒ4ã¤ã®æ•°å­—ã«åˆ†ã‹ã‚Œã¦ã„るカーãƒãƒ«ã¯ -stable カーãƒãƒ«ã§ã™ã€‚
307ã¯ã€2.6.x カーãƒãƒ«ã§è¦‹ã¤ã‹ã£ãŸã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£å•é¡Œã‚„é‡å¤§ãªå¾Œæˆ»ã‚Šã«å¯¾ã™ã‚‹æ¯” 309ã“ã‚Œã«ã¯ã€2.6.x カーãƒãƒ«ã§è¦‹ã¤ã‹ã£ãŸã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£å•é¡Œã‚„é‡å¤§ãªå¾Œæˆ»ã‚Šã«å¯¾
308較的å°ã•ã„é‡è¦ãªä¿®æ­£ãŒå«ã¾ã‚Œã¾ã™ã€‚ 310ã™ã‚‹æ¯”較的å°ã•ã„é‡è¦ãªä¿®æ­£ãŒå«ã¾ã‚Œã¾ã™ã€‚
309 311
310ã“ã‚Œã¯ã€é–‹ç™º/実験的ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ†ã‚¹ãƒˆã«å”力ã™ã‚‹ã“ã¨ã«èˆˆå‘³ãŒç„¡ã〠312ã“ã‚Œã¯ã€é–‹ç™º/実験的ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®ãƒ†ã‚¹ãƒˆã«å”力ã™ã‚‹ã“ã¨ã«èˆˆå‘³ãŒç„¡ãã€
311最新ã®å®‰å®šã—ãŸã‚«ãƒ¼ãƒãƒ«ã‚’使ã„ãŸã„ユーザã«æŽ¨å¥¨ã™ã‚‹ãƒ–ランãƒã§ã™ã€‚ 313最新ã®å®‰å®šã—ãŸã‚«ãƒ¼ãƒãƒ«ã‚’使ã„ãŸã„ユーザã«æŽ¨å¥¨ã™ã‚‹ãƒ–ランãƒã§ã™ã€‚
312 314
313ã‚‚ã—ã€2.6.x.y カーãƒãƒ«ãŒå­˜åœ¨ã—ãªã„å ´åˆã«ã¯ã€ç•ªå·ãŒä¸€ç•ªå¤§ãã„ 2.6.x 315ã‚‚ã—ã€2.6.x.y カーãƒãƒ«ãŒå­˜åœ¨ã—ãªã„å ´åˆã«ã¯ã€ç•ªå·ãŒä¸€ç•ªå¤§ãã„ 2.6.x ãŒ
314ãŒæœ€æ–°ã®å®‰å®šç‰ˆã‚«ãƒ¼ãƒãƒ«ã§ã™ã€‚ 316最新ã®å®‰å®šç‰ˆã‚«ãƒ¼ãƒãƒ«ã§ã™ã€‚
315 317
3162.6.x.y 㯠"stable" ãƒãƒ¼ãƒ  <stable@kernel.org> ã§ãƒ¡ãƒ³ãƒ†ã•ã‚Œã¦ãŠã‚Šã€ã  3182.6.x.y 㯠"stable" ãƒãƒ¼ãƒ  <stable@kernel.org> ã§ãƒ¡ãƒ³ãƒ†ã•ã‚Œã¦ãŠã‚Šã€å¿…
317ã„ãŸã„隔週ã§ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã¦ã„ã¾ã™ã€‚ 319è¦ã«å¿œã˜ã¦ãƒªãƒªãƒ¼ã‚¹ã•ã‚Œã¾ã™ã€‚通常ã®ãƒªãƒªãƒ¼ã‚¹æœŸé–“㯠2週間毎ã§ã™ãŒã€å·®ã—è¿«ã£
320ãŸå•é¡ŒãŒãªã‘ã‚Œã°ã‚‚ã†å°‘ã—é•·ããªã‚‹ã“ã¨ã‚‚ã‚ã‚Šã¾ã™ã€‚セキュリティ関連ã®å•é¡Œ
321ã®å ´åˆã¯ã“ã‚Œã«å¯¾ã—ã¦ã ã„ãŸã„ã®å ´åˆã€ã™ãã«ãƒªãƒªãƒ¼ã‚¹ãŒã•ã‚Œã¾ã™ã€‚
318 322
319カーãƒãƒ«ãƒ„リーã«å…¥ã£ã¦ã„ã‚‹ã€Documentation/stable_kernel_rules.txt ファ 323カーãƒãƒ«ãƒ„リーã«å…¥ã£ã¦ã„ã‚‹ã€Documentation/stable_kernel_rules.txt ファ
320イルã«ã¯ã©ã®ã‚ˆã†ãªç¨®é¡žã®å¤‰æ›´ãŒ -stable ツリーã«å—ã‘入れå¯èƒ½ã‹ã€ã¾ãŸãƒª 324イルã«ã¯ã©ã®ã‚ˆã†ãªç¨®é¡žã®å¤‰æ›´ãŒ -stable ツリーã«å—ã‘入れå¯èƒ½ã‹ã€ã¾ãŸãƒª
@@ -341,7 +345,9 @@ linux-kernel メーリングリストã§åŽé›†ã•ã‚ŒãŸå¤šæ•°ã®ãƒ‘ッãƒã¨åŒæ
341メインラインã¸å…¥ã‚Œã‚‹ã‚ˆã†ã« Linus ã«ãƒ—ッシュã—ã¾ã™ã€‚ 345メインラインã¸å…¥ã‚Œã‚‹ã‚ˆã†ã« Linus ã«ãƒ—ッシュã—ã¾ã™ã€‚
342 346
343メインカーãƒãƒ«ãƒ„リーã«å«ã‚ã‚‹ãŸã‚ã« Linus ã«é€ã‚‹å‰ã«ã€ã™ã¹ã¦ã®æ–°ã—ã„パッ 347メインカーãƒãƒ«ãƒ„リーã«å«ã‚ã‚‹ãŸã‚ã« Linus ã«é€ã‚‹å‰ã«ã€ã™ã¹ã¦ã®æ–°ã—ã„パッ
344ãƒãŒ -mm ツリーã§ãƒ†ã‚¹ãƒˆã•ã‚Œã‚‹ã“ã¨ãŒå¼·ã推奨ã•ã‚Œã¾ã™ã€‚ 348ãƒãŒ -mm ツリーã§ãƒ†ã‚¹ãƒˆã•ã‚Œã‚‹ã“ã¨ãŒå¼·ã推奨ã•ã‚Œã¦ã„ã¾ã™ã€‚マージウィン
349ドウãŒé–‹ãå‰ã« -mm ツリーã«ç¾ã‚Œãªã‹ã£ãŸãƒ‘ッãƒã¯ãƒ¡ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³ã«ãƒžãƒ¼ã‚¸ã•
350れるã“ã¨ã¯å›°é›£ã«ãªã‚Šã¾ã™ã€‚
345 351
346ã“れらã®ã‚«ãƒ¼ãƒãƒ«ã¯å®‰å®šã—ã¦å‹•ä½œã™ã¹ãシステムã¨ã—ã¦ä½¿ã†ã®ã«ã¯é©åˆ‡ã§ã¯ã‚ 352ã“れらã®ã‚«ãƒ¼ãƒãƒ«ã¯å®‰å®šã—ã¦å‹•ä½œã™ã¹ãシステムã¨ã—ã¦ä½¿ã†ã®ã«ã¯é©åˆ‡ã§ã¯ã‚
347ã‚Šã¾ã›ã‚“ã—ã€ã‚«ãƒ¼ãƒãƒ«ãƒ–ランãƒã®ä¸­ã§ã‚‚ã‚‚ã£ã¨ã‚‚動作ã«ãƒªã‚¹ã‚¯ãŒé«˜ã„ã‚‚ã®ã§ã™ã€‚ 353ã‚Šã¾ã›ã‚“ã—ã€ã‚«ãƒ¼ãƒãƒ«ãƒ–ランãƒã®ä¸­ã§ã‚‚ã‚‚ã£ã¨ã‚‚動作ã«ãƒªã‚¹ã‚¯ãŒé«˜ã„ã‚‚ã®ã§ã™ã€‚
@@ -395,13 +401,15 @@ linux-kernel メーリングリストã§åŽé›†ã•ã‚ŒãŸå¤šæ•°ã®ãƒ‘ッãƒã¨åŒæ
395 - pcmcia, Dominik Brodowski <linux@dominikbrodowski.net> 401 - pcmcia, Dominik Brodowski <linux@dominikbrodowski.net>
396 git.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git 402 git.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git
397 403
398 - SCSI, James Bottomley <James.Bottomley@SteelEye.com> 404 - SCSI, James Bottomley <James.Bottomley@hansenpartnership.com>
399 git.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git 405 git.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git
400 406
407 - x86, Ingo Molnar <mingo@elte.hu>
408 git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git
409
401 quilt ツリー- 410 quilt ツリー-
402 - USB, PCI ドライãƒã‚³ã‚¢ã¨ I2C, Greg Kroah-Hartman <gregkh@suse.de> 411 - USB, ドライãƒã‚³ã‚¢ã¨ I2C, Greg Kroah-Hartman <gregkh@suse.de>
403 kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ 412 kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
404 - x86-64 㨠i386 ã®ä»²é–“ Andi Kleen <ak@suse.de>
405 413
406 ãã®ä»–ã®ã‚«ãƒ¼ãƒãƒ«ãƒ„リー㯠http://git.kernel.org/ 㨠MAINTAINERS ファ 414 ãã®ä»–ã®ã‚«ãƒ¼ãƒãƒ«ãƒ„リー㯠http://git.kernel.org/ 㨠MAINTAINERS ファ
407 イルã«ä¸€è¦§è¡¨ãŒã‚ã‚Šã¾ã™ã€‚ 415 イルã«ä¸€è¦§è¡¨ãŒã‚ã‚Šã¾ã™ã€‚
@@ -412,13 +420,32 @@ linux-kernel メーリングリストã§åŽé›†ã•ã‚ŒãŸå¤šæ•°ã®ãƒ‘ッãƒã¨åŒæ
412bugzilla.kernel.org 㯠Linux カーãƒãƒ«é–‹ç™ºè€…ãŒã‚«ãƒ¼ãƒãƒ«ã®ãƒã‚°ã‚’追跡ã™ã‚‹ 420bugzilla.kernel.org 㯠Linux カーãƒãƒ«é–‹ç™ºè€…ãŒã‚«ãƒ¼ãƒãƒ«ã®ãƒã‚°ã‚’追跡ã™ã‚‹
413場所ã§ã™ã€‚ユーザã¯è¦‹ã¤ã‘ãŸãƒã‚°ã®å…¨ã¦ã‚’ã“ã®ãƒ„ールã§å ±å‘Šã™ã¹ãã§ã™ã€‚ 421場所ã§ã™ã€‚ユーザã¯è¦‹ã¤ã‘ãŸãƒã‚°ã®å…¨ã¦ã‚’ã“ã®ãƒ„ールã§å ±å‘Šã™ã¹ãã§ã™ã€‚
414ã©ã† kernel bugzilla を使ã†ã‹ã®è©³ç´°ã¯ã€ä»¥ä¸‹ã‚’å‚ç…§ã—ã¦ãã ã•ã„- 422ã©ã† kernel bugzilla を使ã†ã‹ã®è©³ç´°ã¯ã€ä»¥ä¸‹ã‚’å‚ç…§ã—ã¦ãã ã•ã„-
415 http://test.kernel.org/bugzilla/faq.html 423 http://bugzilla.kernel.org/page.cgi?id=faq.html
416
417メインカーãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã‚るファイル REPORTING-BUGS ã¯ã‚«ãƒ¼ãƒ 424メインカーãƒãƒ«ã‚½ãƒ¼ã‚¹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã‚るファイル REPORTING-BUGS ã¯ã‚«ãƒ¼ãƒ
418ルãƒã‚°ã‚‰ã—ã„ã‚‚ã®ã«ã¤ã„ã¦ã©ã†ãƒ¬ãƒãƒ¼ãƒˆã™ã‚‹ã‹ã®è‰¯ã„テンプレートã§ã‚ã‚Šã€å• 425ルãƒã‚°ã‚‰ã—ã„ã‚‚ã®ã«ã¤ã„ã¦ã©ã†ãƒ¬ãƒãƒ¼ãƒˆã™ã‚‹ã‹ã®è‰¯ã„テンプレートã§ã‚ã‚Šã€å•
419é¡Œã®è¿½è·¡ã‚’助ã‘ã‚‹ãŸã‚ã«ã‚«ãƒ¼ãƒãƒ«é–‹ç™ºè€…ã«ã¨ã£ã¦ã©ã‚“ãªæƒ…å ±ãŒå¿…è¦ãªã®ã‹ã®è©³ 426é¡Œã®è¿½è·¡ã‚’助ã‘ã‚‹ãŸã‚ã«ã‚«ãƒ¼ãƒãƒ«é–‹ç™ºè€…ã«ã¨ã£ã¦ã©ã‚“ãªæƒ…å ±ãŒå¿…è¦ãªã®ã‹ã®è©³
420ç´°ãŒæ›¸ã‹ã‚Œã¦ã„ã¾ã™ã€‚ 427ç´°ãŒæ›¸ã‹ã‚Œã¦ã„ã¾ã™ã€‚
421 428
429ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆã®ç®¡ç†
430-------------------
431
432ã‚ãªãŸã®ãƒãƒƒã‚­ãƒ³ã‚°ã®ã‚¹ã‚­ãƒ«ã‚’訓練ã™ã‚‹æœ€é«˜ã®æ–¹æ³•ã®ã²ã¨ã¤ã«ã€ä»–人ãŒãƒ¬ãƒãƒ¼
433トã—ãŸãƒã‚°ã‚’修正ã™ã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚ã‚ãªãŸãŒã‚«ãƒ¼ãƒãƒ«ã‚’より安定化ã•ã›ã‚‹
434ã“ã«å¯„与ã™ã‚‹ã¨ã„ã†ã“ã¨ã ã‘ã§ãªãã€ã‚ãªãŸã¯ ç¾å®Ÿã®å•é¡Œã‚’修正ã™ã‚‹ã“ã¨ã‚’
435å­¦ã³ã€è‡ªåˆ†ã®ã‚¹ã‚­ãƒ«ã‚‚強化ã§ãã€ã¾ãŸä»–ã®é–‹ç™ºè€…ãŒã‚ãªãŸã®å­˜åœ¨ã«æ°—ãŒã¤ã
436ã¾ã™ã€‚ãƒã‚°ã‚’修正ã™ã‚‹ã“ã¨ã¯ã€å¤šãã®é–‹ç™ºè€…ã®ä¸­ã‹ã‚‰è‡ªåˆ†ãŒåŠŸç¸¾ã‚’ã‚ã’る最善
437ã®é“ã§ã™ã€ãªãœãªã‚‰å¤šãã®äººã¯ä»–人ã®ãƒã‚°ã®ä¿®æ­£ã«æ™‚間を浪費ã™ã‚‹ã“ã¨ã‚’好ã¾
438ãªã„ã‹ã‚‰ã§ã™ã€‚
439
440ã™ã§ã«ãƒ¬ãƒãƒ¼ãƒˆã•ã‚ŒãŸãƒã‚°ã®ãŸã‚ã«ä»•äº‹ã‚’ã™ã‚‹ãŸã‚ã«ã¯ã€
441http://bugzilla.kernel.org ã«è¡Œã£ã¦ãã ã•ã„。もã—今後ã®ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆã«
442ã¤ã„ã¦ã‚¢ãƒ‰ãƒã‚¤ã‚¹ã‚’å—ã‘ãŸã„ã®ã§ã‚ã‚Œã°ã€bugme-new メーリングリスト(æ–°ã—
443ã„ãƒã‚°ãƒ¬ãƒãƒ¼ãƒˆã ã‘ãŒã“ã“ã«ãƒ¡ãƒ¼ãƒ«ã•ã‚Œã‚‹) ã¾ãŸã¯ bugme-janitor メーリン
444グリスト(bugzilla ã®å¤‰æ›´æ¯Žã«ã“ã“ã«ãƒ¡ãƒ¼ãƒ«ã•ã‚Œã‚‹)を購読ã§ãã¾ã™ã€‚
445
446 http://lists.linux-foundation.org/mailman/listinfo/bugme-new
447 http://lists.linux-foundation.org/mailman/listinfo/bugme-janitors
448
422メーリングリスト 449メーリングリスト
423------------- 450-------------
424 451
diff --git a/Documentation/ja_JP/SubmitChecklist b/Documentation/ja_JP/SubmitChecklist
new file mode 100644
index 00000000000..6c42e071d72
--- /dev/null
+++ b/Documentation/ja_JP/SubmitChecklist
@@ -0,0 +1,111 @@
1NOTE:
2This is a version of Documentation/SubmitChecklist into Japanese.
3This document is maintained by Takenori Nagano <t-nagano@ah.jp.nec.com>
4and the JF Project team <http://www.linux.or.jp/JF/>.
5If you find any difference between this document and the original file
6or a problem with the translation,
7please contact the maintainer of this file or JF project.
8
9Please also note that the purpose of this file is to be easier to read
10for non English (read: Japanese) speakers and is not intended as a
11fork. So if you have any comments or updates of this file, please try
12to update the original English file first.
13
14Last Updated: 2008/07/14
15==================================
16ã“ã‚Œã¯ã€
17linux-2.6.26/Documentation/SubmitChecklist ã®å’Œè¨³ã§ã™ã€‚
18
19翻訳団体: JF プロジェクト < http://www.linux.or.jp/JF/ >
20翻訳日: 2008/07/14
21翻訳者: Takenori Nagano <t-nagano at ah dot jp dot nec dot com>
22校正者: Masanori Kobayashi ã•ã‚“ <zap03216 at nifty dot ne dot jp>
23==================================
24
25
26Linux カーãƒãƒ«ãƒ‘ッãƒæŠ•ç¨¿è€…å‘ã‘ãƒã‚§ãƒƒã‚¯ãƒªã‚¹ãƒˆ
27~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28
29本書ã§ã¯ã€ãƒ‘ッãƒã‚’より素早ãå–り込んã§ã‚‚らã„ãŸã„開発者ãŒå®Ÿè·µã™ã¹ã基本的ãªäº‹æŸ„
30ã‚’ã„ãã¤ã‹ç´¹ä»‹ã—ã¾ã™ã€‚ã“ã“ã«ã‚ã‚‹å…¨ã¦ã®äº‹æŸ„ã¯ã€Documentation/SubmittingPatches
31ãªã©ã®Linuxカーãƒãƒ«ãƒ‘ッãƒæŠ•ç¨¿ã«éš›ã—ã¦ã®å¿ƒå¾—を補足ã™ã‚‹ã‚‚ã®ã§ã™ã€‚
32
33 1: 妥当ãªCONFIGオプションや変更ã•ã‚ŒãŸCONFIGオプションã€ã¤ã¾ã‚Š =y, =m, =n
34 å…¨ã¦ã§æ­£ã—ãビルドã§ãã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。ãã®éš›ã€gccåŠã³ãƒªãƒ³ã‚«ãŒ
35 warningã‚„errorを出ã—ã¦ã„ãªã„ã“ã¨ã‚‚確èªã—ã¦ãã ã•ã„。
36
37 2: allnoconfig, allmodconfig オプションを用ã„ã¦æ­£ã—ãビルドã§ãã‚‹ã“ã¨ã‚’
38 確èªã—ã¦ãã ã•ã„。
39
40 3: 手許ã®ã‚¯ãƒ­ã‚¹ã‚³ãƒ³ãƒ‘イルツールやOSDLã®PLMã®ã‚ˆã†ãªã‚‚ã®ã‚’用ã„ã¦ã€è¤‡æ•°ã®
41 アーキテクãƒãƒ£ã«ãŠã„ã¦ã‚‚æ­£ã—ãビルドã§ãã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。
42
43 4: 64bité•·ã®'unsigned long'を使用ã—ã¦ã„ã‚‹ppc64ã¯ã€ã‚¯ãƒ­ã‚¹ã‚³ãƒ³ãƒ‘イルã§ã®
44 ãƒã‚§ãƒƒã‚¯ã«é©å½“ãªã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒãƒ£ã§ã™ã€‚
45
46 5: カーãƒãƒ«ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚¹ã‚¿ã‚¤ãƒ«ã«æº–æ‹ ã—ã¦ã„ã‚‹ã‹ã©ã†ã‹ç¢ºèªã—ã¦ãã ã•ã„(!)
47
48 6: CONFIGオプションã®è¿½åŠ ãƒ»å¤‰æ›´ã‚’ã—ãŸå ´åˆã«ã¯ã€CONFIGメニューãŒå£Šã‚Œã¦ã„ãªã„
49 ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。
50
51 7: æ–°ã—ãKconfigã®ã‚ªãƒ—ションを追加ã™ã‚‹éš›ã«ã¯ã€å¿…ãšãã®helpも記述ã—ã¦ãã ã•ã„。
52
53 8: é©åˆ‡ãªKconfigã®ä¾å­˜é–¢ä¿‚を考ãˆãªãŒã‚‰æ…Žé‡ã«ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。
54 ãŸã ã—ã€ã“ã®ä½œæ¥­ã¯ãƒžã‚·ãƒ³ã‚’使ã£ãŸãƒ†ã‚¹ãƒˆã§ãã¡ã‚“ã¨è¡Œã†ã®ãŒã¨ã¦ã‚‚困難ã§ã™ã€‚
55 ã†ã¾ãã‚„ã‚‹ã«ã¯ã€è‡ªåˆ†ã®é ­ã§è€ƒãˆã‚‹ã“ã¨ã§ã™ã€‚
56
57 9: sparseを利用ã—ã¦ã¡ã‚ƒã‚“ã¨ã—ãŸã‚³ãƒ¼ãƒ‰ãƒã‚§ãƒƒã‚¯ã‚’ã—ã¦ãã ã•ã„。
58
5910: 'make checkstack' 㨠'make namespacecheck' を利用ã—ã€å•é¡ŒãŒç™ºè¦‹ã•ã‚ŒãŸã‚‰
60 修正ã—ã¦ãã ã•ã„。'make checkstack' ã¯æ˜Žç¤ºçš„ã«å•é¡Œã‚’示ã—ã¾ã›ã‚“ãŒã€ã©ã‚Œã‹
61 1ã¤ã®é–¢æ•°ãŒ512ãƒã‚¤ãƒˆã‚ˆã‚Šå¤§ãã„スタックを使ã£ã¦ã„ã‚Œã°ã€ä¿®æ­£ã™ã¹ã候補ã¨
62 ãªã‚Šã¾ã™ã€‚
63
6411: グローãƒãƒ«ãªkernel API を説明ã™ã‚‹ kernel-doc をソースã®ä¸­ã«å«ã‚ã¦ãã ã•ã„。
65 ( staticãªé–¢æ•°ã«ãŠã„ã¦ã¯å¿…é ˆã§ã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€å«ã‚ã¦ã‚‚らã£ã¦ã‚‚çµæ§‹ã§ã™ )
66 ãã—ã¦ã€'make htmldocs' ã‚‚ã—ã㯠'make mandocs' を利用ã—ã¦è¿½è¨˜ã—ãŸ
67 ドキュメントã®ãƒã‚§ãƒƒã‚¯ã‚’è¡Œã„ã€å•é¡ŒãŒè¦‹ã¤ã‹ã£ãŸå ´åˆã«ã¯ä¿®æ­£ã‚’è¡Œã£ã¦ãã ã•ã„。
68
6912: CONFIG_PREEMPT, CONFIG_DEBUG_PREEMPT, CONFIG_DEBUG_SLAB,
70 CONFIG_DEBUG_PAGEALLOC, CONFIG_DEBUG_MUTEXES, CONFIG_DEBUG_SPINLOCK,
71 CONFIG_DEBUG_SPINLOCK_SLEEP ã“れら全ã¦ã‚’åŒæ™‚ã«æœ‰åŠ¹ã«ã—ã¦å‹•ä½œç¢ºèªã‚’
72 è¡Œã£ã¦ãã ã•ã„。
73
7413: CONFIG_SMP, CONFIG_PREEMPT を有効ã«ã—ãŸå ´åˆã¨ç„¡åŠ¹ã«ã—ãŸå ´åˆã®ä¸¡æ–¹ã§
75 ビルドã—ãŸä¸Šã€å‹•ä½œç¢ºèªã‚’è¡Œã£ã¦ãã ã•ã„。
76
7714: ã‚‚ã—パッãƒãŒãƒ‡ã‚£ã‚¹ã‚¯ã®I/O性能ãªã©ã«å½±éŸ¿ã‚’与ãˆã‚‹ã‚ˆã†ã§ã‚ã‚Œã°ã€
78 'CONFIG_LBD'オプションを有効ã«ã—ãŸå ´åˆã¨ç„¡åŠ¹ã«ã—ãŸå ´åˆã®ä¸¡æ–¹ã§
79 テストを実施ã—ã¦ã¿ã¦ãã ã•ã„。
80
8115: lockdepã®æ©Ÿèƒ½ã‚’å…¨ã¦æœ‰åŠ¹ã«ã—ãŸä¸Šã§ã€å…¨ã¦ã®ã‚³ãƒ¼ãƒ‰ãƒ‘スを評価ã—ã¦ãã ã•ã„。
82
8316: /proc ã«æ–°ã—ã„エントリを追加ã—ãŸå ´åˆã«ã¯ã€Documentation/ é…下ã«
84 å¿…ãšãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’追加ã—ã¦ãã ã•ã„。
85
8617: æ–°ã—ã„ブートパラメータを追加ã—ãŸå ´åˆã«ã¯ã€
87 å¿…ãšDocumentation/kernel-parameters.txt ã«èª¬æ˜Žã‚’追加ã—ã¦ãã ã•ã„。
88
8918: æ–°ã—ãmoduleã«ãƒ‘ラメータを追加ã—ãŸå ´åˆã«ã¯ã€MODULE_PARM_DESC()ã‚’
90 利用ã—ã¦å¿…ãšãã®èª¬æ˜Žã‚’記述ã—ã¦ãã ã•ã„。
91
9219: æ–°ã—ã„userspaceインタフェースを作æˆã—ãŸå ´åˆã«ã¯ã€Documentation/ABI/ ã«
93 Documentation/ABI/README ã‚’å‚考ã«ã—ã¦å¿…ãšãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã‚’追加ã—ã¦ãã ã•ã„。
94
9520: 'make headers_check'を実行ã—ã¦å…¨ãå•é¡ŒãŒãªã„ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。
96
9721: å°‘ãªãã¨ã‚‚slabアロケーションã¨pageアロケーションã«å¤±æ•—ã—ãŸå ´åˆã®
98 挙動ã«ã¤ã„ã¦ã€fault-injectionを利用ã—ã¦ç¢ºèªã—ã¦ãã ã•ã„。
99 Documentation/fault-injection/ ã‚’å‚ç…§ã—ã¦ãã ã•ã„。
100
101 追加ã—ãŸã‚³ãƒ¼ãƒ‰ãŒã‹ãªã‚Šã®é‡ã§ã‚ã£ãŸãªã‚‰ã°ã€ã‚µãƒ–システム特有ã®
102 fault-injectionを追加ã—ãŸã»ã†ãŒè‰¯ã„ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。
103
10422: æ–°ãŸã«è¿½åŠ ã—ãŸã‚³ãƒ¼ãƒ‰ã¯ã€`gcc -W'ã§ã‚³ãƒ³ãƒ‘イルã—ã¦ãã ã•ã„。
105 ã“ã®ã‚ªãƒ—ションã¯å¤§é‡ã®ä¸è¦ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’出力ã—ã¾ã™ãŒã€
106 "warning: comparison between signed and unsigned" ã®ã‚ˆã†ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ã€
107 ãƒã‚°ã‚’見ã¤ã‘ã‚‹ã®ã«å½¹ã«ç«‹ã¡ã¾ã™ã€‚
108
10923: 投稿ã—ãŸãƒ‘ッãƒãŒ -mm パッãƒã‚»ãƒƒãƒˆã«ãƒžãƒ¼ã‚¸ã•ã‚ŒãŸå¾Œã€å…¨ã¦ã®æ—¢å­˜ã®ãƒ‘ッãƒã‚„
110 VM, VFS ãŠã‚ˆã³ãã®ä»–ã®ã‚µãƒ–システムã«é–¢ã™ã‚‹æ§˜ã€…ãªå¤‰æ›´ã¨ã€ç¾æ™‚点ã§ã‚‚共存
111 ã§ãã‚‹ã“ã¨ã‚’確èªã™ã‚‹ãƒ†ã‚¹ãƒˆã‚’è¡Œã£ã¦ãã ã•ã„。
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 53b0a8f5b23..329dcabe4c5 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1068,6 +1068,9 @@ and is between 256 and 4096 characters. It is defined in the file
1068 1068
1069 * [no]ncq: Turn on or off NCQ. 1069 * [no]ncq: Turn on or off NCQ.
1070 1070
1071 * nohrst, nosrst, norst: suppress hard, soft
1072 and both resets.
1073
1071 If there are multiple matching configurations changing 1074 If there are multiple matching configurations changing
1072 the same attribute, the last one is used. 1075 the same attribute, the last one is used.
1073 1076
@@ -1873,6 +1876,12 @@ and is between 256 and 4096 characters. It is defined in the file
1873 shapers= [NET] 1876 shapers= [NET]
1874 Maximal number of shapers. 1877 Maximal number of shapers.
1875 1878
1879 show_msr= [x86] show boot-time MSR settings
1880 Format: { <integer> }
1881 Show boot-time (BIOS-initialized) MSR settings.
1882 The parameter means the number of CPUs to show,
1883 for example 1 means boot CPU only.
1884
1876 sim710= [SCSI,HW] 1885 sim710= [SCSI,HW]
1877 See header of drivers/scsi/sim710.c. 1886 See header of drivers/scsi/sim710.c.
1878 1887
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt
index 02dc748b76c..71f0fe1fc1b 100644
--- a/Documentation/laptops/thinkpad-acpi.txt
+++ b/Documentation/laptops/thinkpad-acpi.txt
@@ -44,7 +44,7 @@ detailed description):
44 - LCD brightness control 44 - LCD brightness control
45 - Volume control 45 - Volume control
46 - Fan control and monitoring: fan speed, fan enable/disable 46 - Fan control and monitoring: fan speed, fan enable/disable
47 - Experimental: WAN enable and disable 47 - WAN enable and disable
48 48
49A compatibility table by model and feature is maintained on the web 49A compatibility table by model and feature is maintained on the web
50site, http://ibm-acpi.sf.net/. I appreciate any success or failure 50site, http://ibm-acpi.sf.net/. I appreciate any success or failure
@@ -1375,18 +1375,13 @@ with EINVAL, try to set pwm1_enable to 1 and pwm1 to at least 128 (255
1375would be the safest choice, though). 1375would be the safest choice, though).
1376 1376
1377 1377
1378EXPERIMENTAL: WAN 1378WAN
1379----------------- 1379---
1380 1380
1381procfs: /proc/acpi/ibm/wan 1381procfs: /proc/acpi/ibm/wan
1382sysfs device attribute: wwan_enable (deprecated) 1382sysfs device attribute: wwan_enable (deprecated)
1383sysfs rfkill class: switch "tpacpi_wwan_sw" 1383sysfs rfkill class: switch "tpacpi_wwan_sw"
1384 1384
1385This feature is marked EXPERIMENTAL because the implementation
1386directly accesses hardware registers and may not work as expected. USE
1387WITH CAUTION! To use this feature, you need to supply the
1388experimental=1 parameter when loading the module.
1389
1390This feature shows the presence and current state of a W-WAN (Sierra 1385This feature shows the presence and current state of a W-WAN (Sierra
1391Wireless EV-DO) device. 1386Wireless EV-DO) device.
1392 1387
diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c
index 655414821ed..7228369d101 100644
--- a/Documentation/lguest/lguest.c
+++ b/Documentation/lguest/lguest.c
@@ -895,6 +895,9 @@ static void handle_console_output(int fd, struct virtqueue *vq, bool timeout)
895 } 895 }
896} 896}
897 897
898/* This is called when we no longer want to hear about Guest changes to a
899 * virtqueue. This is more efficient in high-traffic cases, but it means we
900 * have to set a timer to check if any more changes have occurred. */
898static void block_vq(struct virtqueue *vq) 901static void block_vq(struct virtqueue *vq)
899{ 902{
900 struct itimerval itm; 903 struct itimerval itm;
@@ -939,6 +942,11 @@ static void handle_net_output(int fd, struct virtqueue *vq, bool timeout)
939 if (!timeout && num) 942 if (!timeout && num)
940 block_vq(vq); 943 block_vq(vq);
941 944
945 /* We never quite know how long should we wait before we check the
946 * queue again for more packets. We start at 500 microseconds, and if
947 * we get fewer packets than last time, we assume we made the timeout
948 * too small and increase it by 10 microseconds. Otherwise, we drop it
949 * by one microsecond every time. It seems to work well enough. */
942 if (timeout) { 950 if (timeout) {
943 if (num < last_timeout_num) 951 if (num < last_timeout_num)
944 timeout_usec += 10; 952 timeout_usec += 10;
diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt
index 276a7e63782..e1ff0d920a5 100644
--- a/Documentation/sysctl/kernel.txt
+++ b/Documentation/sysctl/kernel.txt
@@ -351,9 +351,10 @@ kernel. This value defaults to SHMMAX.
351 351
352softlockup_thresh: 352softlockup_thresh:
353 353
354This value can be used to lower the softlockup tolerance 354This value can be used to lower the softlockup tolerance threshold. The
355threshold. The default threshold is 10s. If a cpu is locked up 355default threshold is 60 seconds. If a cpu is locked up for 60 seconds,
356for 10s, the kernel complains. Valid values are 1-60s. 356the kernel complains. Valid values are 1-60 seconds. Setting this
357tunable to zero will disable the softlockup detection altogether.
357 358
358============================================================== 359==============================================================
359 360
diff --git a/Documentation/usb/anchors.txt b/Documentation/usb/anchors.txt
index 7304bcf5a30..5e6b64c20d2 100644
--- a/Documentation/usb/anchors.txt
+++ b/Documentation/usb/anchors.txt
@@ -42,9 +42,21 @@ This function kills all URBs associated with an anchor. The URBs
42are called in the reverse temporal order they were submitted. 42are called in the reverse temporal order they were submitted.
43This way no data can be reordered. 43This way no data can be reordered.
44 44
45usb_unlink_anchored_urbs()
46--------------------------
47
48This function unlinks all URBs associated with an anchor. The URBs
49are processed in the reverse temporal order they were submitted.
50This is similar to usb_kill_anchored_urbs(), but it will not sleep.
51Therefore no guarantee is made that the URBs have been unlinked when
52the call returns. They may be unlinked later but will be unlinked in
53finite time.
54
45usb_wait_anchor_empty_timeout() 55usb_wait_anchor_empty_timeout()
46------------------------------- 56-------------------------------
47 57
48This function waits for all URBs associated with an anchor to finish 58This function waits for all URBs associated with an anchor to finish
49or a timeout, whichever comes first. Its return value will tell you 59or a timeout, whichever comes first. Its return value will tell you
50whether the timeout was reached. 60whether the timeout was reached.
61
62
diff --git a/Documentation/video4linux/CARDLIST.au0828 b/Documentation/video4linux/CARDLIST.au0828
index eedc399e8de..aa05e5bb22f 100644
--- a/Documentation/video4linux/CARDLIST.au0828
+++ b/Documentation/video4linux/CARDLIST.au0828
@@ -3,3 +3,4 @@
3 2 -> Hauppauge HVR850 (au0828) [2040:7240] 3 2 -> Hauppauge HVR850 (au0828) [2040:7240]
4 3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620] 4 3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620]
5 4 -> Hauppauge HVR950Q rev xxF8 (au0828) [2040:7201,2040:7211,2040:7281] 5 4 -> Hauppauge HVR950Q rev xxF8 (au0828) [2040:7201,2040:7211,2040:7281]
6 5 -> Hauppauge Woodbury (au0828) [2040:8200]
diff --git a/Documentation/video4linux/gspca.txt b/Documentation/video4linux/gspca.txt
index 78a863ab8a5..0f03900c48f 100644
--- a/Documentation/video4linux/gspca.txt
+++ b/Documentation/video4linux/gspca.txt
@@ -88,14 +88,14 @@ zc3xx 0471:0325 Philips SPC 200 NC
88zc3xx 0471:0326 Philips SPC 300 NC 88zc3xx 0471:0326 Philips SPC 300 NC
89sonixj 0471:0327 Philips SPC 600 NC 89sonixj 0471:0327 Philips SPC 600 NC
90sonixj 0471:0328 Philips SPC 700 NC 90sonixj 0471:0328 Philips SPC 700 NC
91zc3xx 0471:032d Philips spc210nc 91zc3xx 0471:032d Philips SPC 210 NC
92zc3xx 0471:032e Philips spc315nc 92zc3xx 0471:032e Philips SPC 315 NC
93sonixj 0471:0330 Philips SPC 710NC 93sonixj 0471:0330 Philips SPC 710 NC
94spca501 0497:c001 Smile International 94spca501 0497:c001 Smile International
95sunplus 04a5:3003 Benq DC 1300 95sunplus 04a5:3003 Benq DC 1300
96sunplus 04a5:3008 Benq DC 1500 96sunplus 04a5:3008 Benq DC 1500
97sunplus 04a5:300a Benq DC3410 97sunplus 04a5:300a Benq DC 3410
98spca500 04a5:300c Benq DC1016 98spca500 04a5:300c Benq DC 1016
99sunplus 04f1:1001 JVC GC A50 99sunplus 04f1:1001 JVC GC A50
100spca561 04fc:0561 Flexcam 100 100spca561 04fc:0561 Flexcam 100
101sunplus 04fc:500c Sunplus CA500C 101sunplus 04fc:500c Sunplus CA500C
@@ -175,19 +175,21 @@ sunplus 08ca:2060 Aiptek PocketDV5300
175tv8532 0923:010f ICM532 cams 175tv8532 0923:010f ICM532 cams
176mars 093a:050f Mars-Semi Pc-Camera 176mars 093a:050f Mars-Semi Pc-Camera
177pac207 093a:2460 PAC207 Qtec Webcam 100 177pac207 093a:2460 PAC207 Qtec Webcam 100
178pac207 093a:2463 Philips spc200nc pac207 178pac207 093a:2463 Philips SPC 220 NC
179pac207 093a:2464 Labtec Webcam 1200 179pac207 093a:2464 Labtec Webcam 1200
180pac207 093a:2468 PAC207 180pac207 093a:2468 PAC207
181pac207 093a:2470 Genius GF112 181pac207 093a:2470 Genius GF112
182pac207 093a:2471 PAC207 Genius VideoCam ge111 182pac207 093a:2471 Genius VideoCam ge111
183pac207 093a:2472 PAC207 Genius VideoCam ge110 183pac207 093a:2472 Genius VideoCam ge110
184pac7311 093a:2600 PAC7311 Typhoon 184pac7311 093a:2600 PAC7311 Typhoon
185pac7311 093a:2601 PAC7311 Phillips SPC610NC 185pac7311 093a:2601 Philips SPC 610 NC
186pac7311 093a:2603 PAC7312 186pac7311 093a:2603 PAC7312
187pac7311 093a:2608 PAC7311 Trust WB-3300p 187pac7311 093a:2608 Trust WB-3300p
188pac7311 093a:260e PAC7311 Gigaware VGA PC Camera, Trust WB-3350p, SIGMA cam 2350 188pac7311 093a:260e Gigaware VGA PC Camera, Trust WB-3350p, SIGMA cam 2350
189pac7311 093a:260f PAC7311 SnakeCam 189pac7311 093a:260f SnakeCam
190pac7311 093a:2621 PAC731x 190pac7311 093a:2621 PAC731x
191pac7311 093a:2624 PAC7302
192pac7311 093a:2626 Labtec 2200
191zc3xx 0ac8:0302 Z-star Vimicro zc0302 193zc3xx 0ac8:0302 Z-star Vimicro zc0302
192vc032x 0ac8:0321 Vimicro generic vc0321 194vc032x 0ac8:0321 Vimicro generic vc0321
193vc032x 0ac8:0323 Vimicro Vc0323 195vc032x 0ac8:0323 Vimicro Vc0323
@@ -220,6 +222,7 @@ sonixj 0c45:60c0 Sangha Sn535
220sonixj 0c45:60ec SN9C105+MO4000 222sonixj 0c45:60ec SN9C105+MO4000
221sonixj 0c45:60fb Surfer NoName 223sonixj 0c45:60fb Surfer NoName
222sonixj 0c45:60fc LG-LIC300 224sonixj 0c45:60fc LG-LIC300
225sonixj 0c45:6128 Microdia/Sonix SNP325
223sonixj 0c45:612a Avant Camera 226sonixj 0c45:612a Avant Camera
224sonixj 0c45:612c Typhoon Rasy Cam 1.3MPix 227sonixj 0c45:612c Typhoon Rasy Cam 1.3MPix
225sonixj 0c45:6130 Sonix Pccam 228sonixj 0c45:6130 Sonix Pccam
@@ -234,7 +237,7 @@ zc3xx 10fd:0128 Typhoon Webshot II USB 300k 0x0128
234spca561 10fd:7e50 FlyCam Usb 100 237spca561 10fd:7e50 FlyCam Usb 100
235zc3xx 10fd:8050 Typhoon Webshot II USB 300k 238zc3xx 10fd:8050 Typhoon Webshot II USB 300k
236spca501 1776:501c Arowana 300K CMOS Camera 239spca501 1776:501c Arowana 300K CMOS Camera
237t613 17a1:0128 T613/TAS5130A 240t613 17a1:0128 TASCORP JPEG Webcam, NGS Cyclops
238vc032x 17ef:4802 Lenovo Vc0323+MI1310_SOC 241vc032x 17ef:4802 Lenovo Vc0323+MI1310_SOC
239pac207 2001:f115 D-Link DSB-C120 242pac207 2001:f115 D-Link DSB-C120
240spca500 2899:012c Toptro Industrial 243spca500 2899:012c Toptro Industrial
diff --git a/MAINTAINERS b/MAINTAINERS
index 28c69aaefcd..8dae4555f10 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -222,8 +222,7 @@ W: http://code.google.com/p/aceracpi
222S: Maintained 222S: Maintained
223 223
224ACPI 224ACPI
225P: Andi Kleen 225P: Len Brown
226M: ak@linux.intel.com
227M: lenb@kernel.org 226M: lenb@kernel.org
228L: linux-acpi@vger.kernel.org 227L: linux-acpi@vger.kernel.org
229W: http://www.lesswatts.org/projects/acpi/ 228W: http://www.lesswatts.org/projects/acpi/
@@ -272,20 +271,20 @@ W: http://www.lesswatts.org/projects/acpi/
272S: Supported 271S: Supported
273 272
274ACPI WMI DRIVER 273ACPI WMI DRIVER
275P: Carlos Corbacho 274P: Carlos Corbacho
276M: carlos@strangeworlds.co.uk 275M: carlos@strangeworlds.co.uk
277L: linux-acpi@vger.kernel.org 276L: linux-acpi@vger.kernel.org
278W: http://www.lesswatts.org/projects/acpi/ 277W: http://www.lesswatts.org/projects/acpi/
279S: Maintained 278S: Maintained
280 279
281AD1889 ALSA SOUND DRIVER 280AD1889 ALSA SOUND DRIVER
282P: Kyle McMartin 281P: Kyle McMartin
283M: kyle@mcmartin.ca 282M: kyle@mcmartin.ca
284P: Thibaut Varene 283P: Thibaut Varene
285M: T-Bone@parisc-linux.org 284M: T-Bone@parisc-linux.org
286W: http://wiki.parisc-linux.org/AD1889 285W: http://wiki.parisc-linux.org/AD1889
287L: linux-parisc@vger.kernel.org 286L: linux-parisc@vger.kernel.org
288S: Maintained 287S: Maintained
289 288
290ADM1025 HARDWARE MONITOR DRIVER 289ADM1025 HARDWARE MONITOR DRIVER
291P: Jean Delvare 290P: Jean Delvare
@@ -419,6 +418,12 @@ L: linux-laptop@vger.kernel.org
419W: http://www.canb.auug.org.au/~sfr/ 418W: http://www.canb.auug.org.au/~sfr/
420S: Supported 419S: Supported
421 420
421APPLE BCM5974 MULTITOUCH DRIVER
422P: Henrik Rydberg
423M: rydberg@euromail.se
424L: linux-input@vger.kernel.org
425S: Maintained
426
422APPLE SMC DRIVER 427APPLE SMC DRIVER
423P: Nicolas Boichat 428P: Nicolas Boichat
424M: nicolas@boichat.ch 429M: nicolas@boichat.ch
@@ -468,11 +473,11 @@ L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
468S: Maintained 473S: Maintained
469 474
470ARM/ATMEL AT91RM9200 ARM ARCHITECTURE 475ARM/ATMEL AT91RM9200 ARM ARCHITECTURE
471P: Andrew Victor 476P: Andrew Victor
472M: linux@maxim.org.za 477M: linux@maxim.org.za
473L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 478L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
474W: http://maxim.org.za/at91_26.html 479W: http://maxim.org.za/at91_26.html
475S: Maintained 480S: Maintained
476 481
477ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE 482ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
478P: Lennert Buytenhek 483P: Lennert Buytenhek
@@ -527,10 +532,10 @@ L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
527S: Maintained 532S: Maintained
528 533
529ARM/HP JORNADA 7XX MACHINE SUPPORT 534ARM/HP JORNADA 7XX MACHINE SUPPORT
530P: Kristoffer Ericson 535P: Kristoffer Ericson
531M: kristoffer.ericson@gmail.com 536M: kristoffer.ericson@gmail.com
532W: www.jlime.com 537W: www.jlime.com
533S: Maintained 538S: Maintained
534 539
535ARM/INTEL IOP32X ARM ARCHITECTURE 540ARM/INTEL IOP32X ARM ARCHITECTURE
536P: Lennert Buytenhek 541P: Lennert Buytenhek
@@ -745,11 +750,13 @@ P: Ville Syrjala
745M: syrjala@sci.fi 750M: syrjala@sci.fi
746S: Maintained 751S: Maintained
747 752
748ATL1 ETHERNET DRIVER 753ATLX ETHERNET DRIVERS
749P: Jay Cliburn 754P: Jay Cliburn
750M: jcliburn@gmail.com 755M: jcliburn@gmail.com
751P: Chris Snook 756P: Chris Snook
752M: csnook@redhat.com 757M: csnook@redhat.com
758P: Jie Yang
759M: jie.yang@atheros.com
753L: atl1-devel@lists.sourceforge.net 760L: atl1-devel@lists.sourceforge.net
754W: http://sourceforge.net/projects/atl1 761W: http://sourceforge.net/projects/atl1
755W: http://atl1.sourceforge.net 762W: http://atl1.sourceforge.net
@@ -1010,7 +1017,7 @@ T: git kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git
1010S: Maintained 1017S: Maintained
1011 1018
1012CAFE CMOS INTEGRATED CAMERA CONTROLLER DRIVER 1019CAFE CMOS INTEGRATED CAMERA CONTROLLER DRIVER
1013P: Jonathan Corbet 1020P: Jonathan Corbet
1014M: corbet@lwn.net 1021M: corbet@lwn.net
1015L: video4linux-list@redhat.com 1022L: video4linux-list@redhat.com
1016S: Maintained 1023S: Maintained
@@ -1191,9 +1198,7 @@ M: hpa@zytor.com
1191S: Maintained 1198S: Maintained
1192 1199
1193CPUSETS 1200CPUSETS
1194P: Paul Jackson
1195P: Paul Menage 1201P: Paul Menage
1196M: pj@sgi.com
1197M: menage@google.com 1202M: menage@google.com
1198L: linux-kernel@vger.kernel.org 1203L: linux-kernel@vger.kernel.org
1199W: http://www.bullopensource.org/cpuset/ 1204W: http://www.bullopensource.org/cpuset/
@@ -1352,7 +1357,7 @@ P: Digi International, Inc
1352M: Eng.Linux@digi.com 1357M: Eng.Linux@digi.com
1353L: Eng.Linux@digi.com 1358L: Eng.Linux@digi.com
1354W: http://www.digi.com 1359W: http://www.digi.com
1355S: Orphaned 1360S: Orphan
1356 1361
1357DIRECTORY NOTIFICATION 1362DIRECTORY NOTIFICATION
1358P: Stephen Rothwell 1363P: Stephen Rothwell
@@ -1416,12 +1421,12 @@ L: linux-acpi@vger.kernel.org
1416S: Supported 1421S: Supported
1417 1422
1418DOCUMENTATION (/Documentation directory) 1423DOCUMENTATION (/Documentation directory)
1419P: Michael Kerrisk 1424P: Michael Kerrisk
1420M: mtk.manpages@gmail.com 1425M: mtk.manpages@gmail.com
1421P: Randy Dunlap 1426P: Randy Dunlap
1422M: rdunlap@xenotime.net 1427M: rdunlap@xenotime.net
1423L: linux-doc@vger.kernel.org 1428L: linux-doc@vger.kernel.org
1424S: Maintained 1429S: Maintained
1425 1430
1426DOUBLETALK DRIVER 1431DOUBLETALK DRIVER
1427P: James R. Van Zandt 1432P: James R. Van Zandt
@@ -1452,7 +1457,7 @@ S: Maintained
1452DVB SUBSYSTEM AND DRIVERS 1457DVB SUBSYSTEM AND DRIVERS
1453P: LinuxTV.org Project 1458P: LinuxTV.org Project
1454M: v4l-dvb-maintainer@linuxtv.org 1459M: v4l-dvb-maintainer@linuxtv.org
1455L: linux-dvb@linuxtv.org (subscription required) 1460L: linux-dvb@linuxtv.org (subscription required)
1456W: http://linuxtv.org/ 1461W: http://linuxtv.org/
1457T: git kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git 1462T: git kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git
1458S: Maintained 1463S: Maintained
@@ -1588,7 +1593,7 @@ S: Supported
1588EMBEDDED LINUX 1593EMBEDDED LINUX
1589P: Paul Gortmaker 1594P: Paul Gortmaker
1590M: paul.gortmaker@windriver.com 1595M: paul.gortmaker@windriver.com
1591P David Woodhouse 1596P: David Woodhouse
1592M: dwmw2@infradead.org 1597M: dwmw2@infradead.org
1593L: linux-embedded@vger.kernel.org 1598L: linux-embedded@vger.kernel.org
1594S: Maintained 1599S: Maintained
@@ -1790,7 +1795,7 @@ FUTURE DOMAIN TMC-16x0 SCSI DRIVER (16-bit)
1790P: Rik Faith 1795P: Rik Faith
1791M: faith@cs.unc.edu 1796M: faith@cs.unc.edu
1792L: linux-scsi@vger.kernel.org 1797L: linux-scsi@vger.kernel.org
1793S: Odd fixes (e.g., new signatures) 1798S: Odd Fixes (e.g., new signatures)
1794 1799
1795GDT SCSI DISK ARRAY CONTROLLER DRIVER 1800GDT SCSI DISK ARRAY CONTROLLER DRIVER
1796P: Achim Leubner 1801P: Achim Leubner
@@ -1831,10 +1836,10 @@ S: Maintained
1831HARDWARE MONITORING 1836HARDWARE MONITORING
1832L: lm-sensors@lm-sensors.org 1837L: lm-sensors@lm-sensors.org
1833W: http://www.lm-sensors.org/ 1838W: http://www.lm-sensors.org/
1834S: Orphaned 1839S: Orphan
1835 1840
1836HARDWARE RANDOM NUMBER GENERATOR CORE 1841HARDWARE RANDOM NUMBER GENERATOR CORE
1837S: Orphaned 1842S: Orphan
1838 1843
1839HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER 1844HARD DRIVE ACTIVE PROTECTION SYSTEM (HDAPS) DRIVER
1840P: Robert Love 1845P: Robert Love
@@ -1977,7 +1982,7 @@ S: Maintained
1977I2C/SMBUS STUB DRIVER 1982I2C/SMBUS STUB DRIVER
1978P: Mark M. Hoffman 1983P: Mark M. Hoffman
1979M: mhoffman@lightlink.com 1984M: mhoffman@lightlink.com
1980L: lm-sensors@lm-sensors.org 1985L: i2c@lm-sensors.org
1981S: Maintained 1986S: Maintained
1982 1987
1983I2C SUBSYSTEM 1988I2C SUBSYSTEM
@@ -2101,7 +2106,7 @@ M: rolandd@cisco.com
2101P: Sean Hefty 2106P: Sean Hefty
2102M: sean.hefty@intel.com 2107M: sean.hefty@intel.com
2103P: Hal Rosenstock 2108P: Hal Rosenstock
2104M: hal.rosenstock@gmail.com 2109M: hal.rosenstock@gmail.com
2105L: general@lists.openfabrics.org 2110L: general@lists.openfabrics.org
2106W: http://www.openib.org/ 2111W: http://www.openib.org/
2107T: git kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git 2112T: git kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git
@@ -2689,17 +2694,18 @@ S: Maintained
2689 2694
2690MARVELL YUKON / SYSKONNECT DRIVER 2695MARVELL YUKON / SYSKONNECT DRIVER
2691P: Mirko Lindner 2696P: Mirko Lindner
2692M: mlindner@syskonnect.de 2697M: mlindner@syskonnect.de
2693P: Ralph Roesler 2698P: Ralph Roesler
2694M: rroesler@syskonnect.de 2699M: rroesler@syskonnect.de
2695W: http://www.syskonnect.com 2700W: http://www.syskonnect.com
2696S: Supported 2701S: Supported
2697 2702
2698MAN-PAGES: MANUAL PAGES FOR LINUX -- Sections 2, 3, 4, 5, and 7 2703MAN-PAGES: MANUAL PAGES FOR LINUX -- Sections 2, 3, 4, 5, and 7
2699P: Michael Kerrisk 2704P: Michael Kerrisk
2700M: mtk.manpages@gmail.com 2705M: mtk.manpages@gmail.com
2701W: http://www.kernel.org/doc/man-pages 2706W: http://www.kernel.org/doc/man-pages
2702S: Supported 2707L: linux-man@vger.kernel.org
2708S: Supported
2703 2709
2704MARVELL LIBERTAS WIRELESS DRIVER 2710MARVELL LIBERTAS WIRELESS DRIVER
2705P: Dan Williams 2711P: Dan Williams
@@ -2728,7 +2734,7 @@ S: Maintained
2728MEGARAID SCSI DRIVERS 2734MEGARAID SCSI DRIVERS
2729P: Neela Syam Kolli 2735P: Neela Syam Kolli
2730M: megaraidlinux@lsi.com 2736M: megaraidlinux@lsi.com
2731S: linux-scsi@vger.kernel.org 2737L: linux-scsi@vger.kernel.org
2732W: http://megaraid.lsilogic.com 2738W: http://megaraid.lsilogic.com
2733S: Maintained 2739S: Maintained
2734 2740
@@ -2846,7 +2852,7 @@ MULTIMEDIA CARD (MMC) ETC. OVER SPI
2846P: David Brownell 2852P: David Brownell
2847M: dbrownell@users.sourceforge.net 2853M: dbrownell@users.sourceforge.net
2848L: linux-kernel@vger.kernel.org 2854L: linux-kernel@vger.kernel.org
2849S: Odd fixes 2855S: Odd Fixes
2850 2856
2851MULTISOUND SOUND DRIVER 2857MULTISOUND SOUND DRIVER
2852P: Andrew Veliath 2858P: Andrew Veliath
@@ -2860,10 +2866,10 @@ L: linux-kernel@vger.kernel.org
2860S: Maintained 2866S: Maintained
2861 2867
2862MUSB MULTIPOINT HIGH SPEED DUAL-ROLE CONTROLLER 2868MUSB MULTIPOINT HIGH SPEED DUAL-ROLE CONTROLLER
2863P: Felipe Balbi 2869P: Felipe Balbi
2864M: felipe.balbi@nokia.com 2870M: felipe.balbi@nokia.com
2865L: linux-usb@vger.kernel.org 2871L: linux-usb@vger.kernel.org
2866S: Maintained 2872S: Maintained
2867 2873
2868MYRICOM MYRI-10G 10GbE DRIVER (MYRI10GE) 2874MYRICOM MYRI-10G 10GbE DRIVER (MYRI10GE)
2869P: Andrew Gallatin 2875P: Andrew Gallatin
@@ -2875,7 +2881,7 @@ W: http://www.myri.com/scs/download-Myri10GE.html
2875S: Supported 2881S: Supported
2876 2882
2877NATSEMI ETHERNET DRIVER (DP8381x) 2883NATSEMI ETHERNET DRIVER (DP8381x)
2878P: Tim Hockin 2884P: Tim Hockin
2879M: thockin@hockin.org 2885M: thockin@hockin.org
2880S: Maintained 2886S: Maintained
2881 2887
@@ -3051,7 +3057,7 @@ P: Anton Altaparmakov
3051M: aia21@cantab.net 3057M: aia21@cantab.net
3052L: linux-ntfs-dev@lists.sourceforge.net 3058L: linux-ntfs-dev@lists.sourceforge.net
3053L: linux-kernel@vger.kernel.org 3059L: linux-kernel@vger.kernel.org
3054W: http://linux-ntfs.sf.net/ 3060W: http://www.linux-ntfs.org/
3055T: git kernel.org:/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git 3061T: git kernel.org:/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git
3056S: Maintained 3062S: Maintained
3057 3063
@@ -3094,7 +3100,7 @@ M: laforge@gnumonks.org
3094S: Maintained 3100S: Maintained
3095 3101
3096OMNIVISION OV7670 SENSOR DRIVER 3102OMNIVISION OV7670 SENSOR DRIVER
3097P: Jonathan Corbet 3103P: Jonathan Corbet
3098M: corbet@lwn.net 3104M: corbet@lwn.net
3099L: video4linux-list@redhat.com 3105L: video4linux-list@redhat.com
3100S: Maintained 3106S: Maintained
@@ -3204,7 +3210,7 @@ T: git kernel.org:/pub/scm/linux/kernel/git/jbarnes/pci-2.6.git
3204S: Supported 3210S: Supported
3205 3211
3206PCI HOTPLUG CORE 3212PCI HOTPLUG CORE
3207P: Kristen Carlson Accardi 3213P: Kristen Carlson Accardi
3208M: kristen.c.accardi@intel.com 3214M: kristen.c.accardi@intel.com
3209S: Supported 3215S: Supported
3210 3216
@@ -3643,7 +3649,7 @@ M: jmorris@namei.org
3643P: Eric Paris 3649P: Eric Paris
3644M: eparis@parisplace.org 3650M: eparis@parisplace.org
3645L: linux-kernel@vger.kernel.org (kernel issues) 3651L: linux-kernel@vger.kernel.org (kernel issues)
3646L: selinux@tycho.nsa.gov (subscribers-only, general discussion) 3652L: selinux@tycho.nsa.gov (subscribers-only, general discussion)
3647W: http://www.nsa.gov/selinux 3653W: http://www.nsa.gov/selinux
3648S: Supported 3654S: Supported
3649 3655
@@ -3719,7 +3725,7 @@ S: Maintained
3719SIS 96X I2C/SMBUS DRIVER 3725SIS 96X I2C/SMBUS DRIVER
3720P: Mark M. Hoffman 3726P: Mark M. Hoffman
3721M: mhoffman@lightlink.com 3727M: mhoffman@lightlink.com
3722L: lm-sensors@lm-sensors.org 3728L: i2c@lm-sensors.org
3723S: Maintained 3729S: Maintained
3724 3730
3725SIS FRAMEBUFFER DRIVER 3731SIS FRAMEBUFFER DRIVER
@@ -3761,10 +3767,10 @@ M: bn@niasdigital.com
3761S: Maintained 3767S: Maintained
3762 3768
3763SOC-CAMERA V4L2 SUBSYSTEM 3769SOC-CAMERA V4L2 SUBSYSTEM
3764P: Guennadi Liakhovetski 3770P: Guennadi Liakhovetski
3765M: g.liakhovetski@gmx.de 3771M: g.liakhovetski@gmx.de
3766L: video4linux-list@redhat.com 3772L: video4linux-list@redhat.com
3767S: Maintained 3773S: Maintained
3768 3774
3769SOFTWARE RAID (Multiple Disks) SUPPORT 3775SOFTWARE RAID (Multiple Disks) SUPPORT
3770P: Ingo Molnar 3776P: Ingo Molnar
@@ -3826,11 +3832,12 @@ S: Maintained
3826 3832
3827SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT 3833SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEMENT
3828P: Liam Girdwood 3834P: Liam Girdwood
3829M: liam.girdwood@wolfsonmicro.com 3835M: lrg@slimlogic.co.uk
3830P: Mark Brown 3836P: Mark Brown
3831M: broonie@opensource.wolfsonmicro.com 3837M: broonie@opensource.wolfsonmicro.com
3832T: git opensource.wolfsonmicro.com/linux-2.6-asoc 3838T: git opensource.wolfsonmicro.com/linux-2.6-asoc
3833L: alsa-devel@alsa-project.org (subscribers-only) 3839L: alsa-devel@alsa-project.org (subscribers-only)
3840W: http://alsa-project.org/main/index.php/ASoC
3834S: Supported 3841S: Supported
3835 3842
3836SPI SUBSYSTEM 3843SPI SUBSYSTEM
@@ -3918,7 +3925,7 @@ S: Maintained
3918 3925
3919STARMODE RADIO IP (STRIP) PROTOCOL DRIVER 3926STARMODE RADIO IP (STRIP) PROTOCOL DRIVER
3920W: http://mosquitonet.Stanford.EDU/strip.html 3927W: http://mosquitonet.Stanford.EDU/strip.html
3921S: Unsupported ? 3928S: Orphan
3922 3929
3923STRADIS MPEG-2 DECODER DRIVER 3930STRADIS MPEG-2 DECODER DRIVER
3924P: Nathan Laredo 3931P: Nathan Laredo
@@ -3999,13 +4006,13 @@ T: git repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git
3999S: Maintained 4006S: Maintained
4000 4007
4001TI FLASH MEDIA INTERFACE DRIVER 4008TI FLASH MEDIA INTERFACE DRIVER
4002P: Alex Dubov 4009P: Alex Dubov
4003M: oakad@yahoo.com 4010M: oakad@yahoo.com
4004S: Maintained 4011S: Maintained
4005 4012
4006TI OMAP MMC INTERFACE DRIVER 4013TI OMAP MMC INTERFACE DRIVER
4007P: Carlos Aguiar, Anderson Briglia and Syed Khasim 4014P: Carlos Aguiar, Anderson Briglia and Syed Khasim
4008M: linux-omap-open-source@linux.omap.com (subscribers only) 4015M: linux-omap@vger.kernel.org
4009W: http://linux.omap.com 4016W: http://linux.omap.com
4010W: http://www.muru.com/linux/omap/ 4017W: http://www.muru.com/linux/omap/
4011S: Maintained 4018S: Maintained
@@ -4147,13 +4154,13 @@ USB BLOCK DRIVER (UB ub)
4147P: Pete Zaitcev 4154P: Pete Zaitcev
4148M: zaitcev@redhat.com 4155M: zaitcev@redhat.com
4149L: linux-kernel@vger.kernel.org 4156L: linux-kernel@vger.kernel.org
4150L: linux-usb@vger.kernel.org 4157L: linux-usb@vger.kernel.org
4151S: Supported 4158S: Supported
4152 4159
4153USB CDC ETHERNET DRIVER 4160USB CDC ETHERNET DRIVER
4154P: Greg Kroah-Hartman 4161P: Greg Kroah-Hartman
4155M: greg@kroah.com 4162M: greg@kroah.com
4156L: linux-usb@vger.kernel.org 4163L: linux-usb@vger.kernel.org
4157S: Maintained 4164S: Maintained
4158W: http://www.kroah.com/linux-usb/ 4165W: http://www.kroah.com/linux-usb/
4159 4166
@@ -4180,13 +4187,13 @@ S: Maintained
4180USB EHCI DRIVER 4187USB EHCI DRIVER
4181P: David Brownell 4188P: David Brownell
4182M: dbrownell@users.sourceforge.net 4189M: dbrownell@users.sourceforge.net
4183L: linux-usb@vger.kernel.org 4190L: linux-usb@vger.kernel.org
4184S: Odd Fixes 4191S: Odd Fixes
4185 4192
4186USB ET61X[12]51 DRIVER 4193USB ET61X[12]51 DRIVER
4187P: Luca Risolia 4194P: Luca Risolia
4188M: luca.risolia@studio.unibo.it 4195M: luca.risolia@studio.unibo.it
4189L: linux-usb@vger.kernel.org 4196L: linux-usb@vger.kernel.org
4190L: video4linux-list@redhat.com 4197L: video4linux-list@redhat.com
4191W: http://www.linux-projects.org 4198W: http://www.linux-projects.org
4192S: Maintained 4199S: Maintained
@@ -4194,33 +4201,33 @@ S: Maintained
4194USB GADGET/PERIPHERAL SUBSYSTEM 4201USB GADGET/PERIPHERAL SUBSYSTEM
4195P: David Brownell 4202P: David Brownell
4196M: dbrownell@users.sourceforge.net 4203M: dbrownell@users.sourceforge.net
4197L: linux-usb@vger.kernel.org 4204L: linux-usb@vger.kernel.org
4198W: http://www.linux-usb.org/gadget 4205W: http://www.linux-usb.org/gadget
4199S: Maintained 4206S: Maintained
4200 4207
4201USB HID/HIDBP DRIVERS (USB KEYBOARDS, MICE, REMOTE CONTROLS, ...) 4208USB HID/HIDBP DRIVERS (USB KEYBOARDS, MICE, REMOTE CONTROLS, ...)
4202P: Jiri Kosina 4209P: Jiri Kosina
4203M: jkosina@suse.cz 4210M: jkosina@suse.cz
4204L: linux-usb@vger.kernel.org 4211L: linux-usb@vger.kernel.org
4205T: git kernel.org:/pub/scm/linux/kernel/git/jikos/hid.git 4212T: git kernel.org:/pub/scm/linux/kernel/git/jikos/hid.git
4206S: Maintained 4213S: Maintained
4207 4214
4208USB ISP116X DRIVER 4215USB ISP116X DRIVER
4209P: Olav Kongas 4216P: Olav Kongas
4210M: ok@artecdesign.ee 4217M: ok@artecdesign.ee
4211L: linux-usb@vger.kernel.org 4218L: linux-usb@vger.kernel.org
4212S: Maintained 4219S: Maintained
4213 4220
4214USB KAWASAKI LSI DRIVER 4221USB KAWASAKI LSI DRIVER
4215P: Oliver Neukum 4222P: Oliver Neukum
4216M: oliver@neukum.name 4223M: oliver@neukum.name
4217L: linux-usb@vger.kernel.org 4224L: linux-usb@vger.kernel.org
4218S: Maintained 4225S: Maintained
4219 4226
4220USB MASS STORAGE DRIVER 4227USB MASS STORAGE DRIVER
4221P: Matthew Dharm 4228P: Matthew Dharm
4222M: mdharm-usb@one-eyed-alien.net 4229M: mdharm-usb@one-eyed-alien.net
4223L: linux-usb@vger.kernel.org 4230L: linux-usb@vger.kernel.org
4224L: usb-storage@lists.one-eyed-alien.net 4231L: usb-storage@lists.one-eyed-alien.net
4225S: Maintained 4232S: Maintained
4226W: http://www.one-eyed-alien.net/~mdharm/linux-usb/ 4233W: http://www.one-eyed-alien.net/~mdharm/linux-usb/
@@ -4228,26 +4235,26 @@ W: http://www.one-eyed-alien.net/~mdharm/linux-usb/
4228USB OHCI DRIVER 4235USB OHCI DRIVER
4229P: David Brownell 4236P: David Brownell
4230M: dbrownell@users.sourceforge.net 4237M: dbrownell@users.sourceforge.net
4231L: linux-usb@vger.kernel.org 4238L: linux-usb@vger.kernel.org
4232S: Odd Fixes 4239S: Odd Fixes
4233 4240
4234USB OPTION-CARD DRIVER 4241USB OPTION-CARD DRIVER
4235P: Matthias Urlichs 4242P: Matthias Urlichs
4236M: smurf@smurf.noris.de 4243M: smurf@smurf.noris.de
4237L: linux-usb@vger.kernel.org 4244L: linux-usb@vger.kernel.org
4238S: Maintained 4245S: Maintained
4239 4246
4240USB OV511 DRIVER 4247USB OV511 DRIVER
4241P: Mark McClelland 4248P: Mark McClelland
4242M: mmcclell@bigfoot.com 4249M: mmcclell@bigfoot.com
4243L: linux-usb@vger.kernel.org 4250L: linux-usb@vger.kernel.org
4244W: http://alpha.dyndns.org/ov511/ 4251W: http://alpha.dyndns.org/ov511/
4245S: Maintained 4252S: Maintained
4246 4253
4247USB PEGASUS DRIVER 4254USB PEGASUS DRIVER
4248P: Petko Manolov 4255P: Petko Manolov
4249M: petkan@users.sourceforge.net 4256M: petkan@users.sourceforge.net
4250L: linux-usb@vger.kernel.org 4257L: linux-usb@vger.kernel.org
4251L: netdev@vger.kernel.org 4258L: netdev@vger.kernel.org
4252W: http://pegasus2.sourceforge.net/ 4259W: http://pegasus2.sourceforge.net/
4253S: Maintained 4260S: Maintained
@@ -4255,13 +4262,13 @@ S: Maintained
4255USB PRINTER DRIVER (usblp) 4262USB PRINTER DRIVER (usblp)
4256P: Pete Zaitcev 4263P: Pete Zaitcev
4257M: zaitcev@redhat.com 4264M: zaitcev@redhat.com
4258L: linux-usb@vger.kernel.org 4265L: linux-usb@vger.kernel.org
4259S: Supported 4266S: Supported
4260 4267
4261USB RTL8150 DRIVER 4268USB RTL8150 DRIVER
4262P: Petko Manolov 4269P: Petko Manolov
4263M: petkan@users.sourceforge.net 4270M: petkan@users.sourceforge.net
4264L: linux-usb@vger.kernel.org 4271L: linux-usb@vger.kernel.org
4265L: netdev@vger.kernel.org 4272L: netdev@vger.kernel.org
4266W: http://pegasus2.sourceforge.net/ 4273W: http://pegasus2.sourceforge.net/
4267S: Maintained 4274S: Maintained
@@ -4269,20 +4276,20 @@ S: Maintained
4269USB SE401 DRIVER 4276USB SE401 DRIVER
4270P: Jeroen Vreeken 4277P: Jeroen Vreeken
4271M: pe1rxq@amsat.org 4278M: pe1rxq@amsat.org
4272L: linux-usb@vger.kernel.org 4279L: linux-usb@vger.kernel.org
4273W: http://www.chello.nl/~j.vreeken/se401/ 4280W: http://www.chello.nl/~j.vreeken/se401/
4274S: Maintained 4281S: Maintained
4275 4282
4276USB SERIAL BELKIN F5U103 DRIVER 4283USB SERIAL BELKIN F5U103 DRIVER
4277P: William Greathouse 4284P: William Greathouse
4278M: wgreathouse@smva.com 4285M: wgreathouse@smva.com
4279L: linux-usb@vger.kernel.org 4286L: linux-usb@vger.kernel.org
4280S: Maintained 4287S: Maintained
4281 4288
4282USB SERIAL CYPRESS M8 DRIVER 4289USB SERIAL CYPRESS M8 DRIVER
4283P: Lonnie Mendez 4290P: Lonnie Mendez
4284M: dignome@gmail.com 4291M: dignome@gmail.com
4285L: linux-usb@vger.kernel.org 4292L: linux-usb@vger.kernel.org
4286S: Maintained 4293S: Maintained
4287W: http://geocities.com/i0xox0i 4294W: http://geocities.com/i0xox0i
4288W: http://firstlight.net/cvs 4295W: http://firstlight.net/cvs
@@ -4297,39 +4304,39 @@ USB SERIAL DIGI ACCELEPORT DRIVER
4297P: Peter Berger and Al Borchers 4304P: Peter Berger and Al Borchers
4298M: pberger@brimson.com 4305M: pberger@brimson.com
4299M: alborchers@steinerpoint.com 4306M: alborchers@steinerpoint.com
4300L: linux-usb@vger.kernel.org 4307L: linux-usb@vger.kernel.org
4301S: Maintained 4308S: Maintained
4302 4309
4303USB SERIAL DRIVER 4310USB SERIAL DRIVER
4304P: Greg Kroah-Hartman 4311P: Greg Kroah-Hartman
4305M: gregkh@suse.de 4312M: gregkh@suse.de
4306L: linux-usb@vger.kernel.org 4313L: linux-usb@vger.kernel.org
4307S: Supported 4314S: Supported
4308 4315
4309USB SERIAL EMPEG EMPEG-CAR MARK I/II DRIVER 4316USB SERIAL EMPEG EMPEG-CAR MARK I/II DRIVER
4310P: Gary Brubaker 4317P: Gary Brubaker
4311M: xavyer@ix.netcom.com 4318M: xavyer@ix.netcom.com
4312L: linux-usb@vger.kernel.org 4319L: linux-usb@vger.kernel.org
4313S: Maintained 4320S: Maintained
4314 4321
4315USB SERIAL KEYSPAN DRIVER 4322USB SERIAL KEYSPAN DRIVER
4316P: Greg Kroah-Hartman 4323P: Greg Kroah-Hartman
4317M: greg@kroah.com 4324M: greg@kroah.com
4318L: linux-usb@vger.kernel.org 4325L: linux-usb@vger.kernel.org
4319W: http://www.kroah.com/linux/ 4326W: http://www.kroah.com/linux/
4320S: Maintained 4327S: Maintained
4321 4328
4322USB SERIAL WHITEHEAT DRIVER 4329USB SERIAL WHITEHEAT DRIVER
4323P: Support Department 4330P: Support Department
4324M: support@connecttech.com 4331M: support@connecttech.com
4325L: linux-usb@vger.kernel.org 4332L: linux-usb@vger.kernel.org
4326W: http://www.connecttech.com 4333W: http://www.connecttech.com
4327S: Supported 4334S: Supported
4328 4335
4329USB SN9C1xx DRIVER 4336USB SN9C1xx DRIVER
4330P: Luca Risolia 4337P: Luca Risolia
4331M: luca.risolia@studio.unibo.it 4338M: luca.risolia@studio.unibo.it
4332L: linux-usb@vger.kernel.org 4339L: linux-usb@vger.kernel.org
4333L: video4linux-list@redhat.com 4340L: video4linux-list@redhat.com
4334W: http://www.linux-projects.org 4341W: http://www.linux-projects.org
4335S: Maintained 4342S: Maintained
@@ -4337,7 +4344,7 @@ S: Maintained
4337USB SUBSYSTEM 4344USB SUBSYSTEM
4338P: Greg Kroah-Hartman 4345P: Greg Kroah-Hartman
4339M: gregkh@suse.de 4346M: gregkh@suse.de
4340L: linux-usb@vger.kernel.org 4347L: linux-usb@vger.kernel.org
4341W: http://www.linux-usb.org 4348W: http://www.linux-usb.org
4342T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ 4349T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
4343S: Supported 4350S: Supported
@@ -4345,7 +4352,7 @@ S: Supported
4345USB UHCI DRIVER 4352USB UHCI DRIVER
4346P: Alan Stern 4353P: Alan Stern
4347M: stern@rowland.harvard.edu 4354M: stern@rowland.harvard.edu
4348L: linux-usb@vger.kernel.org 4355L: linux-usb@vger.kernel.org
4349S: Maintained 4356S: Maintained
4350 4357
4351USB "USBNET" DRIVER FRAMEWORK 4358USB "USBNET" DRIVER FRAMEWORK
@@ -4358,7 +4365,7 @@ S: Maintained
4358USB VIDEO CLASS 4365USB VIDEO CLASS
4359P: Laurent Pinchart 4366P: Laurent Pinchart
4360M: laurent.pinchart@skynet.be 4367M: laurent.pinchart@skynet.be
4361L: linx-uvc-devel@berlios.de 4368L: linux-uvc-devel@lists.berlios.de
4362L: video4linux-list@redhat.com 4369L: video4linux-list@redhat.com
4363W: http://linux-uvc.berlios.de 4370W: http://linux-uvc.berlios.de
4364S: Maintained 4371S: Maintained
@@ -4366,7 +4373,7 @@ S: Maintained
4366USB W996[87]CF DRIVER 4373USB W996[87]CF DRIVER
4367P: Luca Risolia 4374P: Luca Risolia
4368M: luca.risolia@studio.unibo.it 4375M: luca.risolia@studio.unibo.it
4369L: linux-usb@vger.kernel.org 4376L: linux-usb@vger.kernel.org
4370L: video4linux-list@redhat.com 4377L: video4linux-list@redhat.com
4371W: http://www.linux-projects.org 4378W: http://www.linux-projects.org
4372S: Maintained 4379S: Maintained
@@ -4380,7 +4387,7 @@ S: Maintained
4380USB ZC0301 DRIVER 4387USB ZC0301 DRIVER
4381P: Luca Risolia 4388P: Luca Risolia
4382M: luca.risolia@studio.unibo.it 4389M: luca.risolia@studio.unibo.it
4383L: linux-usb@vger.kernel.org 4390L: linux-usb@vger.kernel.org
4384L: video4linux-list@redhat.com 4391L: video4linux-list@redhat.com
4385W: http://www.linux-projects.org 4392W: http://www.linux-projects.org
4386S: Maintained 4393S: Maintained
@@ -4388,14 +4395,14 @@ S: Maintained
4388USB ZD1201 DRIVER 4395USB ZD1201 DRIVER
4389P: Jeroen Vreeken 4396P: Jeroen Vreeken
4390M: pe1rxq@amsat.org 4397M: pe1rxq@amsat.org
4391L: linux-usb@vger.kernel.org 4398L: linux-usb@vger.kernel.org
4392W: http://linux-lc100020.sourceforge.net 4399W: http://linux-lc100020.sourceforge.net
4393S: Maintained 4400S: Maintained
4394 4401
4395USB ZR364XX DRIVER 4402USB ZR364XX DRIVER
4396P: Antoine Jacquet 4403P: Antoine Jacquet
4397M: royale@zerezo.com 4404M: royale@zerezo.com
4398L: linux-usb@vger.kernel.org 4405L: linux-usb@vger.kernel.org
4399L: video4linux-list@redhat.com 4406L: video4linux-list@redhat.com
4400W: http://royale.zerezo.com/zr364xx/ 4407W: http://royale.zerezo.com/zr364xx/
4401S: Maintained 4408S: Maintained
diff --git a/Makefile b/Makefile
index 2e15e0b4483..1d03c1644dd 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 27 3SUBLEVEL = 27
4EXTRAVERSION = -rc4 4EXTRAVERSION = -rc8
5NAME = Rotary Wombat 5NAME = Rotary Wombat
6 6
7# *DOCUMENTATION* 7# *DOCUMENTATION*
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
index 6e943135f0e..8509dad3120 100644
--- a/arch/alpha/kernel/osf_sys.c
+++ b/arch/alpha/kernel/osf_sys.c
@@ -121,24 +121,29 @@ osf_filldir(void *__buf, const char *name, int namlen, loff_t offset,
121 if (reclen > buf->count) 121 if (reclen > buf->count)
122 return -EINVAL; 122 return -EINVAL;
123 d_ino = ino; 123 d_ino = ino;
124 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) 124 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
125 buf->error = -EOVERFLOW;
125 return -EOVERFLOW; 126 return -EOVERFLOW;
127 }
126 if (buf->basep) { 128 if (buf->basep) {
127 if (put_user(offset, buf->basep)) 129 if (put_user(offset, buf->basep))
128 return -EFAULT; 130 goto Efault;
129 buf->basep = NULL; 131 buf->basep = NULL;
130 } 132 }
131 dirent = buf->dirent; 133 dirent = buf->dirent;
132 put_user(d_ino, &dirent->d_ino); 134 if (put_user(d_ino, &dirent->d_ino) ||
133 put_user(namlen, &dirent->d_namlen); 135 put_user(namlen, &dirent->d_namlen) ||
134 put_user(reclen, &dirent->d_reclen); 136 put_user(reclen, &dirent->d_reclen) ||
135 if (copy_to_user(dirent->d_name, name, namlen) || 137 copy_to_user(dirent->d_name, name, namlen) ||
136 put_user(0, dirent->d_name + namlen)) 138 put_user(0, dirent->d_name + namlen))
137 return -EFAULT; 139 goto Efault;
138 dirent = (void __user *)dirent + reclen; 140 dirent = (void __user *)dirent + reclen;
139 buf->dirent = dirent; 141 buf->dirent = dirent;
140 buf->count -= reclen; 142 buf->count -= reclen;
141 return 0; 143 return 0;
144Efault:
145 buf->error = -EFAULT;
146 return -EFAULT;
142} 147}
143 148
144asmlinkage int 149asmlinkage int
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4b8acd2851f..70dba166890 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -810,6 +810,11 @@ config OABI_COMPAT
810 UNPREDICTABLE (in fact it can be predicted that it won't work 810 UNPREDICTABLE (in fact it can be predicted that it won't work
811 at all). If in doubt say Y. 811 at all). If in doubt say Y.
812 812
813config ARCH_FLATMEM_HAS_HOLES
814 bool
815 default y
816 depends on FLATMEM
817
813config ARCH_DISCONTIGMEM_ENABLE 818config ARCH_DISCONTIGMEM_ENABLE
814 bool 819 bool
815 default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM) 820 default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM)
diff --git a/arch/arm/configs/ams_delta_defconfig b/arch/arm/configs/ams_delta_defconfig
new file mode 100644
index 00000000000..2c4aa11f0b0
--- /dev/null
+++ b/arch/arm/configs/ams_delta_defconfig
@@ -0,0 +1,1314 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22-rc1-omap1
4# Thu Jun 7 04:28:32 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# Code maturity level options
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35
36#
37# General setup
38#
39CONFIG_LOCALVERSION=""
40CONFIG_LOCALVERSION_AUTO=y
41# CONFIG_SWAP is not set
42CONFIG_SYSVIPC=y
43# CONFIG_IPC_NS is not set
44CONFIG_SYSVIPC_SYSCTL=y
45# CONFIG_POSIX_MQUEUE is not set
46# CONFIG_BSD_PROCESS_ACCT is not set
47# CONFIG_TASKSTATS is not set
48# CONFIG_UTS_NS is not set
49# CONFIG_AUDIT is not set
50# CONFIG_IKCONFIG is not set
51CONFIG_LOG_BUF_SHIFT=14
52CONFIG_SYSFS_DEPRECATED=y
53# CONFIG_RELAY is not set
54CONFIG_BLK_DEV_INITRD=y
55CONFIG_INITRAMFS_SOURCE=""
56CONFIG_CC_OPTIMIZE_FOR_SIZE=y
57CONFIG_SYSCTL=y
58# CONFIG_EMBEDDED is not set
59CONFIG_UID16=y
60CONFIG_SYSCTL_SYSCALL=y
61CONFIG_KALLSYMS=y
62# CONFIG_KALLSYMS_ALL is not set
63# CONFIG_KALLSYMS_EXTRA_PASS is not set
64CONFIG_HOTPLUG=y
65CONFIG_PRINTK=y
66CONFIG_BUG=y
67CONFIG_ELF_CORE=y
68CONFIG_BASE_FULL=y
69CONFIG_FUTEX=y
70CONFIG_ANON_INODES=y
71CONFIG_EPOLL=y
72CONFIG_SIGNALFD=y
73CONFIG_TIMERFD=y
74CONFIG_EVENTFD=y
75CONFIG_SHMEM=y
76CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_SLAB=y
78# CONFIG_SLUB is not set
79# CONFIG_SLOB is not set
80CONFIG_RT_MUTEXES=y
81# CONFIG_TINY_SHMEM is not set
82CONFIG_BASE_SMALL=0
83
84#
85# Loadable module support
86#
87CONFIG_MODULES=y
88CONFIG_MODULE_UNLOAD=y
89CONFIG_MODULE_FORCE_UNLOAD=y
90# CONFIG_MODVERSIONS is not set
91# CONFIG_MODULE_SRCVERSION_ALL is not set
92CONFIG_KMOD=y
93
94#
95# Block layer
96#
97CONFIG_BLOCK=y
98# CONFIG_LBD is not set
99# CONFIG_BLK_DEV_IO_TRACE is not set
100# CONFIG_LSF is not set
101
102#
103# IO Schedulers
104#
105CONFIG_IOSCHED_NOOP=y
106CONFIG_IOSCHED_AS=y
107CONFIG_IOSCHED_DEADLINE=y
108CONFIG_IOSCHED_CFQ=y
109CONFIG_DEFAULT_AS=y
110# CONFIG_DEFAULT_DEADLINE is not set
111# CONFIG_DEFAULT_CFQ is not set
112# CONFIG_DEFAULT_NOOP is not set
113CONFIG_DEFAULT_IOSCHED="anticipatory"
114
115#
116# System Type
117#
118# CONFIG_ARCH_AAEC2000 is not set
119# CONFIG_ARCH_INTEGRATOR is not set
120# CONFIG_ARCH_REALVIEW is not set
121# CONFIG_ARCH_VERSATILE is not set
122# CONFIG_ARCH_AT91 is not set
123# CONFIG_ARCH_CLPS7500 is not set
124# CONFIG_ARCH_CLPS711X is not set
125# CONFIG_ARCH_CO285 is not set
126# CONFIG_ARCH_EBSA110 is not set
127# CONFIG_ARCH_EP93XX is not set
128# CONFIG_ARCH_FOOTBRIDGE is not set
129# CONFIG_ARCH_NETX is not set
130# CONFIG_ARCH_H720X is not set
131# CONFIG_ARCH_IMX is not set
132# CONFIG_ARCH_IOP13XX is not set
133# CONFIG_ARCH_IOP32X is not set
134# CONFIG_ARCH_IOP33X is not set
135# CONFIG_ARCH_IXP23XX is not set
136# CONFIG_ARCH_IXP2000 is not set
137# CONFIG_ARCH_IXP4XX is not set
138# CONFIG_ARCH_L7200 is not set
139# CONFIG_ARCH_KS8695 is not set
140# CONFIG_ARCH_NS9XXX is not set
141# CONFIG_ARCH_PNX4008 is not set
142# CONFIG_ARCH_PXA is not set
143# CONFIG_ARCH_RPC is not set
144# CONFIG_ARCH_SA1100 is not set
145# CONFIG_ARCH_S3C2410 is not set
146# CONFIG_ARCH_SHARK is not set
147# CONFIG_ARCH_LH7A40X is not set
148# CONFIG_ARCH_DAVINCI is not set
149CONFIG_ARCH_OMAP=y
150
151#
152# TI OMAP Implementations
153#
154CONFIG_ARCH_OMAP1=y
155# CONFIG_ARCH_OMAP2 is not set
156
157#
158# OMAP Feature Selections
159#
160# CONFIG_OMAP_RESET_CLOCKS is not set
161# CONFIG_OMAP_BOOT_TAG is not set
162# CONFIG_OMAP_GPIO_SWITCH is not set
163CONFIG_OMAP_MUX=y
164# CONFIG_OMAP_MUX_DEBUG is not set
165CONFIG_OMAP_MUX_WARNINGS=y
166CONFIG_OMAP_MCBSP=y
167CONFIG_OMAP_MMU_FWK=y
168CONFIG_OMAP_MBOX_FWK=m
169CONFIG_OMAP_MPU_TIMER=y
170# CONFIG_OMAP_32K_TIMER is not set
171CONFIG_OMAP_LL_DEBUG_UART1=y
172# CONFIG_OMAP_LL_DEBUG_UART2 is not set
173# CONFIG_OMAP_LL_DEBUG_UART3 is not set
174# CONFIG_OMAP_LL_DEBUG_LCD is not set
175CONFIG_OMAP_SERIAL_WAKE=y
176CONFIG_OMAP_DSP=m
177# CONFIG_OMAP_DSP_MBCMD_VERBOSE is not set
178# CONFIG_OMAP_DSP_TASK_MULTIOPEN is not set
179# CONFIG_OMAP_DSP_FBEXPORT is not set
180
181#
182# OMAP Core Type
183#
184# CONFIG_ARCH_OMAP730 is not set
185CONFIG_ARCH_OMAP15XX=y
186# CONFIG_ARCH_OMAP16XX is not set
187
188#
189# OMAP Board Type
190#
191# CONFIG_MACH_OMAP_INNOVATOR is not set
192# CONFIG_MACH_VOICEBLUE is not set
193# CONFIG_MACH_OMAP_PALMTE is not set
194# CONFIG_MACH_OMAP_PALMZ71 is not set
195# CONFIG_MACH_OMAP_PALMTT is not set
196# CONFIG_MACH_SX1 is not set
197CONFIG_MACH_AMS_DELTA=y
198# CONFIG_MACH_OMAP_GENERIC is not set
199
200#
201# OMAP CPU Speed
202#
203# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
204# CONFIG_OMAP_ARM_168MHZ is not set
205CONFIG_OMAP_ARM_150MHZ=y
206# CONFIG_OMAP_ARM_120MHZ is not set
207# CONFIG_OMAP_ARM_60MHZ is not set
208# CONFIG_OMAP_ARM_30MHZ is not set
209
210#
211# Processor Type
212#
213CONFIG_CPU_32=y
214CONFIG_CPU_ARM925T=y
215CONFIG_CPU_32v4T=y
216CONFIG_CPU_ABRT_EV4T=y
217CONFIG_CPU_CACHE_V4WT=y
218CONFIG_CPU_CACHE_VIVT=y
219CONFIG_CPU_COPY_V4WB=y
220CONFIG_CPU_TLB_V4WBI=y
221CONFIG_CPU_CP15=y
222CONFIG_CPU_CP15_MMU=y
223
224#
225# Processor Features
226#
227# CONFIG_ARM_THUMB is not set
228# CONFIG_CPU_ICACHE_DISABLE is not set
229# CONFIG_CPU_DCACHE_DISABLE is not set
230CONFIG_CPU_DCACHE_WRITETHROUGH=y
231# CONFIG_OUTER_CACHE is not set
232
233#
234# Bus support
235#
236# CONFIG_ARCH_SUPPORTS_MSI is not set
237
238#
239# PCCARD (PCMCIA/CardBus) support
240#
241# CONFIG_PCCARD is not set
242
243#
244# Kernel Features
245#
246# CONFIG_TICK_ONESHOT is not set
247# CONFIG_NO_HZ is not set
248# CONFIG_HIGH_RES_TIMERS is not set
249CONFIG_PREEMPT=y
250CONFIG_HZ=100
251# CONFIG_AEABI is not set
252# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
253CONFIG_SELECT_MEMORY_MODEL=y
254CONFIG_FLATMEM_MANUAL=y
255# CONFIG_DISCONTIGMEM_MANUAL is not set
256# CONFIG_SPARSEMEM_MANUAL is not set
257CONFIG_FLATMEM=y
258CONFIG_FLAT_NODE_MEM_MAP=y
259# CONFIG_SPARSEMEM_STATIC is not set
260CONFIG_SPLIT_PTLOCK_CPUS=4096
261# CONFIG_RESOURCES_64BIT is not set
262CONFIG_ZONE_DMA_FLAG=1
263# CONFIG_LEDS is not set
264CONFIG_ALIGNMENT_TRAP=y
265
266#
267# Boot options
268#
269CONFIG_ZBOOT_ROM_TEXT=0x0
270CONFIG_ZBOOT_ROM_BSS=0x0
271CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=/dev/ram0 initrd=0x11c00000,4M"
272# CONFIG_XIP_KERNEL is not set
273# CONFIG_KEXEC is not set
274
275#
276# CPU Frequency scaling
277#
278# CONFIG_CPU_FREQ is not set
279
280#
281# Floating point emulation
282#
283
284#
285# At least one emulation must be selected
286#
287CONFIG_FPE_NWFPE=y
288# CONFIG_FPE_NWFPE_XP is not set
289# CONFIG_FPE_FASTFPE is not set
290
291#
292# Userspace binary formats
293#
294CONFIG_BINFMT_ELF=y
295# CONFIG_BINFMT_AOUT is not set
296# CONFIG_BINFMT_MISC is not set
297# CONFIG_ARTHUR is not set
298
299#
300# Power management options
301#
302# CONFIG_PM is not set
303
304#
305# Networking
306#
307CONFIG_NET=y
308
309#
310# Networking options
311#
312CONFIG_PACKET=y
313# CONFIG_PACKET_MMAP is not set
314CONFIG_UNIX=y
315CONFIG_XFRM=y
316# CONFIG_XFRM_USER is not set
317# CONFIG_XFRM_SUB_POLICY is not set
318# CONFIG_XFRM_MIGRATE is not set
319# CONFIG_NET_KEY is not set
320CONFIG_INET=y
321CONFIG_IP_MULTICAST=y
322# CONFIG_IP_ADVANCED_ROUTER is not set
323CONFIG_IP_FIB_HASH=y
324# CONFIG_IP_PNP is not set
325# CONFIG_NET_IPIP is not set
326# CONFIG_NET_IPGRE is not set
327# CONFIG_IP_MROUTE is not set
328# CONFIG_ARPD is not set
329# CONFIG_SYN_COOKIES is not set
330# CONFIG_INET_AH is not set
331# CONFIG_INET_ESP is not set
332# CONFIG_INET_IPCOMP is not set
333# CONFIG_INET_XFRM_TUNNEL is not set
334CONFIG_INET_TUNNEL=y
335CONFIG_INET_XFRM_MODE_TRANSPORT=y
336CONFIG_INET_XFRM_MODE_TUNNEL=y
337CONFIG_INET_XFRM_MODE_BEET=y
338CONFIG_INET_DIAG=y
339CONFIG_INET_TCP_DIAG=y
340# CONFIG_TCP_CONG_ADVANCED is not set
341CONFIG_TCP_CONG_CUBIC=y
342CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_TCP_MD5SIG is not set
344CONFIG_IPV6=y
345# CONFIG_IPV6_PRIVACY is not set
346# CONFIG_IPV6_ROUTER_PREF is not set
347# CONFIG_IPV6_OPTIMISTIC_DAD is not set
348# CONFIG_INET6_AH is not set
349# CONFIG_INET6_ESP is not set
350# CONFIG_INET6_IPCOMP is not set
351# CONFIG_IPV6_MIP6 is not set
352# CONFIG_INET6_XFRM_TUNNEL is not set
353# CONFIG_INET6_TUNNEL is not set
354CONFIG_INET6_XFRM_MODE_TRANSPORT=y
355CONFIG_INET6_XFRM_MODE_TUNNEL=y
356CONFIG_INET6_XFRM_MODE_BEET=y
357# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
358CONFIG_IPV6_SIT=y
359# CONFIG_IPV6_TUNNEL is not set
360# CONFIG_IPV6_MULTIPLE_TABLES is not set
361# CONFIG_NETWORK_SECMARK is not set
362# CONFIG_NETFILTER is not set
363
364#
365# DCCP Configuration (EXPERIMENTAL)
366#
367# CONFIG_IP_DCCP is not set
368
369#
370# SCTP Configuration (EXPERIMENTAL)
371#
372# CONFIG_IP_SCTP is not set
373
374#
375# TIPC Configuration (EXPERIMENTAL)
376#
377# CONFIG_TIPC is not set
378# CONFIG_ATM is not set
379# CONFIG_BRIDGE is not set
380# CONFIG_VLAN_8021Q is not set
381# CONFIG_DECNET is not set
382# CONFIG_LLC2 is not set
383# CONFIG_IPX is not set
384# CONFIG_ATALK is not set
385# CONFIG_X25 is not set
386# CONFIG_LAPB is not set
387# CONFIG_ECONET is not set
388# CONFIG_WAN_ROUTER is not set
389
390#
391# QoS and/or fair queueing
392#
393# CONFIG_NET_SCHED is not set
394
395#
396# Network testing
397#
398# CONFIG_NET_PKTGEN is not set
399# CONFIG_HAMRADIO is not set
400# CONFIG_IRDA is not set
401# CONFIG_BT is not set
402# CONFIG_AF_RXRPC is not set
403
404#
405# Wireless
406#
407# CONFIG_CFG80211 is not set
408# CONFIG_WIRELESS_EXT is not set
409# CONFIG_MAC80211 is not set
410# CONFIG_IEEE80211 is not set
411# CONFIG_RFKILL is not set
412
413#
414# Device Drivers
415#
416
417#
418# Generic Driver Options
419#
420CONFIG_STANDALONE=y
421CONFIG_PREVENT_FIRMWARE_BUILD=y
422# CONFIG_FW_LOADER is not set
423# CONFIG_DEBUG_DRIVER is not set
424# CONFIG_DEBUG_DEVRES is not set
425# CONFIG_SYS_HYPERVISOR is not set
426
427#
428# Connector - unified userspace <-> kernelspace linker
429#
430# CONFIG_CONNECTOR is not set
431CONFIG_MTD=y
432# CONFIG_MTD_DEBUG is not set
433# CONFIG_MTD_CONCAT is not set
434CONFIG_MTD_PARTITIONS=y
435# CONFIG_MTD_REDBOOT_PARTS is not set
436# CONFIG_MTD_CMDLINE_PARTS is not set
437# CONFIG_MTD_AFS_PARTS is not set
438
439#
440# User Modules And Translation Layers
441#
442CONFIG_MTD_CHAR=y
443CONFIG_MTD_BLKDEVS=y
444CONFIG_MTD_BLOCK=y
445# CONFIG_FTL is not set
446# CONFIG_NFTL is not set
447# CONFIG_INFTL is not set
448# CONFIG_RFD_FTL is not set
449# CONFIG_SSFDC is not set
450
451#
452# RAM/ROM/Flash chip drivers
453#
454# CONFIG_MTD_CFI is not set
455# CONFIG_MTD_JEDECPROBE is not set
456CONFIG_MTD_MAP_BANK_WIDTH_1=y
457CONFIG_MTD_MAP_BANK_WIDTH_2=y
458CONFIG_MTD_MAP_BANK_WIDTH_4=y
459# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
460# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
461# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
462CONFIG_MTD_CFI_I1=y
463CONFIG_MTD_CFI_I2=y
464# CONFIG_MTD_CFI_I4 is not set
465# CONFIG_MTD_CFI_I8 is not set
466# CONFIG_MTD_RAM is not set
467# CONFIG_MTD_ROM is not set
468# CONFIG_MTD_ABSENT is not set
469
470#
471# Mapping drivers for chip access
472#
473# CONFIG_MTD_COMPLEX_MAPPINGS is not set
474# CONFIG_MTD_PLATRAM is not set
475
476#
477# Self-contained MTD device drivers
478#
479# CONFIG_MTD_SLRAM is not set
480# CONFIG_MTD_PHRAM is not set
481# CONFIG_MTD_MTDRAM is not set
482# CONFIG_MTD_BLOCK2MTD is not set
483
484#
485# Disk-On-Chip Device Drivers
486#
487# CONFIG_MTD_DOC2000 is not set
488# CONFIG_MTD_DOC2001 is not set
489# CONFIG_MTD_DOC2001PLUS is not set
490CONFIG_MTD_NAND=y
491# CONFIG_MTD_NAND_VERIFY_WRITE is not set
492# CONFIG_MTD_NAND_ECC_SMC is not set
493# CONFIG_MTD_NAND_MUSEUM_IDS is not set
494CONFIG_MTD_NAND_AMS_DELTA=y
495CONFIG_MTD_NAND_IDS=y
496# CONFIG_MTD_NAND_DISKONCHIP is not set
497# CONFIG_MTD_NAND_NANDSIM is not set
498# CONFIG_MTD_NAND_PLATFORM is not set
499# CONFIG_MTD_ONENAND is not set
500
501#
502# UBI - Unsorted block images
503#
504# CONFIG_MTD_UBI is not set
505
506#
507# Parallel port support
508#
509# CONFIG_PARPORT is not set
510
511#
512# Plug and Play support
513#
514# CONFIG_PNPACPI is not set
515
516#
517# Block devices
518#
519# CONFIG_BLK_DEV_COW_COMMON is not set
520CONFIG_BLK_DEV_LOOP=y
521# CONFIG_BLK_DEV_CRYPTOLOOP is not set
522# CONFIG_BLK_DEV_NBD is not set
523# CONFIG_BLK_DEV_UB is not set
524CONFIG_BLK_DEV_RAM=y
525CONFIG_BLK_DEV_RAM_COUNT=16
526CONFIG_BLK_DEV_RAM_SIZE=8192
527CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
528# CONFIG_CDROM_PKTCDVD is not set
529# CONFIG_ATA_OVER_ETH is not set
530
531#
532# SCSI device support
533#
534# CONFIG_RAID_ATTRS is not set
535CONFIG_SCSI=y
536# CONFIG_SCSI_TGT is not set
537# CONFIG_SCSI_NETLINK is not set
538CONFIG_SCSI_PROC_FS=y
539
540#
541# SCSI support type (disk, tape, CD-ROM)
542#
543CONFIG_BLK_DEV_SD=y
544# CONFIG_CHR_DEV_ST is not set
545# CONFIG_CHR_DEV_OSST is not set
546# CONFIG_BLK_DEV_SR is not set
547# CONFIG_CHR_DEV_SG is not set
548# CONFIG_CHR_DEV_SCH is not set
549
550#
551# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
552#
553# CONFIG_SCSI_MULTI_LUN is not set
554# CONFIG_SCSI_CONSTANTS is not set
555# CONFIG_SCSI_LOGGING is not set
556# CONFIG_SCSI_SCAN_ASYNC is not set
557CONFIG_SCSI_WAIT_SCAN=m
558
559#
560# SCSI Transports
561#
562# CONFIG_SCSI_SPI_ATTRS is not set
563# CONFIG_SCSI_FC_ATTRS is not set
564# CONFIG_SCSI_ISCSI_ATTRS is not set
565# CONFIG_SCSI_SAS_ATTRS is not set
566# CONFIG_SCSI_SAS_LIBSAS is not set
567
568#
569# SCSI low-level drivers
570#
571# CONFIG_ISCSI_TCP is not set
572# CONFIG_SCSI_DEBUG is not set
573# CONFIG_SCSI_ESP_CORE is not set
574# CONFIG_ATA is not set
575
576#
577# Multi-device support (RAID and LVM)
578#
579# CONFIG_MD is not set
580
581#
582# Network device support
583#
584CONFIG_NETDEVICES=y
585# CONFIG_DUMMY is not set
586# CONFIG_BONDING is not set
587# CONFIG_EQUALIZER is not set
588# CONFIG_TUN is not set
589# CONFIG_PHYLIB is not set
590
591#
592# Ethernet (10 or 100Mbit)
593#
594CONFIG_NET_ETHERNET=y
595CONFIG_MII=y
596# CONFIG_SMC91X is not set
597# CONFIG_DM9000 is not set
598CONFIG_NETDEV_1000=y
599CONFIG_NETDEV_10000=y
600
601#
602# Token Ring devices
603#
604
605#
606# Wireless LAN
607#
608# CONFIG_WLAN_PRE80211 is not set
609# CONFIG_WLAN_80211 is not set
610
611#
612# USB Network Adapters
613#
614CONFIG_USB_CATC=y
615CONFIG_USB_KAWETH=y
616CONFIG_USB_PEGASUS=y
617CONFIG_USB_RTL8150=y
618CONFIG_USB_USBNET_MII=y
619CONFIG_USB_USBNET=y
620CONFIG_USB_NET_AX8817X=y
621CONFIG_USB_NET_CDCETHER=y
622# CONFIG_USB_NET_DM9601 is not set
623# CONFIG_USB_NET_GL620A is not set
624CONFIG_USB_NET_NET1080=y
625# CONFIG_USB_NET_PLUSB is not set
626# CONFIG_USB_NET_MCS7830 is not set
627# CONFIG_USB_NET_RNDIS_HOST is not set
628CONFIG_USB_NET_CDC_SUBSET=y
629# CONFIG_USB_ALI_M5632 is not set
630# CONFIG_USB_AN2720 is not set
631CONFIG_USB_BELKIN=y
632CONFIG_USB_ARMLINUX=y
633# CONFIG_USB_EPSON2888 is not set
634# CONFIG_USB_KC2190 is not set
635CONFIG_USB_NET_ZAURUS=y
636# CONFIG_WAN is not set
637CONFIG_PPP=y
638CONFIG_PPP_MULTILINK=y
639# CONFIG_PPP_FILTER is not set
640# CONFIG_PPP_ASYNC is not set
641# CONFIG_PPP_SYNC_TTY is not set
642# CONFIG_PPP_DEFLATE is not set
643# CONFIG_PPP_BSDCOMP is not set
644# CONFIG_PPP_MPPE is not set
645# CONFIG_PPPOE is not set
646# CONFIG_SLIP is not set
647CONFIG_SLHC=y
648# CONFIG_SHAPER is not set
649# CONFIG_NETCONSOLE is not set
650# CONFIG_NETPOLL is not set
651# CONFIG_NET_POLL_CONTROLLER is not set
652
653#
654# ISDN subsystem
655#
656# CONFIG_ISDN is not set
657
658#
659# Input device support
660#
661CONFIG_INPUT=y
662# CONFIG_INPUT_FF_MEMLESS is not set
663
664#
665# Userland interfaces
666#
667CONFIG_INPUT_MOUSEDEV=y
668CONFIG_INPUT_MOUSEDEV_PSAUX=y
669CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
670CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
671# CONFIG_INPUT_JOYDEV is not set
672# CONFIG_INPUT_TSDEV is not set
673# CONFIG_INPUT_EVDEV is not set
674# CONFIG_INPUT_EVBUG is not set
675
676#
677# Input Device Drivers
678#
679CONFIG_INPUT_KEYBOARD=y
680CONFIG_KEYBOARD_ATKBD=y
681# CONFIG_KEYBOARD_SUNKBD is not set
682# CONFIG_KEYBOARD_LKKBD is not set
683# CONFIG_KEYBOARD_XTKBD is not set
684# CONFIG_KEYBOARD_NEWTON is not set
685# CONFIG_KEYBOARD_STOWAWAY is not set
686CONFIG_KEYBOARD_OMAP=y
687# CONFIG_KEYBOARD_GPIO is not set
688# CONFIG_INPUT_MOUSE is not set
689# CONFIG_INPUT_JOYSTICK is not set
690# CONFIG_INPUT_TABLET is not set
691# CONFIG_INPUT_TOUCHSCREEN is not set
692# CONFIG_INPUT_MISC is not set
693
694#
695# Hardware I/O ports
696#
697CONFIG_SERIO=y
698CONFIG_SERIO_SERPORT=y
699CONFIG_SERIO_LIBPS2=y
700# CONFIG_SERIO_RAW is not set
701# CONFIG_GAMEPORT is not set
702
703#
704# Character devices
705#
706CONFIG_VT=y
707CONFIG_VT_CONSOLE=y
708CONFIG_HW_CONSOLE=y
709# CONFIG_VT_HW_CONSOLE_BINDING is not set
710# CONFIG_SERIAL_NONSTANDARD is not set
711
712#
713# Serial drivers
714#
715CONFIG_SERIAL_8250=y
716CONFIG_SERIAL_8250_CONSOLE=y
717CONFIG_SERIAL_8250_NR_UARTS=4
718CONFIG_SERIAL_8250_RUNTIME_UARTS=4
719# CONFIG_SERIAL_8250_EXTENDED is not set
720
721#
722# Non-8250 serial port support
723#
724CONFIG_SERIAL_CORE=y
725CONFIG_SERIAL_CORE_CONSOLE=y
726CONFIG_UNIX98_PTYS=y
727# CONFIG_LEGACY_PTYS is not set
728
729#
730# IPMI
731#
732# CONFIG_IPMI_HANDLER is not set
733# CONFIG_WATCHDOG is not set
734CONFIG_HW_RANDOM=y
735# CONFIG_NVRAM is not set
736# CONFIG_R3964 is not set
737# CONFIG_RAW_DRIVER is not set
738
739#
740# TPM devices
741#
742# CONFIG_TCG_TPM is not set
743CONFIG_I2C=y
744CONFIG_I2C_BOARDINFO=y
745CONFIG_I2C_CHARDEV=y
746
747#
748# I2C Algorithms
749#
750CONFIG_I2C_ALGOBIT=y
751# CONFIG_I2C_ALGOPCF is not set
752# CONFIG_I2C_ALGOPCA is not set
753
754#
755# I2C Hardware Bus support
756#
757# CONFIG_I2C_GPIO is not set
758# CONFIG_I2C_OCORES is not set
759CONFIG_I2C_OMAP=y
760# CONFIG_I2C_PARPORT_LIGHT is not set
761# CONFIG_I2C_SIMTEC is not set
762# CONFIG_I2C_STUB is not set
763# CONFIG_I2C_TINY_USB is not set
764
765#
766# Miscellaneous I2C Chip support
767#
768# CONFIG_SENSORS_DS1337 is not set
769# CONFIG_SENSORS_DS1374 is not set
770# CONFIG_SENSORS_EEPROM is not set
771# CONFIG_SENSORS_PCF8574 is not set
772# CONFIG_SENSORS_PCA9539 is not set
773# CONFIG_SENSORS_PCF8591 is not set
774# CONFIG_TPS65010 is not set
775# CONFIG_SENSORS_TLV320AIC23 is not set
776# CONFIG_SENSORS_MAX6875 is not set
777# CONFIG_I2C_DEBUG_CORE is not set
778# CONFIG_I2C_DEBUG_ALGO is not set
779# CONFIG_I2C_DEBUG_BUS is not set
780# CONFIG_I2C_DEBUG_CHIP is not set
781
782#
783# SPI support
784#
785# CONFIG_SPI is not set
786# CONFIG_SPI_MASTER is not set
787
788#
789# Dallas's 1-wire bus
790#
791# CONFIG_W1 is not set
792# CONFIG_HWMON is not set
793
794#
795# Misc devices
796#
797# CONFIG_BLINK is not set
798
799#
800# Multifunction device drivers
801#
802# CONFIG_MFD_SM501 is not set
803
804#
805# LED devices
806#
807CONFIG_NEW_LEDS=y
808CONFIG_LEDS_CLASS=y
809
810#
811# LED drivers
812#
813CONFIG_LEDS_AMS_DELTA=y
814# CONFIG_LEDS_OMAP_DEBUG is not set
815# CONFIG_LEDS_OMAP is not set
816
817#
818# LED Triggers
819#
820CONFIG_LEDS_TRIGGERS=y
821CONFIG_LEDS_TRIGGER_TIMER=y
822CONFIG_LEDS_TRIGGER_HEARTBEAT=y
823
824#
825# Multimedia devices
826#
827# CONFIG_VIDEO_DEV is not set
828# CONFIG_DVB_CORE is not set
829CONFIG_DAB=y
830# CONFIG_USB_DABUSB is not set
831
832#
833# Graphics support
834#
835# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
836
837#
838# Display device support
839#
840# CONFIG_DISPLAY_SUPPORT is not set
841# CONFIG_VGASTATE is not set
842CONFIG_FB=y
843CONFIG_FIRMWARE_EDID=y
844# CONFIG_FB_DDC is not set
845# CONFIG_FB_CFB_FILLRECT is not set
846# CONFIG_FB_CFB_COPYAREA is not set
847# CONFIG_FB_CFB_IMAGEBLIT is not set
848# CONFIG_FB_SYS_FILLRECT is not set
849# CONFIG_FB_SYS_COPYAREA is not set
850# CONFIG_FB_SYS_IMAGEBLIT is not set
851# CONFIG_FB_SYS_FOPS is not set
852CONFIG_FB_DEFERRED_IO=y
853# CONFIG_FB_SVGALIB is not set
854# CONFIG_FB_MACMODES is not set
855# CONFIG_FB_BACKLIGHT is not set
856# CONFIG_FB_MODE_HELPERS is not set
857# CONFIG_FB_TILEBLITTING is not set
858
859#
860# Frame buffer hardware drivers
861#
862# CONFIG_FB_S1D13XXX is not set
863CONFIG_FB_OMAP=y
864# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
865# CONFIG_FB_OMAP_LCD_MIPID is not set
866# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
867CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
868# CONFIG_FB_OMAP_DMA_TUNE is not set
869# CONFIG_FB_VIRTUAL is not set
870
871#
872# Console display driver support
873#
874# CONFIG_VGA_CONSOLE is not set
875CONFIG_DUMMY_CONSOLE=y
876CONFIG_FRAMEBUFFER_CONSOLE=y
877# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
878CONFIG_FONTS=y
879# CONFIG_FONT_8x8 is not set
880# CONFIG_FONT_8x16 is not set
881CONFIG_FONT_6x11=y
882# CONFIG_FONT_7x14 is not set
883# CONFIG_FONT_PEARL_8x8 is not set
884# CONFIG_FONT_ACORN_8x8 is not set
885# CONFIG_FONT_MINI_4x6 is not set
886# CONFIG_FONT_CLEAN_4x6 is not set
887# CONFIG_FONT_CLEAN_5x8 is not set
888# CONFIG_FONT_SUN8x16 is not set
889# CONFIG_FONT_SUN12x22 is not set
890# CONFIG_FONT_10x18 is not set
891CONFIG_LOGO=y
892# CONFIG_LOGO_LINUX_MONO is not set
893# CONFIG_LOGO_LINUX_VGA16 is not set
894CONFIG_LOGO_LINUX_CLUT224=y
895
896#
897# Sound
898#
899# CONFIG_SOUND is not set
900
901#
902# HID Devices
903#
904CONFIG_HID=y
905# CONFIG_HID_DEBUG is not set
906
907#
908# USB Input Devices
909#
910CONFIG_USB_HID=y
911# CONFIG_USB_HIDINPUT_POWERBOOK is not set
912# CONFIG_HID_FF is not set
913# CONFIG_USB_HIDDEV is not set
914
915#
916# USB support
917#
918CONFIG_USB_ARCH_HAS_HCD=y
919CONFIG_USB_ARCH_HAS_OHCI=y
920# CONFIG_USB_ARCH_HAS_EHCI is not set
921CONFIG_USB=y
922# CONFIG_USB_DEBUG is not set
923
924#
925# Miscellaneous USB options
926#
927CONFIG_USB_DEVICEFS=y
928# CONFIG_USB_DEVICE_CLASS is not set
929# CONFIG_USB_DYNAMIC_MINORS is not set
930# CONFIG_USB_OTG is not set
931
932#
933# USB Host Controller Drivers
934#
935# CONFIG_USB_ISP116X_HCD is not set
936CONFIG_USB_OHCI_HCD=y
937# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
938# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
939CONFIG_USB_OHCI_LITTLE_ENDIAN=y
940# CONFIG_USB_SL811_HCD is not set
941# CONFIG_USB_MUSB_HDRC is not set
942
943#
944# USB Device Class drivers
945#
946# CONFIG_USB_ACM is not set
947# CONFIG_USB_PRINTER is not set
948
949#
950# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
951#
952
953#
954# may also be needed; see USB_STORAGE Help for more information
955#
956CONFIG_USB_STORAGE=y
957# CONFIG_USB_STORAGE_DEBUG is not set
958# CONFIG_USB_STORAGE_DATAFAB is not set
959# CONFIG_USB_STORAGE_FREECOM is not set
960# CONFIG_USB_STORAGE_DPCM is not set
961# CONFIG_USB_STORAGE_USBAT is not set
962# CONFIG_USB_STORAGE_SDDR09 is not set
963# CONFIG_USB_STORAGE_SDDR55 is not set
964# CONFIG_USB_STORAGE_JUMPSHOT is not set
965# CONFIG_USB_STORAGE_ALAUDA is not set
966# CONFIG_USB_STORAGE_KARMA is not set
967# CONFIG_USB_LIBUSUAL is not set
968
969#
970# USB Imaging devices
971#
972# CONFIG_USB_MDC800 is not set
973# CONFIG_USB_MICROTEK is not set
974CONFIG_USB_MON=y
975
976#
977# USB port drivers
978#
979
980#
981# USB Serial Converter support
982#
983# CONFIG_USB_SERIAL is not set
984
985#
986# USB Miscellaneous drivers
987#
988# CONFIG_USB_EMI62 is not set
989# CONFIG_USB_EMI26 is not set
990# CONFIG_USB_ADUTUX is not set
991# CONFIG_USB_AUERSWALD is not set
992# CONFIG_USB_RIO500 is not set
993# CONFIG_USB_LEGOTOWER is not set
994# CONFIG_USB_LCD is not set
995# CONFIG_USB_BERRY_CHARGE is not set
996# CONFIG_USB_LED is not set
997# CONFIG_USB_CYPRESS_CY7C63 is not set
998# CONFIG_USB_CYTHERM is not set
999# CONFIG_USB_PHIDGET is not set
1000# CONFIG_USB_IDMOUSE is not set
1001# CONFIG_USB_FTDI_ELAN is not set
1002# CONFIG_USB_APPLEDISPLAY is not set
1003# CONFIG_USB_LD is not set
1004# CONFIG_USB_TRANCEVIBRATOR is not set
1005# CONFIG_USB_IOWARRIOR is not set
1006# CONFIG_USB_TEST is not set
1007
1008#
1009# USB DSL modem support
1010#
1011
1012#
1013# USB Gadget Support
1014#
1015# CONFIG_USB_GADGET is not set
1016# CONFIG_MMC is not set
1017
1018#
1019# Real Time Clock
1020#
1021CONFIG_RTC_LIB=y
1022CONFIG_RTC_CLASS=y
1023CONFIG_RTC_HCTOSYS=y
1024CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1025# CONFIG_RTC_DEBUG is not set
1026
1027#
1028# RTC interfaces
1029#
1030CONFIG_RTC_INTF_SYSFS=y
1031CONFIG_RTC_INTF_PROC=y
1032CONFIG_RTC_INTF_DEV=y
1033# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1034# CONFIG_RTC_DRV_TEST is not set
1035
1036#
1037# I2C RTC drivers
1038#
1039# CONFIG_RTC_DRV_DS1307 is not set
1040# CONFIG_RTC_DRV_DS1672 is not set
1041# CONFIG_RTC_DRV_MAX6900 is not set
1042# CONFIG_RTC_DRV_RS5C372 is not set
1043# CONFIG_RTC_DRV_ISL1208 is not set
1044# CONFIG_RTC_DRV_X1205 is not set
1045# CONFIG_RTC_DRV_PCF8563 is not set
1046# CONFIG_RTC_DRV_PCF8583 is not set
1047
1048#
1049# SPI RTC drivers
1050#
1051
1052#
1053# Platform RTC drivers
1054#
1055# CONFIG_RTC_DRV_CMOS is not set
1056# CONFIG_RTC_DRV_DS1553 is not set
1057# CONFIG_RTC_DRV_DS1742 is not set
1058# CONFIG_RTC_DRV_M48T86 is not set
1059# CONFIG_RTC_DRV_V3020 is not set
1060
1061#
1062# on-CPU RTC drivers
1063#
1064CONFIG_RTC_DRV_OMAP=y
1065
1066#
1067# CBUS support
1068#
1069# CONFIG_CBUS is not set
1070
1071#
1072# File systems
1073#
1074CONFIG_EXT2_FS=y
1075# CONFIG_EXT2_FS_XATTR is not set
1076# CONFIG_EXT2_FS_XIP is not set
1077CONFIG_EXT3_FS=y
1078CONFIG_EXT3_FS_XATTR=y
1079# CONFIG_EXT3_FS_POSIX_ACL is not set
1080# CONFIG_EXT3_FS_SECURITY is not set
1081# CONFIG_EXT4DEV_FS is not set
1082CONFIG_JBD=y
1083# CONFIG_JBD_DEBUG is not set
1084CONFIG_FS_MBCACHE=y
1085# CONFIG_REISERFS_FS is not set
1086# CONFIG_JFS_FS is not set
1087# CONFIG_FS_POSIX_ACL is not set
1088# CONFIG_XFS_FS is not set
1089# CONFIG_GFS2_FS is not set
1090# CONFIG_OCFS2_FS is not set
1091# CONFIG_MINIX_FS is not set
1092# CONFIG_ROMFS_FS is not set
1093CONFIG_INOTIFY=y
1094CONFIG_INOTIFY_USER=y
1095# CONFIG_QUOTA is not set
1096CONFIG_DNOTIFY=y
1097CONFIG_AUTOFS_FS=y
1098CONFIG_AUTOFS4_FS=y
1099# CONFIG_FUSE_FS is not set
1100
1101#
1102# CD-ROM/DVD Filesystems
1103#
1104# CONFIG_ISO9660_FS is not set
1105# CONFIG_UDF_FS is not set
1106
1107#
1108# DOS/FAT/NT Filesystems
1109#
1110CONFIG_FAT_FS=y
1111CONFIG_MSDOS_FS=y
1112CONFIG_VFAT_FS=y
1113CONFIG_FAT_DEFAULT_CODEPAGE=437
1114CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1115# CONFIG_NTFS_FS is not set
1116
1117#
1118# Pseudo filesystems
1119#
1120CONFIG_PROC_FS=y
1121CONFIG_PROC_SYSCTL=y
1122CONFIG_SYSFS=y
1123CONFIG_TMPFS=y
1124# CONFIG_TMPFS_POSIX_ACL is not set
1125# CONFIG_HUGETLB_PAGE is not set
1126CONFIG_RAMFS=y
1127# CONFIG_CONFIGFS_FS is not set
1128
1129#
1130# Miscellaneous filesystems
1131#
1132# CONFIG_ADFS_FS is not set
1133# CONFIG_AFFS_FS is not set
1134# CONFIG_HFS_FS is not set
1135# CONFIG_HFSPLUS_FS is not set
1136# CONFIG_BEFS_FS is not set
1137# CONFIG_BFS_FS is not set
1138# CONFIG_EFS_FS is not set
1139CONFIG_JFFS2_FS=y
1140CONFIG_JFFS2_FS_DEBUG=0
1141CONFIG_JFFS2_FS_WRITEBUFFER=y
1142CONFIG_JFFS2_SUMMARY=y
1143# CONFIG_JFFS2_FS_XATTR is not set
1144# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1145CONFIG_JFFS2_ZLIB=y
1146CONFIG_JFFS2_RTIME=y
1147# CONFIG_JFFS2_RUBIN is not set
1148# CONFIG_CRAMFS is not set
1149# CONFIG_VXFS_FS is not set
1150# CONFIG_HPFS_FS is not set
1151# CONFIG_QNX4FS_FS is not set
1152# CONFIG_SYSV_FS is not set
1153# CONFIG_UFS_FS is not set
1154
1155#
1156# Network File Systems
1157#
1158CONFIG_NFS_FS=y
1159# CONFIG_NFS_V3 is not set
1160# CONFIG_NFS_V4 is not set
1161# CONFIG_NFS_DIRECTIO is not set
1162# CONFIG_NFSD is not set
1163CONFIG_LOCKD=y
1164CONFIG_NFS_COMMON=y
1165CONFIG_SUNRPC=y
1166# CONFIG_SUNRPC_BIND34 is not set
1167# CONFIG_RPCSEC_GSS_KRB5 is not set
1168# CONFIG_RPCSEC_GSS_SPKM3 is not set
1169# CONFIG_SMB_FS is not set
1170# CONFIG_CIFS is not set
1171# CONFIG_NCP_FS is not set
1172# CONFIG_CODA_FS is not set
1173# CONFIG_AFS_FS is not set
1174# CONFIG_9P_FS is not set
1175
1176#
1177# Partition Types
1178#
1179CONFIG_PARTITION_ADVANCED=y
1180# CONFIG_ACORN_PARTITION is not set
1181# CONFIG_OSF_PARTITION is not set
1182# CONFIG_AMIGA_PARTITION is not set
1183# CONFIG_ATARI_PARTITION is not set
1184# CONFIG_MAC_PARTITION is not set
1185CONFIG_MSDOS_PARTITION=y
1186# CONFIG_BSD_DISKLABEL is not set
1187# CONFIG_MINIX_SUBPARTITION is not set
1188# CONFIG_SOLARIS_X86_PARTITION is not set
1189# CONFIG_UNIXWARE_DISKLABEL is not set
1190# CONFIG_LDM_PARTITION is not set
1191# CONFIG_SGI_PARTITION is not set
1192# CONFIG_ULTRIX_PARTITION is not set
1193# CONFIG_SUN_PARTITION is not set
1194# CONFIG_KARMA_PARTITION is not set
1195# CONFIG_EFI_PARTITION is not set
1196# CONFIG_SYSV68_PARTITION is not set
1197
1198#
1199# Native Language Support
1200#
1201CONFIG_NLS=y
1202CONFIG_NLS_DEFAULT="iso8859-1"
1203CONFIG_NLS_CODEPAGE_437=y
1204# CONFIG_NLS_CODEPAGE_737 is not set
1205# CONFIG_NLS_CODEPAGE_775 is not set
1206CONFIG_NLS_CODEPAGE_850=y
1207CONFIG_NLS_CODEPAGE_852=y
1208# CONFIG_NLS_CODEPAGE_855 is not set
1209# CONFIG_NLS_CODEPAGE_857 is not set
1210# CONFIG_NLS_CODEPAGE_860 is not set
1211# CONFIG_NLS_CODEPAGE_861 is not set
1212# CONFIG_NLS_CODEPAGE_862 is not set
1213# CONFIG_NLS_CODEPAGE_863 is not set
1214# CONFIG_NLS_CODEPAGE_864 is not set
1215# CONFIG_NLS_CODEPAGE_865 is not set
1216# CONFIG_NLS_CODEPAGE_866 is not set
1217# CONFIG_NLS_CODEPAGE_869 is not set
1218# CONFIG_NLS_CODEPAGE_936 is not set
1219# CONFIG_NLS_CODEPAGE_950 is not set
1220# CONFIG_NLS_CODEPAGE_932 is not set
1221# CONFIG_NLS_CODEPAGE_949 is not set
1222# CONFIG_NLS_CODEPAGE_874 is not set
1223# CONFIG_NLS_ISO8859_8 is not set
1224# CONFIG_NLS_CODEPAGE_1250 is not set
1225# CONFIG_NLS_CODEPAGE_1251 is not set
1226# CONFIG_NLS_ASCII is not set
1227CONFIG_NLS_ISO8859_1=y
1228CONFIG_NLS_ISO8859_2=y
1229# CONFIG_NLS_ISO8859_3 is not set
1230# CONFIG_NLS_ISO8859_4 is not set
1231# CONFIG_NLS_ISO8859_5 is not set
1232# CONFIG_NLS_ISO8859_6 is not set
1233# CONFIG_NLS_ISO8859_7 is not set
1234# CONFIG_NLS_ISO8859_9 is not set
1235# CONFIG_NLS_ISO8859_13 is not set
1236# CONFIG_NLS_ISO8859_14 is not set
1237# CONFIG_NLS_ISO8859_15 is not set
1238# CONFIG_NLS_KOI8_R is not set
1239# CONFIG_NLS_KOI8_U is not set
1240# CONFIG_NLS_UTF8 is not set
1241
1242#
1243# Distributed Lock Manager
1244#
1245# CONFIG_DLM is not set
1246
1247#
1248# Profiling support
1249#
1250# CONFIG_PROFILING is not set
1251
1252#
1253# Kernel hacking
1254#
1255# CONFIG_PRINTK_TIME is not set
1256CONFIG_ENABLE_MUST_CHECK=y
1257CONFIG_MAGIC_SYSRQ=y
1258# CONFIG_UNUSED_SYMBOLS is not set
1259# CONFIG_DEBUG_FS is not set
1260# CONFIG_HEADERS_CHECK is not set
1261CONFIG_DEBUG_KERNEL=y
1262# CONFIG_DEBUG_SHIRQ is not set
1263CONFIG_DETECT_SOFTLOCKUP=y
1264# CONFIG_SCHEDSTATS is not set
1265# CONFIG_TIMER_STATS is not set
1266# CONFIG_DEBUG_SLAB is not set
1267CONFIG_DEBUG_PREEMPT=y
1268# CONFIG_DEBUG_RT_MUTEXES is not set
1269# CONFIG_RT_MUTEX_TESTER is not set
1270# CONFIG_DEBUG_SPINLOCK is not set
1271# CONFIG_DEBUG_MUTEXES is not set
1272# CONFIG_DEBUG_LOCK_ALLOC is not set
1273# CONFIG_PROVE_LOCKING is not set
1274# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1275# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1276# CONFIG_DEBUG_KOBJECT is not set
1277CONFIG_DEBUG_BUGVERBOSE=y
1278# CONFIG_DEBUG_INFO is not set
1279# CONFIG_DEBUG_VM is not set
1280# CONFIG_DEBUG_LIST is not set
1281CONFIG_FRAME_POINTER=y
1282CONFIG_FORCED_INLINING=y
1283# CONFIG_RCU_TORTURE_TEST is not set
1284# CONFIG_FAULT_INJECTION is not set
1285# CONFIG_DEBUG_USER is not set
1286# CONFIG_DEBUG_ERRORS is not set
1287# CONFIG_DEBUG_LL is not set
1288
1289#
1290# Security options
1291#
1292# CONFIG_KEYS is not set
1293# CONFIG_SECURITY is not set
1294
1295#
1296# Cryptographic options
1297#
1298# CONFIG_CRYPTO is not set
1299
1300#
1301# Library routines
1302#
1303CONFIG_BITREVERSE=y
1304# CONFIG_CRC_CCITT is not set
1305# CONFIG_CRC16 is not set
1306# CONFIG_CRC_ITU_T is not set
1307CONFIG_CRC32=y
1308# CONFIG_LIBCRC32C is not set
1309CONFIG_ZLIB_INFLATE=y
1310CONFIG_ZLIB_DEFLATE=y
1311CONFIG_PLIST=y
1312CONFIG_HAS_IOMEM=y
1313CONFIG_HAS_IOPORT=y
1314CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/n770_defconfig b/arch/arm/configs/n770_defconfig
new file mode 100644
index 00000000000..568ef1770d5
--- /dev/null
+++ b/arch/arm/configs/n770_defconfig
@@ -0,0 +1,1421 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8-omap1
4# Fri Jan 18 10:21:06 2008
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34CONFIG_LOCALVERSION=""
35CONFIG_LOCALVERSION_AUTO=y
36CONFIG_SWAP=y
37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
39CONFIG_POSIX_MQUEUE=y
40# CONFIG_BSD_PROCESS_ACCT is not set
41# CONFIG_TASKSTATS is not set
42# CONFIG_USER_NS is not set
43# CONFIG_PID_NS is not set
44# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47# CONFIG_CGROUPS is not set
48CONFIG_FAIR_GROUP_SCHED=y
49CONFIG_FAIR_USER_SCHED=y
50# CONFIG_FAIR_CGROUP_SCHED is not set
51CONFIG_SYSFS_DEPRECATED=y
52# CONFIG_RELAY is not set
53# CONFIG_BLK_DEV_INITRD is not set
54CONFIG_CC_OPTIMIZE_FOR_SIZE=y
55CONFIG_SYSCTL=y
56# CONFIG_EMBEDDED is not set
57CONFIG_UID16=y
58CONFIG_SYSCTL_SYSCALL=y
59CONFIG_KALLSYMS=y
60# CONFIG_KALLSYMS_ALL is not set
61# CONFIG_KALLSYMS_EXTRA_PASS is not set
62CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y
64CONFIG_BUG=y
65CONFIG_ELF_CORE=y
66CONFIG_BASE_FULL=y
67CONFIG_FUTEX=y
68CONFIG_ANON_INODES=y
69CONFIG_EPOLL=y
70CONFIG_SIGNALFD=y
71CONFIG_EVENTFD=y
72CONFIG_SHMEM=y
73CONFIG_VM_EVENT_COUNTERS=y
74CONFIG_SLAB=y
75# CONFIG_SLUB is not set
76# CONFIG_SLOB is not set
77CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y
82CONFIG_MODULE_UNLOAD=y
83# CONFIG_MODULE_FORCE_UNLOAD is not set
84# CONFIG_MODVERSIONS is not set
85# CONFIG_MODULE_SRCVERSION_ALL is not set
86# CONFIG_KMOD is not set
87CONFIG_BLOCK=y
88# CONFIG_LBD is not set
89# CONFIG_BLK_DEV_IO_TRACE is not set
90# CONFIG_LSF is not set
91# CONFIG_BLK_DEV_BSG is not set
92
93#
94# IO Schedulers
95#
96CONFIG_IOSCHED_NOOP=y
97# CONFIG_IOSCHED_AS is not set
98# CONFIG_IOSCHED_DEADLINE is not set
99CONFIG_IOSCHED_CFQ=y
100# CONFIG_DEFAULT_AS is not set
101# CONFIG_DEFAULT_DEADLINE is not set
102CONFIG_DEFAULT_CFQ=y
103# CONFIG_DEFAULT_NOOP is not set
104CONFIG_DEFAULT_IOSCHED="cfq"
105
106#
107# System Type
108#
109# CONFIG_ARCH_AAEC2000 is not set
110# CONFIG_ARCH_INTEGRATOR is not set
111# CONFIG_ARCH_REALVIEW is not set
112# CONFIG_ARCH_VERSATILE is not set
113# CONFIG_ARCH_AT91 is not set
114# CONFIG_ARCH_CLPS7500 is not set
115# CONFIG_ARCH_CLPS711X is not set
116# CONFIG_ARCH_CO285 is not set
117# CONFIG_ARCH_EBSA110 is not set
118# CONFIG_ARCH_EP93XX is not set
119# CONFIG_ARCH_FOOTBRIDGE is not set
120# CONFIG_ARCH_NETX is not set
121# CONFIG_ARCH_H720X is not set
122# CONFIG_ARCH_IMX is not set
123# CONFIG_ARCH_IOP13XX is not set
124# CONFIG_ARCH_IOP32X is not set
125# CONFIG_ARCH_IOP33X is not set
126# CONFIG_ARCH_IXP23XX is not set
127# CONFIG_ARCH_IXP2000 is not set
128# CONFIG_ARCH_IXP4XX is not set
129# CONFIG_ARCH_L7200 is not set
130# CONFIG_ARCH_KS8695 is not set
131# CONFIG_ARCH_NS9XXX is not set
132# CONFIG_ARCH_MXC is not set
133# CONFIG_ARCH_PNX4008 is not set
134# CONFIG_ARCH_PXA is not set
135# CONFIG_ARCH_RPC is not set
136# CONFIG_ARCH_SA1100 is not set
137# CONFIG_ARCH_S3C2410 is not set
138# CONFIG_ARCH_SHARK is not set
139# CONFIG_ARCH_LH7A40X is not set
140# CONFIG_ARCH_DAVINCI is not set
141CONFIG_ARCH_OMAP=y
142
143#
144# TI OMAP Implementations
145#
146CONFIG_ARCH_OMAP_OTG=y
147CONFIG_ARCH_OMAP1=y
148# CONFIG_ARCH_OMAP2 is not set
149# CONFIG_ARCH_OMAP3 is not set
150
151#
152# OMAP Feature Selections
153#
154CONFIG_OMAP_DEBUG_SRAM_PATCH=y
155CONFIG_OMAP_RESET_CLOCKS=y
156CONFIG_OMAP_BOOT_TAG=y
157CONFIG_OMAP_BOOT_REASON=y
158CONFIG_OMAP_COMPONENT_VERSION=y
159CONFIG_OMAP_GPIO_SWITCH=y
160# CONFIG_OMAP_MUX is not set
161CONFIG_OMAP_STI=y
162CONFIG_OMAP_STI_CONSOLE=y
163CONFIG_OMAP_MCBSP=y
164CONFIG_OMAP_MMU_FWK=y
165CONFIG_OMAP_MBOX_FWK=y
166# CONFIG_OMAP_MPU_TIMER is not set
167CONFIG_OMAP_32K_TIMER=y
168CONFIG_OMAP_32K_TIMER_HZ=128
169CONFIG_OMAP_DM_TIMER=y
170CONFIG_OMAP_LL_DEBUG_UART1=y
171# CONFIG_OMAP_LL_DEBUG_UART2 is not set
172# CONFIG_OMAP_LL_DEBUG_UART3 is not set
173
174#
175# OMAP Core Type
176#
177# CONFIG_ARCH_OMAP730 is not set
178# CONFIG_ARCH_OMAP15XX is not set
179CONFIG_ARCH_OMAP16XX=y
180
181#
182# OMAP Board Type
183#
184# CONFIG_MACH_OMAP_INNOVATOR is not set
185# CONFIG_MACH_OMAP_H2 is not set
186# CONFIG_MACH_OMAP_H3 is not set
187# CONFIG_MACH_OMAP_OSK is not set
188CONFIG_MACH_NOKIA770=y
189# CONFIG_MACH_OMAP_GENERIC is not set
190
191#
192# OMAP CPU Speed
193#
194CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
195CONFIG_OMAP_ARM_216MHZ=y
196# CONFIG_OMAP_ARM_192MHZ is not set
197# CONFIG_OMAP_ARM_168MHZ is not set
198# CONFIG_OMAP_ARM_120MHZ is not set
199# CONFIG_OMAP_ARM_60MHZ is not set
200# CONFIG_OMAP_ARM_30MHZ is not set
201
202#
203# Boot options
204#
205
206#
207# Power management
208#
209
210#
211# Processor Type
212#
213CONFIG_CPU_32=y
214CONFIG_CPU_ARM926T=y
215CONFIG_CPU_32v5=y
216CONFIG_CPU_ABRT_EV5TJ=y
217CONFIG_CPU_PABRT_NOIFAR=y
218CONFIG_CPU_CACHE_VIVT=y
219CONFIG_CPU_COPY_V4WB=y
220CONFIG_CPU_TLB_V4WBI=y
221CONFIG_CPU_CP15=y
222CONFIG_CPU_CP15_MMU=y
223
224#
225# Processor Features
226#
227CONFIG_ARM_THUMB=y
228# CONFIG_CPU_ICACHE_DISABLE is not set
229# CONFIG_CPU_DCACHE_DISABLE is not set
230# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
231# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
232# CONFIG_OUTER_CACHE is not set
233
234#
235# Bus support
236#
237# CONFIG_PCI_SYSCALL is not set
238# CONFIG_ARCH_SUPPORTS_MSI is not set
239# CONFIG_PCCARD is not set
240
241#
242# Kernel Features
243#
244# CONFIG_TICK_ONESHOT is not set
245# CONFIG_NO_HZ is not set
246# CONFIG_HIGH_RES_TIMERS is not set
247CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
248# CONFIG_PREEMPT is not set
249CONFIG_HZ=128
250# CONFIG_AEABI is not set
251# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
252CONFIG_SELECT_MEMORY_MODEL=y
253CONFIG_FLATMEM_MANUAL=y
254# CONFIG_DISCONTIGMEM_MANUAL is not set
255# CONFIG_SPARSEMEM_MANUAL is not set
256CONFIG_FLATMEM=y
257CONFIG_FLAT_NODE_MEM_MAP=y
258# CONFIG_SPARSEMEM_STATIC is not set
259# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
260CONFIG_SPLIT_PTLOCK_CPUS=4096
261# CONFIG_RESOURCES_64BIT is not set
262CONFIG_ZONE_DMA_FLAG=1
263CONFIG_BOUNCE=y
264CONFIG_VIRT_TO_BUS=y
265# CONFIG_LEDS is not set
266CONFIG_ALIGNMENT_TRAP=y
267
268#
269# Boot options
270#
271CONFIG_ZBOOT_ROM_TEXT=0x0
272CONFIG_ZBOOT_ROM_BSS=0x0
273CONFIG_CMDLINE="root=1f03 rootfstype=jffs2 time"
274# CONFIG_XIP_KERNEL is not set
275# CONFIG_KEXEC is not set
276
277#
278# CPU Frequency scaling
279#
280# CONFIG_CPU_FREQ is not set
281
282#
283# Floating point emulation
284#
285
286#
287# At least one emulation must be selected
288#
289CONFIG_FPE_NWFPE=y
290# CONFIG_FPE_NWFPE_XP is not set
291# CONFIG_FPE_FASTFPE is not set
292# CONFIG_VFP is not set
293
294#
295# Userspace binary formats
296#
297CONFIG_BINFMT_ELF=y
298# CONFIG_BINFMT_AOUT is not set
299# CONFIG_BINFMT_MISC is not set
300# CONFIG_ARTHUR is not set
301
302#
303# Power management options
304#
305CONFIG_PM=y
306# CONFIG_PM_LEGACY is not set
307# CONFIG_PM_DEBUG is not set
308CONFIG_PM_SLEEP=y
309CONFIG_SUSPEND_UP_POSSIBLE=y
310CONFIG_SUSPEND=y
311# CONFIG_APM_EMULATION is not set
312
313#
314# Networking
315#
316CONFIG_NET=y
317
318#
319# Networking options
320#
321CONFIG_PACKET=y
322# CONFIG_PACKET_MMAP is not set
323CONFIG_UNIX=y
324CONFIG_XFRM=y
325# CONFIG_XFRM_USER is not set
326# CONFIG_XFRM_SUB_POLICY is not set
327# CONFIG_XFRM_MIGRATE is not set
328# CONFIG_NET_KEY is not set
329CONFIG_INET=y
330CONFIG_IP_MULTICAST=y
331# CONFIG_IP_ADVANCED_ROUTER is not set
332CONFIG_IP_FIB_HASH=y
333CONFIG_IP_PNP=y
334CONFIG_IP_PNP_DHCP=y
335CONFIG_IP_PNP_BOOTP=y
336# CONFIG_IP_PNP_RARP is not set
337# CONFIG_NET_IPIP is not set
338# CONFIG_NET_IPGRE is not set
339# CONFIG_IP_MROUTE is not set
340# CONFIG_ARPD is not set
341# CONFIG_SYN_COOKIES is not set
342# CONFIG_INET_AH is not set
343# CONFIG_INET_ESP is not set
344# CONFIG_INET_IPCOMP is not set
345# CONFIG_INET_XFRM_TUNNEL is not set
346# CONFIG_INET_TUNNEL is not set
347CONFIG_INET_XFRM_MODE_TRANSPORT=y
348CONFIG_INET_XFRM_MODE_TUNNEL=y
349CONFIG_INET_XFRM_MODE_BEET=y
350# CONFIG_INET_LRO is not set
351# CONFIG_INET_DIAG is not set
352# CONFIG_TCP_CONG_ADVANCED is not set
353CONFIG_TCP_CONG_CUBIC=y
354CONFIG_DEFAULT_TCP_CONG="cubic"
355# CONFIG_TCP_MD5SIG is not set
356# CONFIG_IP_VS is not set
357# CONFIG_IPV6 is not set
358# CONFIG_INET6_XFRM_TUNNEL is not set
359# CONFIG_INET6_TUNNEL is not set
360# CONFIG_NETLABEL is not set
361# CONFIG_NETWORK_SECMARK is not set
362CONFIG_NETFILTER=y
363# CONFIG_NETFILTER_DEBUG is not set
364
365#
366# Core Netfilter Configuration
367#
368CONFIG_NETFILTER_NETLINK=y
369# CONFIG_NETFILTER_NETLINK_QUEUE is not set
370# CONFIG_NETFILTER_NETLINK_LOG is not set
371# CONFIG_NF_CONNTRACK_ENABLED is not set
372# CONFIG_NF_CONNTRACK is not set
373# CONFIG_NETFILTER_XTABLES is not set
374
375#
376# IP: Netfilter Configuration
377#
378# CONFIG_IP_NF_QUEUE is not set
379# CONFIG_IP_NF_IPTABLES is not set
380# CONFIG_IP_NF_ARPTABLES is not set
381# CONFIG_IP_DCCP is not set
382# CONFIG_IP_SCTP is not set
383# CONFIG_TIPC is not set
384# CONFIG_ATM is not set
385# CONFIG_BRIDGE is not set
386# CONFIG_VLAN_8021Q is not set
387# CONFIG_DECNET is not set
388# CONFIG_LLC2 is not set
389# CONFIG_IPX is not set
390# CONFIG_ATALK is not set
391# CONFIG_X25 is not set
392# CONFIG_LAPB is not set
393# CONFIG_ECONET is not set
394# CONFIG_WAN_ROUTER is not set
395# CONFIG_NET_SCHED is not set
396
397#
398# Network testing
399#
400# CONFIG_NET_PKTGEN is not set
401# CONFIG_HAMRADIO is not set
402# CONFIG_IRDA is not set
403CONFIG_BT=y
404CONFIG_BT_L2CAP=y
405CONFIG_BT_SCO=y
406CONFIG_BT_RFCOMM=y
407CONFIG_BT_RFCOMM_TTY=y
408CONFIG_BT_BNEP=y
409# CONFIG_BT_BNEP_MC_FILTER is not set
410# CONFIG_BT_BNEP_PROTO_FILTER is not set
411CONFIG_BT_HIDP=y
412
413#
414# Bluetooth device drivers
415#
416# CONFIG_BT_HCIUSB is not set
417# CONFIG_BT_HCIBTUSB is not set
418# CONFIG_BT_HCIBTSDIO is not set
419# CONFIG_BT_HCIUART is not set
420# CONFIG_BT_HCIBCM203X is not set
421# CONFIG_BT_HCIBPA10X is not set
422# CONFIG_BT_HCIBFUSB is not set
423CONFIG_BT_HCIBRF6150=y
424# CONFIG_BT_HCIH4P is not set
425# CONFIG_BT_HCIVHCI is not set
426# CONFIG_AF_RXRPC is not set
427
428#
429# Wireless
430#
431# CONFIG_CFG80211 is not set
432# CONFIG_WIRELESS_EXT is not set
433# CONFIG_MAC80211 is not set
434# CONFIG_IEEE80211 is not set
435# CONFIG_RFKILL is not set
436# CONFIG_NET_9P is not set
437
438#
439# Device Drivers
440#
441
442#
443# Generic Driver Options
444#
445CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
446CONFIG_STANDALONE=y
447CONFIG_PREVENT_FIRMWARE_BUILD=y
448CONFIG_FW_LOADER=y
449# CONFIG_DEBUG_DRIVER is not set
450# CONFIG_DEBUG_DEVRES is not set
451# CONFIG_SYS_HYPERVISOR is not set
452CONFIG_CONNECTOR=y
453# CONFIG_PROC_EVENTS is not set
454CONFIG_MTD=y
455# CONFIG_MTD_DEBUG is not set
456# CONFIG_MTD_CONCAT is not set
457CONFIG_MTD_PARTITIONS=y
458# CONFIG_MTD_REDBOOT_PARTS is not set
459CONFIG_MTD_CMDLINE_PARTS=y
460# CONFIG_MTD_AFS_PARTS is not set
461
462#
463# User Modules And Translation Layers
464#
465CONFIG_MTD_CHAR=y
466CONFIG_MTD_BLKDEVS=y
467CONFIG_MTD_BLOCK=y
468# CONFIG_FTL is not set
469# CONFIG_NFTL is not set
470# CONFIG_INFTL is not set
471# CONFIG_RFD_FTL is not set
472# CONFIG_SSFDC is not set
473# CONFIG_MTD_OOPS is not set
474
475#
476# RAM/ROM/Flash chip drivers
477#
478# CONFIG_MTD_CFI is not set
479# CONFIG_MTD_JEDECPROBE is not set
480CONFIG_MTD_MAP_BANK_WIDTH_1=y
481CONFIG_MTD_MAP_BANK_WIDTH_2=y
482CONFIG_MTD_MAP_BANK_WIDTH_4=y
483# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
484# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
485# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
486CONFIG_MTD_CFI_I1=y
487CONFIG_MTD_CFI_I2=y
488# CONFIG_MTD_CFI_I4 is not set
489# CONFIG_MTD_CFI_I8 is not set
490# CONFIG_MTD_RAM is not set
491# CONFIG_MTD_ROM is not set
492# CONFIG_MTD_ABSENT is not set
493
494#
495# Mapping drivers for chip access
496#
497# CONFIG_MTD_COMPLEX_MAPPINGS is not set
498# CONFIG_MTD_PLATRAM is not set
499
500#
501# Self-contained MTD device drivers
502#
503# CONFIG_MTD_DATAFLASH is not set
504# CONFIG_MTD_M25P80 is not set
505# CONFIG_MTD_SLRAM is not set
506# CONFIG_MTD_PHRAM is not set
507# CONFIG_MTD_MTDRAM is not set
508# CONFIG_MTD_BLOCK2MTD is not set
509
510#
511# Disk-On-Chip Device Drivers
512#
513# CONFIG_MTD_DOC2000 is not set
514# CONFIG_MTD_DOC2001 is not set
515# CONFIG_MTD_DOC2001PLUS is not set
516CONFIG_MTD_NAND=y
517# CONFIG_MTD_NAND_VERIFY_WRITE is not set
518# CONFIG_MTD_NAND_ECC_SMC is not set
519# CONFIG_MTD_NAND_MUSEUM_IDS is not set
520CONFIG_MTD_NAND_OMAP_HW=y
521CONFIG_MTD_NAND_IDS=y
522# CONFIG_MTD_NAND_DISKONCHIP is not set
523# CONFIG_MTD_NAND_NANDSIM is not set
524# CONFIG_MTD_NAND_PLATFORM is not set
525# CONFIG_MTD_ALAUDA is not set
526# CONFIG_MTD_ONENAND is not set
527
528#
529# UBI - Unsorted block images
530#
531# CONFIG_MTD_UBI is not set
532# CONFIG_PARPORT is not set
533CONFIG_BLK_DEV=y
534# CONFIG_BLK_DEV_COW_COMMON is not set
535CONFIG_BLK_DEV_LOOP=y
536# CONFIG_BLK_DEV_CRYPTOLOOP is not set
537# CONFIG_BLK_DEV_NBD is not set
538# CONFIG_BLK_DEV_UB is not set
539# CONFIG_BLK_DEV_RAM is not set
540# CONFIG_CDROM_PKTCDVD is not set
541# CONFIG_ATA_OVER_ETH is not set
542CONFIG_MISC_DEVICES=y
543# CONFIG_EEPROM_93CX6 is not set
544
545#
546# SCSI device support
547#
548# CONFIG_RAID_ATTRS is not set
549CONFIG_SCSI=y
550CONFIG_SCSI_DMA=y
551# CONFIG_SCSI_TGT is not set
552# CONFIG_SCSI_NETLINK is not set
553# CONFIG_SCSI_PROC_FS is not set
554
555#
556# SCSI support type (disk, tape, CD-ROM)
557#
558CONFIG_BLK_DEV_SD=y
559# CONFIG_CHR_DEV_ST is not set
560# CONFIG_CHR_DEV_OSST is not set
561# CONFIG_BLK_DEV_SR is not set
562# CONFIG_CHR_DEV_SG is not set
563# CONFIG_CHR_DEV_SCH is not set
564
565#
566# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
567#
568# CONFIG_SCSI_MULTI_LUN is not set
569# CONFIG_SCSI_CONSTANTS is not set
570# CONFIG_SCSI_LOGGING is not set
571# CONFIG_SCSI_SCAN_ASYNC is not set
572CONFIG_SCSI_WAIT_SCAN=m
573
574#
575# SCSI Transports
576#
577# CONFIG_SCSI_SPI_ATTRS is not set
578# CONFIG_SCSI_FC_ATTRS is not set
579# CONFIG_SCSI_ISCSI_ATTRS is not set
580# CONFIG_SCSI_SAS_LIBSAS is not set
581# CONFIG_SCSI_SRP_ATTRS is not set
582CONFIG_SCSI_LOWLEVEL=y
583# CONFIG_ISCSI_TCP is not set
584# CONFIG_SCSI_DEBUG is not set
585# CONFIG_ATA is not set
586# CONFIG_MD is not set
587CONFIG_NETDEVICES=y
588# CONFIG_NETDEVICES_MULTIQUEUE is not set
589# CONFIG_DUMMY is not set
590# CONFIG_BONDING is not set
591# CONFIG_MACVLAN is not set
592# CONFIG_EQUALIZER is not set
593CONFIG_TUN=y
594# CONFIG_VETH is not set
595# CONFIG_PHYLIB is not set
596CONFIG_NET_ETHERNET=y
597CONFIG_MII=y
598# CONFIG_AX88796 is not set
599# CONFIG_SMC91X is not set
600# CONFIG_DM9000 is not set
601# CONFIG_IBM_NEW_EMAC_ZMII is not set
602# CONFIG_IBM_NEW_EMAC_RGMII is not set
603# CONFIG_IBM_NEW_EMAC_TAH is not set
604# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
605# CONFIG_B44 is not set
606CONFIG_NETDEV_1000=y
607CONFIG_NETDEV_10000=y
608
609#
610# Wireless LAN
611#
612# CONFIG_WLAN_PRE80211 is not set
613# CONFIG_WLAN_80211 is not set
614
615#
616# USB Network Adapters
617#
618# CONFIG_USB_CATC is not set
619# CONFIG_USB_KAWETH is not set
620# CONFIG_USB_PEGASUS is not set
621# CONFIG_USB_RTL8150 is not set
622CONFIG_USB_USBNET=y
623# CONFIG_USB_NET_AX8817X is not set
624CONFIG_USB_NET_CDCETHER=y
625# CONFIG_USB_NET_DM9601 is not set
626# CONFIG_USB_NET_GL620A is not set
627CONFIG_USB_NET_NET1080=y
628# CONFIG_USB_NET_PLUSB is not set
629# CONFIG_USB_NET_MCS7830 is not set
630# CONFIG_USB_NET_RNDIS_HOST is not set
631# CONFIG_USB_NET_CDC_SUBSET is not set
632CONFIG_USB_NET_ZAURUS=y
633# CONFIG_WAN is not set
634CONFIG_PPP=y
635# CONFIG_PPP_MULTILINK is not set
636CONFIG_PPP_FILTER=y
637CONFIG_PPP_ASYNC=y
638# CONFIG_PPP_SYNC_TTY is not set
639CONFIG_PPP_DEFLATE=y
640CONFIG_PPP_BSDCOMP=y
641# CONFIG_PPP_MPPE is not set
642# CONFIG_PPPOE is not set
643# CONFIG_PPPOL2TP is not set
644# CONFIG_SLIP is not set
645CONFIG_SLHC=y
646# CONFIG_SHAPER is not set
647# CONFIG_NETCONSOLE is not set
648# CONFIG_NETPOLL is not set
649# CONFIG_NET_POLL_CONTROLLER is not set
650# CONFIG_ISDN is not set
651
652#
653# Input device support
654#
655CONFIG_INPUT=y
656# CONFIG_INPUT_FF_MEMLESS is not set
657# CONFIG_INPUT_POLLDEV is not set
658
659#
660# Userland interfaces
661#
662CONFIG_INPUT_MOUSEDEV=y
663# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
664CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
665CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
666# CONFIG_INPUT_JOYDEV is not set
667CONFIG_INPUT_EVDEV=y
668# CONFIG_INPUT_EVBUG is not set
669
670#
671# Input Device Drivers
672#
673CONFIG_INPUT_KEYBOARD=y
674# CONFIG_KEYBOARD_ATKBD is not set
675# CONFIG_KEYBOARD_SUNKBD is not set
676# CONFIG_KEYBOARD_LKKBD is not set
677# CONFIG_KEYBOARD_XTKBD is not set
678# CONFIG_KEYBOARD_NEWTON is not set
679# CONFIG_KEYBOARD_STOWAWAY is not set
680CONFIG_KEYBOARD_OMAP=y
681# CONFIG_KEYBOARD_GPIO is not set
682# CONFIG_INPUT_MOUSE is not set
683# CONFIG_INPUT_JOYSTICK is not set
684# CONFIG_INPUT_TABLET is not set
685CONFIG_INPUT_TOUCHSCREEN=y
686CONFIG_TOUCHSCREEN_ADS7846=y
687# CONFIG_TOUCHSCREEN_FUJITSU is not set
688# CONFIG_TOUCHSCREEN_GUNZE is not set
689# CONFIG_TOUCHSCREEN_ELO is not set
690# CONFIG_TOUCHSCREEN_MTOUCH is not set
691# CONFIG_TOUCHSCREEN_MK712 is not set
692# CONFIG_TOUCHSCREEN_PENMOUNT is not set
693# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
694# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
695# CONFIG_TOUCHSCREEN_UCB1400 is not set
696# CONFIG_TOUCHSCREEN_TSC2102 is not set
697# CONFIG_TOUCHSCREEN_TSC210X is not set
698# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
699# CONFIG_INPUT_MISC is not set
700
701#
702# Hardware I/O ports
703#
704CONFIG_SERIO=y
705CONFIG_SERIO_SERPORT=y
706# CONFIG_SERIO_RAW is not set
707# CONFIG_GAMEPORT is not set
708
709#
710# Character devices
711#
712CONFIG_VT=y
713CONFIG_VT_CONSOLE=y
714CONFIG_HW_CONSOLE=y
715# CONFIG_VT_HW_CONSOLE_BINDING is not set
716# CONFIG_SERIAL_NONSTANDARD is not set
717
718#
719# Serial drivers
720#
721CONFIG_SERIAL_8250=y
722CONFIG_SERIAL_8250_CONSOLE=y
723CONFIG_SERIAL_8250_NR_UARTS=4
724CONFIG_SERIAL_8250_RUNTIME_UARTS=4
725# CONFIG_SERIAL_8250_EXTENDED is not set
726
727#
728# Non-8250 serial port support
729#
730CONFIG_SERIAL_CORE=y
731CONFIG_SERIAL_CORE_CONSOLE=y
732CONFIG_UNIX98_PTYS=y
733# CONFIG_LEGACY_PTYS is not set
734# CONFIG_IPMI_HANDLER is not set
735CONFIG_HW_RANDOM=m
736CONFIG_HW_RANDOM_OMAP=m
737# CONFIG_NVRAM is not set
738# CONFIG_R3964 is not set
739# CONFIG_RAW_DRIVER is not set
740# CONFIG_TCG_TPM is not set
741CONFIG_I2C=y
742CONFIG_I2C_BOARDINFO=y
743# CONFIG_I2C_CHARDEV is not set
744
745#
746# I2C Algorithms
747#
748# CONFIG_I2C_ALGOBIT is not set
749# CONFIG_I2C_ALGOPCF is not set
750# CONFIG_I2C_ALGOPCA is not set
751
752#
753# I2C Hardware Bus support
754#
755# CONFIG_I2C_GPIO is not set
756# CONFIG_I2C_OCORES is not set
757CONFIG_I2C_OMAP=y
758# CONFIG_I2C_PARPORT_LIGHT is not set
759# CONFIG_I2C_SIMTEC is not set
760# CONFIG_I2C_TAOS_EVM is not set
761# CONFIG_I2C_STUB is not set
762# CONFIG_I2C_TINY_USB is not set
763
764#
765# Miscellaneous I2C Chip support
766#
767# CONFIG_SENSORS_DS1337 is not set
768# CONFIG_SENSORS_DS1374 is not set
769# CONFIG_DS1682 is not set
770# CONFIG_SENSORS_EEPROM is not set
771# CONFIG_SENSORS_PCF8574 is not set
772# CONFIG_SENSORS_PCA9539 is not set
773# CONFIG_SENSORS_PCF8591 is not set
774# CONFIG_ISP1301_OMAP is not set
775# CONFIG_TPS65010 is not set
776CONFIG_SENSORS_TLV320AIC23=y
777# CONFIG_GPIOEXPANDER_OMAP is not set
778# CONFIG_SENSORS_MAX6875 is not set
779# CONFIG_SENSORS_TSL2550 is not set
780# CONFIG_I2C_DEBUG_CORE is not set
781# CONFIG_I2C_DEBUG_ALGO is not set
782# CONFIG_I2C_DEBUG_BUS is not set
783# CONFIG_I2C_DEBUG_CHIP is not set
784
785#
786# SPI support
787#
788CONFIG_SPI=y
789# CONFIG_SPI_DEBUG is not set
790CONFIG_SPI_MASTER=y
791
792#
793# SPI Master Controller Drivers
794#
795CONFIG_SPI_BITBANG=y
796CONFIG_SPI_OMAP_UWIRE=y
797
798#
799# SPI Protocol Masters
800#
801# CONFIG_SPI_AT25 is not set
802# CONFIG_SPI_TSC2101 is not set
803# CONFIG_SPI_TSC2102 is not set
804# CONFIG_SPI_TSC210X is not set
805# CONFIG_SPI_TSC2301 is not set
806# CONFIG_SPI_SPIDEV is not set
807# CONFIG_SPI_TLE62X0 is not set
808# CONFIG_W1 is not set
809# CONFIG_POWER_SUPPLY is not set
810# CONFIG_HWMON is not set
811CONFIG_WATCHDOG=y
812CONFIG_WATCHDOG_NOWAYOUT=y
813
814#
815# Watchdog Device Drivers
816#
817# CONFIG_SOFT_WATCHDOG is not set
818CONFIG_OMAP_WATCHDOG=y
819
820#
821# USB-based Watchdog Cards
822#
823# CONFIG_USBPCWATCHDOG is not set
824
825#
826# Sonics Silicon Backplane
827#
828CONFIG_SSB_POSSIBLE=y
829# CONFIG_SSB is not set
830
831#
832# Multifunction device drivers
833#
834# CONFIG_MFD_SM501 is not set
835
836#
837# Multimedia devices
838#
839# CONFIG_VIDEO_DEV is not set
840# CONFIG_DVB_CORE is not set
841CONFIG_DAB=y
842# CONFIG_USB_DABUSB is not set
843
844#
845# Graphics support
846#
847# CONFIG_VGASTATE is not set
848# CONFIG_VIDEO_OUTPUT_CONTROL is not set
849CONFIG_FB=y
850# CONFIG_FIRMWARE_EDID is not set
851# CONFIG_FB_DDC is not set
852CONFIG_FB_CFB_FILLRECT=y
853CONFIG_FB_CFB_COPYAREA=y
854CONFIG_FB_CFB_IMAGEBLIT=y
855# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
856# CONFIG_FB_SYS_FILLRECT is not set
857# CONFIG_FB_SYS_COPYAREA is not set
858# CONFIG_FB_SYS_IMAGEBLIT is not set
859# CONFIG_FB_SYS_FOPS is not set
860CONFIG_FB_DEFERRED_IO=y
861# CONFIG_FB_SVGALIB is not set
862# CONFIG_FB_MACMODES is not set
863# CONFIG_FB_BACKLIGHT is not set
864# CONFIG_FB_MODE_HELPERS is not set
865# CONFIG_FB_TILEBLITTING is not set
866
867#
868# Frame buffer hardware drivers
869#
870# CONFIG_FB_UVESA is not set
871# CONFIG_FB_S1D13XXX is not set
872# CONFIG_FB_VIRTUAL is not set
873CONFIG_FB_OMAP=y
874CONFIG_FB_OMAP_LCDC_EXTERNAL=y
875CONFIG_FB_OMAP_LCDC_HWA742=y
876# CONFIG_FB_OMAP_LCDC_BLIZZARD is not set
877CONFIG_FB_OMAP_MANUAL_UPDATE=y
878# CONFIG_FB_OMAP_LCD_MIPID is not set
879# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
880CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
881# CONFIG_FB_OMAP_DMA_TUNE is not set
882# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
883
884#
885# Display device support
886#
887# CONFIG_DISPLAY_SUPPORT is not set
888
889#
890# Console display driver support
891#
892# CONFIG_VGA_CONSOLE is not set
893CONFIG_DUMMY_CONSOLE=y
894# CONFIG_FRAMEBUFFER_CONSOLE is not set
895# CONFIG_LOGO is not set
896
897#
898# Sound
899#
900CONFIG_SOUND=y
901
902#
903# Advanced Linux Sound Architecture
904#
905CONFIG_SND=y
906CONFIG_SND_TIMER=y
907CONFIG_SND_PCM=y
908CONFIG_SND_HWDEP=y
909CONFIG_SND_RAWMIDI=y
910# CONFIG_SND_SEQUENCER is not set
911# CONFIG_SND_MIXER_OSS is not set
912# CONFIG_SND_PCM_OSS is not set
913# CONFIG_SND_DYNAMIC_MINORS is not set
914# CONFIG_SND_SUPPORT_OLD_API is not set
915CONFIG_SND_VERBOSE_PROCFS=y
916# CONFIG_SND_VERBOSE_PRINTK is not set
917# CONFIG_SND_DEBUG is not set
918
919#
920# Generic devices
921#
922CONFIG_SND_DUMMY=y
923# CONFIG_SND_MTPAV is not set
924# CONFIG_SND_SERIAL_U16550 is not set
925# CONFIG_SND_MPU401 is not set
926
927#
928# ALSA ARM devices
929#
930CONFIG_SND_OMAP_AIC23=y
931# CONFIG_SND_OMAP_TSC2101 is not set
932# CONFIG_SND_SX1 is not set
933# CONFIG_SND_OMAP_TSC2102 is not set
934# CONFIG_SND_OMAP24XX_EAC is not set
935
936#
937# SPI devices
938#
939
940#
941# USB devices
942#
943CONFIG_SND_USB_AUDIO=y
944# CONFIG_SND_USB_CAIAQ is not set
945
946#
947# System on Chip audio support
948#
949# CONFIG_SND_SOC is not set
950
951#
952# SoC Audio support for SuperH
953#
954
955#
956# Open Sound System
957#
958# CONFIG_SOUND_PRIME is not set
959CONFIG_HID_SUPPORT=y
960CONFIG_HID=y
961CONFIG_HID_DEBUG=y
962# CONFIG_HIDRAW is not set
963
964#
965# USB Input Devices
966#
967CONFIG_USB_HID=y
968# CONFIG_USB_HIDINPUT_POWERBOOK is not set
969# CONFIG_HID_FF is not set
970# CONFIG_USB_HIDDEV is not set
971CONFIG_USB_SUPPORT=y
972CONFIG_USB_ARCH_HAS_HCD=y
973CONFIG_USB_ARCH_HAS_OHCI=y
974# CONFIG_USB_ARCH_HAS_EHCI is not set
975CONFIG_USB=y
976# CONFIG_USB_DEBUG is not set
977
978#
979# Miscellaneous USB options
980#
981CONFIG_USB_DEVICEFS=y
982CONFIG_USB_DEVICE_CLASS=y
983# CONFIG_USB_DYNAMIC_MINORS is not set
984CONFIG_USB_SUSPEND=y
985# CONFIG_USB_PERSIST is not set
986CONFIG_USB_OTG=y
987# CONFIG_USB_OTG_WHITELIST is not set
988# CONFIG_USB_OTG_BLACKLIST_HUB is not set
989
990#
991# USB Host Controller Drivers
992#
993# CONFIG_USB_ISP116X_HCD is not set
994CONFIG_USB_OHCI_HCD=y
995# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
996# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
997CONFIG_USB_OHCI_LITTLE_ENDIAN=y
998# CONFIG_USB_SL811_HCD is not set
999# CONFIG_USB_R8A66597_HCD is not set
1000# CONFIG_USB_MUSB_HDRC is not set
1001# CONFIG_USB_GADGET_MUSB_HDRC is not set
1002
1003#
1004# USB Device Class drivers
1005#
1006# CONFIG_USB_ACM is not set
1007# CONFIG_USB_PRINTER is not set
1008
1009#
1010# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1011#
1012
1013#
1014# may also be needed; see USB_STORAGE Help for more information
1015#
1016CONFIG_USB_STORAGE=y
1017# CONFIG_USB_STORAGE_DEBUG is not set
1018# CONFIG_USB_STORAGE_DATAFAB is not set
1019# CONFIG_USB_STORAGE_FREECOM is not set
1020# CONFIG_USB_STORAGE_ISD200 is not set
1021# CONFIG_USB_STORAGE_DPCM is not set
1022# CONFIG_USB_STORAGE_USBAT is not set
1023# CONFIG_USB_STORAGE_SDDR09 is not set
1024# CONFIG_USB_STORAGE_SDDR55 is not set
1025# CONFIG_USB_STORAGE_JUMPSHOT is not set
1026# CONFIG_USB_STORAGE_ALAUDA is not set
1027# CONFIG_USB_STORAGE_KARMA is not set
1028# CONFIG_USB_LIBUSUAL is not set
1029
1030#
1031# USB Imaging devices
1032#
1033# CONFIG_USB_MDC800 is not set
1034# CONFIG_USB_MICROTEK is not set
1035# CONFIG_USB_MON is not set
1036
1037#
1038# USB port drivers
1039#
1040
1041#
1042# USB Serial Converter support
1043#
1044CONFIG_USB_SERIAL=y
1045CONFIG_USB_SERIAL_CONSOLE=y
1046# CONFIG_USB_SERIAL_GENERIC is not set
1047# CONFIG_USB_SERIAL_AIRCABLE is not set
1048# CONFIG_USB_SERIAL_AIRPRIME is not set
1049# CONFIG_USB_SERIAL_ARK3116 is not set
1050# CONFIG_USB_SERIAL_BELKIN is not set
1051# CONFIG_USB_SERIAL_CH341 is not set
1052# CONFIG_USB_SERIAL_WHITEHEAT is not set
1053# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
1054# CONFIG_USB_SERIAL_CP2101 is not set
1055# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1056# CONFIG_USB_SERIAL_EMPEG is not set
1057# CONFIG_USB_SERIAL_FTDI_SIO is not set
1058# CONFIG_USB_SERIAL_FUNSOFT is not set
1059# CONFIG_USB_SERIAL_VISOR is not set
1060# CONFIG_USB_SERIAL_IPAQ is not set
1061# CONFIG_USB_SERIAL_IR is not set
1062# CONFIG_USB_SERIAL_EDGEPORT is not set
1063# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
1064# CONFIG_USB_SERIAL_GARMIN is not set
1065# CONFIG_USB_SERIAL_IPW is not set
1066# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
1067# CONFIG_USB_SERIAL_KEYSPAN is not set
1068# CONFIG_USB_SERIAL_KLSI is not set
1069# CONFIG_USB_SERIAL_KOBIL_SCT is not set
1070# CONFIG_USB_SERIAL_MCT_U232 is not set
1071# CONFIG_USB_SERIAL_MOS7720 is not set
1072# CONFIG_USB_SERIAL_MOS7840 is not set
1073# CONFIG_USB_SERIAL_NAVMAN is not set
1074CONFIG_USB_SERIAL_PL2303=y
1075# CONFIG_USB_SERIAL_OTI6858 is not set
1076# CONFIG_USB_SERIAL_HP4X is not set
1077# CONFIG_USB_SERIAL_SAFE is not set
1078# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1079# CONFIG_USB_SERIAL_TI is not set
1080# CONFIG_USB_SERIAL_CYBERJACK is not set
1081# CONFIG_USB_SERIAL_XIRCOM is not set
1082# CONFIG_USB_SERIAL_OPTION is not set
1083# CONFIG_USB_SERIAL_OMNINET is not set
1084# CONFIG_USB_SERIAL_DEBUG is not set
1085
1086#
1087# USB Miscellaneous drivers
1088#
1089# CONFIG_USB_EMI62 is not set
1090# CONFIG_USB_EMI26 is not set
1091# CONFIG_USB_ADUTUX is not set
1092# CONFIG_USB_AUERSWALD is not set
1093# CONFIG_USB_RIO500 is not set
1094# CONFIG_USB_LEGOTOWER is not set
1095# CONFIG_USB_LCD is not set
1096# CONFIG_USB_BERRY_CHARGE is not set
1097# CONFIG_USB_LED is not set
1098# CONFIG_USB_CYPRESS_CY7C63 is not set
1099# CONFIG_USB_CYTHERM is not set
1100# CONFIG_USB_PHIDGET is not set
1101# CONFIG_USB_IDMOUSE is not set
1102# CONFIG_USB_FTDI_ELAN is not set
1103# CONFIG_USB_APPLEDISPLAY is not set
1104# CONFIG_USB_LD is not set
1105# CONFIG_USB_TRANCEVIBRATOR is not set
1106# CONFIG_USB_IOWARRIOR is not set
1107# CONFIG_USB_TEST is not set
1108
1109#
1110# USB DSL modem support
1111#
1112
1113#
1114# USB Gadget Support
1115#
1116CONFIG_USB_GADGET=y
1117# CONFIG_USB_GADGET_DEBUG is not set
1118# CONFIG_USB_GADGET_DEBUG_FILES is not set
1119CONFIG_USB_GADGET_SELECTED=y
1120# CONFIG_USB_GADGET_AMD5536UDC is not set
1121# CONFIG_USB_GADGET_ATMEL_USBA is not set
1122# CONFIG_USB_GADGET_FSL_USB2 is not set
1123# CONFIG_USB_GADGET_NET2280 is not set
1124# CONFIG_USB_GADGET_PXA2XX is not set
1125# CONFIG_USB_GADGET_M66592 is not set
1126# CONFIG_USB_GADGET_GOKU is not set
1127# CONFIG_USB_GADGET_LH7A40X is not set
1128CONFIG_USB_GADGET_OMAP=y
1129CONFIG_USB_OMAP=y
1130# CONFIG_USB_GADGET_S3C2410 is not set
1131# CONFIG_USB_GADGET_AT91 is not set
1132# CONFIG_USB_GADGET_DUMMY_HCD is not set
1133# CONFIG_USB_GADGET_DUALSPEED is not set
1134# CONFIG_USB_ZERO is not set
1135CONFIG_USB_ETH=m
1136CONFIG_USB_ETH_RNDIS=y
1137# CONFIG_USB_GADGETFS is not set
1138CONFIG_USB_FILE_STORAGE=m
1139CONFIG_USB_FILE_STORAGE_TEST=y
1140# CONFIG_USB_G_SERIAL is not set
1141# CONFIG_USB_MIDI_GADGET is not set
1142CONFIG_MMC=y
1143# CONFIG_MMC_DEBUG is not set
1144# CONFIG_MMC_UNSAFE_RESUME is not set
1145
1146#
1147# MMC/SD Card Drivers
1148#
1149CONFIG_MMC_BLOCK=y
1150CONFIG_MMC_BLOCK_BOUNCE=y
1151# CONFIG_SDIO_UART is not set
1152
1153#
1154# MMC/SD Host Controller Drivers
1155#
1156CONFIG_MMC_OMAP=y
1157# CONFIG_MMC_SPI is not set
1158# CONFIG_NEW_LEDS is not set
1159CONFIG_RTC_LIB=y
1160# CONFIG_RTC_CLASS is not set
1161
1162#
1163# CBUS support
1164#
1165CONFIG_CBUS=y
1166CONFIG_CBUS_TAHVO=y
1167CONFIG_CBUS_TAHVO_USER=y
1168CONFIG_CBUS_TAHVO_USB=y
1169# CONFIG_CBUS_TAHVO_USB_HOST_BY_DEFAULT is not set
1170CONFIG_CBUS_RETU=y
1171CONFIG_CBUS_RETU_USER=y
1172CONFIG_CBUS_RETU_POWERBUTTON=y
1173CONFIG_CBUS_RETU_RTC=y
1174CONFIG_CBUS_RETU_WDT=y
1175# CONFIG_CBUS_RETU_HEADSET is not set
1176CONFIG_OMAP_DSP=y
1177# CONFIG_OMAP_DSP_MBCMD_VERBOSE is not set
1178CONFIG_OMAP_DSP_FBEXPORT=y
1179
1180#
1181# File systems
1182#
1183CONFIG_EXT2_FS=y
1184# CONFIG_EXT2_FS_XATTR is not set
1185# CONFIG_EXT2_FS_XIP is not set
1186CONFIG_EXT3_FS=y
1187CONFIG_EXT3_FS_XATTR=y
1188# CONFIG_EXT3_FS_POSIX_ACL is not set
1189# CONFIG_EXT3_FS_SECURITY is not set
1190# CONFIG_EXT4DEV_FS is not set
1191CONFIG_JBD=y
1192CONFIG_FS_MBCACHE=y
1193# CONFIG_REISERFS_FS is not set
1194# CONFIG_JFS_FS is not set
1195# CONFIG_FS_POSIX_ACL is not set
1196# CONFIG_XFS_FS is not set
1197# CONFIG_GFS2_FS is not set
1198# CONFIG_OCFS2_FS is not set
1199# CONFIG_MINIX_FS is not set
1200# CONFIG_ROMFS_FS is not set
1201# CONFIG_INOTIFY is not set
1202# CONFIG_QUOTA is not set
1203CONFIG_DNOTIFY=y
1204# CONFIG_AUTOFS_FS is not set
1205# CONFIG_AUTOFS4_FS is not set
1206# CONFIG_FUSE_FS is not set
1207
1208#
1209# CD-ROM/DVD Filesystems
1210#
1211# CONFIG_ISO9660_FS is not set
1212# CONFIG_UDF_FS is not set
1213
1214#
1215# DOS/FAT/NT Filesystems
1216#
1217CONFIG_FAT_FS=y
1218CONFIG_MSDOS_FS=y
1219CONFIG_VFAT_FS=y
1220CONFIG_FAT_DEFAULT_CODEPAGE=437
1221CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1222# CONFIG_NTFS_FS is not set
1223
1224#
1225# Pseudo filesystems
1226#
1227CONFIG_PROC_FS=y
1228CONFIG_PROC_SYSCTL=y
1229CONFIG_SYSFS=y
1230CONFIG_TMPFS=y
1231# CONFIG_TMPFS_POSIX_ACL is not set
1232# CONFIG_HUGETLB_PAGE is not set
1233# CONFIG_CONFIGFS_FS is not set
1234
1235#
1236# Miscellaneous filesystems
1237#
1238# CONFIG_ADFS_FS is not set
1239# CONFIG_AFFS_FS is not set
1240# CONFIG_HFS_FS is not set
1241# CONFIG_HFSPLUS_FS is not set
1242# CONFIG_BEFS_FS is not set
1243# CONFIG_BFS_FS is not set
1244# CONFIG_EFS_FS is not set
1245CONFIG_JFFS2_FS=y
1246CONFIG_JFFS2_FS_DEBUG=0
1247CONFIG_JFFS2_FS_WRITEBUFFER=y
1248# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1249CONFIG_JFFS2_SUMMARY=y
1250# CONFIG_JFFS2_FS_XATTR is not set
1251CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1252CONFIG_JFFS2_ZLIB=y
1253# CONFIG_JFFS2_LZO is not set
1254CONFIG_JFFS2_RTIME=y
1255# CONFIG_JFFS2_RUBIN is not set
1256# CONFIG_JFFS2_CMODE_NONE is not set
1257CONFIG_JFFS2_CMODE_PRIORITY=y
1258# CONFIG_JFFS2_CMODE_SIZE is not set
1259# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1260# CONFIG_CRAMFS is not set
1261# CONFIG_VXFS_FS is not set
1262# CONFIG_HPFS_FS is not set
1263# CONFIG_QNX4FS_FS is not set
1264# CONFIG_SYSV_FS is not set
1265# CONFIG_UFS_FS is not set
1266CONFIG_NETWORK_FILESYSTEMS=y
1267CONFIG_NFS_FS=y
1268CONFIG_NFS_V3=y
1269# CONFIG_NFS_V3_ACL is not set
1270# CONFIG_NFS_V4 is not set
1271# CONFIG_NFS_DIRECTIO is not set
1272# CONFIG_NFSD is not set
1273# CONFIG_ROOT_NFS is not set
1274CONFIG_LOCKD=y
1275CONFIG_LOCKD_V4=y
1276CONFIG_NFS_COMMON=y
1277CONFIG_SUNRPC=y
1278# CONFIG_SUNRPC_BIND34 is not set
1279# CONFIG_RPCSEC_GSS_KRB5 is not set
1280# CONFIG_RPCSEC_GSS_SPKM3 is not set
1281# CONFIG_SMB_FS is not set
1282# CONFIG_CIFS is not set
1283# CONFIG_NCP_FS is not set
1284# CONFIG_CODA_FS is not set
1285# CONFIG_AFS_FS is not set
1286
1287#
1288# Partition Types
1289#
1290CONFIG_PARTITION_ADVANCED=y
1291# CONFIG_ACORN_PARTITION is not set
1292# CONFIG_OSF_PARTITION is not set
1293# CONFIG_AMIGA_PARTITION is not set
1294# CONFIG_ATARI_PARTITION is not set
1295# CONFIG_MAC_PARTITION is not set
1296CONFIG_MSDOS_PARTITION=y
1297# CONFIG_BSD_DISKLABEL is not set
1298# CONFIG_MINIX_SUBPARTITION is not set
1299# CONFIG_SOLARIS_X86_PARTITION is not set
1300# CONFIG_UNIXWARE_DISKLABEL is not set
1301# CONFIG_LDM_PARTITION is not set
1302# CONFIG_SGI_PARTITION is not set
1303# CONFIG_ULTRIX_PARTITION is not set
1304# CONFIG_SUN_PARTITION is not set
1305# CONFIG_KARMA_PARTITION is not set
1306# CONFIG_EFI_PARTITION is not set
1307# CONFIG_SYSV68_PARTITION is not set
1308CONFIG_NLS=y
1309CONFIG_NLS_DEFAULT="iso8859-1"
1310CONFIG_NLS_CODEPAGE_437=y
1311# CONFIG_NLS_CODEPAGE_737 is not set
1312# CONFIG_NLS_CODEPAGE_775 is not set
1313# CONFIG_NLS_CODEPAGE_850 is not set
1314CONFIG_NLS_CODEPAGE_852=y
1315# CONFIG_NLS_CODEPAGE_855 is not set
1316# CONFIG_NLS_CODEPAGE_857 is not set
1317# CONFIG_NLS_CODEPAGE_860 is not set
1318# CONFIG_NLS_CODEPAGE_861 is not set
1319# CONFIG_NLS_CODEPAGE_862 is not set
1320# CONFIG_NLS_CODEPAGE_863 is not set
1321# CONFIG_NLS_CODEPAGE_864 is not set
1322# CONFIG_NLS_CODEPAGE_865 is not set
1323# CONFIG_NLS_CODEPAGE_866 is not set
1324# CONFIG_NLS_CODEPAGE_869 is not set
1325# CONFIG_NLS_CODEPAGE_936 is not set
1326# CONFIG_NLS_CODEPAGE_950 is not set
1327# CONFIG_NLS_CODEPAGE_932 is not set
1328# CONFIG_NLS_CODEPAGE_949 is not set
1329# CONFIG_NLS_CODEPAGE_874 is not set
1330# CONFIG_NLS_ISO8859_8 is not set
1331# CONFIG_NLS_CODEPAGE_1250 is not set
1332# CONFIG_NLS_CODEPAGE_1251 is not set
1333# CONFIG_NLS_ASCII is not set
1334CONFIG_NLS_ISO8859_1=y
1335# CONFIG_NLS_ISO8859_2 is not set
1336# CONFIG_NLS_ISO8859_3 is not set
1337# CONFIG_NLS_ISO8859_4 is not set
1338# CONFIG_NLS_ISO8859_5 is not set
1339# CONFIG_NLS_ISO8859_6 is not set
1340# CONFIG_NLS_ISO8859_7 is not set
1341# CONFIG_NLS_ISO8859_9 is not set
1342# CONFIG_NLS_ISO8859_13 is not set
1343# CONFIG_NLS_ISO8859_14 is not set
1344CONFIG_NLS_ISO8859_15=y
1345# CONFIG_NLS_KOI8_R is not set
1346# CONFIG_NLS_KOI8_U is not set
1347CONFIG_NLS_UTF8=y
1348# CONFIG_DLM is not set
1349CONFIG_INSTRUMENTATION=y
1350# CONFIG_PROFILING is not set
1351# CONFIG_MARKERS is not set
1352
1353#
1354# Kernel hacking
1355#
1356# CONFIG_PRINTK_TIME is not set
1357CONFIG_ENABLE_WARN_DEPRECATED=y
1358CONFIG_ENABLE_MUST_CHECK=y
1359CONFIG_MAGIC_SYSRQ=y
1360# CONFIG_UNUSED_SYMBOLS is not set
1361# CONFIG_DEBUG_FS is not set
1362# CONFIG_HEADERS_CHECK is not set
1363CONFIG_DEBUG_KERNEL=y
1364# CONFIG_DEBUG_SHIRQ is not set
1365CONFIG_DETECT_SOFTLOCKUP=y
1366CONFIG_SCHED_DEBUG=y
1367# CONFIG_SCHEDSTATS is not set
1368# CONFIG_TIMER_STATS is not set
1369# CONFIG_DEBUG_SLAB is not set
1370# CONFIG_DEBUG_RT_MUTEXES is not set
1371# CONFIG_RT_MUTEX_TESTER is not set
1372# CONFIG_DEBUG_SPINLOCK is not set
1373CONFIG_DEBUG_MUTEXES=y
1374# CONFIG_DEBUG_LOCK_ALLOC is not set
1375# CONFIG_PROVE_LOCKING is not set
1376# CONFIG_LOCK_STAT is not set
1377# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1378# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1379# CONFIG_DEBUG_KOBJECT is not set
1380CONFIG_DEBUG_BUGVERBOSE=y
1381# CONFIG_DEBUG_INFO is not set
1382# CONFIG_DEBUG_VM is not set
1383# CONFIG_DEBUG_LIST is not set
1384# CONFIG_DEBUG_SG is not set
1385CONFIG_FRAME_POINTER=y
1386CONFIG_FORCED_INLINING=y
1387# CONFIG_BOOT_PRINTK_DELAY is not set
1388# CONFIG_RCU_TORTURE_TEST is not set
1389# CONFIG_FAULT_INJECTION is not set
1390# CONFIG_SAMPLES is not set
1391# CONFIG_DEBUG_USER is not set
1392CONFIG_DEBUG_ERRORS=y
1393# CONFIG_DEBUG_LL is not set
1394
1395#
1396# Security options
1397#
1398# CONFIG_KEYS is not set
1399CONFIG_SECURITY=y
1400# CONFIG_SECURITY_NETWORK is not set
1401# CONFIG_SECURITY_CAPABILITIES is not set
1402# CONFIG_SECURITY_ROOTPLUG is not set
1403# CONFIG_SECURITY_LOWMEM is not set
1404# CONFIG_CRYPTO is not set
1405
1406#
1407# Library routines
1408#
1409CONFIG_BITREVERSE=y
1410CONFIG_CRC_CCITT=y
1411# CONFIG_CRC16 is not set
1412# CONFIG_CRC_ITU_T is not set
1413CONFIG_CRC32=y
1414# CONFIG_CRC7 is not set
1415# CONFIG_LIBCRC32C is not set
1416CONFIG_ZLIB_INFLATE=y
1417CONFIG_ZLIB_DEFLATE=y
1418CONFIG_PLIST=y
1419CONFIG_HAS_IOMEM=y
1420CONFIG_HAS_IOPORT=y
1421CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_2430sdp_defconfig b/arch/arm/configs/omap_2430sdp_defconfig
new file mode 100644
index 00000000000..b0617c0da2a
--- /dev/null
+++ b/arch/arm/configs/omap_2430sdp_defconfig
@@ -0,0 +1,1304 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 11:47:37 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36CONFIG_LOCALVERSION_AUTO=y
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41CONFIG_BSD_PROCESS_ACCT=y
42# CONFIG_BSD_PROCESS_ACCT_V3 is not set
43# CONFIG_TASKSTATS is not set
44# CONFIG_USER_NS is not set
45# CONFIG_AUDIT is not set
46# CONFIG_IKCONFIG is not set
47CONFIG_LOG_BUF_SHIFT=14
48CONFIG_SYSFS_DEPRECATED=y
49# CONFIG_RELAY is not set
50CONFIG_BLK_DEV_INITRD=y
51CONFIG_INITRAMFS_SOURCE=""
52CONFIG_CC_OPTIMIZE_FOR_SIZE=y
53CONFIG_SYSCTL=y
54CONFIG_EMBEDDED=y
55CONFIG_UID16=y
56# CONFIG_SYSCTL_SYSCALL is not set
57CONFIG_KALLSYMS=y
58# CONFIG_KALLSYMS_ALL is not set
59CONFIG_KALLSYMS_EXTRA_PASS=y
60CONFIG_HOTPLUG=y
61CONFIG_PRINTK=y
62CONFIG_BUG=y
63CONFIG_ELF_CORE=y
64CONFIG_BASE_FULL=y
65CONFIG_FUTEX=y
66CONFIG_ANON_INODES=y
67CONFIG_EPOLL=y
68CONFIG_SIGNALFD=y
69CONFIG_TIMERFD=y
70CONFIG_EVENTFD=y
71CONFIG_SHMEM=y
72CONFIG_VM_EVENT_COUNTERS=y
73CONFIG_SLAB=y
74# CONFIG_SLUB is not set
75# CONFIG_SLOB is not set
76CONFIG_RT_MUTEXES=y
77# CONFIG_TINY_SHMEM is not set
78CONFIG_BASE_SMALL=0
79CONFIG_MODULES=y
80CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set
82CONFIG_MODVERSIONS=y
83CONFIG_MODULE_SRCVERSION_ALL=y
84CONFIG_KMOD=y
85CONFIG_BLOCK=y
86# CONFIG_LBD is not set
87# CONFIG_BLK_DEV_IO_TRACE is not set
88# CONFIG_LSF is not set
89# CONFIG_BLK_DEV_BSG is not set
90
91#
92# IO Schedulers
93#
94CONFIG_IOSCHED_NOOP=y
95CONFIG_IOSCHED_AS=y
96CONFIG_IOSCHED_DEADLINE=y
97CONFIG_IOSCHED_CFQ=y
98CONFIG_DEFAULT_AS=y
99# CONFIG_DEFAULT_DEADLINE is not set
100# CONFIG_DEFAULT_CFQ is not set
101# CONFIG_DEFAULT_NOOP is not set
102CONFIG_DEFAULT_IOSCHED="anticipatory"
103
104#
105# System Type
106#
107# CONFIG_ARCH_AAEC2000 is not set
108# CONFIG_ARCH_INTEGRATOR is not set
109# CONFIG_ARCH_REALVIEW is not set
110# CONFIG_ARCH_VERSATILE is not set
111# CONFIG_ARCH_AT91 is not set
112# CONFIG_ARCH_CLPS7500 is not set
113# CONFIG_ARCH_CLPS711X is not set
114# CONFIG_ARCH_CO285 is not set
115# CONFIG_ARCH_EBSA110 is not set
116# CONFIG_ARCH_EP93XX is not set
117# CONFIG_ARCH_FOOTBRIDGE is not set
118# CONFIG_ARCH_NETX is not set
119# CONFIG_ARCH_H720X is not set
120# CONFIG_ARCH_IMX is not set
121# CONFIG_ARCH_IOP13XX is not set
122# CONFIG_ARCH_IOP32X is not set
123# CONFIG_ARCH_IOP33X is not set
124# CONFIG_ARCH_IXP23XX is not set
125# CONFIG_ARCH_IXP2000 is not set
126# CONFIG_ARCH_IXP4XX is not set
127# CONFIG_ARCH_L7200 is not set
128# CONFIG_ARCH_KS8695 is not set
129# CONFIG_ARCH_NS9XXX is not set
130# CONFIG_ARCH_MXC is not set
131# CONFIG_ARCH_PNX4008 is not set
132# CONFIG_ARCH_PXA is not set
133# CONFIG_ARCH_RPC is not set
134# CONFIG_ARCH_SA1100 is not set
135# CONFIG_ARCH_S3C2410 is not set
136# CONFIG_ARCH_SHARK is not set
137# CONFIG_ARCH_LH7A40X is not set
138# CONFIG_ARCH_DAVINCI is not set
139CONFIG_ARCH_OMAP=y
140
141#
142# TI OMAP Implementations
143#
144# CONFIG_ARCH_OMAP1 is not set
145CONFIG_ARCH_OMAP2=y
146# CONFIG_ARCH_OMAP3 is not set
147
148#
149# OMAP Feature Selections
150#
151# CONFIG_OMAP_RESET_CLOCKS is not set
152CONFIG_OMAP_BOOT_TAG=y
153# CONFIG_OMAP_BOOT_REASON is not set
154# CONFIG_OMAP_COMPONENT_VERSION is not set
155# CONFIG_OMAP_GPIO_SWITCH is not set
156CONFIG_OMAP_MUX=y
157# CONFIG_OMAP_MUX_DEBUG is not set
158# CONFIG_OMAP_MUX_WARNINGS is not set
159# CONFIG_OMAP_STI is not set
160CONFIG_OMAP_MCBSP=y
161# CONFIG_OMAP_MMU_FWK is not set
162# CONFIG_OMAP_MBOX_FWK is not set
163CONFIG_OMAP_MPU_TIMER=y
164# CONFIG_OMAP_32K_TIMER is not set
165CONFIG_OMAP_DM_TIMER=y
166CONFIG_OMAP_LL_DEBUG_UART1=y
167# CONFIG_OMAP_LL_DEBUG_UART2 is not set
168# CONFIG_OMAP_LL_DEBUG_UART3 is not set
169CONFIG_OMAP_SERIAL_WAKE=y
170# CONFIG_OMAP_DSP is not set
171# CONFIG_MACH_OMAP_GENERIC is not set
172
173#
174# OMAP Core Type
175#
176CONFIG_ARCH_OMAP24XX=y
177# CONFIG_ARCH_OMAP2420 is not set
178CONFIG_ARCH_OMAP2430=y
179
180#
181# OMAP Board Type
182#
183# CONFIG_MACH_NOKIA_N800 is not set
184# CONFIG_MACH_OMAP_H4 is not set
185# CONFIG_MACH_OMAP_APOLLON is not set
186# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
187CONFIG_MACH_OMAP_2430SDP=y
188
189#
190# Boot options
191#
192
193#
194# Power management
195#
196
197#
198# Processor Type
199#
200CONFIG_CPU_32=y
201CONFIG_CPU_V6=y
202# CONFIG_CPU_32v6K is not set
203CONFIG_CPU_32v6=y
204CONFIG_CPU_ABRT_EV6=y
205CONFIG_CPU_PABRT_NOIFAR=y
206CONFIG_CPU_CACHE_V6=y
207CONFIG_CPU_CACHE_VIPT=y
208CONFIG_CPU_COPY_V6=y
209CONFIG_CPU_TLB_V6=y
210CONFIG_CPU_HAS_ASID=y
211CONFIG_CPU_CP15=y
212CONFIG_CPU_CP15_MMU=y
213
214#
215# Processor Features
216#
217CONFIG_ARM_THUMB=y
218# CONFIG_CPU_ICACHE_DISABLE is not set
219# CONFIG_CPU_DCACHE_DISABLE is not set
220# CONFIG_CPU_BPREDICT_DISABLE is not set
221# CONFIG_OUTER_CACHE is not set
222
223#
224# Bus support
225#
226# CONFIG_PCI_SYSCALL is not set
227# CONFIG_ARCH_SUPPORTS_MSI is not set
228
229#
230# PCCARD (PCMCIA/CardBus) support
231#
232# CONFIG_PCCARD is not set
233
234#
235# Kernel Features
236#
237# CONFIG_TICK_ONESHOT is not set
238# CONFIG_NO_HZ is not set
239# CONFIG_HIGH_RES_TIMERS is not set
240CONFIG_PREEMPT=y
241CONFIG_HZ=100
242CONFIG_AEABI=y
243CONFIG_OABI_COMPAT=y
244# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
245CONFIG_SELECT_MEMORY_MODEL=y
246CONFIG_FLATMEM_MANUAL=y
247# CONFIG_DISCONTIGMEM_MANUAL is not set
248# CONFIG_SPARSEMEM_MANUAL is not set
249CONFIG_FLATMEM=y
250CONFIG_FLAT_NODE_MEM_MAP=y
251# CONFIG_SPARSEMEM_STATIC is not set
252CONFIG_SPLIT_PTLOCK_CPUS=4
253# CONFIG_RESOURCES_64BIT is not set
254CONFIG_ZONE_DMA_FLAG=1
255CONFIG_BOUNCE=y
256CONFIG_VIRT_TO_BUS=y
257# CONFIG_LEDS is not set
258CONFIG_ALIGNMENT_TRAP=y
259
260#
261# Boot options
262#
263CONFIG_ZBOOT_ROM_TEXT=0x0
264CONFIG_ZBOOT_ROM_BSS=0x0
265CONFIG_CMDLINE="root=/dev/ram0 rw console=ttyS0,115200n8 initrd=0x80600000,8M ramdisk_size=8192"
266# CONFIG_XIP_KERNEL is not set
267# CONFIG_KEXEC is not set
268
269#
270# CPU Frequency scaling
271#
272# CONFIG_CPU_FREQ is not set
273
274#
275# Floating point emulation
276#
277
278#
279# At least one emulation must be selected
280#
281CONFIG_FPE_NWFPE=y
282# CONFIG_FPE_NWFPE_XP is not set
283# CONFIG_FPE_FASTFPE is not set
284# CONFIG_VFP is not set
285
286#
287# Userspace binary formats
288#
289CONFIG_BINFMT_ELF=y
290# CONFIG_BINFMT_AOUT is not set
291CONFIG_BINFMT_MISC=y
292
293#
294# Power management options
295#
296CONFIG_PM=y
297# CONFIG_PM_LEGACY is not set
298# CONFIG_PM_DEBUG is not set
299CONFIG_PM_SLEEP=y
300CONFIG_SUSPEND_UP_POSSIBLE=y
301CONFIG_SUSPEND=y
302# CONFIG_APM_EMULATION is not set
303
304#
305# Networking
306#
307CONFIG_NET=y
308
309#
310# Networking options
311#
312CONFIG_PACKET=y
313# CONFIG_PACKET_MMAP is not set
314CONFIG_UNIX=y
315CONFIG_XFRM=y
316# CONFIG_XFRM_USER is not set
317# CONFIG_XFRM_SUB_POLICY is not set
318# CONFIG_XFRM_MIGRATE is not set
319CONFIG_NET_KEY=y
320# CONFIG_NET_KEY_MIGRATE is not set
321CONFIG_INET=y
322# CONFIG_IP_MULTICAST is not set
323# CONFIG_IP_ADVANCED_ROUTER is not set
324CONFIG_IP_FIB_HASH=y
325CONFIG_IP_PNP=y
326CONFIG_IP_PNP_DHCP=y
327# CONFIG_IP_PNP_BOOTP is not set
328# CONFIG_IP_PNP_RARP is not set
329# CONFIG_NET_IPIP is not set
330# CONFIG_NET_IPGRE is not set
331# CONFIG_ARPD is not set
332# CONFIG_SYN_COOKIES is not set
333# CONFIG_INET_AH is not set
334# CONFIG_INET_ESP is not set
335# CONFIG_INET_IPCOMP is not set
336# CONFIG_INET_XFRM_TUNNEL is not set
337# CONFIG_INET_TUNNEL is not set
338CONFIG_INET_XFRM_MODE_TRANSPORT=y
339CONFIG_INET_XFRM_MODE_TUNNEL=y
340CONFIG_INET_XFRM_MODE_BEET=y
341CONFIG_INET_DIAG=y
342CONFIG_INET_TCP_DIAG=y
343# CONFIG_TCP_CONG_ADVANCED is not set
344CONFIG_TCP_CONG_CUBIC=y
345CONFIG_DEFAULT_TCP_CONG="cubic"
346# CONFIG_TCP_MD5SIG is not set
347# CONFIG_IPV6 is not set
348# CONFIG_INET6_XFRM_TUNNEL is not set
349# CONFIG_INET6_TUNNEL is not set
350# CONFIG_NETWORK_SECMARK is not set
351# CONFIG_NETFILTER is not set
352# CONFIG_IP_DCCP is not set
353# CONFIG_IP_SCTP is not set
354# CONFIG_TIPC is not set
355# CONFIG_ATM is not set
356# CONFIG_BRIDGE is not set
357# CONFIG_VLAN_8021Q is not set
358# CONFIG_DECNET is not set
359# CONFIG_LLC2 is not set
360# CONFIG_IPX is not set
361# CONFIG_ATALK is not set
362# CONFIG_X25 is not set
363# CONFIG_LAPB is not set
364# CONFIG_ECONET is not set
365# CONFIG_WAN_ROUTER is not set
366
367#
368# QoS and/or fair queueing
369#
370# CONFIG_NET_SCHED is not set
371
372#
373# Network testing
374#
375# CONFIG_NET_PKTGEN is not set
376# CONFIG_HAMRADIO is not set
377# CONFIG_IRDA is not set
378# CONFIG_BT is not set
379# CONFIG_AF_RXRPC is not set
380
381#
382# Wireless
383#
384# CONFIG_CFG80211 is not set
385# CONFIG_WIRELESS_EXT is not set
386# CONFIG_MAC80211 is not set
387# CONFIG_IEEE80211 is not set
388# CONFIG_RFKILL is not set
389# CONFIG_NET_9P is not set
390
391#
392# Device Drivers
393#
394
395#
396# Generic Driver Options
397#
398CONFIG_STANDALONE=y
399CONFIG_PREVENT_FIRMWARE_BUILD=y
400# CONFIG_FW_LOADER is not set
401# CONFIG_DEBUG_DRIVER is not set
402# CONFIG_DEBUG_DEVRES is not set
403# CONFIG_SYS_HYPERVISOR is not set
404# CONFIG_CONNECTOR is not set
405CONFIG_MTD=y
406# CONFIG_MTD_DEBUG is not set
407CONFIG_MTD_CONCAT=y
408CONFIG_MTD_PARTITIONS=y
409# CONFIG_MTD_REDBOOT_PARTS is not set
410CONFIG_MTD_CMDLINE_PARTS=y
411# CONFIG_MTD_AFS_PARTS is not set
412
413#
414# User Modules And Translation Layers
415#
416CONFIG_MTD_CHAR=y
417CONFIG_MTD_BLKDEVS=y
418CONFIG_MTD_BLOCK=y
419# CONFIG_FTL is not set
420# CONFIG_NFTL is not set
421# CONFIG_INFTL is not set
422# CONFIG_RFD_FTL is not set
423# CONFIG_SSFDC is not set
424
425#
426# RAM/ROM/Flash chip drivers
427#
428CONFIG_MTD_CFI=y
429# CONFIG_MTD_JEDECPROBE is not set
430CONFIG_MTD_GEN_PROBE=y
431# CONFIG_MTD_CFI_ADV_OPTIONS is not set
432CONFIG_MTD_MAP_BANK_WIDTH_1=y
433CONFIG_MTD_MAP_BANK_WIDTH_2=y
434CONFIG_MTD_MAP_BANK_WIDTH_4=y
435# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
436# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
437# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
438CONFIG_MTD_CFI_I1=y
439CONFIG_MTD_CFI_I2=y
440# CONFIG_MTD_CFI_I4 is not set
441# CONFIG_MTD_CFI_I8 is not set
442CONFIG_MTD_CFI_INTELEXT=y
443# CONFIG_MTD_CFI_AMDSTD is not set
444# CONFIG_MTD_CFI_STAA is not set
445CONFIG_MTD_CFI_UTIL=y
446# CONFIG_MTD_RAM is not set
447# CONFIG_MTD_ROM is not set
448# CONFIG_MTD_ABSENT is not set
449
450#
451# Mapping drivers for chip access
452#
453# CONFIG_MTD_COMPLEX_MAPPINGS is not set
454# CONFIG_MTD_PHYSMAP is not set
455# CONFIG_MTD_ARM_INTEGRATOR is not set
456CONFIG_MTD_OMAP_NOR=y
457# CONFIG_MTD_PLATRAM is not set
458
459#
460# Self-contained MTD device drivers
461#
462# CONFIG_MTD_DATAFLASH is not set
463# CONFIG_MTD_M25P80 is not set
464# CONFIG_MTD_SLRAM is not set
465# CONFIG_MTD_PHRAM is not set
466# CONFIG_MTD_MTDRAM is not set
467# CONFIG_MTD_BLOCK2MTD is not set
468
469#
470# Disk-On-Chip Device Drivers
471#
472# CONFIG_MTD_DOC2000 is not set
473# CONFIG_MTD_DOC2001 is not set
474# CONFIG_MTD_DOC2001PLUS is not set
475# CONFIG_MTD_NAND is not set
476CONFIG_MTD_ONENAND=y
477CONFIG_MTD_ONENAND_VERIFY_WRITE=y
478# CONFIG_MTD_ONENAND_GENERIC is not set
479CONFIG_MTD_ONENAND_OMAP2=y
480# CONFIG_MTD_ONENAND_OTP is not set
481
482#
483# UBI - Unsorted block images
484#
485# CONFIG_MTD_UBI is not set
486# CONFIG_PARPORT is not set
487CONFIG_BLK_DEV=y
488# CONFIG_BLK_DEV_COW_COMMON is not set
489CONFIG_BLK_DEV_LOOP=y
490# CONFIG_BLK_DEV_CRYPTOLOOP is not set
491# CONFIG_BLK_DEV_NBD is not set
492# CONFIG_BLK_DEV_UB is not set
493CONFIG_BLK_DEV_RAM=y
494CONFIG_BLK_DEV_RAM_COUNT=16
495CONFIG_BLK_DEV_RAM_SIZE=16384
496CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
497# CONFIG_CDROM_PKTCDVD is not set
498# CONFIG_ATA_OVER_ETH is not set
499
500#
501# SCSI device support
502#
503# CONFIG_RAID_ATTRS is not set
504CONFIG_SCSI=m
505CONFIG_SCSI_DMA=y
506# CONFIG_SCSI_TGT is not set
507# CONFIG_SCSI_NETLINK is not set
508CONFIG_SCSI_PROC_FS=y
509
510#
511# SCSI support type (disk, tape, CD-ROM)
512#
513CONFIG_BLK_DEV_SD=m
514# CONFIG_CHR_DEV_ST is not set
515# CONFIG_CHR_DEV_OSST is not set
516# CONFIG_BLK_DEV_SR is not set
517CONFIG_CHR_DEV_SG=m
518# CONFIG_CHR_DEV_SCH is not set
519
520#
521# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
522#
523# CONFIG_SCSI_MULTI_LUN is not set
524# CONFIG_SCSI_CONSTANTS is not set
525# CONFIG_SCSI_LOGGING is not set
526# CONFIG_SCSI_SCAN_ASYNC is not set
527CONFIG_SCSI_WAIT_SCAN=m
528
529#
530# SCSI Transports
531#
532# CONFIG_SCSI_SPI_ATTRS is not set
533# CONFIG_SCSI_FC_ATTRS is not set
534# CONFIG_SCSI_ISCSI_ATTRS is not set
535# CONFIG_SCSI_SAS_LIBSAS is not set
536CONFIG_SCSI_LOWLEVEL=y
537# CONFIG_ISCSI_TCP is not set
538# CONFIG_SCSI_DEBUG is not set
539# CONFIG_ATA is not set
540# CONFIG_MD is not set
541CONFIG_NETDEVICES=y
542# CONFIG_NETDEVICES_MULTIQUEUE is not set
543# CONFIG_DUMMY is not set
544# CONFIG_BONDING is not set
545# CONFIG_MACVLAN is not set
546# CONFIG_EQUALIZER is not set
547# CONFIG_TUN is not set
548# CONFIG_PHYLIB is not set
549CONFIG_NET_ETHERNET=y
550CONFIG_MII=y
551# CONFIG_AX88796 is not set
552CONFIG_SMC91X=y
553# CONFIG_DM9000 is not set
554CONFIG_NETDEV_1000=y
555CONFIG_NETDEV_10000=y
556
557#
558# Wireless LAN
559#
560# CONFIG_WLAN_PRE80211 is not set
561# CONFIG_WLAN_80211 is not set
562
563#
564# USB Network Adapters
565#
566# CONFIG_USB_CATC is not set
567# CONFIG_USB_KAWETH is not set
568# CONFIG_USB_PEGASUS is not set
569# CONFIG_USB_RTL8150 is not set
570# CONFIG_USB_USBNET_MII is not set
571# CONFIG_USB_USBNET is not set
572# CONFIG_WAN is not set
573# CONFIG_PPP is not set
574# CONFIG_SLIP is not set
575# CONFIG_SHAPER is not set
576# CONFIG_NETCONSOLE is not set
577# CONFIG_NETPOLL is not set
578# CONFIG_NET_POLL_CONTROLLER is not set
579# CONFIG_ISDN is not set
580
581#
582# Input device support
583#
584CONFIG_INPUT=y
585# CONFIG_INPUT_FF_MEMLESS is not set
586# CONFIG_INPUT_POLLDEV is not set
587
588#
589# Userland interfaces
590#
591# CONFIG_INPUT_MOUSEDEV is not set
592# CONFIG_INPUT_JOYDEV is not set
593# CONFIG_INPUT_TSDEV is not set
594CONFIG_INPUT_EVDEV=y
595# CONFIG_INPUT_EVBUG is not set
596
597#
598# Input Device Drivers
599#
600CONFIG_INPUT_KEYBOARD=y
601# CONFIG_KEYBOARD_ATKBD is not set
602# CONFIG_KEYBOARD_SUNKBD is not set
603# CONFIG_KEYBOARD_LKKBD is not set
604# CONFIG_KEYBOARD_XTKBD is not set
605# CONFIG_KEYBOARD_NEWTON is not set
606# CONFIG_KEYBOARD_STOWAWAY is not set
607# CONFIG_KEYBOARD_OMAP is not set
608CONFIG_KEYBOARD_TWL4030=y
609# CONFIG_KEYBOARD_GPIO is not set
610# CONFIG_INPUT_MOUSE is not set
611# CONFIG_INPUT_JOYSTICK is not set
612# CONFIG_INPUT_TABLET is not set
613CONFIG_INPUT_TOUCHSCREEN=y
614CONFIG_TOUCHSCREEN_ADS7846=y
615# CONFIG_TOUCHSCREEN_FUJITSU is not set
616# CONFIG_TOUCHSCREEN_GUNZE is not set
617# CONFIG_TOUCHSCREEN_ELO is not set
618# CONFIG_TOUCHSCREEN_MTOUCH is not set
619# CONFIG_TOUCHSCREEN_MK712 is not set
620# CONFIG_TOUCHSCREEN_PENMOUNT is not set
621# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
622# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
623# CONFIG_TOUCHSCREEN_UCB1400 is not set
624# CONFIG_TOUCHSCREEN_TSC2102 is not set
625# CONFIG_TOUCHSCREEN_TSC210X is not set
626# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
627# CONFIG_INPUT_MISC is not set
628
629#
630# Hardware I/O ports
631#
632# CONFIG_SERIO is not set
633# CONFIG_GAMEPORT is not set
634
635#
636# Character devices
637#
638CONFIG_VT=y
639CONFIG_VT_CONSOLE=y
640CONFIG_HW_CONSOLE=y
641# CONFIG_VT_HW_CONSOLE_BINDING is not set
642# CONFIG_SERIAL_NONSTANDARD is not set
643
644#
645# Serial drivers
646#
647CONFIG_SERIAL_8250=y
648CONFIG_SERIAL_8250_CONSOLE=y
649CONFIG_SERIAL_8250_NR_UARTS=32
650CONFIG_SERIAL_8250_RUNTIME_UARTS=4
651CONFIG_SERIAL_8250_EXTENDED=y
652CONFIG_SERIAL_8250_MANY_PORTS=y
653CONFIG_SERIAL_8250_SHARE_IRQ=y
654CONFIG_SERIAL_8250_DETECT_IRQ=y
655CONFIG_SERIAL_8250_RSA=y
656
657#
658# Non-8250 serial port support
659#
660CONFIG_SERIAL_CORE=y
661CONFIG_SERIAL_CORE_CONSOLE=y
662CONFIG_UNIX98_PTYS=y
663# CONFIG_LEGACY_PTYS is not set
664# CONFIG_IPMI_HANDLER is not set
665CONFIG_WATCHDOG=y
666CONFIG_WATCHDOG_NOWAYOUT=y
667
668#
669# Watchdog Device Drivers
670#
671# CONFIG_SOFT_WATCHDOG is not set
672CONFIG_OMAP_WATCHDOG=y
673
674#
675# USB-based Watchdog Cards
676#
677# CONFIG_USBPCWATCHDOG is not set
678CONFIG_HW_RANDOM=y
679CONFIG_HW_RANDOM_OMAP=y
680# CONFIG_NVRAM is not set
681# CONFIG_R3964 is not set
682# CONFIG_RAW_DRIVER is not set
683# CONFIG_TCG_TPM is not set
684CONFIG_I2C=y
685CONFIG_I2C_BOARDINFO=y
686CONFIG_I2C_CHARDEV=y
687
688#
689# I2C Algorithms
690#
691# CONFIG_I2C_ALGOBIT is not set
692# CONFIG_I2C_ALGOPCF is not set
693# CONFIG_I2C_ALGOPCA is not set
694
695#
696# I2C Hardware Bus support
697#
698# CONFIG_I2C_GPIO is not set
699# CONFIG_I2C_OCORES is not set
700CONFIG_I2C_OMAP=y
701# CONFIG_I2C_PARPORT_LIGHT is not set
702# CONFIG_I2C_SIMTEC is not set
703# CONFIG_I2C_TAOS_EVM is not set
704# CONFIG_I2C_STUB is not set
705# CONFIG_I2C_TINY_USB is not set
706
707#
708# Miscellaneous I2C Chip support
709#
710# CONFIG_SENSORS_DS1337 is not set
711# CONFIG_SENSORS_DS1374 is not set
712# CONFIG_DS1682 is not set
713# CONFIG_SENSORS_EEPROM is not set
714# CONFIG_SENSORS_PCF8574 is not set
715# CONFIG_SENSORS_PCA9539 is not set
716# CONFIG_SENSORS_PCF8591 is not set
717# CONFIG_TPS65010 is not set
718# CONFIG_SENSORS_TLV320AIC23 is not set
719# CONFIG_GPIOEXPANDER_OMAP is not set
720CONFIG_TWL4030_CORE=y
721CONFIG_TWL4030_GPIO=y
722# CONFIG_SENSORS_MAX6875 is not set
723# CONFIG_SENSORS_TSL2550 is not set
724# CONFIG_MENELAUS is not set
725# CONFIG_I2C_DEBUG_CORE is not set
726# CONFIG_I2C_DEBUG_ALGO is not set
727# CONFIG_I2C_DEBUG_BUS is not set
728# CONFIG_I2C_DEBUG_CHIP is not set
729
730#
731# SPI support
732#
733CONFIG_SPI=y
734# CONFIG_SPI_DEBUG is not set
735CONFIG_SPI_MASTER=y
736
737#
738# SPI Master Controller Drivers
739#
740# CONFIG_SPI_BITBANG is not set
741# CONFIG_SPI_OMAP24XX is not set
742
743#
744# SPI Protocol Masters
745#
746# CONFIG_SPI_AT25 is not set
747# CONFIG_SPI_TSC2101 is not set
748# CONFIG_SPI_TSC2102 is not set
749# CONFIG_SPI_TSC210X is not set
750# CONFIG_SPI_TSC2301 is not set
751# CONFIG_SPI_SPIDEV is not set
752# CONFIG_SPI_TLE62X0 is not set
753# CONFIG_W1 is not set
754# CONFIG_HWMON is not set
755CONFIG_MISC_DEVICES=y
756# CONFIG_EEPROM_93CX6 is not set
757
758#
759# Multifunction device drivers
760#
761# CONFIG_MFD_SM501 is not set
762# CONFIG_NEW_LEDS is not set
763
764#
765# Multimedia devices
766#
767# CONFIG_VIDEO_DEV is not set
768# CONFIG_DVB_CORE is not set
769CONFIG_DAB=y
770# CONFIG_USB_DABUSB is not set
771
772#
773# Graphics support
774#
775# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
776
777#
778# Display device support
779#
780# CONFIG_DISPLAY_SUPPORT is not set
781# CONFIG_VGASTATE is not set
782CONFIG_VIDEO_OUTPUT_CONTROL=m
783CONFIG_FB=y
784CONFIG_FIRMWARE_EDID=y
785# CONFIG_FB_DDC is not set
786# CONFIG_FB_CFB_FILLRECT is not set
787# CONFIG_FB_CFB_COPYAREA is not set
788# CONFIG_FB_CFB_IMAGEBLIT is not set
789# CONFIG_FB_SYS_FILLRECT is not set
790# CONFIG_FB_SYS_COPYAREA is not set
791# CONFIG_FB_SYS_IMAGEBLIT is not set
792# CONFIG_FB_SYS_FOPS is not set
793CONFIG_FB_DEFERRED_IO=y
794# CONFIG_FB_SVGALIB is not set
795# CONFIG_FB_MACMODES is not set
796# CONFIG_FB_BACKLIGHT is not set
797# CONFIG_FB_MODE_HELPERS is not set
798# CONFIG_FB_TILEBLITTING is not set
799
800#
801# Frame buffer hardware drivers
802#
803# CONFIG_FB_S1D13XXX is not set
804CONFIG_FB_OMAP=y
805# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
806# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
807CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
808# CONFIG_FB_VIRTUAL is not set
809
810#
811# Console display driver support
812#
813# CONFIG_VGA_CONSOLE is not set
814CONFIG_DUMMY_CONSOLE=y
815CONFIG_FRAMEBUFFER_CONSOLE=y
816# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
817# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
818# CONFIG_FONTS is not set
819CONFIG_FONT_8x8=y
820CONFIG_FONT_8x16=y
821CONFIG_LOGO=y
822# CONFIG_LOGO_LINUX_MONO is not set
823# CONFIG_LOGO_LINUX_VGA16 is not set
824CONFIG_LOGO_LINUX_CLUT224=y
825
826#
827# Sound
828#
829# CONFIG_SOUND is not set
830CONFIG_HID_SUPPORT=y
831CONFIG_HID=y
832# CONFIG_HID_DEBUG is not set
833
834#
835# USB Input Devices
836#
837CONFIG_USB_HID=m
838# CONFIG_USB_HIDINPUT_POWERBOOK is not set
839# CONFIG_HID_FF is not set
840# CONFIG_USB_HIDDEV is not set
841
842#
843# USB HID Boot Protocol drivers
844#
845# CONFIG_USB_KBD is not set
846# CONFIG_USB_MOUSE is not set
847CONFIG_USB_SUPPORT=y
848CONFIG_USB_ARCH_HAS_HCD=y
849CONFIG_USB_ARCH_HAS_OHCI=y
850# CONFIG_USB_ARCH_HAS_EHCI is not set
851CONFIG_USB=m
852# CONFIG_USB_DEBUG is not set
853
854#
855# Miscellaneous USB options
856#
857# CONFIG_USB_DEVICEFS is not set
858# CONFIG_USB_DEVICE_CLASS is not set
859# CONFIG_USB_DYNAMIC_MINORS is not set
860CONFIG_USB_SUSPEND=y
861# CONFIG_USB_PERSIST is not set
862CONFIG_USB_OTG=y
863CONFIG_USB_OTG_WHITELIST=y
864# CONFIG_USB_OTG_BLACKLIST_HUB is not set
865
866#
867# USB Host Controller Drivers
868#
869# CONFIG_USB_ISP116X_HCD is not set
870# CONFIG_USB_OHCI_HCD is not set
871# CONFIG_USB_SL811_HCD is not set
872# CONFIG_USB_R8A66597_HCD is not set
873CONFIG_USB_MUSB_HDRC=m
874CONFIG_USB_MUSB_SOC=y
875
876#
877# OMAP 243x high speed USB support
878#
879# CONFIG_USB_MUSB_HOST is not set
880# CONFIG_USB_MUSB_PERIPHERAL is not set
881CONFIG_USB_MUSB_OTG=y
882CONFIG_USB_GADGET_MUSB_HDRC=y
883CONFIG_USB_MUSB_HDRC_HCD=y
884# CONFIG_MUSB_PIO_ONLY is not set
885CONFIG_USB_INVENTRA_DMA=y
886# CONFIG_USB_TI_CPPI_DMA is not set
887CONFIG_USB_MUSB_LOGLEVEL=0
888
889#
890# USB Device Class drivers
891#
892# CONFIG_USB_ACM is not set
893# CONFIG_USB_PRINTER is not set
894
895#
896# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
897#
898
899#
900# may also be needed; see USB_STORAGE Help for more information
901#
902CONFIG_USB_STORAGE=m
903# CONFIG_USB_STORAGE_DEBUG is not set
904# CONFIG_USB_STORAGE_DATAFAB is not set
905# CONFIG_USB_STORAGE_FREECOM is not set
906# CONFIG_USB_STORAGE_DPCM is not set
907# CONFIG_USB_STORAGE_USBAT is not set
908# CONFIG_USB_STORAGE_SDDR09 is not set
909# CONFIG_USB_STORAGE_SDDR55 is not set
910# CONFIG_USB_STORAGE_JUMPSHOT is not set
911# CONFIG_USB_STORAGE_ALAUDA is not set
912# CONFIG_USB_STORAGE_KARMA is not set
913# CONFIG_USB_LIBUSUAL is not set
914
915#
916# USB Imaging devices
917#
918# CONFIG_USB_MDC800 is not set
919# CONFIG_USB_MICROTEK is not set
920CONFIG_USB_MON=y
921
922#
923# USB port drivers
924#
925
926#
927# USB Serial Converter support
928#
929# CONFIG_USB_SERIAL is not set
930
931#
932# USB Miscellaneous drivers
933#
934# CONFIG_USB_EMI62 is not set
935# CONFIG_USB_EMI26 is not set
936# CONFIG_USB_ADUTUX is not set
937# CONFIG_USB_AUERSWALD is not set
938# CONFIG_USB_RIO500 is not set
939# CONFIG_USB_LEGOTOWER is not set
940# CONFIG_USB_LCD is not set
941# CONFIG_USB_BERRY_CHARGE is not set
942# CONFIG_USB_LED is not set
943# CONFIG_USB_CYPRESS_CY7C63 is not set
944# CONFIG_USB_CYTHERM is not set
945# CONFIG_USB_PHIDGET is not set
946# CONFIG_USB_IDMOUSE is not set
947# CONFIG_USB_FTDI_ELAN is not set
948# CONFIG_USB_APPLEDISPLAY is not set
949# CONFIG_USB_LD is not set
950# CONFIG_USB_TRANCEVIBRATOR is not set
951# CONFIG_USB_IOWARRIOR is not set
952
953#
954# USB DSL modem support
955#
956
957#
958# USB Gadget Support
959#
960CONFIG_USB_GADGET=m
961# CONFIG_USB_GADGET_DEBUG is not set
962CONFIG_USB_GADGET_DEBUG_FILES=y
963CONFIG_USB_GADGET_SELECTED=y
964# CONFIG_USB_GADGET_AMD5536UDC is not set
965# CONFIG_USB_GADGET_FSL_USB2 is not set
966# CONFIG_USB_GADGET_NET2280 is not set
967# CONFIG_USB_GADGET_PXA2XX is not set
968# CONFIG_USB_GADGET_M66592 is not set
969# CONFIG_USB_GADGET_GOKU is not set
970# CONFIG_USB_GADGET_LH7A40X is not set
971# CONFIG_USB_GADGET_OMAP is not set
972# CONFIG_USB_GADGET_S3C2410 is not set
973# CONFIG_USB_GADGET_AT91 is not set
974# CONFIG_USB_GADGET_DUMMY_HCD is not set
975CONFIG_USB_GADGET_DUALSPEED=y
976CONFIG_USB_ZERO=m
977# CONFIG_USB_ZERO_HNPTEST is not set
978CONFIG_USB_ETH=m
979CONFIG_USB_ETH_RNDIS=y
980CONFIG_USB_GADGETFS=m
981CONFIG_USB_FILE_STORAGE=m
982# CONFIG_USB_FILE_STORAGE_TEST is not set
983CONFIG_USB_G_SERIAL=m
984# CONFIG_USB_MIDI_GADGET is not set
985CONFIG_MMC=y
986# CONFIG_MMC_DEBUG is not set
987# CONFIG_MMC_UNSAFE_RESUME is not set
988
989#
990# MMC/SD Card Drivers
991#
992CONFIG_MMC_BLOCK=y
993CONFIG_MMC_BLOCK_BOUNCE=y
994
995#
996# MMC/SD Host Controller Drivers
997#
998CONFIG_MMC_OMAP_HS=y
999CONFIG_RTC_LIB=y
1000# CONFIG_RTC_CLASS is not set
1001
1002#
1003# DMA Engine support
1004#
1005# CONFIG_DMA_ENGINE is not set
1006
1007#
1008# DMA Clients
1009#
1010
1011#
1012# DMA Devices
1013#
1014
1015#
1016# CBUS support
1017#
1018# CONFIG_CBUS is not set
1019
1020#
1021# File systems
1022#
1023CONFIG_EXT2_FS=y
1024# CONFIG_EXT2_FS_XATTR is not set
1025# CONFIG_EXT2_FS_XIP is not set
1026CONFIG_EXT3_FS=y
1027# CONFIG_EXT3_FS_XATTR is not set
1028# CONFIG_EXT4DEV_FS is not set
1029CONFIG_JBD=y
1030# CONFIG_JBD_DEBUG is not set
1031# CONFIG_REISERFS_FS is not set
1032# CONFIG_JFS_FS is not set
1033# CONFIG_FS_POSIX_ACL is not set
1034# CONFIG_XFS_FS is not set
1035# CONFIG_GFS2_FS is not set
1036# CONFIG_OCFS2_FS is not set
1037# CONFIG_MINIX_FS is not set
1038# CONFIG_ROMFS_FS is not set
1039CONFIG_INOTIFY=y
1040CONFIG_INOTIFY_USER=y
1041CONFIG_QUOTA=y
1042# CONFIG_QFMT_V1 is not set
1043CONFIG_QFMT_V2=y
1044CONFIG_QUOTACTL=y
1045CONFIG_DNOTIFY=y
1046# CONFIG_AUTOFS_FS is not set
1047# CONFIG_AUTOFS4_FS is not set
1048# CONFIG_FUSE_FS is not set
1049
1050#
1051# CD-ROM/DVD Filesystems
1052#
1053# CONFIG_ISO9660_FS is not set
1054# CONFIG_UDF_FS is not set
1055
1056#
1057# DOS/FAT/NT Filesystems
1058#
1059CONFIG_FAT_FS=y
1060CONFIG_MSDOS_FS=y
1061CONFIG_VFAT_FS=y
1062CONFIG_FAT_DEFAULT_CODEPAGE=437
1063CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1064# CONFIG_NTFS_FS is not set
1065
1066#
1067# Pseudo filesystems
1068#
1069CONFIG_PROC_FS=y
1070CONFIG_PROC_SYSCTL=y
1071CONFIG_SYSFS=y
1072CONFIG_TMPFS=y
1073# CONFIG_TMPFS_POSIX_ACL is not set
1074# CONFIG_HUGETLB_PAGE is not set
1075CONFIG_RAMFS=y
1076# CONFIG_CONFIGFS_FS is not set
1077
1078#
1079# Miscellaneous filesystems
1080#
1081# CONFIG_ADFS_FS is not set
1082# CONFIG_AFFS_FS is not set
1083# CONFIG_HFS_FS is not set
1084# CONFIG_HFSPLUS_FS is not set
1085# CONFIG_BEFS_FS is not set
1086# CONFIG_BFS_FS is not set
1087# CONFIG_EFS_FS is not set
1088CONFIG_JFFS2_FS=y
1089CONFIG_JFFS2_FS_DEBUG=0
1090CONFIG_JFFS2_FS_WRITEBUFFER=y
1091# CONFIG_JFFS2_SUMMARY is not set
1092# CONFIG_JFFS2_FS_XATTR is not set
1093CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1094CONFIG_JFFS2_ZLIB=y
1095CONFIG_JFFS2_RTIME=y
1096# CONFIG_JFFS2_RUBIN is not set
1097# CONFIG_JFFS2_CMODE_NONE is not set
1098CONFIG_JFFS2_CMODE_PRIORITY=y
1099# CONFIG_JFFS2_CMODE_SIZE is not set
1100# CONFIG_CRAMFS is not set
1101# CONFIG_VXFS_FS is not set
1102# CONFIG_HPFS_FS is not set
1103# CONFIG_QNX4FS_FS is not set
1104# CONFIG_SYSV_FS is not set
1105# CONFIG_UFS_FS is not set
1106
1107#
1108# Network File Systems
1109#
1110CONFIG_NFS_FS=y
1111CONFIG_NFS_V3=y
1112# CONFIG_NFS_V3_ACL is not set
1113# CONFIG_NFS_V4 is not set
1114# CONFIG_NFS_DIRECTIO is not set
1115# CONFIG_NFSD is not set
1116CONFIG_ROOT_NFS=y
1117CONFIG_LOCKD=y
1118CONFIG_LOCKD_V4=y
1119CONFIG_NFS_COMMON=y
1120CONFIG_SUNRPC=y
1121# CONFIG_SUNRPC_BIND34 is not set
1122# CONFIG_RPCSEC_GSS_KRB5 is not set
1123# CONFIG_RPCSEC_GSS_SPKM3 is not set
1124# CONFIG_SMB_FS is not set
1125# CONFIG_CIFS is not set
1126# CONFIG_NCP_FS is not set
1127# CONFIG_CODA_FS is not set
1128# CONFIG_AFS_FS is not set
1129
1130#
1131# Partition Types
1132#
1133CONFIG_PARTITION_ADVANCED=y
1134# CONFIG_ACORN_PARTITION is not set
1135# CONFIG_OSF_PARTITION is not set
1136# CONFIG_AMIGA_PARTITION is not set
1137# CONFIG_ATARI_PARTITION is not set
1138# CONFIG_MAC_PARTITION is not set
1139CONFIG_MSDOS_PARTITION=y
1140# CONFIG_BSD_DISKLABEL is not set
1141# CONFIG_MINIX_SUBPARTITION is not set
1142# CONFIG_SOLARIS_X86_PARTITION is not set
1143# CONFIG_UNIXWARE_DISKLABEL is not set
1144# CONFIG_LDM_PARTITION is not set
1145# CONFIG_SGI_PARTITION is not set
1146# CONFIG_ULTRIX_PARTITION is not set
1147# CONFIG_SUN_PARTITION is not set
1148# CONFIG_KARMA_PARTITION is not set
1149# CONFIG_EFI_PARTITION is not set
1150# CONFIG_SYSV68_PARTITION is not set
1151
1152#
1153# Native Language Support
1154#
1155CONFIG_NLS=y
1156CONFIG_NLS_DEFAULT="iso8859-1"
1157CONFIG_NLS_CODEPAGE_437=y
1158# CONFIG_NLS_CODEPAGE_737 is not set
1159# CONFIG_NLS_CODEPAGE_775 is not set
1160# CONFIG_NLS_CODEPAGE_850 is not set
1161# CONFIG_NLS_CODEPAGE_852 is not set
1162# CONFIG_NLS_CODEPAGE_855 is not set
1163# CONFIG_NLS_CODEPAGE_857 is not set
1164# CONFIG_NLS_CODEPAGE_860 is not set
1165# CONFIG_NLS_CODEPAGE_861 is not set
1166# CONFIG_NLS_CODEPAGE_862 is not set
1167# CONFIG_NLS_CODEPAGE_863 is not set
1168# CONFIG_NLS_CODEPAGE_864 is not set
1169# CONFIG_NLS_CODEPAGE_865 is not set
1170# CONFIG_NLS_CODEPAGE_866 is not set
1171# CONFIG_NLS_CODEPAGE_869 is not set
1172# CONFIG_NLS_CODEPAGE_936 is not set
1173# CONFIG_NLS_CODEPAGE_950 is not set
1174# CONFIG_NLS_CODEPAGE_932 is not set
1175# CONFIG_NLS_CODEPAGE_949 is not set
1176# CONFIG_NLS_CODEPAGE_874 is not set
1177# CONFIG_NLS_ISO8859_8 is not set
1178# CONFIG_NLS_CODEPAGE_1250 is not set
1179# CONFIG_NLS_CODEPAGE_1251 is not set
1180# CONFIG_NLS_ASCII is not set
1181# CONFIG_NLS_ISO8859_1 is not set
1182# CONFIG_NLS_ISO8859_2 is not set
1183# CONFIG_NLS_ISO8859_3 is not set
1184# CONFIG_NLS_ISO8859_4 is not set
1185# CONFIG_NLS_ISO8859_5 is not set
1186# CONFIG_NLS_ISO8859_6 is not set
1187# CONFIG_NLS_ISO8859_7 is not set
1188# CONFIG_NLS_ISO8859_9 is not set
1189# CONFIG_NLS_ISO8859_13 is not set
1190# CONFIG_NLS_ISO8859_14 is not set
1191# CONFIG_NLS_ISO8859_15 is not set
1192# CONFIG_NLS_KOI8_R is not set
1193# CONFIG_NLS_KOI8_U is not set
1194# CONFIG_NLS_UTF8 is not set
1195
1196#
1197# Distributed Lock Manager
1198#
1199# CONFIG_DLM is not set
1200
1201#
1202# Profiling support
1203#
1204# CONFIG_PROFILING is not set
1205
1206#
1207# Kernel hacking
1208#
1209# CONFIG_PRINTK_TIME is not set
1210CONFIG_ENABLE_MUST_CHECK=y
1211CONFIG_MAGIC_SYSRQ=y
1212# CONFIG_UNUSED_SYMBOLS is not set
1213# CONFIG_DEBUG_FS is not set
1214# CONFIG_HEADERS_CHECK is not set
1215CONFIG_DEBUG_KERNEL=y
1216# CONFIG_DEBUG_SHIRQ is not set
1217CONFIG_DETECT_SOFTLOCKUP=y
1218CONFIG_SCHED_DEBUG=y
1219# CONFIG_SCHEDSTATS is not set
1220CONFIG_TIMER_STATS=y
1221# CONFIG_DEBUG_SLAB is not set
1222CONFIG_DEBUG_PREEMPT=y
1223# CONFIG_DEBUG_RT_MUTEXES is not set
1224# CONFIG_RT_MUTEX_TESTER is not set
1225# CONFIG_DEBUG_SPINLOCK is not set
1226CONFIG_DEBUG_MUTEXES=y
1227# CONFIG_DEBUG_LOCK_ALLOC is not set
1228# CONFIG_PROVE_LOCKING is not set
1229# CONFIG_LOCK_STAT is not set
1230# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1231# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1232# CONFIG_DEBUG_KOBJECT is not set
1233# CONFIG_DEBUG_BUGVERBOSE is not set
1234# CONFIG_DEBUG_INFO is not set
1235# CONFIG_DEBUG_VM is not set
1236# CONFIG_DEBUG_LIST is not set
1237CONFIG_FRAME_POINTER=y
1238CONFIG_FORCED_INLINING=y
1239# CONFIG_RCU_TORTURE_TEST is not set
1240# CONFIG_FAULT_INJECTION is not set
1241# CONFIG_DEBUG_USER is not set
1242# CONFIG_DEBUG_ERRORS is not set
1243# CONFIG_DEBUG_LL is not set
1244
1245#
1246# Security options
1247#
1248# CONFIG_KEYS is not set
1249# CONFIG_SECURITY is not set
1250CONFIG_CRYPTO=y
1251CONFIG_CRYPTO_ALGAPI=y
1252CONFIG_CRYPTO_BLKCIPHER=y
1253CONFIG_CRYPTO_MANAGER=y
1254# CONFIG_CRYPTO_HMAC is not set
1255# CONFIG_CRYPTO_XCBC is not set
1256# CONFIG_CRYPTO_NULL is not set
1257# CONFIG_CRYPTO_MD4 is not set
1258CONFIG_CRYPTO_MD5=y
1259# CONFIG_CRYPTO_SHA1 is not set
1260# CONFIG_CRYPTO_SHA256 is not set
1261# CONFIG_CRYPTO_SHA512 is not set
1262# CONFIG_CRYPTO_WP512 is not set
1263# CONFIG_CRYPTO_TGR192 is not set
1264# CONFIG_CRYPTO_GF128MUL is not set
1265CONFIG_CRYPTO_ECB=m
1266CONFIG_CRYPTO_CBC=y
1267CONFIG_CRYPTO_PCBC=m
1268# CONFIG_CRYPTO_LRW is not set
1269# CONFIG_CRYPTO_CRYPTD is not set
1270CONFIG_CRYPTO_DES=y
1271# CONFIG_CRYPTO_FCRYPT is not set
1272# CONFIG_CRYPTO_BLOWFISH is not set
1273# CONFIG_CRYPTO_TWOFISH is not set
1274# CONFIG_CRYPTO_SERPENT is not set
1275# CONFIG_CRYPTO_AES is not set
1276# CONFIG_CRYPTO_CAST5 is not set
1277# CONFIG_CRYPTO_CAST6 is not set
1278# CONFIG_CRYPTO_TEA is not set
1279# CONFIG_CRYPTO_ARC4 is not set
1280# CONFIG_CRYPTO_KHAZAD is not set
1281# CONFIG_CRYPTO_ANUBIS is not set
1282# CONFIG_CRYPTO_DEFLATE is not set
1283# CONFIG_CRYPTO_MICHAEL_MIC is not set
1284# CONFIG_CRYPTO_CRC32C is not set
1285# CONFIG_CRYPTO_CAMELLIA is not set
1286# CONFIG_CRYPTO_TEST is not set
1287CONFIG_CRYPTO_HW=y
1288
1289#
1290# Library routines
1291#
1292CONFIG_BITREVERSE=y
1293CONFIG_CRC_CCITT=y
1294# CONFIG_CRC16 is not set
1295# CONFIG_CRC_ITU_T is not set
1296CONFIG_CRC32=y
1297# CONFIG_CRC7 is not set
1298CONFIG_LIBCRC32C=y
1299CONFIG_ZLIB_INFLATE=y
1300CONFIG_ZLIB_DEFLATE=y
1301CONFIG_PLIST=y
1302CONFIG_HAS_IOMEM=y
1303CONFIG_HAS_IOPORT=y
1304CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_apollon_2420_defconfig b/arch/arm/configs/omap_apollon_2420_defconfig
new file mode 100644
index 00000000000..bb39dfc72d6
--- /dev/null
+++ b/arch/arm/configs/omap_apollon_2420_defconfig
@@ -0,0 +1,962 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 12:07:29 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36# CONFIG_LOCALVERSION_AUTO is not set
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41CONFIG_BSD_PROCESS_ACCT=y
42# CONFIG_BSD_PROCESS_ACCT_V3 is not set
43# CONFIG_TASKSTATS is not set
44# CONFIG_USER_NS is not set
45# CONFIG_AUDIT is not set
46# CONFIG_IKCONFIG is not set
47CONFIG_LOG_BUF_SHIFT=14
48CONFIG_SYSFS_DEPRECATED=y
49# CONFIG_RELAY is not set
50# CONFIG_BLK_DEV_INITRD is not set
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53# CONFIG_EMBEDDED is not set
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_ALL is not set
58CONFIG_KALLSYMS_EXTRA_PASS=y
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y
79CONFIG_MODULE_UNLOAD=y
80# CONFIG_MODULE_FORCE_UNLOAD is not set
81# CONFIG_MODVERSIONS is not set
82# CONFIG_MODULE_SRCVERSION_ALL is not set
83CONFIG_KMOD=y
84CONFIG_BLOCK=y
85# CONFIG_LBD is not set
86# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set
88# CONFIG_BLK_DEV_BSG is not set
89
90#
91# IO Schedulers
92#
93CONFIG_IOSCHED_NOOP=y
94CONFIG_IOSCHED_AS=y
95CONFIG_IOSCHED_DEADLINE=y
96CONFIG_IOSCHED_CFQ=y
97# CONFIG_DEFAULT_AS is not set
98# CONFIG_DEFAULT_DEADLINE is not set
99CONFIG_DEFAULT_CFQ=y
100# CONFIG_DEFAULT_NOOP is not set
101CONFIG_DEFAULT_IOSCHED="cfq"
102
103#
104# System Type
105#
106# CONFIG_ARCH_AAEC2000 is not set
107# CONFIG_ARCH_INTEGRATOR is not set
108# CONFIG_ARCH_REALVIEW is not set
109# CONFIG_ARCH_VERSATILE is not set
110# CONFIG_ARCH_AT91 is not set
111# CONFIG_ARCH_CLPS7500 is not set
112# CONFIG_ARCH_CLPS711X is not set
113# CONFIG_ARCH_CO285 is not set
114# CONFIG_ARCH_EBSA110 is not set
115# CONFIG_ARCH_EP93XX is not set
116# CONFIG_ARCH_FOOTBRIDGE is not set
117# CONFIG_ARCH_NETX is not set
118# CONFIG_ARCH_H720X is not set
119# CONFIG_ARCH_IMX is not set
120# CONFIG_ARCH_IOP13XX is not set
121# CONFIG_ARCH_IOP32X is not set
122# CONFIG_ARCH_IOP33X is not set
123# CONFIG_ARCH_IXP23XX is not set
124# CONFIG_ARCH_IXP2000 is not set
125# CONFIG_ARCH_IXP4XX is not set
126# CONFIG_ARCH_L7200 is not set
127# CONFIG_ARCH_KS8695 is not set
128# CONFIG_ARCH_NS9XXX is not set
129# CONFIG_ARCH_MXC is not set
130# CONFIG_ARCH_PNX4008 is not set
131# CONFIG_ARCH_PXA is not set
132# CONFIG_ARCH_RPC is not set
133# CONFIG_ARCH_SA1100 is not set
134# CONFIG_ARCH_S3C2410 is not set
135# CONFIG_ARCH_SHARK is not set
136# CONFIG_ARCH_LH7A40X is not set
137# CONFIG_ARCH_DAVINCI is not set
138CONFIG_ARCH_OMAP=y
139
140#
141# TI OMAP Implementations
142#
143CONFIG_ARCH_OMAP_OTG=y
144# CONFIG_ARCH_OMAP1 is not set
145CONFIG_ARCH_OMAP2=y
146# CONFIG_ARCH_OMAP3 is not set
147
148#
149# OMAP Feature Selections
150#
151# CONFIG_OMAP_RESET_CLOCKS is not set
152# CONFIG_OMAP_BOOT_TAG is not set
153# CONFIG_OMAP_GPIO_SWITCH is not set
154CONFIG_OMAP_MUX=y
155# CONFIG_OMAP_MUX_DEBUG is not set
156CONFIG_OMAP_MUX_WARNINGS=y
157# CONFIG_OMAP_STI is not set
158# CONFIG_OMAP_MCBSP is not set
159# CONFIG_OMAP_MMU_FWK is not set
160# CONFIG_OMAP_MBOX_FWK is not set
161# CONFIG_OMAP_MPU_TIMER is not set
162CONFIG_OMAP_32K_TIMER=y
163CONFIG_OMAP_32K_TIMER_HZ=128
164CONFIG_OMAP_DM_TIMER=y
165CONFIG_OMAP_LL_DEBUG_UART1=y
166# CONFIG_OMAP_LL_DEBUG_UART2 is not set
167# CONFIG_OMAP_LL_DEBUG_UART3 is not set
168CONFIG_OMAP_SERIAL_WAKE=y
169# CONFIG_OMAP_DSP is not set
170# CONFIG_MACH_OMAP_GENERIC is not set
171
172#
173# OMAP Core Type
174#
175CONFIG_ARCH_OMAP24XX=y
176CONFIG_ARCH_OMAP2420=y
177# CONFIG_ARCH_OMAP2430 is not set
178
179#
180# OMAP Board Type
181#
182# CONFIG_MACH_NOKIA_N800 is not set
183# CONFIG_MACH_OMAP_H4 is not set
184CONFIG_MACH_OMAP_APOLLON=y
185# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
186# CONFIG_MACH_OMAP_2430SDP is not set
187
188#
189# Boot options
190#
191
192#
193# Power management
194#
195
196#
197# Processor Type
198#
199CONFIG_CPU_32=y
200CONFIG_CPU_V6=y
201# CONFIG_CPU_32v6K is not set
202CONFIG_CPU_32v6=y
203CONFIG_CPU_ABRT_EV6=y
204CONFIG_CPU_PABRT_NOIFAR=y
205CONFIG_CPU_CACHE_V6=y
206CONFIG_CPU_CACHE_VIPT=y
207CONFIG_CPU_COPY_V6=y
208CONFIG_CPU_TLB_V6=y
209CONFIG_CPU_HAS_ASID=y
210CONFIG_CPU_CP15=y
211CONFIG_CPU_CP15_MMU=y
212
213#
214# Processor Features
215#
216# CONFIG_ARM_THUMB is not set
217# CONFIG_CPU_ICACHE_DISABLE is not set
218# CONFIG_CPU_DCACHE_DISABLE is not set
219# CONFIG_CPU_BPREDICT_DISABLE is not set
220# CONFIG_OUTER_CACHE is not set
221
222#
223# Bus support
224#
225# CONFIG_PCI_SYSCALL is not set
226# CONFIG_ARCH_SUPPORTS_MSI is not set
227
228#
229# PCCARD (PCMCIA/CardBus) support
230#
231# CONFIG_PCCARD is not set
232
233#
234# Kernel Features
235#
236# CONFIG_TICK_ONESHOT is not set
237# CONFIG_NO_HZ is not set
238# CONFIG_HIGH_RES_TIMERS is not set
239CONFIG_PREEMPT=y
240CONFIG_HZ=128
241# CONFIG_AEABI is not set
242# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
243CONFIG_SELECT_MEMORY_MODEL=y
244CONFIG_FLATMEM_MANUAL=y
245# CONFIG_DISCONTIGMEM_MANUAL is not set
246# CONFIG_SPARSEMEM_MANUAL is not set
247CONFIG_FLATMEM=y
248CONFIG_FLAT_NODE_MEM_MAP=y
249# CONFIG_SPARSEMEM_STATIC is not set
250CONFIG_SPLIT_PTLOCK_CPUS=4
251# CONFIG_RESOURCES_64BIT is not set
252CONFIG_ZONE_DMA_FLAG=1
253CONFIG_BOUNCE=y
254CONFIG_VIRT_TO_BUS=y
255# CONFIG_LEDS is not set
256CONFIG_ALIGNMENT_TRAP=y
257
258#
259# Boot options
260#
261CONFIG_ZBOOT_ROM_TEXT=0x0
262CONFIG_ZBOOT_ROM_BSS=0x0
263CONFIG_CMDLINE="root=/dev/ram0 rw mem=128M console=ttyS0,115200n8 initrd=0x80600000,8M ramdisk_size=8192"
264# CONFIG_XIP_KERNEL is not set
265# CONFIG_KEXEC is not set
266
267#
268# CPU Frequency scaling
269#
270# CONFIG_CPU_FREQ is not set
271
272#
273# Floating point emulation
274#
275
276#
277# At least one emulation must be selected
278#
279# CONFIG_FPE_NWFPE is not set
280# CONFIG_FPE_FASTFPE is not set
281CONFIG_VFP=y
282
283#
284# Userspace binary formats
285#
286CONFIG_BINFMT_ELF=y
287# CONFIG_BINFMT_AOUT is not set
288# CONFIG_BINFMT_MISC is not set
289# CONFIG_ARTHUR is not set
290
291#
292# Power management options
293#
294# CONFIG_PM is not set
295CONFIG_SUSPEND_UP_POSSIBLE=y
296
297#
298# Networking
299#
300CONFIG_NET=y
301
302#
303# Networking options
304#
305CONFIG_PACKET=y
306# CONFIG_PACKET_MMAP is not set
307CONFIG_UNIX=y
308CONFIG_XFRM=y
309# CONFIG_XFRM_USER is not set
310# CONFIG_XFRM_SUB_POLICY is not set
311# CONFIG_XFRM_MIGRATE is not set
312# CONFIG_NET_KEY is not set
313CONFIG_INET=y
314# CONFIG_IP_MULTICAST is not set
315# CONFIG_IP_ADVANCED_ROUTER is not set
316CONFIG_IP_FIB_HASH=y
317CONFIG_IP_PNP=y
318CONFIG_IP_PNP_DHCP=y
319CONFIG_IP_PNP_BOOTP=y
320# CONFIG_IP_PNP_RARP is not set
321# CONFIG_NET_IPIP is not set
322# CONFIG_NET_IPGRE is not set
323# CONFIG_ARPD is not set
324# CONFIG_SYN_COOKIES is not set
325# CONFIG_INET_AH is not set
326# CONFIG_INET_ESP is not set
327# CONFIG_INET_IPCOMP is not set
328# CONFIG_INET_XFRM_TUNNEL is not set
329# CONFIG_INET_TUNNEL is not set
330CONFIG_INET_XFRM_MODE_TRANSPORT=y
331CONFIG_INET_XFRM_MODE_TUNNEL=y
332CONFIG_INET_XFRM_MODE_BEET=y
333CONFIG_INET_DIAG=y
334CONFIG_INET_TCP_DIAG=y
335# CONFIG_TCP_CONG_ADVANCED is not set
336CONFIG_TCP_CONG_CUBIC=y
337CONFIG_DEFAULT_TCP_CONG="cubic"
338# CONFIG_TCP_MD5SIG is not set
339# CONFIG_IPV6 is not set
340# CONFIG_INET6_XFRM_TUNNEL is not set
341# CONFIG_INET6_TUNNEL is not set
342# CONFIG_NETWORK_SECMARK is not set
343# CONFIG_NETFILTER is not set
344# CONFIG_IP_DCCP is not set
345# CONFIG_IP_SCTP is not set
346# CONFIG_TIPC is not set
347# CONFIG_ATM is not set
348# CONFIG_BRIDGE is not set
349# CONFIG_VLAN_8021Q is not set
350# CONFIG_DECNET is not set
351# CONFIG_LLC2 is not set
352# CONFIG_IPX is not set
353# CONFIG_ATALK is not set
354# CONFIG_X25 is not set
355# CONFIG_LAPB is not set
356# CONFIG_ECONET is not set
357# CONFIG_WAN_ROUTER is not set
358
359#
360# QoS and/or fair queueing
361#
362# CONFIG_NET_SCHED is not set
363
364#
365# Network testing
366#
367# CONFIG_NET_PKTGEN is not set
368# CONFIG_HAMRADIO is not set
369# CONFIG_IRDA is not set
370# CONFIG_BT is not set
371# CONFIG_AF_RXRPC is not set
372
373#
374# Wireless
375#
376# CONFIG_CFG80211 is not set
377# CONFIG_WIRELESS_EXT is not set
378# CONFIG_MAC80211 is not set
379# CONFIG_IEEE80211 is not set
380# CONFIG_RFKILL is not set
381# CONFIG_NET_9P is not set
382
383#
384# Device Drivers
385#
386
387#
388# Generic Driver Options
389#
390CONFIG_STANDALONE=y
391CONFIG_PREVENT_FIRMWARE_BUILD=y
392# CONFIG_FW_LOADER is not set
393# CONFIG_DEBUG_DRIVER is not set
394# CONFIG_DEBUG_DEVRES is not set
395# CONFIG_SYS_HYPERVISOR is not set
396# CONFIG_CONNECTOR is not set
397CONFIG_MTD=y
398# CONFIG_MTD_DEBUG is not set
399CONFIG_MTD_CONCAT=y
400CONFIG_MTD_PARTITIONS=y
401# CONFIG_MTD_REDBOOT_PARTS is not set
402CONFIG_MTD_CMDLINE_PARTS=y
403# CONFIG_MTD_AFS_PARTS is not set
404
405#
406# User Modules And Translation Layers
407#
408CONFIG_MTD_CHAR=y
409CONFIG_MTD_BLKDEVS=y
410CONFIG_MTD_BLOCK=y
411# CONFIG_FTL is not set
412# CONFIG_NFTL is not set
413# CONFIG_INFTL is not set
414# CONFIG_RFD_FTL is not set
415# CONFIG_SSFDC is not set
416
417#
418# RAM/ROM/Flash chip drivers
419#
420# CONFIG_MTD_CFI is not set
421# CONFIG_MTD_JEDECPROBE is not set
422CONFIG_MTD_MAP_BANK_WIDTH_1=y
423CONFIG_MTD_MAP_BANK_WIDTH_2=y
424CONFIG_MTD_MAP_BANK_WIDTH_4=y
425# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
426# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
427# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
428CONFIG_MTD_CFI_I1=y
429CONFIG_MTD_CFI_I2=y
430# CONFIG_MTD_CFI_I4 is not set
431# CONFIG_MTD_CFI_I8 is not set
432# CONFIG_MTD_RAM is not set
433# CONFIG_MTD_ROM is not set
434# CONFIG_MTD_ABSENT is not set
435
436#
437# Mapping drivers for chip access
438#
439# CONFIG_MTD_COMPLEX_MAPPINGS is not set
440# CONFIG_MTD_PLATRAM is not set
441
442#
443# Self-contained MTD device drivers
444#
445# CONFIG_MTD_DATAFLASH is not set
446# CONFIG_MTD_M25P80 is not set
447# CONFIG_MTD_SLRAM is not set
448# CONFIG_MTD_PHRAM is not set
449# CONFIG_MTD_MTDRAM is not set
450# CONFIG_MTD_BLOCK2MTD is not set
451
452#
453# Disk-On-Chip Device Drivers
454#
455# CONFIG_MTD_DOC2000 is not set
456# CONFIG_MTD_DOC2001 is not set
457# CONFIG_MTD_DOC2001PLUS is not set
458# CONFIG_MTD_NAND is not set
459CONFIG_MTD_ONENAND=y
460# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
461CONFIG_MTD_ONENAND_GENERIC=y
462# CONFIG_MTD_ONENAND_OMAP2 is not set
463# CONFIG_MTD_ONENAND_OTP is not set
464
465#
466# UBI - Unsorted block images
467#
468# CONFIG_MTD_UBI is not set
469# CONFIG_PARPORT is not set
470CONFIG_BLK_DEV=y
471# CONFIG_BLK_DEV_COW_COMMON is not set
472CONFIG_BLK_DEV_LOOP=y
473# CONFIG_BLK_DEV_CRYPTOLOOP is not set
474# CONFIG_BLK_DEV_NBD is not set
475# CONFIG_BLK_DEV_RAM is not set
476# CONFIG_CDROM_PKTCDVD is not set
477# CONFIG_ATA_OVER_ETH is not set
478
479#
480# SCSI device support
481#
482# CONFIG_RAID_ATTRS is not set
483# CONFIG_SCSI is not set
484# CONFIG_SCSI_DMA is not set
485# CONFIG_SCSI_NETLINK is not set
486# CONFIG_ATA is not set
487# CONFIG_MD is not set
488CONFIG_NETDEVICES=y
489# CONFIG_NETDEVICES_MULTIQUEUE is not set
490# CONFIG_DUMMY is not set
491# CONFIG_BONDING is not set
492# CONFIG_MACVLAN is not set
493# CONFIG_EQUALIZER is not set
494# CONFIG_TUN is not set
495# CONFIG_PHYLIB is not set
496CONFIG_NET_ETHERNET=y
497CONFIG_MII=y
498# CONFIG_AX88796 is not set
499CONFIG_SMC91X=y
500# CONFIG_DM9000 is not set
501CONFIG_NETDEV_1000=y
502CONFIG_NETDEV_10000=y
503
504#
505# Wireless LAN
506#
507# CONFIG_WLAN_PRE80211 is not set
508# CONFIG_WLAN_80211 is not set
509# CONFIG_WAN is not set
510# CONFIG_PPP is not set
511# CONFIG_SLIP is not set
512# CONFIG_SHAPER is not set
513# CONFIG_NETCONSOLE is not set
514# CONFIG_NETPOLL is not set
515# CONFIG_NET_POLL_CONTROLLER is not set
516# CONFIG_ISDN is not set
517
518#
519# Input device support
520#
521CONFIG_INPUT=y
522# CONFIG_INPUT_FF_MEMLESS is not set
523# CONFIG_INPUT_POLLDEV is not set
524
525#
526# Userland interfaces
527#
528CONFIG_INPUT_MOUSEDEV=y
529# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
530CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
531CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
532# CONFIG_INPUT_JOYDEV is not set
533# CONFIG_INPUT_TSDEV is not set
534# CONFIG_INPUT_EVDEV is not set
535# CONFIG_INPUT_EVBUG is not set
536
537#
538# Input Device Drivers
539#
540# CONFIG_INPUT_KEYBOARD is not set
541# CONFIG_INPUT_MOUSE is not set
542# CONFIG_INPUT_JOYSTICK is not set
543# CONFIG_INPUT_TABLET is not set
544# CONFIG_INPUT_TOUCHSCREEN is not set
545# CONFIG_INPUT_MISC is not set
546
547#
548# Hardware I/O ports
549#
550# CONFIG_SERIO is not set
551# CONFIG_GAMEPORT is not set
552
553#
554# Character devices
555#
556CONFIG_VT=y
557CONFIG_VT_CONSOLE=y
558CONFIG_HW_CONSOLE=y
559# CONFIG_VT_HW_CONSOLE_BINDING is not set
560# CONFIG_SERIAL_NONSTANDARD is not set
561
562#
563# Serial drivers
564#
565CONFIG_SERIAL_8250=y
566CONFIG_SERIAL_8250_CONSOLE=y
567CONFIG_SERIAL_8250_NR_UARTS=32
568CONFIG_SERIAL_8250_RUNTIME_UARTS=4
569CONFIG_SERIAL_8250_EXTENDED=y
570CONFIG_SERIAL_8250_MANY_PORTS=y
571CONFIG_SERIAL_8250_SHARE_IRQ=y
572CONFIG_SERIAL_8250_DETECT_IRQ=y
573CONFIG_SERIAL_8250_RSA=y
574
575#
576# Non-8250 serial port support
577#
578CONFIG_SERIAL_CORE=y
579CONFIG_SERIAL_CORE_CONSOLE=y
580CONFIG_UNIX98_PTYS=y
581# CONFIG_LEGACY_PTYS is not set
582# CONFIG_IPMI_HANDLER is not set
583CONFIG_WATCHDOG=y
584# CONFIG_WATCHDOG_NOWAYOUT is not set
585
586#
587# Watchdog Device Drivers
588#
589# CONFIG_SOFT_WATCHDOG is not set
590CONFIG_OMAP_WATCHDOG=y
591CONFIG_HW_RANDOM=y
592CONFIG_HW_RANDOM_OMAP=y
593# CONFIG_NVRAM is not set
594# CONFIG_R3964 is not set
595# CONFIG_RAW_DRIVER is not set
596# CONFIG_TCG_TPM is not set
597# CONFIG_I2C is not set
598
599#
600# SPI support
601#
602CONFIG_SPI=y
603# CONFIG_SPI_DEBUG is not set
604CONFIG_SPI_MASTER=y
605
606#
607# SPI Master Controller Drivers
608#
609# CONFIG_SPI_BITBANG is not set
610CONFIG_SPI_OMAP24XX=y
611
612#
613# SPI Protocol Masters
614#
615# CONFIG_SPI_AT25 is not set
616# CONFIG_SPI_TSC2101 is not set
617# CONFIG_SPI_TSC2102 is not set
618# CONFIG_SPI_TSC210X is not set
619# CONFIG_SPI_TSC2301 is not set
620# CONFIG_SPI_SPIDEV is not set
621# CONFIG_SPI_TLE62X0 is not set
622# CONFIG_W1 is not set
623# CONFIG_HWMON is not set
624CONFIG_MISC_DEVICES=y
625# CONFIG_EEPROM_93CX6 is not set
626
627#
628# Multifunction device drivers
629#
630# CONFIG_MFD_SM501 is not set
631# CONFIG_NEW_LEDS is not set
632
633#
634# Multimedia devices
635#
636# CONFIG_VIDEO_DEV is not set
637# CONFIG_DVB_CORE is not set
638CONFIG_DAB=y
639
640#
641# Graphics support
642#
643# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
644
645#
646# Display device support
647#
648# CONFIG_DISPLAY_SUPPORT is not set
649# CONFIG_VGASTATE is not set
650CONFIG_VIDEO_OUTPUT_CONTROL=m
651CONFIG_FB=y
652CONFIG_FIRMWARE_EDID=y
653# CONFIG_FB_DDC is not set
654# CONFIG_FB_CFB_FILLRECT is not set
655# CONFIG_FB_CFB_COPYAREA is not set
656# CONFIG_FB_CFB_IMAGEBLIT is not set
657# CONFIG_FB_SYS_FILLRECT is not set
658# CONFIG_FB_SYS_COPYAREA is not set
659# CONFIG_FB_SYS_IMAGEBLIT is not set
660# CONFIG_FB_SYS_FOPS is not set
661CONFIG_FB_DEFERRED_IO=y
662# CONFIG_FB_SVGALIB is not set
663# CONFIG_FB_MACMODES is not set
664# CONFIG_FB_BACKLIGHT is not set
665# CONFIG_FB_MODE_HELPERS is not set
666# CONFIG_FB_TILEBLITTING is not set
667
668#
669# Frame buffer hardware drivers
670#
671# CONFIG_FB_S1D13XXX is not set
672CONFIG_FB_OMAP=y
673# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
674# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
675CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
676# CONFIG_FB_VIRTUAL is not set
677
678#
679# Console display driver support
680#
681# CONFIG_VGA_CONSOLE is not set
682CONFIG_DUMMY_CONSOLE=y
683CONFIG_FRAMEBUFFER_CONSOLE=y
684# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
685# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
686CONFIG_FONTS=y
687CONFIG_FONT_8x8=y
688CONFIG_FONT_8x16=y
689# CONFIG_FONT_6x11 is not set
690# CONFIG_FONT_7x14 is not set
691# CONFIG_FONT_PEARL_8x8 is not set
692# CONFIG_FONT_ACORN_8x8 is not set
693# CONFIG_FONT_MINI_4x6 is not set
694# CONFIG_FONT_SUN8x16 is not set
695# CONFIG_FONT_SUN12x22 is not set
696# CONFIG_FONT_10x18 is not set
697CONFIG_LOGO=y
698# CONFIG_LOGO_LINUX_MONO is not set
699# CONFIG_LOGO_LINUX_VGA16 is not set
700CONFIG_LOGO_LINUX_CLUT224=y
701
702#
703# Sound
704#
705# CONFIG_SOUND is not set
706CONFIG_HID_SUPPORT=y
707# CONFIG_HID is not set
708CONFIG_USB_SUPPORT=y
709CONFIG_USB_ARCH_HAS_HCD=y
710CONFIG_USB_ARCH_HAS_OHCI=y
711# CONFIG_USB_ARCH_HAS_EHCI is not set
712# CONFIG_USB is not set
713# CONFIG_USB_MUSB_HDRC is not set
714# CONFIG_USB_GADGET_MUSB_HDRC is not set
715
716#
717# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
718#
719
720#
721# USB Gadget Support
722#
723CONFIG_USB_GADGET=y
724# CONFIG_USB_GADGET_DEBUG is not set
725# CONFIG_USB_GADGET_DEBUG_FILES is not set
726CONFIG_USB_GADGET_SELECTED=y
727# CONFIG_USB_GADGET_AMD5536UDC is not set
728# CONFIG_USB_GADGET_FSL_USB2 is not set
729# CONFIG_USB_GADGET_NET2280 is not set
730# CONFIG_USB_GADGET_PXA2XX is not set
731# CONFIG_USB_GADGET_M66592 is not set
732# CONFIG_USB_GADGET_GOKU is not set
733# CONFIG_USB_GADGET_LH7A40X is not set
734CONFIG_USB_GADGET_OMAP=y
735CONFIG_USB_OMAP=y
736# CONFIG_USB_GADGET_S3C2410 is not set
737# CONFIG_USB_GADGET_AT91 is not set
738# CONFIG_USB_GADGET_DUMMY_HCD is not set
739# CONFIG_USB_GADGET_DUALSPEED is not set
740# CONFIG_USB_ZERO is not set
741CONFIG_USB_ETH=m
742CONFIG_USB_ETH_RNDIS=y
743# CONFIG_USB_GADGETFS is not set
744CONFIG_USB_FILE_STORAGE=m
745# CONFIG_USB_FILE_STORAGE_TEST is not set
746# CONFIG_USB_G_SERIAL is not set
747# CONFIG_USB_MIDI_GADGET is not set
748CONFIG_MMC=y
749# CONFIG_MMC_DEBUG is not set
750# CONFIG_MMC_UNSAFE_RESUME is not set
751
752#
753# MMC/SD Card Drivers
754#
755CONFIG_MMC_BLOCK=y
756CONFIG_MMC_BLOCK_BOUNCE=y
757
758#
759# MMC/SD Host Controller Drivers
760#
761CONFIG_MMC_OMAP=y
762CONFIG_RTC_LIB=y
763# CONFIG_RTC_CLASS is not set
764
765#
766# DMA Engine support
767#
768# CONFIG_DMA_ENGINE is not set
769
770#
771# DMA Clients
772#
773
774#
775# DMA Devices
776#
777
778#
779# CBUS support
780#
781# CONFIG_CBUS is not set
782
783#
784# File systems
785#
786CONFIG_EXT2_FS=y
787# CONFIG_EXT2_FS_XATTR is not set
788# CONFIG_EXT2_FS_XIP is not set
789# CONFIG_EXT3_FS is not set
790# CONFIG_EXT4DEV_FS is not set
791# CONFIG_REISERFS_FS is not set
792# CONFIG_JFS_FS is not set
793# CONFIG_FS_POSIX_ACL is not set
794# CONFIG_XFS_FS is not set
795# CONFIG_GFS2_FS is not set
796# CONFIG_OCFS2_FS is not set
797# CONFIG_MINIX_FS is not set
798# CONFIG_ROMFS_FS is not set
799# CONFIG_INOTIFY is not set
800# CONFIG_QUOTA is not set
801CONFIG_DNOTIFY=y
802# CONFIG_AUTOFS_FS is not set
803CONFIG_AUTOFS4_FS=y
804# CONFIG_FUSE_FS is not set
805
806#
807# CD-ROM/DVD Filesystems
808#
809# CONFIG_ISO9660_FS is not set
810# CONFIG_UDF_FS is not set
811
812#
813# DOS/FAT/NT Filesystems
814#
815# CONFIG_MSDOS_FS is not set
816# CONFIG_VFAT_FS is not set
817# CONFIG_NTFS_FS is not set
818
819#
820# Pseudo filesystems
821#
822CONFIG_PROC_FS=y
823CONFIG_PROC_SYSCTL=y
824CONFIG_SYSFS=y
825CONFIG_TMPFS=y
826# CONFIG_TMPFS_POSIX_ACL is not set
827# CONFIG_HUGETLB_PAGE is not set
828CONFIG_RAMFS=y
829# CONFIG_CONFIGFS_FS is not set
830
831#
832# Miscellaneous filesystems
833#
834# CONFIG_ADFS_FS is not set
835# CONFIG_AFFS_FS is not set
836# CONFIG_HFS_FS is not set
837# CONFIG_HFSPLUS_FS is not set
838# CONFIG_BEFS_FS is not set
839# CONFIG_BFS_FS is not set
840# CONFIG_EFS_FS is not set
841CONFIG_JFFS2_FS=y
842CONFIG_JFFS2_FS_DEBUG=0
843CONFIG_JFFS2_FS_WRITEBUFFER=y
844# CONFIG_JFFS2_SUMMARY is not set
845# CONFIG_JFFS2_FS_XATTR is not set
846# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
847CONFIG_JFFS2_ZLIB=y
848CONFIG_JFFS2_RTIME=y
849# CONFIG_JFFS2_RUBIN is not set
850CONFIG_CRAMFS=y
851# CONFIG_VXFS_FS is not set
852# CONFIG_HPFS_FS is not set
853# CONFIG_QNX4FS_FS is not set
854# CONFIG_SYSV_FS is not set
855# CONFIG_UFS_FS is not set
856
857#
858# Network File Systems
859#
860CONFIG_NFS_FS=y
861CONFIG_NFS_V3=y
862# CONFIG_NFS_V3_ACL is not set
863# CONFIG_NFS_V4 is not set
864# CONFIG_NFS_DIRECTIO is not set
865# CONFIG_NFSD is not set
866CONFIG_ROOT_NFS=y
867CONFIG_LOCKD=y
868CONFIG_LOCKD_V4=y
869CONFIG_NFS_COMMON=y
870CONFIG_SUNRPC=y
871# CONFIG_SUNRPC_BIND34 is not set
872# CONFIG_RPCSEC_GSS_KRB5 is not set
873# CONFIG_RPCSEC_GSS_SPKM3 is not set
874# CONFIG_SMB_FS is not set
875# CONFIG_CIFS is not set
876# CONFIG_NCP_FS is not set
877# CONFIG_CODA_FS is not set
878# CONFIG_AFS_FS is not set
879
880#
881# Partition Types
882#
883# CONFIG_PARTITION_ADVANCED is not set
884CONFIG_MSDOS_PARTITION=y
885
886#
887# Native Language Support
888#
889# CONFIG_NLS is not set
890
891#
892# Distributed Lock Manager
893#
894# CONFIG_DLM is not set
895
896#
897# Profiling support
898#
899# CONFIG_PROFILING is not set
900
901#
902# Kernel hacking
903#
904# CONFIG_PRINTK_TIME is not set
905CONFIG_ENABLE_MUST_CHECK=y
906# CONFIG_MAGIC_SYSRQ is not set
907# CONFIG_UNUSED_SYMBOLS is not set
908# CONFIG_DEBUG_FS is not set
909# CONFIG_HEADERS_CHECK is not set
910CONFIG_DEBUG_KERNEL=y
911# CONFIG_DEBUG_SHIRQ is not set
912CONFIG_DETECT_SOFTLOCKUP=y
913CONFIG_SCHED_DEBUG=y
914# CONFIG_SCHEDSTATS is not set
915# CONFIG_TIMER_STATS is not set
916# CONFIG_DEBUG_SLAB is not set
917CONFIG_DEBUG_PREEMPT=y
918# CONFIG_DEBUG_RT_MUTEXES is not set
919# CONFIG_RT_MUTEX_TESTER is not set
920CONFIG_DEBUG_SPINLOCK=y
921CONFIG_DEBUG_MUTEXES=y
922# CONFIG_DEBUG_LOCK_ALLOC is not set
923# CONFIG_PROVE_LOCKING is not set
924# CONFIG_LOCK_STAT is not set
925CONFIG_DEBUG_SPINLOCK_SLEEP=y
926# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
927# CONFIG_DEBUG_KOBJECT is not set
928CONFIG_DEBUG_BUGVERBOSE=y
929# CONFIG_DEBUG_INFO is not set
930# CONFIG_DEBUG_VM is not set
931# CONFIG_DEBUG_LIST is not set
932CONFIG_FRAME_POINTER=y
933CONFIG_FORCED_INLINING=y
934# CONFIG_RCU_TORTURE_TEST is not set
935# CONFIG_FAULT_INJECTION is not set
936# CONFIG_DEBUG_USER is not set
937# CONFIG_DEBUG_ERRORS is not set
938# CONFIG_DEBUG_LL is not set
939
940#
941# Security options
942#
943# CONFIG_KEYS is not set
944# CONFIG_SECURITY is not set
945# CONFIG_CRYPTO is not set
946
947#
948# Library routines
949#
950CONFIG_BITREVERSE=y
951CONFIG_CRC_CCITT=y
952# CONFIG_CRC16 is not set
953# CONFIG_CRC_ITU_T is not set
954CONFIG_CRC32=y
955# CONFIG_CRC7 is not set
956CONFIG_LIBCRC32C=y
957CONFIG_ZLIB_INFLATE=y
958CONFIG_ZLIB_DEFLATE=y
959CONFIG_PLIST=y
960CONFIG_HAS_IOMEM=y
961CONFIG_HAS_IOPORT=y
962CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_generic_1510_defconfig b/arch/arm/configs/omap_generic_1510_defconfig
new file mode 100644
index 00000000000..4b1c252f209
--- /dev/null
+++ b/arch/arm/configs/omap_generic_1510_defconfig
@@ -0,0 +1,1172 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 12:20:19 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36CONFIG_LOCALVERSION_AUTO=y
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47CONFIG_SYSFS_DEPRECATED=y
48# CONFIG_RELAY is not set
49CONFIG_BLK_DEV_INITRD=y
50CONFIG_INITRAMFS_SOURCE=""
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53# CONFIG_EMBEDDED is not set
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_ALL is not set
58# CONFIG_KALLSYMS_EXTRA_PASS is not set
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y
79CONFIG_MODULE_UNLOAD=y
80CONFIG_MODULE_FORCE_UNLOAD=y
81# CONFIG_MODVERSIONS is not set
82# CONFIG_MODULE_SRCVERSION_ALL is not set
83CONFIG_KMOD=y
84CONFIG_BLOCK=y
85# CONFIG_LBD is not set
86# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set
88# CONFIG_BLK_DEV_BSG is not set
89
90#
91# IO Schedulers
92#
93CONFIG_IOSCHED_NOOP=y
94CONFIG_IOSCHED_AS=y
95CONFIG_IOSCHED_DEADLINE=y
96CONFIG_IOSCHED_CFQ=y
97# CONFIG_DEFAULT_AS is not set
98# CONFIG_DEFAULT_DEADLINE is not set
99CONFIG_DEFAULT_CFQ=y
100# CONFIG_DEFAULT_NOOP is not set
101CONFIG_DEFAULT_IOSCHED="cfq"
102
103#
104# System Type
105#
106# CONFIG_ARCH_AAEC2000 is not set
107# CONFIG_ARCH_INTEGRATOR is not set
108# CONFIG_ARCH_REALVIEW is not set
109# CONFIG_ARCH_VERSATILE is not set
110# CONFIG_ARCH_AT91 is not set
111# CONFIG_ARCH_CLPS7500 is not set
112# CONFIG_ARCH_CLPS711X is not set
113# CONFIG_ARCH_CO285 is not set
114# CONFIG_ARCH_EBSA110 is not set
115# CONFIG_ARCH_EP93XX is not set
116# CONFIG_ARCH_FOOTBRIDGE is not set
117# CONFIG_ARCH_NETX is not set
118# CONFIG_ARCH_H720X is not set
119# CONFIG_ARCH_IMX is not set
120# CONFIG_ARCH_IOP13XX is not set
121# CONFIG_ARCH_IOP32X is not set
122# CONFIG_ARCH_IOP33X is not set
123# CONFIG_ARCH_IXP23XX is not set
124# CONFIG_ARCH_IXP2000 is not set
125# CONFIG_ARCH_IXP4XX is not set
126# CONFIG_ARCH_L7200 is not set
127# CONFIG_ARCH_KS8695 is not set
128# CONFIG_ARCH_NS9XXX is not set
129# CONFIG_ARCH_MXC is not set
130# CONFIG_ARCH_PNX4008 is not set
131# CONFIG_ARCH_PXA is not set
132# CONFIG_ARCH_RPC is not set
133# CONFIG_ARCH_SA1100 is not set
134# CONFIG_ARCH_S3C2410 is not set
135# CONFIG_ARCH_SHARK is not set
136# CONFIG_ARCH_LH7A40X is not set
137# CONFIG_ARCH_DAVINCI is not set
138CONFIG_ARCH_OMAP=y
139
140#
141# TI OMAP Implementations
142#
143CONFIG_ARCH_OMAP1=y
144# CONFIG_ARCH_OMAP2 is not set
145# CONFIG_ARCH_OMAP3 is not set
146
147#
148# OMAP Feature Selections
149#
150# CONFIG_OMAP_RESET_CLOCKS is not set
151# CONFIG_OMAP_BOOT_TAG is not set
152# CONFIG_OMAP_GPIO_SWITCH is not set
153CONFIG_OMAP_MUX=y
154# CONFIG_OMAP_MUX_DEBUG is not set
155CONFIG_OMAP_MUX_WARNINGS=y
156CONFIG_OMAP_MCBSP=y
157# CONFIG_OMAP_MMU_FWK is not set
158# CONFIG_OMAP_MBOX_FWK is not set
159CONFIG_OMAP_MPU_TIMER=y
160# CONFIG_OMAP_32K_TIMER is not set
161CONFIG_OMAP_LL_DEBUG_UART1=y
162# CONFIG_OMAP_LL_DEBUG_UART2 is not set
163# CONFIG_OMAP_LL_DEBUG_UART3 is not set
164CONFIG_OMAP_SERIAL_WAKE=y
165# CONFIG_OMAP_DSP is not set
166
167#
168# OMAP Core Type
169#
170# CONFIG_ARCH_OMAP730 is not set
171CONFIG_ARCH_OMAP15XX=y
172# CONFIG_ARCH_OMAP16XX is not set
173
174#
175# OMAP Board Type
176#
177# CONFIG_MACH_OMAP_INNOVATOR is not set
178# CONFIG_MACH_VOICEBLUE is not set
179# CONFIG_MACH_OMAP_PALMTE is not set
180# CONFIG_MACH_OMAP_PALMZ71 is not set
181# CONFIG_MACH_OMAP_PALMTT is not set
182# CONFIG_MACH_SX1 is not set
183# CONFIG_MACH_AMS_DELTA is not set
184CONFIG_MACH_OMAP_GENERIC=y
185
186#
187# OMAP CPU Speed
188#
189# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
190CONFIG_OMAP_ARM_168MHZ=y
191# CONFIG_OMAP_ARM_150MHZ is not set
192# CONFIG_OMAP_ARM_120MHZ is not set
193# CONFIG_OMAP_ARM_60MHZ is not set
194# CONFIG_OMAP_ARM_30MHZ is not set
195# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
196
197#
198# Boot options
199#
200
201#
202# Power management
203#
204
205#
206# Processor Type
207#
208CONFIG_CPU_32=y
209CONFIG_CPU_ARM925T=y
210CONFIG_CPU_32v4T=y
211CONFIG_CPU_ABRT_EV4T=y
212CONFIG_CPU_PABRT_NOIFAR=y
213CONFIG_CPU_CACHE_V4WT=y
214CONFIG_CPU_CACHE_VIVT=y
215CONFIG_CPU_COPY_V4WB=y
216CONFIG_CPU_TLB_V4WBI=y
217CONFIG_CPU_CP15=y
218CONFIG_CPU_CP15_MMU=y
219
220#
221# Processor Features
222#
223# CONFIG_ARM_THUMB is not set
224# CONFIG_CPU_ICACHE_DISABLE is not set
225# CONFIG_CPU_DCACHE_DISABLE is not set
226CONFIG_CPU_DCACHE_WRITETHROUGH=y
227# CONFIG_OUTER_CACHE is not set
228
229#
230# Bus support
231#
232# CONFIG_PCI_SYSCALL is not set
233# CONFIG_ARCH_SUPPORTS_MSI is not set
234
235#
236# PCCARD (PCMCIA/CardBus) support
237#
238# CONFIG_PCCARD is not set
239
240#
241# Kernel Features
242#
243# CONFIG_TICK_ONESHOT is not set
244# CONFIG_NO_HZ is not set
245# CONFIG_HIGH_RES_TIMERS is not set
246CONFIG_PREEMPT=y
247CONFIG_HZ=100
248# CONFIG_AEABI is not set
249# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
250CONFIG_SELECT_MEMORY_MODEL=y
251CONFIG_FLATMEM_MANUAL=y
252# CONFIG_DISCONTIGMEM_MANUAL is not set
253# CONFIG_SPARSEMEM_MANUAL is not set
254CONFIG_FLATMEM=y
255CONFIG_FLAT_NODE_MEM_MAP=y
256# CONFIG_SPARSEMEM_STATIC is not set
257CONFIG_SPLIT_PTLOCK_CPUS=4096
258# CONFIG_RESOURCES_64BIT is not set
259CONFIG_ZONE_DMA_FLAG=1
260CONFIG_BOUNCE=y
261CONFIG_VIRT_TO_BUS=y
262# CONFIG_LEDS is not set
263CONFIG_ALIGNMENT_TRAP=y
264
265#
266# Boot options
267#
268CONFIG_ZBOOT_ROM_TEXT=0x0
269CONFIG_ZBOOT_ROM_BSS=0x0
270CONFIG_CMDLINE="mem=64M console=ttyS2,115200 root=0803 ro init=/bin/sh"
271# CONFIG_XIP_KERNEL is not set
272# CONFIG_KEXEC is not set
273
274#
275# CPU Frequency scaling
276#
277# CONFIG_CPU_FREQ is not set
278
279#
280# Floating point emulation
281#
282
283#
284# At least one emulation must be selected
285#
286CONFIG_FPE_NWFPE=y
287# CONFIG_FPE_NWFPE_XP is not set
288# CONFIG_FPE_FASTFPE is not set
289
290#
291# Userspace binary formats
292#
293CONFIG_BINFMT_ELF=y
294# CONFIG_BINFMT_AOUT is not set
295# CONFIG_BINFMT_MISC is not set
296# CONFIG_ARTHUR is not set
297
298#
299# Power management options
300#
301CONFIG_PM=y
302# CONFIG_PM_LEGACY is not set
303# CONFIG_PM_DEBUG is not set
304CONFIG_PM_SLEEP=y
305CONFIG_SUSPEND_UP_POSSIBLE=y
306CONFIG_SUSPEND=y
307# CONFIG_APM_EMULATION is not set
308
309#
310# Networking
311#
312CONFIG_NET=y
313
314#
315# Networking options
316#
317CONFIG_PACKET=y
318# CONFIG_PACKET_MMAP is not set
319CONFIG_UNIX=y
320CONFIG_XFRM=y
321# CONFIG_XFRM_USER is not set
322# CONFIG_XFRM_SUB_POLICY is not set
323# CONFIG_XFRM_MIGRATE is not set
324# CONFIG_NET_KEY is not set
325CONFIG_INET=y
326CONFIG_IP_MULTICAST=y
327# CONFIG_IP_ADVANCED_ROUTER is not set
328CONFIG_IP_FIB_HASH=y
329CONFIG_IP_PNP=y
330CONFIG_IP_PNP_DHCP=y
331CONFIG_IP_PNP_BOOTP=y
332# CONFIG_IP_PNP_RARP is not set
333# CONFIG_NET_IPIP is not set
334# CONFIG_NET_IPGRE is not set
335# CONFIG_IP_MROUTE is not set
336# CONFIG_ARPD is not set
337# CONFIG_SYN_COOKIES is not set
338# CONFIG_INET_AH is not set
339# CONFIG_INET_ESP is not set
340# CONFIG_INET_IPCOMP is not set
341# CONFIG_INET_XFRM_TUNNEL is not set
342# CONFIG_INET_TUNNEL is not set
343CONFIG_INET_XFRM_MODE_TRANSPORT=y
344CONFIG_INET_XFRM_MODE_TUNNEL=y
345CONFIG_INET_XFRM_MODE_BEET=y
346CONFIG_INET_DIAG=y
347CONFIG_INET_TCP_DIAG=y
348# CONFIG_TCP_CONG_ADVANCED is not set
349CONFIG_TCP_CONG_CUBIC=y
350CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_TCP_MD5SIG is not set
352# CONFIG_IPV6 is not set
353# CONFIG_INET6_XFRM_TUNNEL is not set
354# CONFIG_INET6_TUNNEL is not set
355# CONFIG_NETWORK_SECMARK is not set
356# CONFIG_NETFILTER is not set
357# CONFIG_IP_DCCP is not set
358# CONFIG_IP_SCTP is not set
359# CONFIG_TIPC is not set
360# CONFIG_ATM is not set
361# CONFIG_BRIDGE is not set
362# CONFIG_VLAN_8021Q is not set
363# CONFIG_DECNET is not set
364# CONFIG_LLC2 is not set
365# CONFIG_IPX is not set
366# CONFIG_ATALK is not set
367# CONFIG_X25 is not set
368# CONFIG_LAPB is not set
369# CONFIG_ECONET is not set
370# CONFIG_WAN_ROUTER is not set
371
372#
373# QoS and/or fair queueing
374#
375# CONFIG_NET_SCHED is not set
376
377#
378# Network testing
379#
380# CONFIG_NET_PKTGEN is not set
381# CONFIG_HAMRADIO is not set
382# CONFIG_IRDA is not set
383# CONFIG_BT is not set
384# CONFIG_AF_RXRPC is not set
385
386#
387# Wireless
388#
389# CONFIG_CFG80211 is not set
390# CONFIG_WIRELESS_EXT is not set
391# CONFIG_MAC80211 is not set
392# CONFIG_IEEE80211 is not set
393# CONFIG_RFKILL is not set
394# CONFIG_NET_9P is not set
395
396#
397# Device Drivers
398#
399
400#
401# Generic Driver Options
402#
403CONFIG_STANDALONE=y
404CONFIG_PREVENT_FIRMWARE_BUILD=y
405# CONFIG_FW_LOADER is not set
406# CONFIG_DEBUG_DRIVER is not set
407# CONFIG_DEBUG_DEVRES is not set
408# CONFIG_SYS_HYPERVISOR is not set
409# CONFIG_CONNECTOR is not set
410# CONFIG_MTD is not set
411# CONFIG_PARPORT is not set
412CONFIG_BLK_DEV=y
413# CONFIG_BLK_DEV_COW_COMMON is not set
414CONFIG_BLK_DEV_LOOP=y
415# CONFIG_BLK_DEV_CRYPTOLOOP is not set
416# CONFIG_BLK_DEV_NBD is not set
417# CONFIG_BLK_DEV_UB is not set
418CONFIG_BLK_DEV_RAM=y
419CONFIG_BLK_DEV_RAM_COUNT=16
420CONFIG_BLK_DEV_RAM_SIZE=8192
421CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
422# CONFIG_CDROM_PKTCDVD is not set
423# CONFIG_ATA_OVER_ETH is not set
424
425#
426# SCSI device support
427#
428# CONFIG_RAID_ATTRS is not set
429CONFIG_SCSI=y
430CONFIG_SCSI_DMA=y
431# CONFIG_SCSI_TGT is not set
432# CONFIG_SCSI_NETLINK is not set
433CONFIG_SCSI_PROC_FS=y
434
435#
436# SCSI support type (disk, tape, CD-ROM)
437#
438CONFIG_BLK_DEV_SD=y
439# CONFIG_CHR_DEV_ST is not set
440# CONFIG_CHR_DEV_OSST is not set
441CONFIG_BLK_DEV_SR=y
442# CONFIG_BLK_DEV_SR_VENDOR is not set
443CONFIG_CHR_DEV_SG=y
444# CONFIG_CHR_DEV_SCH is not set
445
446#
447# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
448#
449CONFIG_SCSI_MULTI_LUN=y
450# CONFIG_SCSI_CONSTANTS is not set
451# CONFIG_SCSI_LOGGING is not set
452# CONFIG_SCSI_SCAN_ASYNC is not set
453CONFIG_SCSI_WAIT_SCAN=m
454
455#
456# SCSI Transports
457#
458# CONFIG_SCSI_SPI_ATTRS is not set
459# CONFIG_SCSI_FC_ATTRS is not set
460# CONFIG_SCSI_ISCSI_ATTRS is not set
461# CONFIG_SCSI_SAS_LIBSAS is not set
462CONFIG_SCSI_LOWLEVEL=y
463# CONFIG_ISCSI_TCP is not set
464# CONFIG_SCSI_DEBUG is not set
465# CONFIG_ATA is not set
466# CONFIG_MD is not set
467CONFIG_NETDEVICES=y
468# CONFIG_NETDEVICES_MULTIQUEUE is not set
469# CONFIG_DUMMY is not set
470# CONFIG_BONDING is not set
471# CONFIG_MACVLAN is not set
472# CONFIG_EQUALIZER is not set
473# CONFIG_TUN is not set
474# CONFIG_PHYLIB is not set
475CONFIG_NET_ETHERNET=y
476CONFIG_MII=y
477# CONFIG_AX88796 is not set
478# CONFIG_SMC91X is not set
479# CONFIG_DM9000 is not set
480CONFIG_NETDEV_1000=y
481CONFIG_NETDEV_10000=y
482
483#
484# Wireless LAN
485#
486# CONFIG_WLAN_PRE80211 is not set
487# CONFIG_WLAN_80211 is not set
488
489#
490# USB Network Adapters
491#
492# CONFIG_USB_CATC is not set
493# CONFIG_USB_KAWETH is not set
494# CONFIG_USB_PEGASUS is not set
495CONFIG_USB_RTL8150=y
496CONFIG_USB_USBNET_MII=y
497CONFIG_USB_USBNET=y
498CONFIG_USB_NET_AX8817X=y
499CONFIG_USB_NET_CDCETHER=y
500# CONFIG_USB_NET_DM9601 is not set
501# CONFIG_USB_NET_GL620A is not set
502CONFIG_USB_NET_NET1080=y
503# CONFIG_USB_NET_PLUSB is not set
504# CONFIG_USB_NET_MCS7830 is not set
505# CONFIG_USB_NET_RNDIS_HOST is not set
506CONFIG_USB_NET_CDC_SUBSET=y
507# CONFIG_USB_ALI_M5632 is not set
508CONFIG_USB_AN2720=y
509CONFIG_USB_BELKIN=y
510CONFIG_USB_ARMLINUX=y
511CONFIG_USB_EPSON2888=y
512# CONFIG_USB_KC2190 is not set
513CONFIG_USB_NET_ZAURUS=y
514# CONFIG_WAN is not set
515CONFIG_PPP=y
516CONFIG_PPP_MULTILINK=y
517# CONFIG_PPP_FILTER is not set
518# CONFIG_PPP_ASYNC is not set
519# CONFIG_PPP_SYNC_TTY is not set
520# CONFIG_PPP_DEFLATE is not set
521# CONFIG_PPP_BSDCOMP is not set
522# CONFIG_PPP_MPPE is not set
523# CONFIG_PPPOE is not set
524# CONFIG_PPPOL2TP is not set
525# CONFIG_SLIP is not set
526CONFIG_SLHC=y
527# CONFIG_SHAPER is not set
528# CONFIG_NETCONSOLE is not set
529# CONFIG_NETPOLL is not set
530# CONFIG_NET_POLL_CONTROLLER is not set
531# CONFIG_ISDN is not set
532
533#
534# Input device support
535#
536CONFIG_INPUT=y
537# CONFIG_INPUT_FF_MEMLESS is not set
538# CONFIG_INPUT_POLLDEV is not set
539
540#
541# Userland interfaces
542#
543CONFIG_INPUT_MOUSEDEV=y
544CONFIG_INPUT_MOUSEDEV_PSAUX=y
545CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
546CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
547# CONFIG_INPUT_JOYDEV is not set
548# CONFIG_INPUT_TSDEV is not set
549# CONFIG_INPUT_EVDEV is not set
550# CONFIG_INPUT_EVBUG is not set
551
552#
553# Input Device Drivers
554#
555CONFIG_INPUT_KEYBOARD=y
556CONFIG_KEYBOARD_ATKBD=y
557# CONFIG_KEYBOARD_SUNKBD is not set
558# CONFIG_KEYBOARD_LKKBD is not set
559# CONFIG_KEYBOARD_XTKBD is not set
560# CONFIG_KEYBOARD_NEWTON is not set
561# CONFIG_KEYBOARD_STOWAWAY is not set
562CONFIG_KEYBOARD_OMAP=y
563# CONFIG_KEYBOARD_GPIO is not set
564# CONFIG_INPUT_MOUSE is not set
565# CONFIG_INPUT_JOYSTICK is not set
566# CONFIG_INPUT_TABLET is not set
567# CONFIG_INPUT_TOUCHSCREEN is not set
568# CONFIG_INPUT_MISC is not set
569
570#
571# Hardware I/O ports
572#
573CONFIG_SERIO=y
574CONFIG_SERIO_SERPORT=y
575CONFIG_SERIO_LIBPS2=y
576# CONFIG_SERIO_RAW is not set
577# CONFIG_GAMEPORT is not set
578
579#
580# Character devices
581#
582CONFIG_VT=y
583CONFIG_VT_CONSOLE=y
584CONFIG_HW_CONSOLE=y
585# CONFIG_VT_HW_CONSOLE_BINDING is not set
586# CONFIG_SERIAL_NONSTANDARD is not set
587
588#
589# Serial drivers
590#
591CONFIG_SERIAL_8250=y
592CONFIG_SERIAL_8250_CONSOLE=y
593CONFIG_SERIAL_8250_NR_UARTS=4
594CONFIG_SERIAL_8250_RUNTIME_UARTS=4
595# CONFIG_SERIAL_8250_EXTENDED is not set
596
597#
598# Non-8250 serial port support
599#
600CONFIG_SERIAL_CORE=y
601CONFIG_SERIAL_CORE_CONSOLE=y
602CONFIG_UNIX98_PTYS=y
603# CONFIG_LEGACY_PTYS is not set
604# CONFIG_IPMI_HANDLER is not set
605# CONFIG_WATCHDOG is not set
606CONFIG_HW_RANDOM=m
607# CONFIG_NVRAM is not set
608# CONFIG_R3964 is not set
609# CONFIG_RAW_DRIVER is not set
610# CONFIG_TCG_TPM is not set
611CONFIG_I2C=y
612CONFIG_I2C_BOARDINFO=y
613CONFIG_I2C_CHARDEV=y
614
615#
616# I2C Algorithms
617#
618CONFIG_I2C_ALGOBIT=y
619# CONFIG_I2C_ALGOPCF is not set
620# CONFIG_I2C_ALGOPCA is not set
621
622#
623# I2C Hardware Bus support
624#
625# CONFIG_I2C_GPIO is not set
626# CONFIG_I2C_OCORES is not set
627# CONFIG_I2C_OMAP is not set
628# CONFIG_I2C_PARPORT_LIGHT is not set
629# CONFIG_I2C_SIMTEC is not set
630# CONFIG_I2C_TAOS_EVM is not set
631# CONFIG_I2C_STUB is not set
632# CONFIG_I2C_TINY_USB is not set
633
634#
635# Miscellaneous I2C Chip support
636#
637# CONFIG_SENSORS_DS1337 is not set
638# CONFIG_SENSORS_DS1374 is not set
639# CONFIG_DS1682 is not set
640# CONFIG_SENSORS_EEPROM is not set
641# CONFIG_SENSORS_PCF8574 is not set
642# CONFIG_SENSORS_PCA9539 is not set
643# CONFIG_SENSORS_PCF8591 is not set
644# CONFIG_TPS65010 is not set
645# CONFIG_SENSORS_MAX6875 is not set
646# CONFIG_SENSORS_TSL2550 is not set
647# CONFIG_I2C_DEBUG_CORE is not set
648# CONFIG_I2C_DEBUG_ALGO is not set
649# CONFIG_I2C_DEBUG_BUS is not set
650# CONFIG_I2C_DEBUG_CHIP is not set
651
652#
653# SPI support
654#
655# CONFIG_SPI is not set
656# CONFIG_SPI_MASTER is not set
657# CONFIG_W1 is not set
658CONFIG_HWMON=y
659# CONFIG_HWMON_VID is not set
660# CONFIG_SENSORS_ABITUGURU is not set
661# CONFIG_SENSORS_ABITUGURU3 is not set
662# CONFIG_SENSORS_AD7418 is not set
663# CONFIG_SENSORS_ADM1021 is not set
664# CONFIG_SENSORS_ADM1025 is not set
665# CONFIG_SENSORS_ADM1026 is not set
666# CONFIG_SENSORS_ADM1029 is not set
667# CONFIG_SENSORS_ADM1031 is not set
668# CONFIG_SENSORS_ADM9240 is not set
669# CONFIG_SENSORS_ASB100 is not set
670# CONFIG_SENSORS_ATXP1 is not set
671# CONFIG_SENSORS_DS1621 is not set
672# CONFIG_SENSORS_F71805F is not set
673# CONFIG_SENSORS_FSCHER is not set
674# CONFIG_SENSORS_FSCPOS is not set
675# CONFIG_SENSORS_GL518SM is not set
676# CONFIG_SENSORS_GL520SM is not set
677# CONFIG_SENSORS_IT87 is not set
678# CONFIG_SENSORS_LM63 is not set
679# CONFIG_SENSORS_LM75 is not set
680# CONFIG_SENSORS_LM77 is not set
681# CONFIG_SENSORS_LM78 is not set
682# CONFIG_SENSORS_LM80 is not set
683# CONFIG_SENSORS_LM83 is not set
684# CONFIG_SENSORS_LM85 is not set
685# CONFIG_SENSORS_LM87 is not set
686# CONFIG_SENSORS_LM90 is not set
687# CONFIG_SENSORS_LM92 is not set
688# CONFIG_SENSORS_LM93 is not set
689# CONFIG_SENSORS_MAX1619 is not set
690# CONFIG_SENSORS_MAX6650 is not set
691# CONFIG_SENSORS_PC87360 is not set
692# CONFIG_SENSORS_PC87427 is not set
693# CONFIG_SENSORS_DME1737 is not set
694# CONFIG_SENSORS_SMSC47M1 is not set
695# CONFIG_SENSORS_SMSC47M192 is not set
696# CONFIG_SENSORS_SMSC47B397 is not set
697# CONFIG_SENSORS_THMC50 is not set
698# CONFIG_SENSORS_VT1211 is not set
699# CONFIG_SENSORS_W83781D is not set
700# CONFIG_SENSORS_W83791D is not set
701# CONFIG_SENSORS_W83792D is not set
702# CONFIG_SENSORS_W83793 is not set
703# CONFIG_SENSORS_W83L785TS is not set
704# CONFIG_SENSORS_W83627HF is not set
705# CONFIG_SENSORS_W83627EHF is not set
706# CONFIG_HWMON_DEBUG_CHIP is not set
707CONFIG_MISC_DEVICES=y
708# CONFIG_EEPROM_93CX6 is not set
709
710#
711# Multifunction device drivers
712#
713# CONFIG_MFD_SM501 is not set
714# CONFIG_NEW_LEDS is not set
715
716#
717# Multimedia devices
718#
719# CONFIG_VIDEO_DEV is not set
720# CONFIG_DVB_CORE is not set
721CONFIG_DAB=y
722# CONFIG_USB_DABUSB is not set
723
724#
725# Graphics support
726#
727# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
728
729#
730# Display device support
731#
732# CONFIG_DISPLAY_SUPPORT is not set
733# CONFIG_VGASTATE is not set
734CONFIG_VIDEO_OUTPUT_CONTROL=m
735# CONFIG_FB is not set
736
737#
738# Console display driver support
739#
740# CONFIG_VGA_CONSOLE is not set
741CONFIG_DUMMY_CONSOLE=y
742
743#
744# Sound
745#
746# CONFIG_SOUND is not set
747CONFIG_HID_SUPPORT=y
748CONFIG_HID=y
749# CONFIG_HID_DEBUG is not set
750
751#
752# USB Input Devices
753#
754CONFIG_USB_HID=y
755# CONFIG_USB_HIDINPUT_POWERBOOK is not set
756# CONFIG_HID_FF is not set
757# CONFIG_USB_HIDDEV is not set
758CONFIG_USB_SUPPORT=y
759CONFIG_USB_ARCH_HAS_HCD=y
760CONFIG_USB_ARCH_HAS_OHCI=y
761# CONFIG_USB_ARCH_HAS_EHCI is not set
762CONFIG_USB=y
763CONFIG_USB_DEBUG=y
764
765#
766# Miscellaneous USB options
767#
768CONFIG_USB_DEVICEFS=y
769# CONFIG_USB_DEVICE_CLASS is not set
770# CONFIG_USB_DYNAMIC_MINORS is not set
771# CONFIG_USB_SUSPEND is not set
772# CONFIG_USB_PERSIST is not set
773# CONFIG_USB_OTG is not set
774
775#
776# USB Host Controller Drivers
777#
778# CONFIG_USB_ISP116X_HCD is not set
779CONFIG_USB_OHCI_HCD=y
780# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
781# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
782CONFIG_USB_OHCI_LITTLE_ENDIAN=y
783# CONFIG_USB_SL811_HCD is not set
784# CONFIG_USB_R8A66597_HCD is not set
785# CONFIG_USB_MUSB_HDRC is not set
786
787#
788# USB Device Class drivers
789#
790# CONFIG_USB_ACM is not set
791# CONFIG_USB_PRINTER is not set
792
793#
794# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
795#
796
797#
798# may also be needed; see USB_STORAGE Help for more information
799#
800CONFIG_USB_STORAGE=y
801# CONFIG_USB_STORAGE_DEBUG is not set
802CONFIG_USB_STORAGE_DATAFAB=y
803CONFIG_USB_STORAGE_FREECOM=y
804CONFIG_USB_STORAGE_DPCM=y
805# CONFIG_USB_STORAGE_USBAT is not set
806CONFIG_USB_STORAGE_SDDR09=y
807CONFIG_USB_STORAGE_SDDR55=y
808CONFIG_USB_STORAGE_JUMPSHOT=y
809# CONFIG_USB_STORAGE_ALAUDA is not set
810# CONFIG_USB_STORAGE_KARMA is not set
811# CONFIG_USB_LIBUSUAL is not set
812
813#
814# USB Imaging devices
815#
816# CONFIG_USB_MDC800 is not set
817# CONFIG_USB_MICROTEK is not set
818CONFIG_USB_MON=y
819
820#
821# USB port drivers
822#
823
824#
825# USB Serial Converter support
826#
827# CONFIG_USB_SERIAL is not set
828
829#
830# USB Miscellaneous drivers
831#
832# CONFIG_USB_EMI62 is not set
833# CONFIG_USB_EMI26 is not set
834# CONFIG_USB_ADUTUX is not set
835# CONFIG_USB_AUERSWALD is not set
836# CONFIG_USB_RIO500 is not set
837# CONFIG_USB_LEGOTOWER is not set
838# CONFIG_USB_LCD is not set
839# CONFIG_USB_BERRY_CHARGE is not set
840# CONFIG_USB_LED is not set
841# CONFIG_USB_CYPRESS_CY7C63 is not set
842# CONFIG_USB_CYTHERM is not set
843# CONFIG_USB_PHIDGET is not set
844# CONFIG_USB_IDMOUSE is not set
845# CONFIG_USB_FTDI_ELAN is not set
846# CONFIG_USB_APPLEDISPLAY is not set
847# CONFIG_USB_LD is not set
848# CONFIG_USB_TRANCEVIBRATOR is not set
849# CONFIG_USB_IOWARRIOR is not set
850# CONFIG_USB_TEST is not set
851
852#
853# USB DSL modem support
854#
855
856#
857# USB Gadget Support
858#
859# CONFIG_USB_GADGET is not set
860CONFIG_MMC=y
861# CONFIG_MMC_DEBUG is not set
862# CONFIG_MMC_UNSAFE_RESUME is not set
863
864#
865# MMC/SD Card Drivers
866#
867CONFIG_MMC_BLOCK=y
868CONFIG_MMC_BLOCK_BOUNCE=y
869
870#
871# MMC/SD Host Controller Drivers
872#
873CONFIG_MMC_OMAP=y
874CONFIG_RTC_LIB=y
875CONFIG_RTC_CLASS=y
876CONFIG_RTC_HCTOSYS=y
877CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
878# CONFIG_RTC_DEBUG is not set
879
880#
881# RTC interfaces
882#
883CONFIG_RTC_INTF_SYSFS=y
884CONFIG_RTC_INTF_PROC=y
885CONFIG_RTC_INTF_DEV=y
886# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
887# CONFIG_RTC_DRV_TEST is not set
888
889#
890# I2C RTC drivers
891#
892# CONFIG_RTC_DRV_DS1307 is not set
893# CONFIG_RTC_DRV_DS1672 is not set
894# CONFIG_RTC_DRV_MAX6900 is not set
895# CONFIG_RTC_DRV_RS5C372 is not set
896# CONFIG_RTC_DRV_ISL1208 is not set
897# CONFIG_RTC_DRV_X1205 is not set
898# CONFIG_RTC_DRV_PCF8563 is not set
899# CONFIG_RTC_DRV_PCF8583 is not set
900# CONFIG_RTC_DRV_M41T80 is not set
901
902#
903# SPI RTC drivers
904#
905
906#
907# Platform RTC drivers
908#
909# CONFIG_RTC_DRV_CMOS is not set
910# CONFIG_RTC_DRV_DS1553 is not set
911# CONFIG_RTC_DRV_STK17TA8 is not set
912# CONFIG_RTC_DRV_DS1742 is not set
913# CONFIG_RTC_DRV_M48T86 is not set
914# CONFIG_RTC_DRV_M48T59 is not set
915# CONFIG_RTC_DRV_V3020 is not set
916
917#
918# on-CPU RTC drivers
919#
920CONFIG_RTC_DRV_OMAP=y
921
922#
923# DMA Engine support
924#
925# CONFIG_DMA_ENGINE is not set
926
927#
928# DMA Clients
929#
930
931#
932# DMA Devices
933#
934
935#
936# CBUS support
937#
938# CONFIG_CBUS is not set
939
940#
941# File systems
942#
943CONFIG_EXT2_FS=y
944# CONFIG_EXT2_FS_XATTR is not set
945# CONFIG_EXT2_FS_XIP is not set
946CONFIG_EXT3_FS=y
947CONFIG_EXT3_FS_XATTR=y
948# CONFIG_EXT3_FS_POSIX_ACL is not set
949# CONFIG_EXT3_FS_SECURITY is not set
950# CONFIG_EXT4DEV_FS is not set
951CONFIG_JBD=y
952# CONFIG_JBD_DEBUG is not set
953CONFIG_FS_MBCACHE=y
954# CONFIG_REISERFS_FS is not set
955# CONFIG_JFS_FS is not set
956# CONFIG_FS_POSIX_ACL is not set
957# CONFIG_XFS_FS is not set
958# CONFIG_GFS2_FS is not set
959# CONFIG_OCFS2_FS is not set
960# CONFIG_MINIX_FS is not set
961# CONFIG_ROMFS_FS is not set
962CONFIG_INOTIFY=y
963CONFIG_INOTIFY_USER=y
964# CONFIG_QUOTA is not set
965CONFIG_DNOTIFY=y
966CONFIG_AUTOFS_FS=y
967CONFIG_AUTOFS4_FS=y
968# CONFIG_FUSE_FS is not set
969
970#
971# CD-ROM/DVD Filesystems
972#
973CONFIG_ISO9660_FS=y
974CONFIG_JOLIET=y
975# CONFIG_ZISOFS is not set
976# CONFIG_UDF_FS is not set
977
978#
979# DOS/FAT/NT Filesystems
980#
981CONFIG_FAT_FS=m
982CONFIG_MSDOS_FS=m
983CONFIG_VFAT_FS=m
984CONFIG_FAT_DEFAULT_CODEPAGE=437
985CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
986# CONFIG_NTFS_FS is not set
987
988#
989# Pseudo filesystems
990#
991CONFIG_PROC_FS=y
992CONFIG_PROC_SYSCTL=y
993CONFIG_SYSFS=y
994# CONFIG_TMPFS is not set
995# CONFIG_HUGETLB_PAGE is not set
996CONFIG_RAMFS=y
997# CONFIG_CONFIGFS_FS is not set
998
999#
1000# Miscellaneous filesystems
1001#
1002# CONFIG_ADFS_FS is not set
1003# CONFIG_AFFS_FS is not set
1004# CONFIG_HFS_FS is not set
1005# CONFIG_HFSPLUS_FS is not set
1006# CONFIG_BEFS_FS is not set
1007# CONFIG_BFS_FS is not set
1008# CONFIG_EFS_FS is not set
1009# CONFIG_CRAMFS is not set
1010# CONFIG_VXFS_FS is not set
1011# CONFIG_HPFS_FS is not set
1012# CONFIG_QNX4FS_FS is not set
1013# CONFIG_SYSV_FS is not set
1014# CONFIG_UFS_FS is not set
1015
1016#
1017# Network File Systems
1018#
1019CONFIG_NFS_FS=y
1020# CONFIG_NFS_V3 is not set
1021# CONFIG_NFS_V4 is not set
1022# CONFIG_NFS_DIRECTIO is not set
1023# CONFIG_NFSD is not set
1024# CONFIG_ROOT_NFS is not set
1025CONFIG_LOCKD=y
1026CONFIG_NFS_COMMON=y
1027CONFIG_SUNRPC=y
1028# CONFIG_SUNRPC_BIND34 is not set
1029# CONFIG_RPCSEC_GSS_KRB5 is not set
1030# CONFIG_RPCSEC_GSS_SPKM3 is not set
1031# CONFIG_SMB_FS is not set
1032# CONFIG_CIFS is not set
1033# CONFIG_NCP_FS is not set
1034# CONFIG_CODA_FS is not set
1035# CONFIG_AFS_FS is not set
1036
1037#
1038# Partition Types
1039#
1040CONFIG_PARTITION_ADVANCED=y
1041# CONFIG_ACORN_PARTITION is not set
1042# CONFIG_OSF_PARTITION is not set
1043# CONFIG_AMIGA_PARTITION is not set
1044# CONFIG_ATARI_PARTITION is not set
1045# CONFIG_MAC_PARTITION is not set
1046CONFIG_MSDOS_PARTITION=y
1047# CONFIG_BSD_DISKLABEL is not set
1048# CONFIG_MINIX_SUBPARTITION is not set
1049# CONFIG_SOLARIS_X86_PARTITION is not set
1050# CONFIG_UNIXWARE_DISKLABEL is not set
1051# CONFIG_LDM_PARTITION is not set
1052# CONFIG_SGI_PARTITION is not set
1053# CONFIG_ULTRIX_PARTITION is not set
1054# CONFIG_SUN_PARTITION is not set
1055# CONFIG_KARMA_PARTITION is not set
1056# CONFIG_EFI_PARTITION is not set
1057# CONFIG_SYSV68_PARTITION is not set
1058
1059#
1060# Native Language Support
1061#
1062CONFIG_NLS=y
1063CONFIG_NLS_DEFAULT="iso8859-1"
1064# CONFIG_NLS_CODEPAGE_437 is not set
1065# CONFIG_NLS_CODEPAGE_737 is not set
1066# CONFIG_NLS_CODEPAGE_775 is not set
1067# CONFIG_NLS_CODEPAGE_850 is not set
1068# CONFIG_NLS_CODEPAGE_852 is not set
1069# CONFIG_NLS_CODEPAGE_855 is not set
1070# CONFIG_NLS_CODEPAGE_857 is not set
1071# CONFIG_NLS_CODEPAGE_860 is not set
1072# CONFIG_NLS_CODEPAGE_861 is not set
1073# CONFIG_NLS_CODEPAGE_862 is not set
1074# CONFIG_NLS_CODEPAGE_863 is not set
1075# CONFIG_NLS_CODEPAGE_864 is not set
1076# CONFIG_NLS_CODEPAGE_865 is not set
1077# CONFIG_NLS_CODEPAGE_866 is not set
1078# CONFIG_NLS_CODEPAGE_869 is not set
1079# CONFIG_NLS_CODEPAGE_936 is not set
1080# CONFIG_NLS_CODEPAGE_950 is not set
1081# CONFIG_NLS_CODEPAGE_932 is not set
1082# CONFIG_NLS_CODEPAGE_949 is not set
1083# CONFIG_NLS_CODEPAGE_874 is not set
1084# CONFIG_NLS_ISO8859_8 is not set
1085# CONFIG_NLS_CODEPAGE_1250 is not set
1086# CONFIG_NLS_CODEPAGE_1251 is not set
1087# CONFIG_NLS_ASCII is not set
1088# CONFIG_NLS_ISO8859_1 is not set
1089# CONFIG_NLS_ISO8859_2 is not set
1090# CONFIG_NLS_ISO8859_3 is not set
1091# CONFIG_NLS_ISO8859_4 is not set
1092# CONFIG_NLS_ISO8859_5 is not set
1093# CONFIG_NLS_ISO8859_6 is not set
1094# CONFIG_NLS_ISO8859_7 is not set
1095# CONFIG_NLS_ISO8859_9 is not set
1096# CONFIG_NLS_ISO8859_13 is not set
1097# CONFIG_NLS_ISO8859_14 is not set
1098# CONFIG_NLS_ISO8859_15 is not set
1099# CONFIG_NLS_KOI8_R is not set
1100# CONFIG_NLS_KOI8_U is not set
1101# CONFIG_NLS_UTF8 is not set
1102
1103#
1104# Distributed Lock Manager
1105#
1106# CONFIG_DLM is not set
1107
1108#
1109# Profiling support
1110#
1111# CONFIG_PROFILING is not set
1112
1113#
1114# Kernel hacking
1115#
1116# CONFIG_PRINTK_TIME is not set
1117CONFIG_ENABLE_MUST_CHECK=y
1118CONFIG_MAGIC_SYSRQ=y
1119# CONFIG_UNUSED_SYMBOLS is not set
1120# CONFIG_DEBUG_FS is not set
1121# CONFIG_HEADERS_CHECK is not set
1122CONFIG_DEBUG_KERNEL=y
1123# CONFIG_DEBUG_SHIRQ is not set
1124CONFIG_DETECT_SOFTLOCKUP=y
1125CONFIG_SCHED_DEBUG=y
1126# CONFIG_SCHEDSTATS is not set
1127# CONFIG_TIMER_STATS is not set
1128# CONFIG_DEBUG_SLAB is not set
1129CONFIG_DEBUG_PREEMPT=y
1130# CONFIG_DEBUG_RT_MUTEXES is not set
1131# CONFIG_RT_MUTEX_TESTER is not set
1132# CONFIG_DEBUG_SPINLOCK is not set
1133# CONFIG_DEBUG_MUTEXES is not set
1134# CONFIG_DEBUG_LOCK_ALLOC is not set
1135# CONFIG_PROVE_LOCKING is not set
1136# CONFIG_LOCK_STAT is not set
1137# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1138# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1139# CONFIG_DEBUG_KOBJECT is not set
1140CONFIG_DEBUG_BUGVERBOSE=y
1141# CONFIG_DEBUG_INFO is not set
1142# CONFIG_DEBUG_VM is not set
1143# CONFIG_DEBUG_LIST is not set
1144CONFIG_FRAME_POINTER=y
1145CONFIG_FORCED_INLINING=y
1146# CONFIG_RCU_TORTURE_TEST is not set
1147# CONFIG_FAULT_INJECTION is not set
1148# CONFIG_DEBUG_USER is not set
1149# CONFIG_DEBUG_ERRORS is not set
1150# CONFIG_DEBUG_LL is not set
1151
1152#
1153# Security options
1154#
1155# CONFIG_KEYS is not set
1156# CONFIG_SECURITY is not set
1157# CONFIG_CRYPTO is not set
1158
1159#
1160# Library routines
1161#
1162CONFIG_BITREVERSE=y
1163# CONFIG_CRC_CCITT is not set
1164# CONFIG_CRC16 is not set
1165# CONFIG_CRC_ITU_T is not set
1166CONFIG_CRC32=y
1167# CONFIG_CRC7 is not set
1168# CONFIG_LIBCRC32C is not set
1169CONFIG_PLIST=y
1170CONFIG_HAS_IOMEM=y
1171CONFIG_HAS_IOPORT=y
1172CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_generic_1610_defconfig b/arch/arm/configs/omap_generic_1610_defconfig
new file mode 100644
index 00000000000..fc66f019d56
--- /dev/null
+++ b/arch/arm/configs/omap_generic_1610_defconfig
@@ -0,0 +1,1178 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 13:01:27 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36CONFIG_LOCALVERSION_AUTO=y
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47CONFIG_SYSFS_DEPRECATED=y
48# CONFIG_RELAY is not set
49CONFIG_BLK_DEV_INITRD=y
50CONFIG_INITRAMFS_SOURCE=""
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53# CONFIG_EMBEDDED is not set
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_ALL is not set
58# CONFIG_KALLSYMS_EXTRA_PASS is not set
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y
79CONFIG_MODULE_UNLOAD=y
80CONFIG_MODULE_FORCE_UNLOAD=y
81# CONFIG_MODVERSIONS is not set
82# CONFIG_MODULE_SRCVERSION_ALL is not set
83CONFIG_KMOD=y
84CONFIG_BLOCK=y
85# CONFIG_LBD is not set
86# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set
88# CONFIG_BLK_DEV_BSG is not set
89
90#
91# IO Schedulers
92#
93CONFIG_IOSCHED_NOOP=y
94CONFIG_IOSCHED_AS=y
95CONFIG_IOSCHED_DEADLINE=y
96CONFIG_IOSCHED_CFQ=y
97# CONFIG_DEFAULT_AS is not set
98# CONFIG_DEFAULT_DEADLINE is not set
99CONFIG_DEFAULT_CFQ=y
100# CONFIG_DEFAULT_NOOP is not set
101CONFIG_DEFAULT_IOSCHED="cfq"
102
103#
104# System Type
105#
106# CONFIG_ARCH_AAEC2000 is not set
107# CONFIG_ARCH_INTEGRATOR is not set
108# CONFIG_ARCH_REALVIEW is not set
109# CONFIG_ARCH_VERSATILE is not set
110# CONFIG_ARCH_AT91 is not set
111# CONFIG_ARCH_CLPS7500 is not set
112# CONFIG_ARCH_CLPS711X is not set
113# CONFIG_ARCH_CO285 is not set
114# CONFIG_ARCH_EBSA110 is not set
115# CONFIG_ARCH_EP93XX is not set
116# CONFIG_ARCH_FOOTBRIDGE is not set
117# CONFIG_ARCH_NETX is not set
118# CONFIG_ARCH_H720X is not set
119# CONFIG_ARCH_IMX is not set
120# CONFIG_ARCH_IOP13XX is not set
121# CONFIG_ARCH_IOP32X is not set
122# CONFIG_ARCH_IOP33X is not set
123# CONFIG_ARCH_IXP23XX is not set
124# CONFIG_ARCH_IXP2000 is not set
125# CONFIG_ARCH_IXP4XX is not set
126# CONFIG_ARCH_L7200 is not set
127# CONFIG_ARCH_KS8695 is not set
128# CONFIG_ARCH_NS9XXX is not set
129# CONFIG_ARCH_MXC is not set
130# CONFIG_ARCH_PNX4008 is not set
131# CONFIG_ARCH_PXA is not set
132# CONFIG_ARCH_RPC is not set
133# CONFIG_ARCH_SA1100 is not set
134# CONFIG_ARCH_S3C2410 is not set
135# CONFIG_ARCH_SHARK is not set
136# CONFIG_ARCH_LH7A40X is not set
137# CONFIG_ARCH_DAVINCI is not set
138CONFIG_ARCH_OMAP=y
139
140#
141# TI OMAP Implementations
142#
143CONFIG_ARCH_OMAP_OTG=y
144CONFIG_ARCH_OMAP1=y
145# CONFIG_ARCH_OMAP2 is not set
146# CONFIG_ARCH_OMAP3 is not set
147
148#
149# OMAP Feature Selections
150#
151# CONFIG_OMAP_RESET_CLOCKS is not set
152# CONFIG_OMAP_BOOT_TAG is not set
153# CONFIG_OMAP_GPIO_SWITCH is not set
154CONFIG_OMAP_MUX=y
155# CONFIG_OMAP_MUX_DEBUG is not set
156CONFIG_OMAP_MUX_WARNINGS=y
157# CONFIG_OMAP_STI is not set
158CONFIG_OMAP_MCBSP=y
159# CONFIG_OMAP_MMU_FWK is not set
160# CONFIG_OMAP_MBOX_FWK is not set
161CONFIG_OMAP_MPU_TIMER=y
162# CONFIG_OMAP_32K_TIMER is not set
163# CONFIG_OMAP_DM_TIMER is not set
164CONFIG_OMAP_LL_DEBUG_UART1=y
165# CONFIG_OMAP_LL_DEBUG_UART2 is not set
166# CONFIG_OMAP_LL_DEBUG_UART3 is not set
167CONFIG_OMAP_SERIAL_WAKE=y
168# CONFIG_OMAP_DSP is not set
169
170#
171# OMAP Core Type
172#
173# CONFIG_ARCH_OMAP730 is not set
174# CONFIG_ARCH_OMAP15XX is not set
175CONFIG_ARCH_OMAP16XX=y
176
177#
178# OMAP Board Type
179#
180# CONFIG_MACH_OMAP_INNOVATOR is not set
181# CONFIG_MACH_OMAP_H2 is not set
182# CONFIG_MACH_OMAP_H3 is not set
183# CONFIG_MACH_OMAP_OSK is not set
184# CONFIG_MACH_NOKIA770 is not set
185CONFIG_MACH_OMAP_GENERIC=y
186
187#
188# OMAP CPU Speed
189#
190# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
191# CONFIG_OMAP_ARM_216MHZ is not set
192CONFIG_OMAP_ARM_192MHZ=y
193# CONFIG_OMAP_ARM_168MHZ is not set
194# CONFIG_OMAP_ARM_120MHZ is not set
195# CONFIG_OMAP_ARM_60MHZ is not set
196# CONFIG_OMAP_ARM_30MHZ is not set
197# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
198
199#
200# Boot options
201#
202
203#
204# Power management
205#
206
207#
208# Processor Type
209#
210CONFIG_CPU_32=y
211CONFIG_CPU_ARM926T=y
212CONFIG_CPU_32v5=y
213CONFIG_CPU_ABRT_EV5TJ=y
214CONFIG_CPU_PABRT_NOIFAR=y
215CONFIG_CPU_CACHE_VIVT=y
216CONFIG_CPU_COPY_V4WB=y
217CONFIG_CPU_TLB_V4WBI=y
218CONFIG_CPU_CP15=y
219CONFIG_CPU_CP15_MMU=y
220
221#
222# Processor Features
223#
224# CONFIG_ARM_THUMB is not set
225# CONFIG_CPU_ICACHE_DISABLE is not set
226# CONFIG_CPU_DCACHE_DISABLE is not set
227# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
228# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
229# CONFIG_OUTER_CACHE is not set
230
231#
232# Bus support
233#
234# CONFIG_PCI_SYSCALL is not set
235# CONFIG_ARCH_SUPPORTS_MSI is not set
236
237#
238# PCCARD (PCMCIA/CardBus) support
239#
240# CONFIG_PCCARD is not set
241
242#
243# Kernel Features
244#
245# CONFIG_TICK_ONESHOT is not set
246# CONFIG_NO_HZ is not set
247# CONFIG_HIGH_RES_TIMERS is not set
248CONFIG_PREEMPT=y
249CONFIG_HZ=100
250# CONFIG_AEABI is not set
251# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
252CONFIG_SELECT_MEMORY_MODEL=y
253CONFIG_FLATMEM_MANUAL=y
254# CONFIG_DISCONTIGMEM_MANUAL is not set
255# CONFIG_SPARSEMEM_MANUAL is not set
256CONFIG_FLATMEM=y
257CONFIG_FLAT_NODE_MEM_MAP=y
258# CONFIG_SPARSEMEM_STATIC is not set
259CONFIG_SPLIT_PTLOCK_CPUS=4096
260# CONFIG_RESOURCES_64BIT is not set
261CONFIG_ZONE_DMA_FLAG=1
262CONFIG_BOUNCE=y
263CONFIG_VIRT_TO_BUS=y
264# CONFIG_LEDS is not set
265CONFIG_ALIGNMENT_TRAP=y
266
267#
268# Boot options
269#
270CONFIG_ZBOOT_ROM_TEXT=0x0
271CONFIG_ZBOOT_ROM_BSS=0x0
272CONFIG_CMDLINE="mem=64M console=ttyS2,115200 root=0803 ro init=/bin/sh"
273# CONFIG_XIP_KERNEL is not set
274# CONFIG_KEXEC is not set
275
276#
277# CPU Frequency scaling
278#
279# CONFIG_CPU_FREQ is not set
280
281#
282# Floating point emulation
283#
284
285#
286# At least one emulation must be selected
287#
288CONFIG_FPE_NWFPE=y
289# CONFIG_FPE_NWFPE_XP is not set
290# CONFIG_FPE_FASTFPE is not set
291# CONFIG_VFP is not set
292
293#
294# Userspace binary formats
295#
296CONFIG_BINFMT_ELF=y
297# CONFIG_BINFMT_AOUT is not set
298# CONFIG_BINFMT_MISC is not set
299# CONFIG_ARTHUR is not set
300
301#
302# Power management options
303#
304CONFIG_PM=y
305# CONFIG_PM_LEGACY is not set
306# CONFIG_PM_DEBUG is not set
307CONFIG_PM_SLEEP=y
308CONFIG_SUSPEND_UP_POSSIBLE=y
309CONFIG_SUSPEND=y
310# CONFIG_APM_EMULATION is not set
311
312#
313# Networking
314#
315CONFIG_NET=y
316
317#
318# Networking options
319#
320CONFIG_PACKET=y
321# CONFIG_PACKET_MMAP is not set
322CONFIG_UNIX=y
323CONFIG_XFRM=y
324# CONFIG_XFRM_USER is not set
325# CONFIG_XFRM_SUB_POLICY is not set
326# CONFIG_XFRM_MIGRATE is not set
327# CONFIG_NET_KEY is not set
328CONFIG_INET=y
329CONFIG_IP_MULTICAST=y
330# CONFIG_IP_ADVANCED_ROUTER is not set
331CONFIG_IP_FIB_HASH=y
332CONFIG_IP_PNP=y
333CONFIG_IP_PNP_DHCP=y
334CONFIG_IP_PNP_BOOTP=y
335# CONFIG_IP_PNP_RARP is not set
336# CONFIG_NET_IPIP is not set
337# CONFIG_NET_IPGRE is not set
338# CONFIG_IP_MROUTE is not set
339# CONFIG_ARPD is not set
340# CONFIG_SYN_COOKIES is not set
341# CONFIG_INET_AH is not set
342# CONFIG_INET_ESP is not set
343# CONFIG_INET_IPCOMP is not set
344# CONFIG_INET_XFRM_TUNNEL is not set
345# CONFIG_INET_TUNNEL is not set
346CONFIG_INET_XFRM_MODE_TRANSPORT=y
347CONFIG_INET_XFRM_MODE_TUNNEL=y
348CONFIG_INET_XFRM_MODE_BEET=y
349CONFIG_INET_DIAG=y
350CONFIG_INET_TCP_DIAG=y
351# CONFIG_TCP_CONG_ADVANCED is not set
352CONFIG_TCP_CONG_CUBIC=y
353CONFIG_DEFAULT_TCP_CONG="cubic"
354# CONFIG_TCP_MD5SIG is not set
355# CONFIG_IPV6 is not set
356# CONFIG_INET6_XFRM_TUNNEL is not set
357# CONFIG_INET6_TUNNEL is not set
358# CONFIG_NETWORK_SECMARK is not set
359# CONFIG_NETFILTER is not set
360# CONFIG_IP_DCCP is not set
361# CONFIG_IP_SCTP is not set
362# CONFIG_TIPC is not set
363# CONFIG_ATM is not set
364# CONFIG_BRIDGE is not set
365# CONFIG_VLAN_8021Q is not set
366# CONFIG_DECNET is not set
367# CONFIG_LLC2 is not set
368# CONFIG_IPX is not set
369# CONFIG_ATALK is not set
370# CONFIG_X25 is not set
371# CONFIG_LAPB is not set
372# CONFIG_ECONET is not set
373# CONFIG_WAN_ROUTER is not set
374
375#
376# QoS and/or fair queueing
377#
378# CONFIG_NET_SCHED is not set
379
380#
381# Network testing
382#
383# CONFIG_NET_PKTGEN is not set
384# CONFIG_HAMRADIO is not set
385# CONFIG_IRDA is not set
386# CONFIG_BT is not set
387# CONFIG_AF_RXRPC is not set
388
389#
390# Wireless
391#
392# CONFIG_CFG80211 is not set
393# CONFIG_WIRELESS_EXT is not set
394# CONFIG_MAC80211 is not set
395# CONFIG_IEEE80211 is not set
396# CONFIG_RFKILL is not set
397# CONFIG_NET_9P is not set
398
399#
400# Device Drivers
401#
402
403#
404# Generic Driver Options
405#
406CONFIG_STANDALONE=y
407CONFIG_PREVENT_FIRMWARE_BUILD=y
408# CONFIG_FW_LOADER is not set
409# CONFIG_DEBUG_DRIVER is not set
410# CONFIG_DEBUG_DEVRES is not set
411# CONFIG_SYS_HYPERVISOR is not set
412# CONFIG_CONNECTOR is not set
413# CONFIG_MTD is not set
414# CONFIG_PARPORT is not set
415CONFIG_BLK_DEV=y
416# CONFIG_BLK_DEV_COW_COMMON is not set
417CONFIG_BLK_DEV_LOOP=y
418# CONFIG_BLK_DEV_CRYPTOLOOP is not set
419# CONFIG_BLK_DEV_NBD is not set
420# CONFIG_BLK_DEV_UB is not set
421CONFIG_BLK_DEV_RAM=y
422CONFIG_BLK_DEV_RAM_COUNT=16
423CONFIG_BLK_DEV_RAM_SIZE=8192
424CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
425# CONFIG_CDROM_PKTCDVD is not set
426# CONFIG_ATA_OVER_ETH is not set
427
428#
429# SCSI device support
430#
431# CONFIG_RAID_ATTRS is not set
432CONFIG_SCSI=y
433CONFIG_SCSI_DMA=y
434# CONFIG_SCSI_TGT is not set
435# CONFIG_SCSI_NETLINK is not set
436CONFIG_SCSI_PROC_FS=y
437
438#
439# SCSI support type (disk, tape, CD-ROM)
440#
441CONFIG_BLK_DEV_SD=y
442# CONFIG_CHR_DEV_ST is not set
443# CONFIG_CHR_DEV_OSST is not set
444CONFIG_BLK_DEV_SR=y
445# CONFIG_BLK_DEV_SR_VENDOR is not set
446CONFIG_CHR_DEV_SG=y
447# CONFIG_CHR_DEV_SCH is not set
448
449#
450# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
451#
452CONFIG_SCSI_MULTI_LUN=y
453# CONFIG_SCSI_CONSTANTS is not set
454# CONFIG_SCSI_LOGGING is not set
455# CONFIG_SCSI_SCAN_ASYNC is not set
456CONFIG_SCSI_WAIT_SCAN=m
457
458#
459# SCSI Transports
460#
461# CONFIG_SCSI_SPI_ATTRS is not set
462# CONFIG_SCSI_FC_ATTRS is not set
463# CONFIG_SCSI_ISCSI_ATTRS is not set
464# CONFIG_SCSI_SAS_LIBSAS is not set
465CONFIG_SCSI_LOWLEVEL=y
466# CONFIG_ISCSI_TCP is not set
467# CONFIG_SCSI_DEBUG is not set
468# CONFIG_ATA is not set
469# CONFIG_MD is not set
470CONFIG_NETDEVICES=y
471# CONFIG_NETDEVICES_MULTIQUEUE is not set
472# CONFIG_DUMMY is not set
473# CONFIG_BONDING is not set
474# CONFIG_MACVLAN is not set
475# CONFIG_EQUALIZER is not set
476# CONFIG_TUN is not set
477# CONFIG_PHYLIB is not set
478CONFIG_NET_ETHERNET=y
479CONFIG_MII=y
480# CONFIG_AX88796 is not set
481# CONFIG_SMC91X is not set
482# CONFIG_DM9000 is not set
483CONFIG_NETDEV_1000=y
484CONFIG_NETDEV_10000=y
485
486#
487# Wireless LAN
488#
489# CONFIG_WLAN_PRE80211 is not set
490# CONFIG_WLAN_80211 is not set
491
492#
493# USB Network Adapters
494#
495# CONFIG_USB_CATC is not set
496# CONFIG_USB_KAWETH is not set
497# CONFIG_USB_PEGASUS is not set
498CONFIG_USB_RTL8150=y
499CONFIG_USB_USBNET_MII=y
500CONFIG_USB_USBNET=y
501CONFIG_USB_NET_AX8817X=y
502CONFIG_USB_NET_CDCETHER=y
503# CONFIG_USB_NET_DM9601 is not set
504# CONFIG_USB_NET_GL620A is not set
505CONFIG_USB_NET_NET1080=y
506# CONFIG_USB_NET_PLUSB is not set
507# CONFIG_USB_NET_MCS7830 is not set
508# CONFIG_USB_NET_RNDIS_HOST is not set
509CONFIG_USB_NET_CDC_SUBSET=y
510CONFIG_USB_ALI_M5632=y
511CONFIG_USB_AN2720=y
512CONFIG_USB_BELKIN=y
513CONFIG_USB_ARMLINUX=y
514CONFIG_USB_EPSON2888=y
515# CONFIG_USB_KC2190 is not set
516CONFIG_USB_NET_ZAURUS=y
517# CONFIG_WAN is not set
518CONFIG_PPP=y
519CONFIG_PPP_MULTILINK=y
520# CONFIG_PPP_FILTER is not set
521# CONFIG_PPP_ASYNC is not set
522# CONFIG_PPP_SYNC_TTY is not set
523# CONFIG_PPP_DEFLATE is not set
524# CONFIG_PPP_BSDCOMP is not set
525# CONFIG_PPP_MPPE is not set
526# CONFIG_PPPOE is not set
527# CONFIG_PPPOL2TP is not set
528# CONFIG_SLIP is not set
529CONFIG_SLHC=y
530# CONFIG_SHAPER is not set
531# CONFIG_NETCONSOLE is not set
532# CONFIG_NETPOLL is not set
533# CONFIG_NET_POLL_CONTROLLER is not set
534# CONFIG_ISDN is not set
535
536#
537# Input device support
538#
539CONFIG_INPUT=y
540# CONFIG_INPUT_FF_MEMLESS is not set
541# CONFIG_INPUT_POLLDEV is not set
542
543#
544# Userland interfaces
545#
546CONFIG_INPUT_MOUSEDEV=y
547CONFIG_INPUT_MOUSEDEV_PSAUX=y
548CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
549CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
550# CONFIG_INPUT_JOYDEV is not set
551# CONFIG_INPUT_TSDEV is not set
552# CONFIG_INPUT_EVDEV is not set
553# CONFIG_INPUT_EVBUG is not set
554
555#
556# Input Device Drivers
557#
558CONFIG_INPUT_KEYBOARD=y
559CONFIG_KEYBOARD_ATKBD=y
560# CONFIG_KEYBOARD_SUNKBD is not set
561# CONFIG_KEYBOARD_LKKBD is not set
562# CONFIG_KEYBOARD_XTKBD is not set
563# CONFIG_KEYBOARD_NEWTON is not set
564# CONFIG_KEYBOARD_STOWAWAY is not set
565CONFIG_KEYBOARD_OMAP=y
566# CONFIG_KEYBOARD_GPIO is not set
567# CONFIG_INPUT_MOUSE is not set
568# CONFIG_INPUT_JOYSTICK is not set
569# CONFIG_INPUT_TABLET is not set
570# CONFIG_INPUT_TOUCHSCREEN is not set
571# CONFIG_INPUT_MISC is not set
572
573#
574# Hardware I/O ports
575#
576CONFIG_SERIO=y
577CONFIG_SERIO_SERPORT=y
578CONFIG_SERIO_LIBPS2=y
579# CONFIG_SERIO_RAW is not set
580# CONFIG_GAMEPORT is not set
581
582#
583# Character devices
584#
585CONFIG_VT=y
586CONFIG_VT_CONSOLE=y
587CONFIG_HW_CONSOLE=y
588# CONFIG_VT_HW_CONSOLE_BINDING is not set
589# CONFIG_SERIAL_NONSTANDARD is not set
590
591#
592# Serial drivers
593#
594CONFIG_SERIAL_8250=y
595CONFIG_SERIAL_8250_CONSOLE=y
596CONFIG_SERIAL_8250_NR_UARTS=4
597CONFIG_SERIAL_8250_RUNTIME_UARTS=4
598# CONFIG_SERIAL_8250_EXTENDED is not set
599
600#
601# Non-8250 serial port support
602#
603CONFIG_SERIAL_CORE=y
604CONFIG_SERIAL_CORE_CONSOLE=y
605CONFIG_UNIX98_PTYS=y
606# CONFIG_LEGACY_PTYS is not set
607# CONFIG_IPMI_HANDLER is not set
608# CONFIG_WATCHDOG is not set
609CONFIG_HW_RANDOM=m
610CONFIG_HW_RANDOM_OMAP=m
611# CONFIG_NVRAM is not set
612# CONFIG_R3964 is not set
613# CONFIG_RAW_DRIVER is not set
614# CONFIG_TCG_TPM is not set
615CONFIG_I2C=y
616CONFIG_I2C_BOARDINFO=y
617CONFIG_I2C_CHARDEV=y
618
619#
620# I2C Algorithms
621#
622CONFIG_I2C_ALGOBIT=y
623# CONFIG_I2C_ALGOPCF is not set
624# CONFIG_I2C_ALGOPCA is not set
625
626#
627# I2C Hardware Bus support
628#
629# CONFIG_I2C_GPIO is not set
630# CONFIG_I2C_OCORES is not set
631# CONFIG_I2C_OMAP is not set
632# CONFIG_I2C_PARPORT_LIGHT is not set
633# CONFIG_I2C_SIMTEC is not set
634# CONFIG_I2C_TAOS_EVM is not set
635# CONFIG_I2C_STUB is not set
636# CONFIG_I2C_TINY_USB is not set
637
638#
639# Miscellaneous I2C Chip support
640#
641# CONFIG_SENSORS_DS1337 is not set
642# CONFIG_SENSORS_DS1374 is not set
643# CONFIG_DS1682 is not set
644# CONFIG_SENSORS_EEPROM is not set
645# CONFIG_SENSORS_PCF8574 is not set
646# CONFIG_SENSORS_PCA9539 is not set
647# CONFIG_SENSORS_PCF8591 is not set
648# CONFIG_ISP1301_OMAP is not set
649# CONFIG_TPS65010 is not set
650# CONFIG_GPIOEXPANDER_OMAP is not set
651# CONFIG_SENSORS_MAX6875 is not set
652# CONFIG_SENSORS_TSL2550 is not set
653# CONFIG_I2C_DEBUG_CORE is not set
654# CONFIG_I2C_DEBUG_ALGO is not set
655# CONFIG_I2C_DEBUG_BUS is not set
656# CONFIG_I2C_DEBUG_CHIP is not set
657
658#
659# SPI support
660#
661# CONFIG_SPI is not set
662# CONFIG_SPI_MASTER is not set
663# CONFIG_W1 is not set
664CONFIG_HWMON=y
665# CONFIG_HWMON_VID is not set
666# CONFIG_SENSORS_ABITUGURU is not set
667# CONFIG_SENSORS_ABITUGURU3 is not set
668# CONFIG_SENSORS_AD7418 is not set
669# CONFIG_SENSORS_ADM1021 is not set
670# CONFIG_SENSORS_ADM1025 is not set
671# CONFIG_SENSORS_ADM1026 is not set
672# CONFIG_SENSORS_ADM1029 is not set
673# CONFIG_SENSORS_ADM1031 is not set
674# CONFIG_SENSORS_ADM9240 is not set
675# CONFIG_SENSORS_ASB100 is not set
676# CONFIG_SENSORS_ATXP1 is not set
677# CONFIG_SENSORS_DS1621 is not set
678# CONFIG_SENSORS_F71805F is not set
679# CONFIG_SENSORS_FSCHER is not set
680# CONFIG_SENSORS_FSCPOS is not set
681# CONFIG_SENSORS_GL518SM is not set
682# CONFIG_SENSORS_GL520SM is not set
683# CONFIG_SENSORS_IT87 is not set
684# CONFIG_SENSORS_LM63 is not set
685# CONFIG_SENSORS_LM75 is not set
686# CONFIG_SENSORS_LM77 is not set
687# CONFIG_SENSORS_LM78 is not set
688# CONFIG_SENSORS_LM80 is not set
689# CONFIG_SENSORS_LM83 is not set
690# CONFIG_SENSORS_LM85 is not set
691# CONFIG_SENSORS_LM87 is not set
692# CONFIG_SENSORS_LM90 is not set
693# CONFIG_SENSORS_LM92 is not set
694# CONFIG_SENSORS_LM93 is not set
695# CONFIG_SENSORS_MAX1619 is not set
696# CONFIG_SENSORS_MAX6650 is not set
697# CONFIG_SENSORS_PC87360 is not set
698# CONFIG_SENSORS_PC87427 is not set
699# CONFIG_SENSORS_DME1737 is not set
700# CONFIG_SENSORS_SMSC47M1 is not set
701# CONFIG_SENSORS_SMSC47M192 is not set
702# CONFIG_SENSORS_SMSC47B397 is not set
703# CONFIG_SENSORS_THMC50 is not set
704# CONFIG_SENSORS_VT1211 is not set
705# CONFIG_SENSORS_W83781D is not set
706# CONFIG_SENSORS_W83791D is not set
707# CONFIG_SENSORS_W83792D is not set
708# CONFIG_SENSORS_W83793 is not set
709# CONFIG_SENSORS_W83L785TS is not set
710# CONFIG_SENSORS_W83627HF is not set
711# CONFIG_SENSORS_W83627EHF is not set
712# CONFIG_HWMON_DEBUG_CHIP is not set
713CONFIG_MISC_DEVICES=y
714# CONFIG_EEPROM_93CX6 is not set
715
716#
717# Multifunction device drivers
718#
719# CONFIG_MFD_SM501 is not set
720# CONFIG_NEW_LEDS is not set
721
722#
723# Multimedia devices
724#
725# CONFIG_VIDEO_DEV is not set
726# CONFIG_DVB_CORE is not set
727CONFIG_DAB=y
728# CONFIG_USB_DABUSB is not set
729
730#
731# Graphics support
732#
733# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
734
735#
736# Display device support
737#
738# CONFIG_DISPLAY_SUPPORT is not set
739# CONFIG_VGASTATE is not set
740CONFIG_VIDEO_OUTPUT_CONTROL=m
741# CONFIG_FB is not set
742
743#
744# Console display driver support
745#
746# CONFIG_VGA_CONSOLE is not set
747CONFIG_DUMMY_CONSOLE=y
748
749#
750# Sound
751#
752# CONFIG_SOUND is not set
753CONFIG_HID_SUPPORT=y
754CONFIG_HID=y
755# CONFIG_HID_DEBUG is not set
756
757#
758# USB Input Devices
759#
760CONFIG_USB_HID=y
761# CONFIG_USB_HIDINPUT_POWERBOOK is not set
762# CONFIG_HID_FF is not set
763# CONFIG_USB_HIDDEV is not set
764CONFIG_USB_SUPPORT=y
765CONFIG_USB_ARCH_HAS_HCD=y
766CONFIG_USB_ARCH_HAS_OHCI=y
767# CONFIG_USB_ARCH_HAS_EHCI is not set
768CONFIG_USB=y
769CONFIG_USB_DEBUG=y
770
771#
772# Miscellaneous USB options
773#
774CONFIG_USB_DEVICEFS=y
775# CONFIG_USB_DEVICE_CLASS is not set
776# CONFIG_USB_DYNAMIC_MINORS is not set
777# CONFIG_USB_SUSPEND is not set
778# CONFIG_USB_PERSIST is not set
779# CONFIG_USB_OTG is not set
780
781#
782# USB Host Controller Drivers
783#
784# CONFIG_USB_ISP116X_HCD is not set
785CONFIG_USB_OHCI_HCD=y
786# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
787# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
788CONFIG_USB_OHCI_LITTLE_ENDIAN=y
789# CONFIG_USB_SL811_HCD is not set
790# CONFIG_USB_R8A66597_HCD is not set
791# CONFIG_USB_MUSB_HDRC is not set
792
793#
794# USB Device Class drivers
795#
796# CONFIG_USB_ACM is not set
797# CONFIG_USB_PRINTER is not set
798
799#
800# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
801#
802
803#
804# may also be needed; see USB_STORAGE Help for more information
805#
806CONFIG_USB_STORAGE=y
807# CONFIG_USB_STORAGE_DEBUG is not set
808CONFIG_USB_STORAGE_DATAFAB=y
809CONFIG_USB_STORAGE_FREECOM=y
810CONFIG_USB_STORAGE_DPCM=y
811# CONFIG_USB_STORAGE_USBAT is not set
812CONFIG_USB_STORAGE_SDDR09=y
813CONFIG_USB_STORAGE_SDDR55=y
814CONFIG_USB_STORAGE_JUMPSHOT=y
815# CONFIG_USB_STORAGE_ALAUDA is not set
816# CONFIG_USB_STORAGE_KARMA is not set
817# CONFIG_USB_LIBUSUAL is not set
818
819#
820# USB Imaging devices
821#
822# CONFIG_USB_MDC800 is not set
823# CONFIG_USB_MICROTEK is not set
824CONFIG_USB_MON=y
825
826#
827# USB port drivers
828#
829
830#
831# USB Serial Converter support
832#
833# CONFIG_USB_SERIAL is not set
834
835#
836# USB Miscellaneous drivers
837#
838# CONFIG_USB_EMI62 is not set
839# CONFIG_USB_EMI26 is not set
840# CONFIG_USB_ADUTUX is not set
841# CONFIG_USB_AUERSWALD is not set
842# CONFIG_USB_RIO500 is not set
843# CONFIG_USB_LEGOTOWER is not set
844# CONFIG_USB_LCD is not set
845# CONFIG_USB_BERRY_CHARGE is not set
846# CONFIG_USB_LED is not set
847# CONFIG_USB_CYPRESS_CY7C63 is not set
848# CONFIG_USB_CYTHERM is not set
849# CONFIG_USB_PHIDGET is not set
850# CONFIG_USB_IDMOUSE is not set
851# CONFIG_USB_FTDI_ELAN is not set
852# CONFIG_USB_APPLEDISPLAY is not set
853# CONFIG_USB_LD is not set
854# CONFIG_USB_TRANCEVIBRATOR is not set
855# CONFIG_USB_IOWARRIOR is not set
856# CONFIG_USB_TEST is not set
857
858#
859# USB DSL modem support
860#
861
862#
863# USB Gadget Support
864#
865# CONFIG_USB_GADGET is not set
866CONFIG_MMC=y
867# CONFIG_MMC_DEBUG is not set
868# CONFIG_MMC_UNSAFE_RESUME is not set
869
870#
871# MMC/SD Card Drivers
872#
873CONFIG_MMC_BLOCK=y
874CONFIG_MMC_BLOCK_BOUNCE=y
875
876#
877# MMC/SD Host Controller Drivers
878#
879CONFIG_MMC_OMAP=y
880CONFIG_RTC_LIB=y
881CONFIG_RTC_CLASS=y
882CONFIG_RTC_HCTOSYS=y
883CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
884# CONFIG_RTC_DEBUG is not set
885
886#
887# RTC interfaces
888#
889CONFIG_RTC_INTF_SYSFS=y
890CONFIG_RTC_INTF_PROC=y
891CONFIG_RTC_INTF_DEV=y
892# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
893# CONFIG_RTC_DRV_TEST is not set
894
895#
896# I2C RTC drivers
897#
898# CONFIG_RTC_DRV_DS1307 is not set
899# CONFIG_RTC_DRV_DS1672 is not set
900# CONFIG_RTC_DRV_MAX6900 is not set
901# CONFIG_RTC_DRV_RS5C372 is not set
902# CONFIG_RTC_DRV_ISL1208 is not set
903# CONFIG_RTC_DRV_X1205 is not set
904# CONFIG_RTC_DRV_PCF8563 is not set
905# CONFIG_RTC_DRV_PCF8583 is not set
906# CONFIG_RTC_DRV_M41T80 is not set
907
908#
909# SPI RTC drivers
910#
911
912#
913# Platform RTC drivers
914#
915# CONFIG_RTC_DRV_CMOS is not set
916# CONFIG_RTC_DRV_DS1553 is not set
917# CONFIG_RTC_DRV_STK17TA8 is not set
918# CONFIG_RTC_DRV_DS1742 is not set
919# CONFIG_RTC_DRV_M48T86 is not set
920# CONFIG_RTC_DRV_M48T59 is not set
921# CONFIG_RTC_DRV_V3020 is not set
922
923#
924# on-CPU RTC drivers
925#
926CONFIG_RTC_DRV_OMAP=y
927
928#
929# DMA Engine support
930#
931# CONFIG_DMA_ENGINE is not set
932
933#
934# DMA Clients
935#
936
937#
938# DMA Devices
939#
940
941#
942# CBUS support
943#
944# CONFIG_CBUS is not set
945
946#
947# File systems
948#
949CONFIG_EXT2_FS=y
950# CONFIG_EXT2_FS_XATTR is not set
951# CONFIG_EXT2_FS_XIP is not set
952CONFIG_EXT3_FS=y
953CONFIG_EXT3_FS_XATTR=y
954# CONFIG_EXT3_FS_POSIX_ACL is not set
955# CONFIG_EXT3_FS_SECURITY is not set
956# CONFIG_EXT4DEV_FS is not set
957CONFIG_JBD=y
958# CONFIG_JBD_DEBUG is not set
959CONFIG_FS_MBCACHE=y
960# CONFIG_REISERFS_FS is not set
961# CONFIG_JFS_FS is not set
962# CONFIG_FS_POSIX_ACL is not set
963# CONFIG_XFS_FS is not set
964# CONFIG_GFS2_FS is not set
965# CONFIG_OCFS2_FS is not set
966# CONFIG_MINIX_FS is not set
967# CONFIG_ROMFS_FS is not set
968CONFIG_INOTIFY=y
969CONFIG_INOTIFY_USER=y
970# CONFIG_QUOTA is not set
971CONFIG_DNOTIFY=y
972CONFIG_AUTOFS_FS=y
973CONFIG_AUTOFS4_FS=y
974# CONFIG_FUSE_FS is not set
975
976#
977# CD-ROM/DVD Filesystems
978#
979CONFIG_ISO9660_FS=y
980CONFIG_JOLIET=y
981# CONFIG_ZISOFS is not set
982# CONFIG_UDF_FS is not set
983
984#
985# DOS/FAT/NT Filesystems
986#
987CONFIG_FAT_FS=m
988CONFIG_MSDOS_FS=m
989CONFIG_VFAT_FS=m
990CONFIG_FAT_DEFAULT_CODEPAGE=437
991CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
992# CONFIG_NTFS_FS is not set
993
994#
995# Pseudo filesystems
996#
997CONFIG_PROC_FS=y
998CONFIG_PROC_SYSCTL=y
999CONFIG_SYSFS=y
1000# CONFIG_TMPFS is not set
1001# CONFIG_HUGETLB_PAGE is not set
1002CONFIG_RAMFS=y
1003# CONFIG_CONFIGFS_FS is not set
1004
1005#
1006# Miscellaneous filesystems
1007#
1008# CONFIG_ADFS_FS is not set
1009# CONFIG_AFFS_FS is not set
1010# CONFIG_HFS_FS is not set
1011# CONFIG_HFSPLUS_FS is not set
1012# CONFIG_BEFS_FS is not set
1013# CONFIG_BFS_FS is not set
1014# CONFIG_EFS_FS is not set
1015# CONFIG_CRAMFS is not set
1016# CONFIG_VXFS_FS is not set
1017# CONFIG_HPFS_FS is not set
1018# CONFIG_QNX4FS_FS is not set
1019# CONFIG_SYSV_FS is not set
1020# CONFIG_UFS_FS is not set
1021
1022#
1023# Network File Systems
1024#
1025CONFIG_NFS_FS=y
1026# CONFIG_NFS_V3 is not set
1027# CONFIG_NFS_V4 is not set
1028# CONFIG_NFS_DIRECTIO is not set
1029# CONFIG_NFSD is not set
1030# CONFIG_ROOT_NFS is not set
1031CONFIG_LOCKD=y
1032CONFIG_NFS_COMMON=y
1033CONFIG_SUNRPC=y
1034# CONFIG_SUNRPC_BIND34 is not set
1035# CONFIG_RPCSEC_GSS_KRB5 is not set
1036# CONFIG_RPCSEC_GSS_SPKM3 is not set
1037# CONFIG_SMB_FS is not set
1038# CONFIG_CIFS is not set
1039# CONFIG_NCP_FS is not set
1040# CONFIG_CODA_FS is not set
1041# CONFIG_AFS_FS is not set
1042
1043#
1044# Partition Types
1045#
1046CONFIG_PARTITION_ADVANCED=y
1047# CONFIG_ACORN_PARTITION is not set
1048# CONFIG_OSF_PARTITION is not set
1049# CONFIG_AMIGA_PARTITION is not set
1050# CONFIG_ATARI_PARTITION is not set
1051# CONFIG_MAC_PARTITION is not set
1052CONFIG_MSDOS_PARTITION=y
1053# CONFIG_BSD_DISKLABEL is not set
1054# CONFIG_MINIX_SUBPARTITION is not set
1055# CONFIG_SOLARIS_X86_PARTITION is not set
1056# CONFIG_UNIXWARE_DISKLABEL is not set
1057# CONFIG_LDM_PARTITION is not set
1058# CONFIG_SGI_PARTITION is not set
1059# CONFIG_ULTRIX_PARTITION is not set
1060# CONFIG_SUN_PARTITION is not set
1061# CONFIG_KARMA_PARTITION is not set
1062# CONFIG_EFI_PARTITION is not set
1063# CONFIG_SYSV68_PARTITION is not set
1064
1065#
1066# Native Language Support
1067#
1068CONFIG_NLS=y
1069CONFIG_NLS_DEFAULT="iso8859-1"
1070# CONFIG_NLS_CODEPAGE_437 is not set
1071# CONFIG_NLS_CODEPAGE_737 is not set
1072# CONFIG_NLS_CODEPAGE_775 is not set
1073# CONFIG_NLS_CODEPAGE_850 is not set
1074# CONFIG_NLS_CODEPAGE_852 is not set
1075# CONFIG_NLS_CODEPAGE_855 is not set
1076# CONFIG_NLS_CODEPAGE_857 is not set
1077# CONFIG_NLS_CODEPAGE_860 is not set
1078# CONFIG_NLS_CODEPAGE_861 is not set
1079# CONFIG_NLS_CODEPAGE_862 is not set
1080# CONFIG_NLS_CODEPAGE_863 is not set
1081# CONFIG_NLS_CODEPAGE_864 is not set
1082# CONFIG_NLS_CODEPAGE_865 is not set
1083# CONFIG_NLS_CODEPAGE_866 is not set
1084# CONFIG_NLS_CODEPAGE_869 is not set
1085# CONFIG_NLS_CODEPAGE_936 is not set
1086# CONFIG_NLS_CODEPAGE_950 is not set
1087# CONFIG_NLS_CODEPAGE_932 is not set
1088# CONFIG_NLS_CODEPAGE_949 is not set
1089# CONFIG_NLS_CODEPAGE_874 is not set
1090# CONFIG_NLS_ISO8859_8 is not set
1091# CONFIG_NLS_CODEPAGE_1250 is not set
1092# CONFIG_NLS_CODEPAGE_1251 is not set
1093# CONFIG_NLS_ASCII is not set
1094# CONFIG_NLS_ISO8859_1 is not set
1095# CONFIG_NLS_ISO8859_2 is not set
1096# CONFIG_NLS_ISO8859_3 is not set
1097# CONFIG_NLS_ISO8859_4 is not set
1098# CONFIG_NLS_ISO8859_5 is not set
1099# CONFIG_NLS_ISO8859_6 is not set
1100# CONFIG_NLS_ISO8859_7 is not set
1101# CONFIG_NLS_ISO8859_9 is not set
1102# CONFIG_NLS_ISO8859_13 is not set
1103# CONFIG_NLS_ISO8859_14 is not set
1104# CONFIG_NLS_ISO8859_15 is not set
1105# CONFIG_NLS_KOI8_R is not set
1106# CONFIG_NLS_KOI8_U is not set
1107# CONFIG_NLS_UTF8 is not set
1108
1109#
1110# Distributed Lock Manager
1111#
1112# CONFIG_DLM is not set
1113
1114#
1115# Profiling support
1116#
1117# CONFIG_PROFILING is not set
1118
1119#
1120# Kernel hacking
1121#
1122# CONFIG_PRINTK_TIME is not set
1123CONFIG_ENABLE_MUST_CHECK=y
1124CONFIG_MAGIC_SYSRQ=y
1125# CONFIG_UNUSED_SYMBOLS is not set
1126# CONFIG_DEBUG_FS is not set
1127# CONFIG_HEADERS_CHECK is not set
1128CONFIG_DEBUG_KERNEL=y
1129# CONFIG_DEBUG_SHIRQ is not set
1130CONFIG_DETECT_SOFTLOCKUP=y
1131CONFIG_SCHED_DEBUG=y
1132# CONFIG_SCHEDSTATS is not set
1133# CONFIG_TIMER_STATS is not set
1134# CONFIG_DEBUG_SLAB is not set
1135CONFIG_DEBUG_PREEMPT=y
1136# CONFIG_DEBUG_RT_MUTEXES is not set
1137# CONFIG_RT_MUTEX_TESTER is not set
1138# CONFIG_DEBUG_SPINLOCK is not set
1139# CONFIG_DEBUG_MUTEXES is not set
1140# CONFIG_DEBUG_LOCK_ALLOC is not set
1141# CONFIG_PROVE_LOCKING is not set
1142# CONFIG_LOCK_STAT is not set
1143# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1144# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1145# CONFIG_DEBUG_KOBJECT is not set
1146CONFIG_DEBUG_BUGVERBOSE=y
1147# CONFIG_DEBUG_INFO is not set
1148# CONFIG_DEBUG_VM is not set
1149# CONFIG_DEBUG_LIST is not set
1150CONFIG_FRAME_POINTER=y
1151CONFIG_FORCED_INLINING=y
1152# CONFIG_RCU_TORTURE_TEST is not set
1153# CONFIG_FAULT_INJECTION is not set
1154# CONFIG_DEBUG_USER is not set
1155# CONFIG_DEBUG_ERRORS is not set
1156# CONFIG_DEBUG_LL is not set
1157
1158#
1159# Security options
1160#
1161# CONFIG_KEYS is not set
1162# CONFIG_SECURITY is not set
1163# CONFIG_CRYPTO is not set
1164
1165#
1166# Library routines
1167#
1168CONFIG_BITREVERSE=y
1169# CONFIG_CRC_CCITT is not set
1170# CONFIG_CRC16 is not set
1171# CONFIG_CRC_ITU_T is not set
1172CONFIG_CRC32=y
1173# CONFIG_CRC7 is not set
1174# CONFIG_LIBCRC32C is not set
1175CONFIG_PLIST=y
1176CONFIG_HAS_IOMEM=y
1177CONFIG_HAS_IOPORT=y
1178CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_generic_1710_defconfig b/arch/arm/configs/omap_generic_1710_defconfig
new file mode 100644
index 00000000000..0a00a708a4f
--- /dev/null
+++ b/arch/arm/configs/omap_generic_1710_defconfig
@@ -0,0 +1,1088 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 13:02:08 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34CONFIG_LOCALVERSION=""
35CONFIG_LOCALVERSION_AUTO=y
36CONFIG_SWAP=y
37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_POSIX_MQUEUE is not set
40# CONFIG_BSD_PROCESS_ACCT is not set
41# CONFIG_TASKSTATS is not set
42# CONFIG_USER_NS is not set
43# CONFIG_AUDIT is not set
44# CONFIG_IKCONFIG is not set
45CONFIG_LOG_BUF_SHIFT=14
46CONFIG_SYSFS_DEPRECATED=y
47# CONFIG_RELAY is not set
48CONFIG_BLK_DEV_INITRD=y
49CONFIG_INITRAMFS_SOURCE=""
50CONFIG_CC_OPTIMIZE_FOR_SIZE=y
51CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_KALLSYMS=y
56# CONFIG_KALLSYMS_ALL is not set
57# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y
59CONFIG_PRINTK=y
60CONFIG_BUG=y
61CONFIG_ELF_CORE=y
62CONFIG_BASE_FULL=y
63CONFIG_FUTEX=y
64CONFIG_ANON_INODES=y
65CONFIG_EPOLL=y
66CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y
69CONFIG_SHMEM=y
70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLUB_DEBUG=y
72# CONFIG_SLAB is not set
73CONFIG_SLUB=y
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78# CONFIG_MODULES is not set
79CONFIG_BLOCK=y
80# CONFIG_LBD is not set
81# CONFIG_BLK_DEV_IO_TRACE is not set
82# CONFIG_LSF is not set
83# CONFIG_BLK_DEV_BSG is not set
84
85#
86# IO Schedulers
87#
88CONFIG_IOSCHED_NOOP=y
89CONFIG_IOSCHED_AS=y
90CONFIG_IOSCHED_DEADLINE=y
91CONFIG_IOSCHED_CFQ=y
92# CONFIG_DEFAULT_AS is not set
93# CONFIG_DEFAULT_DEADLINE is not set
94CONFIG_DEFAULT_CFQ=y
95# CONFIG_DEFAULT_NOOP is not set
96CONFIG_DEFAULT_IOSCHED="cfq"
97
98#
99# System Type
100#
101# CONFIG_ARCH_AAEC2000 is not set
102# CONFIG_ARCH_INTEGRATOR is not set
103# CONFIG_ARCH_REALVIEW is not set
104# CONFIG_ARCH_VERSATILE is not set
105# CONFIG_ARCH_AT91 is not set
106# CONFIG_ARCH_CLPS7500 is not set
107# CONFIG_ARCH_CLPS711X is not set
108# CONFIG_ARCH_CO285 is not set
109# CONFIG_ARCH_EBSA110 is not set
110# CONFIG_ARCH_EP93XX is not set
111# CONFIG_ARCH_FOOTBRIDGE is not set
112# CONFIG_ARCH_NETX is not set
113# CONFIG_ARCH_H720X is not set
114# CONFIG_ARCH_IMX is not set
115# CONFIG_ARCH_IOP13XX is not set
116# CONFIG_ARCH_IOP32X is not set
117# CONFIG_ARCH_IOP33X is not set
118# CONFIG_ARCH_IXP23XX is not set
119# CONFIG_ARCH_IXP2000 is not set
120# CONFIG_ARCH_IXP4XX is not set
121# CONFIG_ARCH_L7200 is not set
122# CONFIG_ARCH_KS8695 is not set
123# CONFIG_ARCH_NS9XXX is not set
124# CONFIG_ARCH_MXC is not set
125# CONFIG_ARCH_PNX4008 is not set
126# CONFIG_ARCH_PXA is not set
127# CONFIG_ARCH_RPC is not set
128# CONFIG_ARCH_SA1100 is not set
129# CONFIG_ARCH_S3C2410 is not set
130# CONFIG_ARCH_SHARK is not set
131# CONFIG_ARCH_LH7A40X is not set
132# CONFIG_ARCH_DAVINCI is not set
133CONFIG_ARCH_OMAP=y
134
135#
136# TI OMAP Implementations
137#
138CONFIG_ARCH_OMAP_OTG=y
139CONFIG_ARCH_OMAP1=y
140# CONFIG_ARCH_OMAP2 is not set
141# CONFIG_ARCH_OMAP3 is not set
142
143#
144# OMAP Feature Selections
145#
146# CONFIG_OMAP_RESET_CLOCKS is not set
147CONFIG_OMAP_BOOT_TAG=y
148# CONFIG_OMAP_BOOT_REASON is not set
149# CONFIG_OMAP_COMPONENT_VERSION is not set
150# CONFIG_OMAP_GPIO_SWITCH is not set
151# CONFIG_OMAP_MUX is not set
152# CONFIG_OMAP_STI is not set
153CONFIG_OMAP_MCBSP=y
154# CONFIG_OMAP_MMU_FWK is not set
155# CONFIG_OMAP_MBOX_FWK is not set
156CONFIG_OMAP_MPU_TIMER=y
157# CONFIG_OMAP_32K_TIMER is not set
158# CONFIG_OMAP_DM_TIMER is not set
159# CONFIG_OMAP_LL_DEBUG_UART1 is not set
160# CONFIG_OMAP_LL_DEBUG_UART2 is not set
161CONFIG_OMAP_LL_DEBUG_UART3=y
162# CONFIG_OMAP_DSP is not set
163
164#
165# OMAP Core Type
166#
167# CONFIG_ARCH_OMAP730 is not set
168# CONFIG_ARCH_OMAP15XX is not set
169CONFIG_ARCH_OMAP16XX=y
170
171#
172# OMAP Board Type
173#
174# CONFIG_MACH_OMAP_INNOVATOR is not set
175# CONFIG_MACH_OMAP_H2 is not set
176# CONFIG_MACH_OMAP_H3 is not set
177# CONFIG_MACH_OMAP_OSK is not set
178# CONFIG_MACH_NOKIA770 is not set
179CONFIG_MACH_OMAP_GENERIC=y
180
181#
182# OMAP CPU Speed
183#
184# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
185# CONFIG_OMAP_ARM_216MHZ is not set
186CONFIG_OMAP_ARM_192MHZ=y
187# CONFIG_OMAP_ARM_168MHZ is not set
188# CONFIG_OMAP_ARM_120MHZ is not set
189# CONFIG_OMAP_ARM_60MHZ is not set
190# CONFIG_OMAP_ARM_30MHZ is not set
191# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
192
193#
194# Boot options
195#
196
197#
198# Power management
199#
200
201#
202# Processor Type
203#
204CONFIG_CPU_32=y
205CONFIG_CPU_ARM926T=y
206CONFIG_CPU_32v5=y
207CONFIG_CPU_ABRT_EV5TJ=y
208CONFIG_CPU_PABRT_NOIFAR=y
209CONFIG_CPU_CACHE_VIVT=y
210CONFIG_CPU_COPY_V4WB=y
211CONFIG_CPU_TLB_V4WBI=y
212CONFIG_CPU_CP15=y
213CONFIG_CPU_CP15_MMU=y
214
215#
216# Processor Features
217#
218# CONFIG_ARM_THUMB is not set
219# CONFIG_CPU_ICACHE_DISABLE is not set
220# CONFIG_CPU_DCACHE_DISABLE is not set
221# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
222# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
223# CONFIG_OUTER_CACHE is not set
224
225#
226# Bus support
227#
228# CONFIG_PCI_SYSCALL is not set
229# CONFIG_ARCH_SUPPORTS_MSI is not set
230
231#
232# PCCARD (PCMCIA/CardBus) support
233#
234# CONFIG_PCCARD is not set
235
236#
237# Kernel Features
238#
239# CONFIG_TICK_ONESHOT is not set
240# CONFIG_NO_HZ is not set
241# CONFIG_HIGH_RES_TIMERS is not set
242# CONFIG_PREEMPT is not set
243CONFIG_HZ=100
244# CONFIG_AEABI is not set
245# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
246CONFIG_SELECT_MEMORY_MODEL=y
247CONFIG_FLATMEM_MANUAL=y
248# CONFIG_DISCONTIGMEM_MANUAL is not set
249# CONFIG_SPARSEMEM_MANUAL is not set
250CONFIG_FLATMEM=y
251CONFIG_FLAT_NODE_MEM_MAP=y
252# CONFIG_SPARSEMEM_STATIC is not set
253CONFIG_SPLIT_PTLOCK_CPUS=4096
254# CONFIG_RESOURCES_64BIT is not set
255CONFIG_ZONE_DMA_FLAG=1
256CONFIG_BOUNCE=y
257CONFIG_VIRT_TO_BUS=y
258# CONFIG_LEDS is not set
259CONFIG_ALIGNMENT_TRAP=y
260
261#
262# Boot options
263#
264CONFIG_ZBOOT_ROM_TEXT=0x0
265CONFIG_ZBOOT_ROM_BSS=0x0
266CONFIG_CMDLINE="mem=64M console=tty0 console=ttyS2,115200 root=0801"
267# CONFIG_XIP_KERNEL is not set
268# CONFIG_KEXEC is not set
269
270#
271# CPU Frequency scaling
272#
273# CONFIG_CPU_FREQ is not set
274
275#
276# Floating point emulation
277#
278
279#
280# At least one emulation must be selected
281#
282CONFIG_FPE_NWFPE=y
283# CONFIG_FPE_NWFPE_XP is not set
284# CONFIG_FPE_FASTFPE is not set
285# CONFIG_VFP is not set
286
287#
288# Userspace binary formats
289#
290CONFIG_BINFMT_ELF=y
291# CONFIG_BINFMT_AOUT is not set
292# CONFIG_BINFMT_MISC is not set
293CONFIG_ARTHUR=y
294
295#
296# Power management options
297#
298CONFIG_PM=y
299# CONFIG_PM_LEGACY is not set
300# CONFIG_PM_DEBUG is not set
301CONFIG_PM_SLEEP=y
302CONFIG_SUSPEND_UP_POSSIBLE=y
303CONFIG_SUSPEND=y
304# CONFIG_APM_EMULATION is not set
305
306#
307# Networking
308#
309CONFIG_NET=y
310
311#
312# Networking options
313#
314CONFIG_PACKET=y
315# CONFIG_PACKET_MMAP is not set
316CONFIG_UNIX=y
317CONFIG_XFRM=y
318# CONFIG_XFRM_USER is not set
319# CONFIG_XFRM_SUB_POLICY is not set
320# CONFIG_XFRM_MIGRATE is not set
321# CONFIG_NET_KEY is not set
322CONFIG_INET=y
323CONFIG_IP_MULTICAST=y
324# CONFIG_IP_ADVANCED_ROUTER is not set
325CONFIG_IP_FIB_HASH=y
326CONFIG_IP_PNP=y
327CONFIG_IP_PNP_DHCP=y
328CONFIG_IP_PNP_BOOTP=y
329# CONFIG_IP_PNP_RARP is not set
330# CONFIG_NET_IPIP is not set
331# CONFIG_NET_IPGRE is not set
332# CONFIG_IP_MROUTE is not set
333# CONFIG_ARPD is not set
334# CONFIG_SYN_COOKIES is not set
335# CONFIG_INET_AH is not set
336# CONFIG_INET_ESP is not set
337# CONFIG_INET_IPCOMP is not set
338# CONFIG_INET_XFRM_TUNNEL is not set
339# CONFIG_INET_TUNNEL is not set
340CONFIG_INET_XFRM_MODE_TRANSPORT=y
341CONFIG_INET_XFRM_MODE_TUNNEL=y
342CONFIG_INET_XFRM_MODE_BEET=y
343CONFIG_INET_DIAG=y
344CONFIG_INET_TCP_DIAG=y
345# CONFIG_TCP_CONG_ADVANCED is not set
346CONFIG_TCP_CONG_CUBIC=y
347CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_TCP_MD5SIG is not set
349# CONFIG_IPV6 is not set
350# CONFIG_INET6_XFRM_TUNNEL is not set
351# CONFIG_INET6_TUNNEL is not set
352# CONFIG_NETLABEL is not set
353# CONFIG_NETWORK_SECMARK is not set
354# CONFIG_NETFILTER is not set
355# CONFIG_IP_DCCP is not set
356# CONFIG_IP_SCTP is not set
357# CONFIG_TIPC is not set
358# CONFIG_ATM is not set
359# CONFIG_BRIDGE is not set
360# CONFIG_VLAN_8021Q is not set
361# CONFIG_DECNET is not set
362# CONFIG_LLC2 is not set
363# CONFIG_IPX is not set
364# CONFIG_ATALK is not set
365# CONFIG_X25 is not set
366# CONFIG_LAPB is not set
367# CONFIG_ECONET is not set
368# CONFIG_WAN_ROUTER is not set
369
370#
371# QoS and/or fair queueing
372#
373# CONFIG_NET_SCHED is not set
374
375#
376# Network testing
377#
378# CONFIG_NET_PKTGEN is not set
379# CONFIG_HAMRADIO is not set
380# CONFIG_IRDA is not set
381# CONFIG_BT is not set
382# CONFIG_AF_RXRPC is not set
383
384#
385# Wireless
386#
387# CONFIG_CFG80211 is not set
388# CONFIG_WIRELESS_EXT is not set
389# CONFIG_MAC80211 is not set
390# CONFIG_IEEE80211 is not set
391# CONFIG_RFKILL is not set
392# CONFIG_NET_9P is not set
393
394#
395# Device Drivers
396#
397
398#
399# Generic Driver Options
400#
401CONFIG_STANDALONE=y
402CONFIG_PREVENT_FIRMWARE_BUILD=y
403# CONFIG_FW_LOADER is not set
404# CONFIG_DEBUG_DRIVER is not set
405# CONFIG_DEBUG_DEVRES is not set
406# CONFIG_SYS_HYPERVISOR is not set
407# CONFIG_CONNECTOR is not set
408# CONFIG_MTD is not set
409# CONFIG_PARPORT is not set
410CONFIG_BLK_DEV=y
411# CONFIG_BLK_DEV_COW_COMMON is not set
412CONFIG_BLK_DEV_LOOP=y
413# CONFIG_BLK_DEV_CRYPTOLOOP is not set
414# CONFIG_BLK_DEV_NBD is not set
415# CONFIG_BLK_DEV_UB is not set
416CONFIG_BLK_DEV_RAM=y
417CONFIG_BLK_DEV_RAM_COUNT=16
418CONFIG_BLK_DEV_RAM_SIZE=8192
419CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
420# CONFIG_CDROM_PKTCDVD is not set
421# CONFIG_ATA_OVER_ETH is not set
422
423#
424# SCSI device support
425#
426# CONFIG_RAID_ATTRS is not set
427CONFIG_SCSI=y
428CONFIG_SCSI_DMA=y
429# CONFIG_SCSI_TGT is not set
430# CONFIG_SCSI_NETLINK is not set
431CONFIG_SCSI_PROC_FS=y
432
433#
434# SCSI support type (disk, tape, CD-ROM)
435#
436CONFIG_BLK_DEV_SD=y
437# CONFIG_CHR_DEV_ST is not set
438# CONFIG_CHR_DEV_OSST is not set
439# CONFIG_BLK_DEV_SR is not set
440# CONFIG_CHR_DEV_SG is not set
441# CONFIG_CHR_DEV_SCH is not set
442
443#
444# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
445#
446# CONFIG_SCSI_MULTI_LUN is not set
447# CONFIG_SCSI_CONSTANTS is not set
448# CONFIG_SCSI_LOGGING is not set
449# CONFIG_SCSI_SCAN_ASYNC is not set
450
451#
452# SCSI Transports
453#
454# CONFIG_SCSI_SPI_ATTRS is not set
455# CONFIG_SCSI_FC_ATTRS is not set
456# CONFIG_SCSI_ISCSI_ATTRS is not set
457# CONFIG_SCSI_SAS_LIBSAS is not set
458CONFIG_SCSI_LOWLEVEL=y
459# CONFIG_ISCSI_TCP is not set
460# CONFIG_SCSI_DEBUG is not set
461# CONFIG_ATA is not set
462# CONFIG_MD is not set
463CONFIG_NETDEVICES=y
464# CONFIG_NETDEVICES_MULTIQUEUE is not set
465# CONFIG_DUMMY is not set
466# CONFIG_BONDING is not set
467# CONFIG_MACVLAN is not set
468# CONFIG_EQUALIZER is not set
469# CONFIG_TUN is not set
470# CONFIG_PHYLIB is not set
471CONFIG_NET_ETHERNET=y
472CONFIG_MII=y
473# CONFIG_AX88796 is not set
474# CONFIG_SMC91X is not set
475# CONFIG_DM9000 is not set
476CONFIG_NETDEV_1000=y
477CONFIG_NETDEV_10000=y
478
479#
480# Wireless LAN
481#
482# CONFIG_WLAN_PRE80211 is not set
483# CONFIG_WLAN_80211 is not set
484
485#
486# USB Network Adapters
487#
488# CONFIG_USB_CATC is not set
489# CONFIG_USB_KAWETH is not set
490# CONFIG_USB_PEGASUS is not set
491# CONFIG_USB_RTL8150 is not set
492CONFIG_USB_USBNET_MII=y
493CONFIG_USB_USBNET=y
494CONFIG_USB_NET_AX8817X=y
495CONFIG_USB_NET_CDCETHER=y
496# CONFIG_USB_NET_DM9601 is not set
497# CONFIG_USB_NET_GL620A is not set
498CONFIG_USB_NET_NET1080=y
499# CONFIG_USB_NET_PLUSB is not set
500# CONFIG_USB_NET_MCS7830 is not set
501# CONFIG_USB_NET_RNDIS_HOST is not set
502CONFIG_USB_NET_CDC_SUBSET=y
503CONFIG_USB_ALI_M5632=y
504# CONFIG_USB_AN2720 is not set
505# CONFIG_USB_BELKIN is not set
506# CONFIG_USB_ARMLINUX is not set
507# CONFIG_USB_EPSON2888 is not set
508# CONFIG_USB_KC2190 is not set
509CONFIG_USB_NET_ZAURUS=y
510# CONFIG_WAN is not set
511CONFIG_PPP=y
512# CONFIG_PPP_MULTILINK is not set
513# CONFIG_PPP_FILTER is not set
514# CONFIG_PPP_ASYNC is not set
515# CONFIG_PPP_SYNC_TTY is not set
516# CONFIG_PPP_DEFLATE is not set
517# CONFIG_PPP_BSDCOMP is not set
518# CONFIG_PPP_MPPE is not set
519# CONFIG_PPPOE is not set
520# CONFIG_PPPOL2TP is not set
521# CONFIG_SLIP is not set
522CONFIG_SLHC=y
523# CONFIG_SHAPER is not set
524# CONFIG_NETCONSOLE is not set
525# CONFIG_NETPOLL is not set
526# CONFIG_NET_POLL_CONTROLLER is not set
527# CONFIG_ISDN is not set
528
529#
530# Input device support
531#
532CONFIG_INPUT=y
533# CONFIG_INPUT_FF_MEMLESS is not set
534# CONFIG_INPUT_POLLDEV is not set
535
536#
537# Userland interfaces
538#
539CONFIG_INPUT_MOUSEDEV=y
540CONFIG_INPUT_MOUSEDEV_PSAUX=y
541CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
542CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
543# CONFIG_INPUT_JOYDEV is not set
544# CONFIG_INPUT_TSDEV is not set
545CONFIG_INPUT_EVDEV=y
546# CONFIG_INPUT_EVBUG is not set
547
548#
549# Input Device Drivers
550#
551CONFIG_INPUT_KEYBOARD=y
552CONFIG_KEYBOARD_ATKBD=y
553# CONFIG_KEYBOARD_SUNKBD is not set
554# CONFIG_KEYBOARD_LKKBD is not set
555# CONFIG_KEYBOARD_XTKBD is not set
556# CONFIG_KEYBOARD_NEWTON is not set
557# CONFIG_KEYBOARD_STOWAWAY is not set
558CONFIG_KEYBOARD_OMAP=y
559# CONFIG_KEYBOARD_GPIO is not set
560# CONFIG_INPUT_MOUSE is not set
561# CONFIG_INPUT_JOYSTICK is not set
562# CONFIG_INPUT_TABLET is not set
563# CONFIG_INPUT_TOUCHSCREEN is not set
564# CONFIG_INPUT_MISC is not set
565
566#
567# Hardware I/O ports
568#
569CONFIG_SERIO=y
570CONFIG_SERIO_SERPORT=y
571CONFIG_SERIO_LIBPS2=y
572# CONFIG_SERIO_RAW is not set
573# CONFIG_GAMEPORT is not set
574
575#
576# Character devices
577#
578CONFIG_VT=y
579CONFIG_VT_CONSOLE=y
580CONFIG_HW_CONSOLE=y
581# CONFIG_VT_HW_CONSOLE_BINDING is not set
582# CONFIG_SERIAL_NONSTANDARD is not set
583
584#
585# Serial drivers
586#
587CONFIG_SERIAL_8250=y
588CONFIG_SERIAL_8250_CONSOLE=y
589CONFIG_SERIAL_8250_NR_UARTS=4
590CONFIG_SERIAL_8250_RUNTIME_UARTS=4
591# CONFIG_SERIAL_8250_EXTENDED is not set
592
593#
594# Non-8250 serial port support
595#
596CONFIG_SERIAL_CORE=y
597CONFIG_SERIAL_CORE_CONSOLE=y
598CONFIG_UNIX98_PTYS=y
599CONFIG_LEGACY_PTYS=y
600CONFIG_LEGACY_PTY_COUNT=256
601# CONFIG_IPMI_HANDLER is not set
602# CONFIG_WATCHDOG is not set
603CONFIG_HW_RANDOM=y
604CONFIG_HW_RANDOM_OMAP=y
605# CONFIG_NVRAM is not set
606# CONFIG_R3964 is not set
607# CONFIG_RAW_DRIVER is not set
608# CONFIG_TCG_TPM is not set
609# CONFIG_I2C is not set
610
611#
612# SPI support
613#
614# CONFIG_SPI is not set
615# CONFIG_SPI_MASTER is not set
616# CONFIG_W1 is not set
617CONFIG_HWMON=y
618# CONFIG_HWMON_VID is not set
619# CONFIG_SENSORS_ABITUGURU is not set
620# CONFIG_SENSORS_ABITUGURU3 is not set
621# CONFIG_SENSORS_F71805F is not set
622# CONFIG_SENSORS_IT87 is not set
623# CONFIG_SENSORS_PC87360 is not set
624# CONFIG_SENSORS_PC87427 is not set
625# CONFIG_SENSORS_SMSC47M1 is not set
626# CONFIG_SENSORS_SMSC47B397 is not set
627# CONFIG_SENSORS_VT1211 is not set
628# CONFIG_SENSORS_W83627HF is not set
629# CONFIG_SENSORS_W83627EHF is not set
630# CONFIG_HWMON_DEBUG_CHIP is not set
631CONFIG_MISC_DEVICES=y
632# CONFIG_EEPROM_93CX6 is not set
633
634#
635# Multifunction device drivers
636#
637# CONFIG_MFD_SM501 is not set
638# CONFIG_NEW_LEDS is not set
639
640#
641# Multimedia devices
642#
643# CONFIG_VIDEO_DEV is not set
644# CONFIG_DVB_CORE is not set
645CONFIG_DAB=y
646# CONFIG_USB_DABUSB is not set
647
648#
649# Graphics support
650#
651# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
652
653#
654# Display device support
655#
656# CONFIG_DISPLAY_SUPPORT is not set
657# CONFIG_VGASTATE is not set
658CONFIG_VIDEO_OUTPUT_CONTROL=y
659# CONFIG_FB is not set
660
661#
662# Console display driver support
663#
664# CONFIG_VGA_CONSOLE is not set
665CONFIG_DUMMY_CONSOLE=y
666
667#
668# Sound
669#
670# CONFIG_SOUND is not set
671CONFIG_HID_SUPPORT=y
672CONFIG_HID=y
673CONFIG_HID_DEBUG=y
674
675#
676# USB Input Devices
677#
678CONFIG_USB_HID=y
679# CONFIG_USB_HIDINPUT_POWERBOOK is not set
680# CONFIG_HID_FF is not set
681# CONFIG_USB_HIDDEV is not set
682CONFIG_USB_SUPPORT=y
683CONFIG_USB_ARCH_HAS_HCD=y
684CONFIG_USB_ARCH_HAS_OHCI=y
685# CONFIG_USB_ARCH_HAS_EHCI is not set
686CONFIG_USB=y
687CONFIG_USB_DEBUG=y
688
689#
690# Miscellaneous USB options
691#
692CONFIG_USB_DEVICEFS=y
693CONFIG_USB_DEVICE_CLASS=y
694# CONFIG_USB_DYNAMIC_MINORS is not set
695# CONFIG_USB_SUSPEND is not set
696# CONFIG_USB_PERSIST is not set
697# CONFIG_USB_OTG is not set
698
699#
700# USB Host Controller Drivers
701#
702# CONFIG_USB_ISP116X_HCD is not set
703CONFIG_USB_OHCI_HCD=y
704# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
705# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
706CONFIG_USB_OHCI_LITTLE_ENDIAN=y
707# CONFIG_USB_SL811_HCD is not set
708# CONFIG_USB_R8A66597_HCD is not set
709# CONFIG_USB_MUSB_HDRC is not set
710
711#
712# USB Device Class drivers
713#
714# CONFIG_USB_ACM is not set
715# CONFIG_USB_PRINTER is not set
716
717#
718# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
719#
720
721#
722# may also be needed; see USB_STORAGE Help for more information
723#
724CONFIG_USB_STORAGE=y
725# CONFIG_USB_STORAGE_DEBUG is not set
726# CONFIG_USB_STORAGE_DATAFAB is not set
727# CONFIG_USB_STORAGE_FREECOM is not set
728# CONFIG_USB_STORAGE_DPCM is not set
729# CONFIG_USB_STORAGE_USBAT is not set
730# CONFIG_USB_STORAGE_SDDR09 is not set
731# CONFIG_USB_STORAGE_SDDR55 is not set
732# CONFIG_USB_STORAGE_JUMPSHOT is not set
733# CONFIG_USB_STORAGE_ALAUDA is not set
734# CONFIG_USB_STORAGE_KARMA is not set
735# CONFIG_USB_LIBUSUAL is not set
736
737#
738# USB Imaging devices
739#
740# CONFIG_USB_MDC800 is not set
741# CONFIG_USB_MICROTEK is not set
742CONFIG_USB_MON=y
743
744#
745# USB port drivers
746#
747
748#
749# USB Serial Converter support
750#
751# CONFIG_USB_SERIAL is not set
752
753#
754# USB Miscellaneous drivers
755#
756# CONFIG_USB_EMI62 is not set
757# CONFIG_USB_EMI26 is not set
758# CONFIG_USB_ADUTUX is not set
759# CONFIG_USB_AUERSWALD is not set
760# CONFIG_USB_RIO500 is not set
761# CONFIG_USB_LEGOTOWER is not set
762# CONFIG_USB_LCD is not set
763# CONFIG_USB_BERRY_CHARGE is not set
764# CONFIG_USB_LED is not set
765# CONFIG_USB_CYPRESS_CY7C63 is not set
766# CONFIG_USB_CYTHERM is not set
767# CONFIG_USB_PHIDGET is not set
768# CONFIG_USB_IDMOUSE is not set
769# CONFIG_USB_FTDI_ELAN is not set
770# CONFIG_USB_APPLEDISPLAY is not set
771# CONFIG_USB_LD is not set
772# CONFIG_USB_TRANCEVIBRATOR is not set
773# CONFIG_USB_IOWARRIOR is not set
774# CONFIG_USB_TEST is not set
775
776#
777# USB DSL modem support
778#
779
780#
781# USB Gadget Support
782#
783# CONFIG_USB_GADGET is not set
784CONFIG_MMC=y
785# CONFIG_MMC_DEBUG is not set
786# CONFIG_MMC_UNSAFE_RESUME is not set
787
788#
789# MMC/SD Card Drivers
790#
791CONFIG_MMC_BLOCK=y
792CONFIG_MMC_BLOCK_BOUNCE=y
793
794#
795# MMC/SD Host Controller Drivers
796#
797CONFIG_MMC_OMAP=y
798CONFIG_RTC_LIB=y
799# CONFIG_RTC_CLASS is not set
800
801#
802# DMA Engine support
803#
804# CONFIG_DMA_ENGINE is not set
805
806#
807# DMA Clients
808#
809
810#
811# DMA Devices
812#
813
814#
815# CBUS support
816#
817# CONFIG_CBUS is not set
818
819#
820# File systems
821#
822CONFIG_EXT2_FS=y
823# CONFIG_EXT2_FS_XATTR is not set
824# CONFIG_EXT2_FS_XIP is not set
825CONFIG_EXT3_FS=y
826CONFIG_EXT3_FS_XATTR=y
827# CONFIG_EXT3_FS_POSIX_ACL is not set
828# CONFIG_EXT3_FS_SECURITY is not set
829# CONFIG_EXT4DEV_FS is not set
830CONFIG_JBD=y
831# CONFIG_JBD_DEBUG is not set
832CONFIG_FS_MBCACHE=y
833# CONFIG_REISERFS_FS is not set
834# CONFIG_JFS_FS is not set
835# CONFIG_FS_POSIX_ACL is not set
836# CONFIG_XFS_FS is not set
837# CONFIG_GFS2_FS is not set
838# CONFIG_OCFS2_FS is not set
839# CONFIG_MINIX_FS is not set
840# CONFIG_ROMFS_FS is not set
841CONFIG_INOTIFY=y
842CONFIG_INOTIFY_USER=y
843# CONFIG_QUOTA is not set
844CONFIG_DNOTIFY=y
845# CONFIG_AUTOFS_FS is not set
846# CONFIG_AUTOFS4_FS is not set
847# CONFIG_FUSE_FS is not set
848
849#
850# CD-ROM/DVD Filesystems
851#
852# CONFIG_ISO9660_FS is not set
853# CONFIG_UDF_FS is not set
854
855#
856# DOS/FAT/NT Filesystems
857#
858# CONFIG_MSDOS_FS is not set
859# CONFIG_VFAT_FS is not set
860# CONFIG_NTFS_FS is not set
861
862#
863# Pseudo filesystems
864#
865CONFIG_PROC_FS=y
866CONFIG_PROC_SYSCTL=y
867CONFIG_SYSFS=y
868CONFIG_TMPFS=y
869# CONFIG_TMPFS_POSIX_ACL is not set
870# CONFIG_HUGETLB_PAGE is not set
871CONFIG_RAMFS=y
872# CONFIG_CONFIGFS_FS is not set
873
874#
875# Miscellaneous filesystems
876#
877# CONFIG_ADFS_FS is not set
878# CONFIG_AFFS_FS is not set
879# CONFIG_HFS_FS is not set
880# CONFIG_HFSPLUS_FS is not set
881# CONFIG_BEFS_FS is not set
882# CONFIG_BFS_FS is not set
883# CONFIG_EFS_FS is not set
884# CONFIG_CRAMFS is not set
885# CONFIG_VXFS_FS is not set
886# CONFIG_HPFS_FS is not set
887# CONFIG_QNX4FS_FS is not set
888# CONFIG_SYSV_FS is not set
889# CONFIG_UFS_FS is not set
890
891#
892# Network File Systems
893#
894CONFIG_NFS_FS=y
895CONFIG_NFS_V3=y
896# CONFIG_NFS_V3_ACL is not set
897CONFIG_NFS_V4=y
898# CONFIG_NFS_DIRECTIO is not set
899# CONFIG_NFSD is not set
900# CONFIG_ROOT_NFS is not set
901CONFIG_LOCKD=y
902CONFIG_LOCKD_V4=y
903CONFIG_NFS_COMMON=y
904CONFIG_SUNRPC=y
905CONFIG_SUNRPC_GSS=y
906# CONFIG_SUNRPC_BIND34 is not set
907CONFIG_RPCSEC_GSS_KRB5=y
908# CONFIG_RPCSEC_GSS_SPKM3 is not set
909# CONFIG_SMB_FS is not set
910# CONFIG_CIFS is not set
911# CONFIG_NCP_FS is not set
912# CONFIG_CODA_FS is not set
913# CONFIG_AFS_FS is not set
914
915#
916# Partition Types
917#
918CONFIG_PARTITION_ADVANCED=y
919# CONFIG_ACORN_PARTITION is not set
920# CONFIG_OSF_PARTITION is not set
921# CONFIG_AMIGA_PARTITION is not set
922# CONFIG_ATARI_PARTITION is not set
923# CONFIG_MAC_PARTITION is not set
924CONFIG_MSDOS_PARTITION=y
925# CONFIG_BSD_DISKLABEL is not set
926# CONFIG_MINIX_SUBPARTITION is not set
927# CONFIG_SOLARIS_X86_PARTITION is not set
928# CONFIG_UNIXWARE_DISKLABEL is not set
929# CONFIG_LDM_PARTITION is not set
930# CONFIG_SGI_PARTITION is not set
931# CONFIG_ULTRIX_PARTITION is not set
932# CONFIG_SUN_PARTITION is not set
933# CONFIG_KARMA_PARTITION is not set
934# CONFIG_EFI_PARTITION is not set
935# CONFIG_SYSV68_PARTITION is not set
936
937#
938# Native Language Support
939#
940CONFIG_NLS=y
941CONFIG_NLS_DEFAULT="iso8859-1"
942CONFIG_NLS_CODEPAGE_437=y
943# CONFIG_NLS_CODEPAGE_737 is not set
944# CONFIG_NLS_CODEPAGE_775 is not set
945# CONFIG_NLS_CODEPAGE_850 is not set
946CONFIG_NLS_CODEPAGE_852=y
947# CONFIG_NLS_CODEPAGE_855 is not set
948# CONFIG_NLS_CODEPAGE_857 is not set
949# CONFIG_NLS_CODEPAGE_860 is not set
950# CONFIG_NLS_CODEPAGE_861 is not set
951# CONFIG_NLS_CODEPAGE_862 is not set
952# CONFIG_NLS_CODEPAGE_863 is not set
953# CONFIG_NLS_CODEPAGE_864 is not set
954# CONFIG_NLS_CODEPAGE_865 is not set
955# CONFIG_NLS_CODEPAGE_866 is not set
956# CONFIG_NLS_CODEPAGE_869 is not set
957# CONFIG_NLS_CODEPAGE_936 is not set
958# CONFIG_NLS_CODEPAGE_950 is not set
959# CONFIG_NLS_CODEPAGE_932 is not set
960# CONFIG_NLS_CODEPAGE_949 is not set
961# CONFIG_NLS_CODEPAGE_874 is not set
962# CONFIG_NLS_ISO8859_8 is not set
963# CONFIG_NLS_CODEPAGE_1250 is not set
964# CONFIG_NLS_CODEPAGE_1251 is not set
965# CONFIG_NLS_ASCII is not set
966CONFIG_NLS_ISO8859_1=y
967# CONFIG_NLS_ISO8859_2 is not set
968# CONFIG_NLS_ISO8859_3 is not set
969# CONFIG_NLS_ISO8859_4 is not set
970# CONFIG_NLS_ISO8859_5 is not set
971# CONFIG_NLS_ISO8859_6 is not set
972# CONFIG_NLS_ISO8859_7 is not set
973# CONFIG_NLS_ISO8859_9 is not set
974# CONFIG_NLS_ISO8859_13 is not set
975# CONFIG_NLS_ISO8859_14 is not set
976CONFIG_NLS_ISO8859_15=y
977# CONFIG_NLS_KOI8_R is not set
978# CONFIG_NLS_KOI8_U is not set
979# CONFIG_NLS_UTF8 is not set
980
981#
982# Distributed Lock Manager
983#
984# CONFIG_DLM is not set
985
986#
987# Profiling support
988#
989# CONFIG_PROFILING is not set
990
991#
992# Kernel hacking
993#
994# CONFIG_PRINTK_TIME is not set
995CONFIG_ENABLE_MUST_CHECK=y
996CONFIG_MAGIC_SYSRQ=y
997# CONFIG_UNUSED_SYMBOLS is not set
998# CONFIG_DEBUG_FS is not set
999# CONFIG_HEADERS_CHECK is not set
1000CONFIG_DEBUG_KERNEL=y
1001# CONFIG_DEBUG_SHIRQ is not set
1002CONFIG_DETECT_SOFTLOCKUP=y
1003CONFIG_SCHED_DEBUG=y
1004# CONFIG_SCHEDSTATS is not set
1005# CONFIG_TIMER_STATS is not set
1006# CONFIG_SLUB_DEBUG_ON is not set
1007# CONFIG_DEBUG_RT_MUTEXES is not set
1008# CONFIG_RT_MUTEX_TESTER is not set
1009CONFIG_DEBUG_SPINLOCK=y
1010# CONFIG_DEBUG_MUTEXES is not set
1011# CONFIG_DEBUG_LOCK_ALLOC is not set
1012# CONFIG_PROVE_LOCKING is not set
1013# CONFIG_LOCK_STAT is not set
1014# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1015# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1016# CONFIG_DEBUG_KOBJECT is not set
1017CONFIG_DEBUG_BUGVERBOSE=y
1018# CONFIG_DEBUG_INFO is not set
1019# CONFIG_DEBUG_VM is not set
1020# CONFIG_DEBUG_LIST is not set
1021CONFIG_FRAME_POINTER=y
1022CONFIG_FORCED_INLINING=y
1023# CONFIG_FAULT_INJECTION is not set
1024# CONFIG_DEBUG_USER is not set
1025CONFIG_DEBUG_ERRORS=y
1026# CONFIG_DEBUG_LL is not set
1027
1028#
1029# Security options
1030#
1031# CONFIG_KEYS is not set
1032CONFIG_SECURITY=y
1033# CONFIG_SECURITY_NETWORK is not set
1034CONFIG_SECURITY_CAPABILITIES=y
1035# CONFIG_SECURITY_ROOTPLUG is not set
1036# CONFIG_SECURITY_LOWMEM is not set
1037CONFIG_CRYPTO=y
1038CONFIG_CRYPTO_ALGAPI=y
1039CONFIG_CRYPTO_BLKCIPHER=y
1040CONFIG_CRYPTO_MANAGER=y
1041# CONFIG_CRYPTO_HMAC is not set
1042# CONFIG_CRYPTO_XCBC is not set
1043# CONFIG_CRYPTO_NULL is not set
1044# CONFIG_CRYPTO_MD4 is not set
1045CONFIG_CRYPTO_MD5=y
1046# CONFIG_CRYPTO_SHA1 is not set
1047# CONFIG_CRYPTO_SHA256 is not set
1048# CONFIG_CRYPTO_SHA512 is not set
1049# CONFIG_CRYPTO_WP512 is not set
1050# CONFIG_CRYPTO_TGR192 is not set
1051# CONFIG_CRYPTO_GF128MUL is not set
1052CONFIG_CRYPTO_ECB=y
1053CONFIG_CRYPTO_CBC=y
1054CONFIG_CRYPTO_PCBC=y
1055# CONFIG_CRYPTO_LRW is not set
1056# CONFIG_CRYPTO_CRYPTD is not set
1057CONFIG_CRYPTO_DES=y
1058# CONFIG_CRYPTO_FCRYPT is not set
1059# CONFIG_CRYPTO_BLOWFISH is not set
1060# CONFIG_CRYPTO_TWOFISH is not set
1061# CONFIG_CRYPTO_SERPENT is not set
1062# CONFIG_CRYPTO_AES is not set
1063# CONFIG_CRYPTO_CAST5 is not set
1064# CONFIG_CRYPTO_CAST6 is not set
1065# CONFIG_CRYPTO_TEA is not set
1066# CONFIG_CRYPTO_ARC4 is not set
1067# CONFIG_CRYPTO_KHAZAD is not set
1068# CONFIG_CRYPTO_ANUBIS is not set
1069# CONFIG_CRYPTO_DEFLATE is not set
1070# CONFIG_CRYPTO_MICHAEL_MIC is not set
1071# CONFIG_CRYPTO_CRC32C is not set
1072# CONFIG_CRYPTO_CAMELLIA is not set
1073CONFIG_CRYPTO_HW=y
1074
1075#
1076# Library routines
1077#
1078CONFIG_BITREVERSE=y
1079# CONFIG_CRC_CCITT is not set
1080# CONFIG_CRC16 is not set
1081# CONFIG_CRC_ITU_T is not set
1082CONFIG_CRC32=y
1083# CONFIG_CRC7 is not set
1084# CONFIG_LIBCRC32C is not set
1085CONFIG_PLIST=y
1086CONFIG_HAS_IOMEM=y
1087CONFIG_HAS_IOPORT=y
1088CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_generic_2420_defconfig b/arch/arm/configs/omap_generic_2420_defconfig
new file mode 100644
index 00000000000..cf4073b47aa
--- /dev/null
+++ b/arch/arm/configs/omap_generic_2420_defconfig
@@ -0,0 +1,655 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 11:44:48 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34CONFIG_LOCALVERSION=""
35CONFIG_LOCALVERSION_AUTO=y
36CONFIG_SWAP=y
37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_BSD_PROCESS_ACCT is not set
40# CONFIG_USER_NS is not set
41# CONFIG_IKCONFIG is not set
42CONFIG_LOG_BUF_SHIFT=14
43CONFIG_SYSFS_DEPRECATED=y
44# CONFIG_RELAY is not set
45CONFIG_BLK_DEV_INITRD=y
46CONFIG_INITRAMFS_SOURCE=""
47CONFIG_CC_OPTIMIZE_FOR_SIZE=y
48CONFIG_SYSCTL=y
49# CONFIG_EMBEDDED is not set
50CONFIG_UID16=y
51CONFIG_SYSCTL_SYSCALL=y
52CONFIG_KALLSYMS=y
53# CONFIG_KALLSYMS_ALL is not set
54# CONFIG_KALLSYMS_EXTRA_PASS is not set
55CONFIG_HOTPLUG=y
56CONFIG_PRINTK=y
57CONFIG_BUG=y
58CONFIG_ELF_CORE=y
59CONFIG_BASE_FULL=y
60CONFIG_FUTEX=y
61CONFIG_ANON_INODES=y
62CONFIG_EPOLL=y
63CONFIG_SIGNALFD=y
64CONFIG_TIMERFD=y
65CONFIG_EVENTFD=y
66CONFIG_SHMEM=y
67CONFIG_VM_EVENT_COUNTERS=y
68CONFIG_SLUB_DEBUG=y
69# CONFIG_SLAB is not set
70CONFIG_SLUB=y
71# CONFIG_SLOB is not set
72CONFIG_RT_MUTEXES=y
73# CONFIG_TINY_SHMEM is not set
74CONFIG_BASE_SMALL=0
75CONFIG_MODULES=y
76CONFIG_MODULE_UNLOAD=y
77# CONFIG_MODULE_FORCE_UNLOAD is not set
78# CONFIG_MODVERSIONS is not set
79# CONFIG_MODULE_SRCVERSION_ALL is not set
80# CONFIG_KMOD is not set
81CONFIG_BLOCK=y
82# CONFIG_LBD is not set
83# CONFIG_BLK_DEV_IO_TRACE is not set
84# CONFIG_LSF is not set
85# CONFIG_BLK_DEV_BSG is not set
86
87#
88# IO Schedulers
89#
90CONFIG_IOSCHED_NOOP=y
91CONFIG_IOSCHED_AS=y
92CONFIG_IOSCHED_DEADLINE=y
93CONFIG_IOSCHED_CFQ=y
94# CONFIG_DEFAULT_AS is not set
95# CONFIG_DEFAULT_DEADLINE is not set
96CONFIG_DEFAULT_CFQ=y
97# CONFIG_DEFAULT_NOOP is not set
98CONFIG_DEFAULT_IOSCHED="cfq"
99
100#
101# System Type
102#
103# CONFIG_ARCH_AAEC2000 is not set
104# CONFIG_ARCH_INTEGRATOR is not set
105# CONFIG_ARCH_REALVIEW is not set
106# CONFIG_ARCH_VERSATILE is not set
107# CONFIG_ARCH_AT91 is not set
108# CONFIG_ARCH_CLPS7500 is not set
109# CONFIG_ARCH_CLPS711X is not set
110# CONFIG_ARCH_CO285 is not set
111# CONFIG_ARCH_EBSA110 is not set
112# CONFIG_ARCH_EP93XX is not set
113# CONFIG_ARCH_FOOTBRIDGE is not set
114# CONFIG_ARCH_NETX is not set
115# CONFIG_ARCH_H720X is not set
116# CONFIG_ARCH_IMX is not set
117# CONFIG_ARCH_IOP13XX is not set
118# CONFIG_ARCH_IOP32X is not set
119# CONFIG_ARCH_IOP33X is not set
120# CONFIG_ARCH_IXP23XX is not set
121# CONFIG_ARCH_IXP2000 is not set
122# CONFIG_ARCH_IXP4XX is not set
123# CONFIG_ARCH_L7200 is not set
124# CONFIG_ARCH_KS8695 is not set
125# CONFIG_ARCH_NS9XXX is not set
126# CONFIG_ARCH_MXC is not set
127# CONFIG_ARCH_PNX4008 is not set
128# CONFIG_ARCH_PXA is not set
129# CONFIG_ARCH_RPC is not set
130# CONFIG_ARCH_SA1100 is not set
131# CONFIG_ARCH_S3C2410 is not set
132# CONFIG_ARCH_SHARK is not set
133# CONFIG_ARCH_LH7A40X is not set
134# CONFIG_ARCH_DAVINCI is not set
135CONFIG_ARCH_OMAP=y
136
137#
138# TI OMAP Implementations
139#
140CONFIG_ARCH_OMAP_OTG=y
141# CONFIG_ARCH_OMAP1 is not set
142CONFIG_ARCH_OMAP2=y
143# CONFIG_ARCH_OMAP3 is not set
144
145#
146# OMAP Feature Selections
147#
148# CONFIG_OMAP_RESET_CLOCKS is not set
149CONFIG_OMAP_BOOT_TAG=y
150# CONFIG_OMAP_BOOT_REASON is not set
151# CONFIG_OMAP_COMPONENT_VERSION is not set
152# CONFIG_OMAP_GPIO_SWITCH is not set
153# CONFIG_OMAP_MUX is not set
154# CONFIG_OMAP_STI is not set
155CONFIG_OMAP_MCBSP=y
156# CONFIG_OMAP_MMU_FWK is not set
157# CONFIG_OMAP_MBOX_FWK is not set
158CONFIG_OMAP_MPU_TIMER=y
159# CONFIG_OMAP_32K_TIMER is not set
160CONFIG_OMAP_DM_TIMER=y
161# CONFIG_OMAP_LL_DEBUG_UART1 is not set
162# CONFIG_OMAP_LL_DEBUG_UART2 is not set
163CONFIG_OMAP_LL_DEBUG_UART3=y
164# CONFIG_OMAP_DSP is not set
165CONFIG_MACH_OMAP_GENERIC=y
166
167#
168# OMAP Core Type
169#
170CONFIG_ARCH_OMAP24XX=y
171CONFIG_ARCH_OMAP2420=y
172# CONFIG_ARCH_OMAP2430 is not set
173
174#
175# OMAP Board Type
176#
177# CONFIG_MACH_NOKIA_N800 is not set
178# CONFIG_MACH_OMAP_H4 is not set
179# CONFIG_MACH_OMAP_APOLLON is not set
180# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
181# CONFIG_MACH_OMAP_2430SDP is not set
182
183#
184# Boot options
185#
186
187#
188# Power management
189#
190
191#
192# Processor Type
193#
194CONFIG_CPU_32=y
195CONFIG_CPU_V6=y
196# CONFIG_CPU_32v6K is not set
197CONFIG_CPU_32v6=y
198CONFIG_CPU_ABRT_EV6=y
199CONFIG_CPU_PABRT_NOIFAR=y
200CONFIG_CPU_CACHE_V6=y
201CONFIG_CPU_CACHE_VIPT=y
202CONFIG_CPU_COPY_V6=y
203CONFIG_CPU_TLB_V6=y
204CONFIG_CPU_HAS_ASID=y
205CONFIG_CPU_CP15=y
206CONFIG_CPU_CP15_MMU=y
207
208#
209# Processor Features
210#
211CONFIG_ARM_THUMB=y
212# CONFIG_CPU_ICACHE_DISABLE is not set
213# CONFIG_CPU_DCACHE_DISABLE is not set
214# CONFIG_CPU_BPREDICT_DISABLE is not set
215# CONFIG_OUTER_CACHE is not set
216
217#
218# Bus support
219#
220# CONFIG_PCI_SYSCALL is not set
221# CONFIG_ARCH_SUPPORTS_MSI is not set
222
223#
224# PCCARD (PCMCIA/CardBus) support
225#
226# CONFIG_PCCARD is not set
227
228#
229# Kernel Features
230#
231# CONFIG_TICK_ONESHOT is not set
232# CONFIG_NO_HZ is not set
233# CONFIG_HIGH_RES_TIMERS is not set
234# CONFIG_PREEMPT is not set
235CONFIG_HZ=100
236# CONFIG_AEABI is not set
237# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
238CONFIG_SELECT_MEMORY_MODEL=y
239CONFIG_FLATMEM_MANUAL=y
240# CONFIG_DISCONTIGMEM_MANUAL is not set
241# CONFIG_SPARSEMEM_MANUAL is not set
242CONFIG_FLATMEM=y
243CONFIG_FLAT_NODE_MEM_MAP=y
244# CONFIG_SPARSEMEM_STATIC is not set
245CONFIG_SPLIT_PTLOCK_CPUS=4
246# CONFIG_RESOURCES_64BIT is not set
247CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y
249CONFIG_VIRT_TO_BUS=y
250CONFIG_LEDS=y
251CONFIG_ALIGNMENT_TRAP=y
252
253#
254# Boot options
255#
256CONFIG_ZBOOT_ROM_TEXT=0x10C08000
257CONFIG_ZBOOT_ROM_BSS=0x10200000
258# CONFIG_ZBOOT_ROM is not set
259CONFIG_CMDLINE=""
260# CONFIG_XIP_KERNEL is not set
261# CONFIG_KEXEC is not set
262
263#
264# CPU Frequency scaling
265#
266# CONFIG_CPU_FREQ is not set
267
268#
269# Floating point emulation
270#
271
272#
273# At least one emulation must be selected
274#
275CONFIG_FPE_NWFPE=y
276# CONFIG_FPE_NWFPE_XP is not set
277# CONFIG_FPE_FASTFPE is not set
278# CONFIG_VFP is not set
279
280#
281# Userspace binary formats
282#
283CONFIG_BINFMT_ELF=y
284# CONFIG_BINFMT_AOUT is not set
285# CONFIG_BINFMT_MISC is not set
286# CONFIG_ARTHUR is not set
287
288#
289# Power management options
290#
291# CONFIG_PM is not set
292CONFIG_SUSPEND_UP_POSSIBLE=y
293
294#
295# Networking
296#
297# CONFIG_NET is not set
298
299#
300# Device Drivers
301#
302
303#
304# Generic Driver Options
305#
306CONFIG_STANDALONE=y
307CONFIG_PREVENT_FIRMWARE_BUILD=y
308CONFIG_FW_LOADER=y
309# CONFIG_DEBUG_DRIVER is not set
310# CONFIG_DEBUG_DEVRES is not set
311# CONFIG_SYS_HYPERVISOR is not set
312# CONFIG_MTD is not set
313# CONFIG_PARPORT is not set
314CONFIG_BLK_DEV=y
315# CONFIG_BLK_DEV_COW_COMMON is not set
316# CONFIG_BLK_DEV_LOOP is not set
317CONFIG_BLK_DEV_RAM=y
318CONFIG_BLK_DEV_RAM_COUNT=16
319CONFIG_BLK_DEV_RAM_SIZE=4096
320CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
321# CONFIG_CDROM_PKTCDVD is not set
322
323#
324# SCSI device support
325#
326# CONFIG_RAID_ATTRS is not set
327# CONFIG_SCSI is not set
328# CONFIG_SCSI_DMA is not set
329# CONFIG_SCSI_NETLINK is not set
330# CONFIG_ATA is not set
331# CONFIG_MD is not set
332
333#
334# Input device support
335#
336CONFIG_INPUT=y
337# CONFIG_INPUT_FF_MEMLESS is not set
338# CONFIG_INPUT_POLLDEV is not set
339
340#
341# Userland interfaces
342#
343CONFIG_INPUT_MOUSEDEV=y
344CONFIG_INPUT_MOUSEDEV_PSAUX=y
345CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
346CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
347# CONFIG_INPUT_JOYDEV is not set
348# CONFIG_INPUT_TSDEV is not set
349CONFIG_INPUT_EVDEV=y
350# CONFIG_INPUT_EVBUG is not set
351
352#
353# Input Device Drivers
354#
355# CONFIG_INPUT_KEYBOARD is not set
356# CONFIG_INPUT_MOUSE is not set
357# CONFIG_INPUT_JOYSTICK is not set
358# CONFIG_INPUT_TABLET is not set
359# CONFIG_INPUT_TOUCHSCREEN is not set
360# CONFIG_INPUT_MISC is not set
361
362#
363# Hardware I/O ports
364#
365CONFIG_SERIO=y
366CONFIG_SERIO_SERPORT=y
367# CONFIG_SERIO_RAW is not set
368# CONFIG_GAMEPORT is not set
369
370#
371# Character devices
372#
373CONFIG_VT=y
374CONFIG_VT_CONSOLE=y
375CONFIG_HW_CONSOLE=y
376# CONFIG_VT_HW_CONSOLE_BINDING is not set
377# CONFIG_SERIAL_NONSTANDARD is not set
378
379#
380# Serial drivers
381#
382CONFIG_SERIAL_8250=y
383CONFIG_SERIAL_8250_CONSOLE=y
384CONFIG_SERIAL_8250_NR_UARTS=4
385CONFIG_SERIAL_8250_RUNTIME_UARTS=4
386# CONFIG_SERIAL_8250_EXTENDED is not set
387
388#
389# Non-8250 serial port support
390#
391CONFIG_SERIAL_CORE=y
392CONFIG_SERIAL_CORE_CONSOLE=y
393CONFIG_UNIX98_PTYS=y
394# CONFIG_LEGACY_PTYS is not set
395# CONFIG_IPMI_HANDLER is not set
396CONFIG_WATCHDOG=y
397CONFIG_WATCHDOG_NOWAYOUT=y
398
399#
400# Watchdog Device Drivers
401#
402# CONFIG_SOFT_WATCHDOG is not set
403# CONFIG_OMAP_WATCHDOG is not set
404CONFIG_HW_RANDOM=m
405CONFIG_HW_RANDOM_OMAP=m
406# CONFIG_NVRAM is not set
407# CONFIG_R3964 is not set
408# CONFIG_RAW_DRIVER is not set
409# CONFIG_TCG_TPM is not set
410# CONFIG_I2C is not set
411
412#
413# SPI support
414#
415# CONFIG_SPI is not set
416# CONFIG_SPI_MASTER is not set
417# CONFIG_W1 is not set
418CONFIG_HWMON=y
419# CONFIG_HWMON_VID is not set
420# CONFIG_SENSORS_ABITUGURU is not set
421# CONFIG_SENSORS_ABITUGURU3 is not set
422# CONFIG_SENSORS_F71805F is not set
423# CONFIG_SENSORS_IT87 is not set
424# CONFIG_SENSORS_PC87360 is not set
425# CONFIG_SENSORS_PC87427 is not set
426# CONFIG_SENSORS_SMSC47M1 is not set
427# CONFIG_SENSORS_SMSC47B397 is not set
428# CONFIG_SENSORS_VT1211 is not set
429# CONFIG_SENSORS_W83627HF is not set
430# CONFIG_SENSORS_W83627EHF is not set
431# CONFIG_HWMON_DEBUG_CHIP is not set
432CONFIG_MISC_DEVICES=y
433# CONFIG_EEPROM_93CX6 is not set
434
435#
436# Multifunction device drivers
437#
438# CONFIG_MFD_SM501 is not set
439# CONFIG_NEW_LEDS is not set
440
441#
442# Multimedia devices
443#
444# CONFIG_VIDEO_DEV is not set
445CONFIG_DAB=y
446
447#
448# Graphics support
449#
450# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
451
452#
453# Display device support
454#
455# CONFIG_DISPLAY_SUPPORT is not set
456# CONFIG_VGASTATE is not set
457CONFIG_VIDEO_OUTPUT_CONTROL=m
458# CONFIG_FB is not set
459
460#
461# Console display driver support
462#
463# CONFIG_VGA_CONSOLE is not set
464CONFIG_DUMMY_CONSOLE=y
465
466#
467# Sound
468#
469# CONFIG_SOUND is not set
470CONFIG_HID_SUPPORT=y
471CONFIG_HID=y
472CONFIG_HID_DEBUG=y
473CONFIG_USB_SUPPORT=y
474CONFIG_USB_ARCH_HAS_HCD=y
475CONFIG_USB_ARCH_HAS_OHCI=y
476# CONFIG_USB_ARCH_HAS_EHCI is not set
477# CONFIG_USB is not set
478
479#
480# Enable Host or Gadget support to see Inventra options
481#
482
483#
484# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
485#
486
487#
488# USB Gadget Support
489#
490# CONFIG_USB_GADGET is not set
491# CONFIG_MMC is not set
492CONFIG_RTC_LIB=y
493# CONFIG_RTC_CLASS is not set
494
495#
496# DMA Engine support
497#
498# CONFIG_DMA_ENGINE is not set
499
500#
501# DMA Clients
502#
503
504#
505# DMA Devices
506#
507
508#
509# CBUS support
510#
511# CONFIG_CBUS is not set
512
513#
514# File systems
515#
516CONFIG_EXT2_FS=y
517CONFIG_EXT2_FS_XATTR=y
518# CONFIG_EXT2_FS_POSIX_ACL is not set
519# CONFIG_EXT2_FS_SECURITY is not set
520# CONFIG_EXT2_FS_XIP is not set
521# CONFIG_EXT3_FS is not set
522# CONFIG_EXT4DEV_FS is not set
523CONFIG_FS_MBCACHE=y
524# CONFIG_REISERFS_FS is not set
525# CONFIG_JFS_FS is not set
526# CONFIG_FS_POSIX_ACL is not set
527# CONFIG_XFS_FS is not set
528# CONFIG_GFS2_FS is not set
529# CONFIG_MINIX_FS is not set
530CONFIG_ROMFS_FS=y
531CONFIG_INOTIFY=y
532CONFIG_INOTIFY_USER=y
533# CONFIG_QUOTA is not set
534CONFIG_DNOTIFY=y
535# CONFIG_AUTOFS_FS is not set
536# CONFIG_AUTOFS4_FS is not set
537# CONFIG_FUSE_FS is not set
538
539#
540# CD-ROM/DVD Filesystems
541#
542# CONFIG_ISO9660_FS is not set
543# CONFIG_UDF_FS is not set
544
545#
546# DOS/FAT/NT Filesystems
547#
548# CONFIG_MSDOS_FS is not set
549# CONFIG_VFAT_FS is not set
550# CONFIG_NTFS_FS is not set
551
552#
553# Pseudo filesystems
554#
555CONFIG_PROC_FS=y
556CONFIG_PROC_SYSCTL=y
557CONFIG_SYSFS=y
558# CONFIG_TMPFS is not set
559# CONFIG_HUGETLB_PAGE is not set
560CONFIG_RAMFS=y
561# CONFIG_CONFIGFS_FS is not set
562
563#
564# Miscellaneous filesystems
565#
566# CONFIG_ADFS_FS is not set
567# CONFIG_AFFS_FS is not set
568# CONFIG_HFS_FS is not set
569# CONFIG_HFSPLUS_FS is not set
570# CONFIG_BEFS_FS is not set
571# CONFIG_BFS_FS is not set
572# CONFIG_EFS_FS is not set
573# CONFIG_CRAMFS is not set
574# CONFIG_VXFS_FS is not set
575# CONFIG_HPFS_FS is not set
576# CONFIG_QNX4FS_FS is not set
577# CONFIG_SYSV_FS is not set
578# CONFIG_UFS_FS is not set
579
580#
581# Partition Types
582#
583# CONFIG_PARTITION_ADVANCED is not set
584CONFIG_MSDOS_PARTITION=y
585
586#
587# Native Language Support
588#
589# CONFIG_NLS is not set
590
591#
592# Profiling support
593#
594# CONFIG_PROFILING is not set
595
596#
597# Kernel hacking
598#
599# CONFIG_PRINTK_TIME is not set
600CONFIG_ENABLE_MUST_CHECK=y
601# CONFIG_MAGIC_SYSRQ is not set
602# CONFIG_UNUSED_SYMBOLS is not set
603# CONFIG_DEBUG_FS is not set
604# CONFIG_HEADERS_CHECK is not set
605CONFIG_DEBUG_KERNEL=y
606# CONFIG_DEBUG_SHIRQ is not set
607CONFIG_DETECT_SOFTLOCKUP=y
608CONFIG_SCHED_DEBUG=y
609# CONFIG_SCHEDSTATS is not set
610# CONFIG_TIMER_STATS is not set
611# CONFIG_SLUB_DEBUG_ON is not set
612# CONFIG_DEBUG_RT_MUTEXES is not set
613# CONFIG_RT_MUTEX_TESTER is not set
614# CONFIG_DEBUG_SPINLOCK is not set
615# CONFIG_DEBUG_MUTEXES is not set
616# CONFIG_DEBUG_LOCK_ALLOC is not set
617# CONFIG_PROVE_LOCKING is not set
618# CONFIG_LOCK_STAT is not set
619# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
620# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
621# CONFIG_DEBUG_KOBJECT is not set
622CONFIG_DEBUG_BUGVERBOSE=y
623CONFIG_DEBUG_INFO=y
624# CONFIG_DEBUG_VM is not set
625# CONFIG_DEBUG_LIST is not set
626CONFIG_FRAME_POINTER=y
627CONFIG_FORCED_INLINING=y
628# CONFIG_RCU_TORTURE_TEST is not set
629# CONFIG_FAULT_INJECTION is not set
630CONFIG_DEBUG_USER=y
631CONFIG_DEBUG_ERRORS=y
632CONFIG_DEBUG_LL=y
633# CONFIG_DEBUG_ICEDCC is not set
634
635#
636# Security options
637#
638# CONFIG_KEYS is not set
639# CONFIG_SECURITY is not set
640# CONFIG_CRYPTO is not set
641
642#
643# Library routines
644#
645CONFIG_BITREVERSE=y
646CONFIG_CRC_CCITT=y
647# CONFIG_CRC16 is not set
648# CONFIG_CRC_ITU_T is not set
649CONFIG_CRC32=y
650# CONFIG_CRC7 is not set
651# CONFIG_LIBCRC32C is not set
652CONFIG_PLIST=y
653CONFIG_HAS_IOMEM=y
654CONFIG_HAS_IOPORT=y
655CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_h2_1610_defconfig b/arch/arm/configs/omap_h2_1610_defconfig
index 323c1deeb95..c03507202f3 100644
--- a/arch/arm/configs/omap_h2_1610_defconfig
+++ b/arch/arm/configs/omap_h2_1610_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25-rc3 3# Linux kernel version: 2.6.25-rc2-omap1
4# Mon Mar 3 03:39:48 2008 4# Wed Feb 20 17:12:36 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -31,7 +31,6 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
31# 31#
32CONFIG_EXPERIMENTAL=y 32CONFIG_EXPERIMENTAL=y
33CONFIG_BROKEN_ON_SMP=y 33CONFIG_BROKEN_ON_SMP=y
34CONFIG_LOCK_KERNEL=y
35CONFIG_INIT_ENV_ARG_LIMIT=32 34CONFIG_INIT_ENV_ARG_LIMIT=32
36CONFIG_LOCALVERSION="" 35CONFIG_LOCALVERSION=""
37CONFIG_LOCALVERSION_AUTO=y 36CONFIG_LOCALVERSION_AUTO=y
@@ -50,7 +49,7 @@ CONFIG_FAIR_GROUP_SCHED=y
50# CONFIG_RT_GROUP_SCHED is not set 49# CONFIG_RT_GROUP_SCHED is not set
51CONFIG_USER_SCHED=y 50CONFIG_USER_SCHED=y
52# CONFIG_CGROUP_SCHED is not set 51# CONFIG_CGROUP_SCHED is not set
53# CONFIG_SYSFS_DEPRECATED is not set 52CONFIG_SYSFS_DEPRECATED=y
54# CONFIG_RELAY is not set 53# CONFIG_RELAY is not set
55CONFIG_NAMESPACES=y 54CONFIG_NAMESPACES=y
56# CONFIG_UTS_NS is not set 55# CONFIG_UTS_NS is not set
@@ -65,6 +64,7 @@ CONFIG_SYSCTL=y
65CONFIG_UID16=y 64CONFIG_UID16=y
66CONFIG_SYSCTL_SYSCALL=y 65CONFIG_SYSCTL_SYSCALL=y
67CONFIG_KALLSYMS=y 66CONFIG_KALLSYMS=y
67# CONFIG_KALLSYMS_ALL is not set
68# CONFIG_KALLSYMS_EXTRA_PASS is not set 68# CONFIG_KALLSYMS_EXTRA_PASS is not set
69CONFIG_HOTPLUG=y 69CONFIG_HOTPLUG=y
70CONFIG_PRINTK=y 70CONFIG_PRINTK=y
@@ -165,20 +165,28 @@ CONFIG_ARCH_OMAP=y
165CONFIG_ARCH_OMAP_OTG=y 165CONFIG_ARCH_OMAP_OTG=y
166CONFIG_ARCH_OMAP1=y 166CONFIG_ARCH_OMAP1=y
167# CONFIG_ARCH_OMAP2 is not set 167# CONFIG_ARCH_OMAP2 is not set
168# CONFIG_ARCH_OMAP3 is not set
168 169
169# 170#
170# OMAP Feature Selections 171# OMAP Feature Selections
171# 172#
173CONFIG_OMAP_DEBUG_SRAM_PATCH=y
172# CONFIG_OMAP_RESET_CLOCKS is not set 174# CONFIG_OMAP_RESET_CLOCKS is not set
175CONFIG_OMAP_BOOT_TAG=y
176# CONFIG_OMAP_BOOT_REASON is not set
177# CONFIG_OMAP_COMPONENT_VERSION is not set
178CONFIG_OMAP_GPIO_SWITCH=y
173CONFIG_OMAP_MUX=y 179CONFIG_OMAP_MUX=y
174# CONFIG_OMAP_MUX_DEBUG is not set 180CONFIG_OMAP_MUX_DEBUG=y
175CONFIG_OMAP_MUX_WARNINGS=y 181CONFIG_OMAP_MUX_WARNINGS=y
182# CONFIG_OMAP_STI is not set
176CONFIG_OMAP_MCBSP=y 183CONFIG_OMAP_MCBSP=y
177# CONFIG_OMAP_MMU_FWK is not set 184# CONFIG_OMAP_MMU_FWK is not set
185# CONFIG_OMAP_MBOX_FWK is not set
178# CONFIG_OMAP_MPU_TIMER is not set 186# CONFIG_OMAP_MPU_TIMER is not set
179CONFIG_OMAP_32K_TIMER=y 187CONFIG_OMAP_32K_TIMER=y
180CONFIG_OMAP_32K_TIMER_HZ=128 188CONFIG_OMAP_32K_TIMER_HZ=128
181# CONFIG_OMAP_DM_TIMER is not set 189CONFIG_OMAP_DM_TIMER=y
182CONFIG_OMAP_LL_DEBUG_UART1=y 190CONFIG_OMAP_LL_DEBUG_UART1=y
183# CONFIG_OMAP_LL_DEBUG_UART2 is not set 191# CONFIG_OMAP_LL_DEBUG_UART2 is not set
184# CONFIG_OMAP_LL_DEBUG_UART3 is not set 192# CONFIG_OMAP_LL_DEBUG_UART3 is not set
@@ -206,10 +214,10 @@ CONFIG_MACH_OMAP_H2=y
206# 214#
207# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set 215# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
208# CONFIG_OMAP_ARM_216MHZ is not set 216# CONFIG_OMAP_ARM_216MHZ is not set
209CONFIG_OMAP_ARM_192MHZ=y 217# CONFIG_OMAP_ARM_192MHZ is not set
210# CONFIG_OMAP_ARM_168MHZ is not set 218# CONFIG_OMAP_ARM_168MHZ is not set
211# CONFIG_OMAP_ARM_120MHZ is not set 219# CONFIG_OMAP_ARM_120MHZ is not set
212# CONFIG_OMAP_ARM_60MHZ is not set 220CONFIG_OMAP_ARM_60MHZ=y
213# CONFIG_OMAP_ARM_30MHZ is not set 221# CONFIG_OMAP_ARM_30MHZ is not set
214 222
215# 223#
@@ -227,6 +235,7 @@ CONFIG_CPU_32=y
227CONFIG_CPU_ARM926T=y 235CONFIG_CPU_ARM926T=y
228CONFIG_CPU_32v5=y 236CONFIG_CPU_32v5=y
229CONFIG_CPU_ABRT_EV5TJ=y 237CONFIG_CPU_ABRT_EV5TJ=y
238CONFIG_CPU_PABRT_NOIFAR=y
230CONFIG_CPU_CACHE_VIVT=y 239CONFIG_CPU_CACHE_VIVT=y
231CONFIG_CPU_COPY_V4WB=y 240CONFIG_CPU_COPY_V4WB=y
232CONFIG_CPU_TLB_V4WBI=y 241CONFIG_CPU_TLB_V4WBI=y
@@ -257,10 +266,9 @@ CONFIG_TICK_ONESHOT=y
257CONFIG_NO_HZ=y 266CONFIG_NO_HZ=y
258CONFIG_HIGH_RES_TIMERS=y 267CONFIG_HIGH_RES_TIMERS=y
259CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 268CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
260CONFIG_PREEMPT=y 269# CONFIG_PREEMPT is not set
261CONFIG_HZ=128 270CONFIG_HZ=128
262CONFIG_AEABI=y 271# CONFIG_AEABI is not set
263CONFIG_OABI_COMPAT=y
264# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 272# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
265CONFIG_SELECT_MEMORY_MODEL=y 273CONFIG_SELECT_MEMORY_MODEL=y
266CONFIG_FLATMEM_MANUAL=y 274CONFIG_FLATMEM_MANUAL=y
@@ -275,7 +283,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096
275CONFIG_ZONE_DMA_FLAG=1 283CONFIG_ZONE_DMA_FLAG=1
276CONFIG_BOUNCE=y 284CONFIG_BOUNCE=y
277CONFIG_VIRT_TO_BUS=y 285CONFIG_VIRT_TO_BUS=y
278# CONFIG_LEDS is not set 286CONFIG_LEDS=y
287# CONFIG_LEDS_CPU is not set
279CONFIG_ALIGNMENT_TRAP=y 288CONFIG_ALIGNMENT_TRAP=y
280 289
281# 290#
@@ -283,7 +292,7 @@ CONFIG_ALIGNMENT_TRAP=y
283# 292#
284CONFIG_ZBOOT_ROM_TEXT=0x0 293CONFIG_ZBOOT_ROM_TEXT=0x0
285CONFIG_ZBOOT_ROM_BSS=0x0 294CONFIG_ZBOOT_ROM_BSS=0x0
286CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=0801 ro init=/bin/sh" 295CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=/dev/ram0 rw initrd=0x10600000,8M ramdisk_size=8192"
287# CONFIG_XIP_KERNEL is not set 296# CONFIG_XIP_KERNEL is not set
288# CONFIG_KEXEC is not set 297# CONFIG_KEXEC is not set
289# CONFIG_ATAGS_PROC is not set 298# CONFIG_ATAGS_PROC is not set
@@ -291,20 +300,7 @@ CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=0801 ro init=/bin/sh"
291# 300#
292# CPU Frequency scaling 301# CPU Frequency scaling
293# 302#
294CONFIG_CPU_FREQ=y 303# CONFIG_CPU_FREQ is not set
295CONFIG_CPU_FREQ_TABLE=y
296# CONFIG_CPU_FREQ_DEBUG is not set
297CONFIG_CPU_FREQ_STAT=y
298# CONFIG_CPU_FREQ_STAT_DETAILS is not set
299# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
300CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
301# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
302# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
303# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
304# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
305CONFIG_CPU_FREQ_GOV_USERSPACE=y
306# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
307# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
308 304
309# 305#
310# Floating point emulation 306# Floating point emulation
@@ -322,8 +318,9 @@ CONFIG_FPE_NWFPE=y
322# Userspace binary formats 318# Userspace binary formats
323# 319#
324CONFIG_BINFMT_ELF=y 320CONFIG_BINFMT_ELF=y
325CONFIG_BINFMT_AOUT=y 321# CONFIG_BINFMT_AOUT is not set
326# CONFIG_BINFMT_MISC is not set 322# CONFIG_BINFMT_MISC is not set
323# CONFIG_ARTHUR is not set
327 324
328# 325#
329# Power management options 326# Power management options
@@ -433,21 +430,102 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
433CONFIG_STANDALONE=y 430CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y 431CONFIG_PREVENT_FIRMWARE_BUILD=y
435# CONFIG_FW_LOADER is not set 432# CONFIG_FW_LOADER is not set
433CONFIG_DEBUG_DRIVER=y
434# CONFIG_DEBUG_DEVRES is not set
436# CONFIG_SYS_HYPERVISOR is not set 435# CONFIG_SYS_HYPERVISOR is not set
437# CONFIG_CONNECTOR is not set 436# CONFIG_CONNECTOR is not set
438# CONFIG_MTD is not set 437CONFIG_MTD=y
438CONFIG_MTD_DEBUG=y
439CONFIG_MTD_DEBUG_VERBOSE=3
440# CONFIG_MTD_CONCAT is not set
441CONFIG_MTD_PARTITIONS=y
442# CONFIG_MTD_REDBOOT_PARTS is not set
443CONFIG_MTD_CMDLINE_PARTS=y
444# CONFIG_MTD_AFS_PARTS is not set
445
446#
447# User Modules And Translation Layers
448#
449CONFIG_MTD_CHAR=y
450CONFIG_MTD_BLKDEVS=y
451CONFIG_MTD_BLOCK=y
452# CONFIG_FTL is not set
453# CONFIG_NFTL is not set
454# CONFIG_INFTL is not set
455# CONFIG_RFD_FTL is not set
456# CONFIG_SSFDC is not set
457# CONFIG_MTD_OOPS is not set
458
459#
460# RAM/ROM/Flash chip drivers
461#
462CONFIG_MTD_CFI=y
463# CONFIG_MTD_JEDECPROBE is not set
464CONFIG_MTD_GEN_PROBE=y
465# CONFIG_MTD_CFI_ADV_OPTIONS is not set
466CONFIG_MTD_MAP_BANK_WIDTH_1=y
467CONFIG_MTD_MAP_BANK_WIDTH_2=y
468CONFIG_MTD_MAP_BANK_WIDTH_4=y
469# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
470# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
471# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
472CONFIG_MTD_CFI_I1=y
473CONFIG_MTD_CFI_I2=y
474# CONFIG_MTD_CFI_I4 is not set
475# CONFIG_MTD_CFI_I8 is not set
476CONFIG_MTD_CFI_INTELEXT=y
477# CONFIG_MTD_CFI_AMDSTD is not set
478# CONFIG_MTD_CFI_STAA is not set
479CONFIG_MTD_CFI_UTIL=y
480# CONFIG_MTD_RAM is not set
481# CONFIG_MTD_ROM is not set
482# CONFIG_MTD_ABSENT is not set
483
484#
485# Mapping drivers for chip access
486#
487# CONFIG_MTD_COMPLEX_MAPPINGS is not set
488# CONFIG_MTD_PHYSMAP is not set
489# CONFIG_MTD_ARM_INTEGRATOR is not set
490# CONFIG_MTD_OMAP_NOR is not set
491# CONFIG_MTD_PLATRAM is not set
492
493#
494# Self-contained MTD device drivers
495#
496# CONFIG_MTD_DATAFLASH is not set
497# CONFIG_MTD_M25P80 is not set
498# CONFIG_MTD_SLRAM is not set
499# CONFIG_MTD_PHRAM is not set
500# CONFIG_MTD_MTDRAM is not set
501# CONFIG_MTD_BLOCK2MTD is not set
502
503#
504# Disk-On-Chip Device Drivers
505#
506# CONFIG_MTD_DOC2000 is not set
507# CONFIG_MTD_DOC2001 is not set
508# CONFIG_MTD_DOC2001PLUS is not set
509# CONFIG_MTD_NAND is not set
510# CONFIG_MTD_ONENAND is not set
511
512#
513# UBI - Unsorted block images
514#
515# CONFIG_MTD_UBI is not set
439# CONFIG_PARPORT is not set 516# CONFIG_PARPORT is not set
440CONFIG_BLK_DEV=y 517CONFIG_BLK_DEV=y
441# CONFIG_BLK_DEV_COW_COMMON is not set 518# CONFIG_BLK_DEV_COW_COMMON is not set
442CONFIG_BLK_DEV_LOOP=y 519CONFIG_BLK_DEV_LOOP=y
443# CONFIG_BLK_DEV_CRYPTOLOOP is not set 520# CONFIG_BLK_DEV_CRYPTOLOOP is not set
444# CONFIG_BLK_DEV_NBD is not set 521# CONFIG_BLK_DEV_NBD is not set
522# CONFIG_BLK_DEV_UB is not set
445CONFIG_BLK_DEV_RAM=y 523CONFIG_BLK_DEV_RAM=y
446CONFIG_BLK_DEV_RAM_COUNT=16 524CONFIG_BLK_DEV_RAM_COUNT=16
447CONFIG_BLK_DEV_RAM_SIZE=8192 525CONFIG_BLK_DEV_RAM_SIZE=8192
448# CONFIG_BLK_DEV_XIP is not set 526# CONFIG_BLK_DEV_XIP is not set
449# CONFIG_CDROM_PKTCDVD is not set 527# CONFIG_CDROM_PKTCDVD is not set
450CONFIG_ATA_OVER_ETH=m 528# CONFIG_ATA_OVER_ETH is not set
451CONFIG_MISC_DEVICES=y 529CONFIG_MISC_DEVICES=y
452# CONFIG_EEPROM_93CX6 is not set 530# CONFIG_EEPROM_93CX6 is not set
453# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
@@ -457,42 +535,9 @@ CONFIG_MISC_DEVICES=y
457# SCSI device support 535# SCSI device support
458# 536#
459# CONFIG_RAID_ATTRS is not set 537# CONFIG_RAID_ATTRS is not set
460CONFIG_SCSI=y 538# CONFIG_SCSI is not set
461CONFIG_SCSI_DMA=y 539# CONFIG_SCSI_DMA is not set
462# CONFIG_SCSI_TGT is not set
463# CONFIG_SCSI_NETLINK is not set 540# CONFIG_SCSI_NETLINK is not set
464CONFIG_SCSI_PROC_FS=y
465
466#
467# SCSI support type (disk, tape, CD-ROM)
468#
469# CONFIG_BLK_DEV_SD is not set
470# CONFIG_CHR_DEV_ST is not set
471# CONFIG_CHR_DEV_OSST is not set
472# CONFIG_BLK_DEV_SR is not set
473# CONFIG_CHR_DEV_SG is not set
474# CONFIG_CHR_DEV_SCH is not set
475
476#
477# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
478#
479# CONFIG_SCSI_MULTI_LUN is not set
480# CONFIG_SCSI_CONSTANTS is not set
481# CONFIG_SCSI_LOGGING is not set
482# CONFIG_SCSI_SCAN_ASYNC is not set
483CONFIG_SCSI_WAIT_SCAN=m
484
485#
486# SCSI Transports
487#
488# CONFIG_SCSI_SPI_ATTRS is not set
489# CONFIG_SCSI_FC_ATTRS is not set
490# CONFIG_SCSI_ISCSI_ATTRS is not set
491# CONFIG_SCSI_SAS_LIBSAS is not set
492# CONFIG_SCSI_SRP_ATTRS is not set
493CONFIG_SCSI_LOWLEVEL=y
494# CONFIG_ISCSI_TCP is not set
495# CONFIG_SCSI_DEBUG is not set
496# CONFIG_ATA is not set 541# CONFIG_ATA is not set
497# CONFIG_MD is not set 542# CONFIG_MD is not set
498CONFIG_NETDEVICES=y 543CONFIG_NETDEVICES=y
@@ -509,6 +554,7 @@ CONFIG_MII=y
509# CONFIG_AX88796 is not set 554# CONFIG_AX88796 is not set
510CONFIG_SMC91X=y 555CONFIG_SMC91X=y
511# CONFIG_DM9000 is not set 556# CONFIG_DM9000 is not set
557# CONFIG_ENC28J60 is not set
512# CONFIG_IBM_NEW_EMAC_ZMII is not set 558# CONFIG_IBM_NEW_EMAC_ZMII is not set
513# CONFIG_IBM_NEW_EMAC_RGMII is not set 559# CONFIG_IBM_NEW_EMAC_RGMII is not set
514# CONFIG_IBM_NEW_EMAC_TAH is not set 560# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -523,6 +569,15 @@ CONFIG_NETDEV_10000=y
523# 569#
524# CONFIG_WLAN_PRE80211 is not set 570# CONFIG_WLAN_PRE80211 is not set
525# CONFIG_WLAN_80211 is not set 571# CONFIG_WLAN_80211 is not set
572
573#
574# USB Network Adapters
575#
576# CONFIG_USB_CATC is not set
577# CONFIG_USB_KAWETH is not set
578# CONFIG_USB_PEGASUS is not set
579# CONFIG_USB_RTL8150 is not set
580# CONFIG_USB_USBNET is not set
526# CONFIG_WAN is not set 581# CONFIG_WAN is not set
527CONFIG_PPP=y 582CONFIG_PPP=y
528# CONFIG_PPP_MULTILINK is not set 583# CONFIG_PPP_MULTILINK is not set
@@ -612,7 +667,8 @@ CONFIG_SERIAL_CORE_CONSOLE=y
612CONFIG_UNIX98_PTYS=y 667CONFIG_UNIX98_PTYS=y
613# CONFIG_LEGACY_PTYS is not set 668# CONFIG_LEGACY_PTYS is not set
614# CONFIG_IPMI_HANDLER is not set 669# CONFIG_IPMI_HANDLER is not set
615# CONFIG_HW_RANDOM is not set 670CONFIG_HW_RANDOM=m
671CONFIG_HW_RANDOM_OMAP=m
616# CONFIG_NVRAM is not set 672# CONFIG_NVRAM is not set
617# CONFIG_R3964 is not set 673# CONFIG_R3964 is not set
618# CONFIG_RAW_DRIVER is not set 674# CONFIG_RAW_DRIVER is not set
@@ -638,6 +694,7 @@ CONFIG_I2C_OMAP=y
638# CONFIG_I2C_SIMTEC is not set 694# CONFIG_I2C_SIMTEC is not set
639# CONFIG_I2C_TAOS_EVM is not set 695# CONFIG_I2C_TAOS_EVM is not set
640# CONFIG_I2C_STUB is not set 696# CONFIG_I2C_STUB is not set
697# CONFIG_I2C_TINY_USB is not set
641 698
642# 699#
643# Miscellaneous I2C Chip support 700# Miscellaneous I2C Chip support
@@ -647,8 +704,10 @@ CONFIG_I2C_OMAP=y
647# CONFIG_SENSORS_PCF8574 is not set 704# CONFIG_SENSORS_PCF8574 is not set
648# CONFIG_PCF8575 is not set 705# CONFIG_PCF8575 is not set
649# CONFIG_SENSORS_PCF8591 is not set 706# CONFIG_SENSORS_PCF8591 is not set
650# CONFIG_ISP1301_OMAP is not set 707CONFIG_ISP1301_OMAP=y
651CONFIG_TPS65010=y 708CONFIG_TPS65010=y
709# CONFIG_SENSORS_TLV320AIC23 is not set
710# CONFIG_GPIOEXPANDER_OMAP is not set
652# CONFIG_SENSORS_MAX6875 is not set 711# CONFIG_SENSORS_MAX6875 is not set
653# CONFIG_SENSORS_TSL2550 is not set 712# CONFIG_SENSORS_TSL2550 is not set
654# CONFIG_I2C_DEBUG_CORE is not set 713# CONFIG_I2C_DEBUG_CORE is not set
@@ -659,8 +718,26 @@ CONFIG_TPS65010=y
659# 718#
660# SPI support 719# SPI support
661# 720#
662# CONFIG_SPI is not set 721CONFIG_SPI=y
663# CONFIG_SPI_MASTER is not set 722# CONFIG_SPI_DEBUG is not set
723CONFIG_SPI_MASTER=y
724
725#
726# SPI Master Controller Drivers
727#
728CONFIG_SPI_BITBANG=y
729CONFIG_SPI_OMAP_UWIRE=y
730
731#
732# SPI Protocol Masters
733#
734# CONFIG_SPI_AT25 is not set
735CONFIG_SPI_TSC2101=y
736# CONFIG_SPI_TSC2102 is not set
737# CONFIG_SPI_TSC210X is not set
738# CONFIG_SPI_TSC2301 is not set
739# CONFIG_SPI_SPIDEV is not set
740# CONFIG_SPI_TLE62X0 is not set
664# CONFIG_W1 is not set 741# CONFIG_W1 is not set
665# CONFIG_POWER_SUPPLY is not set 742# CONFIG_POWER_SUPPLY is not set
666CONFIG_HWMON=y 743CONFIG_HWMON=y
@@ -673,7 +750,6 @@ CONFIG_HWMON=y
673# CONFIG_SENSORS_ADM1031 is not set 750# CONFIG_SENSORS_ADM1031 is not set
674# CONFIG_SENSORS_ADM9240 is not set 751# CONFIG_SENSORS_ADM9240 is not set
675# CONFIG_SENSORS_ADT7470 is not set 752# CONFIG_SENSORS_ADT7470 is not set
676# CONFIG_SENSORS_ADT7473 is not set
677# CONFIG_SENSORS_ATXP1 is not set 753# CONFIG_SENSORS_ATXP1 is not set
678# CONFIG_SENSORS_DS1621 is not set 754# CONFIG_SENSORS_DS1621 is not set
679# CONFIG_SENSORS_F71805F is not set 755# CONFIG_SENSORS_F71805F is not set
@@ -683,6 +759,7 @@ CONFIG_HWMON=y
683# CONFIG_SENSORS_GL520SM is not set 759# CONFIG_SENSORS_GL520SM is not set
684# CONFIG_SENSORS_IT87 is not set 760# CONFIG_SENSORS_IT87 is not set
685# CONFIG_SENSORS_LM63 is not set 761# CONFIG_SENSORS_LM63 is not set
762# CONFIG_SENSORS_LM70 is not set
686# CONFIG_SENSORS_LM75 is not set 763# CONFIG_SENSORS_LM75 is not set
687# CONFIG_SENSORS_LM77 is not set 764# CONFIG_SENSORS_LM77 is not set
688# CONFIG_SENSORS_LM78 is not set 765# CONFIG_SENSORS_LM78 is not set
@@ -712,6 +789,7 @@ CONFIG_HWMON=y
712# CONFIG_SENSORS_W83L786NG is not set 789# CONFIG_SENSORS_W83L786NG is not set
713# CONFIG_SENSORS_W83627HF is not set 790# CONFIG_SENSORS_W83627HF is not set
714# CONFIG_SENSORS_W83627EHF is not set 791# CONFIG_SENSORS_W83627EHF is not set
792# CONFIG_SENSORS_TSC210X is not set
715# CONFIG_HWMON_DEBUG_CHIP is not set 793# CONFIG_HWMON_DEBUG_CHIP is not set
716CONFIG_WATCHDOG=y 794CONFIG_WATCHDOG=y
717CONFIG_WATCHDOG_NOWAYOUT=y 795CONFIG_WATCHDOG_NOWAYOUT=y
@@ -723,6 +801,11 @@ CONFIG_WATCHDOG_NOWAYOUT=y
723# CONFIG_OMAP_WATCHDOG is not set 801# CONFIG_OMAP_WATCHDOG is not set
724 802
725# 803#
804# USB-based Watchdog Cards
805#
806# CONFIG_USBPCWATCHDOG is not set
807
808#
726# Sonics Silicon Backplane 809# Sonics Silicon Backplane
727# 810#
728CONFIG_SSB_POSSIBLE=y 811CONFIG_SSB_POSSIBLE=y
@@ -740,6 +823,7 @@ CONFIG_SSB_POSSIBLE=y
740# CONFIG_VIDEO_DEV is not set 823# CONFIG_VIDEO_DEV is not set
741# CONFIG_DVB_CORE is not set 824# CONFIG_DVB_CORE is not set
742CONFIG_DAB=y 825CONFIG_DAB=y
826# CONFIG_USB_DABUSB is not set
743 827
744# 828#
745# Graphics support 829# Graphics support
@@ -749,9 +833,9 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
749CONFIG_FB=y 833CONFIG_FB=y
750CONFIG_FIRMWARE_EDID=y 834CONFIG_FIRMWARE_EDID=y
751# CONFIG_FB_DDC is not set 835# CONFIG_FB_DDC is not set
752# CONFIG_FB_CFB_FILLRECT is not set 836CONFIG_FB_CFB_FILLRECT=y
753# CONFIG_FB_CFB_COPYAREA is not set 837CONFIG_FB_CFB_COPYAREA=y
754# CONFIG_FB_CFB_IMAGEBLIT is not set 838CONFIG_FB_CFB_IMAGEBLIT=y
755# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 839# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
756# CONFIG_FB_SYS_FILLRECT is not set 840# CONFIG_FB_SYS_FILLRECT is not set
757# CONFIG_FB_SYS_COPYAREA is not set 841# CONFIG_FB_SYS_COPYAREA is not set
@@ -769,7 +853,11 @@ CONFIG_FB_MODE_HELPERS=y
769# 853#
770# CONFIG_FB_S1D13XXX is not set 854# CONFIG_FB_S1D13XXX is not set
771# CONFIG_FB_VIRTUAL is not set 855# CONFIG_FB_VIRTUAL is not set
772# CONFIG_FB_OMAP is not set 856CONFIG_FB_OMAP=y
857# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
858# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
859CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
860# CONFIG_FB_OMAP_DMA_TUNE is not set
773# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 861# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
774 862
775# 863#
@@ -785,17 +873,9 @@ CONFIG_DUMMY_CONSOLE=y
785CONFIG_FRAMEBUFFER_CONSOLE=y 873CONFIG_FRAMEBUFFER_CONSOLE=y
786# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set 874# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
787# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set 875# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
788CONFIG_FONTS=y 876# CONFIG_FONTS is not set
789CONFIG_FONT_8x8=y 877CONFIG_FONT_8x8=y
790CONFIG_FONT_8x16=y 878CONFIG_FONT_8x16=y
791# CONFIG_FONT_6x11 is not set
792# CONFIG_FONT_7x14 is not set
793# CONFIG_FONT_PEARL_8x8 is not set
794# CONFIG_FONT_ACORN_8x8 is not set
795# CONFIG_FONT_MINI_4x6 is not set
796# CONFIG_FONT_SUN8x16 is not set
797# CONFIG_FONT_SUN12x22 is not set
798# CONFIG_FONT_10x18 is not set
799CONFIG_LOGO=y 879CONFIG_LOGO=y
800# CONFIG_LOGO_LINUX_MONO is not set 880# CONFIG_LOGO_LINUX_MONO is not set
801# CONFIG_LOGO_LINUX_VGA16 is not set 881# CONFIG_LOGO_LINUX_VGA16 is not set
@@ -804,37 +884,204 @@ CONFIG_LOGO_LINUX_CLUT224=y
804# 884#
805# Sound 885# Sound
806# 886#
807CONFIG_SOUND=y 887# CONFIG_SOUND is not set
888CONFIG_HID_SUPPORT=y
889CONFIG_HID=y
890# CONFIG_HID_DEBUG is not set
891# CONFIG_HIDRAW is not set
808 892
809# 893#
810# Advanced Linux Sound Architecture 894# USB Input Devices
811# 895#
812# CONFIG_SND is not set 896# CONFIG_USB_HID is not set
813 897
814# 898#
815# Open Sound System 899# USB HID Boot Protocol drivers
816# 900#
817CONFIG_SOUND_PRIME=y 901# CONFIG_USB_KBD is not set
818# CONFIG_SOUND_MSNDCLAS is not set 902# CONFIG_USB_MOUSE is not set
819# CONFIG_SOUND_MSNDPIN is not set
820CONFIG_HID_SUPPORT=y
821CONFIG_HID=y
822CONFIG_HID_DEBUG=y
823# CONFIG_HIDRAW is not set
824CONFIG_USB_SUPPORT=y 903CONFIG_USB_SUPPORT=y
825CONFIG_USB_ARCH_HAS_HCD=y 904CONFIG_USB_ARCH_HAS_HCD=y
826CONFIG_USB_ARCH_HAS_OHCI=y 905CONFIG_USB_ARCH_HAS_OHCI=y
827# CONFIG_USB_ARCH_HAS_EHCI is not set 906# CONFIG_USB_ARCH_HAS_EHCI is not set
828# CONFIG_USB is not set 907CONFIG_USB=y
908# CONFIG_USB_DEBUG is not set
909# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
910
911#
912# Miscellaneous USB options
913#
914CONFIG_USB_DEVICEFS=y
915# CONFIG_USB_DEVICE_CLASS is not set
916# CONFIG_USB_DYNAMIC_MINORS is not set
917CONFIG_USB_SUSPEND=y
918# CONFIG_USB_PERSIST is not set
919CONFIG_USB_OTG=y
920CONFIG_USB_OTG_WHITELIST=y
921# CONFIG_USB_OTG_BLACKLIST_HUB is not set
922
923#
924# USB Host Controller Drivers
925#
926# CONFIG_USB_ISP116X_HCD is not set
927CONFIG_USB_OHCI_HCD=y
928# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
929# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
930CONFIG_USB_OHCI_LITTLE_ENDIAN=y
931# CONFIG_USB_SL811_HCD is not set
932# CONFIG_USB_R8A66597_HCD is not set
933# CONFIG_USB_MUSB_HDRC is not set
934# CONFIG_USB_GADGET_MUSB_HDRC is not set
935
936#
937# USB Device Class drivers
938#
939# CONFIG_USB_ACM is not set
940# CONFIG_USB_PRINTER is not set
829 941
830# 942#
831# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 943# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
832# 944#
833# CONFIG_USB_GADGET is not set 945
834# CONFIG_MMC is not set 946#
947# may also be needed; see USB_STORAGE Help for more information
948#
949# CONFIG_USB_LIBUSUAL is not set
950
951#
952# USB Imaging devices
953#
954# CONFIG_USB_MDC800 is not set
955CONFIG_USB_MON=y
956
957#
958# USB port drivers
959#
960# CONFIG_USB_SERIAL is not set
961
962#
963# USB Miscellaneous drivers
964#
965# CONFIG_USB_EMI62 is not set
966# CONFIG_USB_EMI26 is not set
967# CONFIG_USB_ADUTUX is not set
968# CONFIG_USB_AUERSWALD is not set
969# CONFIG_USB_RIO500 is not set
970# CONFIG_USB_LEGOTOWER is not set
971# CONFIG_USB_LCD is not set
972# CONFIG_USB_BERRY_CHARGE is not set
973# CONFIG_USB_LED is not set
974# CONFIG_USB_CYPRESS_CY7C63 is not set
975# CONFIG_USB_CYTHERM is not set
976# CONFIG_USB_PHIDGET is not set
977# CONFIG_USB_IDMOUSE is not set
978# CONFIG_USB_FTDI_ELAN is not set
979# CONFIG_USB_APPLEDISPLAY is not set
980# CONFIG_USB_LD is not set
981# CONFIG_USB_TRANCEVIBRATOR is not set
982# CONFIG_USB_IOWARRIOR is not set
983CONFIG_USB_TEST=y
984CONFIG_USB_GADGET=y
985# CONFIG_USB_GADGET_DEBUG is not set
986# CONFIG_USB_GADGET_DEBUG_FILES is not set
987CONFIG_USB_GADGET_SELECTED=y
988# CONFIG_USB_GADGET_AMD5536UDC is not set
989# CONFIG_USB_GADGET_ATMEL_USBA is not set
990# CONFIG_USB_GADGET_FSL_USB2 is not set
991# CONFIG_USB_GADGET_NET2280 is not set
992# CONFIG_USB_GADGET_PXA2XX is not set
993# CONFIG_USB_GADGET_M66592 is not set
994# CONFIG_USB_GADGET_GOKU is not set
995# CONFIG_USB_GADGET_LH7A40X is not set
996CONFIG_USB_GADGET_OMAP=y
997CONFIG_USB_OMAP=y
998# CONFIG_USB_GADGET_S3C2410 is not set
999# CONFIG_USB_GADGET_AT91 is not set
1000# CONFIG_USB_GADGET_DUMMY_HCD is not set
1001# CONFIG_USB_GADGET_DUALSPEED is not set
1002# CONFIG_USB_ZERO is not set
1003CONFIG_USB_ETH=y
1004CONFIG_USB_ETH_RNDIS=y
1005# CONFIG_USB_GADGETFS is not set
1006# CONFIG_USB_FILE_STORAGE is not set
1007# CONFIG_USB_G_SERIAL is not set
1008# CONFIG_USB_MIDI_GADGET is not set
1009# CONFIG_USB_G_PRINTER is not set
1010CONFIG_MMC=y
1011# CONFIG_MMC_DEBUG is not set
1012# CONFIG_MMC_UNSAFE_RESUME is not set
1013
1014#
1015# MMC/SD Card Drivers
1016#
1017CONFIG_MMC_BLOCK=y
1018CONFIG_MMC_BLOCK_BOUNCE=y
1019# CONFIG_SDIO_UART is not set
1020
1021#
1022# MMC/SD Host Controller Drivers
1023#
1024CONFIG_MMC_OMAP=y
1025# CONFIG_MMC_SPI is not set
835# CONFIG_NEW_LEDS is not set 1026# CONFIG_NEW_LEDS is not set
836CONFIG_RTC_LIB=y 1027CONFIG_RTC_LIB=y
837# CONFIG_RTC_CLASS is not set 1028CONFIG_RTC_CLASS=y
1029CONFIG_RTC_HCTOSYS=y
1030CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1031# CONFIG_RTC_DEBUG is not set
1032
1033#
1034# RTC interfaces
1035#
1036CONFIG_RTC_INTF_SYSFS=y
1037CONFIG_RTC_INTF_PROC=y
1038CONFIG_RTC_INTF_DEV=y
1039# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1040# CONFIG_RTC_DRV_TEST is not set
1041
1042#
1043# I2C RTC drivers
1044#
1045# CONFIG_RTC_DRV_DS1307 is not set
1046# CONFIG_RTC_DRV_DS1374 is not set
1047# CONFIG_RTC_DRV_DS1672 is not set
1048# CONFIG_RTC_DRV_MAX6900 is not set
1049# CONFIG_RTC_DRV_RS5C372 is not set
1050# CONFIG_RTC_DRV_ISL1208 is not set
1051# CONFIG_RTC_DRV_X1205 is not set
1052# CONFIG_RTC_DRV_PCF8563 is not set
1053# CONFIG_RTC_DRV_PCF8583 is not set
1054# CONFIG_RTC_DRV_M41T80 is not set
1055
1056#
1057# SPI RTC drivers
1058#
1059# CONFIG_RTC_DRV_MAX6902 is not set
1060# CONFIG_RTC_DRV_R9701 is not set
1061# CONFIG_RTC_DRV_RS5C348 is not set
1062
1063#
1064# Platform RTC drivers
1065#
1066# CONFIG_RTC_DRV_CMOS is not set
1067# CONFIG_RTC_DRV_DS1511 is not set
1068# CONFIG_RTC_DRV_DS1553 is not set
1069# CONFIG_RTC_DRV_DS1742 is not set
1070# CONFIG_RTC_DRV_STK17TA8 is not set
1071# CONFIG_RTC_DRV_M48T86 is not set
1072# CONFIG_RTC_DRV_M48T59 is not set
1073# CONFIG_RTC_DRV_V3020 is not set
1074
1075#
1076# on-CPU RTC drivers
1077#
1078CONFIG_RTC_DRV_OMAP=y
1079
1080#
1081# CBUS support
1082#
1083# CONFIG_CBUS is not set
1084# CONFIG_OMAP_DSP is not set
838 1085
839# 1086#
840# File systems 1087# File systems
@@ -894,6 +1141,17 @@ CONFIG_SYSFS=y
894# CONFIG_BEFS_FS is not set 1141# CONFIG_BEFS_FS is not set
895# CONFIG_BFS_FS is not set 1142# CONFIG_BFS_FS is not set
896# CONFIG_EFS_FS is not set 1143# CONFIG_EFS_FS is not set
1144CONFIG_JFFS2_FS=y
1145CONFIG_JFFS2_FS_DEBUG=0
1146CONFIG_JFFS2_FS_WRITEBUFFER=y
1147# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1148# CONFIG_JFFS2_SUMMARY is not set
1149# CONFIG_JFFS2_FS_XATTR is not set
1150# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1151CONFIG_JFFS2_ZLIB=y
1152# CONFIG_JFFS2_LZO is not set
1153CONFIG_JFFS2_RTIME=y
1154# CONFIG_JFFS2_RUBIN is not set
897CONFIG_CRAMFS=y 1155CONFIG_CRAMFS=y
898# CONFIG_VXFS_FS is not set 1156# CONFIG_VXFS_FS is not set
899# CONFIG_MINIX_FS is not set 1157# CONFIG_MINIX_FS is not set
@@ -904,19 +1162,16 @@ CONFIG_ROMFS_FS=y
904# CONFIG_UFS_FS is not set 1162# CONFIG_UFS_FS is not set
905CONFIG_NETWORK_FILESYSTEMS=y 1163CONFIG_NETWORK_FILESYSTEMS=y
906CONFIG_NFS_FS=y 1164CONFIG_NFS_FS=y
907CONFIG_NFS_V3=y 1165# CONFIG_NFS_V3 is not set
908# CONFIG_NFS_V3_ACL is not set 1166# CONFIG_NFS_V4 is not set
909CONFIG_NFS_V4=y
910# CONFIG_NFS_DIRECTIO is not set 1167# CONFIG_NFS_DIRECTIO is not set
911# CONFIG_NFSD is not set 1168# CONFIG_NFSD is not set
912CONFIG_ROOT_NFS=y 1169CONFIG_ROOT_NFS=y
913CONFIG_LOCKD=y 1170CONFIG_LOCKD=y
914CONFIG_LOCKD_V4=y
915CONFIG_NFS_COMMON=y 1171CONFIG_NFS_COMMON=y
916CONFIG_SUNRPC=y 1172CONFIG_SUNRPC=y
917CONFIG_SUNRPC_GSS=y
918# CONFIG_SUNRPC_BIND34 is not set 1173# CONFIG_SUNRPC_BIND34 is not set
919CONFIG_RPCSEC_GSS_KRB5=y 1174# CONFIG_RPCSEC_GSS_KRB5 is not set
920# CONFIG_RPCSEC_GSS_SPKM3 is not set 1175# CONFIG_RPCSEC_GSS_SPKM3 is not set
921# CONFIG_SMB_FS is not set 1176# CONFIG_SMB_FS is not set
922# CONFIG_CIFS is not set 1177# CONFIG_CIFS is not set
@@ -981,11 +1236,38 @@ CONFIG_ENABLE_MUST_CHECK=y
981# CONFIG_UNUSED_SYMBOLS is not set 1236# CONFIG_UNUSED_SYMBOLS is not set
982# CONFIG_DEBUG_FS is not set 1237# CONFIG_DEBUG_FS is not set
983# CONFIG_HEADERS_CHECK is not set 1238# CONFIG_HEADERS_CHECK is not set
984# CONFIG_DEBUG_KERNEL is not set 1239CONFIG_DEBUG_KERNEL=y
1240# CONFIG_DEBUG_SHIRQ is not set
1241CONFIG_DETECT_SOFTLOCKUP=y
1242CONFIG_SCHED_DEBUG=y
1243# CONFIG_SCHEDSTATS is not set
1244# CONFIG_TIMER_STATS is not set
1245# CONFIG_DEBUG_SLAB is not set
1246# CONFIG_DEBUG_RT_MUTEXES is not set
1247# CONFIG_RT_MUTEX_TESTER is not set
1248# CONFIG_DEBUG_SPINLOCK is not set
1249# CONFIG_DEBUG_MUTEXES is not set
1250# CONFIG_DEBUG_LOCK_ALLOC is not set
1251# CONFIG_PROVE_LOCKING is not set
1252# CONFIG_LOCK_STAT is not set
1253# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1254# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1255# CONFIG_DEBUG_KOBJECT is not set
985CONFIG_DEBUG_BUGVERBOSE=y 1256CONFIG_DEBUG_BUGVERBOSE=y
1257CONFIG_DEBUG_INFO=y
1258# CONFIG_DEBUG_VM is not set
1259# CONFIG_DEBUG_LIST is not set
1260# CONFIG_DEBUG_SG is not set
986CONFIG_FRAME_POINTER=y 1261CONFIG_FRAME_POINTER=y
1262# CONFIG_BOOT_PRINTK_DELAY is not set
1263# CONFIG_RCU_TORTURE_TEST is not set
1264# CONFIG_BACKTRACE_SELF_TEST is not set
1265# CONFIG_FAULT_INJECTION is not set
987# CONFIG_SAMPLES is not set 1266# CONFIG_SAMPLES is not set
988# CONFIG_DEBUG_USER is not set 1267CONFIG_DEBUG_USER=y
1268CONFIG_DEBUG_ERRORS=y
1269# CONFIG_DEBUG_STACK_USAGE is not set
1270# CONFIG_DEBUG_LL is not set
989 1271
990# 1272#
991# Security options 1273# Security options
@@ -994,31 +1276,29 @@ CONFIG_FRAME_POINTER=y
994# CONFIG_SECURITY is not set 1276# CONFIG_SECURITY is not set
995# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1277# CONFIG_SECURITY_FILE_CAPABILITIES is not set
996CONFIG_CRYPTO=y 1278CONFIG_CRYPTO=y
997CONFIG_CRYPTO_ALGAPI=y
998CONFIG_CRYPTO_BLKCIPHER=y
999# CONFIG_CRYPTO_SEQIV is not set 1279# CONFIG_CRYPTO_SEQIV is not set
1000CONFIG_CRYPTO_MANAGER=y 1280# CONFIG_CRYPTO_MANAGER is not set
1001# CONFIG_CRYPTO_HMAC is not set 1281# CONFIG_CRYPTO_HMAC is not set
1002# CONFIG_CRYPTO_XCBC is not set 1282# CONFIG_CRYPTO_XCBC is not set
1003# CONFIG_CRYPTO_NULL is not set 1283# CONFIG_CRYPTO_NULL is not set
1004# CONFIG_CRYPTO_MD4 is not set 1284# CONFIG_CRYPTO_MD4 is not set
1005CONFIG_CRYPTO_MD5=y 1285# CONFIG_CRYPTO_MD5 is not set
1006# CONFIG_CRYPTO_SHA1 is not set 1286# CONFIG_CRYPTO_SHA1 is not set
1007# CONFIG_CRYPTO_SHA256 is not set 1287# CONFIG_CRYPTO_SHA256 is not set
1008# CONFIG_CRYPTO_SHA512 is not set 1288# CONFIG_CRYPTO_SHA512 is not set
1009# CONFIG_CRYPTO_WP512 is not set 1289# CONFIG_CRYPTO_WP512 is not set
1010# CONFIG_CRYPTO_TGR192 is not set 1290# CONFIG_CRYPTO_TGR192 is not set
1011# CONFIG_CRYPTO_GF128MUL is not set 1291# CONFIG_CRYPTO_GF128MUL is not set
1012CONFIG_CRYPTO_ECB=m 1292# CONFIG_CRYPTO_ECB is not set
1013CONFIG_CRYPTO_CBC=y 1293# CONFIG_CRYPTO_CBC is not set
1014CONFIG_CRYPTO_PCBC=m 1294# CONFIG_CRYPTO_PCBC is not set
1015# CONFIG_CRYPTO_LRW is not set 1295# CONFIG_CRYPTO_LRW is not set
1016# CONFIG_CRYPTO_XTS is not set 1296# CONFIG_CRYPTO_XTS is not set
1017# CONFIG_CRYPTO_CTR is not set 1297# CONFIG_CRYPTO_CTR is not set
1018# CONFIG_CRYPTO_GCM is not set 1298# CONFIG_CRYPTO_GCM is not set
1019# CONFIG_CRYPTO_CCM is not set 1299# CONFIG_CRYPTO_CCM is not set
1020# CONFIG_CRYPTO_CRYPTD is not set 1300# CONFIG_CRYPTO_CRYPTD is not set
1021CONFIG_CRYPTO_DES=y 1301# CONFIG_CRYPTO_DES is not set
1022# CONFIG_CRYPTO_FCRYPT is not set 1302# CONFIG_CRYPTO_FCRYPT is not set
1023# CONFIG_CRYPTO_BLOWFISH is not set 1303# CONFIG_CRYPTO_BLOWFISH is not set
1024# CONFIG_CRYPTO_TWOFISH is not set 1304# CONFIG_CRYPTO_TWOFISH is not set
@@ -1052,6 +1332,7 @@ CONFIG_CRC32=y
1052# CONFIG_CRC7 is not set 1332# CONFIG_CRC7 is not set
1053# CONFIG_LIBCRC32C is not set 1333# CONFIG_LIBCRC32C is not set
1054CONFIG_ZLIB_INFLATE=y 1334CONFIG_ZLIB_INFLATE=y
1335CONFIG_ZLIB_DEFLATE=y
1055CONFIG_PLIST=y 1336CONFIG_PLIST=y
1056CONFIG_HAS_IOMEM=y 1337CONFIG_HAS_IOMEM=y
1057CONFIG_HAS_IOPORT=y 1338CONFIG_HAS_IOPORT=y
diff --git a/arch/arm/configs/omap_h4_2420_defconfig b/arch/arm/configs/omap_h4_2420_defconfig
new file mode 100644
index 00000000000..5bc89185a64
--- /dev/null
+++ b/arch/arm/configs/omap_h4_2420_defconfig
@@ -0,0 +1,1120 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 11:44:58 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34CONFIG_LOCALVERSION=""
35CONFIG_LOCALVERSION_AUTO=y
36CONFIG_SWAP=y
37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_POSIX_MQUEUE is not set
40CONFIG_BSD_PROCESS_ACCT=y
41# CONFIG_BSD_PROCESS_ACCT_V3 is not set
42# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47CONFIG_SYSFS_DEPRECATED=y
48# CONFIG_RELAY is not set
49CONFIG_BLK_DEV_INITRD=y
50CONFIG_INITRAMFS_SOURCE=""
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53CONFIG_EMBEDDED=y
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_ALL is not set
58CONFIG_KALLSYMS_EXTRA_PASS=y
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y
79CONFIG_MODULE_UNLOAD=y
80# CONFIG_MODULE_FORCE_UNLOAD is not set
81CONFIG_MODVERSIONS=y
82CONFIG_MODULE_SRCVERSION_ALL=y
83CONFIG_KMOD=y
84CONFIG_BLOCK=y
85# CONFIG_LBD is not set
86# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set
88# CONFIG_BLK_DEV_BSG is not set
89
90#
91# IO Schedulers
92#
93CONFIG_IOSCHED_NOOP=y
94CONFIG_IOSCHED_AS=y
95CONFIG_IOSCHED_DEADLINE=y
96CONFIG_IOSCHED_CFQ=y
97CONFIG_DEFAULT_AS=y
98# CONFIG_DEFAULT_DEADLINE is not set
99# CONFIG_DEFAULT_CFQ is not set
100# CONFIG_DEFAULT_NOOP is not set
101CONFIG_DEFAULT_IOSCHED="anticipatory"
102
103#
104# System Type
105#
106# CONFIG_ARCH_AAEC2000 is not set
107# CONFIG_ARCH_INTEGRATOR is not set
108# CONFIG_ARCH_REALVIEW is not set
109# CONFIG_ARCH_VERSATILE is not set
110# CONFIG_ARCH_AT91 is not set
111# CONFIG_ARCH_CLPS7500 is not set
112# CONFIG_ARCH_CLPS711X is not set
113# CONFIG_ARCH_CO285 is not set
114# CONFIG_ARCH_EBSA110 is not set
115# CONFIG_ARCH_EP93XX is not set
116# CONFIG_ARCH_FOOTBRIDGE is not set
117# CONFIG_ARCH_NETX is not set
118# CONFIG_ARCH_H720X is not set
119# CONFIG_ARCH_IMX is not set
120# CONFIG_ARCH_IOP13XX is not set
121# CONFIG_ARCH_IOP32X is not set
122# CONFIG_ARCH_IOP33X is not set
123# CONFIG_ARCH_IXP23XX is not set
124# CONFIG_ARCH_IXP2000 is not set
125# CONFIG_ARCH_IXP4XX is not set
126# CONFIG_ARCH_L7200 is not set
127# CONFIG_ARCH_KS8695 is not set
128# CONFIG_ARCH_NS9XXX is not set
129# CONFIG_ARCH_MXC is not set
130# CONFIG_ARCH_PNX4008 is not set
131# CONFIG_ARCH_PXA is not set
132# CONFIG_ARCH_RPC is not set
133# CONFIG_ARCH_SA1100 is not set
134# CONFIG_ARCH_S3C2410 is not set
135# CONFIG_ARCH_SHARK is not set
136# CONFIG_ARCH_LH7A40X is not set
137# CONFIG_ARCH_DAVINCI is not set
138CONFIG_ARCH_OMAP=y
139
140#
141# TI OMAP Implementations
142#
143CONFIG_ARCH_OMAP_OTG=y
144# CONFIG_ARCH_OMAP1 is not set
145CONFIG_ARCH_OMAP2=y
146# CONFIG_ARCH_OMAP3 is not set
147
148#
149# OMAP Feature Selections
150#
151CONFIG_OMAP_DEBUG_DEVICES=y
152# CONFIG_OMAP_RESET_CLOCKS is not set
153CONFIG_OMAP_BOOT_TAG=y
154# CONFIG_OMAP_BOOT_REASON is not set
155# CONFIG_OMAP_COMPONENT_VERSION is not set
156# CONFIG_OMAP_GPIO_SWITCH is not set
157CONFIG_OMAP_MUX=y
158CONFIG_OMAP_MUX_DEBUG=y
159CONFIG_OMAP_MUX_WARNINGS=y
160# CONFIG_OMAP_STI is not set
161CONFIG_OMAP_MCBSP=y
162# CONFIG_OMAP_MMU_FWK is not set
163# CONFIG_OMAP_MBOX_FWK is not set
164CONFIG_OMAP_MPU_TIMER=y
165# CONFIG_OMAP_32K_TIMER is not set
166CONFIG_OMAP_DM_TIMER=y
167CONFIG_OMAP_LL_DEBUG_UART1=y
168# CONFIG_OMAP_LL_DEBUG_UART2 is not set
169# CONFIG_OMAP_LL_DEBUG_UART3 is not set
170CONFIG_OMAP_SERIAL_WAKE=y
171# CONFIG_OMAP_DSP is not set
172# CONFIG_MACH_OMAP_GENERIC is not set
173
174#
175# OMAP Core Type
176#
177CONFIG_ARCH_OMAP24XX=y
178CONFIG_ARCH_OMAP2420=y
179# CONFIG_ARCH_OMAP2430 is not set
180
181#
182# OMAP Board Type
183#
184# CONFIG_MACH_NOKIA_N800 is not set
185CONFIG_MACH_OMAP_H4=y
186# CONFIG_MACH_OMAP_H4_TUSB is not set
187# CONFIG_MACH_OMAP_H4_OTG is not set
188# CONFIG_MACH_OMAP2_H4_USB1 is not set
189# CONFIG_MACH_OMAP_APOLLON is not set
190# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
191# CONFIG_MACH_OMAP_2430SDP is not set
192
193#
194# Boot options
195#
196
197#
198# Power management
199#
200
201#
202# Processor Type
203#
204CONFIG_CPU_32=y
205CONFIG_CPU_V6=y
206# CONFIG_CPU_32v6K is not set
207CONFIG_CPU_32v6=y
208CONFIG_CPU_ABRT_EV6=y
209CONFIG_CPU_PABRT_NOIFAR=y
210CONFIG_CPU_CACHE_V6=y
211CONFIG_CPU_CACHE_VIPT=y
212CONFIG_CPU_COPY_V6=y
213CONFIG_CPU_TLB_V6=y
214CONFIG_CPU_HAS_ASID=y
215CONFIG_CPU_CP15=y
216CONFIG_CPU_CP15_MMU=y
217
218#
219# Processor Features
220#
221CONFIG_ARM_THUMB=y
222# CONFIG_CPU_ICACHE_DISABLE is not set
223# CONFIG_CPU_DCACHE_DISABLE is not set
224# CONFIG_CPU_BPREDICT_DISABLE is not set
225# CONFIG_OUTER_CACHE is not set
226
227#
228# Bus support
229#
230# CONFIG_PCI_SYSCALL is not set
231# CONFIG_ARCH_SUPPORTS_MSI is not set
232
233#
234# PCCARD (PCMCIA/CardBus) support
235#
236# CONFIG_PCCARD is not set
237
238#
239# Kernel Features
240#
241# CONFIG_TICK_ONESHOT is not set
242# CONFIG_NO_HZ is not set
243# CONFIG_HIGH_RES_TIMERS is not set
244# CONFIG_PREEMPT is not set
245CONFIG_HZ=100
246CONFIG_AEABI=y
247CONFIG_OABI_COMPAT=y
248# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
249CONFIG_SELECT_MEMORY_MODEL=y
250CONFIG_FLATMEM_MANUAL=y
251# CONFIG_DISCONTIGMEM_MANUAL is not set
252# CONFIG_SPARSEMEM_MANUAL is not set
253CONFIG_FLATMEM=y
254CONFIG_FLAT_NODE_MEM_MAP=y
255# CONFIG_SPARSEMEM_STATIC is not set
256CONFIG_SPLIT_PTLOCK_CPUS=4
257# CONFIG_RESOURCES_64BIT is not set
258CONFIG_ZONE_DMA_FLAG=1
259CONFIG_BOUNCE=y
260CONFIG_VIRT_TO_BUS=y
261# CONFIG_LEDS is not set
262CONFIG_ALIGNMENT_TRAP=y
263
264#
265# Boot options
266#
267CONFIG_ZBOOT_ROM_TEXT=0x0
268CONFIG_ZBOOT_ROM_BSS=0x0
269CONFIG_CMDLINE="root=/dev/ram0 rw console=ttyS0,115200n8 initrd=0x80600000,8M ramdisk_size=8192"
270# CONFIG_XIP_KERNEL is not set
271# CONFIG_KEXEC is not set
272
273#
274# CPU Frequency scaling
275#
276# CONFIG_CPU_FREQ is not set
277
278#
279# Floating point emulation
280#
281
282#
283# At least one emulation must be selected
284#
285CONFIG_FPE_NWFPE=y
286# CONFIG_FPE_NWFPE_XP is not set
287# CONFIG_FPE_FASTFPE is not set
288# CONFIG_VFP is not set
289
290#
291# Userspace binary formats
292#
293CONFIG_BINFMT_ELF=y
294# CONFIG_BINFMT_AOUT is not set
295CONFIG_BINFMT_MISC=y
296
297#
298# Power management options
299#
300# CONFIG_PM is not set
301CONFIG_SUSPEND_UP_POSSIBLE=y
302
303#
304# Networking
305#
306CONFIG_NET=y
307
308#
309# Networking options
310#
311CONFIG_PACKET=y
312# CONFIG_PACKET_MMAP is not set
313CONFIG_UNIX=y
314CONFIG_XFRM=y
315# CONFIG_XFRM_USER is not set
316# CONFIG_XFRM_SUB_POLICY is not set
317# CONFIG_XFRM_MIGRATE is not set
318CONFIG_NET_KEY=y
319# CONFIG_NET_KEY_MIGRATE is not set
320CONFIG_INET=y
321# CONFIG_IP_MULTICAST is not set
322# CONFIG_IP_ADVANCED_ROUTER is not set
323CONFIG_IP_FIB_HASH=y
324CONFIG_IP_PNP=y
325CONFIG_IP_PNP_DHCP=y
326# CONFIG_IP_PNP_BOOTP is not set
327# CONFIG_IP_PNP_RARP is not set
328# CONFIG_NET_IPIP is not set
329# CONFIG_NET_IPGRE is not set
330# CONFIG_ARPD is not set
331# CONFIG_SYN_COOKIES is not set
332# CONFIG_INET_AH is not set
333# CONFIG_INET_ESP is not set
334# CONFIG_INET_IPCOMP is not set
335# CONFIG_INET_XFRM_TUNNEL is not set
336# CONFIG_INET_TUNNEL is not set
337CONFIG_INET_XFRM_MODE_TRANSPORT=y
338CONFIG_INET_XFRM_MODE_TUNNEL=y
339CONFIG_INET_XFRM_MODE_BEET=y
340CONFIG_INET_DIAG=y
341CONFIG_INET_TCP_DIAG=y
342# CONFIG_TCP_CONG_ADVANCED is not set
343CONFIG_TCP_CONG_CUBIC=y
344CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_TCP_MD5SIG is not set
346# CONFIG_IPV6 is not set
347# CONFIG_INET6_XFRM_TUNNEL is not set
348# CONFIG_INET6_TUNNEL is not set
349# CONFIG_NETWORK_SECMARK is not set
350# CONFIG_NETFILTER is not set
351# CONFIG_IP_DCCP is not set
352# CONFIG_IP_SCTP is not set
353# CONFIG_TIPC is not set
354# CONFIG_ATM is not set
355# CONFIG_BRIDGE is not set
356# CONFIG_VLAN_8021Q is not set
357# CONFIG_DECNET is not set
358# CONFIG_LLC2 is not set
359# CONFIG_IPX is not set
360# CONFIG_ATALK is not set
361# CONFIG_X25 is not set
362# CONFIG_LAPB is not set
363# CONFIG_ECONET is not set
364# CONFIG_WAN_ROUTER is not set
365
366#
367# QoS and/or fair queueing
368#
369# CONFIG_NET_SCHED is not set
370
371#
372# Network testing
373#
374# CONFIG_NET_PKTGEN is not set
375# CONFIG_HAMRADIO is not set
376CONFIG_IRDA=y
377
378#
379# IrDA protocols
380#
381CONFIG_IRLAN=y
382CONFIG_IRCOMM=y
383# CONFIG_IRDA_ULTRA is not set
384
385#
386# IrDA options
387#
388# CONFIG_IRDA_CACHE_LAST_LSAP is not set
389# CONFIG_IRDA_FAST_RR is not set
390# CONFIG_IRDA_DEBUG is not set
391
392#
393# Infrared-port device drivers
394#
395
396#
397# SIR device drivers
398#
399# CONFIG_IRTTY_SIR is not set
400
401#
402# Dongle support
403#
404
405#
406# Old SIR device drivers
407#
408# CONFIG_IRPORT_SIR is not set
409
410#
411# Old Serial dongle support
412#
413
414#
415# FIR device drivers
416#
417CONFIG_OMAP_IR=y
418# CONFIG_BT is not set
419# CONFIG_AF_RXRPC is not set
420
421#
422# Wireless
423#
424# CONFIG_CFG80211 is not set
425# CONFIG_WIRELESS_EXT is not set
426# CONFIG_MAC80211 is not set
427# CONFIG_IEEE80211 is not set
428# CONFIG_RFKILL is not set
429# CONFIG_NET_9P is not set
430
431#
432# Device Drivers
433#
434
435#
436# Generic Driver Options
437#
438CONFIG_STANDALONE=y
439CONFIG_PREVENT_FIRMWARE_BUILD=y
440# CONFIG_FW_LOADER is not set
441# CONFIG_DEBUG_DRIVER is not set
442# CONFIG_DEBUG_DEVRES is not set
443# CONFIG_SYS_HYPERVISOR is not set
444# CONFIG_CONNECTOR is not set
445CONFIG_MTD=y
446# CONFIG_MTD_DEBUG is not set
447CONFIG_MTD_CONCAT=y
448CONFIG_MTD_PARTITIONS=y
449# CONFIG_MTD_REDBOOT_PARTS is not set
450CONFIG_MTD_CMDLINE_PARTS=y
451# CONFIG_MTD_AFS_PARTS is not set
452
453#
454# User Modules And Translation Layers
455#
456CONFIG_MTD_CHAR=y
457CONFIG_MTD_BLKDEVS=y
458CONFIG_MTD_BLOCK=y
459# CONFIG_FTL is not set
460# CONFIG_NFTL is not set
461# CONFIG_INFTL is not set
462# CONFIG_RFD_FTL is not set
463# CONFIG_SSFDC is not set
464
465#
466# RAM/ROM/Flash chip drivers
467#
468CONFIG_MTD_CFI=y
469# CONFIG_MTD_JEDECPROBE is not set
470CONFIG_MTD_GEN_PROBE=y
471# CONFIG_MTD_CFI_ADV_OPTIONS is not set
472CONFIG_MTD_MAP_BANK_WIDTH_1=y
473CONFIG_MTD_MAP_BANK_WIDTH_2=y
474CONFIG_MTD_MAP_BANK_WIDTH_4=y
475# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
476# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
477# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
478CONFIG_MTD_CFI_I1=y
479CONFIG_MTD_CFI_I2=y
480# CONFIG_MTD_CFI_I4 is not set
481# CONFIG_MTD_CFI_I8 is not set
482CONFIG_MTD_CFI_INTELEXT=y
483# CONFIG_MTD_CFI_AMDSTD is not set
484# CONFIG_MTD_CFI_STAA is not set
485CONFIG_MTD_CFI_UTIL=y
486# CONFIG_MTD_RAM is not set
487# CONFIG_MTD_ROM is not set
488# CONFIG_MTD_ABSENT is not set
489
490#
491# Mapping drivers for chip access
492#
493# CONFIG_MTD_COMPLEX_MAPPINGS is not set
494# CONFIG_MTD_PHYSMAP is not set
495# CONFIG_MTD_ARM_INTEGRATOR is not set
496CONFIG_MTD_OMAP_NOR=y
497# CONFIG_MTD_PLATRAM is not set
498
499#
500# Self-contained MTD device drivers
501#
502# CONFIG_MTD_SLRAM is not set
503# CONFIG_MTD_PHRAM is not set
504# CONFIG_MTD_MTDRAM is not set
505# CONFIG_MTD_BLOCK2MTD is not set
506
507#
508# Disk-On-Chip Device Drivers
509#
510# CONFIG_MTD_DOC2000 is not set
511# CONFIG_MTD_DOC2001 is not set
512# CONFIG_MTD_DOC2001PLUS is not set
513# CONFIG_MTD_NAND is not set
514# CONFIG_MTD_ONENAND is not set
515
516#
517# UBI - Unsorted block images
518#
519# CONFIG_MTD_UBI is not set
520# CONFIG_PARPORT is not set
521CONFIG_BLK_DEV=y
522# CONFIG_BLK_DEV_COW_COMMON is not set
523CONFIG_BLK_DEV_LOOP=y
524# CONFIG_BLK_DEV_CRYPTOLOOP is not set
525# CONFIG_BLK_DEV_NBD is not set
526CONFIG_BLK_DEV_RAM=y
527CONFIG_BLK_DEV_RAM_COUNT=16
528CONFIG_BLK_DEV_RAM_SIZE=16384
529CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
530# CONFIG_CDROM_PKTCDVD is not set
531# CONFIG_ATA_OVER_ETH is not set
532
533#
534# SCSI device support
535#
536# CONFIG_RAID_ATTRS is not set
537# CONFIG_SCSI is not set
538# CONFIG_SCSI_DMA is not set
539# CONFIG_SCSI_NETLINK is not set
540# CONFIG_ATA is not set
541# CONFIG_MD is not set
542CONFIG_NETDEVICES=y
543# CONFIG_NETDEVICES_MULTIQUEUE is not set
544# CONFIG_DUMMY is not set
545# CONFIG_BONDING is not set
546# CONFIG_MACVLAN is not set
547# CONFIG_EQUALIZER is not set
548# CONFIG_TUN is not set
549# CONFIG_PHYLIB is not set
550CONFIG_NET_ETHERNET=y
551CONFIG_MII=y
552# CONFIG_AX88796 is not set
553CONFIG_SMC91X=y
554# CONFIG_DM9000 is not set
555CONFIG_NETDEV_1000=y
556CONFIG_NETDEV_10000=y
557
558#
559# Wireless LAN
560#
561# CONFIG_WLAN_PRE80211 is not set
562# CONFIG_WLAN_80211 is not set
563# CONFIG_WAN is not set
564# CONFIG_PPP is not set
565# CONFIG_SLIP is not set
566# CONFIG_SHAPER is not set
567# CONFIG_NETCONSOLE is not set
568# CONFIG_NETPOLL is not set
569# CONFIG_NET_POLL_CONTROLLER is not set
570# CONFIG_ISDN is not set
571
572#
573# Input device support
574#
575CONFIG_INPUT=y
576# CONFIG_INPUT_FF_MEMLESS is not set
577# CONFIG_INPUT_POLLDEV is not set
578
579#
580# Userland interfaces
581#
582# CONFIG_INPUT_MOUSEDEV is not set
583# CONFIG_INPUT_JOYDEV is not set
584# CONFIG_INPUT_TSDEV is not set
585CONFIG_INPUT_EVDEV=y
586# CONFIG_INPUT_EVBUG is not set
587
588#
589# Input Device Drivers
590#
591CONFIG_INPUT_KEYBOARD=y
592# CONFIG_KEYBOARD_ATKBD is not set
593# CONFIG_KEYBOARD_SUNKBD is not set
594# CONFIG_KEYBOARD_LKKBD is not set
595# CONFIG_KEYBOARD_XTKBD is not set
596# CONFIG_KEYBOARD_NEWTON is not set
597# CONFIG_KEYBOARD_STOWAWAY is not set
598CONFIG_KEYBOARD_OMAP=y
599# CONFIG_KEYBOARD_GPIO is not set
600# CONFIG_INPUT_MOUSE is not set
601# CONFIG_INPUT_JOYSTICK is not set
602# CONFIG_INPUT_TABLET is not set
603# CONFIG_INPUT_TOUCHSCREEN is not set
604# CONFIG_INPUT_MISC is not set
605
606#
607# Hardware I/O ports
608#
609# CONFIG_SERIO is not set
610# CONFIG_GAMEPORT is not set
611
612#
613# Character devices
614#
615CONFIG_VT=y
616CONFIG_VT_CONSOLE=y
617CONFIG_HW_CONSOLE=y
618# CONFIG_VT_HW_CONSOLE_BINDING is not set
619# CONFIG_SERIAL_NONSTANDARD is not set
620
621#
622# Serial drivers
623#
624CONFIG_SERIAL_8250=y
625CONFIG_SERIAL_8250_CONSOLE=y
626CONFIG_SERIAL_8250_NR_UARTS=32
627CONFIG_SERIAL_8250_RUNTIME_UARTS=4
628CONFIG_SERIAL_8250_EXTENDED=y
629CONFIG_SERIAL_8250_MANY_PORTS=y
630CONFIG_SERIAL_8250_SHARE_IRQ=y
631CONFIG_SERIAL_8250_DETECT_IRQ=y
632CONFIG_SERIAL_8250_RSA=y
633
634#
635# Non-8250 serial port support
636#
637CONFIG_SERIAL_CORE=y
638CONFIG_SERIAL_CORE_CONSOLE=y
639CONFIG_UNIX98_PTYS=y
640# CONFIG_LEGACY_PTYS is not set
641# CONFIG_IPMI_HANDLER is not set
642CONFIG_WATCHDOG=y
643CONFIG_WATCHDOG_NOWAYOUT=y
644
645#
646# Watchdog Device Drivers
647#
648# CONFIG_SOFT_WATCHDOG is not set
649CONFIG_OMAP_WATCHDOG=y
650CONFIG_HW_RANDOM=m
651CONFIG_HW_RANDOM_OMAP=m
652# CONFIG_NVRAM is not set
653# CONFIG_R3964 is not set
654# CONFIG_RAW_DRIVER is not set
655# CONFIG_TCG_TPM is not set
656CONFIG_I2C=y
657CONFIG_I2C_BOARDINFO=y
658# CONFIG_I2C_CHARDEV is not set
659
660#
661# I2C Algorithms
662#
663# CONFIG_I2C_ALGOBIT is not set
664# CONFIG_I2C_ALGOPCF is not set
665# CONFIG_I2C_ALGOPCA is not set
666
667#
668# I2C Hardware Bus support
669#
670# CONFIG_I2C_GPIO is not set
671# CONFIG_I2C_OCORES is not set
672CONFIG_I2C_OMAP=y
673# CONFIG_I2C_PARPORT_LIGHT is not set
674# CONFIG_I2C_SIMTEC is not set
675# CONFIG_I2C_TAOS_EVM is not set
676# CONFIG_I2C_STUB is not set
677
678#
679# Miscellaneous I2C Chip support
680#
681# CONFIG_SENSORS_DS1337 is not set
682# CONFIG_SENSORS_DS1374 is not set
683# CONFIG_DS1682 is not set
684# CONFIG_SENSORS_EEPROM is not set
685# CONFIG_SENSORS_PCF8574 is not set
686# CONFIG_SENSORS_PCA9539 is not set
687# CONFIG_SENSORS_PCF8591 is not set
688# CONFIG_ISP1301_OMAP is not set
689# CONFIG_TPS65010 is not set
690# CONFIG_SENSORS_TLV320AIC23 is not set
691CONFIG_GPIOEXPANDER_OMAP=y
692# CONFIG_TWL4030_CORE is not set
693# CONFIG_SENSORS_MAX6875 is not set
694# CONFIG_SENSORS_TSL2550 is not set
695CONFIG_MENELAUS=y
696# CONFIG_I2C_DEBUG_CORE is not set
697# CONFIG_I2C_DEBUG_ALGO is not set
698# CONFIG_I2C_DEBUG_BUS is not set
699# CONFIG_I2C_DEBUG_CHIP is not set
700
701#
702# SPI support
703#
704# CONFIG_SPI is not set
705# CONFIG_SPI_MASTER is not set
706# CONFIG_W1 is not set
707# CONFIG_HWMON is not set
708CONFIG_MISC_DEVICES=y
709# CONFIG_EEPROM_93CX6 is not set
710
711#
712# Multifunction device drivers
713#
714# CONFIG_MFD_SM501 is not set
715# CONFIG_NEW_LEDS is not set
716
717#
718# Multimedia devices
719#
720# CONFIG_VIDEO_DEV is not set
721# CONFIG_DVB_CORE is not set
722CONFIG_DAB=y
723
724#
725# Graphics support
726#
727# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
728
729#
730# Display device support
731#
732# CONFIG_DISPLAY_SUPPORT is not set
733# CONFIG_VGASTATE is not set
734CONFIG_VIDEO_OUTPUT_CONTROL=m
735CONFIG_FB=y
736CONFIG_FIRMWARE_EDID=y
737# CONFIG_FB_DDC is not set
738# CONFIG_FB_CFB_FILLRECT is not set
739# CONFIG_FB_CFB_COPYAREA is not set
740# CONFIG_FB_CFB_IMAGEBLIT is not set
741# CONFIG_FB_SYS_FILLRECT is not set
742# CONFIG_FB_SYS_COPYAREA is not set
743# CONFIG_FB_SYS_IMAGEBLIT is not set
744# CONFIG_FB_SYS_FOPS is not set
745CONFIG_FB_DEFERRED_IO=y
746# CONFIG_FB_SVGALIB is not set
747# CONFIG_FB_MACMODES is not set
748# CONFIG_FB_BACKLIGHT is not set
749# CONFIG_FB_MODE_HELPERS is not set
750# CONFIG_FB_TILEBLITTING is not set
751
752#
753# Frame buffer hardware drivers
754#
755# CONFIG_FB_S1D13XXX is not set
756CONFIG_FB_OMAP=y
757# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
758# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
759CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
760# CONFIG_FB_VIRTUAL is not set
761
762#
763# Console display driver support
764#
765# CONFIG_VGA_CONSOLE is not set
766CONFIG_DUMMY_CONSOLE=y
767CONFIG_FRAMEBUFFER_CONSOLE=y
768# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
769# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
770# CONFIG_FONTS is not set
771CONFIG_FONT_8x8=y
772CONFIG_FONT_8x16=y
773CONFIG_LOGO=y
774# CONFIG_LOGO_LINUX_MONO is not set
775# CONFIG_LOGO_LINUX_VGA16 is not set
776CONFIG_LOGO_LINUX_CLUT224=y
777
778#
779# Sound
780#
781# CONFIG_SOUND is not set
782CONFIG_HID_SUPPORT=y
783CONFIG_HID=y
784# CONFIG_HID_DEBUG is not set
785CONFIG_USB_SUPPORT=y
786CONFIG_USB_ARCH_HAS_HCD=y
787CONFIG_USB_ARCH_HAS_OHCI=y
788# CONFIG_USB_ARCH_HAS_EHCI is not set
789# CONFIG_USB is not set
790
791#
792# Enable Host or Gadget support to see Inventra options
793#
794
795#
796# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
797#
798
799#
800# USB Gadget Support
801#
802# CONFIG_USB_GADGET is not set
803CONFIG_MMC=y
804# CONFIG_MMC_DEBUG is not set
805# CONFIG_MMC_UNSAFE_RESUME is not set
806
807#
808# MMC/SD Card Drivers
809#
810CONFIG_MMC_BLOCK=y
811CONFIG_MMC_BLOCK_BOUNCE=y
812
813#
814# MMC/SD Host Controller Drivers
815#
816CONFIG_MMC_OMAP=y
817CONFIG_RTC_LIB=y
818# CONFIG_RTC_CLASS is not set
819
820#
821# DMA Engine support
822#
823# CONFIG_DMA_ENGINE is not set
824
825#
826# DMA Clients
827#
828
829#
830# DMA Devices
831#
832
833#
834# CBUS support
835#
836# CONFIG_CBUS is not set
837
838#
839# File systems
840#
841CONFIG_EXT2_FS=y
842# CONFIG_EXT2_FS_XATTR is not set
843# CONFIG_EXT2_FS_XIP is not set
844CONFIG_EXT3_FS=y
845# CONFIG_EXT3_FS_XATTR is not set
846# CONFIG_EXT4DEV_FS is not set
847CONFIG_JBD=y
848# CONFIG_JBD_DEBUG is not set
849# CONFIG_REISERFS_FS is not set
850# CONFIG_JFS_FS is not set
851# CONFIG_FS_POSIX_ACL is not set
852# CONFIG_XFS_FS is not set
853# CONFIG_GFS2_FS is not set
854# CONFIG_OCFS2_FS is not set
855# CONFIG_MINIX_FS is not set
856# CONFIG_ROMFS_FS is not set
857CONFIG_INOTIFY=y
858CONFIG_INOTIFY_USER=y
859CONFIG_QUOTA=y
860# CONFIG_QFMT_V1 is not set
861CONFIG_QFMT_V2=y
862CONFIG_QUOTACTL=y
863CONFIG_DNOTIFY=y
864# CONFIG_AUTOFS_FS is not set
865# CONFIG_AUTOFS4_FS is not set
866# CONFIG_FUSE_FS is not set
867
868#
869# CD-ROM/DVD Filesystems
870#
871# CONFIG_ISO9660_FS is not set
872# CONFIG_UDF_FS is not set
873
874#
875# DOS/FAT/NT Filesystems
876#
877CONFIG_FAT_FS=y
878CONFIG_MSDOS_FS=y
879CONFIG_VFAT_FS=y
880CONFIG_FAT_DEFAULT_CODEPAGE=437
881CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
882# CONFIG_NTFS_FS is not set
883
884#
885# Pseudo filesystems
886#
887CONFIG_PROC_FS=y
888CONFIG_PROC_SYSCTL=y
889CONFIG_SYSFS=y
890CONFIG_TMPFS=y
891# CONFIG_TMPFS_POSIX_ACL is not set
892# CONFIG_HUGETLB_PAGE is not set
893CONFIG_RAMFS=y
894# CONFIG_CONFIGFS_FS is not set
895
896#
897# Miscellaneous filesystems
898#
899# CONFIG_ADFS_FS is not set
900# CONFIG_AFFS_FS is not set
901# CONFIG_HFS_FS is not set
902# CONFIG_HFSPLUS_FS is not set
903# CONFIG_BEFS_FS is not set
904# CONFIG_BFS_FS is not set
905# CONFIG_EFS_FS is not set
906CONFIG_JFFS2_FS=y
907CONFIG_JFFS2_FS_DEBUG=0
908CONFIG_JFFS2_FS_WRITEBUFFER=y
909# CONFIG_JFFS2_SUMMARY is not set
910# CONFIG_JFFS2_FS_XATTR is not set
911# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
912CONFIG_JFFS2_ZLIB=y
913CONFIG_JFFS2_RTIME=y
914# CONFIG_JFFS2_RUBIN is not set
915# CONFIG_CRAMFS is not set
916# CONFIG_VXFS_FS is not set
917# CONFIG_HPFS_FS is not set
918# CONFIG_QNX4FS_FS is not set
919# CONFIG_SYSV_FS is not set
920# CONFIG_UFS_FS is not set
921
922#
923# Network File Systems
924#
925CONFIG_NFS_FS=y
926CONFIG_NFS_V3=y
927# CONFIG_NFS_V3_ACL is not set
928CONFIG_NFS_V4=y
929# CONFIG_NFS_DIRECTIO is not set
930# CONFIG_NFSD is not set
931CONFIG_ROOT_NFS=y
932CONFIG_LOCKD=y
933CONFIG_LOCKD_V4=y
934CONFIG_NFS_COMMON=y
935CONFIG_SUNRPC=y
936CONFIG_SUNRPC_GSS=y
937# CONFIG_SUNRPC_BIND34 is not set
938CONFIG_RPCSEC_GSS_KRB5=y
939# CONFIG_RPCSEC_GSS_SPKM3 is not set
940# CONFIG_SMB_FS is not set
941# CONFIG_CIFS is not set
942# CONFIG_NCP_FS is not set
943# CONFIG_CODA_FS is not set
944# CONFIG_AFS_FS is not set
945
946#
947# Partition Types
948#
949CONFIG_PARTITION_ADVANCED=y
950# CONFIG_ACORN_PARTITION is not set
951# CONFIG_OSF_PARTITION is not set
952# CONFIG_AMIGA_PARTITION is not set
953# CONFIG_ATARI_PARTITION is not set
954# CONFIG_MAC_PARTITION is not set
955CONFIG_MSDOS_PARTITION=y
956# CONFIG_BSD_DISKLABEL is not set
957# CONFIG_MINIX_SUBPARTITION is not set
958# CONFIG_SOLARIS_X86_PARTITION is not set
959# CONFIG_UNIXWARE_DISKLABEL is not set
960# CONFIG_LDM_PARTITION is not set
961# CONFIG_SGI_PARTITION is not set
962# CONFIG_ULTRIX_PARTITION is not set
963# CONFIG_SUN_PARTITION is not set
964# CONFIG_KARMA_PARTITION is not set
965# CONFIG_EFI_PARTITION is not set
966# CONFIG_SYSV68_PARTITION is not set
967
968#
969# Native Language Support
970#
971CONFIG_NLS=y
972CONFIG_NLS_DEFAULT="iso8859-1"
973CONFIG_NLS_CODEPAGE_437=y
974# CONFIG_NLS_CODEPAGE_737 is not set
975# CONFIG_NLS_CODEPAGE_775 is not set
976# CONFIG_NLS_CODEPAGE_850 is not set
977# CONFIG_NLS_CODEPAGE_852 is not set
978# CONFIG_NLS_CODEPAGE_855 is not set
979# CONFIG_NLS_CODEPAGE_857 is not set
980# CONFIG_NLS_CODEPAGE_860 is not set
981# CONFIG_NLS_CODEPAGE_861 is not set
982# CONFIG_NLS_CODEPAGE_862 is not set
983# CONFIG_NLS_CODEPAGE_863 is not set
984# CONFIG_NLS_CODEPAGE_864 is not set
985# CONFIG_NLS_CODEPAGE_865 is not set
986# CONFIG_NLS_CODEPAGE_866 is not set
987# CONFIG_NLS_CODEPAGE_869 is not set
988# CONFIG_NLS_CODEPAGE_936 is not set
989# CONFIG_NLS_CODEPAGE_950 is not set
990# CONFIG_NLS_CODEPAGE_932 is not set
991# CONFIG_NLS_CODEPAGE_949 is not set
992# CONFIG_NLS_CODEPAGE_874 is not set
993# CONFIG_NLS_ISO8859_8 is not set
994# CONFIG_NLS_CODEPAGE_1250 is not set
995# CONFIG_NLS_CODEPAGE_1251 is not set
996# CONFIG_NLS_ASCII is not set
997# CONFIG_NLS_ISO8859_1 is not set
998# CONFIG_NLS_ISO8859_2 is not set
999# CONFIG_NLS_ISO8859_3 is not set
1000# CONFIG_NLS_ISO8859_4 is not set
1001# CONFIG_NLS_ISO8859_5 is not set
1002# CONFIG_NLS_ISO8859_6 is not set
1003# CONFIG_NLS_ISO8859_7 is not set
1004# CONFIG_NLS_ISO8859_9 is not set
1005# CONFIG_NLS_ISO8859_13 is not set
1006# CONFIG_NLS_ISO8859_14 is not set
1007# CONFIG_NLS_ISO8859_15 is not set
1008# CONFIG_NLS_KOI8_R is not set
1009# CONFIG_NLS_KOI8_U is not set
1010# CONFIG_NLS_UTF8 is not set
1011
1012#
1013# Distributed Lock Manager
1014#
1015# CONFIG_DLM is not set
1016
1017#
1018# Profiling support
1019#
1020# CONFIG_PROFILING is not set
1021
1022#
1023# Kernel hacking
1024#
1025# CONFIG_PRINTK_TIME is not set
1026CONFIG_ENABLE_MUST_CHECK=y
1027CONFIG_MAGIC_SYSRQ=y
1028# CONFIG_UNUSED_SYMBOLS is not set
1029# CONFIG_DEBUG_FS is not set
1030# CONFIG_HEADERS_CHECK is not set
1031CONFIG_DEBUG_KERNEL=y
1032# CONFIG_DEBUG_SHIRQ is not set
1033CONFIG_DETECT_SOFTLOCKUP=y
1034CONFIG_SCHED_DEBUG=y
1035# CONFIG_SCHEDSTATS is not set
1036# CONFIG_TIMER_STATS is not set
1037# CONFIG_DEBUG_SLAB is not set
1038# CONFIG_DEBUG_RT_MUTEXES is not set
1039# CONFIG_RT_MUTEX_TESTER is not set
1040# CONFIG_DEBUG_SPINLOCK is not set
1041CONFIG_DEBUG_MUTEXES=y
1042# CONFIG_DEBUG_LOCK_ALLOC is not set
1043# CONFIG_PROVE_LOCKING is not set
1044# CONFIG_LOCK_STAT is not set
1045# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1046# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1047# CONFIG_DEBUG_KOBJECT is not set
1048# CONFIG_DEBUG_BUGVERBOSE is not set
1049# CONFIG_DEBUG_INFO is not set
1050# CONFIG_DEBUG_VM is not set
1051# CONFIG_DEBUG_LIST is not set
1052CONFIG_FRAME_POINTER=y
1053CONFIG_FORCED_INLINING=y
1054# CONFIG_RCU_TORTURE_TEST is not set
1055# CONFIG_FAULT_INJECTION is not set
1056# CONFIG_DEBUG_USER is not set
1057# CONFIG_DEBUG_ERRORS is not set
1058CONFIG_DEBUG_LL=y
1059# CONFIG_DEBUG_ICEDCC is not set
1060
1061#
1062# Security options
1063#
1064# CONFIG_KEYS is not set
1065# CONFIG_SECURITY is not set
1066CONFIG_CRYPTO=y
1067CONFIG_CRYPTO_ALGAPI=y
1068CONFIG_CRYPTO_BLKCIPHER=y
1069CONFIG_CRYPTO_MANAGER=y
1070# CONFIG_CRYPTO_HMAC is not set
1071# CONFIG_CRYPTO_XCBC is not set
1072# CONFIG_CRYPTO_NULL is not set
1073# CONFIG_CRYPTO_MD4 is not set
1074CONFIG_CRYPTO_MD5=y
1075# CONFIG_CRYPTO_SHA1 is not set
1076# CONFIG_CRYPTO_SHA256 is not set
1077# CONFIG_CRYPTO_SHA512 is not set
1078# CONFIG_CRYPTO_WP512 is not set
1079# CONFIG_CRYPTO_TGR192 is not set
1080# CONFIG_CRYPTO_GF128MUL is not set
1081CONFIG_CRYPTO_ECB=m
1082CONFIG_CRYPTO_CBC=y
1083CONFIG_CRYPTO_PCBC=m
1084# CONFIG_CRYPTO_LRW is not set
1085# CONFIG_CRYPTO_CRYPTD is not set
1086CONFIG_CRYPTO_DES=y
1087# CONFIG_CRYPTO_FCRYPT is not set
1088# CONFIG_CRYPTO_BLOWFISH is not set
1089# CONFIG_CRYPTO_TWOFISH is not set
1090# CONFIG_CRYPTO_SERPENT is not set
1091# CONFIG_CRYPTO_AES is not set
1092# CONFIG_CRYPTO_CAST5 is not set
1093# CONFIG_CRYPTO_CAST6 is not set
1094# CONFIG_CRYPTO_TEA is not set
1095# CONFIG_CRYPTO_ARC4 is not set
1096# CONFIG_CRYPTO_KHAZAD is not set
1097# CONFIG_CRYPTO_ANUBIS is not set
1098# CONFIG_CRYPTO_DEFLATE is not set
1099# CONFIG_CRYPTO_MICHAEL_MIC is not set
1100# CONFIG_CRYPTO_CRC32C is not set
1101# CONFIG_CRYPTO_CAMELLIA is not set
1102# CONFIG_CRYPTO_TEST is not set
1103CONFIG_CRYPTO_HW=y
1104
1105#
1106# Library routines
1107#
1108CONFIG_BITREVERSE=y
1109CONFIG_CRC_CCITT=y
1110# CONFIG_CRC16 is not set
1111# CONFIG_CRC_ITU_T is not set
1112CONFIG_CRC32=y
1113# CONFIG_CRC7 is not set
1114CONFIG_LIBCRC32C=y
1115CONFIG_ZLIB_INFLATE=y
1116CONFIG_ZLIB_DEFLATE=y
1117CONFIG_PLIST=y
1118CONFIG_HAS_IOMEM=y
1119CONFIG_HAS_IOPORT=y
1120CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_innovator_1510_defconfig b/arch/arm/configs/omap_innovator_1510_defconfig
new file mode 100644
index 00000000000..55b2611bd90
--- /dev/null
+++ b/arch/arm/configs/omap_innovator_1510_defconfig
@@ -0,0 +1,1253 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 11:45:02 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36CONFIG_LOCALVERSION_AUTO=y
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47CONFIG_SYSFS_DEPRECATED=y
48# CONFIG_RELAY is not set
49CONFIG_BLK_DEV_INITRD=y
50CONFIG_INITRAMFS_SOURCE=""
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53# CONFIG_EMBEDDED is not set
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_ALL is not set
58# CONFIG_KALLSYMS_EXTRA_PASS is not set
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y
79CONFIG_MODULE_UNLOAD=y
80# CONFIG_MODULE_FORCE_UNLOAD is not set
81# CONFIG_MODVERSIONS is not set
82# CONFIG_MODULE_SRCVERSION_ALL is not set
83CONFIG_KMOD=y
84CONFIG_BLOCK=y
85# CONFIG_LBD is not set
86# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set
88# CONFIG_BLK_DEV_BSG is not set
89
90#
91# IO Schedulers
92#
93CONFIG_IOSCHED_NOOP=y
94CONFIG_IOSCHED_AS=y
95CONFIG_IOSCHED_DEADLINE=y
96CONFIG_IOSCHED_CFQ=y
97# CONFIG_DEFAULT_AS is not set
98# CONFIG_DEFAULT_DEADLINE is not set
99CONFIG_DEFAULT_CFQ=y
100# CONFIG_DEFAULT_NOOP is not set
101CONFIG_DEFAULT_IOSCHED="cfq"
102
103#
104# System Type
105#
106# CONFIG_ARCH_AAEC2000 is not set
107# CONFIG_ARCH_INTEGRATOR is not set
108# CONFIG_ARCH_REALVIEW is not set
109# CONFIG_ARCH_VERSATILE is not set
110# CONFIG_ARCH_AT91 is not set
111# CONFIG_ARCH_CLPS7500 is not set
112# CONFIG_ARCH_CLPS711X is not set
113# CONFIG_ARCH_CO285 is not set
114# CONFIG_ARCH_EBSA110 is not set
115# CONFIG_ARCH_EP93XX is not set
116# CONFIG_ARCH_FOOTBRIDGE is not set
117# CONFIG_ARCH_NETX is not set
118# CONFIG_ARCH_H720X is not set
119# CONFIG_ARCH_IMX is not set
120# CONFIG_ARCH_IOP13XX is not set
121# CONFIG_ARCH_IOP32X is not set
122# CONFIG_ARCH_IOP33X is not set
123# CONFIG_ARCH_IXP23XX is not set
124# CONFIG_ARCH_IXP2000 is not set
125# CONFIG_ARCH_IXP4XX is not set
126# CONFIG_ARCH_L7200 is not set
127# CONFIG_ARCH_KS8695 is not set
128# CONFIG_ARCH_NS9XXX is not set
129# CONFIG_ARCH_MXC is not set
130# CONFIG_ARCH_PNX4008 is not set
131# CONFIG_ARCH_PXA is not set
132# CONFIG_ARCH_RPC is not set
133# CONFIG_ARCH_SA1100 is not set
134# CONFIG_ARCH_S3C2410 is not set
135# CONFIG_ARCH_SHARK is not set
136# CONFIG_ARCH_LH7A40X is not set
137# CONFIG_ARCH_DAVINCI is not set
138CONFIG_ARCH_OMAP=y
139
140#
141# TI OMAP Implementations
142#
143CONFIG_ARCH_OMAP1=y
144# CONFIG_ARCH_OMAP2 is not set
145# CONFIG_ARCH_OMAP3 is not set
146
147#
148# OMAP Feature Selections
149#
150# CONFIG_OMAP_RESET_CLOCKS is not set
151# CONFIG_OMAP_BOOT_TAG is not set
152# CONFIG_OMAP_GPIO_SWITCH is not set
153CONFIG_OMAP_MUX=y
154# CONFIG_OMAP_MUX_DEBUG is not set
155CONFIG_OMAP_MUX_WARNINGS=y
156CONFIG_OMAP_MCBSP=y
157# CONFIG_OMAP_MMU_FWK is not set
158# CONFIG_OMAP_MBOX_FWK is not set
159CONFIG_OMAP_MPU_TIMER=y
160# CONFIG_OMAP_32K_TIMER is not set
161CONFIG_OMAP_LL_DEBUG_UART1=y
162# CONFIG_OMAP_LL_DEBUG_UART2 is not set
163# CONFIG_OMAP_LL_DEBUG_UART3 is not set
164CONFIG_OMAP_SERIAL_WAKE=y
165# CONFIG_OMAP_DSP is not set
166
167#
168# OMAP Core Type
169#
170# CONFIG_ARCH_OMAP730 is not set
171CONFIG_ARCH_OMAP15XX=y
172# CONFIG_ARCH_OMAP16XX is not set
173
174#
175# OMAP Board Type
176#
177CONFIG_MACH_OMAP_INNOVATOR=y
178# CONFIG_MACH_VOICEBLUE is not set
179# CONFIG_MACH_OMAP_PALMTE is not set
180# CONFIG_MACH_OMAP_PALMZ71 is not set
181# CONFIG_MACH_OMAP_PALMTT is not set
182# CONFIG_MACH_SX1 is not set
183# CONFIG_MACH_AMS_DELTA is not set
184# CONFIG_MACH_OMAP_GENERIC is not set
185
186#
187# OMAP CPU Speed
188#
189# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
190CONFIG_OMAP_ARM_168MHZ=y
191# CONFIG_OMAP_ARM_150MHZ is not set
192# CONFIG_OMAP_ARM_120MHZ is not set
193# CONFIG_OMAP_ARM_60MHZ is not set
194# CONFIG_OMAP_ARM_30MHZ is not set
195# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
196
197#
198# Boot options
199#
200
201#
202# Power management
203#
204
205#
206# Processor Type
207#
208CONFIG_CPU_32=y
209CONFIG_CPU_ARM925T=y
210CONFIG_CPU_32v4T=y
211CONFIG_CPU_ABRT_EV4T=y
212CONFIG_CPU_PABRT_NOIFAR=y
213CONFIG_CPU_CACHE_V4WT=y
214CONFIG_CPU_CACHE_VIVT=y
215CONFIG_CPU_COPY_V4WB=y
216CONFIG_CPU_TLB_V4WBI=y
217CONFIG_CPU_CP15=y
218CONFIG_CPU_CP15_MMU=y
219
220#
221# Processor Features
222#
223CONFIG_ARM_THUMB=y
224# CONFIG_CPU_ICACHE_DISABLE is not set
225# CONFIG_CPU_DCACHE_DISABLE is not set
226CONFIG_CPU_DCACHE_WRITETHROUGH=y
227# CONFIG_OUTER_CACHE is not set
228
229#
230# Bus support
231#
232# CONFIG_PCI_SYSCALL is not set
233# CONFIG_ARCH_SUPPORTS_MSI is not set
234
235#
236# PCCARD (PCMCIA/CardBus) support
237#
238# CONFIG_PCCARD is not set
239
240#
241# Kernel Features
242#
243# CONFIG_TICK_ONESHOT is not set
244# CONFIG_NO_HZ is not set
245# CONFIG_HIGH_RES_TIMERS is not set
246CONFIG_PREEMPT=y
247CONFIG_HZ=100
248# CONFIG_AEABI is not set
249# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
250CONFIG_SELECT_MEMORY_MODEL=y
251CONFIG_FLATMEM_MANUAL=y
252# CONFIG_DISCONTIGMEM_MANUAL is not set
253# CONFIG_SPARSEMEM_MANUAL is not set
254CONFIG_FLATMEM=y
255CONFIG_FLAT_NODE_MEM_MAP=y
256# CONFIG_SPARSEMEM_STATIC is not set
257CONFIG_SPLIT_PTLOCK_CPUS=4096
258# CONFIG_RESOURCES_64BIT is not set
259CONFIG_ZONE_DMA_FLAG=1
260CONFIG_BOUNCE=y
261CONFIG_VIRT_TO_BUS=y
262CONFIG_LEDS=y
263CONFIG_ALIGNMENT_TRAP=y
264
265#
266# Boot options
267#
268CONFIG_ZBOOT_ROM_TEXT=0x0
269CONFIG_ZBOOT_ROM_BSS=0x0
270CONFIG_CMDLINE="console=ttyS0,115200n8 root=/dev/nfs ip=bootp noinitrd"
271# CONFIG_XIP_KERNEL is not set
272# CONFIG_KEXEC is not set
273
274#
275# CPU Frequency scaling
276#
277# CONFIG_CPU_FREQ is not set
278
279#
280# Floating point emulation
281#
282
283#
284# At least one emulation must be selected
285#
286CONFIG_FPE_NWFPE=y
287# CONFIG_FPE_NWFPE_XP is not set
288# CONFIG_FPE_FASTFPE is not set
289
290#
291# Userspace binary formats
292#
293CONFIG_BINFMT_ELF=y
294# CONFIG_BINFMT_AOUT is not set
295# CONFIG_BINFMT_MISC is not set
296# CONFIG_ARTHUR is not set
297
298#
299# Power management options
300#
301CONFIG_PM=y
302# CONFIG_PM_LEGACY is not set
303# CONFIG_PM_DEBUG is not set
304CONFIG_PM_SLEEP=y
305CONFIG_SUSPEND_UP_POSSIBLE=y
306CONFIG_SUSPEND=y
307# CONFIG_APM_EMULATION is not set
308
309#
310# Networking
311#
312CONFIG_NET=y
313
314#
315# Networking options
316#
317CONFIG_PACKET=y
318# CONFIG_PACKET_MMAP is not set
319CONFIG_UNIX=y
320CONFIG_XFRM=y
321# CONFIG_XFRM_USER is not set
322# CONFIG_XFRM_SUB_POLICY is not set
323# CONFIG_XFRM_MIGRATE is not set
324# CONFIG_NET_KEY is not set
325CONFIG_INET=y
326CONFIG_IP_MULTICAST=y
327# CONFIG_IP_ADVANCED_ROUTER is not set
328CONFIG_IP_FIB_HASH=y
329CONFIG_IP_PNP=y
330CONFIG_IP_PNP_DHCP=y
331CONFIG_IP_PNP_BOOTP=y
332# CONFIG_IP_PNP_RARP is not set
333# CONFIG_NET_IPIP is not set
334# CONFIG_NET_IPGRE is not set
335# CONFIG_IP_MROUTE is not set
336# CONFIG_ARPD is not set
337# CONFIG_SYN_COOKIES is not set
338# CONFIG_INET_AH is not set
339# CONFIG_INET_ESP is not set
340# CONFIG_INET_IPCOMP is not set
341# CONFIG_INET_XFRM_TUNNEL is not set
342# CONFIG_INET_TUNNEL is not set
343CONFIG_INET_XFRM_MODE_TRANSPORT=y
344CONFIG_INET_XFRM_MODE_TUNNEL=y
345CONFIG_INET_XFRM_MODE_BEET=y
346CONFIG_INET_DIAG=y
347CONFIG_INET_TCP_DIAG=y
348# CONFIG_TCP_CONG_ADVANCED is not set
349CONFIG_TCP_CONG_CUBIC=y
350CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_TCP_MD5SIG is not set
352# CONFIG_IPV6 is not set
353# CONFIG_INET6_XFRM_TUNNEL is not set
354# CONFIG_INET6_TUNNEL is not set
355# CONFIG_NETWORK_SECMARK is not set
356# CONFIG_NETFILTER is not set
357# CONFIG_IP_DCCP is not set
358# CONFIG_IP_SCTP is not set
359# CONFIG_TIPC is not set
360# CONFIG_ATM is not set
361# CONFIG_BRIDGE is not set
362# CONFIG_VLAN_8021Q is not set
363# CONFIG_DECNET is not set
364# CONFIG_LLC2 is not set
365# CONFIG_IPX is not set
366# CONFIG_ATALK is not set
367# CONFIG_X25 is not set
368# CONFIG_LAPB is not set
369# CONFIG_ECONET is not set
370# CONFIG_WAN_ROUTER is not set
371
372#
373# QoS and/or fair queueing
374#
375# CONFIG_NET_SCHED is not set
376
377#
378# Network testing
379#
380# CONFIG_NET_PKTGEN is not set
381# CONFIG_HAMRADIO is not set
382# CONFIG_IRDA is not set
383# CONFIG_BT is not set
384# CONFIG_AF_RXRPC is not set
385
386#
387# Wireless
388#
389# CONFIG_CFG80211 is not set
390# CONFIG_WIRELESS_EXT is not set
391# CONFIG_MAC80211 is not set
392# CONFIG_IEEE80211 is not set
393# CONFIG_RFKILL is not set
394# CONFIG_NET_9P is not set
395
396#
397# Device Drivers
398#
399
400#
401# Generic Driver Options
402#
403CONFIG_STANDALONE=y
404CONFIG_PREVENT_FIRMWARE_BUILD=y
405# CONFIG_FW_LOADER is not set
406# CONFIG_DEBUG_DRIVER is not set
407# CONFIG_DEBUG_DEVRES is not set
408# CONFIG_SYS_HYPERVISOR is not set
409# CONFIG_CONNECTOR is not set
410# CONFIG_MTD is not set
411# CONFIG_PARPORT is not set
412CONFIG_BLK_DEV=y
413# CONFIG_BLK_DEV_COW_COMMON is not set
414CONFIG_BLK_DEV_LOOP=y
415# CONFIG_BLK_DEV_CRYPTOLOOP is not set
416# CONFIG_BLK_DEV_NBD is not set
417# CONFIG_BLK_DEV_UB is not set
418CONFIG_BLK_DEV_RAM=y
419CONFIG_BLK_DEV_RAM_COUNT=16
420CONFIG_BLK_DEV_RAM_SIZE=8192
421CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
422# CONFIG_CDROM_PKTCDVD is not set
423# CONFIG_ATA_OVER_ETH is not set
424
425#
426# SCSI device support
427#
428# CONFIG_RAID_ATTRS is not set
429CONFIG_SCSI=y
430CONFIG_SCSI_DMA=y
431# CONFIG_SCSI_TGT is not set
432# CONFIG_SCSI_NETLINK is not set
433CONFIG_SCSI_PROC_FS=y
434
435#
436# SCSI support type (disk, tape, CD-ROM)
437#
438CONFIG_BLK_DEV_SD=y
439CONFIG_CHR_DEV_ST=y
440# CONFIG_CHR_DEV_OSST is not set
441CONFIG_BLK_DEV_SR=y
442# CONFIG_BLK_DEV_SR_VENDOR is not set
443CONFIG_CHR_DEV_SG=y
444# CONFIG_CHR_DEV_SCH is not set
445
446#
447# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
448#
449CONFIG_SCSI_MULTI_LUN=y
450# CONFIG_SCSI_CONSTANTS is not set
451# CONFIG_SCSI_LOGGING is not set
452# CONFIG_SCSI_SCAN_ASYNC is not set
453CONFIG_SCSI_WAIT_SCAN=m
454
455#
456# SCSI Transports
457#
458# CONFIG_SCSI_SPI_ATTRS is not set
459# CONFIG_SCSI_FC_ATTRS is not set
460# CONFIG_SCSI_ISCSI_ATTRS is not set
461# CONFIG_SCSI_SAS_LIBSAS is not set
462CONFIG_SCSI_LOWLEVEL=y
463# CONFIG_ISCSI_TCP is not set
464# CONFIG_SCSI_DEBUG is not set
465# CONFIG_ATA is not set
466# CONFIG_MD is not set
467CONFIG_NETDEVICES=y
468# CONFIG_NETDEVICES_MULTIQUEUE is not set
469# CONFIG_DUMMY is not set
470# CONFIG_BONDING is not set
471# CONFIG_MACVLAN is not set
472# CONFIG_EQUALIZER is not set
473# CONFIG_TUN is not set
474# CONFIG_PHYLIB is not set
475CONFIG_NET_ETHERNET=y
476CONFIG_MII=y
477# CONFIG_AX88796 is not set
478CONFIG_SMC91X=y
479# CONFIG_DM9000 is not set
480CONFIG_NETDEV_1000=y
481CONFIG_NETDEV_10000=y
482
483#
484# Wireless LAN
485#
486# CONFIG_WLAN_PRE80211 is not set
487# CONFIG_WLAN_80211 is not set
488
489#
490# USB Network Adapters
491#
492# CONFIG_USB_CATC is not set
493# CONFIG_USB_KAWETH is not set
494# CONFIG_USB_PEGASUS is not set
495CONFIG_USB_RTL8150=y
496CONFIG_USB_USBNET_MII=y
497CONFIG_USB_USBNET=y
498CONFIG_USB_NET_AX8817X=y
499CONFIG_USB_NET_CDCETHER=y
500# CONFIG_USB_NET_DM9601 is not set
501# CONFIG_USB_NET_GL620A is not set
502CONFIG_USB_NET_NET1080=y
503# CONFIG_USB_NET_PLUSB is not set
504# CONFIG_USB_NET_MCS7830 is not set
505# CONFIG_USB_NET_RNDIS_HOST is not set
506# CONFIG_USB_NET_CDC_SUBSET is not set
507CONFIG_USB_NET_ZAURUS=y
508# CONFIG_WAN is not set
509CONFIG_PPP=y
510CONFIG_PPP_MULTILINK=y
511# CONFIG_PPP_FILTER is not set
512CONFIG_PPP_ASYNC=y
513# CONFIG_PPP_SYNC_TTY is not set
514CONFIG_PPP_DEFLATE=y
515CONFIG_PPP_BSDCOMP=y
516# CONFIG_PPP_MPPE is not set
517# CONFIG_PPPOE is not set
518# CONFIG_PPPOL2TP is not set
519# CONFIG_SLIP is not set
520CONFIG_SLHC=y
521# CONFIG_SHAPER is not set
522# CONFIG_NETCONSOLE is not set
523# CONFIG_NETPOLL is not set
524# CONFIG_NET_POLL_CONTROLLER is not set
525# CONFIG_ISDN is not set
526
527#
528# Input device support
529#
530CONFIG_INPUT=y
531# CONFIG_INPUT_FF_MEMLESS is not set
532# CONFIG_INPUT_POLLDEV is not set
533
534#
535# Userland interfaces
536#
537CONFIG_INPUT_MOUSEDEV=y
538CONFIG_INPUT_MOUSEDEV_PSAUX=y
539CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
540CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
541# CONFIG_INPUT_JOYDEV is not set
542# CONFIG_INPUT_TSDEV is not set
543# CONFIG_INPUT_EVDEV is not set
544# CONFIG_INPUT_EVBUG is not set
545
546#
547# Input Device Drivers
548#
549CONFIG_INPUT_KEYBOARD=y
550# CONFIG_KEYBOARD_ATKBD is not set
551# CONFIG_KEYBOARD_SUNKBD is not set
552# CONFIG_KEYBOARD_LKKBD is not set
553# CONFIG_KEYBOARD_XTKBD is not set
554# CONFIG_KEYBOARD_NEWTON is not set
555# CONFIG_KEYBOARD_STOWAWAY is not set
556CONFIG_KEYBOARD_OMAP=y
557CONFIG_OMAP_PS2=m
558# CONFIG_KEYBOARD_GPIO is not set
559# CONFIG_INPUT_MOUSE is not set
560# CONFIG_INPUT_JOYSTICK is not set
561# CONFIG_INPUT_TABLET is not set
562# CONFIG_INPUT_TOUCHSCREEN is not set
563# CONFIG_INPUT_MISC is not set
564
565#
566# Hardware I/O ports
567#
568CONFIG_SERIO=y
569CONFIG_SERIO_SERPORT=y
570# CONFIG_SERIO_RAW is not set
571# CONFIG_GAMEPORT is not set
572
573#
574# Character devices
575#
576CONFIG_VT=y
577CONFIG_VT_CONSOLE=y
578CONFIG_HW_CONSOLE=y
579# CONFIG_VT_HW_CONSOLE_BINDING is not set
580# CONFIG_SERIAL_NONSTANDARD is not set
581
582#
583# Serial drivers
584#
585CONFIG_SERIAL_8250=y
586CONFIG_SERIAL_8250_CONSOLE=y
587CONFIG_SERIAL_8250_NR_UARTS=4
588CONFIG_SERIAL_8250_RUNTIME_UARTS=4
589# CONFIG_SERIAL_8250_EXTENDED is not set
590
591#
592# Non-8250 serial port support
593#
594CONFIG_SERIAL_CORE=y
595CONFIG_SERIAL_CORE_CONSOLE=y
596CONFIG_UNIX98_PTYS=y
597# CONFIG_LEGACY_PTYS is not set
598# CONFIG_IPMI_HANDLER is not set
599# CONFIG_WATCHDOG is not set
600CONFIG_HW_RANDOM=m
601# CONFIG_NVRAM is not set
602# CONFIG_R3964 is not set
603# CONFIG_RAW_DRIVER is not set
604# CONFIG_TCG_TPM is not set
605CONFIG_I2C=y
606CONFIG_I2C_BOARDINFO=y
607# CONFIG_I2C_CHARDEV is not set
608
609#
610# I2C Algorithms
611#
612# CONFIG_I2C_ALGOBIT is not set
613# CONFIG_I2C_ALGOPCF is not set
614# CONFIG_I2C_ALGOPCA is not set
615
616#
617# I2C Hardware Bus support
618#
619# CONFIG_I2C_GPIO is not set
620# CONFIG_I2C_OCORES is not set
621# CONFIG_I2C_OMAP is not set
622# CONFIG_I2C_PARPORT_LIGHT is not set
623# CONFIG_I2C_SIMTEC is not set
624# CONFIG_I2C_TAOS_EVM is not set
625# CONFIG_I2C_STUB is not set
626# CONFIG_I2C_TINY_USB is not set
627
628#
629# Miscellaneous I2C Chip support
630#
631# CONFIG_SENSORS_DS1337 is not set
632# CONFIG_SENSORS_DS1374 is not set
633# CONFIG_DS1682 is not set
634# CONFIG_SENSORS_EEPROM is not set
635# CONFIG_SENSORS_PCF8574 is not set
636# CONFIG_SENSORS_PCA9539 is not set
637# CONFIG_SENSORS_PCF8591 is not set
638# CONFIG_TPS65010 is not set
639# CONFIG_SENSORS_MAX6875 is not set
640# CONFIG_SENSORS_TSL2550 is not set
641# CONFIG_I2C_DEBUG_CORE is not set
642# CONFIG_I2C_DEBUG_ALGO is not set
643# CONFIG_I2C_DEBUG_BUS is not set
644# CONFIG_I2C_DEBUG_CHIP is not set
645
646#
647# SPI support
648#
649# CONFIG_SPI is not set
650# CONFIG_SPI_MASTER is not set
651# CONFIG_W1 is not set
652CONFIG_HWMON=y
653# CONFIG_HWMON_VID is not set
654# CONFIG_SENSORS_ABITUGURU is not set
655# CONFIG_SENSORS_ABITUGURU3 is not set
656# CONFIG_SENSORS_AD7418 is not set
657# CONFIG_SENSORS_ADM1021 is not set
658# CONFIG_SENSORS_ADM1025 is not set
659# CONFIG_SENSORS_ADM1026 is not set
660# CONFIG_SENSORS_ADM1029 is not set
661# CONFIG_SENSORS_ADM1031 is not set
662# CONFIG_SENSORS_ADM9240 is not set
663# CONFIG_SENSORS_ASB100 is not set
664# CONFIG_SENSORS_ATXP1 is not set
665# CONFIG_SENSORS_DS1621 is not set
666# CONFIG_SENSORS_F71805F is not set
667# CONFIG_SENSORS_FSCHER is not set
668# CONFIG_SENSORS_FSCPOS is not set
669# CONFIG_SENSORS_GL518SM is not set
670# CONFIG_SENSORS_GL520SM is not set
671# CONFIG_SENSORS_IT87 is not set
672# CONFIG_SENSORS_LM63 is not set
673# CONFIG_SENSORS_LM75 is not set
674# CONFIG_SENSORS_LM77 is not set
675# CONFIG_SENSORS_LM78 is not set
676# CONFIG_SENSORS_LM80 is not set
677# CONFIG_SENSORS_LM83 is not set
678# CONFIG_SENSORS_LM85 is not set
679# CONFIG_SENSORS_LM87 is not set
680# CONFIG_SENSORS_LM90 is not set
681# CONFIG_SENSORS_LM92 is not set
682# CONFIG_SENSORS_LM93 is not set
683# CONFIG_SENSORS_MAX1619 is not set
684# CONFIG_SENSORS_MAX6650 is not set
685# CONFIG_SENSORS_PC87360 is not set
686# CONFIG_SENSORS_PC87427 is not set
687# CONFIG_SENSORS_DME1737 is not set
688# CONFIG_SENSORS_SMSC47M1 is not set
689# CONFIG_SENSORS_SMSC47M192 is not set
690# CONFIG_SENSORS_SMSC47B397 is not set
691# CONFIG_SENSORS_THMC50 is not set
692# CONFIG_SENSORS_VT1211 is not set
693# CONFIG_SENSORS_W83781D is not set
694# CONFIG_SENSORS_W83791D is not set
695# CONFIG_SENSORS_W83792D is not set
696# CONFIG_SENSORS_W83793 is not set
697# CONFIG_SENSORS_W83L785TS is not set
698# CONFIG_SENSORS_W83627HF is not set
699# CONFIG_SENSORS_W83627EHF is not set
700# CONFIG_HWMON_DEBUG_CHIP is not set
701CONFIG_MISC_DEVICES=y
702# CONFIG_EEPROM_93CX6 is not set
703
704#
705# Multifunction device drivers
706#
707# CONFIG_MFD_SM501 is not set
708# CONFIG_NEW_LEDS is not set
709
710#
711# Multimedia devices
712#
713# CONFIG_VIDEO_DEV is not set
714# CONFIG_DVB_CORE is not set
715CONFIG_DAB=y
716# CONFIG_USB_DABUSB is not set
717
718#
719# Graphics support
720#
721# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
722
723#
724# Display device support
725#
726# CONFIG_DISPLAY_SUPPORT is not set
727# CONFIG_VGASTATE is not set
728CONFIG_VIDEO_OUTPUT_CONTROL=m
729CONFIG_FB=y
730# CONFIG_FIRMWARE_EDID is not set
731# CONFIG_FB_DDC is not set
732# CONFIG_FB_CFB_FILLRECT is not set
733# CONFIG_FB_CFB_COPYAREA is not set
734# CONFIG_FB_CFB_IMAGEBLIT is not set
735# CONFIG_FB_SYS_FILLRECT is not set
736# CONFIG_FB_SYS_COPYAREA is not set
737# CONFIG_FB_SYS_IMAGEBLIT is not set
738# CONFIG_FB_SYS_FOPS is not set
739CONFIG_FB_DEFERRED_IO=y
740# CONFIG_FB_SVGALIB is not set
741# CONFIG_FB_MACMODES is not set
742# CONFIG_FB_BACKLIGHT is not set
743# CONFIG_FB_MODE_HELPERS is not set
744# CONFIG_FB_TILEBLITTING is not set
745
746#
747# Frame buffer hardware drivers
748#
749# CONFIG_FB_S1D13XXX is not set
750CONFIG_FB_OMAP=y
751# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
752# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
753CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
754# CONFIG_FB_OMAP_DMA_TUNE is not set
755# CONFIG_FB_VIRTUAL is not set
756
757#
758# Console display driver support
759#
760# CONFIG_VGA_CONSOLE is not set
761CONFIG_DUMMY_CONSOLE=y
762CONFIG_FRAMEBUFFER_CONSOLE=y
763# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
764# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
765CONFIG_FONTS=y
766CONFIG_FONT_8x8=y
767CONFIG_FONT_8x16=y
768# CONFIG_FONT_6x11 is not set
769# CONFIG_FONT_7x14 is not set
770# CONFIG_FONT_PEARL_8x8 is not set
771# CONFIG_FONT_ACORN_8x8 is not set
772# CONFIG_FONT_MINI_4x6 is not set
773# CONFIG_FONT_SUN8x16 is not set
774# CONFIG_FONT_SUN12x22 is not set
775# CONFIG_FONT_10x18 is not set
776CONFIG_LOGO=y
777CONFIG_LOGO_LINUX_MONO=y
778CONFIG_LOGO_LINUX_VGA16=y
779CONFIG_LOGO_LINUX_CLUT224=y
780
781#
782# Sound
783#
784# CONFIG_SOUND is not set
785CONFIG_HID_SUPPORT=y
786CONFIG_HID=y
787# CONFIG_HID_DEBUG is not set
788
789#
790# USB Input Devices
791#
792CONFIG_USB_HID=y
793# CONFIG_USB_HIDINPUT_POWERBOOK is not set
794# CONFIG_HID_FF is not set
795# CONFIG_USB_HIDDEV is not set
796CONFIG_USB_SUPPORT=y
797CONFIG_USB_ARCH_HAS_HCD=y
798CONFIG_USB_ARCH_HAS_OHCI=y
799# CONFIG_USB_ARCH_HAS_EHCI is not set
800CONFIG_USB=y
801CONFIG_USB_DEBUG=y
802
803#
804# Miscellaneous USB options
805#
806CONFIG_USB_DEVICEFS=y
807# CONFIG_USB_DEVICE_CLASS is not set
808# CONFIG_USB_DYNAMIC_MINORS is not set
809CONFIG_USB_SUSPEND=y
810# CONFIG_USB_PERSIST is not set
811# CONFIG_USB_OTG is not set
812
813#
814# USB Host Controller Drivers
815#
816# CONFIG_USB_ISP116X_HCD is not set
817CONFIG_USB_OHCI_HCD=y
818# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
819# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
820CONFIG_USB_OHCI_LITTLE_ENDIAN=y
821# CONFIG_USB_SL811_HCD is not set
822# CONFIG_USB_R8A66597_HCD is not set
823# CONFIG_USB_MUSB_HDRC is not set
824
825#
826# USB Device Class drivers
827#
828# CONFIG_USB_ACM is not set
829# CONFIG_USB_PRINTER is not set
830
831#
832# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
833#
834
835#
836# may also be needed; see USB_STORAGE Help for more information
837#
838CONFIG_USB_STORAGE=y
839# CONFIG_USB_STORAGE_DEBUG is not set
840CONFIG_USB_STORAGE_DATAFAB=y
841CONFIG_USB_STORAGE_FREECOM=y
842CONFIG_USB_STORAGE_DPCM=y
843# CONFIG_USB_STORAGE_USBAT is not set
844CONFIG_USB_STORAGE_SDDR09=y
845CONFIG_USB_STORAGE_SDDR55=y
846CONFIG_USB_STORAGE_JUMPSHOT=y
847# CONFIG_USB_STORAGE_ALAUDA is not set
848# CONFIG_USB_STORAGE_KARMA is not set
849# CONFIG_USB_LIBUSUAL is not set
850
851#
852# USB Imaging devices
853#
854# CONFIG_USB_MDC800 is not set
855# CONFIG_USB_MICROTEK is not set
856CONFIG_USB_MON=y
857
858#
859# USB port drivers
860#
861
862#
863# USB Serial Converter support
864#
865# CONFIG_USB_SERIAL is not set
866
867#
868# USB Miscellaneous drivers
869#
870# CONFIG_USB_EMI62 is not set
871# CONFIG_USB_EMI26 is not set
872# CONFIG_USB_ADUTUX is not set
873# CONFIG_USB_AUERSWALD is not set
874# CONFIG_USB_RIO500 is not set
875# CONFIG_USB_LEGOTOWER is not set
876# CONFIG_USB_LCD is not set
877# CONFIG_USB_BERRY_CHARGE is not set
878# CONFIG_USB_LED is not set
879# CONFIG_USB_CYPRESS_CY7C63 is not set
880# CONFIG_USB_CYTHERM is not set
881# CONFIG_USB_PHIDGET is not set
882# CONFIG_USB_IDMOUSE is not set
883# CONFIG_USB_FTDI_ELAN is not set
884# CONFIG_USB_APPLEDISPLAY is not set
885# CONFIG_USB_LD is not set
886# CONFIG_USB_TRANCEVIBRATOR is not set
887# CONFIG_USB_IOWARRIOR is not set
888# CONFIG_USB_TEST is not set
889
890#
891# USB DSL modem support
892#
893
894#
895# USB Gadget Support
896#
897# CONFIG_USB_GADGET is not set
898CONFIG_MMC=y
899# CONFIG_MMC_DEBUG is not set
900# CONFIG_MMC_UNSAFE_RESUME is not set
901
902#
903# MMC/SD Card Drivers
904#
905CONFIG_MMC_BLOCK=y
906CONFIG_MMC_BLOCK_BOUNCE=y
907
908#
909# MMC/SD Host Controller Drivers
910#
911CONFIG_MMC_OMAP=y
912CONFIG_RTC_LIB=y
913CONFIG_RTC_CLASS=y
914CONFIG_RTC_HCTOSYS=y
915CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
916# CONFIG_RTC_DEBUG is not set
917
918#
919# RTC interfaces
920#
921CONFIG_RTC_INTF_SYSFS=y
922CONFIG_RTC_INTF_PROC=y
923CONFIG_RTC_INTF_DEV=y
924# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
925# CONFIG_RTC_DRV_TEST is not set
926
927#
928# I2C RTC drivers
929#
930# CONFIG_RTC_DRV_DS1307 is not set
931# CONFIG_RTC_DRV_DS1672 is not set
932# CONFIG_RTC_DRV_MAX6900 is not set
933# CONFIG_RTC_DRV_RS5C372 is not set
934# CONFIG_RTC_DRV_ISL1208 is not set
935# CONFIG_RTC_DRV_X1205 is not set
936# CONFIG_RTC_DRV_PCF8563 is not set
937# CONFIG_RTC_DRV_PCF8583 is not set
938# CONFIG_RTC_DRV_M41T80 is not set
939
940#
941# SPI RTC drivers
942#
943
944#
945# Platform RTC drivers
946#
947# CONFIG_RTC_DRV_CMOS is not set
948# CONFIG_RTC_DRV_DS1553 is not set
949# CONFIG_RTC_DRV_STK17TA8 is not set
950# CONFIG_RTC_DRV_DS1742 is not set
951# CONFIG_RTC_DRV_M48T86 is not set
952# CONFIG_RTC_DRV_M48T59 is not set
953# CONFIG_RTC_DRV_V3020 is not set
954
955#
956# on-CPU RTC drivers
957#
958CONFIG_RTC_DRV_OMAP=y
959
960#
961# DMA Engine support
962#
963# CONFIG_DMA_ENGINE is not set
964
965#
966# DMA Clients
967#
968
969#
970# DMA Devices
971#
972
973#
974# CBUS support
975#
976# CONFIG_CBUS is not set
977
978#
979# File systems
980#
981CONFIG_EXT2_FS=y
982# CONFIG_EXT2_FS_XATTR is not set
983# CONFIG_EXT2_FS_XIP is not set
984CONFIG_EXT3_FS=y
985CONFIG_EXT3_FS_XATTR=y
986# CONFIG_EXT3_FS_POSIX_ACL is not set
987# CONFIG_EXT3_FS_SECURITY is not set
988# CONFIG_EXT4DEV_FS is not set
989CONFIG_JBD=y
990# CONFIG_JBD_DEBUG is not set
991CONFIG_FS_MBCACHE=y
992# CONFIG_REISERFS_FS is not set
993# CONFIG_JFS_FS is not set
994# CONFIG_FS_POSIX_ACL is not set
995# CONFIG_XFS_FS is not set
996# CONFIG_GFS2_FS is not set
997# CONFIG_OCFS2_FS is not set
998# CONFIG_MINIX_FS is not set
999# CONFIG_ROMFS_FS is not set
1000CONFIG_INOTIFY=y
1001CONFIG_INOTIFY_USER=y
1002# CONFIG_QUOTA is not set
1003CONFIG_DNOTIFY=y
1004CONFIG_AUTOFS_FS=y
1005CONFIG_AUTOFS4_FS=y
1006# CONFIG_FUSE_FS is not set
1007
1008#
1009# CD-ROM/DVD Filesystems
1010#
1011CONFIG_ISO9660_FS=y
1012CONFIG_JOLIET=y
1013# CONFIG_ZISOFS is not set
1014# CONFIG_UDF_FS is not set
1015
1016#
1017# DOS/FAT/NT Filesystems
1018#
1019CONFIG_FAT_FS=m
1020CONFIG_MSDOS_FS=m
1021CONFIG_VFAT_FS=m
1022CONFIG_FAT_DEFAULT_CODEPAGE=437
1023CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1024# CONFIG_NTFS_FS is not set
1025
1026#
1027# Pseudo filesystems
1028#
1029CONFIG_PROC_FS=y
1030CONFIG_PROC_SYSCTL=y
1031CONFIG_SYSFS=y
1032CONFIG_TMPFS=y
1033# CONFIG_TMPFS_POSIX_ACL is not set
1034# CONFIG_HUGETLB_PAGE is not set
1035CONFIG_RAMFS=y
1036# CONFIG_CONFIGFS_FS is not set
1037
1038#
1039# Miscellaneous filesystems
1040#
1041# CONFIG_ADFS_FS is not set
1042# CONFIG_AFFS_FS is not set
1043# CONFIG_HFS_FS is not set
1044# CONFIG_HFSPLUS_FS is not set
1045# CONFIG_BEFS_FS is not set
1046# CONFIG_BFS_FS is not set
1047# CONFIG_EFS_FS is not set
1048# CONFIG_CRAMFS is not set
1049# CONFIG_VXFS_FS is not set
1050# CONFIG_HPFS_FS is not set
1051# CONFIG_QNX4FS_FS is not set
1052# CONFIG_SYSV_FS is not set
1053# CONFIG_UFS_FS is not set
1054
1055#
1056# Network File Systems
1057#
1058CONFIG_NFS_FS=y
1059CONFIG_NFS_V3=y
1060# CONFIG_NFS_V3_ACL is not set
1061CONFIG_NFS_V4=y
1062# CONFIG_NFS_DIRECTIO is not set
1063# CONFIG_NFSD is not set
1064CONFIG_ROOT_NFS=y
1065CONFIG_LOCKD=y
1066CONFIG_LOCKD_V4=y
1067CONFIG_NFS_COMMON=y
1068CONFIG_SUNRPC=y
1069CONFIG_SUNRPC_GSS=y
1070# CONFIG_SUNRPC_BIND34 is not set
1071CONFIG_RPCSEC_GSS_KRB5=y
1072# CONFIG_RPCSEC_GSS_SPKM3 is not set
1073# CONFIG_SMB_FS is not set
1074# CONFIG_CIFS is not set
1075# CONFIG_NCP_FS is not set
1076# CONFIG_CODA_FS is not set
1077# CONFIG_AFS_FS is not set
1078
1079#
1080# Partition Types
1081#
1082CONFIG_PARTITION_ADVANCED=y
1083# CONFIG_ACORN_PARTITION is not set
1084# CONFIG_OSF_PARTITION is not set
1085# CONFIG_AMIGA_PARTITION is not set
1086# CONFIG_ATARI_PARTITION is not set
1087# CONFIG_MAC_PARTITION is not set
1088CONFIG_MSDOS_PARTITION=y
1089# CONFIG_BSD_DISKLABEL is not set
1090# CONFIG_MINIX_SUBPARTITION is not set
1091# CONFIG_SOLARIS_X86_PARTITION is not set
1092# CONFIG_UNIXWARE_DISKLABEL is not set
1093# CONFIG_LDM_PARTITION is not set
1094# CONFIG_SGI_PARTITION is not set
1095# CONFIG_ULTRIX_PARTITION is not set
1096# CONFIG_SUN_PARTITION is not set
1097# CONFIG_KARMA_PARTITION is not set
1098# CONFIG_EFI_PARTITION is not set
1099# CONFIG_SYSV68_PARTITION is not set
1100
1101#
1102# Native Language Support
1103#
1104CONFIG_NLS=y
1105CONFIG_NLS_DEFAULT="iso8859-1"
1106# CONFIG_NLS_CODEPAGE_437 is not set
1107# CONFIG_NLS_CODEPAGE_737 is not set
1108# CONFIG_NLS_CODEPAGE_775 is not set
1109# CONFIG_NLS_CODEPAGE_850 is not set
1110# CONFIG_NLS_CODEPAGE_852 is not set
1111# CONFIG_NLS_CODEPAGE_855 is not set
1112# CONFIG_NLS_CODEPAGE_857 is not set
1113# CONFIG_NLS_CODEPAGE_860 is not set
1114# CONFIG_NLS_CODEPAGE_861 is not set
1115# CONFIG_NLS_CODEPAGE_862 is not set
1116# CONFIG_NLS_CODEPAGE_863 is not set
1117# CONFIG_NLS_CODEPAGE_864 is not set
1118# CONFIG_NLS_CODEPAGE_865 is not set
1119# CONFIG_NLS_CODEPAGE_866 is not set
1120# CONFIG_NLS_CODEPAGE_869 is not set
1121# CONFIG_NLS_CODEPAGE_936 is not set
1122# CONFIG_NLS_CODEPAGE_950 is not set
1123# CONFIG_NLS_CODEPAGE_932 is not set
1124# CONFIG_NLS_CODEPAGE_949 is not set
1125# CONFIG_NLS_CODEPAGE_874 is not set
1126# CONFIG_NLS_ISO8859_8 is not set
1127# CONFIG_NLS_CODEPAGE_1250 is not set
1128# CONFIG_NLS_CODEPAGE_1251 is not set
1129# CONFIG_NLS_ASCII is not set
1130# CONFIG_NLS_ISO8859_1 is not set
1131# CONFIG_NLS_ISO8859_2 is not set
1132# CONFIG_NLS_ISO8859_3 is not set
1133# CONFIG_NLS_ISO8859_4 is not set
1134# CONFIG_NLS_ISO8859_5 is not set
1135# CONFIG_NLS_ISO8859_6 is not set
1136# CONFIG_NLS_ISO8859_7 is not set
1137# CONFIG_NLS_ISO8859_9 is not set
1138# CONFIG_NLS_ISO8859_13 is not set
1139# CONFIG_NLS_ISO8859_14 is not set
1140# CONFIG_NLS_ISO8859_15 is not set
1141# CONFIG_NLS_KOI8_R is not set
1142# CONFIG_NLS_KOI8_U is not set
1143# CONFIG_NLS_UTF8 is not set
1144
1145#
1146# Distributed Lock Manager
1147#
1148# CONFIG_DLM is not set
1149
1150#
1151# Profiling support
1152#
1153# CONFIG_PROFILING is not set
1154
1155#
1156# Kernel hacking
1157#
1158# CONFIG_PRINTK_TIME is not set
1159CONFIG_ENABLE_MUST_CHECK=y
1160CONFIG_MAGIC_SYSRQ=y
1161# CONFIG_UNUSED_SYMBOLS is not set
1162# CONFIG_DEBUG_FS is not set
1163# CONFIG_HEADERS_CHECK is not set
1164CONFIG_DEBUG_KERNEL=y
1165# CONFIG_DEBUG_SHIRQ is not set
1166CONFIG_DETECT_SOFTLOCKUP=y
1167CONFIG_SCHED_DEBUG=y
1168# CONFIG_SCHEDSTATS is not set
1169# CONFIG_TIMER_STATS is not set
1170# CONFIG_DEBUG_SLAB is not set
1171CONFIG_DEBUG_PREEMPT=y
1172# CONFIG_DEBUG_RT_MUTEXES is not set
1173# CONFIG_RT_MUTEX_TESTER is not set
1174# CONFIG_DEBUG_SPINLOCK is not set
1175# CONFIG_DEBUG_MUTEXES is not set
1176# CONFIG_DEBUG_LOCK_ALLOC is not set
1177# CONFIG_PROVE_LOCKING is not set
1178# CONFIG_LOCK_STAT is not set
1179# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1180# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1181# CONFIG_DEBUG_KOBJECT is not set
1182CONFIG_DEBUG_BUGVERBOSE=y
1183# CONFIG_DEBUG_INFO is not set
1184# CONFIG_DEBUG_VM is not set
1185# CONFIG_DEBUG_LIST is not set
1186CONFIG_FRAME_POINTER=y
1187CONFIG_FORCED_INLINING=y
1188# CONFIG_RCU_TORTURE_TEST is not set
1189# CONFIG_FAULT_INJECTION is not set
1190# CONFIG_DEBUG_USER is not set
1191# CONFIG_DEBUG_ERRORS is not set
1192# CONFIG_DEBUG_LL is not set
1193
1194#
1195# Security options
1196#
1197# CONFIG_KEYS is not set
1198# CONFIG_SECURITY is not set
1199CONFIG_CRYPTO=y
1200CONFIG_CRYPTO_ALGAPI=y
1201CONFIG_CRYPTO_BLKCIPHER=y
1202CONFIG_CRYPTO_MANAGER=y
1203# CONFIG_CRYPTO_HMAC is not set
1204# CONFIG_CRYPTO_XCBC is not set
1205# CONFIG_CRYPTO_NULL is not set
1206# CONFIG_CRYPTO_MD4 is not set
1207CONFIG_CRYPTO_MD5=y
1208# CONFIG_CRYPTO_SHA1 is not set
1209# CONFIG_CRYPTO_SHA256 is not set
1210# CONFIG_CRYPTO_SHA512 is not set
1211# CONFIG_CRYPTO_WP512 is not set
1212# CONFIG_CRYPTO_TGR192 is not set
1213# CONFIG_CRYPTO_GF128MUL is not set
1214CONFIG_CRYPTO_ECB=m
1215CONFIG_CRYPTO_CBC=y
1216CONFIG_CRYPTO_PCBC=m
1217# CONFIG_CRYPTO_LRW is not set
1218# CONFIG_CRYPTO_CRYPTD is not set
1219CONFIG_CRYPTO_DES=y
1220# CONFIG_CRYPTO_FCRYPT is not set
1221# CONFIG_CRYPTO_BLOWFISH is not set
1222# CONFIG_CRYPTO_TWOFISH is not set
1223# CONFIG_CRYPTO_SERPENT is not set
1224# CONFIG_CRYPTO_AES is not set
1225# CONFIG_CRYPTO_CAST5 is not set
1226# CONFIG_CRYPTO_CAST6 is not set
1227# CONFIG_CRYPTO_TEA is not set
1228# CONFIG_CRYPTO_ARC4 is not set
1229# CONFIG_CRYPTO_KHAZAD is not set
1230# CONFIG_CRYPTO_ANUBIS is not set
1231# CONFIG_CRYPTO_DEFLATE is not set
1232# CONFIG_CRYPTO_MICHAEL_MIC is not set
1233# CONFIG_CRYPTO_CRC32C is not set
1234# CONFIG_CRYPTO_CAMELLIA is not set
1235# CONFIG_CRYPTO_TEST is not set
1236CONFIG_CRYPTO_HW=y
1237
1238#
1239# Library routines
1240#
1241CONFIG_BITREVERSE=y
1242CONFIG_CRC_CCITT=y
1243# CONFIG_CRC16 is not set
1244# CONFIG_CRC_ITU_T is not set
1245CONFIG_CRC32=y
1246# CONFIG_CRC7 is not set
1247# CONFIG_LIBCRC32C is not set
1248CONFIG_ZLIB_INFLATE=y
1249CONFIG_ZLIB_DEFLATE=y
1250CONFIG_PLIST=y
1251CONFIG_HAS_IOMEM=y
1252CONFIG_HAS_IOPORT=y
1253CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_innovator_1610_defconfig b/arch/arm/configs/omap_innovator_1610_defconfig
new file mode 100644
index 00000000000..95d9f2be53e
--- /dev/null
+++ b/arch/arm/configs/omap_innovator_1610_defconfig
@@ -0,0 +1,839 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 11:45:05 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34CONFIG_LOCALVERSION=""
35CONFIG_LOCALVERSION_AUTO=y
36CONFIG_SWAP=y
37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_POSIX_MQUEUE is not set
40# CONFIG_BSD_PROCESS_ACCT is not set
41# CONFIG_TASKSTATS is not set
42# CONFIG_USER_NS is not set
43# CONFIG_AUDIT is not set
44# CONFIG_IKCONFIG is not set
45CONFIG_LOG_BUF_SHIFT=14
46CONFIG_SYSFS_DEPRECATED=y
47# CONFIG_RELAY is not set
48CONFIG_BLK_DEV_INITRD=y
49CONFIG_INITRAMFS_SOURCE=""
50CONFIG_CC_OPTIMIZE_FOR_SIZE=y
51CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_KALLSYMS=y
56# CONFIG_KALLSYMS_EXTRA_PASS is not set
57CONFIG_HOTPLUG=y
58CONFIG_PRINTK=y
59CONFIG_BUG=y
60CONFIG_ELF_CORE=y
61CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y
67CONFIG_EVENTFD=y
68CONFIG_SHMEM=y
69CONFIG_VM_EVENT_COUNTERS=y
70CONFIG_SLUB_DEBUG=y
71# CONFIG_SLAB is not set
72CONFIG_SLUB=y
73# CONFIG_SLOB is not set
74CONFIG_RT_MUTEXES=y
75# CONFIG_TINY_SHMEM is not set
76CONFIG_BASE_SMALL=0
77CONFIG_MODULES=y
78CONFIG_MODULE_UNLOAD=y
79# CONFIG_MODULE_FORCE_UNLOAD is not set
80# CONFIG_MODVERSIONS is not set
81# CONFIG_MODULE_SRCVERSION_ALL is not set
82CONFIG_KMOD=y
83CONFIG_BLOCK=y
84# CONFIG_LBD is not set
85# CONFIG_BLK_DEV_IO_TRACE is not set
86# CONFIG_LSF is not set
87# CONFIG_BLK_DEV_BSG is not set
88
89#
90# IO Schedulers
91#
92CONFIG_IOSCHED_NOOP=y
93CONFIG_IOSCHED_AS=y
94CONFIG_IOSCHED_DEADLINE=y
95CONFIG_IOSCHED_CFQ=y
96# CONFIG_DEFAULT_AS is not set
97# CONFIG_DEFAULT_DEADLINE is not set
98CONFIG_DEFAULT_CFQ=y
99# CONFIG_DEFAULT_NOOP is not set
100CONFIG_DEFAULT_IOSCHED="cfq"
101
102#
103# System Type
104#
105# CONFIG_ARCH_AAEC2000 is not set
106# CONFIG_ARCH_INTEGRATOR is not set
107# CONFIG_ARCH_REALVIEW is not set
108# CONFIG_ARCH_VERSATILE is not set
109# CONFIG_ARCH_AT91 is not set
110# CONFIG_ARCH_CLPS7500 is not set
111# CONFIG_ARCH_CLPS711X is not set
112# CONFIG_ARCH_CO285 is not set
113# CONFIG_ARCH_EBSA110 is not set
114# CONFIG_ARCH_EP93XX is not set
115# CONFIG_ARCH_FOOTBRIDGE is not set
116# CONFIG_ARCH_NETX is not set
117# CONFIG_ARCH_H720X is not set
118# CONFIG_ARCH_IMX is not set
119# CONFIG_ARCH_IOP13XX is not set
120# CONFIG_ARCH_IOP32X is not set
121# CONFIG_ARCH_IOP33X is not set
122# CONFIG_ARCH_IXP23XX is not set
123# CONFIG_ARCH_IXP2000 is not set
124# CONFIG_ARCH_IXP4XX is not set
125# CONFIG_ARCH_L7200 is not set
126# CONFIG_ARCH_KS8695 is not set
127# CONFIG_ARCH_NS9XXX is not set
128# CONFIG_ARCH_MXC is not set
129# CONFIG_ARCH_PNX4008 is not set
130# CONFIG_ARCH_PXA is not set
131# CONFIG_ARCH_RPC is not set
132# CONFIG_ARCH_SA1100 is not set
133# CONFIG_ARCH_S3C2410 is not set
134# CONFIG_ARCH_SHARK is not set
135# CONFIG_ARCH_LH7A40X is not set
136# CONFIG_ARCH_DAVINCI is not set
137CONFIG_ARCH_OMAP=y
138
139#
140# TI OMAP Implementations
141#
142CONFIG_ARCH_OMAP_OTG=y
143CONFIG_ARCH_OMAP1=y
144# CONFIG_ARCH_OMAP2 is not set
145# CONFIG_ARCH_OMAP3 is not set
146
147#
148# OMAP Feature Selections
149#
150# CONFIG_OMAP_RESET_CLOCKS is not set
151# CONFIG_OMAP_BOOT_TAG is not set
152# CONFIG_OMAP_GPIO_SWITCH is not set
153CONFIG_OMAP_MUX=y
154# CONFIG_OMAP_MUX_DEBUG is not set
155CONFIG_OMAP_MUX_WARNINGS=y
156# CONFIG_OMAP_STI is not set
157CONFIG_OMAP_MCBSP=y
158# CONFIG_OMAP_MMU_FWK is not set
159# CONFIG_OMAP_MBOX_FWK is not set
160CONFIG_OMAP_MPU_TIMER=y
161# CONFIG_OMAP_32K_TIMER is not set
162# CONFIG_OMAP_DM_TIMER is not set
163CONFIG_OMAP_LL_DEBUG_UART1=y
164# CONFIG_OMAP_LL_DEBUG_UART2 is not set
165# CONFIG_OMAP_LL_DEBUG_UART3 is not set
166CONFIG_OMAP_SERIAL_WAKE=y
167# CONFIG_OMAP_DSP is not set
168
169#
170# OMAP Core Type
171#
172# CONFIG_ARCH_OMAP730 is not set
173# CONFIG_ARCH_OMAP15XX is not set
174CONFIG_ARCH_OMAP16XX=y
175
176#
177# OMAP Board Type
178#
179CONFIG_MACH_OMAP_INNOVATOR=y
180# CONFIG_MACH_OMAP_H2 is not set
181# CONFIG_MACH_OMAP_H3 is not set
182# CONFIG_MACH_OMAP_OSK is not set
183# CONFIG_MACH_NOKIA770 is not set
184# CONFIG_MACH_OMAP_GENERIC is not set
185
186#
187# OMAP CPU Speed
188#
189# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
190# CONFIG_OMAP_ARM_216MHZ is not set
191CONFIG_OMAP_ARM_192MHZ=y
192# CONFIG_OMAP_ARM_168MHZ is not set
193# CONFIG_OMAP_ARM_120MHZ is not set
194# CONFIG_OMAP_ARM_60MHZ is not set
195# CONFIG_OMAP_ARM_30MHZ is not set
196# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
197
198#
199# Boot options
200#
201
202#
203# Power management
204#
205
206#
207# Processor Type
208#
209CONFIG_CPU_32=y
210CONFIG_CPU_ARM926T=y
211CONFIG_CPU_32v5=y
212CONFIG_CPU_ABRT_EV5TJ=y
213CONFIG_CPU_PABRT_NOIFAR=y
214CONFIG_CPU_CACHE_VIVT=y
215CONFIG_CPU_COPY_V4WB=y
216CONFIG_CPU_TLB_V4WBI=y
217CONFIG_CPU_CP15=y
218CONFIG_CPU_CP15_MMU=y
219
220#
221# Processor Features
222#
223# CONFIG_ARM_THUMB is not set
224# CONFIG_CPU_ICACHE_DISABLE is not set
225# CONFIG_CPU_DCACHE_DISABLE is not set
226CONFIG_CPU_DCACHE_WRITETHROUGH=y
227# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
228# CONFIG_OUTER_CACHE is not set
229
230#
231# Bus support
232#
233# CONFIG_PCI_SYSCALL is not set
234# CONFIG_ARCH_SUPPORTS_MSI is not set
235
236#
237# PCCARD (PCMCIA/CardBus) support
238#
239# CONFIG_PCCARD is not set
240
241#
242# Kernel Features
243#
244# CONFIG_TICK_ONESHOT is not set
245# CONFIG_NO_HZ is not set
246# CONFIG_HIGH_RES_TIMERS is not set
247# CONFIG_PREEMPT is not set
248CONFIG_HZ=100
249# CONFIG_AEABI is not set
250# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
251CONFIG_SELECT_MEMORY_MODEL=y
252CONFIG_FLATMEM_MANUAL=y
253# CONFIG_DISCONTIGMEM_MANUAL is not set
254# CONFIG_SPARSEMEM_MANUAL is not set
255CONFIG_FLATMEM=y
256CONFIG_FLAT_NODE_MEM_MAP=y
257# CONFIG_SPARSEMEM_STATIC is not set
258CONFIG_SPLIT_PTLOCK_CPUS=4096
259# CONFIG_RESOURCES_64BIT is not set
260CONFIG_ZONE_DMA_FLAG=1
261CONFIG_BOUNCE=y
262CONFIG_VIRT_TO_BUS=y
263# CONFIG_LEDS is not set
264CONFIG_ALIGNMENT_TRAP=y
265
266#
267# Boot options
268#
269CONFIG_ZBOOT_ROM_TEXT=0x0
270CONFIG_ZBOOT_ROM_BSS=0x0
271CONFIG_CMDLINE="mem=32M console=tty0 console=ttyS0,115200 initrd=0x10200000,8M root=/dev/ram0 rw"
272# CONFIG_XIP_KERNEL is not set
273# CONFIG_KEXEC is not set
274
275#
276# CPU Frequency scaling
277#
278# CONFIG_CPU_FREQ is not set
279
280#
281# Floating point emulation
282#
283
284#
285# At least one emulation must be selected
286#
287CONFIG_FPE_NWFPE=y
288# CONFIG_FPE_NWFPE_XP is not set
289# CONFIG_FPE_FASTFPE is not set
290# CONFIG_VFP is not set
291
292#
293# Userspace binary formats
294#
295CONFIG_BINFMT_ELF=y
296# CONFIG_BINFMT_AOUT is not set
297# CONFIG_BINFMT_MISC is not set
298# CONFIG_ARTHUR is not set
299
300#
301# Power management options
302#
303# CONFIG_PM is not set
304CONFIG_SUSPEND_UP_POSSIBLE=y
305
306#
307# Networking
308#
309CONFIG_NET=y
310
311#
312# Networking options
313#
314CONFIG_PACKET=m
315# CONFIG_PACKET_MMAP is not set
316CONFIG_UNIX=y
317CONFIG_XFRM=y
318# CONFIG_XFRM_USER is not set
319# CONFIG_XFRM_SUB_POLICY is not set
320# CONFIG_XFRM_MIGRATE is not set
321# CONFIG_NET_KEY is not set
322CONFIG_INET=y
323CONFIG_IP_MULTICAST=y
324# CONFIG_IP_ADVANCED_ROUTER is not set
325CONFIG_IP_FIB_HASH=y
326CONFIG_IP_PNP=y
327CONFIG_IP_PNP_DHCP=y
328CONFIG_IP_PNP_BOOTP=y
329# CONFIG_IP_PNP_RARP is not set
330# CONFIG_NET_IPIP is not set
331# CONFIG_NET_IPGRE is not set
332# CONFIG_IP_MROUTE is not set
333# CONFIG_ARPD is not set
334# CONFIG_SYN_COOKIES is not set
335# CONFIG_INET_AH is not set
336# CONFIG_INET_ESP is not set
337# CONFIG_INET_IPCOMP is not set
338# CONFIG_INET_XFRM_TUNNEL is not set
339# CONFIG_INET_TUNNEL is not set
340CONFIG_INET_XFRM_MODE_TRANSPORT=y
341CONFIG_INET_XFRM_MODE_TUNNEL=y
342CONFIG_INET_XFRM_MODE_BEET=y
343CONFIG_INET_DIAG=y
344CONFIG_INET_TCP_DIAG=y
345# CONFIG_TCP_CONG_ADVANCED is not set
346CONFIG_TCP_CONG_CUBIC=y
347CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_TCP_MD5SIG is not set
349# CONFIG_IPV6 is not set
350# CONFIG_INET6_XFRM_TUNNEL is not set
351# CONFIG_INET6_TUNNEL is not set
352# CONFIG_NETWORK_SECMARK is not set
353# CONFIG_NETFILTER is not set
354# CONFIG_IP_DCCP is not set
355# CONFIG_IP_SCTP is not set
356# CONFIG_TIPC is not set
357# CONFIG_ATM is not set
358# CONFIG_BRIDGE is not set
359# CONFIG_VLAN_8021Q is not set
360# CONFIG_DECNET is not set
361# CONFIG_LLC2 is not set
362# CONFIG_IPX is not set
363# CONFIG_ATALK is not set
364# CONFIG_X25 is not set
365# CONFIG_LAPB is not set
366# CONFIG_ECONET is not set
367# CONFIG_WAN_ROUTER is not set
368
369#
370# QoS and/or fair queueing
371#
372# CONFIG_NET_SCHED is not set
373
374#
375# Network testing
376#
377# CONFIG_NET_PKTGEN is not set
378# CONFIG_HAMRADIO is not set
379# CONFIG_IRDA is not set
380# CONFIG_BT is not set
381# CONFIG_AF_RXRPC is not set
382
383#
384# Wireless
385#
386# CONFIG_CFG80211 is not set
387# CONFIG_WIRELESS_EXT is not set
388# CONFIG_MAC80211 is not set
389# CONFIG_IEEE80211 is not set
390# CONFIG_RFKILL is not set
391# CONFIG_NET_9P is not set
392
393#
394# Device Drivers
395#
396
397#
398# Generic Driver Options
399#
400CONFIG_STANDALONE=y
401CONFIG_PREVENT_FIRMWARE_BUILD=y
402# CONFIG_FW_LOADER is not set
403# CONFIG_SYS_HYPERVISOR is not set
404# CONFIG_CONNECTOR is not set
405# CONFIG_MTD is not set
406# CONFIG_PARPORT is not set
407CONFIG_BLK_DEV=y
408# CONFIG_BLK_DEV_COW_COMMON is not set
409CONFIG_BLK_DEV_LOOP=y
410# CONFIG_BLK_DEV_CRYPTOLOOP is not set
411# CONFIG_BLK_DEV_NBD is not set
412CONFIG_BLK_DEV_RAM=y
413CONFIG_BLK_DEV_RAM_COUNT=16
414CONFIG_BLK_DEV_RAM_SIZE=8192
415CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
416# CONFIG_CDROM_PKTCDVD is not set
417# CONFIG_ATA_OVER_ETH is not set
418
419#
420# SCSI device support
421#
422# CONFIG_RAID_ATTRS is not set
423# CONFIG_SCSI is not set
424# CONFIG_SCSI_DMA is not set
425# CONFIG_SCSI_NETLINK is not set
426# CONFIG_ATA is not set
427# CONFIG_MD is not set
428CONFIG_NETDEVICES=y
429# CONFIG_NETDEVICES_MULTIQUEUE is not set
430# CONFIG_DUMMY is not set
431# CONFIG_BONDING is not set
432# CONFIG_MACVLAN is not set
433# CONFIG_EQUALIZER is not set
434# CONFIG_TUN is not set
435# CONFIG_PHYLIB is not set
436CONFIG_NET_ETHERNET=y
437CONFIG_MII=y
438# CONFIG_AX88796 is not set
439CONFIG_SMC91X=y
440# CONFIG_DM9000 is not set
441CONFIG_NETDEV_1000=y
442CONFIG_NETDEV_10000=y
443
444#
445# Wireless LAN
446#
447# CONFIG_WLAN_PRE80211 is not set
448# CONFIG_WLAN_80211 is not set
449# CONFIG_WAN is not set
450CONFIG_PPP=y
451CONFIG_PPP_MULTILINK=y
452# CONFIG_PPP_FILTER is not set
453# CONFIG_PPP_ASYNC is not set
454# CONFIG_PPP_SYNC_TTY is not set
455# CONFIG_PPP_DEFLATE is not set
456# CONFIG_PPP_BSDCOMP is not set
457# CONFIG_PPP_MPPE is not set
458# CONFIG_PPPOE is not set
459# CONFIG_PPPOL2TP is not set
460# CONFIG_SLIP is not set
461CONFIG_SLHC=y
462# CONFIG_SHAPER is not set
463# CONFIG_NETCONSOLE is not set
464# CONFIG_NETPOLL is not set
465# CONFIG_NET_POLL_CONTROLLER is not set
466# CONFIG_ISDN is not set
467
468#
469# Input device support
470#
471CONFIG_INPUT=y
472# CONFIG_INPUT_FF_MEMLESS is not set
473# CONFIG_INPUT_POLLDEV is not set
474
475#
476# Userland interfaces
477#
478CONFIG_INPUT_MOUSEDEV=y
479CONFIG_INPUT_MOUSEDEV_PSAUX=y
480CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
481CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
482# CONFIG_INPUT_JOYDEV is not set
483# CONFIG_INPUT_TSDEV is not set
484# CONFIG_INPUT_EVDEV is not set
485# CONFIG_INPUT_EVBUG is not set
486
487#
488# Input Device Drivers
489#
490CONFIG_INPUT_KEYBOARD=y
491# CONFIG_KEYBOARD_ATKBD is not set
492# CONFIG_KEYBOARD_SUNKBD is not set
493# CONFIG_KEYBOARD_LKKBD is not set
494# CONFIG_KEYBOARD_XTKBD is not set
495# CONFIG_KEYBOARD_NEWTON is not set
496# CONFIG_KEYBOARD_STOWAWAY is not set
497CONFIG_KEYBOARD_OMAP=y
498# CONFIG_KEYBOARD_GPIO is not set
499# CONFIG_INPUT_MOUSE is not set
500# CONFIG_INPUT_JOYSTICK is not set
501# CONFIG_INPUT_TABLET is not set
502# CONFIG_INPUT_TOUCHSCREEN is not set
503# CONFIG_INPUT_MISC is not set
504
505#
506# Hardware I/O ports
507#
508CONFIG_SERIO=y
509CONFIG_SERIO_SERPORT=y
510# CONFIG_SERIO_RAW is not set
511# CONFIG_GAMEPORT is not set
512
513#
514# Character devices
515#
516CONFIG_VT=y
517CONFIG_VT_CONSOLE=y
518CONFIG_HW_CONSOLE=y
519# CONFIG_VT_HW_CONSOLE_BINDING is not set
520# CONFIG_SERIAL_NONSTANDARD is not set
521
522#
523# Serial drivers
524#
525CONFIG_SERIAL_8250=y
526CONFIG_SERIAL_8250_CONSOLE=y
527CONFIG_SERIAL_8250_NR_UARTS=4
528CONFIG_SERIAL_8250_RUNTIME_UARTS=4
529# CONFIG_SERIAL_8250_EXTENDED is not set
530
531#
532# Non-8250 serial port support
533#
534CONFIG_SERIAL_CORE=y
535CONFIG_SERIAL_CORE_CONSOLE=y
536CONFIG_UNIX98_PTYS=y
537CONFIG_LEGACY_PTYS=y
538CONFIG_LEGACY_PTY_COUNT=256
539# CONFIG_IPMI_HANDLER is not set
540# CONFIG_WATCHDOG is not set
541CONFIG_HW_RANDOM=m
542CONFIG_HW_RANDOM_OMAP=m
543# CONFIG_NVRAM is not set
544# CONFIG_R3964 is not set
545# CONFIG_RAW_DRIVER is not set
546# CONFIG_TCG_TPM is not set
547# CONFIG_I2C is not set
548
549#
550# SPI support
551#
552# CONFIG_SPI is not set
553# CONFIG_SPI_MASTER is not set
554# CONFIG_W1 is not set
555CONFIG_HWMON=y
556# CONFIG_HWMON_VID is not set
557# CONFIG_SENSORS_ABITUGURU is not set
558# CONFIG_SENSORS_ABITUGURU3 is not set
559# CONFIG_SENSORS_F71805F is not set
560# CONFIG_SENSORS_IT87 is not set
561# CONFIG_SENSORS_PC87360 is not set
562# CONFIG_SENSORS_PC87427 is not set
563# CONFIG_SENSORS_SMSC47M1 is not set
564# CONFIG_SENSORS_SMSC47B397 is not set
565# CONFIG_SENSORS_VT1211 is not set
566# CONFIG_SENSORS_W83627HF is not set
567# CONFIG_SENSORS_W83627EHF is not set
568# CONFIG_HWMON_DEBUG_CHIP is not set
569CONFIG_MISC_DEVICES=y
570# CONFIG_EEPROM_93CX6 is not set
571
572#
573# Multifunction device drivers
574#
575# CONFIG_MFD_SM501 is not set
576# CONFIG_NEW_LEDS is not set
577
578#
579# Multimedia devices
580#
581# CONFIG_VIDEO_DEV is not set
582# CONFIG_DVB_CORE is not set
583CONFIG_DAB=y
584
585#
586# Graphics support
587#
588# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
589
590#
591# Display device support
592#
593# CONFIG_DISPLAY_SUPPORT is not set
594# CONFIG_VGASTATE is not set
595CONFIG_VIDEO_OUTPUT_CONTROL=m
596CONFIG_FB=y
597# CONFIG_FIRMWARE_EDID is not set
598# CONFIG_FB_DDC is not set
599# CONFIG_FB_CFB_FILLRECT is not set
600# CONFIG_FB_CFB_COPYAREA is not set
601# CONFIG_FB_CFB_IMAGEBLIT is not set
602# CONFIG_FB_SYS_FILLRECT is not set
603# CONFIG_FB_SYS_COPYAREA is not set
604# CONFIG_FB_SYS_IMAGEBLIT is not set
605# CONFIG_FB_SYS_FOPS is not set
606CONFIG_FB_DEFERRED_IO=y
607# CONFIG_FB_SVGALIB is not set
608# CONFIG_FB_MACMODES is not set
609# CONFIG_FB_BACKLIGHT is not set
610CONFIG_FB_MODE_HELPERS=y
611# CONFIG_FB_TILEBLITTING is not set
612
613#
614# Frame buffer hardware drivers
615#
616# CONFIG_FB_S1D13XXX is not set
617CONFIG_FB_OMAP=y
618# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
619# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
620CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
621# CONFIG_FB_OMAP_DMA_TUNE is not set
622# CONFIG_FB_VIRTUAL is not set
623
624#
625# Console display driver support
626#
627# CONFIG_VGA_CONSOLE is not set
628CONFIG_DUMMY_CONSOLE=y
629CONFIG_FRAMEBUFFER_CONSOLE=y
630# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
631# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
632CONFIG_FONTS=y
633CONFIG_FONT_8x8=y
634CONFIG_FONT_8x16=y
635# CONFIG_FONT_6x11 is not set
636# CONFIG_FONT_7x14 is not set
637# CONFIG_FONT_PEARL_8x8 is not set
638# CONFIG_FONT_ACORN_8x8 is not set
639# CONFIG_FONT_MINI_4x6 is not set
640# CONFIG_FONT_SUN8x16 is not set
641# CONFIG_FONT_SUN12x22 is not set
642# CONFIG_FONT_10x18 is not set
643CONFIG_LOGO=y
644CONFIG_LOGO_LINUX_MONO=y
645CONFIG_LOGO_LINUX_VGA16=y
646CONFIG_LOGO_LINUX_CLUT224=y
647
648#
649# Sound
650#
651# CONFIG_SOUND is not set
652CONFIG_HID_SUPPORT=y
653CONFIG_HID=y
654CONFIG_HID_DEBUG=y
655CONFIG_USB_SUPPORT=y
656CONFIG_USB_ARCH_HAS_HCD=y
657CONFIG_USB_ARCH_HAS_OHCI=y
658# CONFIG_USB_ARCH_HAS_EHCI is not set
659# CONFIG_USB is not set
660
661#
662# Enable Host or Gadget support to see Inventra options
663#
664
665#
666# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
667#
668
669#
670# USB Gadget Support
671#
672# CONFIG_USB_GADGET is not set
673# CONFIG_MMC is not set
674CONFIG_RTC_LIB=y
675# CONFIG_RTC_CLASS is not set
676
677#
678# DMA Engine support
679#
680# CONFIG_DMA_ENGINE is not set
681
682#
683# DMA Clients
684#
685
686#
687# DMA Devices
688#
689
690#
691# CBUS support
692#
693# CONFIG_CBUS is not set
694
695#
696# File systems
697#
698CONFIG_EXT2_FS=y
699# CONFIG_EXT2_FS_XATTR is not set
700# CONFIG_EXT2_FS_XIP is not set
701# CONFIG_EXT3_FS is not set
702# CONFIG_EXT4DEV_FS is not set
703# CONFIG_REISERFS_FS is not set
704# CONFIG_JFS_FS is not set
705# CONFIG_FS_POSIX_ACL is not set
706# CONFIG_XFS_FS is not set
707# CONFIG_GFS2_FS is not set
708# CONFIG_OCFS2_FS is not set
709# CONFIG_MINIX_FS is not set
710# CONFIG_ROMFS_FS is not set
711CONFIG_INOTIFY=y
712CONFIG_INOTIFY_USER=y
713# CONFIG_QUOTA is not set
714CONFIG_DNOTIFY=y
715CONFIG_AUTOFS_FS=y
716CONFIG_AUTOFS4_FS=y
717# CONFIG_FUSE_FS is not set
718
719#
720# CD-ROM/DVD Filesystems
721#
722# CONFIG_ISO9660_FS is not set
723# CONFIG_UDF_FS is not set
724
725#
726# DOS/FAT/NT Filesystems
727#
728# CONFIG_MSDOS_FS is not set
729# CONFIG_VFAT_FS is not set
730# CONFIG_NTFS_FS is not set
731
732#
733# Pseudo filesystems
734#
735CONFIG_PROC_FS=y
736CONFIG_PROC_SYSCTL=y
737CONFIG_SYSFS=y
738# CONFIG_TMPFS is not set
739# CONFIG_HUGETLB_PAGE is not set
740CONFIG_RAMFS=y
741# CONFIG_CONFIGFS_FS is not set
742
743#
744# Miscellaneous filesystems
745#
746# CONFIG_ADFS_FS is not set
747# CONFIG_AFFS_FS is not set
748# CONFIG_HFS_FS is not set
749# CONFIG_HFSPLUS_FS is not set
750# CONFIG_BEFS_FS is not set
751# CONFIG_BFS_FS is not set
752# CONFIG_EFS_FS is not set
753# CONFIG_CRAMFS is not set
754# CONFIG_VXFS_FS is not set
755# CONFIG_HPFS_FS is not set
756# CONFIG_QNX4FS_FS is not set
757# CONFIG_SYSV_FS is not set
758# CONFIG_UFS_FS is not set
759
760#
761# Network File Systems
762#
763CONFIG_NFS_FS=y
764CONFIG_NFS_V3=y
765# CONFIG_NFS_V3_ACL is not set
766# CONFIG_NFS_V4 is not set
767# CONFIG_NFS_DIRECTIO is not set
768# CONFIG_NFSD is not set
769# CONFIG_ROOT_NFS is not set
770CONFIG_LOCKD=y
771CONFIG_LOCKD_V4=y
772CONFIG_NFS_COMMON=y
773CONFIG_SUNRPC=y
774# CONFIG_SUNRPC_BIND34 is not set
775# CONFIG_RPCSEC_GSS_KRB5 is not set
776# CONFIG_RPCSEC_GSS_SPKM3 is not set
777# CONFIG_SMB_FS is not set
778# CONFIG_CIFS is not set
779# CONFIG_NCP_FS is not set
780# CONFIG_CODA_FS is not set
781# CONFIG_AFS_FS is not set
782
783#
784# Partition Types
785#
786# CONFIG_PARTITION_ADVANCED is not set
787CONFIG_MSDOS_PARTITION=y
788
789#
790# Native Language Support
791#
792# CONFIG_NLS is not set
793
794#
795# Distributed Lock Manager
796#
797# CONFIG_DLM is not set
798
799#
800# Profiling support
801#
802# CONFIG_PROFILING is not set
803
804#
805# Kernel hacking
806#
807# CONFIG_PRINTK_TIME is not set
808CONFIG_ENABLE_MUST_CHECK=y
809# CONFIG_MAGIC_SYSRQ is not set
810# CONFIG_UNUSED_SYMBOLS is not set
811# CONFIG_DEBUG_FS is not set
812# CONFIG_HEADERS_CHECK is not set
813# CONFIG_DEBUG_KERNEL is not set
814# CONFIG_SLUB_DEBUG_ON is not set
815CONFIG_DEBUG_BUGVERBOSE=y
816CONFIG_FRAME_POINTER=y
817# CONFIG_DEBUG_USER is not set
818
819#
820# Security options
821#
822# CONFIG_KEYS is not set
823# CONFIG_SECURITY is not set
824# CONFIG_CRYPTO is not set
825
826#
827# Library routines
828#
829CONFIG_BITREVERSE=y
830# CONFIG_CRC_CCITT is not set
831# CONFIG_CRC16 is not set
832# CONFIG_CRC_ITU_T is not set
833CONFIG_CRC32=y
834# CONFIG_CRC7 is not set
835# CONFIG_LIBCRC32C is not set
836CONFIG_PLIST=y
837CONFIG_HAS_IOMEM=y
838CONFIG_HAS_IOPORT=y
839CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_osk_5912_defconfig b/arch/arm/configs/omap_osk_5912_defconfig
index d4ca5e6e4ff..b68e0144cab 100644
--- a/arch/arm/configs/omap_osk_5912_defconfig
+++ b/arch/arm/configs/omap_osk_5912_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.25-rc3 3# Linux kernel version: 2.6.24-rc3-omap1
4# Mon Mar 3 03:35:17 2008 4# Fri Nov 23 12:24:12 2007
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -21,7 +21,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y 22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_ZONE_DMA=y 24CONFIG_ZONE_DMA=y
26CONFIG_VECTORS_BASE=0xffff0000 25CONFIG_VECTORS_BASE=0xffff0000
27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -40,22 +39,17 @@ CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set 39# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set 40# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set 41# CONFIG_TASKSTATS is not set
42# CONFIG_USER_NS is not set
43# CONFIG_PID_NS is not set
43# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
44# CONFIG_IKCONFIG is not set 45# CONFIG_IKCONFIG is not set
45CONFIG_LOG_BUF_SHIFT=14 46CONFIG_LOG_BUF_SHIFT=14
46# CONFIG_CGROUPS is not set 47# CONFIG_CGROUPS is not set
47CONFIG_GROUP_SCHED=y
48CONFIG_FAIR_GROUP_SCHED=y 48CONFIG_FAIR_GROUP_SCHED=y
49# CONFIG_RT_GROUP_SCHED is not set 49CONFIG_FAIR_USER_SCHED=y
50CONFIG_USER_SCHED=y 50# CONFIG_FAIR_CGROUP_SCHED is not set
51# CONFIG_CGROUP_SCHED is not set 51CONFIG_SYSFS_DEPRECATED=y
52# CONFIG_SYSFS_DEPRECATED is not set
53# CONFIG_RELAY is not set 52# CONFIG_RELAY is not set
54CONFIG_NAMESPACES=y
55# CONFIG_UTS_NS is not set
56# CONFIG_IPC_NS is not set
57# CONFIG_USER_NS is not set
58# CONFIG_PID_NS is not set
59CONFIG_BLK_DEV_INITRD=y 53CONFIG_BLK_DEV_INITRD=y
60CONFIG_INITRAMFS_SOURCE="" 54CONFIG_INITRAMFS_SOURCE=""
61CONFIG_CC_OPTIMIZE_FOR_SIZE=y 55CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -69,26 +63,18 @@ CONFIG_HOTPLUG=y
69CONFIG_PRINTK=y 63CONFIG_PRINTK=y
70CONFIG_BUG=y 64CONFIG_BUG=y
71CONFIG_ELF_CORE=y 65CONFIG_ELF_CORE=y
72CONFIG_COMPAT_BRK=y
73CONFIG_BASE_FULL=y 66CONFIG_BASE_FULL=y
74CONFIG_FUTEX=y 67CONFIG_FUTEX=y
75CONFIG_ANON_INODES=y 68CONFIG_ANON_INODES=y
76CONFIG_EPOLL=y 69CONFIG_EPOLL=y
77CONFIG_SIGNALFD=y 70CONFIG_SIGNALFD=y
78CONFIG_TIMERFD=y
79CONFIG_EVENTFD=y 71CONFIG_EVENTFD=y
80CONFIG_SHMEM=y 72CONFIG_SHMEM=y
81CONFIG_VM_EVENT_COUNTERS=y 73CONFIG_VM_EVENT_COUNTERS=y
82CONFIG_SLAB=y 74CONFIG_SLUB_DEBUG=y
83# CONFIG_SLUB is not set 75# CONFIG_SLAB is not set
76CONFIG_SLUB=y
84# CONFIG_SLOB is not set 77# CONFIG_SLOB is not set
85# CONFIG_PROFILING is not set
86# CONFIG_MARKERS is not set
87CONFIG_HAVE_OPROFILE=y
88# CONFIG_KPROBES is not set
89CONFIG_HAVE_KPROBES=y
90CONFIG_PROC_PAGE_MONITOR=y
91CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set 79# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 80CONFIG_BASE_SMALL=0
@@ -116,8 +102,6 @@ CONFIG_IOSCHED_CFQ=y
116CONFIG_DEFAULT_CFQ=y 102CONFIG_DEFAULT_CFQ=y
117# CONFIG_DEFAULT_NOOP is not set 103# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="cfq" 104CONFIG_DEFAULT_IOSCHED="cfq"
119CONFIG_CLASSIC_RCU=y
120# CONFIG_PREEMPT_RCU is not set
121 105
122# 106#
123# System Type 107# System Type
@@ -146,7 +130,6 @@ CONFIG_CLASSIC_RCU=y
146# CONFIG_ARCH_KS8695 is not set 130# CONFIG_ARCH_KS8695 is not set
147# CONFIG_ARCH_NS9XXX is not set 131# CONFIG_ARCH_NS9XXX is not set
148# CONFIG_ARCH_MXC is not set 132# CONFIG_ARCH_MXC is not set
149# CONFIG_ARCH_ORION is not set
150# CONFIG_ARCH_PNX4008 is not set 133# CONFIG_ARCH_PNX4008 is not set
151# CONFIG_ARCH_PXA is not set 134# CONFIG_ARCH_PXA is not set
152# CONFIG_ARCH_RPC is not set 135# CONFIG_ARCH_RPC is not set
@@ -156,7 +139,6 @@ CONFIG_CLASSIC_RCU=y
156# CONFIG_ARCH_LH7A40X is not set 139# CONFIG_ARCH_LH7A40X is not set
157# CONFIG_ARCH_DAVINCI is not set 140# CONFIG_ARCH_DAVINCI is not set
158CONFIG_ARCH_OMAP=y 141CONFIG_ARCH_OMAP=y
159# CONFIG_ARCH_MSM7X00A is not set
160 142
161# 143#
162# TI OMAP Implementations 144# TI OMAP Implementations
@@ -164,16 +146,22 @@ CONFIG_ARCH_OMAP=y
164CONFIG_ARCH_OMAP_OTG=y 146CONFIG_ARCH_OMAP_OTG=y
165CONFIG_ARCH_OMAP1=y 147CONFIG_ARCH_OMAP1=y
166# CONFIG_ARCH_OMAP2 is not set 148# CONFIG_ARCH_OMAP2 is not set
149# CONFIG_ARCH_OMAP3 is not set
167 150
168# 151#
169# OMAP Feature Selections 152# OMAP Feature Selections
170# 153#
154CONFIG_OMAP_DEBUG_SRAM_PATCH=y
171CONFIG_OMAP_RESET_CLOCKS=y 155CONFIG_OMAP_RESET_CLOCKS=y
156# CONFIG_OMAP_BOOT_TAG is not set
157# CONFIG_OMAP_GPIO_SWITCH is not set
172CONFIG_OMAP_MUX=y 158CONFIG_OMAP_MUX=y
173# CONFIG_OMAP_MUX_DEBUG is not set 159# CONFIG_OMAP_MUX_DEBUG is not set
174CONFIG_OMAP_MUX_WARNINGS=y 160CONFIG_OMAP_MUX_WARNINGS=y
161# CONFIG_OMAP_STI is not set
175CONFIG_OMAP_MCBSP=y 162CONFIG_OMAP_MCBSP=y
176# CONFIG_OMAP_MMU_FWK is not set 163# CONFIG_OMAP_MMU_FWK is not set
164# CONFIG_OMAP_MBOX_FWK is not set
177# CONFIG_OMAP_MPU_TIMER is not set 165# CONFIG_OMAP_MPU_TIMER is not set
178CONFIG_OMAP_32K_TIMER=y 166CONFIG_OMAP_32K_TIMER=y
179CONFIG_OMAP_32K_TIMER_HZ=128 167CONFIG_OMAP_32K_TIMER_HZ=128
@@ -182,6 +170,7 @@ CONFIG_OMAP_LL_DEBUG_UART1=y
182# CONFIG_OMAP_LL_DEBUG_UART2 is not set 170# CONFIG_OMAP_LL_DEBUG_UART2 is not set
183# CONFIG_OMAP_LL_DEBUG_UART3 is not set 171# CONFIG_OMAP_LL_DEBUG_UART3 is not set
184CONFIG_OMAP_SERIAL_WAKE=y 172CONFIG_OMAP_SERIAL_WAKE=y
173# CONFIG_OMAP_DSP is not set
185 174
186# 175#
187# OMAP Core Type 176# OMAP Core Type
@@ -193,13 +182,13 @@ CONFIG_ARCH_OMAP16XX=y
193# 182#
194# OMAP Board Type 183# OMAP Board Type
195# 184#
196CONFIG_MACH_OMAP_INNOVATOR=y 185# CONFIG_MACH_OMAP_INNOVATOR is not set
197CONFIG_MACH_OMAP_H2=y 186# CONFIG_MACH_OMAP_H2 is not set
198CONFIG_MACH_OMAP_H3=y 187# CONFIG_MACH_OMAP_H3 is not set
199CONFIG_MACH_OMAP_OSK=y 188CONFIG_MACH_OMAP_OSK=y
200# CONFIG_OMAP_OSK_MISTRAL is not set 189# CONFIG_OMAP_OSK_MISTRAL is not set
201CONFIG_MACH_NOKIA770=y 190# CONFIG_MACH_NOKIA770 is not set
202CONFIG_MACH_OMAP_GENERIC=y 191# CONFIG_MACH_OMAP_GENERIC is not set
203 192
204# 193#
205# OMAP CPU Speed 194# OMAP CPU Speed
@@ -227,6 +216,7 @@ CONFIG_CPU_32=y
227CONFIG_CPU_ARM926T=y 216CONFIG_CPU_ARM926T=y
228CONFIG_CPU_32v5=y 217CONFIG_CPU_32v5=y
229CONFIG_CPU_ABRT_EV5TJ=y 218CONFIG_CPU_ABRT_EV5TJ=y
219CONFIG_CPU_PABRT_NOIFAR=y
230CONFIG_CPU_CACHE_VIVT=y 220CONFIG_CPU_CACHE_VIVT=y
231CONFIG_CPU_COPY_V4WB=y 221CONFIG_CPU_COPY_V4WB=y
232CONFIG_CPU_TLB_V4WBI=y 222CONFIG_CPU_TLB_V4WBI=y
@@ -264,12 +254,11 @@ CONFIG_OMAP_CF=y
264# 254#
265CONFIG_TICK_ONESHOT=y 255CONFIG_TICK_ONESHOT=y
266CONFIG_NO_HZ=y 256CONFIG_NO_HZ=y
267CONFIG_HIGH_RES_TIMERS=y 257# CONFIG_HIGH_RES_TIMERS is not set
268CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 258CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
269# CONFIG_PREEMPT is not set 259# CONFIG_PREEMPT is not set
270CONFIG_HZ=128 260CONFIG_HZ=128
271CONFIG_AEABI=y 261# CONFIG_AEABI is not set
272CONFIG_OABI_COMPAT=y
273# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 262# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
274CONFIG_SELECT_MEMORY_MODEL=y 263CONFIG_SELECT_MEMORY_MODEL=y
275CONFIG_FLATMEM_MANUAL=y 264CONFIG_FLATMEM_MANUAL=y
@@ -295,7 +284,6 @@ CONFIG_ZBOOT_ROM_BSS=0x0
295CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw" 284CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw"
296# CONFIG_XIP_KERNEL is not set 285# CONFIG_XIP_KERNEL is not set
297# CONFIG_KEXEC is not set 286# CONFIG_KEXEC is not set
298# CONFIG_ATAGS_PROC is not set
299 287
300# 288#
301# CPU Frequency scaling 289# CPU Frequency scaling
@@ -320,6 +308,7 @@ CONFIG_FPE_NWFPE=y
320CONFIG_BINFMT_ELF=y 308CONFIG_BINFMT_ELF=y
321# CONFIG_BINFMT_AOUT is not set 309# CONFIG_BINFMT_AOUT is not set
322# CONFIG_BINFMT_MISC is not set 310# CONFIG_BINFMT_MISC is not set
311# CONFIG_ARTHUR is not set
323 312
324# 313#
325# Power management options 314# Power management options
@@ -328,10 +317,9 @@ CONFIG_PM=y
328# CONFIG_PM_LEGACY is not set 317# CONFIG_PM_LEGACY is not set
329# CONFIG_PM_DEBUG is not set 318# CONFIG_PM_DEBUG is not set
330CONFIG_PM_SLEEP=y 319CONFIG_PM_SLEEP=y
320CONFIG_SUSPEND_UP_POSSIBLE=y
331CONFIG_SUSPEND=y 321CONFIG_SUSPEND=y
332CONFIG_SUSPEND_FREEZER=y
333# CONFIG_APM_EMULATION is not set 322# CONFIG_APM_EMULATION is not set
334CONFIG_ARCH_SUSPEND_POSSIBLE=y
335 323
336# 324#
337# Networking 325# Networking
@@ -348,7 +336,6 @@ CONFIG_XFRM=y
348# CONFIG_XFRM_USER is not set 336# CONFIG_XFRM_USER is not set
349# CONFIG_XFRM_SUB_POLICY is not set 337# CONFIG_XFRM_SUB_POLICY is not set
350# CONFIG_XFRM_MIGRATE is not set 338# CONFIG_XFRM_MIGRATE is not set
351# CONFIG_XFRM_STATISTICS is not set
352# CONFIG_NET_KEY is not set 339# CONFIG_NET_KEY is not set
353CONFIG_INET=y 340CONFIG_INET=y
354CONFIG_IP_MULTICAST=y 341CONFIG_IP_MULTICAST=y
@@ -404,7 +391,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
404# 391#
405# CONFIG_NET_PKTGEN is not set 392# CONFIG_NET_PKTGEN is not set
406# CONFIG_HAMRADIO is not set 393# CONFIG_HAMRADIO is not set
407# CONFIG_CAN is not set
408# CONFIG_IRDA is not set 394# CONFIG_IRDA is not set
409# CONFIG_BT is not set 395# CONFIG_BT is not set
410# CONFIG_AF_RXRPC is not set 396# CONFIG_AF_RXRPC is not set
@@ -517,13 +503,11 @@ CONFIG_BLK_DEV_LOOP=y
517CONFIG_BLK_DEV_RAM=y 503CONFIG_BLK_DEV_RAM=y
518CONFIG_BLK_DEV_RAM_COUNT=16 504CONFIG_BLK_DEV_RAM_COUNT=16
519CONFIG_BLK_DEV_RAM_SIZE=8192 505CONFIG_BLK_DEV_RAM_SIZE=8192
520# CONFIG_BLK_DEV_XIP is not set 506CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
521# CONFIG_CDROM_PKTCDVD is not set 507# CONFIG_CDROM_PKTCDVD is not set
522# CONFIG_ATA_OVER_ETH is not set 508# CONFIG_ATA_OVER_ETH is not set
523CONFIG_MISC_DEVICES=y 509CONFIG_MISC_DEVICES=y
524# CONFIG_EEPROM_93CX6 is not set 510# CONFIG_EEPROM_93CX6 is not set
525# CONFIG_ENCLOSURE_SERVICES is not set
526CONFIG_HAVE_IDE=y
527CONFIG_IDE=m 511CONFIG_IDE=m
528CONFIG_BLK_DEV_IDE=m 512CONFIG_BLK_DEV_IDE=m
529 513
@@ -545,6 +529,7 @@ CONFIG_IDE_PROC_FS=y
545# 529#
546# CONFIG_IDE_GENERIC is not set 530# CONFIG_IDE_GENERIC is not set
547# CONFIG_BLK_DEV_PLATFORM is not set 531# CONFIG_BLK_DEV_PLATFORM is not set
532# CONFIG_IDE_ARM is not set
548# CONFIG_BLK_DEV_IDEDMA is not set 533# CONFIG_BLK_DEV_IDEDMA is not set
549CONFIG_IDE_ARCH_OBSOLETE_INIT=y 534CONFIG_IDE_ARCH_OBSOLETE_INIT=y
550# CONFIG_BLK_DEV_HD is not set 535# CONFIG_BLK_DEV_HD is not set
@@ -578,7 +563,6 @@ CONFIG_SMC91X=y
578# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 563# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
579# CONFIG_B44 is not set 564# CONFIG_B44 is not set
580CONFIG_NETDEV_1000=y 565CONFIG_NETDEV_1000=y
581# CONFIG_E1000E_ENABLED is not set
582CONFIG_NETDEV_10000=y 566CONFIG_NETDEV_10000=y
583 567
584# 568#
@@ -600,6 +584,7 @@ CONFIG_PPP_MULTILINK=y
600# CONFIG_PPPOL2TP is not set 584# CONFIG_PPPOL2TP is not set
601# CONFIG_SLIP is not set 585# CONFIG_SLIP is not set
602CONFIG_SLHC=y 586CONFIG_SLHC=y
587# CONFIG_SHAPER is not set
603# CONFIG_NETCONSOLE is not set 588# CONFIG_NETCONSOLE is not set
604# CONFIG_NETPOLL is not set 589# CONFIG_NETPOLL is not set
605# CONFIG_NET_POLL_CONTROLLER is not set 590# CONFIG_NET_POLL_CONTROLLER is not set
@@ -696,7 +681,6 @@ CONFIG_HW_RANDOM_OMAP=m
696# CONFIG_SYNCLINK_CS is not set 681# CONFIG_SYNCLINK_CS is not set
697# CONFIG_CARDMAN_4000 is not set 682# CONFIG_CARDMAN_4000 is not set
698# CONFIG_CARDMAN_4040 is not set 683# CONFIG_CARDMAN_4040 is not set
699# CONFIG_IPWIRELESS is not set
700# CONFIG_RAW_DRIVER is not set 684# CONFIG_RAW_DRIVER is not set
701# CONFIG_TCG_TPM is not set 685# CONFIG_TCG_TPM is not set
702CONFIG_I2C=y 686CONFIG_I2C=y
@@ -724,13 +708,17 @@ CONFIG_I2C_OMAP=y
724# 708#
725# Miscellaneous I2C Chip support 709# Miscellaneous I2C Chip support
726# 710#
711# CONFIG_SENSORS_DS1337 is not set
712# CONFIG_SENSORS_DS1374 is not set
727# CONFIG_DS1682 is not set 713# CONFIG_DS1682 is not set
728# CONFIG_SENSORS_EEPROM is not set 714# CONFIG_SENSORS_EEPROM is not set
729# CONFIG_SENSORS_PCF8574 is not set 715# CONFIG_SENSORS_PCF8574 is not set
730# CONFIG_PCF8575 is not set 716# CONFIG_SENSORS_PCA9539 is not set
731# CONFIG_SENSORS_PCF8591 is not set 717# CONFIG_SENSORS_PCF8591 is not set
732# CONFIG_ISP1301_OMAP is not set 718# CONFIG_ISP1301_OMAP is not set
733CONFIG_TPS65010=y 719CONFIG_TPS65010=y
720# CONFIG_SENSORS_TLV320AIC23 is not set
721# CONFIG_GPIOEXPANDER_OMAP is not set
734# CONFIG_SENSORS_MAX6875 is not set 722# CONFIG_SENSORS_MAX6875 is not set
735# CONFIG_SENSORS_TSL2550 is not set 723# CONFIG_SENSORS_TSL2550 is not set
736# CONFIG_I2C_DEBUG_CORE is not set 724# CONFIG_I2C_DEBUG_CORE is not set
@@ -755,7 +743,6 @@ CONFIG_HWMON=y
755# CONFIG_SENSORS_ADM1031 is not set 743# CONFIG_SENSORS_ADM1031 is not set
756# CONFIG_SENSORS_ADM9240 is not set 744# CONFIG_SENSORS_ADM9240 is not set
757# CONFIG_SENSORS_ADT7470 is not set 745# CONFIG_SENSORS_ADT7470 is not set
758# CONFIG_SENSORS_ADT7473 is not set
759# CONFIG_SENSORS_ATXP1 is not set 746# CONFIG_SENSORS_ATXP1 is not set
760# CONFIG_SENSORS_DS1621 is not set 747# CONFIG_SENSORS_DS1621 is not set
761# CONFIG_SENSORS_F71805F is not set 748# CONFIG_SENSORS_F71805F is not set
@@ -783,7 +770,6 @@ CONFIG_HWMON=y
783# CONFIG_SENSORS_SMSC47M1 is not set 770# CONFIG_SENSORS_SMSC47M1 is not set
784# CONFIG_SENSORS_SMSC47M192 is not set 771# CONFIG_SENSORS_SMSC47M192 is not set
785# CONFIG_SENSORS_SMSC47B397 is not set 772# CONFIG_SENSORS_SMSC47B397 is not set
786# CONFIG_SENSORS_ADS7828 is not set
787# CONFIG_SENSORS_THMC50 is not set 773# CONFIG_SENSORS_THMC50 is not set
788# CONFIG_SENSORS_VT1211 is not set 774# CONFIG_SENSORS_VT1211 is not set
789# CONFIG_SENSORS_W83781D is not set 775# CONFIG_SENSORS_W83781D is not set
@@ -791,7 +777,6 @@ CONFIG_HWMON=y
791# CONFIG_SENSORS_W83792D is not set 777# CONFIG_SENSORS_W83792D is not set
792# CONFIG_SENSORS_W83793 is not set 778# CONFIG_SENSORS_W83793 is not set
793# CONFIG_SENSORS_W83L785TS is not set 779# CONFIG_SENSORS_W83L785TS is not set
794# CONFIG_SENSORS_W83L786NG is not set
795# CONFIG_SENSORS_W83627HF is not set 780# CONFIG_SENSORS_W83627HF is not set
796# CONFIG_SENSORS_W83627EHF is not set 781# CONFIG_SENSORS_W83627EHF is not set
797# CONFIG_HWMON_DEBUG_CHIP is not set 782# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -807,7 +792,6 @@ CONFIG_SSB_POSSIBLE=y
807# Multifunction device drivers 792# Multifunction device drivers
808# 793#
809# CONFIG_MFD_SM501 is not set 794# CONFIG_MFD_SM501 is not set
810# CONFIG_MFD_ASIC3 is not set
811 795
812# 796#
813# Multimedia devices 797# Multimedia devices
@@ -822,11 +806,11 @@ CONFIG_DAB=y
822# CONFIG_VGASTATE is not set 806# CONFIG_VGASTATE is not set
823CONFIG_VIDEO_OUTPUT_CONTROL=m 807CONFIG_VIDEO_OUTPUT_CONTROL=m
824CONFIG_FB=y 808CONFIG_FB=y
825CONFIG_FIRMWARE_EDID=y 809# CONFIG_FIRMWARE_EDID is not set
826# CONFIG_FB_DDC is not set 810# CONFIG_FB_DDC is not set
827# CONFIG_FB_CFB_FILLRECT is not set 811CONFIG_FB_CFB_FILLRECT=y
828# CONFIG_FB_CFB_COPYAREA is not set 812CONFIG_FB_CFB_COPYAREA=y
829# CONFIG_FB_CFB_IMAGEBLIT is not set 813CONFIG_FB_CFB_IMAGEBLIT=y
830# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 814# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
831# CONFIG_FB_SYS_FILLRECT is not set 815# CONFIG_FB_SYS_FILLRECT is not set
832# CONFIG_FB_SYS_COPYAREA is not set 816# CONFIG_FB_SYS_COPYAREA is not set
@@ -844,7 +828,11 @@ CONFIG_FB_MODE_HELPERS=y
844# 828#
845# CONFIG_FB_S1D13XXX is not set 829# CONFIG_FB_S1D13XXX is not set
846# CONFIG_FB_VIRTUAL is not set 830# CONFIG_FB_VIRTUAL is not set
847# CONFIG_FB_OMAP is not set 831CONFIG_FB_OMAP=y
832# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
833# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
834CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
835# CONFIG_FB_OMAP_DMA_TUNE is not set
848# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 836# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
849 837
850# 838#
@@ -891,8 +879,16 @@ CONFIG_USB_ARCH_HAS_OHCI=y
891# CONFIG_USB is not set 879# CONFIG_USB is not set
892 880
893# 881#
882# Enable Host or Gadget support to see Inventra options
883#
884
885#
894# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
895# 887#
888
889#
890# USB Gadget Support
891#
896# CONFIG_USB_GADGET is not set 892# CONFIG_USB_GADGET is not set
897# CONFIG_MMC is not set 893# CONFIG_MMC is not set
898# CONFIG_NEW_LEDS is not set 894# CONFIG_NEW_LEDS is not set
@@ -900,6 +896,11 @@ CONFIG_RTC_LIB=y
900# CONFIG_RTC_CLASS is not set 896# CONFIG_RTC_CLASS is not set
901 897
902# 898#
899# CBUS support
900#
901# CONFIG_CBUS is not set
902
903#
903# File systems 904# File systems
904# 905#
905CONFIG_EXT2_FS=y 906CONFIG_EXT2_FS=y
@@ -913,10 +914,12 @@ CONFIG_EXT2_FS=y
913# CONFIG_XFS_FS is not set 914# CONFIG_XFS_FS is not set
914# CONFIG_GFS2_FS is not set 915# CONFIG_GFS2_FS is not set
915# CONFIG_OCFS2_FS is not set 916# CONFIG_OCFS2_FS is not set
916CONFIG_DNOTIFY=y 917# CONFIG_MINIX_FS is not set
918# CONFIG_ROMFS_FS is not set
917CONFIG_INOTIFY=y 919CONFIG_INOTIFY=y
918CONFIG_INOTIFY_USER=y 920CONFIG_INOTIFY_USER=y
919# CONFIG_QUOTA is not set 921# CONFIG_QUOTA is not set
922CONFIG_DNOTIFY=y
920CONFIG_AUTOFS_FS=y 923CONFIG_AUTOFS_FS=y
921CONFIG_AUTOFS4_FS=y 924CONFIG_AUTOFS4_FS=y
922# CONFIG_FUSE_FS is not set 925# CONFIG_FUSE_FS is not set
@@ -970,10 +973,8 @@ CONFIG_JFFS2_RTIME=y
970# CONFIG_JFFS2_RUBIN is not set 973# CONFIG_JFFS2_RUBIN is not set
971# CONFIG_CRAMFS is not set 974# CONFIG_CRAMFS is not set
972# CONFIG_VXFS_FS is not set 975# CONFIG_VXFS_FS is not set
973# CONFIG_MINIX_FS is not set
974# CONFIG_HPFS_FS is not set 976# CONFIG_HPFS_FS is not set
975# CONFIG_QNX4FS_FS is not set 977# CONFIG_QNX4FS_FS is not set
976# CONFIG_ROMFS_FS is not set
977# CONFIG_SYSV_FS is not set 978# CONFIG_SYSV_FS is not set
978# CONFIG_UFS_FS is not set 979# CONFIG_UFS_FS is not set
979CONFIG_NETWORK_FILESYSTEMS=y 980CONFIG_NETWORK_FILESYSTEMS=y
@@ -1043,6 +1044,9 @@ CONFIG_NLS_ISO8859_1=m
1043# CONFIG_NLS_KOI8_U is not set 1044# CONFIG_NLS_KOI8_U is not set
1044# CONFIG_NLS_UTF8 is not set 1045# CONFIG_NLS_UTF8 is not set
1045# CONFIG_DLM is not set 1046# CONFIG_DLM is not set
1047CONFIG_INSTRUMENTATION=y
1048# CONFIG_PROFILING is not set
1049# CONFIG_MARKERS is not set
1046 1050
1047# 1051#
1048# Kernel hacking 1052# Kernel hacking
@@ -1055,6 +1059,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1055# CONFIG_DEBUG_FS is not set 1059# CONFIG_DEBUG_FS is not set
1056# CONFIG_HEADERS_CHECK is not set 1060# CONFIG_HEADERS_CHECK is not set
1057# CONFIG_DEBUG_KERNEL is not set 1061# CONFIG_DEBUG_KERNEL is not set
1062# CONFIG_SLUB_DEBUG_ON is not set
1058CONFIG_DEBUG_BUGVERBOSE=y 1063CONFIG_DEBUG_BUGVERBOSE=y
1059CONFIG_FRAME_POINTER=y 1064CONFIG_FRAME_POINTER=y
1060# CONFIG_SAMPLES is not set 1065# CONFIG_SAMPLES is not set
@@ -1066,51 +1071,7 @@ CONFIG_FRAME_POINTER=y
1066# CONFIG_KEYS is not set 1071# CONFIG_KEYS is not set
1067# CONFIG_SECURITY is not set 1072# CONFIG_SECURITY is not set
1068# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1073# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1069CONFIG_CRYPTO=y 1074# CONFIG_CRYPTO is not set
1070# CONFIG_CRYPTO_SEQIV is not set
1071# CONFIG_CRYPTO_MANAGER is not set
1072# CONFIG_CRYPTO_HMAC is not set
1073# CONFIG_CRYPTO_XCBC is not set
1074# CONFIG_CRYPTO_NULL is not set
1075# CONFIG_CRYPTO_MD4 is not set
1076# CONFIG_CRYPTO_MD5 is not set
1077# CONFIG_CRYPTO_SHA1 is not set
1078# CONFIG_CRYPTO_SHA256 is not set
1079# CONFIG_CRYPTO_SHA512 is not set
1080# CONFIG_CRYPTO_WP512 is not set
1081# CONFIG_CRYPTO_TGR192 is not set
1082# CONFIG_CRYPTO_GF128MUL is not set
1083# CONFIG_CRYPTO_ECB is not set
1084# CONFIG_CRYPTO_CBC is not set
1085# CONFIG_CRYPTO_PCBC is not set
1086# CONFIG_CRYPTO_LRW is not set
1087# CONFIG_CRYPTO_XTS is not set
1088# CONFIG_CRYPTO_CTR is not set
1089# CONFIG_CRYPTO_GCM is not set
1090# CONFIG_CRYPTO_CCM is not set
1091# CONFIG_CRYPTO_CRYPTD is not set
1092# CONFIG_CRYPTO_DES is not set
1093# CONFIG_CRYPTO_FCRYPT is not set
1094# CONFIG_CRYPTO_BLOWFISH is not set
1095# CONFIG_CRYPTO_TWOFISH is not set
1096# CONFIG_CRYPTO_SERPENT is not set
1097# CONFIG_CRYPTO_AES is not set
1098# CONFIG_CRYPTO_CAST5 is not set
1099# CONFIG_CRYPTO_CAST6 is not set
1100# CONFIG_CRYPTO_TEA is not set
1101# CONFIG_CRYPTO_ARC4 is not set
1102# CONFIG_CRYPTO_KHAZAD is not set
1103# CONFIG_CRYPTO_ANUBIS is not set
1104# CONFIG_CRYPTO_SEED is not set
1105# CONFIG_CRYPTO_SALSA20 is not set
1106# CONFIG_CRYPTO_DEFLATE is not set
1107# CONFIG_CRYPTO_MICHAEL_MIC is not set
1108# CONFIG_CRYPTO_CRC32C is not set
1109# CONFIG_CRYPTO_CAMELLIA is not set
1110# CONFIG_CRYPTO_TEST is not set
1111# CONFIG_CRYPTO_AUTHENC is not set
1112# CONFIG_CRYPTO_LZO is not set
1113CONFIG_CRYPTO_HW=y
1114 1075
1115# 1076#
1116# Library routines 1077# Library routines
diff --git a/arch/arm/configs/omap_perseus2_730_defconfig b/arch/arm/configs/omap_perseus2_730_defconfig
new file mode 100644
index 00000000000..b94800c0e00
--- /dev/null
+++ b/arch/arm/configs/omap_perseus2_730_defconfig
@@ -0,0 +1,928 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 11:45:12 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36CONFIG_LOCALVERSION_AUTO=y
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47CONFIG_SYSFS_DEPRECATED=y
48# CONFIG_RELAY is not set
49CONFIG_BLK_DEV_INITRD=y
50CONFIG_INITRAMFS_SOURCE=""
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53# CONFIG_EMBEDDED is not set
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y
59CONFIG_PRINTK=y
60CONFIG_BUG=y
61CONFIG_ELF_CORE=y
62CONFIG_BASE_FULL=y
63CONFIG_FUTEX=y
64CONFIG_ANON_INODES=y
65CONFIG_EPOLL=y
66CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y
69CONFIG_SHMEM=y
70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y
72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set
74CONFIG_RT_MUTEXES=y
75# CONFIG_TINY_SHMEM is not set
76CONFIG_BASE_SMALL=0
77CONFIG_MODULES=y
78CONFIG_MODULE_UNLOAD=y
79# CONFIG_MODULE_FORCE_UNLOAD is not set
80# CONFIG_MODVERSIONS is not set
81# CONFIG_MODULE_SRCVERSION_ALL is not set
82CONFIG_KMOD=y
83CONFIG_BLOCK=y
84# CONFIG_LBD is not set
85# CONFIG_BLK_DEV_IO_TRACE is not set
86# CONFIG_LSF is not set
87# CONFIG_BLK_DEV_BSG is not set
88
89#
90# IO Schedulers
91#
92CONFIG_IOSCHED_NOOP=y
93CONFIG_IOSCHED_AS=y
94CONFIG_IOSCHED_DEADLINE=y
95CONFIG_IOSCHED_CFQ=y
96# CONFIG_DEFAULT_AS is not set
97# CONFIG_DEFAULT_DEADLINE is not set
98CONFIG_DEFAULT_CFQ=y
99# CONFIG_DEFAULT_NOOP is not set
100CONFIG_DEFAULT_IOSCHED="cfq"
101
102#
103# System Type
104#
105# CONFIG_ARCH_AAEC2000 is not set
106# CONFIG_ARCH_INTEGRATOR is not set
107# CONFIG_ARCH_REALVIEW is not set
108# CONFIG_ARCH_VERSATILE is not set
109# CONFIG_ARCH_AT91 is not set
110# CONFIG_ARCH_CLPS7500 is not set
111# CONFIG_ARCH_CLPS711X is not set
112# CONFIG_ARCH_CO285 is not set
113# CONFIG_ARCH_EBSA110 is not set
114# CONFIG_ARCH_EP93XX is not set
115# CONFIG_ARCH_FOOTBRIDGE is not set
116# CONFIG_ARCH_NETX is not set
117# CONFIG_ARCH_H720X is not set
118# CONFIG_ARCH_IMX is not set
119# CONFIG_ARCH_IOP13XX is not set
120# CONFIG_ARCH_IOP32X is not set
121# CONFIG_ARCH_IOP33X is not set
122# CONFIG_ARCH_IXP23XX is not set
123# CONFIG_ARCH_IXP2000 is not set
124# CONFIG_ARCH_IXP4XX is not set
125# CONFIG_ARCH_L7200 is not set
126# CONFIG_ARCH_KS8695 is not set
127# CONFIG_ARCH_NS9XXX is not set
128# CONFIG_ARCH_MXC is not set
129# CONFIG_ARCH_PNX4008 is not set
130# CONFIG_ARCH_PXA is not set
131# CONFIG_ARCH_RPC is not set
132# CONFIG_ARCH_SA1100 is not set
133# CONFIG_ARCH_S3C2410 is not set
134# CONFIG_ARCH_SHARK is not set
135# CONFIG_ARCH_LH7A40X is not set
136# CONFIG_ARCH_DAVINCI is not set
137CONFIG_ARCH_OMAP=y
138
139#
140# TI OMAP Implementations
141#
142CONFIG_ARCH_OMAP_OTG=y
143CONFIG_ARCH_OMAP1=y
144# CONFIG_ARCH_OMAP2 is not set
145# CONFIG_ARCH_OMAP3 is not set
146
147#
148# OMAP Feature Selections
149#
150# CONFIG_OMAP_RESET_CLOCKS is not set
151# CONFIG_OMAP_BOOT_TAG is not set
152# CONFIG_OMAP_GPIO_SWITCH is not set
153CONFIG_OMAP_MUX=y
154# CONFIG_OMAP_MUX_DEBUG is not set
155CONFIG_OMAP_MUX_WARNINGS=y
156CONFIG_OMAP_MCBSP=y
157# CONFIG_OMAP_MMU_FWK is not set
158# CONFIG_OMAP_MBOX_FWK is not set
159CONFIG_OMAP_MPU_TIMER=y
160# CONFIG_OMAP_32K_TIMER is not set
161CONFIG_OMAP_LL_DEBUG_UART1=y
162# CONFIG_OMAP_LL_DEBUG_UART2 is not set
163# CONFIG_OMAP_LL_DEBUG_UART3 is not set
164CONFIG_OMAP_SERIAL_WAKE=y
165
166#
167# OMAP Core Type
168#
169CONFIG_ARCH_OMAP730=y
170# CONFIG_ARCH_OMAP15XX is not set
171# CONFIG_ARCH_OMAP16XX is not set
172
173#
174# OMAP Board Type
175#
176CONFIG_MACH_OMAP_PERSEUS2=y
177# CONFIG_MACH_OMAP_FSAMPLE is not set
178
179#
180# OMAP CPU Speed
181#
182# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
183# CONFIG_OMAP_ARM_195MHZ is not set
184CONFIG_OMAP_ARM_182MHZ=y
185# CONFIG_OMAP_ARM_168MHZ is not set
186# CONFIG_OMAP_ARM_120MHZ is not set
187# CONFIG_OMAP_ARM_60MHZ is not set
188# CONFIG_OMAP_ARM_30MHZ is not set
189# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
190
191#
192# Boot options
193#
194
195#
196# Power management
197#
198
199#
200# Processor Type
201#
202CONFIG_CPU_32=y
203CONFIG_CPU_ARM926T=y
204CONFIG_CPU_32v5=y
205CONFIG_CPU_ABRT_EV5TJ=y
206CONFIG_CPU_PABRT_NOIFAR=y
207CONFIG_CPU_CACHE_VIVT=y
208CONFIG_CPU_COPY_V4WB=y
209CONFIG_CPU_TLB_V4WBI=y
210CONFIG_CPU_CP15=y
211CONFIG_CPU_CP15_MMU=y
212
213#
214# Processor Features
215#
216# CONFIG_ARM_THUMB is not set
217# CONFIG_CPU_ICACHE_DISABLE is not set
218# CONFIG_CPU_DCACHE_DISABLE is not set
219# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
220# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
221# CONFIG_OUTER_CACHE is not set
222
223#
224# Bus support
225#
226# CONFIG_PCI_SYSCALL is not set
227# CONFIG_ARCH_SUPPORTS_MSI is not set
228
229#
230# PCCARD (PCMCIA/CardBus) support
231#
232# CONFIG_PCCARD is not set
233
234#
235# Kernel Features
236#
237# CONFIG_TICK_ONESHOT is not set
238# CONFIG_NO_HZ is not set
239# CONFIG_HIGH_RES_TIMERS is not set
240CONFIG_PREEMPT=y
241CONFIG_HZ=100
242# CONFIG_AEABI is not set
243# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
244CONFIG_SELECT_MEMORY_MODEL=y
245CONFIG_FLATMEM_MANUAL=y
246# CONFIG_DISCONTIGMEM_MANUAL is not set
247# CONFIG_SPARSEMEM_MANUAL is not set
248CONFIG_FLATMEM=y
249CONFIG_FLAT_NODE_MEM_MAP=y
250# CONFIG_SPARSEMEM_STATIC is not set
251CONFIG_SPLIT_PTLOCK_CPUS=4096
252# CONFIG_RESOURCES_64BIT is not set
253CONFIG_ZONE_DMA_FLAG=1
254CONFIG_BOUNCE=y
255CONFIG_VIRT_TO_BUS=y
256CONFIG_LEDS=y
257CONFIG_LEDS_CPU=y
258CONFIG_ALIGNMENT_TRAP=y
259
260#
261# Boot options
262#
263CONFIG_ZBOOT_ROM_TEXT=0x0
264CONFIG_ZBOOT_ROM_BSS=0x0
265CONFIG_CMDLINE="mem=32M console=ttyS0,115200 ip=dhcp"
266# CONFIG_XIP_KERNEL is not set
267# CONFIG_KEXEC is not set
268
269#
270# CPU Frequency scaling
271#
272# CONFIG_CPU_FREQ is not set
273
274#
275# Floating point emulation
276#
277
278#
279# At least one emulation must be selected
280#
281CONFIG_FPE_NWFPE=y
282# CONFIG_FPE_NWFPE_XP is not set
283# CONFIG_FPE_FASTFPE is not set
284# CONFIG_VFP is not set
285
286#
287# Userspace binary formats
288#
289CONFIG_BINFMT_ELF=y
290# CONFIG_BINFMT_AOUT is not set
291# CONFIG_BINFMT_MISC is not set
292# CONFIG_ARTHUR is not set
293
294#
295# Power management options
296#
297CONFIG_PM=y
298# CONFIG_PM_LEGACY is not set
299# CONFIG_PM_DEBUG is not set
300CONFIG_PM_SLEEP=y
301CONFIG_SUSPEND_UP_POSSIBLE=y
302CONFIG_SUSPEND=y
303# CONFIG_APM_EMULATION is not set
304
305#
306# Networking
307#
308CONFIG_NET=y
309
310#
311# Networking options
312#
313CONFIG_PACKET=y
314# CONFIG_PACKET_MMAP is not set
315CONFIG_UNIX=y
316CONFIG_XFRM=y
317# CONFIG_XFRM_USER is not set
318# CONFIG_XFRM_SUB_POLICY is not set
319# CONFIG_XFRM_MIGRATE is not set
320# CONFIG_NET_KEY is not set
321CONFIG_INET=y
322CONFIG_IP_MULTICAST=y
323# CONFIG_IP_ADVANCED_ROUTER is not set
324CONFIG_IP_FIB_HASH=y
325CONFIG_IP_PNP=y
326CONFIG_IP_PNP_DHCP=y
327CONFIG_IP_PNP_BOOTP=y
328# CONFIG_IP_PNP_RARP is not set
329# CONFIG_NET_IPIP is not set
330# CONFIG_NET_IPGRE is not set
331# CONFIG_IP_MROUTE is not set
332# CONFIG_ARPD is not set
333# CONFIG_SYN_COOKIES is not set
334# CONFIG_INET_AH is not set
335# CONFIG_INET_ESP is not set
336# CONFIG_INET_IPCOMP is not set
337# CONFIG_INET_XFRM_TUNNEL is not set
338# CONFIG_INET_TUNNEL is not set
339CONFIG_INET_XFRM_MODE_TRANSPORT=y
340CONFIG_INET_XFRM_MODE_TUNNEL=y
341CONFIG_INET_XFRM_MODE_BEET=y
342CONFIG_INET_DIAG=y
343CONFIG_INET_TCP_DIAG=y
344# CONFIG_TCP_CONG_ADVANCED is not set
345CONFIG_TCP_CONG_CUBIC=y
346CONFIG_DEFAULT_TCP_CONG="cubic"
347# CONFIG_TCP_MD5SIG is not set
348# CONFIG_IPV6 is not set
349# CONFIG_INET6_XFRM_TUNNEL is not set
350# CONFIG_INET6_TUNNEL is not set
351# CONFIG_NETWORK_SECMARK is not set
352# CONFIG_NETFILTER is not set
353# CONFIG_IP_DCCP is not set
354# CONFIG_IP_SCTP is not set
355# CONFIG_TIPC is not set
356# CONFIG_ATM is not set
357# CONFIG_BRIDGE is not set
358# CONFIG_VLAN_8021Q is not set
359# CONFIG_DECNET is not set
360# CONFIG_LLC2 is not set
361# CONFIG_IPX is not set
362# CONFIG_ATALK is not set
363# CONFIG_X25 is not set
364# CONFIG_LAPB is not set
365# CONFIG_ECONET is not set
366# CONFIG_WAN_ROUTER is not set
367
368#
369# QoS and/or fair queueing
370#
371# CONFIG_NET_SCHED is not set
372
373#
374# Network testing
375#
376# CONFIG_NET_PKTGEN is not set
377# CONFIG_HAMRADIO is not set
378# CONFIG_IRDA is not set
379# CONFIG_BT is not set
380# CONFIG_AF_RXRPC is not set
381
382#
383# Wireless
384#
385# CONFIG_CFG80211 is not set
386# CONFIG_WIRELESS_EXT is not set
387# CONFIG_MAC80211 is not set
388# CONFIG_IEEE80211 is not set
389# CONFIG_RFKILL is not set
390# CONFIG_NET_9P is not set
391
392#
393# Device Drivers
394#
395
396#
397# Generic Driver Options
398#
399CONFIG_STANDALONE=y
400CONFIG_PREVENT_FIRMWARE_BUILD=y
401# CONFIG_FW_LOADER is not set
402# CONFIG_SYS_HYPERVISOR is not set
403# CONFIG_CONNECTOR is not set
404CONFIG_MTD=y
405# CONFIG_MTD_DEBUG is not set
406# CONFIG_MTD_CONCAT is not set
407CONFIG_MTD_PARTITIONS=y
408# CONFIG_MTD_REDBOOT_PARTS is not set
409CONFIG_MTD_CMDLINE_PARTS=y
410# CONFIG_MTD_AFS_PARTS is not set
411
412#
413# User Modules And Translation Layers
414#
415CONFIG_MTD_CHAR=y
416CONFIG_MTD_BLKDEVS=y
417CONFIG_MTD_BLOCK=y
418# CONFIG_FTL is not set
419# CONFIG_NFTL is not set
420# CONFIG_INFTL is not set
421# CONFIG_RFD_FTL is not set
422# CONFIG_SSFDC is not set
423
424#
425# RAM/ROM/Flash chip drivers
426#
427CONFIG_MTD_CFI=y
428# CONFIG_MTD_JEDECPROBE is not set
429CONFIG_MTD_GEN_PROBE=y
430# CONFIG_MTD_CFI_ADV_OPTIONS is not set
431CONFIG_MTD_MAP_BANK_WIDTH_1=y
432CONFIG_MTD_MAP_BANK_WIDTH_2=y
433CONFIG_MTD_MAP_BANK_WIDTH_4=y
434# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
435# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
436# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
437CONFIG_MTD_CFI_I1=y
438CONFIG_MTD_CFI_I2=y
439# CONFIG_MTD_CFI_I4 is not set
440# CONFIG_MTD_CFI_I8 is not set
441CONFIG_MTD_CFI_INTELEXT=y
442# CONFIG_MTD_CFI_AMDSTD is not set
443# CONFIG_MTD_CFI_STAA is not set
444CONFIG_MTD_CFI_UTIL=y
445# CONFIG_MTD_RAM is not set
446# CONFIG_MTD_ROM is not set
447# CONFIG_MTD_ABSENT is not set
448
449#
450# Mapping drivers for chip access
451#
452# CONFIG_MTD_COMPLEX_MAPPINGS is not set
453# CONFIG_MTD_PHYSMAP is not set
454# CONFIG_MTD_ARM_INTEGRATOR is not set
455CONFIG_MTD_OMAP_NOR=y
456# CONFIG_MTD_PLATRAM is not set
457
458#
459# Self-contained MTD device drivers
460#
461# CONFIG_MTD_SLRAM is not set
462# CONFIG_MTD_PHRAM is not set
463# CONFIG_MTD_MTDRAM is not set
464# CONFIG_MTD_BLOCK2MTD is not set
465
466#
467# Disk-On-Chip Device Drivers
468#
469# CONFIG_MTD_DOC2000 is not set
470# CONFIG_MTD_DOC2001 is not set
471# CONFIG_MTD_DOC2001PLUS is not set
472CONFIG_MTD_NAND=y
473# CONFIG_MTD_NAND_VERIFY_WRITE is not set
474# CONFIG_MTD_NAND_ECC_SMC is not set
475# CONFIG_MTD_NAND_MUSEUM_IDS is not set
476CONFIG_MTD_NAND_OMAP=y
477CONFIG_MTD_NAND_IDS=y
478# CONFIG_MTD_NAND_DISKONCHIP is not set
479# CONFIG_MTD_NAND_NANDSIM is not set
480# CONFIG_MTD_NAND_PLATFORM is not set
481# CONFIG_MTD_ONENAND is not set
482
483#
484# UBI - Unsorted block images
485#
486# CONFIG_MTD_UBI is not set
487# CONFIG_PARPORT is not set
488CONFIG_BLK_DEV=y
489# CONFIG_BLK_DEV_COW_COMMON is not set
490CONFIG_BLK_DEV_LOOP=y
491# CONFIG_BLK_DEV_CRYPTOLOOP is not set
492# CONFIG_BLK_DEV_NBD is not set
493CONFIG_BLK_DEV_RAM=y
494CONFIG_BLK_DEV_RAM_COUNT=16
495CONFIG_BLK_DEV_RAM_SIZE=8192
496CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
497# CONFIG_CDROM_PKTCDVD is not set
498# CONFIG_ATA_OVER_ETH is not set
499
500#
501# SCSI device support
502#
503# CONFIG_RAID_ATTRS is not set
504# CONFIG_SCSI is not set
505# CONFIG_SCSI_DMA is not set
506# CONFIG_SCSI_NETLINK is not set
507# CONFIG_ATA is not set
508# CONFIG_MD is not set
509CONFIG_NETDEVICES=y
510# CONFIG_NETDEVICES_MULTIQUEUE is not set
511# CONFIG_DUMMY is not set
512# CONFIG_BONDING is not set
513# CONFIG_MACVLAN is not set
514# CONFIG_EQUALIZER is not set
515# CONFIG_TUN is not set
516# CONFIG_PHYLIB is not set
517CONFIG_NET_ETHERNET=y
518CONFIG_MII=y
519# CONFIG_AX88796 is not set
520CONFIG_SMC91X=y
521# CONFIG_DM9000 is not set
522CONFIG_NETDEV_1000=y
523CONFIG_NETDEV_10000=y
524
525#
526# Wireless LAN
527#
528# CONFIG_WLAN_PRE80211 is not set
529# CONFIG_WLAN_80211 is not set
530# CONFIG_WAN is not set
531# CONFIG_PPP is not set
532# CONFIG_SLIP is not set
533# CONFIG_SHAPER is not set
534# CONFIG_NETCONSOLE is not set
535# CONFIG_NETPOLL is not set
536# CONFIG_NET_POLL_CONTROLLER is not set
537# CONFIG_ISDN is not set
538
539#
540# Input device support
541#
542CONFIG_INPUT=y
543# CONFIG_INPUT_FF_MEMLESS is not set
544# CONFIG_INPUT_POLLDEV is not set
545
546#
547# Userland interfaces
548#
549CONFIG_INPUT_MOUSEDEV=y
550CONFIG_INPUT_MOUSEDEV_PSAUX=y
551CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
552CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
553# CONFIG_INPUT_JOYDEV is not set
554# CONFIG_INPUT_TSDEV is not set
555# CONFIG_INPUT_EVDEV is not set
556# CONFIG_INPUT_EVBUG is not set
557
558#
559# Input Device Drivers
560#
561CONFIG_INPUT_KEYBOARD=y
562# CONFIG_KEYBOARD_ATKBD is not set
563# CONFIG_KEYBOARD_SUNKBD is not set
564# CONFIG_KEYBOARD_LKKBD is not set
565# CONFIG_KEYBOARD_XTKBD is not set
566# CONFIG_KEYBOARD_NEWTON is not set
567# CONFIG_KEYBOARD_STOWAWAY is not set
568CONFIG_KEYBOARD_OMAP=y
569# CONFIG_KEYBOARD_GPIO is not set
570# CONFIG_INPUT_MOUSE is not set
571# CONFIG_INPUT_JOYSTICK is not set
572# CONFIG_INPUT_TABLET is not set
573# CONFIG_INPUT_TOUCHSCREEN is not set
574# CONFIG_INPUT_MISC is not set
575
576#
577# Hardware I/O ports
578#
579CONFIG_SERIO=y
580CONFIG_SERIO_SERPORT=y
581# CONFIG_SERIO_RAW is not set
582# CONFIG_GAMEPORT is not set
583
584#
585# Character devices
586#
587CONFIG_VT=y
588CONFIG_VT_CONSOLE=y
589CONFIG_HW_CONSOLE=y
590# CONFIG_VT_HW_CONSOLE_BINDING is not set
591# CONFIG_SERIAL_NONSTANDARD is not set
592
593#
594# Serial drivers
595#
596CONFIG_SERIAL_8250=y
597CONFIG_SERIAL_8250_CONSOLE=y
598CONFIG_SERIAL_8250_NR_UARTS=4
599CONFIG_SERIAL_8250_RUNTIME_UARTS=4
600# CONFIG_SERIAL_8250_EXTENDED is not set
601
602#
603# Non-8250 serial port support
604#
605CONFIG_SERIAL_CORE=y
606CONFIG_SERIAL_CORE_CONSOLE=y
607CONFIG_UNIX98_PTYS=y
608# CONFIG_LEGACY_PTYS is not set
609# CONFIG_IPMI_HANDLER is not set
610# CONFIG_WATCHDOG is not set
611CONFIG_HW_RANDOM=m
612# CONFIG_NVRAM is not set
613# CONFIG_R3964 is not set
614# CONFIG_RAW_DRIVER is not set
615# CONFIG_TCG_TPM is not set
616# CONFIG_I2C is not set
617
618#
619# SPI support
620#
621# CONFIG_SPI is not set
622# CONFIG_SPI_MASTER is not set
623# CONFIG_W1 is not set
624CONFIG_HWMON=y
625# CONFIG_HWMON_VID is not set
626# CONFIG_SENSORS_ABITUGURU is not set
627# CONFIG_SENSORS_ABITUGURU3 is not set
628# CONFIG_SENSORS_F71805F is not set
629# CONFIG_SENSORS_IT87 is not set
630# CONFIG_SENSORS_PC87360 is not set
631# CONFIG_SENSORS_PC87427 is not set
632# CONFIG_SENSORS_SMSC47M1 is not set
633# CONFIG_SENSORS_SMSC47B397 is not set
634# CONFIG_SENSORS_VT1211 is not set
635# CONFIG_SENSORS_W83627HF is not set
636# CONFIG_SENSORS_W83627EHF is not set
637# CONFIG_HWMON_DEBUG_CHIP is not set
638CONFIG_MISC_DEVICES=y
639# CONFIG_EEPROM_93CX6 is not set
640
641#
642# Multifunction device drivers
643#
644# CONFIG_MFD_SM501 is not set
645# CONFIG_NEW_LEDS is not set
646
647#
648# Multimedia devices
649#
650# CONFIG_VIDEO_DEV is not set
651# CONFIG_DVB_CORE is not set
652CONFIG_DAB=y
653
654#
655# Graphics support
656#
657# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
658
659#
660# Display device support
661#
662# CONFIG_DISPLAY_SUPPORT is not set
663# CONFIG_VGASTATE is not set
664CONFIG_VIDEO_OUTPUT_CONTROL=m
665CONFIG_FB=y
666# CONFIG_FIRMWARE_EDID is not set
667# CONFIG_FB_DDC is not set
668# CONFIG_FB_CFB_FILLRECT is not set
669# CONFIG_FB_CFB_COPYAREA is not set
670# CONFIG_FB_CFB_IMAGEBLIT is not set
671CONFIG_FB_SYS_FILLRECT=y
672CONFIG_FB_SYS_COPYAREA=y
673CONFIG_FB_SYS_IMAGEBLIT=y
674CONFIG_FB_SYS_FOPS=y
675CONFIG_FB_DEFERRED_IO=y
676# CONFIG_FB_SVGALIB is not set
677# CONFIG_FB_MACMODES is not set
678# CONFIG_FB_BACKLIGHT is not set
679CONFIG_FB_MODE_HELPERS=y
680# CONFIG_FB_TILEBLITTING is not set
681
682#
683# Frame buffer hardware drivers
684#
685# CONFIG_FB_S1D13XXX is not set
686# CONFIG_FB_OMAP is not set
687CONFIG_FB_VIRTUAL=y
688
689#
690# Console display driver support
691#
692# CONFIG_VGA_CONSOLE is not set
693CONFIG_DUMMY_CONSOLE=y
694# CONFIG_FRAMEBUFFER_CONSOLE is not set
695# CONFIG_LOGO is not set
696
697#
698# Sound
699#
700# CONFIG_SOUND is not set
701CONFIG_HID_SUPPORT=y
702CONFIG_HID=y
703# CONFIG_HID_DEBUG is not set
704CONFIG_USB_SUPPORT=y
705CONFIG_USB_ARCH_HAS_HCD=y
706CONFIG_USB_ARCH_HAS_OHCI=y
707# CONFIG_USB_ARCH_HAS_EHCI is not set
708# CONFIG_USB is not set
709
710#
711# Enable Host or Gadget support to see Inventra options
712#
713
714#
715# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
716#
717
718#
719# USB Gadget Support
720#
721# CONFIG_USB_GADGET is not set
722# CONFIG_MMC is not set
723CONFIG_RTC_LIB=y
724CONFIG_RTC_CLASS=y
725CONFIG_RTC_HCTOSYS=y
726CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
727# CONFIG_RTC_DEBUG is not set
728
729#
730# RTC interfaces
731#
732CONFIG_RTC_INTF_SYSFS=y
733CONFIG_RTC_INTF_PROC=y
734CONFIG_RTC_INTF_DEV=y
735# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
736# CONFIG_RTC_DRV_TEST is not set
737
738#
739# SPI RTC drivers
740#
741
742#
743# Platform RTC drivers
744#
745# CONFIG_RTC_DRV_CMOS is not set
746# CONFIG_RTC_DRV_DS1553 is not set
747# CONFIG_RTC_DRV_STK17TA8 is not set
748# CONFIG_RTC_DRV_DS1742 is not set
749# CONFIG_RTC_DRV_M48T86 is not set
750# CONFIG_RTC_DRV_M48T59 is not set
751# CONFIG_RTC_DRV_V3020 is not set
752
753#
754# on-CPU RTC drivers
755#
756CONFIG_RTC_DRV_OMAP=y
757
758#
759# DMA Engine support
760#
761# CONFIG_DMA_ENGINE is not set
762
763#
764# DMA Clients
765#
766
767#
768# DMA Devices
769#
770
771#
772# CBUS support
773#
774# CONFIG_CBUS is not set
775
776#
777# File systems
778#
779CONFIG_EXT2_FS=y
780# CONFIG_EXT2_FS_XATTR is not set
781# CONFIG_EXT2_FS_XIP is not set
782# CONFIG_EXT3_FS is not set
783# CONFIG_EXT4DEV_FS is not set
784# CONFIG_REISERFS_FS is not set
785# CONFIG_JFS_FS is not set
786# CONFIG_FS_POSIX_ACL is not set
787# CONFIG_XFS_FS is not set
788# CONFIG_GFS2_FS is not set
789# CONFIG_OCFS2_FS is not set
790# CONFIG_MINIX_FS is not set
791# CONFIG_ROMFS_FS is not set
792CONFIG_INOTIFY=y
793CONFIG_INOTIFY_USER=y
794# CONFIG_QUOTA is not set
795CONFIG_DNOTIFY=y
796# CONFIG_AUTOFS_FS is not set
797# CONFIG_AUTOFS4_FS is not set
798# CONFIG_FUSE_FS is not set
799
800#
801# CD-ROM/DVD Filesystems
802#
803# CONFIG_ISO9660_FS is not set
804# CONFIG_UDF_FS is not set
805
806#
807# DOS/FAT/NT Filesystems
808#
809# CONFIG_MSDOS_FS is not set
810# CONFIG_VFAT_FS is not set
811# CONFIG_NTFS_FS is not set
812
813#
814# Pseudo filesystems
815#
816CONFIG_PROC_FS=y
817CONFIG_PROC_SYSCTL=y
818CONFIG_SYSFS=y
819# CONFIG_TMPFS is not set
820# CONFIG_HUGETLB_PAGE is not set
821CONFIG_RAMFS=y
822# CONFIG_CONFIGFS_FS is not set
823
824#
825# Miscellaneous filesystems
826#
827# CONFIG_ADFS_FS is not set
828# CONFIG_AFFS_FS is not set
829# CONFIG_HFS_FS is not set
830# CONFIG_HFSPLUS_FS is not set
831# CONFIG_BEFS_FS is not set
832# CONFIG_BFS_FS is not set
833# CONFIG_EFS_FS is not set
834CONFIG_JFFS2_FS=y
835CONFIG_JFFS2_FS_DEBUG=0
836CONFIG_JFFS2_FS_WRITEBUFFER=y
837# CONFIG_JFFS2_SUMMARY is not set
838# CONFIG_JFFS2_FS_XATTR is not set
839# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
840CONFIG_JFFS2_ZLIB=y
841CONFIG_JFFS2_RTIME=y
842# CONFIG_JFFS2_RUBIN is not set
843# CONFIG_CRAMFS is not set
844# CONFIG_VXFS_FS is not set
845# CONFIG_HPFS_FS is not set
846# CONFIG_QNX4FS_FS is not set
847# CONFIG_SYSV_FS is not set
848# CONFIG_UFS_FS is not set
849
850#
851# Network File Systems
852#
853CONFIG_NFS_FS=y
854# CONFIG_NFS_V3 is not set
855# CONFIG_NFS_V4 is not set
856# CONFIG_NFS_DIRECTIO is not set
857# CONFIG_NFSD is not set
858CONFIG_ROOT_NFS=y
859CONFIG_LOCKD=y
860CONFIG_NFS_COMMON=y
861CONFIG_SUNRPC=y
862# CONFIG_SUNRPC_BIND34 is not set
863# CONFIG_RPCSEC_GSS_KRB5 is not set
864# CONFIG_RPCSEC_GSS_SPKM3 is not set
865# CONFIG_SMB_FS is not set
866# CONFIG_CIFS is not set
867# CONFIG_NCP_FS is not set
868# CONFIG_CODA_FS is not set
869# CONFIG_AFS_FS is not set
870
871#
872# Partition Types
873#
874# CONFIG_PARTITION_ADVANCED is not set
875CONFIG_MSDOS_PARTITION=y
876
877#
878# Native Language Support
879#
880# CONFIG_NLS is not set
881
882#
883# Distributed Lock Manager
884#
885# CONFIG_DLM is not set
886
887#
888# Profiling support
889#
890# CONFIG_PROFILING is not set
891
892#
893# Kernel hacking
894#
895# CONFIG_PRINTK_TIME is not set
896CONFIG_ENABLE_MUST_CHECK=y
897# CONFIG_MAGIC_SYSRQ is not set
898# CONFIG_UNUSED_SYMBOLS is not set
899# CONFIG_DEBUG_FS is not set
900# CONFIG_HEADERS_CHECK is not set
901# CONFIG_DEBUG_KERNEL is not set
902CONFIG_DEBUG_BUGVERBOSE=y
903CONFIG_FRAME_POINTER=y
904# CONFIG_DEBUG_USER is not set
905
906#
907# Security options
908#
909# CONFIG_KEYS is not set
910# CONFIG_SECURITY is not set
911# CONFIG_CRYPTO is not set
912
913#
914# Library routines
915#
916CONFIG_BITREVERSE=y
917# CONFIG_CRC_CCITT is not set
918# CONFIG_CRC16 is not set
919# CONFIG_CRC_ITU_T is not set
920CONFIG_CRC32=y
921# CONFIG_CRC7 is not set
922# CONFIG_LIBCRC32C is not set
923CONFIG_ZLIB_INFLATE=y
924CONFIG_ZLIB_DEFLATE=y
925CONFIG_PLIST=y
926CONFIG_HAS_IOMEM=y
927CONFIG_HAS_IOPORT=y
928CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig
index 1464ffe7171..4017d83c9d2 100644
--- a/arch/arm/configs/orion5x_defconfig
+++ b/arch/arm/configs/orion5x_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 2 23:54:48 2008 4# Fri Aug 22 12:38:51 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -12,6 +12,7 @@ CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set 12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y 14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y 16CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y 17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y 18CONFIG_HARDIRQS_SW_RESEND=y
@@ -23,6 +24,7 @@ CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 24CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y 25CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_ZONE_DMA=y 26CONFIG_ZONE_DMA=y
27CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
26CONFIG_VECTORS_BASE=0xffff0000 28CONFIG_VECTORS_BASE=0xffff0000
27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 29CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
28 30
@@ -56,7 +58,6 @@ CONFIG_SYSCTL=y
56CONFIG_EMBEDDED=y 58CONFIG_EMBEDDED=y
57CONFIG_UID16=y 59CONFIG_UID16=y
58CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
59CONFIG_SYSCTL_SYSCALL_CHECK=y
60CONFIG_KALLSYMS=y 61CONFIG_KALLSYMS=y
61CONFIG_KALLSYMS_ALL=y 62CONFIG_KALLSYMS_ALL=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 63# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -83,11 +84,17 @@ CONFIG_PROFILING=y
83CONFIG_OPROFILE=y 84CONFIG_OPROFILE=y
84CONFIG_HAVE_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
85CONFIG_KPROBES=y 86CONFIG_KPROBES=y
87# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
86CONFIG_KRETPROBES=y 88CONFIG_KRETPROBES=y
89# CONFIG_HAVE_IOREMAP_PROT is not set
87CONFIG_HAVE_KPROBES=y 90CONFIG_HAVE_KPROBES=y
88CONFIG_HAVE_KRETPROBES=y 91CONFIG_HAVE_KRETPROBES=y
92# CONFIG_HAVE_ARCH_TRACEHOOK is not set
89# CONFIG_HAVE_DMA_ATTRS is not set 93# CONFIG_HAVE_DMA_ATTRS is not set
94# CONFIG_USE_GENERIC_SMP_HELPERS is not set
95# CONFIG_HAVE_CLK is not set
90CONFIG_PROC_PAGE_MONITOR=y 96CONFIG_PROC_PAGE_MONITOR=y
97CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_RT_MUTEXES=y 98CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set 99# CONFIG_TINY_SHMEM is not set
93CONFIG_BASE_SMALL=0 100CONFIG_BASE_SMALL=0
@@ -97,12 +104,13 @@ CONFIG_MODULE_UNLOAD=y
97# CONFIG_MODULE_FORCE_UNLOAD is not set 104# CONFIG_MODULE_FORCE_UNLOAD is not set
98# CONFIG_MODVERSIONS is not set 105# CONFIG_MODVERSIONS is not set
99# CONFIG_MODULE_SRCVERSION_ALL is not set 106# CONFIG_MODULE_SRCVERSION_ALL is not set
100# CONFIG_KMOD is not set 107CONFIG_KMOD=y
101CONFIG_BLOCK=y 108CONFIG_BLOCK=y
102# CONFIG_LBD is not set 109# CONFIG_LBD is not set
103# CONFIG_BLK_DEV_IO_TRACE is not set 110# CONFIG_BLK_DEV_IO_TRACE is not set
104# CONFIG_LSF is not set 111# CONFIG_LSF is not set
105# CONFIG_BLK_DEV_BSG is not set 112# CONFIG_BLK_DEV_BSG is not set
113# CONFIG_BLK_DEV_INTEGRITY is not set
106 114
107# 115#
108# IO Schedulers 116# IO Schedulers
@@ -128,7 +136,6 @@ CONFIG_CLASSIC_RCU=y
128# CONFIG_ARCH_AT91 is not set 136# CONFIG_ARCH_AT91 is not set
129# CONFIG_ARCH_CLPS7500 is not set 137# CONFIG_ARCH_CLPS7500 is not set
130# CONFIG_ARCH_CLPS711X is not set 138# CONFIG_ARCH_CLPS711X is not set
131# CONFIG_ARCH_CO285 is not set
132# CONFIG_ARCH_EBSA110 is not set 139# CONFIG_ARCH_EBSA110 is not set
133# CONFIG_ARCH_EP93XX is not set 140# CONFIG_ARCH_EP93XX is not set
134# CONFIG_ARCH_FOOTBRIDGE is not set 141# CONFIG_ARCH_FOOTBRIDGE is not set
@@ -142,8 +149,11 @@ CONFIG_CLASSIC_RCU=y
142# CONFIG_ARCH_IXP2000 is not set 149# CONFIG_ARCH_IXP2000 is not set
143# CONFIG_ARCH_IXP4XX is not set 150# CONFIG_ARCH_IXP4XX is not set
144# CONFIG_ARCH_L7200 is not set 151# CONFIG_ARCH_L7200 is not set
152# CONFIG_ARCH_KIRKWOOD is not set
145# CONFIG_ARCH_KS8695 is not set 153# CONFIG_ARCH_KS8695 is not set
146# CONFIG_ARCH_NS9XXX is not set 154# CONFIG_ARCH_NS9XXX is not set
155# CONFIG_ARCH_LOKI is not set
156# CONFIG_ARCH_MV78XX0 is not set
147# CONFIG_ARCH_MXC is not set 157# CONFIG_ARCH_MXC is not set
148CONFIG_ARCH_ORION5X=y 158CONFIG_ARCH_ORION5X=y
149# CONFIG_ARCH_PNX4008 is not set 159# CONFIG_ARCH_PNX4008 is not set
@@ -195,7 +205,7 @@ CONFIG_CPU_ABRT_EV5T=y
195CONFIG_CPU_PABRT_NOIFAR=y 205CONFIG_CPU_PABRT_NOIFAR=y
196CONFIG_CPU_CACHE_VIVT=y 206CONFIG_CPU_CACHE_VIVT=y
197CONFIG_CPU_COPY_FEROCEON=y 207CONFIG_CPU_COPY_FEROCEON=y
198CONFIG_CPU_TLB_V4WBI=y 208CONFIG_CPU_TLB_FEROCEON=y
199CONFIG_CPU_CP15=y 209CONFIG_CPU_CP15=y
200CONFIG_CPU_CP15_MMU=y 210CONFIG_CPU_CP15_MMU=y
201 211
@@ -280,10 +290,6 @@ CONFIG_BINFMT_ELF=y
280# 290#
281# CONFIG_PM is not set 291# CONFIG_PM is not set
282CONFIG_ARCH_SUSPEND_POSSIBLE=y 292CONFIG_ARCH_SUSPEND_POSSIBLE=y
283
284#
285# Networking
286#
287CONFIG_NET=y 293CONFIG_NET=y
288 294
289# 295#
@@ -361,6 +367,7 @@ CONFIG_NET_PKTGEN=m
361# 367#
362# CONFIG_CFG80211 is not set 368# CONFIG_CFG80211 is not set
363CONFIG_WIRELESS_EXT=y 369CONFIG_WIRELESS_EXT=y
370CONFIG_WIRELESS_EXT_SYSFS=y
364# CONFIG_MAC80211 is not set 371# CONFIG_MAC80211 is not set
365# CONFIG_IEEE80211 is not set 372# CONFIG_IEEE80211 is not set
366# CONFIG_RFKILL is not set 373# CONFIG_RFKILL is not set
@@ -377,6 +384,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
377CONFIG_STANDALONE=y 384CONFIG_STANDALONE=y
378CONFIG_PREVENT_FIRMWARE_BUILD=y 385CONFIG_PREVENT_FIRMWARE_BUILD=y
379CONFIG_FW_LOADER=y 386CONFIG_FW_LOADER=y
387# CONFIG_FIRMWARE_IN_KERNEL is not set
388CONFIG_EXTRA_FIRMWARE=""
380# CONFIG_DEBUG_DRIVER is not set 389# CONFIG_DEBUG_DRIVER is not set
381# CONFIG_DEBUG_DEVRES is not set 390# CONFIG_DEBUG_DEVRES is not set
382# CONFIG_SYS_HYPERVISOR is not set 391# CONFIG_SYS_HYPERVISOR is not set
@@ -499,6 +508,7 @@ CONFIG_MISC_DEVICES=y
499# CONFIG_SGI_IOC4 is not set 508# CONFIG_SGI_IOC4 is not set
500# CONFIG_TIFM_CORE is not set 509# CONFIG_TIFM_CORE is not set
501# CONFIG_ENCLOSURE_SERVICES is not set 510# CONFIG_ENCLOSURE_SERVICES is not set
511# CONFIG_HP_ILO is not set
502CONFIG_HAVE_IDE=y 512CONFIG_HAVE_IDE=y
503# CONFIG_IDE is not set 513# CONFIG_IDE is not set
504 514
@@ -575,6 +585,7 @@ CONFIG_SCSI_LOWLEVEL=y
575# CONFIG_SCSI_NSP32 is not set 585# CONFIG_SCSI_NSP32 is not set
576# CONFIG_SCSI_DEBUG is not set 586# CONFIG_SCSI_DEBUG is not set
577# CONFIG_SCSI_SRP is not set 587# CONFIG_SCSI_SRP is not set
588# CONFIG_SCSI_DH is not set
578CONFIG_ATA=y 589CONFIG_ATA=y
579# CONFIG_ATA_NONSTANDARD is not set 590# CONFIG_ATA_NONSTANDARD is not set
580CONFIG_SATA_PMP=y 591CONFIG_SATA_PMP=y
@@ -641,11 +652,14 @@ CONFIG_SATA_MV=y
641# 652#
642# IEEE 1394 (FireWire) support 653# IEEE 1394 (FireWire) support
643# 654#
655
656#
657# Enable only one of the two stacks, unless you know what you are doing
658#
644# CONFIG_FIREWIRE is not set 659# CONFIG_FIREWIRE is not set
645# CONFIG_IEEE1394 is not set 660# CONFIG_IEEE1394 is not set
646# CONFIG_I2O is not set 661# CONFIG_I2O is not set
647CONFIG_NETDEVICES=y 662CONFIG_NETDEVICES=y
648# CONFIG_NETDEVICES_MULTIQUEUE is not set
649# CONFIG_DUMMY is not set 663# CONFIG_DUMMY is not set
650# CONFIG_BONDING is not set 664# CONFIG_BONDING is not set
651# CONFIG_MACVLAN is not set 665# CONFIG_MACVLAN is not set
@@ -694,7 +708,6 @@ CONFIG_NETDEV_1000=y
694# CONFIG_DL2K is not set 708# CONFIG_DL2K is not set
695# CONFIG_E1000 is not set 709# CONFIG_E1000 is not set
696# CONFIG_E1000E is not set 710# CONFIG_E1000E is not set
697# CONFIG_E1000E_ENABLED is not set
698# CONFIG_IP1000 is not set 711# CONFIG_IP1000 is not set
699# CONFIG_IGB is not set 712# CONFIG_IGB is not set
700# CONFIG_NS83820 is not set 713# CONFIG_NS83820 is not set
@@ -710,6 +723,7 @@ CONFIG_NETDEV_1000=y
710CONFIG_MV643XX_ETH=y 723CONFIG_MV643XX_ETH=y
711# CONFIG_QLA3XXX is not set 724# CONFIG_QLA3XXX is not set
712# CONFIG_ATL1 is not set 725# CONFIG_ATL1 is not set
726# CONFIG_ATL1E is not set
713# CONFIG_NETDEV_10000 is not set 727# CONFIG_NETDEV_10000 is not set
714# CONFIG_TR is not set 728# CONFIG_TR is not set
715 729
@@ -815,44 +829,65 @@ CONFIG_DEVPORT=y
815CONFIG_I2C=y 829CONFIG_I2C=y
816CONFIG_I2C_BOARDINFO=y 830CONFIG_I2C_BOARDINFO=y
817CONFIG_I2C_CHARDEV=y 831CONFIG_I2C_CHARDEV=y
832CONFIG_I2C_HELPER_AUTO=y
818 833
819# 834#
820# I2C Hardware Bus support 835# I2C Hardware Bus support
821# 836#
837
838#
839# PC SMBus host controller drivers
840#
822# CONFIG_I2C_ALI1535 is not set 841# CONFIG_I2C_ALI1535 is not set
823# CONFIG_I2C_ALI1563 is not set 842# CONFIG_I2C_ALI1563 is not set
824# CONFIG_I2C_ALI15X3 is not set 843# CONFIG_I2C_ALI15X3 is not set
825# CONFIG_I2C_AMD756 is not set 844# CONFIG_I2C_AMD756 is not set
826# CONFIG_I2C_AMD8111 is not set 845# CONFIG_I2C_AMD8111 is not set
827# CONFIG_I2C_GPIO is not set
828# CONFIG_I2C_I801 is not set 846# CONFIG_I2C_I801 is not set
829# CONFIG_I2C_I810 is not set 847# CONFIG_I2C_ISCH is not set
830# CONFIG_I2C_PIIX4 is not set 848# CONFIG_I2C_PIIX4 is not set
831# CONFIG_I2C_NFORCE2 is not set 849# CONFIG_I2C_NFORCE2 is not set
832# CONFIG_I2C_OCORES is not set
833# CONFIG_I2C_PARPORT_LIGHT is not set
834# CONFIG_I2C_PROSAVAGE is not set
835# CONFIG_I2C_SAVAGE4 is not set
836# CONFIG_I2C_SIMTEC is not set
837# CONFIG_I2C_SIS5595 is not set 850# CONFIG_I2C_SIS5595 is not set
838# CONFIG_I2C_SIS630 is not set 851# CONFIG_I2C_SIS630 is not set
839# CONFIG_I2C_SIS96X is not set 852# CONFIG_I2C_SIS96X is not set
840# CONFIG_I2C_TAOS_EVM is not set
841# CONFIG_I2C_STUB is not set
842# CONFIG_I2C_TINY_USB is not set
843# CONFIG_I2C_VIA is not set 853# CONFIG_I2C_VIA is not set
844# CONFIG_I2C_VIAPRO is not set 854# CONFIG_I2C_VIAPRO is not set
855
856#
857# I2C system bus drivers (mostly embedded / system-on-chip)
858#
859# CONFIG_I2C_GPIO is not set
860CONFIG_I2C_MV64XXX=y
861# CONFIG_I2C_OCORES is not set
862# CONFIG_I2C_SIMTEC is not set
863
864#
865# External I2C/SMBus adapter drivers
866#
867# CONFIG_I2C_PARPORT_LIGHT is not set
868# CONFIG_I2C_TAOS_EVM is not set
869# CONFIG_I2C_TINY_USB is not set
870
871#
872# Graphics adapter I2C/DDC channel drivers
873#
845# CONFIG_I2C_VOODOO3 is not set 874# CONFIG_I2C_VOODOO3 is not set
875
876#
877# Other I2C/SMBus bus drivers
878#
846# CONFIG_I2C_PCA_PLATFORM is not set 879# CONFIG_I2C_PCA_PLATFORM is not set
847CONFIG_I2C_MV64XXX=y 880# CONFIG_I2C_STUB is not set
848 881
849# 882#
850# Miscellaneous I2C Chip support 883# Miscellaneous I2C Chip support
851# 884#
852# CONFIG_DS1682 is not set 885# CONFIG_DS1682 is not set
886# CONFIG_AT24 is not set
853# CONFIG_SENSORS_EEPROM is not set 887# CONFIG_SENSORS_EEPROM is not set
854# CONFIG_SENSORS_PCF8574 is not set 888# CONFIG_SENSORS_PCF8574 is not set
855# CONFIG_PCF8575 is not set 889# CONFIG_PCF8575 is not set
890# CONFIG_SENSORS_PCA9539 is not set
856# CONFIG_SENSORS_PCF8591 is not set 891# CONFIG_SENSORS_PCF8591 is not set
857# CONFIG_SENSORS_MAX6875 is not set 892# CONFIG_SENSORS_MAX6875 is not set
858# CONFIG_SENSORS_TSL2550 is not set 893# CONFIG_SENSORS_TSL2550 is not set
@@ -865,6 +900,7 @@ CONFIG_I2C_MV64XXX=y
865# CONFIG_POWER_SUPPLY is not set 900# CONFIG_POWER_SUPPLY is not set
866CONFIG_HWMON=y 901CONFIG_HWMON=y
867# CONFIG_HWMON_VID is not set 902# CONFIG_HWMON_VID is not set
903# CONFIG_SENSORS_AD7414 is not set
868# CONFIG_SENSORS_AD7418 is not set 904# CONFIG_SENSORS_AD7418 is not set
869# CONFIG_SENSORS_ADM1021 is not set 905# CONFIG_SENSORS_ADM1021 is not set
870# CONFIG_SENSORS_ADM1025 is not set 906# CONFIG_SENSORS_ADM1025 is not set
@@ -884,7 +920,7 @@ CONFIG_HWMON=y
884# CONFIG_SENSORS_GL520SM is not set 920# CONFIG_SENSORS_GL520SM is not set
885# CONFIG_SENSORS_IT87 is not set 921# CONFIG_SENSORS_IT87 is not set
886# CONFIG_SENSORS_LM63 is not set 922# CONFIG_SENSORS_LM63 is not set
887# CONFIG_SENSORS_LM75 is not set 923CONFIG_SENSORS_LM75=y
888# CONFIG_SENSORS_LM77 is not set 924# CONFIG_SENSORS_LM77 is not set
889# CONFIG_SENSORS_LM78 is not set 925# CONFIG_SENSORS_LM78 is not set
890# CONFIG_SENSORS_LM80 is not set 926# CONFIG_SENSORS_LM80 is not set
@@ -928,9 +964,12 @@ CONFIG_SSB_POSSIBLE=y
928# 964#
929# Multifunction device drivers 965# Multifunction device drivers
930# 966#
967# CONFIG_MFD_CORE is not set
931# CONFIG_MFD_SM501 is not set 968# CONFIG_MFD_SM501 is not set
932# CONFIG_MFD_ASIC3 is not set
933# CONFIG_HTC_PASIC3 is not set 969# CONFIG_HTC_PASIC3 is not set
970# CONFIG_MFD_TMIO is not set
971# CONFIG_MFD_T7L66XB is not set
972# CONFIG_MFD_TC6387XB is not set
934 973
935# 974#
936# Multimedia devices 975# Multimedia devices
@@ -961,10 +1000,6 @@ CONFIG_SSB_POSSIBLE=y
961# Display device support 1000# Display device support
962# 1001#
963# CONFIG_DISPLAY_SUPPORT is not set 1002# CONFIG_DISPLAY_SUPPORT is not set
964
965#
966# Sound
967#
968# CONFIG_SOUND is not set 1003# CONFIG_SOUND is not set
969CONFIG_HID_SUPPORT=y 1004CONFIG_HID_SUPPORT=y
970CONFIG_HID=y 1005CONFIG_HID=y
@@ -995,6 +1030,7 @@ CONFIG_USB_DEVICE_CLASS=y
995# CONFIG_USB_OTG is not set 1030# CONFIG_USB_OTG is not set
996# CONFIG_USB_OTG_WHITELIST is not set 1031# CONFIG_USB_OTG_WHITELIST is not set
997# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1032# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1033# CONFIG_USB_MON is not set
998 1034
999# 1035#
1000# USB Host Controller Drivers 1036# USB Host Controller Drivers
@@ -1037,6 +1073,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1037# CONFIG_USB_STORAGE_ALAUDA is not set 1073# CONFIG_USB_STORAGE_ALAUDA is not set
1038# CONFIG_USB_STORAGE_ONETOUCH is not set 1074# CONFIG_USB_STORAGE_ONETOUCH is not set
1039# CONFIG_USB_STORAGE_KARMA is not set 1075# CONFIG_USB_STORAGE_KARMA is not set
1076# CONFIG_USB_STORAGE_SIERRA is not set
1040# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1077# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1041# CONFIG_USB_LIBUSUAL is not set 1078# CONFIG_USB_LIBUSUAL is not set
1042 1079
@@ -1045,7 +1082,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1045# 1082#
1046# CONFIG_USB_MDC800 is not set 1083# CONFIG_USB_MDC800 is not set
1047# CONFIG_USB_MICROTEK is not set 1084# CONFIG_USB_MICROTEK is not set
1048# CONFIG_USB_MON is not set
1049 1085
1050# 1086#
1051# USB port drivers 1087# USB port drivers
@@ -1058,7 +1094,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1058# CONFIG_USB_EMI62 is not set 1094# CONFIG_USB_EMI62 is not set
1059# CONFIG_USB_EMI26 is not set 1095# CONFIG_USB_EMI26 is not set
1060# CONFIG_USB_ADUTUX is not set 1096# CONFIG_USB_ADUTUX is not set
1061# CONFIG_USB_AUERSWALD is not set
1062# CONFIG_USB_RIO500 is not set 1097# CONFIG_USB_RIO500 is not set
1063# CONFIG_USB_LEGOTOWER is not set 1098# CONFIG_USB_LEGOTOWER is not set
1064# CONFIG_USB_LCD is not set 1099# CONFIG_USB_LCD is not set
@@ -1084,7 +1119,9 @@ CONFIG_LEDS_CLASS=y
1084# 1119#
1085# LED drivers 1120# LED drivers
1086# 1121#
1122# CONFIG_LEDS_PCA9532 is not set
1087CONFIG_LEDS_GPIO=y 1123CONFIG_LEDS_GPIO=y
1124# CONFIG_LEDS_PCA955X is not set
1088 1125
1089# 1126#
1090# LED Triggers 1127# LED Triggers
@@ -1123,6 +1160,7 @@ CONFIG_RTC_DRV_PCF8563=y
1123CONFIG_RTC_DRV_M41T80=y 1160CONFIG_RTC_DRV_M41T80=y
1124# CONFIG_RTC_DRV_M41T80_WDT is not set 1161# CONFIG_RTC_DRV_M41T80_WDT is not set
1125CONFIG_RTC_DRV_S35390A=y 1162CONFIG_RTC_DRV_S35390A=y
1163# CONFIG_RTC_DRV_FM3130 is not set
1126 1164
1127# 1165#
1128# SPI RTC drivers 1166# SPI RTC drivers
@@ -1143,6 +1181,27 @@ CONFIG_RTC_DRV_S35390A=y
1143# 1181#
1144# on-CPU RTC drivers 1182# on-CPU RTC drivers
1145# 1183#
1184CONFIG_DMADEVICES=y
1185
1186#
1187# DMA Devices
1188#
1189CONFIG_MV_XOR=y
1190CONFIG_DMA_ENGINE=y
1191
1192#
1193# DMA Clients
1194#
1195# CONFIG_NET_DMA is not set
1196# CONFIG_DMATEST is not set
1197
1198#
1199# Voltage and Current regulators
1200#
1201# CONFIG_REGULATOR is not set
1202# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1203# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1204# CONFIG_REGULATOR_BQ24022 is not set
1146# CONFIG_UIO is not set 1205# CONFIG_UIO is not set
1147 1206
1148# 1207#
@@ -1222,6 +1281,7 @@ CONFIG_JFFS2_RTIME=y
1222CONFIG_CRAMFS=y 1281CONFIG_CRAMFS=y
1223# CONFIG_VXFS_FS is not set 1282# CONFIG_VXFS_FS is not set
1224# CONFIG_MINIX_FS is not set 1283# CONFIG_MINIX_FS is not set
1284# CONFIG_OMFS_FS is not set
1225# CONFIG_HPFS_FS is not set 1285# CONFIG_HPFS_FS is not set
1226# CONFIG_QNX4FS_FS is not set 1286# CONFIG_QNX4FS_FS is not set
1227# CONFIG_ROMFS_FS is not set 1287# CONFIG_ROMFS_FS is not set
@@ -1232,13 +1292,12 @@ CONFIG_NFS_FS=y
1232CONFIG_NFS_V3=y 1292CONFIG_NFS_V3=y
1233# CONFIG_NFS_V3_ACL is not set 1293# CONFIG_NFS_V3_ACL is not set
1234# CONFIG_NFS_V4 is not set 1294# CONFIG_NFS_V4 is not set
1235# CONFIG_NFSD is not set
1236CONFIG_ROOT_NFS=y 1295CONFIG_ROOT_NFS=y
1296# CONFIG_NFSD is not set
1237CONFIG_LOCKD=y 1297CONFIG_LOCKD=y
1238CONFIG_LOCKD_V4=y 1298CONFIG_LOCKD_V4=y
1239CONFIG_NFS_COMMON=y 1299CONFIG_NFS_COMMON=y
1240CONFIG_SUNRPC=y 1300CONFIG_SUNRPC=y
1241# CONFIG_SUNRPC_BIND34 is not set
1242# CONFIG_RPCSEC_GSS_KRB5 is not set 1301# CONFIG_RPCSEC_GSS_KRB5 is not set
1243# CONFIG_RPCSEC_GSS_SPKM3 is not set 1302# CONFIG_RPCSEC_GSS_SPKM3 is not set
1244# CONFIG_SMB_FS is not set 1303# CONFIG_SMB_FS is not set
@@ -1324,6 +1383,8 @@ CONFIG_MAGIC_SYSRQ=y
1324CONFIG_DEBUG_KERNEL=y 1383CONFIG_DEBUG_KERNEL=y
1325# CONFIG_DEBUG_SHIRQ is not set 1384# CONFIG_DEBUG_SHIRQ is not set
1326CONFIG_DETECT_SOFTLOCKUP=y 1385CONFIG_DETECT_SOFTLOCKUP=y
1386# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1387CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1327CONFIG_SCHED_DEBUG=y 1388CONFIG_SCHED_DEBUG=y
1328CONFIG_SCHEDSTATS=y 1389CONFIG_SCHEDSTATS=y
1329# CONFIG_TIMER_STATS is not set 1390# CONFIG_TIMER_STATS is not set
@@ -1338,11 +1399,13 @@ CONFIG_DEBUG_PREEMPT=y
1338# CONFIG_LOCK_STAT is not set 1399# CONFIG_LOCK_STAT is not set
1339# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1400# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1340# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1401# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1402CONFIG_STACKTRACE=y
1341# CONFIG_DEBUG_KOBJECT is not set 1403# CONFIG_DEBUG_KOBJECT is not set
1342# CONFIG_DEBUG_BUGVERBOSE is not set 1404# CONFIG_DEBUG_BUGVERBOSE is not set
1343CONFIG_DEBUG_INFO=y 1405CONFIG_DEBUG_INFO=y
1344# CONFIG_DEBUG_VM is not set 1406# CONFIG_DEBUG_VM is not set
1345# CONFIG_DEBUG_WRITECOUNT is not set 1407# CONFIG_DEBUG_WRITECOUNT is not set
1408# CONFIG_DEBUG_MEMORY_INIT is not set
1346# CONFIG_DEBUG_LIST is not set 1409# CONFIG_DEBUG_LIST is not set
1347# CONFIG_DEBUG_SG is not set 1410# CONFIG_DEBUG_SG is not set
1348CONFIG_FRAME_POINTER=y 1411CONFIG_FRAME_POINTER=y
@@ -1352,7 +1415,18 @@ CONFIG_FRAME_POINTER=y
1352# CONFIG_BACKTRACE_SELF_TEST is not set 1415# CONFIG_BACKTRACE_SELF_TEST is not set
1353# CONFIG_LKDTM is not set 1416# CONFIG_LKDTM is not set
1354# CONFIG_FAULT_INJECTION is not set 1417# CONFIG_FAULT_INJECTION is not set
1418CONFIG_LATENCYTOP=y
1419CONFIG_SYSCTL_SYSCALL_CHECK=y
1420CONFIG_HAVE_FTRACE=y
1421CONFIG_HAVE_DYNAMIC_FTRACE=y
1422# CONFIG_FTRACE is not set
1423# CONFIG_IRQSOFF_TRACER is not set
1424# CONFIG_PREEMPT_TRACER is not set
1425# CONFIG_SCHED_TRACER is not set
1426# CONFIG_CONTEXT_SWITCH_TRACER is not set
1355# CONFIG_SAMPLES is not set 1427# CONFIG_SAMPLES is not set
1428CONFIG_HAVE_ARCH_KGDB=y
1429# CONFIG_KGDB is not set
1356CONFIG_DEBUG_USER=y 1430CONFIG_DEBUG_USER=y
1357CONFIG_DEBUG_ERRORS=y 1431CONFIG_DEBUG_ERRORS=y
1358# CONFIG_DEBUG_STACK_USAGE is not set 1432# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1365,6 +1439,7 @@ CONFIG_DEBUG_LL=y
1365# CONFIG_KEYS is not set 1439# CONFIG_KEYS is not set
1366# CONFIG_SECURITY is not set 1440# CONFIG_SECURITY is not set
1367# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1441# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1442CONFIG_ASYNC_CORE=y
1368CONFIG_CRYPTO=y 1443CONFIG_CRYPTO=y
1369 1444
1370# 1445#
@@ -1410,6 +1485,10 @@ CONFIG_CRYPTO_PCBC=m
1410# CONFIG_CRYPTO_MD4 is not set 1485# CONFIG_CRYPTO_MD4 is not set
1411# CONFIG_CRYPTO_MD5 is not set 1486# CONFIG_CRYPTO_MD5 is not set
1412# CONFIG_CRYPTO_MICHAEL_MIC is not set 1487# CONFIG_CRYPTO_MICHAEL_MIC is not set
1488# CONFIG_CRYPTO_RMD128 is not set
1489# CONFIG_CRYPTO_RMD160 is not set
1490# CONFIG_CRYPTO_RMD256 is not set
1491# CONFIG_CRYPTO_RMD320 is not set
1413# CONFIG_CRYPTO_SHA1 is not set 1492# CONFIG_CRYPTO_SHA1 is not set
1414# CONFIG_CRYPTO_SHA256 is not set 1493# CONFIG_CRYPTO_SHA256 is not set
1415# CONFIG_CRYPTO_SHA512 is not set 1494# CONFIG_CRYPTO_SHA512 is not set
@@ -1451,6 +1530,7 @@ CONFIG_BITREVERSE=y
1451# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1530# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1452# CONFIG_CRC_CCITT is not set 1531# CONFIG_CRC_CCITT is not set
1453# CONFIG_CRC16 is not set 1532# CONFIG_CRC16 is not set
1533CONFIG_CRC_T10DIF=y
1454CONFIG_CRC_ITU_T=m 1534CONFIG_CRC_ITU_T=m
1455CONFIG_CRC32=y 1535CONFIG_CRC32=y
1456# CONFIG_CRC7 is not set 1536# CONFIG_CRC7 is not set
diff --git a/arch/arm/configs/palmte_defconfig b/arch/arm/configs/palmte_defconfig
new file mode 100644
index 00000000000..40fc6a778e0
--- /dev/null
+++ b/arch/arm/configs/palmte_defconfig
@@ -0,0 +1,761 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22-rc1-omap1
4# Sat May 19 11:04:27 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# Code maturity level options
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34
35#
36# General setup
37#
38CONFIG_LOCALVERSION=""
39CONFIG_LOCALVERSION_AUTO=y
40# CONFIG_SWAP is not set
41CONFIG_SYSVIPC=y
42# CONFIG_IPC_NS is not set
43CONFIG_SYSVIPC_SYSCTL=y
44CONFIG_BSD_PROCESS_ACCT=y
45# CONFIG_BSD_PROCESS_ACCT_V3 is not set
46# CONFIG_UTS_NS is not set
47# CONFIG_IKCONFIG is not set
48CONFIG_LOG_BUF_SHIFT=14
49CONFIG_SYSFS_DEPRECATED=y
50# CONFIG_RELAY is not set
51# CONFIG_BLK_DEV_INITRD is not set
52CONFIG_CC_OPTIMIZE_FOR_SIZE=y
53CONFIG_SYSCTL=y
54# CONFIG_EMBEDDED is not set
55CONFIG_UID16=y
56CONFIG_SYSCTL_SYSCALL=y
57CONFIG_KALLSYMS=y
58# CONFIG_KALLSYMS_EXTRA_PASS is not set
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78
79#
80# Loadable module support
81#
82# CONFIG_MODULES is not set
83
84#
85# Block layer
86#
87CONFIG_BLOCK=y
88# CONFIG_LBD is not set
89# CONFIG_BLK_DEV_IO_TRACE is not set
90# CONFIG_LSF is not set
91
92#
93# IO Schedulers
94#
95CONFIG_IOSCHED_NOOP=y
96CONFIG_IOSCHED_AS=y
97# CONFIG_IOSCHED_DEADLINE is not set
98# CONFIG_IOSCHED_CFQ is not set
99CONFIG_DEFAULT_AS=y
100# CONFIG_DEFAULT_DEADLINE is not set
101# CONFIG_DEFAULT_CFQ is not set
102# CONFIG_DEFAULT_NOOP is not set
103CONFIG_DEFAULT_IOSCHED="anticipatory"
104
105#
106# System Type
107#
108# CONFIG_ARCH_AAEC2000 is not set
109# CONFIG_ARCH_INTEGRATOR is not set
110# CONFIG_ARCH_REALVIEW is not set
111# CONFIG_ARCH_VERSATILE is not set
112# CONFIG_ARCH_AT91 is not set
113# CONFIG_ARCH_CLPS7500 is not set
114# CONFIG_ARCH_CLPS711X is not set
115# CONFIG_ARCH_CO285 is not set
116# CONFIG_ARCH_EBSA110 is not set
117# CONFIG_ARCH_EP93XX is not set
118# CONFIG_ARCH_FOOTBRIDGE is not set
119# CONFIG_ARCH_NETX is not set
120# CONFIG_ARCH_H720X is not set
121# CONFIG_ARCH_IMX is not set
122# CONFIG_ARCH_IOP13XX is not set
123# CONFIG_ARCH_IOP32X is not set
124# CONFIG_ARCH_IOP33X is not set
125# CONFIG_ARCH_IXP23XX is not set
126# CONFIG_ARCH_IXP2000 is not set
127# CONFIG_ARCH_IXP4XX is not set
128# CONFIG_ARCH_L7200 is not set
129# CONFIG_ARCH_KS8695 is not set
130# CONFIG_ARCH_NS9XXX is not set
131# CONFIG_ARCH_PNX4008 is not set
132# CONFIG_ARCH_PXA is not set
133# CONFIG_ARCH_RPC is not set
134# CONFIG_ARCH_SA1100 is not set
135# CONFIG_ARCH_S3C2410 is not set
136# CONFIG_ARCH_SHARK is not set
137# CONFIG_ARCH_LH7A40X is not set
138# CONFIG_ARCH_DAVINCI is not set
139CONFIG_ARCH_OMAP=y
140
141#
142# TI OMAP Implementations
143#
144CONFIG_ARCH_OMAP1=y
145# CONFIG_ARCH_OMAP2 is not set
146
147#
148# OMAP Feature Selections
149#
150# CONFIG_OMAP_RESET_CLOCKS is not set
151# CONFIG_OMAP_BOOT_TAG is not set
152CONFIG_OMAP_GPIO_SWITCH=y
153CONFIG_OMAP_MUX=y
154# CONFIG_OMAP_MUX_DEBUG is not set
155CONFIG_OMAP_MUX_WARNINGS=y
156CONFIG_OMAP_MCBSP=y
157# CONFIG_OMAP_MMU_FWK is not set
158# CONFIG_OMAP_MBOX_FWK is not set
159CONFIG_OMAP_MPU_TIMER=y
160# CONFIG_OMAP_32K_TIMER is not set
161CONFIG_OMAP_LL_DEBUG_UART1=y
162# CONFIG_OMAP_LL_DEBUG_UART2 is not set
163# CONFIG_OMAP_LL_DEBUG_UART3 is not set
164CONFIG_OMAP_SERIAL_WAKE=y
165# CONFIG_OMAP_DSP is not set
166
167#
168# OMAP Core Type
169#
170# CONFIG_ARCH_OMAP730 is not set
171CONFIG_ARCH_OMAP15XX=y
172# CONFIG_ARCH_OMAP16XX is not set
173
174#
175# OMAP Board Type
176#
177# CONFIG_MACH_OMAP_INNOVATOR is not set
178# CONFIG_MACH_VOICEBLUE is not set
179CONFIG_MACH_OMAP_PALMTE=y
180# CONFIG_MACH_OMAP_PALMZ71 is not set
181# CONFIG_MACH_OMAP_PALMTT is not set
182# CONFIG_MACH_SX1 is not set
183# CONFIG_MACH_AMS_DELTA is not set
184# CONFIG_MACH_OMAP_GENERIC is not set
185
186#
187# OMAP CPU Speed
188#
189CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
190# CONFIG_OMAP_ARM_168MHZ is not set
191# CONFIG_OMAP_ARM_150MHZ is not set
192# CONFIG_OMAP_ARM_120MHZ is not set
193# CONFIG_OMAP_ARM_60MHZ is not set
194# CONFIG_OMAP_ARM_30MHZ is not set
195
196#
197# Processor Type
198#
199CONFIG_CPU_32=y
200CONFIG_CPU_ARM925T=y
201CONFIG_CPU_32v4T=y
202CONFIG_CPU_ABRT_EV4T=y
203CONFIG_CPU_CACHE_V4WT=y
204CONFIG_CPU_CACHE_VIVT=y
205CONFIG_CPU_COPY_V4WB=y
206CONFIG_CPU_TLB_V4WBI=y
207CONFIG_CPU_CP15=y
208CONFIG_CPU_CP15_MMU=y
209
210#
211# Processor Features
212#
213# CONFIG_ARM_THUMB is not set
214# CONFIG_CPU_ICACHE_DISABLE is not set
215# CONFIG_CPU_DCACHE_DISABLE is not set
216# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
217# CONFIG_OUTER_CACHE is not set
218
219#
220# Bus support
221#
222# CONFIG_ARCH_SUPPORTS_MSI is not set
223
224#
225# PCCARD (PCMCIA/CardBus) support
226#
227# CONFIG_PCCARD is not set
228
229#
230# Kernel Features
231#
232# CONFIG_TICK_ONESHOT is not set
233# CONFIG_NO_HZ is not set
234# CONFIG_HIGH_RES_TIMERS is not set
235# CONFIG_PREEMPT is not set
236CONFIG_HZ=100
237# CONFIG_AEABI is not set
238# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
239CONFIG_SELECT_MEMORY_MODEL=y
240CONFIG_FLATMEM_MANUAL=y
241# CONFIG_DISCONTIGMEM_MANUAL is not set
242# CONFIG_SPARSEMEM_MANUAL is not set
243CONFIG_FLATMEM=y
244CONFIG_FLAT_NODE_MEM_MAP=y
245# CONFIG_SPARSEMEM_STATIC is not set
246CONFIG_SPLIT_PTLOCK_CPUS=4096
247# CONFIG_RESOURCES_64BIT is not set
248CONFIG_ZONE_DMA_FLAG=1
249# CONFIG_LEDS is not set
250CONFIG_ALIGNMENT_TRAP=y
251
252#
253# Boot options
254#
255CONFIG_ZBOOT_ROM_TEXT=0x0
256CONFIG_ZBOOT_ROM_BSS=0x0
257CONFIG_CMDLINE=""
258# CONFIG_XIP_KERNEL is not set
259# CONFIG_KEXEC is not set
260
261#
262# CPU Frequency scaling
263#
264# CONFIG_CPU_FREQ is not set
265
266#
267# Floating point emulation
268#
269
270#
271# At least one emulation must be selected
272#
273CONFIG_FPE_NWFPE=y
274# CONFIG_FPE_NWFPE_XP is not set
275# CONFIG_FPE_FASTFPE is not set
276
277#
278# Userspace binary formats
279#
280CONFIG_BINFMT_ELF=y
281# CONFIG_BINFMT_AOUT is not set
282# CONFIG_BINFMT_MISC is not set
283# CONFIG_ARTHUR is not set
284
285#
286# Power management options
287#
288# CONFIG_PM is not set
289
290#
291# Networking
292#
293# CONFIG_NET is not set
294
295#
296# Device Drivers
297#
298
299#
300# Generic Driver Options
301#
302# CONFIG_STANDALONE is not set
303# CONFIG_PREVENT_FIRMWARE_BUILD is not set
304# CONFIG_FW_LOADER is not set
305# CONFIG_SYS_HYPERVISOR is not set
306
307#
308# Connector - unified userspace <-> kernelspace linker
309#
310# CONFIG_MTD is not set
311
312#
313# Parallel port support
314#
315# CONFIG_PARPORT is not set
316
317#
318# Plug and Play support
319#
320# CONFIG_PNPACPI is not set
321
322#
323# Block devices
324#
325# CONFIG_BLK_DEV_COW_COMMON is not set
326# CONFIG_BLK_DEV_LOOP is not set
327# CONFIG_BLK_DEV_RAM is not set
328# CONFIG_CDROM_PKTCDVD is not set
329
330#
331# SCSI device support
332#
333# CONFIG_RAID_ATTRS is not set
334# CONFIG_SCSI is not set
335# CONFIG_SCSI_NETLINK is not set
336# CONFIG_ATA is not set
337
338#
339# Multi-device support (RAID and LVM)
340#
341# CONFIG_MD is not set
342
343#
344# ISDN subsystem
345#
346
347#
348# Input device support
349#
350CONFIG_INPUT=y
351# CONFIG_INPUT_FF_MEMLESS is not set
352
353#
354# Userland interfaces
355#
356CONFIG_INPUT_MOUSEDEV=y
357# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
358CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
359CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
360# CONFIG_INPUT_JOYDEV is not set
361# CONFIG_INPUT_TSDEV is not set
362# CONFIG_INPUT_EVDEV is not set
363# CONFIG_INPUT_EVBUG is not set
364
365#
366# Input Device Drivers
367#
368# CONFIG_INPUT_KEYBOARD is not set
369# CONFIG_INPUT_MOUSE is not set
370# CONFIG_INPUT_JOYSTICK is not set
371# CONFIG_INPUT_TABLET is not set
372# CONFIG_INPUT_TOUCHSCREEN is not set
373# CONFIG_INPUT_MISC is not set
374
375#
376# Hardware I/O ports
377#
378# CONFIG_SERIO is not set
379# CONFIG_GAMEPORT is not set
380
381#
382# Character devices
383#
384CONFIG_VT=y
385CONFIG_VT_CONSOLE=y
386CONFIG_HW_CONSOLE=y
387# CONFIG_VT_HW_CONSOLE_BINDING is not set
388# CONFIG_SERIAL_NONSTANDARD is not set
389
390#
391# Serial drivers
392#
393# CONFIG_SERIAL_8250 is not set
394
395#
396# Non-8250 serial port support
397#
398CONFIG_UNIX98_PTYS=y
399# CONFIG_LEGACY_PTYS is not set
400
401#
402# IPMI
403#
404# CONFIG_IPMI_HANDLER is not set
405# CONFIG_WATCHDOG is not set
406CONFIG_HW_RANDOM=y
407# CONFIG_NVRAM is not set
408CONFIG_OMAP_RTC=y
409# CONFIG_R3964 is not set
410# CONFIG_RAW_DRIVER is not set
411
412#
413# TPM devices
414#
415# CONFIG_TCG_TPM is not set
416# CONFIG_I2C is not set
417
418#
419# SPI support
420#
421# CONFIG_SPI is not set
422# CONFIG_SPI_MASTER is not set
423
424#
425# Dallas's 1-wire bus
426#
427# CONFIG_W1 is not set
428# CONFIG_HWMON is not set
429
430#
431# Misc devices
432#
433# CONFIG_BLINK is not set
434
435#
436# Multifunction device drivers
437#
438# CONFIG_MFD_SM501 is not set
439
440#
441# LED devices
442#
443# CONFIG_NEW_LEDS is not set
444
445#
446# LED drivers
447#
448
449#
450# LED Triggers
451#
452
453#
454# Multimedia devices
455#
456# CONFIG_VIDEO_DEV is not set
457CONFIG_DAB=y
458
459#
460# Graphics support
461#
462# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
463
464#
465# Display device support
466#
467# CONFIG_DISPLAY_SUPPORT is not set
468# CONFIG_VGASTATE is not set
469CONFIG_FB=y
470# CONFIG_FIRMWARE_EDID is not set
471# CONFIG_FB_DDC is not set
472# CONFIG_FB_CFB_FILLRECT is not set
473# CONFIG_FB_CFB_COPYAREA is not set
474# CONFIG_FB_CFB_IMAGEBLIT is not set
475# CONFIG_FB_SYS_FILLRECT is not set
476# CONFIG_FB_SYS_COPYAREA is not set
477# CONFIG_FB_SYS_IMAGEBLIT is not set
478# CONFIG_FB_SYS_FOPS is not set
479CONFIG_FB_DEFERRED_IO=y
480# CONFIG_FB_SVGALIB is not set
481# CONFIG_FB_MACMODES is not set
482# CONFIG_FB_BACKLIGHT is not set
483# CONFIG_FB_MODE_HELPERS is not set
484# CONFIG_FB_TILEBLITTING is not set
485
486#
487# Frame buffer hardware drivers
488#
489# CONFIG_FB_S1D13XXX is not set
490CONFIG_FB_OMAP=y
491# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
492# CONFIG_FB_OMAP_LCD_MIPID is not set
493# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
494CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
495# CONFIG_FB_OMAP_DMA_TUNE is not set
496# CONFIG_FB_VIRTUAL is not set
497
498#
499# Console display driver support
500#
501# CONFIG_VGA_CONSOLE is not set
502CONFIG_DUMMY_CONSOLE=y
503CONFIG_FRAMEBUFFER_CONSOLE=y
504# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
505# CONFIG_FONTS is not set
506CONFIG_FONT_8x8=y
507CONFIG_FONT_8x16=y
508CONFIG_LOGO=y
509# CONFIG_LOGO_LINUX_MONO is not set
510# CONFIG_LOGO_LINUX_VGA16 is not set
511CONFIG_LOGO_LINUX_CLUT224=y
512
513#
514# Sound
515#
516# CONFIG_SOUND is not set
517
518#
519# HID Devices
520#
521CONFIG_HID=y
522# CONFIG_HID_DEBUG is not set
523
524#
525# USB support
526#
527CONFIG_USB_ARCH_HAS_HCD=y
528CONFIG_USB_ARCH_HAS_OHCI=y
529# CONFIG_USB_ARCH_HAS_EHCI is not set
530# CONFIG_USB is not set
531# CONFIG_USB_MUSB_HDRC is not set
532# CONFIG_USB_GADGET_MUSB_HDRC is not set
533
534#
535# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
536#
537
538#
539# USB Gadget Support
540#
541CONFIG_USB_GADGET=y
542# CONFIG_USB_GADGET_DEBUG_FILES is not set
543CONFIG_USB_GADGET_SELECTED=y
544# CONFIG_USB_GADGET_FSL_USB2 is not set
545# CONFIG_USB_GADGET_NET2280 is not set
546# CONFIG_USB_GADGET_PXA2XX is not set
547# CONFIG_USB_GADGET_GOKU is not set
548# CONFIG_USB_GADGET_LH7A40X is not set
549CONFIG_USB_GADGET_OMAP=y
550CONFIG_USB_OMAP=y
551# CONFIG_USB_GADGET_AT91 is not set
552# CONFIG_USB_GADGET_DUMMY_HCD is not set
553# CONFIG_USB_GADGET_DUALSPEED is not set
554CONFIG_USB_ZERO=y
555# CONFIG_USB_ETH is not set
556# CONFIG_USB_GADGETFS is not set
557# CONFIG_USB_FILE_STORAGE is not set
558# CONFIG_USB_G_SERIAL is not set
559# CONFIG_USB_MIDI_GADGET is not set
560CONFIG_MMC=y
561# CONFIG_MMC_DEBUG is not set
562# CONFIG_MMC_UNSAFE_RESUME is not set
563
564#
565# MMC/SD Card Drivers
566#
567CONFIG_MMC_BLOCK=y
568
569#
570# MMC/SD Host Controller Drivers
571#
572CONFIG_MMC_OMAP=y
573
574#
575# Real Time Clock
576#
577CONFIG_RTC_LIB=y
578# CONFIG_RTC_CLASS is not set
579
580#
581# CBUS support
582#
583# CONFIG_CBUS is not set
584
585#
586# File systems
587#
588CONFIG_EXT2_FS=y
589# CONFIG_EXT2_FS_XATTR is not set
590# CONFIG_EXT2_FS_XIP is not set
591# CONFIG_EXT3_FS is not set
592# CONFIG_EXT4DEV_FS is not set
593# CONFIG_REISERFS_FS is not set
594# CONFIG_JFS_FS is not set
595# CONFIG_FS_POSIX_ACL is not set
596# CONFIG_XFS_FS is not set
597# CONFIG_GFS2_FS is not set
598# CONFIG_MINIX_FS is not set
599# CONFIG_ROMFS_FS is not set
600# CONFIG_INOTIFY is not set
601# CONFIG_QUOTA is not set
602CONFIG_DNOTIFY=y
603# CONFIG_AUTOFS_FS is not set
604# CONFIG_AUTOFS4_FS is not set
605# CONFIG_FUSE_FS is not set
606
607#
608# CD-ROM/DVD Filesystems
609#
610# CONFIG_ISO9660_FS is not set
611# CONFIG_UDF_FS is not set
612
613#
614# DOS/FAT/NT Filesystems
615#
616CONFIG_FAT_FS=y
617CONFIG_MSDOS_FS=y
618CONFIG_VFAT_FS=y
619CONFIG_FAT_DEFAULT_CODEPAGE=850
620CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
621# CONFIG_NTFS_FS is not set
622
623#
624# Pseudo filesystems
625#
626CONFIG_PROC_FS=y
627CONFIG_PROC_SYSCTL=y
628CONFIG_SYSFS=y
629CONFIG_TMPFS=y
630# CONFIG_TMPFS_POSIX_ACL is not set
631# CONFIG_HUGETLB_PAGE is not set
632CONFIG_RAMFS=y
633# CONFIG_CONFIGFS_FS is not set
634
635#
636# Miscellaneous filesystems
637#
638# CONFIG_ADFS_FS is not set
639# CONFIG_AFFS_FS is not set
640# CONFIG_HFS_FS is not set
641# CONFIG_HFSPLUS_FS is not set
642# CONFIG_BEFS_FS is not set
643# CONFIG_BFS_FS is not set
644# CONFIG_EFS_FS is not set
645CONFIG_CRAMFS=y
646# CONFIG_VXFS_FS is not set
647# CONFIG_HPFS_FS is not set
648# CONFIG_QNX4FS_FS is not set
649# CONFIG_SYSV_FS is not set
650# CONFIG_UFS_FS is not set
651
652#
653# Partition Types
654#
655CONFIG_PARTITION_ADVANCED=y
656# CONFIG_ACORN_PARTITION is not set
657# CONFIG_OSF_PARTITION is not set
658# CONFIG_AMIGA_PARTITION is not set
659# CONFIG_ATARI_PARTITION is not set
660# CONFIG_MAC_PARTITION is not set
661CONFIG_MSDOS_PARTITION=y
662# CONFIG_BSD_DISKLABEL is not set
663# CONFIG_MINIX_SUBPARTITION is not set
664# CONFIG_SOLARIS_X86_PARTITION is not set
665# CONFIG_UNIXWARE_DISKLABEL is not set
666# CONFIG_LDM_PARTITION is not set
667# CONFIG_SGI_PARTITION is not set
668# CONFIG_ULTRIX_PARTITION is not set
669# CONFIG_SUN_PARTITION is not set
670# CONFIG_KARMA_PARTITION is not set
671# CONFIG_EFI_PARTITION is not set
672# CONFIG_SYSV68_PARTITION is not set
673
674#
675# Native Language Support
676#
677CONFIG_NLS=y
678CONFIG_NLS_DEFAULT="iso8859-1"
679# CONFIG_NLS_CODEPAGE_437 is not set
680# CONFIG_NLS_CODEPAGE_737 is not set
681# CONFIG_NLS_CODEPAGE_775 is not set
682CONFIG_NLS_CODEPAGE_850=y
683# CONFIG_NLS_CODEPAGE_852 is not set
684# CONFIG_NLS_CODEPAGE_855 is not set
685# CONFIG_NLS_CODEPAGE_857 is not set
686# CONFIG_NLS_CODEPAGE_860 is not set
687# CONFIG_NLS_CODEPAGE_861 is not set
688# CONFIG_NLS_CODEPAGE_862 is not set
689# CONFIG_NLS_CODEPAGE_863 is not set
690# CONFIG_NLS_CODEPAGE_864 is not set
691# CONFIG_NLS_CODEPAGE_865 is not set
692# CONFIG_NLS_CODEPAGE_866 is not set
693# CONFIG_NLS_CODEPAGE_869 is not set
694# CONFIG_NLS_CODEPAGE_936 is not set
695# CONFIG_NLS_CODEPAGE_950 is not set
696# CONFIG_NLS_CODEPAGE_932 is not set
697# CONFIG_NLS_CODEPAGE_949 is not set
698# CONFIG_NLS_CODEPAGE_874 is not set
699# CONFIG_NLS_ISO8859_8 is not set
700# CONFIG_NLS_CODEPAGE_1250 is not set
701# CONFIG_NLS_CODEPAGE_1251 is not set
702# CONFIG_NLS_ASCII is not set
703CONFIG_NLS_ISO8859_1=y
704# CONFIG_NLS_ISO8859_2 is not set
705# CONFIG_NLS_ISO8859_3 is not set
706# CONFIG_NLS_ISO8859_4 is not set
707# CONFIG_NLS_ISO8859_5 is not set
708# CONFIG_NLS_ISO8859_6 is not set
709# CONFIG_NLS_ISO8859_7 is not set
710# CONFIG_NLS_ISO8859_9 is not set
711# CONFIG_NLS_ISO8859_13 is not set
712# CONFIG_NLS_ISO8859_14 is not set
713# CONFIG_NLS_ISO8859_15 is not set
714# CONFIG_NLS_KOI8_R is not set
715# CONFIG_NLS_KOI8_U is not set
716# CONFIG_NLS_UTF8 is not set
717
718#
719# Profiling support
720#
721# CONFIG_PROFILING is not set
722
723#
724# Kernel hacking
725#
726# CONFIG_PRINTK_TIME is not set
727CONFIG_ENABLE_MUST_CHECK=y
728# CONFIG_MAGIC_SYSRQ is not set
729# CONFIG_UNUSED_SYMBOLS is not set
730# CONFIG_DEBUG_FS is not set
731# CONFIG_HEADERS_CHECK is not set
732# CONFIG_DEBUG_KERNEL is not set
733CONFIG_DEBUG_BUGVERBOSE=y
734CONFIG_FRAME_POINTER=y
735# CONFIG_DEBUG_USER is not set
736
737#
738# Security options
739#
740# CONFIG_KEYS is not set
741# CONFIG_SECURITY is not set
742
743#
744# Cryptographic options
745#
746# CONFIG_CRYPTO is not set
747
748#
749# Library routines
750#
751CONFIG_BITREVERSE=y
752CONFIG_CRC_CCITT=y
753# CONFIG_CRC16 is not set
754# CONFIG_CRC_ITU_T is not set
755CONFIG_CRC32=y
756# CONFIG_LIBCRC32C is not set
757CONFIG_ZLIB_INFLATE=y
758CONFIG_PLIST=y
759CONFIG_HAS_IOMEM=y
760CONFIG_HAS_IOPORT=y
761CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/palmtt_defconfig b/arch/arm/configs/palmtt_defconfig
new file mode 100644
index 00000000000..e54ced41217
--- /dev/null
+++ b/arch/arm/configs/palmtt_defconfig
@@ -0,0 +1,844 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.19-rc3-omap1
4# Sun Oct 29 00:36:12 2006
5#
6CONFIG_ARM=y
7# CONFIG_GENERIC_TIME is not set
8CONFIG_MMU=y
9CONFIG_GENERIC_HARDIRQS=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y
11CONFIG_HARDIRQS_SW_RESEND=y
12CONFIG_GENERIC_IRQ_PROBE=y
13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_CALIBRATE_DELAY=y
16CONFIG_VECTORS_BASE=0xffff0000
17CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
18
19#
20# Code maturity level options
21#
22CONFIG_EXPERIMENTAL=y
23CONFIG_BROKEN_ON_SMP=y
24CONFIG_INIT_ENV_ARG_LIMIT=32
25
26#
27# General setup
28#
29CONFIG_LOCALVERSION=""
30CONFIG_LOCALVERSION_AUTO=y
31CONFIG_SWAP=y
32CONFIG_SYSVIPC=y
33# CONFIG_IPC_NS is not set
34# CONFIG_POSIX_MQUEUE is not set
35CONFIG_BSD_PROCESS_ACCT=y
36# CONFIG_BSD_PROCESS_ACCT_V3 is not set
37# CONFIG_TASKSTATS is not set
38# CONFIG_UTS_NS is not set
39# CONFIG_AUDIT is not set
40# CONFIG_IKCONFIG is not set
41# CONFIG_RELAY is not set
42CONFIG_INITRAMFS_SOURCE=""
43CONFIG_CC_OPTIMIZE_FOR_SIZE=y
44CONFIG_SYSCTL=y
45# CONFIG_EMBEDDED is not set
46CONFIG_UID16=y
47# CONFIG_SYSCTL_SYSCALL is not set
48CONFIG_KALLSYMS=y
49# CONFIG_KALLSYMS_EXTRA_PASS is not set
50CONFIG_HOTPLUG=y
51CONFIG_PRINTK=y
52CONFIG_BUG=y
53CONFIG_ELF_CORE=y
54CONFIG_BASE_FULL=y
55CONFIG_FUTEX=y
56CONFIG_EPOLL=y
57CONFIG_SHMEM=y
58CONFIG_SLAB=y
59CONFIG_VM_EVENT_COUNTERS=y
60CONFIG_RT_MUTEXES=y
61# CONFIG_TINY_SHMEM is not set
62CONFIG_BASE_SMALL=0
63# CONFIG_SLOB is not set
64
65#
66# Loadable module support
67#
68# CONFIG_MODULES is not set
69
70#
71# Block layer
72#
73CONFIG_BLOCK=y
74# CONFIG_BLK_DEV_IO_TRACE is not set
75
76#
77# IO Schedulers
78#
79CONFIG_IOSCHED_NOOP=y
80# CONFIG_IOSCHED_AS is not set
81# CONFIG_IOSCHED_DEADLINE is not set
82# CONFIG_IOSCHED_CFQ is not set
83# CONFIG_DEFAULT_AS is not set
84# CONFIG_DEFAULT_DEADLINE is not set
85# CONFIG_DEFAULT_CFQ is not set
86CONFIG_DEFAULT_NOOP=y
87CONFIG_DEFAULT_IOSCHED="noop"
88
89#
90# System Type
91#
92# CONFIG_ARCH_AAEC2000 is not set
93# CONFIG_ARCH_INTEGRATOR is not set
94# CONFIG_ARCH_REALVIEW is not set
95# CONFIG_ARCH_VERSATILE is not set
96# CONFIG_ARCH_AT91 is not set
97# CONFIG_ARCH_CLPS7500 is not set
98# CONFIG_ARCH_CLPS711X is not set
99# CONFIG_ARCH_CO285 is not set
100# CONFIG_ARCH_EBSA110 is not set
101# CONFIG_ARCH_EP93XX is not set
102# CONFIG_ARCH_FOOTBRIDGE is not set
103# CONFIG_ARCH_NETX is not set
104# CONFIG_ARCH_H720X is not set
105# CONFIG_ARCH_IMX is not set
106# CONFIG_ARCH_IOP32X is not set
107# CONFIG_ARCH_IOP33X is not set
108# CONFIG_ARCH_IXP4XX is not set
109# CONFIG_ARCH_IXP2000 is not set
110# CONFIG_ARCH_IXP23XX is not set
111# CONFIG_ARCH_L7200 is not set
112# CONFIG_ARCH_PNX4008 is not set
113# CONFIG_ARCH_PXA is not set
114# CONFIG_ARCH_RPC is not set
115# CONFIG_ARCH_SA1100 is not set
116# CONFIG_ARCH_S3C2410 is not set
117# CONFIG_ARCH_SHARK is not set
118# CONFIG_ARCH_LH7A40X is not set
119CONFIG_ARCH_OMAP=y
120
121#
122# TI OMAP Implementations
123#
124CONFIG_ARCH_OMAP1=y
125# CONFIG_ARCH_OMAP2 is not set
126
127#
128# OMAP Feature Selections
129#
130# CONFIG_OMAP_RESET_CLOCKS is not set
131# CONFIG_OMAP_BOOT_TAG is not set
132# CONFIG_OMAP_GPIO_SWITCH is not set
133CONFIG_OMAP_MUX=y
134# CONFIG_OMAP_MUX_DEBUG is not set
135CONFIG_OMAP_MUX_WARNINGS=y
136CONFIG_OMAP_MCBSP=y
137CONFIG_OMAP_MPU_TIMER=y
138# CONFIG_OMAP_32K_TIMER is not set
139# CONFIG_OMAP_LL_DEBUG_UART1 is not set
140CONFIG_OMAP_LL_DEBUG_UART2=y
141# CONFIG_OMAP_LL_DEBUG_UART3 is not set
142CONFIG_OMAP_SERIAL_WAKE=y
143CONFIG_OMAP_DSP=y
144# CONFIG_OMAP_DSP_MBCMD_VERBOSE is not set
145# CONFIG_OMAP_DSP_TASK_MULTIOPEN is not set
146CONFIG_OMAP_DSP_FBEXPORT=y
147
148#
149# OMAP Core Type
150#
151# CONFIG_ARCH_OMAP730 is not set
152CONFIG_ARCH_OMAP15XX=y
153# CONFIG_ARCH_OMAP16XX is not set
154
155#
156# OMAP Board Type
157#
158# CONFIG_MACH_OMAP_INNOVATOR is not set
159# CONFIG_MACH_VOICEBLUE is not set
160# CONFIG_MACH_OMAP_PALMTE is not set
161# CONFIG_MACH_OMAP_PALMZ71 is not set
162CONFIG_MACH_OMAP_PALMTT=y
163# CONFIG_MACH_AMS_DELTA is not set
164# CONFIG_MACH_OMAP_GENERIC is not set
165
166#
167# OMAP CPU Speed
168#
169CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
170# CONFIG_OMAP_ARM_168MHZ is not set
171# CONFIG_OMAP_ARM_150MHZ is not set
172# CONFIG_OMAP_ARM_120MHZ is not set
173# CONFIG_OMAP_ARM_60MHZ is not set
174# CONFIG_OMAP_ARM_30MHZ is not set
175
176#
177# Processor Type
178#
179CONFIG_CPU_32=y
180CONFIG_CPU_ARM925T=y
181CONFIG_CPU_32v4T=y
182CONFIG_CPU_ABRT_EV4T=y
183CONFIG_CPU_CACHE_V4WT=y
184CONFIG_CPU_CACHE_VIVT=y
185CONFIG_CPU_COPY_V4WB=y
186CONFIG_CPU_TLB_V4WBI=y
187CONFIG_CPU_CP15=y
188CONFIG_CPU_CP15_MMU=y
189
190#
191# Processor Features
192#
193CONFIG_ARM_THUMB=y
194# CONFIG_CPU_ICACHE_DISABLE is not set
195# CONFIG_CPU_DCACHE_DISABLE is not set
196# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
197
198#
199# Bus support
200#
201
202#
203# PCCARD (PCMCIA/CardBus) support
204#
205# CONFIG_PCCARD is not set
206
207#
208# Kernel Features
209#
210# CONFIG_PREEMPT is not set
211# CONFIG_NO_IDLE_HZ is not set
212CONFIG_HZ=100
213# CONFIG_AEABI is not set
214# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
215CONFIG_SELECT_MEMORY_MODEL=y
216CONFIG_FLATMEM_MANUAL=y
217# CONFIG_DISCONTIGMEM_MANUAL is not set
218# CONFIG_SPARSEMEM_MANUAL is not set
219CONFIG_FLATMEM=y
220CONFIG_FLAT_NODE_MEM_MAP=y
221# CONFIG_SPARSEMEM_STATIC is not set
222CONFIG_SPLIT_PTLOCK_CPUS=4096
223# CONFIG_RESOURCES_64BIT is not set
224# CONFIG_LEDS is not set
225CONFIG_ALIGNMENT_TRAP=y
226
227#
228# Boot options
229#
230CONFIG_ZBOOT_ROM_TEXT=0x0
231CONFIG_ZBOOT_ROM_BSS=0x0
232CONFIG_CMDLINE="root=/dev/mmcblk0p2 rw init=/init"
233# CONFIG_XIP_KERNEL is not set
234
235#
236# CPU Frequency scaling
237#
238# CONFIG_CPU_FREQ is not set
239
240#
241# Floating point emulation
242#
243
244#
245# At least one emulation must be selected
246#
247CONFIG_FPE_NWFPE=y
248# CONFIG_FPE_NWFPE_XP is not set
249# CONFIG_FPE_FASTFPE is not set
250
251#
252# Userspace binary formats
253#
254CONFIG_BINFMT_ELF=y
255# CONFIG_BINFMT_AOUT is not set
256# CONFIG_BINFMT_MISC is not set
257# CONFIG_ARTHUR is not set
258
259#
260# Power management options
261#
262# CONFIG_PM is not set
263# CONFIG_APM is not set
264
265#
266# Networking
267#
268CONFIG_NET=y
269
270#
271# Networking options
272#
273# CONFIG_NETDEBUG is not set
274CONFIG_PACKET=y
275# CONFIG_PACKET_MMAP is not set
276CONFIG_UNIX=y
277CONFIG_XFRM=y
278# CONFIG_XFRM_USER is not set
279# CONFIG_XFRM_SUB_POLICY is not set
280CONFIG_NET_KEY=y
281CONFIG_INET=y
282# CONFIG_IP_MULTICAST is not set
283# CONFIG_IP_ADVANCED_ROUTER is not set
284CONFIG_IP_FIB_HASH=y
285# CONFIG_IP_PNP is not set
286# CONFIG_NET_IPIP is not set
287# CONFIG_NET_IPGRE is not set
288# CONFIG_ARPD is not set
289# CONFIG_SYN_COOKIES is not set
290# CONFIG_INET_AH is not set
291# CONFIG_INET_ESP is not set
292# CONFIG_INET_IPCOMP is not set
293# CONFIG_INET_XFRM_TUNNEL is not set
294# CONFIG_INET_TUNNEL is not set
295# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
296# CONFIG_INET_XFRM_MODE_TUNNEL is not set
297# CONFIG_INET_XFRM_MODE_BEET is not set
298# CONFIG_INET_DIAG is not set
299# CONFIG_TCP_CONG_ADVANCED is not set
300CONFIG_TCP_CONG_CUBIC=y
301CONFIG_DEFAULT_TCP_CONG="cubic"
302# CONFIG_IPV6 is not set
303# CONFIG_INET6_XFRM_TUNNEL is not set
304# CONFIG_INET6_TUNNEL is not set
305# CONFIG_NETWORK_SECMARK is not set
306# CONFIG_NETFILTER is not set
307
308#
309# DCCP Configuration (EXPERIMENTAL)
310#
311# CONFIG_IP_DCCP is not set
312
313#
314# SCTP Configuration (EXPERIMENTAL)
315#
316# CONFIG_IP_SCTP is not set
317
318#
319# TIPC Configuration (EXPERIMENTAL)
320#
321# CONFIG_TIPC is not set
322# CONFIG_ATM is not set
323# CONFIG_BRIDGE is not set
324# CONFIG_VLAN_8021Q is not set
325# CONFIG_DECNET is not set
326# CONFIG_LLC2 is not set
327# CONFIG_IPX is not set
328# CONFIG_ATALK is not set
329# CONFIG_X25 is not set
330# CONFIG_LAPB is not set
331# CONFIG_ECONET is not set
332# CONFIG_WAN_ROUTER is not set
333
334#
335# QoS and/or fair queueing
336#
337# CONFIG_NET_SCHED is not set
338
339#
340# Network testing
341#
342# CONFIG_NET_PKTGEN is not set
343# CONFIG_HAMRADIO is not set
344# CONFIG_IRDA is not set
345# CONFIG_BT is not set
346# CONFIG_IEEE80211 is not set
347
348#
349# Device Drivers
350#
351
352#
353# Generic Driver Options
354#
355CONFIG_STANDALONE=y
356CONFIG_PREVENT_FIRMWARE_BUILD=y
357# CONFIG_FW_LOADER is not set
358# CONFIG_SYS_HYPERVISOR is not set
359
360#
361# Connector - unified userspace <-> kernelspace linker
362#
363# CONFIG_CONNECTOR is not set
364
365#
366# Memory Technology Devices (MTD)
367#
368# CONFIG_MTD is not set
369
370#
371# Parallel port support
372#
373# CONFIG_PARPORT is not set
374
375#
376# Plug and Play support
377#
378
379#
380# Block devices
381#
382# CONFIG_BLK_DEV_COW_COMMON is not set
383# CONFIG_BLK_DEV_LOOP is not set
384# CONFIG_BLK_DEV_NBD is not set
385# CONFIG_BLK_DEV_RAM is not set
386# CONFIG_BLK_DEV_INITRD is not set
387# CONFIG_CDROM_PKTCDVD is not set
388# CONFIG_ATA_OVER_ETH is not set
389
390#
391# SCSI device support
392#
393# CONFIG_RAID_ATTRS is not set
394# CONFIG_SCSI is not set
395# CONFIG_SCSI_NETLINK is not set
396
397#
398# Multi-device support (RAID and LVM)
399#
400# CONFIG_MD is not set
401
402#
403# Fusion MPT device support
404#
405# CONFIG_FUSION is not set
406
407#
408# IEEE 1394 (FireWire) support
409#
410
411#
412# I2O device support
413#
414
415#
416# Network device support
417#
418# CONFIG_NETDEVICES is not set
419# CONFIG_NETPOLL is not set
420# CONFIG_NET_POLL_CONTROLLER is not set
421
422#
423# ISDN subsystem
424#
425# CONFIG_ISDN is not set
426
427#
428# Input device support
429#
430CONFIG_INPUT=y
431# CONFIG_INPUT_FF_MEMLESS is not set
432
433#
434# Userland interfaces
435#
436CONFIG_INPUT_MOUSEDEV=y
437CONFIG_INPUT_MOUSEDEV_PSAUX=y
438CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
439CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
440# CONFIG_INPUT_JOYDEV is not set
441CONFIG_INPUT_TSDEV=y
442CONFIG_INPUT_TSDEV_SCREEN_X=320
443CONFIG_INPUT_TSDEV_SCREEN_Y=320
444CONFIG_INPUT_EVDEV=y
445# CONFIG_INPUT_EVBUG is not set
446
447#
448# Input Device Drivers
449#
450# CONFIG_INPUT_KEYBOARD is not set
451# CONFIG_INPUT_MOUSE is not set
452# CONFIG_INPUT_JOYSTICK is not set
453CONFIG_INPUT_TOUCHSCREEN=y
454CONFIG_TOUCHSCREEN_ADS7846=y
455# CONFIG_TOUCHSCREEN_GUNZE is not set
456# CONFIG_TOUCHSCREEN_ELO is not set
457# CONFIG_TOUCHSCREEN_MTOUCH is not set
458# CONFIG_TOUCHSCREEN_MK712 is not set
459# CONFIG_TOUCHSCREEN_PENMOUNT is not set
460# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
461# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
462# CONFIG_TOUCHSCREEN_TSC2102 is not set
463# CONFIG_INPUT_MISC is not set
464
465#
466# Hardware I/O ports
467#
468# CONFIG_SERIO is not set
469# CONFIG_GAMEPORT is not set
470
471#
472# Character devices
473#
474CONFIG_VT=y
475CONFIG_VT_CONSOLE=y
476CONFIG_HW_CONSOLE=y
477# CONFIG_VT_HW_CONSOLE_BINDING is not set
478# CONFIG_SERIAL_NONSTANDARD is not set
479
480#
481# Serial drivers
482#
483# CONFIG_SERIAL_8250 is not set
484
485#
486# Non-8250 serial port support
487#
488CONFIG_UNIX98_PTYS=y
489CONFIG_LEGACY_PTYS=y
490CONFIG_LEGACY_PTY_COUNT=256
491
492#
493# IPMI
494#
495# CONFIG_IPMI_HANDLER is not set
496
497#
498# Watchdog Cards
499#
500# CONFIG_WATCHDOG is not set
501CONFIG_HW_RANDOM=y
502# CONFIG_NVRAM is not set
503# CONFIG_OMAP_RTC is not set
504# CONFIG_DTLK is not set
505# CONFIG_R3964 is not set
506
507#
508# Ftape, the floppy tape device driver
509#
510# CONFIG_RAW_DRIVER is not set
511
512#
513# TPM devices
514#
515# CONFIG_TCG_TPM is not set
516
517#
518# I2C support
519#
520# CONFIG_I2C is not set
521
522#
523# SPI support
524#
525CONFIG_SPI=y
526CONFIG_SPI_MASTER=y
527
528#
529# SPI Master Controller Drivers
530#
531CONFIG_SPI_BITBANG=y
532CONFIG_SPI_OMAP_UWIRE=y
533
534#
535# SPI Protocol Masters
536#
537# CONFIG_TSC2102 is not set
538
539#
540# Dallas's 1-wire bus
541#
542# CONFIG_W1 is not set
543
544#
545# Hardware Monitoring support
546#
547CONFIG_HWMON=y
548# CONFIG_HWMON_VID is not set
549# CONFIG_SENSORS_ABITUGURU is not set
550# CONFIG_SENSORS_F71805F is not set
551# CONFIG_SENSORS_LM70 is not set
552# CONFIG_SENSORS_VT1211 is not set
553# CONFIG_HWMON_DEBUG_CHIP is not set
554
555#
556# Misc devices
557#
558# CONFIG_SGI_IOC4 is not set
559# CONFIG_TIFM_CORE is not set
560
561#
562# LED devices
563#
564CONFIG_NEW_LEDS=y
565CONFIG_LEDS_CLASS=y
566
567#
568# LED drivers
569#
570CONFIG_LEDS_OMAP=y
571
572#
573# LED Triggers
574#
575CONFIG_LEDS_TRIGGERS=y
576CONFIG_LEDS_TRIGGER_TIMER=y
577CONFIG_LEDS_TRIGGER_HEARTBEAT=y
578
579#
580# Multimedia devices
581#
582# CONFIG_VIDEO_DEV is not set
583
584#
585# Digital Video Broadcasting Devices
586#
587# CONFIG_DVB is not set
588
589#
590# Graphics support
591#
592CONFIG_FIRMWARE_EDID=y
593CONFIG_FB=y
594# CONFIG_FB_CFB_FILLRECT is not set
595# CONFIG_FB_CFB_COPYAREA is not set
596# CONFIG_FB_CFB_IMAGEBLIT is not set
597# CONFIG_FB_MACMODES is not set
598# CONFIG_FB_BACKLIGHT is not set
599# CONFIG_FB_MODE_HELPERS is not set
600# CONFIG_FB_TILEBLITTING is not set
601# CONFIG_FB_S1D13XXX is not set
602# CONFIG_FB_VIRTUAL is not set
603CONFIG_FB_OMAP=y
604# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
605# CONFIG_FB_OMAP_LCD_MIPID is not set
606# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
607CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
608# CONFIG_FB_OMAP_DMA_TUNE is not set
609
610#
611# Console display driver support
612#
613# CONFIG_VGA_CONSOLE is not set
614CONFIG_DUMMY_CONSOLE=y
615CONFIG_FRAMEBUFFER_CONSOLE=y
616# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
617# CONFIG_FONTS is not set
618CONFIG_FONT_8x8=y
619CONFIG_FONT_8x16=y
620
621#
622# Logo configuration
623#
624# CONFIG_LOGO is not set
625CONFIG_BACKLIGHT_LCD_SUPPORT=y
626CONFIG_BACKLIGHT_CLASS_DEVICE=y
627CONFIG_BACKLIGHT_DEVICE=y
628CONFIG_LCD_CLASS_DEVICE=y
629CONFIG_LCD_DEVICE=y
630CONFIG_BACKLIGHT_OMAP=y
631
632#
633# Sound
634#
635# CONFIG_SOUND is not set
636
637#
638# USB support
639#
640CONFIG_USB_ARCH_HAS_HCD=y
641CONFIG_USB_ARCH_HAS_OHCI=y
642# CONFIG_USB_ARCH_HAS_EHCI is not set
643# CONFIG_USB is not set
644
645#
646# Enable Host or Gadget support to see Inventra options
647#
648
649#
650# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
651#
652
653#
654# USB Gadget Support
655#
656# CONFIG_USB_GADGET is not set
657
658#
659# MMC/SD Card support
660#
661# CONFIG_MMC is not set
662
663#
664# Real Time Clock
665#
666CONFIG_RTC_LIB=y
667CONFIG_RTC_CLASS=y
668CONFIG_RTC_HCTOSYS=y
669CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
670# CONFIG_RTC_DEBUG is not set
671
672#
673# RTC interfaces
674#
675CONFIG_RTC_INTF_SYSFS=y
676CONFIG_RTC_INTF_PROC=y
677CONFIG_RTC_INTF_DEV=y
678# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
679
680#
681# RTC drivers
682#
683# CONFIG_RTC_DRV_DS1553 is not set
684# CONFIG_RTC_DRV_DS1742 is not set
685CONFIG_RTC_DRV_OMAP=y
686# CONFIG_RTC_DRV_RS5C348 is not set
687# CONFIG_RTC_DRV_M48T86 is not set
688# CONFIG_RTC_DRV_TEST is not set
689# CONFIG_RTC_DRV_MAX6902 is not set
690# CONFIG_RTC_DRV_V3020 is not set
691
692#
693# Synchronous Serial Interfaces (SSI)
694#
695# CONFIG_OMAP_UWIRE is not set
696# CONFIG_OMAP_TSC2101 is not set
697
698#
699# CBUS support
700#
701# CONFIG_CBUS is not set
702
703#
704# File systems
705#
706CONFIG_EXT2_FS=y
707# CONFIG_EXT2_FS_XATTR is not set
708# CONFIG_EXT2_FS_XIP is not set
709# CONFIG_EXT3_FS is not set
710# CONFIG_EXT4DEV_FS is not set
711# CONFIG_REISERFS_FS is not set
712# CONFIG_JFS_FS is not set
713# CONFIG_FS_POSIX_ACL is not set
714# CONFIG_XFS_FS is not set
715# CONFIG_GFS2_FS is not set
716# CONFIG_OCFS2_FS is not set
717# CONFIG_MINIX_FS is not set
718# CONFIG_ROMFS_FS is not set
719# CONFIG_INOTIFY is not set
720# CONFIG_QUOTA is not set
721CONFIG_DNOTIFY=y
722# CONFIG_AUTOFS_FS is not set
723# CONFIG_AUTOFS4_FS is not set
724# CONFIG_FUSE_FS is not set
725
726#
727# CD-ROM/DVD Filesystems
728#
729# CONFIG_ISO9660_FS is not set
730# CONFIG_UDF_FS is not set
731
732#
733# DOS/FAT/NT Filesystems
734#
735# CONFIG_MSDOS_FS is not set
736# CONFIG_VFAT_FS is not set
737# CONFIG_NTFS_FS is not set
738
739#
740# Pseudo filesystems
741#
742CONFIG_PROC_FS=y
743CONFIG_PROC_SYSCTL=y
744CONFIG_SYSFS=y
745# CONFIG_TMPFS is not set
746# CONFIG_HUGETLB_PAGE is not set
747CONFIG_RAMFS=y
748# CONFIG_CONFIGFS_FS is not set
749
750#
751# Miscellaneous filesystems
752#
753# CONFIG_ADFS_FS is not set
754# CONFIG_AFFS_FS is not set
755# CONFIG_HFS_FS is not set
756# CONFIG_HFSPLUS_FS is not set
757# CONFIG_BEFS_FS is not set
758# CONFIG_BFS_FS is not set
759# CONFIG_EFS_FS is not set
760# CONFIG_CRAMFS is not set
761# CONFIG_VXFS_FS is not set
762# CONFIG_HPFS_FS is not set
763# CONFIG_QNX4FS_FS is not set
764# CONFIG_SYSV_FS is not set
765# CONFIG_UFS_FS is not set
766
767#
768# Network File Systems
769#
770# CONFIG_NFS_FS is not set
771# CONFIG_NFSD is not set
772# CONFIG_SMB_FS is not set
773# CONFIG_CIFS is not set
774# CONFIG_NCP_FS is not set
775# CONFIG_CODA_FS is not set
776# CONFIG_AFS_FS is not set
777# CONFIG_9P_FS is not set
778
779#
780# Partition Types
781#
782CONFIG_PARTITION_ADVANCED=y
783# CONFIG_ACORN_PARTITION is not set
784# CONFIG_OSF_PARTITION is not set
785# CONFIG_AMIGA_PARTITION is not set
786# CONFIG_ATARI_PARTITION is not set
787# CONFIG_MAC_PARTITION is not set
788CONFIG_MSDOS_PARTITION=y
789# CONFIG_BSD_DISKLABEL is not set
790# CONFIG_MINIX_SUBPARTITION is not set
791# CONFIG_SOLARIS_X86_PARTITION is not set
792# CONFIG_UNIXWARE_DISKLABEL is not set
793# CONFIG_LDM_PARTITION is not set
794# CONFIG_SGI_PARTITION is not set
795# CONFIG_ULTRIX_PARTITION is not set
796# CONFIG_SUN_PARTITION is not set
797# CONFIG_KARMA_PARTITION is not set
798# CONFIG_EFI_PARTITION is not set
799
800#
801# Native Language Support
802#
803# CONFIG_NLS is not set
804
805#
806# Profiling support
807#
808# CONFIG_PROFILING is not set
809
810#
811# Kernel hacking
812#
813# CONFIG_PRINTK_TIME is not set
814# CONFIG_ENABLE_MUST_CHECK is not set
815# CONFIG_MAGIC_SYSRQ is not set
816# CONFIG_UNUSED_SYMBOLS is not set
817# CONFIG_DEBUG_KERNEL is not set
818CONFIG_LOG_BUF_SHIFT=14
819CONFIG_DEBUG_BUGVERBOSE=y
820# CONFIG_DEBUG_FS is not set
821CONFIG_FRAME_POINTER=y
822# CONFIG_UNWIND_INFO is not set
823# CONFIG_HEADERS_CHECK is not set
824# CONFIG_DEBUG_USER is not set
825
826#
827# Security options
828#
829# CONFIG_KEYS is not set
830# CONFIG_SECURITY is not set
831
832#
833# Cryptographic options
834#
835# CONFIG_CRYPTO is not set
836
837#
838# Library routines
839#
840CONFIG_CRC_CCITT=y
841CONFIG_CRC16=y
842CONFIG_CRC32=y
843CONFIG_LIBCRC32C=y
844CONFIG_PLIST=y
diff --git a/arch/arm/configs/palmz71_defconfig b/arch/arm/configs/palmz71_defconfig
new file mode 100644
index 00000000000..6361922e71c
--- /dev/null
+++ b/arch/arm/configs/palmz71_defconfig
@@ -0,0 +1,891 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22-rc1-omap1
4# Thu Jun 7 05:13:00 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# Code maturity level options
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34
35#
36# General setup
37#
38CONFIG_LOCALVERSION="-z71"
39CONFIG_LOCALVERSION_AUTO=y
40CONFIG_SWAP=y
41CONFIG_SYSVIPC=y
42# CONFIG_IPC_NS is not set
43CONFIG_SYSVIPC_SYSCTL=y
44# CONFIG_POSIX_MQUEUE is not set
45CONFIG_BSD_PROCESS_ACCT=y
46# CONFIG_BSD_PROCESS_ACCT_V3 is not set
47# CONFIG_TASKSTATS is not set
48# CONFIG_UTS_NS is not set
49# CONFIG_AUDIT is not set
50# CONFIG_IKCONFIG is not set
51CONFIG_LOG_BUF_SHIFT=14
52CONFIG_SYSFS_DEPRECATED=y
53# CONFIG_RELAY is not set
54# CONFIG_BLK_DEV_INITRD is not set
55CONFIG_CC_OPTIMIZE_FOR_SIZE=y
56CONFIG_SYSCTL=y
57# CONFIG_EMBEDDED is not set
58CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y
60CONFIG_KALLSYMS=y
61# CONFIG_KALLSYMS_EXTRA_PASS is not set
62CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y
64CONFIG_BUG=y
65CONFIG_ELF_CORE=y
66CONFIG_BASE_FULL=y
67CONFIG_FUTEX=y
68CONFIG_ANON_INODES=y
69CONFIG_EPOLL=y
70CONFIG_SIGNALFD=y
71CONFIG_TIMERFD=y
72CONFIG_EVENTFD=y
73CONFIG_SHMEM=y
74CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_SLAB=y
76# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set
78CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0
81
82#
83# Loadable module support
84#
85# CONFIG_MODULES is not set
86
87#
88# Block layer
89#
90CONFIG_BLOCK=y
91# CONFIG_LBD is not set
92# CONFIG_BLK_DEV_IO_TRACE is not set
93# CONFIG_LSF is not set
94
95#
96# IO Schedulers
97#
98CONFIG_IOSCHED_NOOP=y
99# CONFIG_IOSCHED_AS is not set
100# CONFIG_IOSCHED_DEADLINE is not set
101# CONFIG_IOSCHED_CFQ is not set
102# CONFIG_DEFAULT_AS is not set
103# CONFIG_DEFAULT_DEADLINE is not set
104# CONFIG_DEFAULT_CFQ is not set
105CONFIG_DEFAULT_NOOP=y
106CONFIG_DEFAULT_IOSCHED="noop"
107
108#
109# System Type
110#
111# CONFIG_ARCH_AAEC2000 is not set
112# CONFIG_ARCH_INTEGRATOR is not set
113# CONFIG_ARCH_REALVIEW is not set
114# CONFIG_ARCH_VERSATILE is not set
115# CONFIG_ARCH_AT91 is not set
116# CONFIG_ARCH_CLPS7500 is not set
117# CONFIG_ARCH_CLPS711X is not set
118# CONFIG_ARCH_CO285 is not set
119# CONFIG_ARCH_EBSA110 is not set
120# CONFIG_ARCH_EP93XX is not set
121# CONFIG_ARCH_FOOTBRIDGE is not set
122# CONFIG_ARCH_NETX is not set
123# CONFIG_ARCH_H720X is not set
124# CONFIG_ARCH_IMX is not set
125# CONFIG_ARCH_IOP13XX is not set
126# CONFIG_ARCH_IOP32X is not set
127# CONFIG_ARCH_IOP33X is not set
128# CONFIG_ARCH_IXP23XX is not set
129# CONFIG_ARCH_IXP2000 is not set
130# CONFIG_ARCH_IXP4XX is not set
131# CONFIG_ARCH_L7200 is not set
132# CONFIG_ARCH_KS8695 is not set
133# CONFIG_ARCH_NS9XXX is not set
134# CONFIG_ARCH_PNX4008 is not set
135# CONFIG_ARCH_PXA is not set
136# CONFIG_ARCH_RPC is not set
137# CONFIG_ARCH_SA1100 is not set
138# CONFIG_ARCH_S3C2410 is not set
139# CONFIG_ARCH_SHARK is not set
140# CONFIG_ARCH_LH7A40X is not set
141# CONFIG_ARCH_DAVINCI is not set
142CONFIG_ARCH_OMAP=y
143
144#
145# TI OMAP Implementations
146#
147CONFIG_ARCH_OMAP1=y
148# CONFIG_ARCH_OMAP2 is not set
149
150#
151# OMAP Feature Selections
152#
153# CONFIG_OMAP_RESET_CLOCKS is not set
154# CONFIG_OMAP_BOOT_TAG is not set
155# CONFIG_OMAP_GPIO_SWITCH is not set
156CONFIG_OMAP_MUX=y
157# CONFIG_OMAP_MUX_DEBUG is not set
158CONFIG_OMAP_MUX_WARNINGS=y
159CONFIG_OMAP_MCBSP=y
160# CONFIG_OMAP_MMU_FWK is not set
161# CONFIG_OMAP_MBOX_FWK is not set
162CONFIG_OMAP_MPU_TIMER=y
163# CONFIG_OMAP_32K_TIMER is not set
164CONFIG_OMAP_LL_DEBUG_UART1=y
165# CONFIG_OMAP_LL_DEBUG_UART2 is not set
166# CONFIG_OMAP_LL_DEBUG_UART3 is not set
167# CONFIG_OMAP_LL_DEBUG_LCD is not set
168CONFIG_OMAP_SERIAL_WAKE=y
169# CONFIG_OMAP_DSP is not set
170
171#
172# OMAP Core Type
173#
174# CONFIG_ARCH_OMAP730 is not set
175CONFIG_ARCH_OMAP15XX=y
176# CONFIG_ARCH_OMAP16XX is not set
177
178#
179# OMAP Board Type
180#
181# CONFIG_MACH_OMAP_INNOVATOR is not set
182# CONFIG_MACH_VOICEBLUE is not set
183# CONFIG_MACH_OMAP_PALMTE is not set
184CONFIG_MACH_OMAP_PALMZ71=y
185# CONFIG_MACH_OMAP_PALMTT is not set
186# CONFIG_MACH_SX1 is not set
187# CONFIG_MACH_AMS_DELTA is not set
188# CONFIG_MACH_OMAP_GENERIC is not set
189
190#
191# OMAP CPU Speed
192#
193CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
194# CONFIG_OMAP_ARM_168MHZ is not set
195# CONFIG_OMAP_ARM_150MHZ is not set
196# CONFIG_OMAP_ARM_120MHZ is not set
197# CONFIG_OMAP_ARM_60MHZ is not set
198# CONFIG_OMAP_ARM_30MHZ is not set
199
200#
201# Processor Type
202#
203CONFIG_CPU_32=y
204CONFIG_CPU_ARM925T=y
205CONFIG_CPU_32v4T=y
206CONFIG_CPU_ABRT_EV4T=y
207CONFIG_CPU_CACHE_V4WT=y
208CONFIG_CPU_CACHE_VIVT=y
209CONFIG_CPU_COPY_V4WB=y
210CONFIG_CPU_TLB_V4WBI=y
211CONFIG_CPU_CP15=y
212CONFIG_CPU_CP15_MMU=y
213
214#
215# Processor Features
216#
217# CONFIG_ARM_THUMB is not set
218# CONFIG_CPU_ICACHE_DISABLE is not set
219# CONFIG_CPU_DCACHE_DISABLE is not set
220# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
221# CONFIG_OUTER_CACHE is not set
222
223#
224# Bus support
225#
226# CONFIG_ARCH_SUPPORTS_MSI is not set
227
228#
229# PCCARD (PCMCIA/CardBus) support
230#
231# CONFIG_PCCARD is not set
232
233#
234# Kernel Features
235#
236# CONFIG_TICK_ONESHOT is not set
237# CONFIG_NO_HZ is not set
238# CONFIG_HIGH_RES_TIMERS is not set
239# CONFIG_PREEMPT is not set
240CONFIG_HZ=100
241# CONFIG_AEABI is not set
242# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
243CONFIG_SELECT_MEMORY_MODEL=y
244CONFIG_FLATMEM_MANUAL=y
245# CONFIG_DISCONTIGMEM_MANUAL is not set
246# CONFIG_SPARSEMEM_MANUAL is not set
247CONFIG_FLATMEM=y
248CONFIG_FLAT_NODE_MEM_MAP=y
249# CONFIG_SPARSEMEM_STATIC is not set
250CONFIG_SPLIT_PTLOCK_CPUS=4096
251# CONFIG_RESOURCES_64BIT is not set
252CONFIG_ZONE_DMA_FLAG=1
253# CONFIG_LEDS is not set
254CONFIG_ALIGNMENT_TRAP=y
255
256#
257# Boot options
258#
259CONFIG_ZBOOT_ROM_TEXT=0x0
260CONFIG_ZBOOT_ROM_BSS=0x0
261CONFIG_CMDLINE=""
262# CONFIG_XIP_KERNEL is not set
263# CONFIG_KEXEC is not set
264
265#
266# CPU Frequency scaling
267#
268# CONFIG_CPU_FREQ is not set
269
270#
271# Floating point emulation
272#
273
274#
275# At least one emulation must be selected
276#
277CONFIG_FPE_NWFPE=y
278# CONFIG_FPE_NWFPE_XP is not set
279# CONFIG_FPE_FASTFPE is not set
280
281#
282# Userspace binary formats
283#
284CONFIG_BINFMT_ELF=y
285# CONFIG_BINFMT_AOUT is not set
286# CONFIG_BINFMT_MISC is not set
287# CONFIG_ARTHUR is not set
288
289#
290# Power management options
291#
292# CONFIG_PM is not set
293
294#
295# Networking
296#
297CONFIG_NET=y
298
299#
300# Networking options
301#
302CONFIG_PACKET=y
303# CONFIG_PACKET_MMAP is not set
304CONFIG_UNIX=y
305CONFIG_XFRM=y
306# CONFIG_XFRM_USER is not set
307# CONFIG_XFRM_SUB_POLICY is not set
308# CONFIG_XFRM_MIGRATE is not set
309CONFIG_NET_KEY=y
310# CONFIG_NET_KEY_MIGRATE is not set
311CONFIG_INET=y
312# CONFIG_IP_MULTICAST is not set
313# CONFIG_IP_ADVANCED_ROUTER is not set
314CONFIG_IP_FIB_HASH=y
315# CONFIG_IP_PNP is not set
316# CONFIG_NET_IPIP is not set
317# CONFIG_NET_IPGRE is not set
318# CONFIG_ARPD is not set
319# CONFIG_SYN_COOKIES is not set
320# CONFIG_INET_AH is not set
321# CONFIG_INET_ESP is not set
322# CONFIG_INET_IPCOMP is not set
323# CONFIG_INET_XFRM_TUNNEL is not set
324# CONFIG_INET_TUNNEL is not set
325# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
326# CONFIG_INET_XFRM_MODE_TUNNEL is not set
327CONFIG_INET_XFRM_MODE_BEET=y
328# CONFIG_INET_DIAG is not set
329# CONFIG_TCP_CONG_ADVANCED is not set
330CONFIG_TCP_CONG_CUBIC=y
331CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_TCP_MD5SIG is not set
333# CONFIG_IPV6 is not set
334# CONFIG_INET6_XFRM_TUNNEL is not set
335# CONFIG_INET6_TUNNEL is not set
336# CONFIG_NETWORK_SECMARK is not set
337# CONFIG_NETFILTER is not set
338
339#
340# DCCP Configuration (EXPERIMENTAL)
341#
342# CONFIG_IP_DCCP is not set
343
344#
345# SCTP Configuration (EXPERIMENTAL)
346#
347# CONFIG_IP_SCTP is not set
348
349#
350# TIPC Configuration (EXPERIMENTAL)
351#
352# CONFIG_TIPC is not set
353# CONFIG_ATM is not set
354# CONFIG_BRIDGE is not set
355# CONFIG_VLAN_8021Q is not set
356# CONFIG_DECNET is not set
357# CONFIG_LLC2 is not set
358# CONFIG_IPX is not set
359# CONFIG_ATALK is not set
360# CONFIG_X25 is not set
361# CONFIG_LAPB is not set
362# CONFIG_ECONET is not set
363# CONFIG_WAN_ROUTER is not set
364
365#
366# QoS and/or fair queueing
367#
368# CONFIG_NET_SCHED is not set
369
370#
371# Network testing
372#
373# CONFIG_NET_PKTGEN is not set
374# CONFIG_HAMRADIO is not set
375# CONFIG_IRDA is not set
376# CONFIG_BT is not set
377# CONFIG_AF_RXRPC is not set
378
379#
380# Wireless
381#
382# CONFIG_CFG80211 is not set
383# CONFIG_WIRELESS_EXT is not set
384# CONFIG_MAC80211 is not set
385# CONFIG_IEEE80211 is not set
386# CONFIG_RFKILL is not set
387
388#
389# Device Drivers
390#
391
392#
393# Generic Driver Options
394#
395CONFIG_STANDALONE=y
396CONFIG_PREVENT_FIRMWARE_BUILD=y
397# CONFIG_FW_LOADER is not set
398# CONFIG_SYS_HYPERVISOR is not set
399
400#
401# Connector - unified userspace <-> kernelspace linker
402#
403# CONFIG_CONNECTOR is not set
404# CONFIG_MTD is not set
405
406#
407# Parallel port support
408#
409# CONFIG_PARPORT is not set
410
411#
412# Plug and Play support
413#
414# CONFIG_PNPACPI is not set
415
416#
417# Block devices
418#
419# CONFIG_BLK_DEV_COW_COMMON is not set
420# CONFIG_BLK_DEV_LOOP is not set
421# CONFIG_BLK_DEV_NBD is not set
422# CONFIG_BLK_DEV_RAM is not set
423# CONFIG_CDROM_PKTCDVD is not set
424# CONFIG_ATA_OVER_ETH is not set
425
426#
427# SCSI device support
428#
429# CONFIG_RAID_ATTRS is not set
430# CONFIG_SCSI is not set
431# CONFIG_SCSI_NETLINK is not set
432# CONFIG_ATA is not set
433
434#
435# Multi-device support (RAID and LVM)
436#
437# CONFIG_MD is not set
438
439#
440# Network device support
441#
442# CONFIG_NETDEVICES is not set
443# CONFIG_NETPOLL is not set
444# CONFIG_NET_POLL_CONTROLLER is not set
445
446#
447# ISDN subsystem
448#
449# CONFIG_ISDN is not set
450
451#
452# Input device support
453#
454CONFIG_INPUT=y
455# CONFIG_INPUT_FF_MEMLESS is not set
456
457#
458# Userland interfaces
459#
460CONFIG_INPUT_MOUSEDEV=y
461CONFIG_INPUT_MOUSEDEV_PSAUX=y
462CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
463CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
464# CONFIG_INPUT_JOYDEV is not set
465CONFIG_INPUT_TSDEV=y
466CONFIG_INPUT_TSDEV_SCREEN_X=320
467CONFIG_INPUT_TSDEV_SCREEN_Y=320
468# CONFIG_INPUT_EVDEV is not set
469# CONFIG_INPUT_EVBUG is not set
470
471#
472# Input Device Drivers
473#
474# CONFIG_INPUT_KEYBOARD is not set
475# CONFIG_INPUT_MOUSE is not set
476# CONFIG_INPUT_JOYSTICK is not set
477# CONFIG_INPUT_TABLET is not set
478CONFIG_INPUT_TOUCHSCREEN=y
479CONFIG_TOUCHSCREEN_ADS7846=y
480# CONFIG_TOUCHSCREEN_GUNZE is not set
481# CONFIG_TOUCHSCREEN_ELO is not set
482# CONFIG_TOUCHSCREEN_MTOUCH is not set
483# CONFIG_TOUCHSCREEN_MK712 is not set
484# CONFIG_TOUCHSCREEN_PENMOUNT is not set
485# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
486# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
487# CONFIG_TOUCHSCREEN_UCB1400 is not set
488# CONFIG_TOUCHSCREEN_TSC210X is not set
489# CONFIG_TOUCHSCREEN_TSC2046 is not set
490# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
491# CONFIG_INPUT_MISC is not set
492
493#
494# Hardware I/O ports
495#
496# CONFIG_SERIO is not set
497# CONFIG_GAMEPORT is not set
498
499#
500# Character devices
501#
502CONFIG_VT=y
503CONFIG_VT_CONSOLE=y
504CONFIG_HW_CONSOLE=y
505# CONFIG_VT_HW_CONSOLE_BINDING is not set
506# CONFIG_SERIAL_NONSTANDARD is not set
507
508#
509# Serial drivers
510#
511CONFIG_SERIAL_8250=y
512CONFIG_SERIAL_8250_CONSOLE=y
513CONFIG_SERIAL_8250_NR_UARTS=4
514CONFIG_SERIAL_8250_RUNTIME_UARTS=4
515# CONFIG_SERIAL_8250_EXTENDED is not set
516
517#
518# Non-8250 serial port support
519#
520CONFIG_SERIAL_CORE=y
521CONFIG_SERIAL_CORE_CONSOLE=y
522CONFIG_UNIX98_PTYS=y
523CONFIG_LEGACY_PTYS=y
524CONFIG_LEGACY_PTY_COUNT=16
525
526#
527# IPMI
528#
529# CONFIG_IPMI_HANDLER is not set
530# CONFIG_WATCHDOG is not set
531CONFIG_HW_RANDOM=y
532# CONFIG_NVRAM is not set
533# CONFIG_R3964 is not set
534# CONFIG_RAW_DRIVER is not set
535
536#
537# TPM devices
538#
539# CONFIG_TCG_TPM is not set
540# CONFIG_I2C is not set
541
542#
543# SPI support
544#
545CONFIG_SPI=y
546CONFIG_SPI_MASTER=y
547
548#
549# SPI Master Controller Drivers
550#
551CONFIG_SPI_BITBANG=y
552CONFIG_SPI_OMAP_UWIRE=y
553
554#
555# SPI Protocol Masters
556#
557# CONFIG_SPI_AT25 is not set
558# CONFIG_SPI_TSC2101 is not set
559# CONFIG_SPI_TSC2102 is not set
560# CONFIG_SPI_TSC210X is not set
561# CONFIG_SPI_TSC2301 is not set
562# CONFIG_SPI_SPIDEV is not set
563
564#
565# Dallas's 1-wire bus
566#
567# CONFIG_W1 is not set
568CONFIG_HWMON=y
569# CONFIG_HWMON_VID is not set
570# CONFIG_SENSORS_ABITUGURU is not set
571# CONFIG_SENSORS_F71805F is not set
572# CONFIG_SENSORS_LM70 is not set
573# CONFIG_SENSORS_PC87427 is not set
574# CONFIG_SENSORS_SMSC47M1 is not set
575# CONFIG_SENSORS_SMSC47B397 is not set
576# CONFIG_SENSORS_VT1211 is not set
577# CONFIG_SENSORS_W83627HF is not set
578# CONFIG_SENSORS_TSC210X is not set
579# CONFIG_HWMON_DEBUG_CHIP is not set
580
581#
582# Misc devices
583#
584# CONFIG_BLINK is not set
585
586#
587# Multifunction device drivers
588#
589# CONFIG_MFD_SM501 is not set
590
591#
592# LED devices
593#
594# CONFIG_NEW_LEDS is not set
595
596#
597# LED drivers
598#
599
600#
601# LED Triggers
602#
603
604#
605# Multimedia devices
606#
607# CONFIG_VIDEO_DEV is not set
608# CONFIG_DVB_CORE is not set
609CONFIG_DAB=y
610
611#
612# Graphics support
613#
614CONFIG_BACKLIGHT_LCD_SUPPORT=y
615CONFIG_BACKLIGHT_CLASS_DEVICE=y
616CONFIG_LCD_CLASS_DEVICE=y
617CONFIG_BACKLIGHT_OMAP=y
618
619#
620# Display device support
621#
622# CONFIG_DISPLAY_SUPPORT is not set
623# CONFIG_VGASTATE is not set
624CONFIG_FB=y
625CONFIG_FIRMWARE_EDID=y
626# CONFIG_FB_DDC is not set
627# CONFIG_FB_CFB_FILLRECT is not set
628# CONFIG_FB_CFB_COPYAREA is not set
629# CONFIG_FB_CFB_IMAGEBLIT is not set
630# CONFIG_FB_SYS_FILLRECT is not set
631# CONFIG_FB_SYS_COPYAREA is not set
632# CONFIG_FB_SYS_IMAGEBLIT is not set
633# CONFIG_FB_SYS_FOPS is not set
634CONFIG_FB_DEFERRED_IO=y
635# CONFIG_FB_SVGALIB is not set
636# CONFIG_FB_MACMODES is not set
637# CONFIG_FB_BACKLIGHT is not set
638# CONFIG_FB_MODE_HELPERS is not set
639# CONFIG_FB_TILEBLITTING is not set
640
641#
642# Frame buffer hardware drivers
643#
644# CONFIG_FB_S1D13XXX is not set
645CONFIG_FB_OMAP=y
646# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
647# CONFIG_FB_OMAP_LCD_MIPID is not set
648# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
649CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
650# CONFIG_FB_OMAP_DMA_TUNE is not set
651# CONFIG_FB_VIRTUAL is not set
652
653#
654# Console display driver support
655#
656# CONFIG_VGA_CONSOLE is not set
657CONFIG_DUMMY_CONSOLE=y
658CONFIG_FRAMEBUFFER_CONSOLE=y
659# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
660# CONFIG_FONTS is not set
661CONFIG_FONT_8x8=y
662CONFIG_FONT_8x16=y
663# CONFIG_LOGO is not set
664
665#
666# Sound
667#
668# CONFIG_SOUND is not set
669
670#
671# HID Devices
672#
673CONFIG_HID=y
674# CONFIG_HID_DEBUG is not set
675
676#
677# USB support
678#
679CONFIG_USB_ARCH_HAS_HCD=y
680CONFIG_USB_ARCH_HAS_OHCI=y
681# CONFIG_USB_ARCH_HAS_EHCI is not set
682# CONFIG_USB is not set
683
684#
685# Enable Host or Gadget support to see Inventra options
686#
687
688#
689# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
690#
691
692#
693# USB Gadget Support
694#
695# CONFIG_USB_GADGET is not set
696CONFIG_MMC=y
697# CONFIG_MMC_DEBUG is not set
698# CONFIG_MMC_UNSAFE_RESUME is not set
699
700#
701# MMC/SD Card Drivers
702#
703CONFIG_MMC_BLOCK=y
704
705#
706# MMC/SD Host Controller Drivers
707#
708CONFIG_MMC_OMAP=y
709
710#
711# Real Time Clock
712#
713CONFIG_RTC_LIB=y
714CONFIG_RTC_CLASS=y
715CONFIG_RTC_HCTOSYS=y
716CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
717# CONFIG_RTC_DEBUG is not set
718
719#
720# RTC interfaces
721#
722CONFIG_RTC_INTF_SYSFS=y
723CONFIG_RTC_INTF_PROC=y
724CONFIG_RTC_INTF_DEV=y
725# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
726# CONFIG_RTC_DRV_TEST is not set
727
728#
729# I2C RTC drivers
730#
731
732#
733# SPI RTC drivers
734#
735# CONFIG_RTC_DRV_RS5C348 is not set
736# CONFIG_RTC_DRV_MAX6902 is not set
737
738#
739# Platform RTC drivers
740#
741# CONFIG_RTC_DRV_CMOS is not set
742# CONFIG_RTC_DRV_DS1553 is not set
743# CONFIG_RTC_DRV_DS1742 is not set
744# CONFIG_RTC_DRV_M48T86 is not set
745# CONFIG_RTC_DRV_V3020 is not set
746
747#
748# on-CPU RTC drivers
749#
750CONFIG_RTC_DRV_OMAP=y
751
752#
753# CBUS support
754#
755# CONFIG_CBUS is not set
756
757#
758# File systems
759#
760CONFIG_EXT2_FS=y
761# CONFIG_EXT2_FS_XATTR is not set
762# CONFIG_EXT2_FS_XIP is not set
763# CONFIG_EXT3_FS is not set
764# CONFIG_EXT4DEV_FS is not set
765# CONFIG_REISERFS_FS is not set
766# CONFIG_JFS_FS is not set
767# CONFIG_FS_POSIX_ACL is not set
768# CONFIG_XFS_FS is not set
769# CONFIG_GFS2_FS is not set
770# CONFIG_OCFS2_FS is not set
771# CONFIG_MINIX_FS is not set
772# CONFIG_ROMFS_FS is not set
773# CONFIG_INOTIFY is not set
774# CONFIG_QUOTA is not set
775CONFIG_DNOTIFY=y
776# CONFIG_AUTOFS_FS is not set
777# CONFIG_AUTOFS4_FS is not set
778# CONFIG_FUSE_FS is not set
779
780#
781# CD-ROM/DVD Filesystems
782#
783# CONFIG_ISO9660_FS is not set
784# CONFIG_UDF_FS is not set
785
786#
787# DOS/FAT/NT Filesystems
788#
789# CONFIG_MSDOS_FS is not set
790# CONFIG_VFAT_FS is not set
791# CONFIG_NTFS_FS is not set
792
793#
794# Pseudo filesystems
795#
796CONFIG_PROC_FS=y
797CONFIG_PROC_SYSCTL=y
798CONFIG_SYSFS=y
799# CONFIG_TMPFS is not set
800# CONFIG_HUGETLB_PAGE is not set
801CONFIG_RAMFS=y
802# CONFIG_CONFIGFS_FS is not set
803
804#
805# Miscellaneous filesystems
806#
807# CONFIG_ADFS_FS is not set
808# CONFIG_AFFS_FS is not set
809# CONFIG_HFS_FS is not set
810# CONFIG_HFSPLUS_FS is not set
811# CONFIG_BEFS_FS is not set
812# CONFIG_BFS_FS is not set
813# CONFIG_EFS_FS is not set
814# CONFIG_CRAMFS is not set
815# CONFIG_VXFS_FS is not set
816# CONFIG_HPFS_FS is not set
817# CONFIG_QNX4FS_FS is not set
818# CONFIG_SYSV_FS is not set
819# CONFIG_UFS_FS is not set
820
821#
822# Network File Systems
823#
824# CONFIG_NFS_FS is not set
825# CONFIG_NFSD is not set
826# CONFIG_SMB_FS is not set
827# CONFIG_CIFS is not set
828# CONFIG_NCP_FS is not set
829# CONFIG_CODA_FS is not set
830# CONFIG_AFS_FS is not set
831# CONFIG_9P_FS is not set
832
833#
834# Partition Types
835#
836# CONFIG_PARTITION_ADVANCED is not set
837CONFIG_MSDOS_PARTITION=y
838
839#
840# Native Language Support
841#
842# CONFIG_NLS is not set
843
844#
845# Distributed Lock Manager
846#
847# CONFIG_DLM is not set
848
849#
850# Profiling support
851#
852# CONFIG_PROFILING is not set
853
854#
855# Kernel hacking
856#
857# CONFIG_PRINTK_TIME is not set
858CONFIG_ENABLE_MUST_CHECK=y
859# CONFIG_MAGIC_SYSRQ is not set
860# CONFIG_UNUSED_SYMBOLS is not set
861# CONFIG_DEBUG_FS is not set
862# CONFIG_HEADERS_CHECK is not set
863# CONFIG_DEBUG_KERNEL is not set
864CONFIG_DEBUG_BUGVERBOSE=y
865CONFIG_FRAME_POINTER=y
866# CONFIG_DEBUG_USER is not set
867
868#
869# Security options
870#
871# CONFIG_KEYS is not set
872# CONFIG_SECURITY is not set
873
874#
875# Cryptographic options
876#
877# CONFIG_CRYPTO is not set
878
879#
880# Library routines
881#
882CONFIG_BITREVERSE=y
883CONFIG_CRC_CCITT=y
884CONFIG_CRC16=y
885# CONFIG_CRC_ITU_T is not set
886CONFIG_CRC32=y
887CONFIG_LIBCRC32C=y
888CONFIG_PLIST=y
889CONFIG_HAS_IOMEM=y
890CONFIG_HAS_IOPORT=y
891CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/sx1_defconfig b/arch/arm/configs/sx1_defconfig
new file mode 100644
index 00000000000..853dcdd9f2e
--- /dev/null
+++ b/arch/arm/configs/sx1_defconfig
@@ -0,0 +1,1118 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22-rc1-omap1
4# Thu Jun 7 05:16:10 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# Code maturity level options
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35
36#
37# General setup
38#
39CONFIG_LOCALVERSION=""
40CONFIG_LOCALVERSION_AUTO=y
41CONFIG_SWAP=y
42CONFIG_SYSVIPC=y
43# CONFIG_IPC_NS is not set
44CONFIG_SYSVIPC_SYSCTL=y
45CONFIG_POSIX_MQUEUE=y
46# CONFIG_BSD_PROCESS_ACCT is not set
47# CONFIG_TASKSTATS is not set
48# CONFIG_UTS_NS is not set
49# CONFIG_AUDIT is not set
50CONFIG_IKCONFIG=y
51# CONFIG_IKCONFIG_PROC is not set
52CONFIG_LOG_BUF_SHIFT=14
53CONFIG_SYSFS_DEPRECATED=y
54# CONFIG_RELAY is not set
55# CONFIG_BLK_DEV_INITRD is not set
56CONFIG_CC_OPTIMIZE_FOR_SIZE=y
57CONFIG_SYSCTL=y
58CONFIG_EMBEDDED=y
59CONFIG_UID16=y
60CONFIG_SYSCTL_SYSCALL=y
61# CONFIG_KALLSYMS is not set
62CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y
64CONFIG_BUG=y
65# CONFIG_ELF_CORE is not set
66# CONFIG_BASE_FULL is not set
67CONFIG_FUTEX=y
68CONFIG_ANON_INODES=y
69CONFIG_EPOLL=y
70CONFIG_SIGNALFD=y
71CONFIG_TIMERFD=y
72CONFIG_EVENTFD=y
73# CONFIG_SHMEM is not set
74# CONFIG_VM_EVENT_COUNTERS is not set
75# CONFIG_SLAB is not set
76# CONFIG_SLUB is not set
77CONFIG_SLOB=y
78CONFIG_RT_MUTEXES=y
79CONFIG_TINY_SHMEM=y
80CONFIG_BASE_SMALL=1
81
82#
83# Loadable module support
84#
85CONFIG_MODULES=y
86CONFIG_MODULE_UNLOAD=y
87# CONFIG_MODULE_FORCE_UNLOAD is not set
88# CONFIG_MODVERSIONS is not set
89# CONFIG_MODULE_SRCVERSION_ALL is not set
90CONFIG_KMOD=y
91
92#
93# Block layer
94#
95CONFIG_BLOCK=y
96# CONFIG_LBD is not set
97# CONFIG_BLK_DEV_IO_TRACE is not set
98# CONFIG_LSF is not set
99
100#
101# IO Schedulers
102#
103CONFIG_IOSCHED_NOOP=y
104# CONFIG_IOSCHED_AS is not set
105CONFIG_IOSCHED_DEADLINE=y
106# CONFIG_IOSCHED_CFQ is not set
107# CONFIG_DEFAULT_AS is not set
108CONFIG_DEFAULT_DEADLINE=y
109# CONFIG_DEFAULT_CFQ is not set
110# CONFIG_DEFAULT_NOOP is not set
111CONFIG_DEFAULT_IOSCHED="deadline"
112
113#
114# System Type
115#
116# CONFIG_ARCH_AAEC2000 is not set
117# CONFIG_ARCH_INTEGRATOR is not set
118# CONFIG_ARCH_REALVIEW is not set
119# CONFIG_ARCH_VERSATILE is not set
120# CONFIG_ARCH_AT91 is not set
121# CONFIG_ARCH_CLPS7500 is not set
122# CONFIG_ARCH_CLPS711X is not set
123# CONFIG_ARCH_CO285 is not set
124# CONFIG_ARCH_EBSA110 is not set
125# CONFIG_ARCH_EP93XX is not set
126# CONFIG_ARCH_FOOTBRIDGE is not set
127# CONFIG_ARCH_NETX is not set
128# CONFIG_ARCH_H720X is not set
129# CONFIG_ARCH_IMX is not set
130# CONFIG_ARCH_IOP13XX is not set
131# CONFIG_ARCH_IOP32X is not set
132# CONFIG_ARCH_IOP33X is not set
133# CONFIG_ARCH_IXP23XX is not set
134# CONFIG_ARCH_IXP2000 is not set
135# CONFIG_ARCH_IXP4XX is not set
136# CONFIG_ARCH_L7200 is not set
137# CONFIG_ARCH_KS8695 is not set
138# CONFIG_ARCH_NS9XXX is not set
139# CONFIG_ARCH_PNX4008 is not set
140# CONFIG_ARCH_PXA is not set
141# CONFIG_ARCH_RPC is not set
142# CONFIG_ARCH_SA1100 is not set
143# CONFIG_ARCH_S3C2410 is not set
144# CONFIG_ARCH_SHARK is not set
145# CONFIG_ARCH_LH7A40X is not set
146# CONFIG_ARCH_DAVINCI is not set
147CONFIG_ARCH_OMAP=y
148
149#
150# TI OMAP Implementations
151#
152CONFIG_ARCH_OMAP1=y
153# CONFIG_ARCH_OMAP2 is not set
154
155#
156# OMAP Feature Selections
157#
158# CONFIG_OMAP_RESET_CLOCKS is not set
159CONFIG_OMAP_BOOT_TAG=y
160# CONFIG_OMAP_BOOT_REASON is not set
161# CONFIG_OMAP_COMPONENT_VERSION is not set
162CONFIG_OMAP_GPIO_SWITCH=y
163CONFIG_OMAP_MUX=y
164# CONFIG_OMAP_MUX_DEBUG is not set
165CONFIG_OMAP_MUX_WARNINGS=y
166CONFIG_OMAP_MCBSP=y
167CONFIG_OMAP_MMU_FWK=y
168CONFIG_OMAP_MBOX_FWK=y
169CONFIG_OMAP_MPU_TIMER=y
170# CONFIG_OMAP_32K_TIMER is not set
171# CONFIG_OMAP_LL_DEBUG_UART1 is not set
172# CONFIG_OMAP_LL_DEBUG_UART2 is not set
173CONFIG_OMAP_LL_DEBUG_UART3=y
174# CONFIG_OMAP_LL_DEBUG_LCD is not set
175CONFIG_OMAP_SERIAL_WAKE=y
176CONFIG_OMAP_DSP=y
177# CONFIG_OMAP_DSP_MBCMD_VERBOSE is not set
178# CONFIG_OMAP_DSP_TASK_MULTIOPEN is not set
179# CONFIG_OMAP_DSP_FBEXPORT is not set
180
181#
182# OMAP Core Type
183#
184# CONFIG_ARCH_OMAP730 is not set
185CONFIG_ARCH_OMAP15XX=y
186# CONFIG_ARCH_OMAP16XX is not set
187
188#
189# OMAP Board Type
190#
191# CONFIG_MACH_OMAP_INNOVATOR is not set
192# CONFIG_MACH_VOICEBLUE is not set
193# CONFIG_MACH_OMAP_PALMTE is not set
194# CONFIG_MACH_OMAP_PALMZ71 is not set
195# CONFIG_MACH_OMAP_PALMTT is not set
196CONFIG_MACH_SX1=y
197# CONFIG_MACH_AMS_DELTA is not set
198# CONFIG_MACH_OMAP_GENERIC is not set
199
200#
201# OMAP CPU Speed
202#
203# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
204CONFIG_OMAP_ARM_168MHZ=y
205# CONFIG_OMAP_ARM_150MHZ is not set
206# CONFIG_OMAP_ARM_120MHZ is not set
207# CONFIG_OMAP_ARM_60MHZ is not set
208# CONFIG_OMAP_ARM_30MHZ is not set
209
210#
211# Processor Type
212#
213CONFIG_CPU_32=y
214CONFIG_CPU_ARM925T=y
215CONFIG_CPU_32v4T=y
216CONFIG_CPU_ABRT_EV4T=y
217CONFIG_CPU_CACHE_V4WT=y
218CONFIG_CPU_CACHE_VIVT=y
219CONFIG_CPU_COPY_V4WB=y
220CONFIG_CPU_TLB_V4WBI=y
221CONFIG_CPU_CP15=y
222CONFIG_CPU_CP15_MMU=y
223
224#
225# Processor Features
226#
227CONFIG_ARM_THUMB=y
228# CONFIG_CPU_ICACHE_DISABLE is not set
229# CONFIG_CPU_DCACHE_DISABLE is not set
230# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
231# CONFIG_OUTER_CACHE is not set
232
233#
234# Bus support
235#
236# CONFIG_ARCH_SUPPORTS_MSI is not set
237
238#
239# PCCARD (PCMCIA/CardBus) support
240#
241# CONFIG_PCCARD is not set
242
243#
244# Kernel Features
245#
246# CONFIG_TICK_ONESHOT is not set
247# CONFIG_NO_HZ is not set
248# CONFIG_HIGH_RES_TIMERS is not set
249CONFIG_PREEMPT=y
250CONFIG_HZ=100
251# CONFIG_AEABI is not set
252# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
253CONFIG_SELECT_MEMORY_MODEL=y
254CONFIG_FLATMEM_MANUAL=y
255# CONFIG_DISCONTIGMEM_MANUAL is not set
256# CONFIG_SPARSEMEM_MANUAL is not set
257CONFIG_FLATMEM=y
258CONFIG_FLAT_NODE_MEM_MAP=y
259# CONFIG_SPARSEMEM_STATIC is not set
260CONFIG_SPLIT_PTLOCK_CPUS=4096
261# CONFIG_RESOURCES_64BIT is not set
262CONFIG_ZONE_DMA_FLAG=1
263# CONFIG_LEDS is not set
264CONFIG_ALIGNMENT_TRAP=y
265
266#
267# Boot options
268#
269CONFIG_ZBOOT_ROM_TEXT=0x0
270CONFIG_ZBOOT_ROM_BSS=0x0
271CONFIG_CMDLINE=""
272# CONFIG_XIP_KERNEL is not set
273# CONFIG_KEXEC is not set
274
275#
276# CPU Frequency scaling
277#
278# CONFIG_CPU_FREQ is not set
279
280#
281# Floating point emulation
282#
283
284#
285# At least one emulation must be selected
286#
287CONFIG_FPE_NWFPE=y
288# CONFIG_FPE_NWFPE_XP is not set
289# CONFIG_FPE_FASTFPE is not set
290
291#
292# Userspace binary formats
293#
294CONFIG_BINFMT_ELF=y
295# CONFIG_BINFMT_AOUT is not set
296CONFIG_BINFMT_MISC=y
297# CONFIG_ARTHUR is not set
298
299#
300# Power management options
301#
302# CONFIG_PM is not set
303
304#
305# Networking
306#
307CONFIG_NET=y
308
309#
310# Networking options
311#
312CONFIG_PACKET=y
313CONFIG_PACKET_MMAP=y
314CONFIG_UNIX=y
315# CONFIG_NET_KEY is not set
316CONFIG_INET=y
317# CONFIG_IP_MULTICAST is not set
318# CONFIG_IP_ADVANCED_ROUTER is not set
319CONFIG_IP_FIB_HASH=y
320CONFIG_IP_PNP=y
321# CONFIG_IP_PNP_DHCP is not set
322# CONFIG_IP_PNP_BOOTP is not set
323# CONFIG_IP_PNP_RARP is not set
324# CONFIG_NET_IPIP is not set
325# CONFIG_NET_IPGRE is not set
326# CONFIG_ARPD is not set
327# CONFIG_SYN_COOKIES is not set
328# CONFIG_INET_AH is not set
329# CONFIG_INET_ESP is not set
330# CONFIG_INET_IPCOMP is not set
331# CONFIG_INET_XFRM_TUNNEL is not set
332# CONFIG_INET_TUNNEL is not set
333# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
334# CONFIG_INET_XFRM_MODE_TUNNEL is not set
335# CONFIG_INET_XFRM_MODE_BEET is not set
336# CONFIG_INET_DIAG is not set
337# CONFIG_TCP_CONG_ADVANCED is not set
338CONFIG_TCP_CONG_CUBIC=y
339CONFIG_DEFAULT_TCP_CONG="cubic"
340# CONFIG_TCP_MD5SIG is not set
341# CONFIG_IPV6 is not set
342# CONFIG_INET6_XFRM_TUNNEL is not set
343# CONFIG_INET6_TUNNEL is not set
344# CONFIG_NETWORK_SECMARK is not set
345# CONFIG_NETFILTER is not set
346
347#
348# DCCP Configuration (EXPERIMENTAL)
349#
350# CONFIG_IP_DCCP is not set
351
352#
353# SCTP Configuration (EXPERIMENTAL)
354#
355# CONFIG_IP_SCTP is not set
356
357#
358# TIPC Configuration (EXPERIMENTAL)
359#
360# CONFIG_TIPC is not set
361# CONFIG_ATM is not set
362# CONFIG_BRIDGE is not set
363# CONFIG_VLAN_8021Q is not set
364# CONFIG_DECNET is not set
365# CONFIG_LLC2 is not set
366# CONFIG_IPX is not set
367# CONFIG_ATALK is not set
368# CONFIG_X25 is not set
369# CONFIG_LAPB is not set
370# CONFIG_ECONET is not set
371# CONFIG_WAN_ROUTER is not set
372
373#
374# QoS and/or fair queueing
375#
376# CONFIG_NET_SCHED is not set
377
378#
379# Network testing
380#
381# CONFIG_NET_PKTGEN is not set
382# CONFIG_HAMRADIO is not set
383# CONFIG_IRDA is not set
384# CONFIG_BT is not set
385# CONFIG_AF_RXRPC is not set
386
387#
388# Wireless
389#
390# CONFIG_CFG80211 is not set
391# CONFIG_WIRELESS_EXT is not set
392# CONFIG_MAC80211 is not set
393# CONFIG_IEEE80211 is not set
394# CONFIG_RFKILL is not set
395
396#
397# Device Drivers
398#
399
400#
401# Generic Driver Options
402#
403CONFIG_STANDALONE=y
404CONFIG_PREVENT_FIRMWARE_BUILD=y
405# CONFIG_FW_LOADER is not set
406# CONFIG_DEBUG_DRIVER is not set
407# CONFIG_DEBUG_DEVRES is not set
408# CONFIG_SYS_HYPERVISOR is not set
409
410#
411# Connector - unified userspace <-> kernelspace linker
412#
413CONFIG_CONNECTOR=y
414# CONFIG_PROC_EVENTS is not set
415# CONFIG_MTD is not set
416
417#
418# Parallel port support
419#
420# CONFIG_PARPORT is not set
421
422#
423# Plug and Play support
424#
425# CONFIG_PNPACPI is not set
426
427#
428# Block devices
429#
430# CONFIG_BLK_DEV_COW_COMMON is not set
431CONFIG_BLK_DEV_LOOP=m
432# CONFIG_BLK_DEV_CRYPTOLOOP is not set
433# CONFIG_BLK_DEV_NBD is not set
434CONFIG_BLK_DEV_RAM=m
435CONFIG_BLK_DEV_RAM_COUNT=2
436CONFIG_BLK_DEV_RAM_SIZE=4096
437CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
438# CONFIG_CDROM_PKTCDVD is not set
439# CONFIG_ATA_OVER_ETH is not set
440
441#
442# SCSI device support
443#
444# CONFIG_RAID_ATTRS is not set
445# CONFIG_SCSI is not set
446# CONFIG_SCSI_NETLINK is not set
447# CONFIG_ATA is not set
448
449#
450# Multi-device support (RAID and LVM)
451#
452# CONFIG_MD is not set
453
454#
455# Network device support
456#
457CONFIG_NETDEVICES=y
458# CONFIG_DUMMY is not set
459# CONFIG_BONDING is not set
460# CONFIG_EQUALIZER is not set
461# CONFIG_TUN is not set
462CONFIG_PHYLIB=y
463
464#
465# MII PHY device drivers
466#
467# CONFIG_MARVELL_PHY is not set
468# CONFIG_DAVICOM_PHY is not set
469# CONFIG_QSEMI_PHY is not set
470# CONFIG_LXT_PHY is not set
471# CONFIG_CICADA_PHY is not set
472# CONFIG_VITESSE_PHY is not set
473# CONFIG_SMSC_PHY is not set
474# CONFIG_BROADCOM_PHY is not set
475# CONFIG_FIXED_PHY is not set
476
477#
478# Ethernet (10 or 100Mbit)
479#
480CONFIG_NET_ETHERNET=y
481CONFIG_MII=y
482# CONFIG_SMC91X is not set
483# CONFIG_DM9000 is not set
484CONFIG_NETDEV_1000=y
485CONFIG_NETDEV_10000=y
486
487#
488# Token Ring devices
489#
490
491#
492# Wireless LAN
493#
494# CONFIG_WLAN_PRE80211 is not set
495# CONFIG_WLAN_80211 is not set
496# CONFIG_WAN is not set
497# CONFIG_PPP is not set
498# CONFIG_SLIP is not set
499# CONFIG_SHAPER is not set
500# CONFIG_NETCONSOLE is not set
501# CONFIG_NETPOLL is not set
502# CONFIG_NET_POLL_CONTROLLER is not set
503
504#
505# ISDN subsystem
506#
507# CONFIG_ISDN is not set
508
509#
510# Input device support
511#
512CONFIG_INPUT=y
513# CONFIG_INPUT_FF_MEMLESS is not set
514
515#
516# Userland interfaces
517#
518# CONFIG_INPUT_MOUSEDEV is not set
519# CONFIG_INPUT_JOYDEV is not set
520# CONFIG_INPUT_TSDEV is not set
521CONFIG_INPUT_EVDEV=y
522# CONFIG_INPUT_EVBUG is not set
523
524#
525# Input Device Drivers
526#
527CONFIG_INPUT_KEYBOARD=y
528# CONFIG_KEYBOARD_ATKBD is not set
529# CONFIG_KEYBOARD_SUNKBD is not set
530# CONFIG_KEYBOARD_LKKBD is not set
531# CONFIG_KEYBOARD_XTKBD is not set
532# CONFIG_KEYBOARD_NEWTON is not set
533# CONFIG_KEYBOARD_STOWAWAY is not set
534CONFIG_KEYBOARD_OMAP=y
535# CONFIG_KEYBOARD_GPIO is not set
536# CONFIG_INPUT_MOUSE is not set
537# CONFIG_INPUT_JOYSTICK is not set
538# CONFIG_INPUT_TABLET is not set
539# CONFIG_INPUT_TOUCHSCREEN is not set
540# CONFIG_INPUT_MISC is not set
541
542#
543# Hardware I/O ports
544#
545# CONFIG_SERIO is not set
546# CONFIG_GAMEPORT is not set
547
548#
549# Character devices
550#
551CONFIG_VT=y
552CONFIG_VT_CONSOLE=y
553CONFIG_HW_CONSOLE=y
554# CONFIG_VT_HW_CONSOLE_BINDING is not set
555# CONFIG_SERIAL_NONSTANDARD is not set
556
557#
558# Serial drivers
559#
560CONFIG_SERIAL_8250=y
561# CONFIG_SERIAL_8250_CONSOLE is not set
562CONFIG_SERIAL_8250_NR_UARTS=3
563CONFIG_SERIAL_8250_RUNTIME_UARTS=3
564# CONFIG_SERIAL_8250_EXTENDED is not set
565
566#
567# Non-8250 serial port support
568#
569CONFIG_SERIAL_CORE=y
570CONFIG_UNIX98_PTYS=y
571# CONFIG_LEGACY_PTYS is not set
572
573#
574# IPMI
575#
576# CONFIG_IPMI_HANDLER is not set
577# CONFIG_WATCHDOG is not set
578# CONFIG_HW_RANDOM is not set
579# CONFIG_NVRAM is not set
580# CONFIG_R3964 is not set
581# CONFIG_RAW_DRIVER is not set
582
583#
584# TPM devices
585#
586# CONFIG_TCG_TPM is not set
587CONFIG_I2C=y
588CONFIG_I2C_BOARDINFO=y
589CONFIG_I2C_CHARDEV=y
590
591#
592# I2C Algorithms
593#
594# CONFIG_I2C_ALGOBIT is not set
595# CONFIG_I2C_ALGOPCF is not set
596# CONFIG_I2C_ALGOPCA is not set
597
598#
599# I2C Hardware Bus support
600#
601# CONFIG_I2C_GPIO is not set
602# CONFIG_I2C_OCORES is not set
603CONFIG_I2C_OMAP=y
604# CONFIG_I2C_PARPORT_LIGHT is not set
605# CONFIG_I2C_SIMTEC is not set
606# CONFIG_I2C_STUB is not set
607
608#
609# Miscellaneous I2C Chip support
610#
611# CONFIG_SENSORS_DS1337 is not set
612# CONFIG_SENSORS_DS1374 is not set
613# CONFIG_SENSORS_EEPROM is not set
614# CONFIG_SENSORS_PCF8574 is not set
615# CONFIG_SENSORS_PCA9539 is not set
616# CONFIG_SENSORS_PCF8591 is not set
617# CONFIG_TPS65010 is not set
618# CONFIG_SENSORS_TLV320AIC23 is not set
619# CONFIG_SENSORS_MAX6875 is not set
620# CONFIG_I2C_DEBUG_CORE is not set
621# CONFIG_I2C_DEBUG_ALGO is not set
622# CONFIG_I2C_DEBUG_BUS is not set
623# CONFIG_I2C_DEBUG_CHIP is not set
624
625#
626# SPI support
627#
628# CONFIG_SPI is not set
629# CONFIG_SPI_MASTER is not set
630
631#
632# Dallas's 1-wire bus
633#
634# CONFIG_W1 is not set
635# CONFIG_HWMON is not set
636
637#
638# Misc devices
639#
640# CONFIG_BLINK is not set
641
642#
643# Multifunction device drivers
644#
645# CONFIG_MFD_SM501 is not set
646
647#
648# LED devices
649#
650# CONFIG_NEW_LEDS is not set
651
652#
653# LED drivers
654#
655
656#
657# LED Triggers
658#
659
660#
661# Multimedia devices
662#
663# CONFIG_VIDEO_DEV is not set
664# CONFIG_DVB_CORE is not set
665CONFIG_DAB=y
666
667#
668# Graphics support
669#
670# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
671
672#
673# Display device support
674#
675# CONFIG_DISPLAY_SUPPORT is not set
676# CONFIG_VGASTATE is not set
677CONFIG_FB=y
678# CONFIG_FIRMWARE_EDID is not set
679# CONFIG_FB_DDC is not set
680# CONFIG_FB_CFB_FILLRECT is not set
681# CONFIG_FB_CFB_COPYAREA is not set
682# CONFIG_FB_CFB_IMAGEBLIT is not set
683# CONFIG_FB_SYS_FILLRECT is not set
684# CONFIG_FB_SYS_COPYAREA is not set
685# CONFIG_FB_SYS_IMAGEBLIT is not set
686# CONFIG_FB_SYS_FOPS is not set
687CONFIG_FB_DEFERRED_IO=y
688# CONFIG_FB_SVGALIB is not set
689# CONFIG_FB_MACMODES is not set
690# CONFIG_FB_BACKLIGHT is not set
691# CONFIG_FB_MODE_HELPERS is not set
692# CONFIG_FB_TILEBLITTING is not set
693
694#
695# Frame buffer hardware drivers
696#
697# CONFIG_FB_S1D13XXX is not set
698CONFIG_FB_OMAP=y
699# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
700# CONFIG_FB_OMAP_LCD_MIPID is not set
701CONFIG_FB_OMAP_BOOTLOADER_INIT=y
702CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
703# CONFIG_FB_OMAP_DMA_TUNE is not set
704# CONFIG_FB_VIRTUAL is not set
705
706#
707# Console display driver support
708#
709# CONFIG_VGA_CONSOLE is not set
710CONFIG_DUMMY_CONSOLE=y
711CONFIG_FRAMEBUFFER_CONSOLE=y
712# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
713CONFIG_FONTS=y
714# CONFIG_FONT_8x8 is not set
715# CONFIG_FONT_8x16 is not set
716# CONFIG_FONT_6x11 is not set
717# CONFIG_FONT_7x14 is not set
718# CONFIG_FONT_PEARL_8x8 is not set
719# CONFIG_FONT_ACORN_8x8 is not set
720CONFIG_FONT_MINI_4x6=y
721# CONFIG_FONT_CLEAN_4x6 is not set
722# CONFIG_FONT_CLEAN_5x8 is not set
723# CONFIG_FONT_SUN8x16 is not set
724# CONFIG_FONT_SUN12x22 is not set
725# CONFIG_FONT_10x18 is not set
726CONFIG_LOGO=y
727# CONFIG_LOGO_LINUX_MONO is not set
728# CONFIG_LOGO_LINUX_VGA16 is not set
729CONFIG_LOGO_LINUX_CLUT224=y
730
731#
732# Sound
733#
734CONFIG_SOUND=y
735
736#
737# Advanced Linux Sound Architecture
738#
739CONFIG_SND=y
740CONFIG_SND_TIMER=y
741CONFIG_SND_PCM=y
742# CONFIG_SND_SEQUENCER is not set
743CONFIG_SND_OSSEMUL=y
744CONFIG_SND_MIXER_OSS=y
745CONFIG_SND_PCM_OSS=y
746CONFIG_SND_PCM_OSS_PLUGINS=y
747# CONFIG_SND_DYNAMIC_MINORS is not set
748# CONFIG_SND_SUPPORT_OLD_API is not set
749# CONFIG_SND_VERBOSE_PROCFS is not set
750# CONFIG_SND_VERBOSE_PRINTK is not set
751# CONFIG_SND_DEBUG is not set
752
753#
754# Generic devices
755#
756# CONFIG_SND_DUMMY is not set
757# CONFIG_SND_MTPAV is not set
758# CONFIG_SND_SERIAL_U16550 is not set
759# CONFIG_SND_MPU401 is not set
760
761#
762# ALSA ARM devices
763#
764# CONFIG_SND_OMAP_AIC23 is not set
765# CONFIG_SND_OMAP_TSC2101 is not set
766CONFIG_SND_SX1=y
767# CONFIG_SND_OMAP_TSC2102 is not set
768# CONFIG_SND_OMAP24XX_EAC is not set
769
770#
771# System on Chip audio support
772#
773# CONFIG_SND_SOC is not set
774
775#
776# Open Sound System
777#
778# CONFIG_SOUND_PRIME is not set
779
780#
781# HID Devices
782#
783CONFIG_HID=y
784# CONFIG_HID_DEBUG is not set
785
786#
787# USB support
788#
789CONFIG_USB_ARCH_HAS_HCD=y
790CONFIG_USB_ARCH_HAS_OHCI=y
791# CONFIG_USB_ARCH_HAS_EHCI is not set
792# CONFIG_USB is not set
793# CONFIG_USB_MUSB_HDRC is not set
794# CONFIG_USB_GADGET_MUSB_HDRC is not set
795
796#
797# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
798#
799
800#
801# USB Gadget Support
802#
803CONFIG_USB_GADGET=y
804# CONFIG_USB_GADGET_DEBUG_FILES is not set
805CONFIG_USB_GADGET_SELECTED=y
806# CONFIG_USB_GADGET_FSL_USB2 is not set
807# CONFIG_USB_GADGET_NET2280 is not set
808# CONFIG_USB_GADGET_PXA2XX is not set
809# CONFIG_USB_GADGET_GOKU is not set
810# CONFIG_USB_GADGET_LH7A40X is not set
811CONFIG_USB_GADGET_OMAP=y
812CONFIG_USB_OMAP=y
813# CONFIG_USB_GADGET_AT91 is not set
814# CONFIG_USB_GADGET_DUMMY_HCD is not set
815# CONFIG_USB_GADGET_DUALSPEED is not set
816# CONFIG_USB_ZERO is not set
817CONFIG_USB_ETH=y
818CONFIG_USB_ETH_RNDIS=y
819# CONFIG_USB_GADGETFS is not set
820# CONFIG_USB_FILE_STORAGE is not set
821# CONFIG_USB_G_SERIAL is not set
822# CONFIG_USB_MIDI_GADGET is not set
823CONFIG_MMC=y
824# CONFIG_MMC_DEBUG is not set
825# CONFIG_MMC_UNSAFE_RESUME is not set
826
827#
828# MMC/SD Card Drivers
829#
830CONFIG_MMC_BLOCK=y
831
832#
833# MMC/SD Host Controller Drivers
834#
835CONFIG_MMC_OMAP=y
836
837#
838# Real Time Clock
839#
840CONFIG_RTC_LIB=y
841CONFIG_RTC_CLASS=y
842CONFIG_RTC_HCTOSYS=y
843CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
844# CONFIG_RTC_DEBUG is not set
845
846#
847# RTC interfaces
848#
849CONFIG_RTC_INTF_SYSFS=y
850CONFIG_RTC_INTF_PROC=y
851CONFIG_RTC_INTF_DEV=y
852# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
853# CONFIG_RTC_DRV_TEST is not set
854
855#
856# I2C RTC drivers
857#
858# CONFIG_RTC_DRV_DS1307 is not set
859# CONFIG_RTC_DRV_DS1672 is not set
860# CONFIG_RTC_DRV_MAX6900 is not set
861# CONFIG_RTC_DRV_RS5C372 is not set
862# CONFIG_RTC_DRV_ISL1208 is not set
863# CONFIG_RTC_DRV_X1205 is not set
864# CONFIG_RTC_DRV_PCF8563 is not set
865# CONFIG_RTC_DRV_PCF8583 is not set
866
867#
868# SPI RTC drivers
869#
870
871#
872# Platform RTC drivers
873#
874# CONFIG_RTC_DRV_CMOS is not set
875# CONFIG_RTC_DRV_DS1553 is not set
876# CONFIG_RTC_DRV_DS1742 is not set
877# CONFIG_RTC_DRV_M48T86 is not set
878# CONFIG_RTC_DRV_V3020 is not set
879
880#
881# on-CPU RTC drivers
882#
883CONFIG_RTC_DRV_OMAP=y
884
885#
886# CBUS support
887#
888# CONFIG_CBUS is not set
889
890#
891# File systems
892#
893CONFIG_EXT2_FS=y
894# CONFIG_EXT2_FS_XATTR is not set
895# CONFIG_EXT2_FS_XIP is not set
896# CONFIG_EXT3_FS is not set
897# CONFIG_EXT4DEV_FS is not set
898# CONFIG_REISERFS_FS is not set
899# CONFIG_JFS_FS is not set
900# CONFIG_FS_POSIX_ACL is not set
901# CONFIG_XFS_FS is not set
902# CONFIG_GFS2_FS is not set
903# CONFIG_OCFS2_FS is not set
904# CONFIG_MINIX_FS is not set
905# CONFIG_ROMFS_FS is not set
906CONFIG_INOTIFY=y
907CONFIG_INOTIFY_USER=y
908# CONFIG_QUOTA is not set
909# CONFIG_DNOTIFY is not set
910# CONFIG_AUTOFS_FS is not set
911# CONFIG_AUTOFS4_FS is not set
912# CONFIG_FUSE_FS is not set
913
914#
915# CD-ROM/DVD Filesystems
916#
917# CONFIG_ISO9660_FS is not set
918# CONFIG_UDF_FS is not set
919
920#
921# DOS/FAT/NT Filesystems
922#
923CONFIG_FAT_FS=y
924CONFIG_MSDOS_FS=y
925CONFIG_VFAT_FS=y
926CONFIG_FAT_DEFAULT_CODEPAGE=866
927CONFIG_FAT_DEFAULT_IOCHARSET="koi8-r"
928# CONFIG_NTFS_FS is not set
929
930#
931# Pseudo filesystems
932#
933CONFIG_PROC_FS=y
934CONFIG_PROC_SYSCTL=y
935CONFIG_SYSFS=y
936CONFIG_TMPFS=y
937# CONFIG_TMPFS_POSIX_ACL is not set
938# CONFIG_HUGETLB_PAGE is not set
939CONFIG_RAMFS=y
940# CONFIG_CONFIGFS_FS is not set
941
942#
943# Miscellaneous filesystems
944#
945# CONFIG_ADFS_FS is not set
946# CONFIG_AFFS_FS is not set
947# CONFIG_HFS_FS is not set
948# CONFIG_HFSPLUS_FS is not set
949# CONFIG_BEFS_FS is not set
950# CONFIG_BFS_FS is not set
951# CONFIG_EFS_FS is not set
952CONFIG_CRAMFS=y
953# CONFIG_VXFS_FS is not set
954# CONFIG_HPFS_FS is not set
955# CONFIG_QNX4FS_FS is not set
956# CONFIG_SYSV_FS is not set
957# CONFIG_UFS_FS is not set
958
959#
960# Network File Systems
961#
962CONFIG_NFS_FS=y
963# CONFIG_NFS_V3 is not set
964# CONFIG_NFS_V4 is not set
965# CONFIG_NFS_DIRECTIO is not set
966# CONFIG_NFSD is not set
967CONFIG_ROOT_NFS=y
968CONFIG_LOCKD=y
969CONFIG_NFS_COMMON=y
970CONFIG_SUNRPC=y
971# CONFIG_SUNRPC_BIND34 is not set
972# CONFIG_RPCSEC_GSS_KRB5 is not set
973# CONFIG_RPCSEC_GSS_SPKM3 is not set
974# CONFIG_SMB_FS is not set
975# CONFIG_CIFS is not set
976# CONFIG_NCP_FS is not set
977# CONFIG_CODA_FS is not set
978# CONFIG_AFS_FS is not set
979# CONFIG_9P_FS is not set
980
981#
982# Partition Types
983#
984CONFIG_PARTITION_ADVANCED=y
985# CONFIG_ACORN_PARTITION is not set
986# CONFIG_OSF_PARTITION is not set
987# CONFIG_AMIGA_PARTITION is not set
988# CONFIG_ATARI_PARTITION is not set
989# CONFIG_MAC_PARTITION is not set
990CONFIG_MSDOS_PARTITION=y
991# CONFIG_BSD_DISKLABEL is not set
992# CONFIG_MINIX_SUBPARTITION is not set
993# CONFIG_SOLARIS_X86_PARTITION is not set
994# CONFIG_UNIXWARE_DISKLABEL is not set
995# CONFIG_LDM_PARTITION is not set
996# CONFIG_SGI_PARTITION is not set
997# CONFIG_ULTRIX_PARTITION is not set
998# CONFIG_SUN_PARTITION is not set
999# CONFIG_KARMA_PARTITION is not set
1000# CONFIG_EFI_PARTITION is not set
1001# CONFIG_SYSV68_PARTITION is not set
1002
1003#
1004# Native Language Support
1005#
1006CONFIG_NLS=y
1007CONFIG_NLS_DEFAULT="iso8859-1"
1008CONFIG_NLS_CODEPAGE_437=y
1009# CONFIG_NLS_CODEPAGE_737 is not set
1010# CONFIG_NLS_CODEPAGE_775 is not set
1011# CONFIG_NLS_CODEPAGE_850 is not set
1012# CONFIG_NLS_CODEPAGE_852 is not set
1013# CONFIG_NLS_CODEPAGE_855 is not set
1014# CONFIG_NLS_CODEPAGE_857 is not set
1015# CONFIG_NLS_CODEPAGE_860 is not set
1016# CONFIG_NLS_CODEPAGE_861 is not set
1017# CONFIG_NLS_CODEPAGE_862 is not set
1018# CONFIG_NLS_CODEPAGE_863 is not set
1019# CONFIG_NLS_CODEPAGE_864 is not set
1020# CONFIG_NLS_CODEPAGE_865 is not set
1021CONFIG_NLS_CODEPAGE_866=y
1022# CONFIG_NLS_CODEPAGE_869 is not set
1023# CONFIG_NLS_CODEPAGE_936 is not set
1024# CONFIG_NLS_CODEPAGE_950 is not set
1025# CONFIG_NLS_CODEPAGE_932 is not set
1026# CONFIG_NLS_CODEPAGE_949 is not set
1027# CONFIG_NLS_CODEPAGE_874 is not set
1028# CONFIG_NLS_ISO8859_8 is not set
1029# CONFIG_NLS_CODEPAGE_1250 is not set
1030CONFIG_NLS_CODEPAGE_1251=y
1031# CONFIG_NLS_ASCII is not set
1032CONFIG_NLS_ISO8859_1=y
1033# CONFIG_NLS_ISO8859_2 is not set
1034# CONFIG_NLS_ISO8859_3 is not set
1035# CONFIG_NLS_ISO8859_4 is not set
1036CONFIG_NLS_ISO8859_5=y
1037# CONFIG_NLS_ISO8859_6 is not set
1038# CONFIG_NLS_ISO8859_7 is not set
1039# CONFIG_NLS_ISO8859_9 is not set
1040# CONFIG_NLS_ISO8859_13 is not set
1041# CONFIG_NLS_ISO8859_14 is not set
1042# CONFIG_NLS_ISO8859_15 is not set
1043CONFIG_NLS_KOI8_R=y
1044# CONFIG_NLS_KOI8_U is not set
1045CONFIG_NLS_UTF8=y
1046
1047#
1048# Distributed Lock Manager
1049#
1050# CONFIG_DLM is not set
1051
1052#
1053# Profiling support
1054#
1055CONFIG_PROFILING=y
1056CONFIG_OPROFILE=y
1057
1058#
1059# Kernel hacking
1060#
1061# CONFIG_PRINTK_TIME is not set
1062# CONFIG_ENABLE_MUST_CHECK is not set
1063# CONFIG_MAGIC_SYSRQ is not set
1064# CONFIG_UNUSED_SYMBOLS is not set
1065# CONFIG_DEBUG_FS is not set
1066# CONFIG_HEADERS_CHECK is not set
1067CONFIG_DEBUG_KERNEL=y
1068# CONFIG_DEBUG_SHIRQ is not set
1069# CONFIG_DETECT_SOFTLOCKUP is not set
1070# CONFIG_SCHEDSTATS is not set
1071# CONFIG_TIMER_STATS is not set
1072CONFIG_DEBUG_PREEMPT=y
1073# CONFIG_DEBUG_RT_MUTEXES is not set
1074# CONFIG_RT_MUTEX_TESTER is not set
1075# CONFIG_DEBUG_SPINLOCK is not set
1076# CONFIG_DEBUG_MUTEXES is not set
1077# CONFIG_DEBUG_LOCK_ALLOC is not set
1078# CONFIG_PROVE_LOCKING is not set
1079# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1080# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1081# CONFIG_DEBUG_KOBJECT is not set
1082# CONFIG_DEBUG_BUGVERBOSE is not set
1083# CONFIG_DEBUG_INFO is not set
1084# CONFIG_DEBUG_VM is not set
1085# CONFIG_DEBUG_LIST is not set
1086CONFIG_FRAME_POINTER=y
1087CONFIG_FORCED_INLINING=y
1088# CONFIG_RCU_TORTURE_TEST is not set
1089# CONFIG_FAULT_INJECTION is not set
1090# CONFIG_DEBUG_USER is not set
1091# CONFIG_DEBUG_ERRORS is not set
1092# CONFIG_DEBUG_LL is not set
1093
1094#
1095# Security options
1096#
1097# CONFIG_KEYS is not set
1098# CONFIG_SECURITY is not set
1099
1100#
1101# Cryptographic options
1102#
1103# CONFIG_CRYPTO is not set
1104
1105#
1106# Library routines
1107#
1108CONFIG_BITREVERSE=y
1109CONFIG_CRC_CCITT=y
1110CONFIG_CRC16=y
1111# CONFIG_CRC_ITU_T is not set
1112CONFIG_CRC32=y
1113CONFIG_LIBCRC32C=y
1114CONFIG_ZLIB_INFLATE=y
1115CONFIG_PLIST=y
1116CONFIG_HAS_IOMEM=y
1117CONFIG_HAS_IOPORT=y
1118CONFIG_HAS_DMA=y
diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
index 94a95d7fafd..71934856fc2 100644
--- a/arch/arm/include/asm/io.h
+++ b/arch/arm/include/asm/io.h
@@ -61,8 +61,9 @@ extern void __raw_readsl(const void __iomem *addr, void *data, int longlen);
61#define MT_DEVICE_NONSHARED 1 61#define MT_DEVICE_NONSHARED 1
62#define MT_DEVICE_CACHED 2 62#define MT_DEVICE_CACHED 2
63#define MT_DEVICE_IXP2000 3 63#define MT_DEVICE_IXP2000 3
64#define MT_DEVICE_WC 4
64/* 65/*
65 * types 4 onwards can be found in asm/mach/map.h and are undefined 66 * types 5 onwards can be found in asm/mach/map.h and are undefined
66 * for ioremap 67 * for ioremap
67 */ 68 */
68 69
@@ -215,11 +216,13 @@ extern void _memset_io(volatile void __iomem *, int, size_t);
215#define ioremap(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE) 216#define ioremap(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE)
216#define ioremap_nocache(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE) 217#define ioremap_nocache(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE)
217#define ioremap_cached(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE_CACHED) 218#define ioremap_cached(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE_CACHED)
219#define ioremap_wc(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE_WC)
218#define iounmap(cookie) __iounmap(cookie) 220#define iounmap(cookie) __iounmap(cookie)
219#else 221#else
220#define ioremap(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE) 222#define ioremap(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE)
221#define ioremap_nocache(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE) 223#define ioremap_nocache(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE)
222#define ioremap_cached(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_CACHED) 224#define ioremap_cached(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_CACHED)
225#define ioremap_wc(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_WC)
223#define iounmap(cookie) __arch_iounmap(cookie) 226#define iounmap(cookie) __arch_iounmap(cookie)
224#endif 227#endif
225 228
diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
index 06f583b1399..9eb936e49cc 100644
--- a/arch/arm/include/asm/mach/map.h
+++ b/arch/arm/include/asm/mach/map.h
@@ -18,13 +18,13 @@ struct map_desc {
18 unsigned int type; 18 unsigned int type;
19}; 19};
20 20
21/* types 0-3 are defined in asm/io.h */ 21/* types 0-4 are defined in asm/io.h */
22#define MT_CACHECLEAN 4 22#define MT_CACHECLEAN 5
23#define MT_MINICLEAN 5 23#define MT_MINICLEAN 6
24#define MT_LOW_VECTORS 6 24#define MT_LOW_VECTORS 7
25#define MT_HIGH_VECTORS 7 25#define MT_HIGH_VECTORS 8
26#define MT_MEMORY 8 26#define MT_MEMORY 9
27#define MT_ROM 9 27#define MT_ROM 10
28 28
29#define MT_NONSHARED_DEVICE MT_DEVICE_NONSHARED 29#define MT_NONSHARED_DEVICE MT_DEVICE_NONSHARED
30#define MT_IXP2000_DEVICE MT_DEVICE_IXP2000 30#define MT_IXP2000_DEVICE MT_DEVICE_IXP2000
diff --git a/arch/arm/include/asm/pci.h b/arch/arm/include/asm/pci.h
index 721c03d53f4..918d0cbbf06 100644
--- a/arch/arm/include/asm/pci.h
+++ b/arch/arm/include/asm/pci.h
@@ -30,7 +30,7 @@ static inline void pcibios_penalize_isa_irq(int irq, int active)
30 * The networking and block device layers use this boolean for bounce 30 * The networking and block device layers use this boolean for bounce
31 * buffer decisions. 31 * buffer decisions.
32 */ 32 */
33#define PCI_DMA_BUS_IS_PHYS (0) 33#define PCI_DMA_BUS_IS_PHYS (1)
34 34
35/* 35/*
36 * Whether pci_unmap_{single,page} is a nop depends upon the 36 * Whether pci_unmap_{single,page} is a nop depends upon the
diff --git a/arch/arm/kernel/kgdb.c b/arch/arm/kernel/kgdb.c
index aaffaecffcd..ba8ccfede96 100644
--- a/arch/arm/kernel/kgdb.c
+++ b/arch/arm/kernel/kgdb.c
@@ -111,8 +111,6 @@ int kgdb_arch_handle_exception(int exception_vector, int signo,
111 case 'D': 111 case 'D':
112 case 'k': 112 case 'k':
113 case 'c': 113 case 'c':
114 kgdb_contthread = NULL;
115
116 /* 114 /*
117 * Try to read optional parameter, pc unchanged if no parm. 115 * Try to read optional parameter, pc unchanged if no parm.
118 * If this was a compiled breakpoint, we need to move 116 * If this was a compiled breakpoint, we need to move
diff --git a/arch/arm/lib/sha1.S b/arch/arm/lib/sha1.S
index ff6ece487ff..67c2bf4774b 100644
--- a/arch/arm/lib/sha1.S
+++ b/arch/arm/lib/sha1.S
@@ -29,7 +29,7 @@ ENTRY(sha_transform)
29 stmfd sp!, {r4 - r8, lr} 29 stmfd sp!, {r4 - r8, lr}
30 30
31 @ for (i = 0; i < 16; i++) 31 @ for (i = 0; i < 16; i++)
32 @ W[i] = be32_to_cpu(in[i]); */ 32 @ W[i] = be32_to_cpu(in[i]);
33 33
34#ifdef __ARMEB__ 34#ifdef __ARMEB__
35 mov r4, r0 35 mov r4, r0
diff --git a/arch/arm/mach-davinci/psc.c b/arch/arm/mach-davinci/psc.c
index 720c48b9ee0..aa2fc375a32 100644
--- a/arch/arm/mach-davinci/psc.c
+++ b/arch/arm/mach-davinci/psc.c
@@ -70,9 +70,6 @@ void davinci_psc_config(unsigned int domain, unsigned int id, char enable)
70{ 70{
71 u32 epcpr, ptcmd, ptstat, pdstat, pdctl1, mdstat, mdctl, mdstat_mask; 71 u32 epcpr, ptcmd, ptstat, pdstat, pdctl1, mdstat, mdctl, mdstat_mask;
72 72
73 if (id < 0)
74 return;
75
76 mdctl = davinci_readl(DAVINCI_PWR_SLEEP_CNTRL_BASE + MDCTL + 4 * id); 73 mdctl = davinci_readl(DAVINCI_PWR_SLEEP_CNTRL_BASE + MDCTL + 4 * id);
77 if (enable) 74 if (enable)
78 mdctl |= 0x00000003; /* Enable Module */ 75 mdctl |= 0x00000003; /* Enable Module */
diff --git a/arch/arm/mach-footbridge/time.c b/arch/arm/mach-footbridge/time.c
index fd9a7c11d62..004819ea85c 100644
--- a/arch/arm/mach-footbridge/time.c
+++ b/arch/arm/mach-footbridge/time.c
@@ -49,12 +49,12 @@ static unsigned long __init get_isa_cmos_time(void)
49 } while (sec != CMOS_READ(RTC_SECONDS)); 49 } while (sec != CMOS_READ(RTC_SECONDS));
50 50
51 if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) { 51 if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
52 BCD_TO_BIN(sec); 52 sec = bcd2bin(sec);
53 BCD_TO_BIN(min); 53 min = bcd2bin(min);
54 BCD_TO_BIN(hour); 54 hour = bcd2bin(hour);
55 BCD_TO_BIN(day); 55 day = bcd2bin(day);
56 BCD_TO_BIN(mon); 56 mon = bcd2bin(mon);
57 BCD_TO_BIN(year); 57 year = bcd2bin(year);
58 } 58 }
59 if ((year += 1900) < 1970) 59 if ((year += 1900) < 1970)
60 year += 100; 60 year += 100;
@@ -76,7 +76,7 @@ static int set_isa_cmos_time(void)
76 76
77 cmos_minutes = CMOS_READ(RTC_MINUTES); 77 cmos_minutes = CMOS_READ(RTC_MINUTES);
78 if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) 78 if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD)
79 BCD_TO_BIN(cmos_minutes); 79 cmos_minutes = bcd2bin(cmos_minutes);
80 80
81 /* 81 /*
82 * since we're only adjusting minutes and seconds, 82 * since we're only adjusting minutes and seconds,
@@ -92,8 +92,8 @@ static int set_isa_cmos_time(void)
92 92
93 if (abs(real_minutes - cmos_minutes) < 30) { 93 if (abs(real_minutes - cmos_minutes) < 30) {
94 if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) { 94 if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
95 BIN_TO_BCD(real_seconds); 95 real_seconds = bin2bcd(real_seconds);
96 BIN_TO_BCD(real_minutes); 96 real_minutes = bin2bcd(real_minutes);
97 } 97 }
98 CMOS_WRITE(real_seconds,RTC_SECONDS); 98 CMOS_WRITE(real_seconds,RTC_SECONDS);
99 CMOS_WRITE(real_minutes,RTC_MINUTES); 99 CMOS_WRITE(real_minutes,RTC_MINUTES);
diff --git a/arch/arm/mach-integrator/impd1.c b/arch/arm/mach-integrator/impd1.c
index 0a7b3267c8d..3c8383dbe9e 100644
--- a/arch/arm/mach-integrator/impd1.c
+++ b/arch/arm/mach-integrator/impd1.c
@@ -405,7 +405,7 @@ static int impd1_probe(struct lm_device *dev)
405 405
406 ret = amba_device_register(d, &dev->resource); 406 ret = amba_device_register(d, &dev->resource);
407 if (ret) { 407 if (ret) {
408 dev_err(&d->dev, "unable to register device: %d\n"); 408 dev_err(&d->dev, "unable to register device: %d\n", ret);
409 kfree(d); 409 kfree(d);
410 } 410 }
411 } 411 }
diff --git a/arch/arm/mach-ixp4xx/fsg-setup.c b/arch/arm/mach-ixp4xx/fsg-setup.c
index 0db3a909ae6..501dfdcc39f 100644
--- a/arch/arm/mach-ixp4xx/fsg-setup.c
+++ b/arch/arm/mach-ixp4xx/fsg-setup.c
@@ -64,7 +64,7 @@ static struct platform_device fsg_i2c_gpio = {
64 64
65static struct i2c_board_info __initdata fsg_i2c_board_info [] = { 65static struct i2c_board_info __initdata fsg_i2c_board_info [] = {
66 { 66 {
67 I2C_BOARD_INFO("rtc-isl1208", 0x6f), 67 I2C_BOARD_INFO("isl1208", 0x6f),
68 }, 68 },
69}; 69};
70 70
@@ -179,7 +179,6 @@ static void __init fsg_init(void)
179{ 179{
180 DECLARE_MAC_BUF(mac_buf); 180 DECLARE_MAC_BUF(mac_buf);
181 uint8_t __iomem *f; 181 uint8_t __iomem *f;
182 int i;
183 182
184 ixp4xx_sys_init(); 183 ixp4xx_sys_init();
185 184
@@ -228,6 +227,7 @@ static void __init fsg_init(void)
228 f = ioremap(IXP4XX_EXP_BUS_BASE(0), 0x400000); 227 f = ioremap(IXP4XX_EXP_BUS_BASE(0), 0x400000);
229 if (f) { 228 if (f) {
230#ifdef __ARMEB__ 229#ifdef __ARMEB__
230 int i;
231 for (i = 0; i < 6; i++) { 231 for (i = 0; i < 6; i++) {
232 fsg_plat_eth[0].hwaddr[i] = readb(f + 0x3C0422 + i); 232 fsg_plat_eth[0].hwaddr[i] = readb(f + 0x3C0422 + i);
233 fsg_plat_eth[1].hwaddr[i] = readb(f + 0x3C043B + i); 233 fsg_plat_eth[1].hwaddr[i] = readb(f + 0x3C043B + i);
diff --git a/arch/arm/mach-mx3/pcm037.c b/arch/arm/mach-mx3/pcm037.c
index 0a152ed15a8..df8582a6231 100644
--- a/arch/arm/mach-mx3/pcm037.c
+++ b/arch/arm/mach-mx3/pcm037.c
@@ -54,7 +54,7 @@ static struct platform_device pcm037_flash = {
54}; 54};
55 55
56static struct imxuart_platform_data uart_pdata = { 56static struct imxuart_platform_data uart_pdata = {
57 .flags = 0, 57 .flags = IMXUART_HAVE_RTSCTS,
58}; 58};
59 59
60static struct platform_device *devices[] __initdata = { 60static struct platform_device *devices[] __initdata = {
diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c
index 826010d5d01..2baeaeb0c90 100644
--- a/arch/arm/mach-omap1/mcbsp.c
+++ b/arch/arm/mach-omap1/mcbsp.c
@@ -159,6 +159,7 @@ static struct omap_mcbsp_ops omap1_mcbsp_ops = {
159#ifdef CONFIG_ARCH_OMAP730 159#ifdef CONFIG_ARCH_OMAP730
160static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = { 160static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = {
161 { 161 {
162 .phys_base = OMAP730_MCBSP1_BASE,
162 .virt_base = io_p2v(OMAP730_MCBSP1_BASE), 163 .virt_base = io_p2v(OMAP730_MCBSP1_BASE),
163 .dma_rx_sync = OMAP_DMA_MCBSP1_RX, 164 .dma_rx_sync = OMAP_DMA_MCBSP1_RX,
164 .dma_tx_sync = OMAP_DMA_MCBSP1_TX, 165 .dma_tx_sync = OMAP_DMA_MCBSP1_TX,
@@ -167,6 +168,7 @@ static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = {
167 .ops = &omap1_mcbsp_ops, 168 .ops = &omap1_mcbsp_ops,
168 }, 169 },
169 { 170 {
171 .phys_base = OMAP730_MCBSP2_BASE,
170 .virt_base = io_p2v(OMAP730_MCBSP2_BASE), 172 .virt_base = io_p2v(OMAP730_MCBSP2_BASE),
171 .dma_rx_sync = OMAP_DMA_MCBSP3_RX, 173 .dma_rx_sync = OMAP_DMA_MCBSP3_RX,
172 .dma_tx_sync = OMAP_DMA_MCBSP3_TX, 174 .dma_tx_sync = OMAP_DMA_MCBSP3_TX,
@@ -184,6 +186,7 @@ static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = {
184#ifdef CONFIG_ARCH_OMAP15XX 186#ifdef CONFIG_ARCH_OMAP15XX
185static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = { 187static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
186 { 188 {
189 .phys_base = OMAP1510_MCBSP1_BASE,
187 .virt_base = OMAP1510_MCBSP1_BASE, 190 .virt_base = OMAP1510_MCBSP1_BASE,
188 .dma_rx_sync = OMAP_DMA_MCBSP1_RX, 191 .dma_rx_sync = OMAP_DMA_MCBSP1_RX,
189 .dma_tx_sync = OMAP_DMA_MCBSP1_TX, 192 .dma_tx_sync = OMAP_DMA_MCBSP1_TX,
@@ -193,6 +196,7 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
193 .clk_name = "mcbsp_clk", 196 .clk_name = "mcbsp_clk",
194 }, 197 },
195 { 198 {
199 .phys_base = OMAP1510_MCBSP2_BASE,
196 .virt_base = io_p2v(OMAP1510_MCBSP2_BASE), 200 .virt_base = io_p2v(OMAP1510_MCBSP2_BASE),
197 .dma_rx_sync = OMAP_DMA_MCBSP2_RX, 201 .dma_rx_sync = OMAP_DMA_MCBSP2_RX,
198 .dma_tx_sync = OMAP_DMA_MCBSP2_TX, 202 .dma_tx_sync = OMAP_DMA_MCBSP2_TX,
@@ -201,6 +205,7 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
201 .ops = &omap1_mcbsp_ops, 205 .ops = &omap1_mcbsp_ops,
202 }, 206 },
203 { 207 {
208 .phys_base = OMAP1510_MCBSP3_BASE,
204 .virt_base = OMAP1510_MCBSP3_BASE, 209 .virt_base = OMAP1510_MCBSP3_BASE,
205 .dma_rx_sync = OMAP_DMA_MCBSP3_RX, 210 .dma_rx_sync = OMAP_DMA_MCBSP3_RX,
206 .dma_tx_sync = OMAP_DMA_MCBSP3_TX, 211 .dma_tx_sync = OMAP_DMA_MCBSP3_TX,
@@ -219,6 +224,7 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
219#ifdef CONFIG_ARCH_OMAP16XX 224#ifdef CONFIG_ARCH_OMAP16XX
220static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = { 225static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
221 { 226 {
227 .phys_base = OMAP1610_MCBSP1_BASE,
222 .virt_base = OMAP1610_MCBSP1_BASE, 228 .virt_base = OMAP1610_MCBSP1_BASE,
223 .dma_rx_sync = OMAP_DMA_MCBSP1_RX, 229 .dma_rx_sync = OMAP_DMA_MCBSP1_RX,
224 .dma_tx_sync = OMAP_DMA_MCBSP1_TX, 230 .dma_tx_sync = OMAP_DMA_MCBSP1_TX,
@@ -228,6 +234,7 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
228 .clk_name = "mcbsp_clk", 234 .clk_name = "mcbsp_clk",
229 }, 235 },
230 { 236 {
237 .phys_base = OMAP1610_MCBSP2_BASE,
231 .virt_base = io_p2v(OMAP1610_MCBSP2_BASE), 238 .virt_base = io_p2v(OMAP1610_MCBSP2_BASE),
232 .dma_rx_sync = OMAP_DMA_MCBSP2_RX, 239 .dma_rx_sync = OMAP_DMA_MCBSP2_RX,
233 .dma_tx_sync = OMAP_DMA_MCBSP2_TX, 240 .dma_tx_sync = OMAP_DMA_MCBSP2_TX,
@@ -236,6 +243,7 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
236 .ops = &omap1_mcbsp_ops, 243 .ops = &omap1_mcbsp_ops,
237 }, 244 },
238 { 245 {
246 .phys_base = OMAP1610_MCBSP3_BASE,
239 .virt_base = OMAP1610_MCBSP3_BASE, 247 .virt_base = OMAP1610_MCBSP3_BASE,
240 .dma_rx_sync = OMAP_DMA_MCBSP3_RX, 248 .dma_rx_sync = OMAP_DMA_MCBSP3_RX,
241 .dma_tx_sync = OMAP_DMA_MCBSP3_TX, 249 .dma_tx_sync = OMAP_DMA_MCBSP3_TX,
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c
index d4d6385cad7..b72ca13b3ac 100644
--- a/arch/arm/mach-omap2/board-2430sdp.c
+++ b/arch/arm/mach-omap2/board-2430sdp.c
@@ -103,7 +103,7 @@ static struct resource sdp2430_smc91x_resources[] = {
103 [1] = { 103 [1] = {
104 .start = OMAP_GPIO_IRQ(OMAP24XX_ETHR_GPIO_IRQ), 104 .start = OMAP_GPIO_IRQ(OMAP24XX_ETHR_GPIO_IRQ),
105 .end = OMAP_GPIO_IRQ(OMAP24XX_ETHR_GPIO_IRQ), 105 .end = OMAP_GPIO_IRQ(OMAP24XX_ETHR_GPIO_IRQ),
106 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, 106 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
107 }, 107 },
108}; 108};
109 109
diff --git a/arch/arm/mach-omap2/mcbsp.c b/arch/arm/mach-omap2/mcbsp.c
index 27eb6e3ca92..b261f1f80b5 100644
--- a/arch/arm/mach-omap2/mcbsp.c
+++ b/arch/arm/mach-omap2/mcbsp.c
@@ -134,6 +134,7 @@ static struct omap_mcbsp_ops omap2_mcbsp_ops = {
134#ifdef CONFIG_ARCH_OMAP24XX 134#ifdef CONFIG_ARCH_OMAP24XX
135static struct omap_mcbsp_platform_data omap24xx_mcbsp_pdata[] = { 135static struct omap_mcbsp_platform_data omap24xx_mcbsp_pdata[] = {
136 { 136 {
137 .phys_base = OMAP24XX_MCBSP1_BASE,
137 .virt_base = IO_ADDRESS(OMAP24XX_MCBSP1_BASE), 138 .virt_base = IO_ADDRESS(OMAP24XX_MCBSP1_BASE),
138 .dma_rx_sync = OMAP24XX_DMA_MCBSP1_RX, 139 .dma_rx_sync = OMAP24XX_DMA_MCBSP1_RX,
139 .dma_tx_sync = OMAP24XX_DMA_MCBSP1_TX, 140 .dma_tx_sync = OMAP24XX_DMA_MCBSP1_TX,
@@ -143,6 +144,7 @@ static struct omap_mcbsp_platform_data omap24xx_mcbsp_pdata[] = {
143 .clk_name = "mcbsp_clk", 144 .clk_name = "mcbsp_clk",
144 }, 145 },
145 { 146 {
147 .phys_base = OMAP24XX_MCBSP2_BASE,
146 .virt_base = IO_ADDRESS(OMAP24XX_MCBSP2_BASE), 148 .virt_base = IO_ADDRESS(OMAP24XX_MCBSP2_BASE),
147 .dma_rx_sync = OMAP24XX_DMA_MCBSP2_RX, 149 .dma_rx_sync = OMAP24XX_DMA_MCBSP2_RX,
148 .dma_tx_sync = OMAP24XX_DMA_MCBSP2_TX, 150 .dma_tx_sync = OMAP24XX_DMA_MCBSP2_TX,
@@ -161,6 +163,7 @@ static struct omap_mcbsp_platform_data omap24xx_mcbsp_pdata[] = {
161#ifdef CONFIG_ARCH_OMAP34XX 163#ifdef CONFIG_ARCH_OMAP34XX
162static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = { 164static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
163 { 165 {
166 .phys_base = OMAP34XX_MCBSP1_BASE,
164 .virt_base = IO_ADDRESS(OMAP34XX_MCBSP1_BASE), 167 .virt_base = IO_ADDRESS(OMAP34XX_MCBSP1_BASE),
165 .dma_rx_sync = OMAP24XX_DMA_MCBSP1_RX, 168 .dma_rx_sync = OMAP24XX_DMA_MCBSP1_RX,
166 .dma_tx_sync = OMAP24XX_DMA_MCBSP1_TX, 169 .dma_tx_sync = OMAP24XX_DMA_MCBSP1_TX,
@@ -170,6 +173,7 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
170 .clk_name = "mcbsp_clk", 173 .clk_name = "mcbsp_clk",
171 }, 174 },
172 { 175 {
176 .phys_base = OMAP34XX_MCBSP2_BASE,
173 .virt_base = IO_ADDRESS(OMAP34XX_MCBSP2_BASE), 177 .virt_base = IO_ADDRESS(OMAP34XX_MCBSP2_BASE),
174 .dma_rx_sync = OMAP24XX_DMA_MCBSP2_RX, 178 .dma_rx_sync = OMAP24XX_DMA_MCBSP2_RX,
175 .dma_tx_sync = OMAP24XX_DMA_MCBSP2_TX, 179 .dma_tx_sync = OMAP24XX_DMA_MCBSP2_TX,
diff --git a/arch/arm/mach-orion5x/common.h b/arch/arm/mach-orion5x/common.h
index e75bd7004b9..0bd195551a2 100644
--- a/arch/arm/mach-orion5x/common.h
+++ b/arch/arm/mach-orion5x/common.h
@@ -41,6 +41,7 @@ struct pci_bus;
41struct pci_sys_data; 41struct pci_sys_data;
42 42
43void orion5x_pcie_id(u32 *dev, u32 *rev); 43void orion5x_pcie_id(u32 *dev, u32 *rev);
44void orion5x_pci_disable(void);
44void orion5x_pci_set_cardbus_mode(void); 45void orion5x_pci_set_cardbus_mode(void);
45int orion5x_pci_sys_setup(int nr, struct pci_sys_data *sys); 46int orion5x_pci_sys_setup(int nr, struct pci_sys_data *sys);
46struct pci_bus *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys); 47struct pci_bus *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys);
diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c
index 1a1d84b80a6..b38c65ccfb1 100644
--- a/arch/arm/mach-orion5x/dns323-setup.c
+++ b/arch/arm/mach-orion5x/dns323-setup.c
@@ -245,12 +245,8 @@ static struct orion5x_mpp_mode dns323_mpp_modes[] __initdata = {
245static struct i2c_board_info __initdata dns323_i2c_devices[] = { 245static struct i2c_board_info __initdata dns323_i2c_devices[] = {
246 { 246 {
247 I2C_BOARD_INFO("g760a", 0x3e), 247 I2C_BOARD_INFO("g760a", 0x3e),
248#if 0
249 /* this entry requires the new-style driver model lm75 driver,
250 * for the meantime "insmod lm75.ko force_lm75=0,0x48" is needed */
251 }, { 248 }, {
252 I2C_BOARD_INFO("g751", 0x48), 249 I2C_BOARD_INFO("lm75", 0x48),
253#endif
254 }, { 250 }, {
255 I2C_BOARD_INFO("m41t80", 0x68), 251 I2C_BOARD_INFO("m41t80", 0x68),
256 }, 252 },
diff --git a/arch/arm/mach-orion5x/kurobox_pro-setup.c b/arch/arm/mach-orion5x/kurobox_pro-setup.c
index cb72f1bb9cb..e321ec33183 100644
--- a/arch/arm/mach-orion5x/kurobox_pro-setup.c
+++ b/arch/arm/mach-orion5x/kurobox_pro-setup.c
@@ -146,8 +146,10 @@ static struct hw_pci kurobox_pro_pci __initdata = {
146 146
147static int __init kurobox_pro_pci_init(void) 147static int __init kurobox_pro_pci_init(void)
148{ 148{
149 if (machine_is_kurobox_pro()) 149 if (machine_is_kurobox_pro()) {
150 orion5x_pci_disable();
150 pci_common_init(&kurobox_pro_pci); 151 pci_common_init(&kurobox_pro_pci);
152 }
151 153
152 return 0; 154 return 0;
153} 155}
diff --git a/arch/arm/mach-orion5x/pci.c b/arch/arm/mach-orion5x/pci.c
index fbceecc4b7e..a7b7d77b1b0 100644
--- a/arch/arm/mach-orion5x/pci.c
+++ b/arch/arm/mach-orion5x/pci.c
@@ -541,6 +541,13 @@ static void __devinit rc_pci_fixup(struct pci_dev *dev)
541} 541}
542DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL, PCI_ANY_ID, rc_pci_fixup); 542DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL, PCI_ANY_ID, rc_pci_fixup);
543 543
544static int orion5x_pci_disabled __initdata;
545
546void __init orion5x_pci_disable(void)
547{
548 orion5x_pci_disabled = 1;
549}
550
544void __init orion5x_pci_set_cardbus_mode(void) 551void __init orion5x_pci_set_cardbus_mode(void)
545{ 552{
546 orion5x_pci_cardbus_mode = 1; 553 orion5x_pci_cardbus_mode = 1;
@@ -553,7 +560,7 @@ int __init orion5x_pci_sys_setup(int nr, struct pci_sys_data *sys)
553 if (nr == 0) { 560 if (nr == 0) {
554 orion_pcie_set_local_bus_nr(PCIE_BASE, sys->busnr); 561 orion_pcie_set_local_bus_nr(PCIE_BASE, sys->busnr);
555 ret = pcie_setup(sys); 562 ret = pcie_setup(sys);
556 } else if (nr == 1) { 563 } else if (nr == 1 && !orion5x_pci_disabled) {
557 orion5x_pci_set_bus_nr(sys->busnr); 564 orion5x_pci_set_bus_nr(sys->busnr);
558 ret = pci_setup(sys); 565 ret = pci_setup(sys);
559 } 566 }
@@ -567,7 +574,7 @@ struct pci_bus __init *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys
567 574
568 if (nr == 0) { 575 if (nr == 0) {
569 bus = pci_scan_bus(sys->busnr, &pcie_ops, sys); 576 bus = pci_scan_bus(sys->busnr, &pcie_ops, sys);
570 } else if (nr == 1) { 577 } else if (nr == 1 && !orion5x_pci_disabled) {
571 bus = pci_scan_bus(sys->busnr, &pci_ops, sys); 578 bus = pci_scan_bus(sys->busnr, &pci_ops, sys);
572 } else { 579 } else {
573 bus = NULL; 580 bus = NULL;
@@ -584,7 +591,7 @@ int __init orion5x_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
584 /* 591 /*
585 * PCIe endpoint? 592 * PCIe endpoint?
586 */ 593 */
587 if (bus < orion5x_pci_local_bus_nr()) 594 if (orion5x_pci_disabled || bus < orion5x_pci_local_bus_nr())
588 return IRQ_ORION5X_PCIE0_INT; 595 return IRQ_ORION5X_PCIE0_INT;
589 596
590 return -1; 597 return -1;
diff --git a/arch/arm/mach-orion5x/ts209-setup.c b/arch/arm/mach-orion5x/ts209-setup.c
index dd657163cd8..9d689051419 100644
--- a/arch/arm/mach-orion5x/ts209-setup.c
+++ b/arch/arm/mach-orion5x/ts209-setup.c
@@ -287,6 +287,10 @@ static void __init qnap_ts209_init(void)
287 /* 287 /*
288 * Configure peripherals. 288 * Configure peripherals.
289 */ 289 */
290 orion5x_setup_dev_boot_win(QNAP_TS209_NOR_BOOT_BASE,
291 QNAP_TS209_NOR_BOOT_SIZE);
292 platform_device_register(&qnap_ts209_nor_flash);
293
290 orion5x_ehci0_init(); 294 orion5x_ehci0_init();
291 orion5x_ehci1_init(); 295 orion5x_ehci1_init();
292 qnap_tsx09_find_mac_addr(QNAP_TS209_NOR_BOOT_BASE + 296 qnap_tsx09_find_mac_addr(QNAP_TS209_NOR_BOOT_BASE +
@@ -296,12 +300,9 @@ static void __init qnap_ts209_init(void)
296 orion5x_i2c_init(); 300 orion5x_i2c_init();
297 orion5x_sata_init(&qnap_ts209_sata_data); 301 orion5x_sata_init(&qnap_ts209_sata_data);
298 orion5x_uart0_init(); 302 orion5x_uart0_init();
303 orion5x_uart1_init();
299 orion5x_xor_init(); 304 orion5x_xor_init();
300 305
301 orion5x_setup_dev_boot_win(QNAP_TS209_NOR_BOOT_BASE,
302 QNAP_TS209_NOR_BOOT_SIZE);
303 platform_device_register(&qnap_ts209_nor_flash);
304
305 platform_device_register(&qnap_ts209_button_device); 306 platform_device_register(&qnap_ts209_button_device);
306 307
307 /* Get RTC IRQ and register the chip */ 308 /* Get RTC IRQ and register the chip */
diff --git a/arch/arm/mach-orion5x/ts409-setup.c b/arch/arm/mach-orion5x/ts409-setup.c
index b27d2b76208..d85588ac7ef 100644
--- a/arch/arm/mach-orion5x/ts409-setup.c
+++ b/arch/arm/mach-orion5x/ts409-setup.c
@@ -278,6 +278,10 @@ static void __init qnap_ts409_init(void)
278 /* 278 /*
279 * Configure peripherals. 279 * Configure peripherals.
280 */ 280 */
281 orion5x_setup_dev_boot_win(QNAP_TS409_NOR_BOOT_BASE,
282 QNAP_TS409_NOR_BOOT_SIZE);
283 platform_device_register(&qnap_ts409_nor_flash);
284
281 orion5x_ehci0_init(); 285 orion5x_ehci0_init();
282 qnap_tsx09_find_mac_addr(QNAP_TS409_NOR_BOOT_BASE + 286 qnap_tsx09_find_mac_addr(QNAP_TS409_NOR_BOOT_BASE +
283 qnap_ts409_partitions[5].offset, 287 qnap_ts409_partitions[5].offset,
@@ -285,10 +289,7 @@ static void __init qnap_ts409_init(void)
285 orion5x_eth_init(&qnap_tsx09_eth_data); 289 orion5x_eth_init(&qnap_tsx09_eth_data);
286 orion5x_i2c_init(); 290 orion5x_i2c_init();
287 orion5x_uart0_init(); 291 orion5x_uart0_init();
288 292 orion5x_uart1_init();
289 orion5x_setup_dev_boot_win(QNAP_TS409_NOR_BOOT_BASE,
290 QNAP_TS409_NOR_BOOT_SIZE);
291 platform_device_register(&qnap_ts409_nor_flash);
292 293
293 platform_device_register(&qnap_ts409_button_device); 294 platform_device_register(&qnap_ts409_button_device);
294 295
diff --git a/arch/arm/mach-pxa/clock.c b/arch/arm/mach-pxa/clock.c
index c01eea88f78..ca8e2053815 100644
--- a/arch/arm/mach-pxa/clock.c
+++ b/arch/arm/mach-pxa/clock.c
@@ -125,3 +125,28 @@ void clks_register(struct clk *clks, size_t num)
125 list_add(&clks[i].node, &clocks); 125 list_add(&clks[i].node, &clocks);
126 mutex_unlock(&clocks_mutex); 126 mutex_unlock(&clocks_mutex);
127} 127}
128
129int clk_add_alias(char *alias, struct device *alias_dev, char *id,
130 struct device *dev)
131{
132 struct clk *r = clk_lookup(dev, id);
133 struct clk *new;
134
135 if (!r)
136 return -ENODEV;
137
138 new = kzalloc(sizeof(struct clk), GFP_KERNEL);
139
140 if (!new)
141 return -ENOMEM;
142
143 new->name = alias;
144 new->dev = alias_dev;
145 new->other = r;
146
147 mutex_lock(&clocks_mutex);
148 list_add(&new->node, &clocks);
149 mutex_unlock(&clocks_mutex);
150
151 return 0;
152}
diff --git a/arch/arm/mach-pxa/clock.h b/arch/arm/mach-pxa/clock.h
index 1ec8f9178aa..73be795fe3b 100644
--- a/arch/arm/mach-pxa/clock.h
+++ b/arch/arm/mach-pxa/clock.h
@@ -1,3 +1,5 @@
1#include <linux/list.h>
2
1struct clk; 3struct clk;
2 4
3struct clkops { 5struct clkops {
@@ -86,3 +88,6 @@ extern void clk_pxa3xx_cken_disable(struct clk *);
86#endif 88#endif
87 89
88void clks_register(struct clk *clks, size_t num); 90void clks_register(struct clk *clks, size_t num);
91int clk_add_alias(char *alias, struct device *alias_dev, char *id,
92 struct device *dev);
93
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
index 123a950db46..e703a8d209e 100644
--- a/arch/arm/mach-pxa/corgi.c
+++ b/arch/arm/mach-pxa/corgi.c
@@ -38,6 +38,7 @@
38#include <mach/pxa-regs.h> 38#include <mach/pxa-regs.h>
39#include <mach/pxa2xx-regs.h> 39#include <mach/pxa2xx-regs.h>
40#include <mach/pxa2xx-gpio.h> 40#include <mach/pxa2xx-gpio.h>
41#include <mach/i2c.h>
41#include <mach/irda.h> 42#include <mach/irda.h>
42#include <mach/mmc.h> 43#include <mach/mmc.h>
43#include <mach/udc.h> 44#include <mach/udc.h>
@@ -532,6 +533,7 @@ static void __init corgi_init(void)
532 pxa_set_udc_info(&udc_info); 533 pxa_set_udc_info(&udc_info);
533 pxa_set_mci_info(&corgi_mci_platform_data); 534 pxa_set_mci_info(&corgi_mci_platform_data);
534 pxa_set_ficp_info(&corgi_ficp_platform_data); 535 pxa_set_ficp_info(&corgi_ficp_platform_data);
536 pxa_set_i2c_info(NULL);
535 537
536 platform_scoop_config = &corgi_pcmcia_config; 538 platform_scoop_config = &corgi_pcmcia_config;
537 539
diff --git a/arch/arm/mach-pxa/eseries.c b/arch/arm/mach-pxa/eseries.c
index 03942450885..001a252bd51 100644
--- a/arch/arm/mach-pxa/eseries.c
+++ b/arch/arm/mach-pxa/eseries.c
@@ -10,18 +10,78 @@
10 * 10 *
11 */ 11 */
12 12
13#include <linux/kernel.h>
13#include <linux/init.h> 14#include <linux/init.h>
14 15
15#include <asm/setup.h> 16#include <asm/setup.h>
16#include <asm/mach/arch.h> 17#include <asm/mach/arch.h>
17#include <mach/hardware.h>
18#include <asm/mach-types.h> 18#include <asm/mach-types.h>
19 19
20#include <mach/mfp-pxa25x.h>
21#include <mach/hardware.h>
22
20#include "generic.h" 23#include "generic.h"
21 24
25static unsigned long e740_pin_config[] __initdata = {
26 /* Chip selects */
27 GPIO15_nCS_1, /* CS1 - Flash */
28 GPIO79_nCS_3, /* CS3 - IMAGEON */
29 GPIO80_nCS_4, /* CS4 - TMIO */
30
31 /* Clocks */
32 GPIO12_32KHz,
33
34 /* BTUART */
35 GPIO42_BTUART_RXD,
36 GPIO43_BTUART_TXD,
37 GPIO44_BTUART_CTS,
38 GPIO45_GPIO, /* Used by TMIO for #SUSPEND */
39
40 /* PC Card */
41 GPIO8_GPIO, /* CD0 */
42 GPIO44_GPIO, /* CD1 */
43 GPIO11_GPIO, /* IRQ0 */
44 GPIO6_GPIO, /* IRQ1 */
45 GPIO27_GPIO, /* RST0 */
46 GPIO24_GPIO, /* RST1 */
47 GPIO20_GPIO, /* PWR0 */
48 GPIO23_GPIO, /* PWR1 */
49 GPIO48_nPOE,
50 GPIO49_nPWE,
51 GPIO50_nPIOR,
52 GPIO51_nPIOW,
53 GPIO52_nPCE_1,
54 GPIO53_nPCE_2,
55 GPIO54_nPSKTSEL,
56 GPIO55_nPREG,
57 GPIO56_nPWAIT,
58 GPIO57_nIOIS16,
59
60 /* wakeup */
61 GPIO0_GPIO | WAKEUP_ON_EDGE_RISE,
62};
63
64static unsigned long e400_pin_config[] __initdata = {
65 /* Chip selects */
66 GPIO15_nCS_1, /* CS1 - Flash */
67 GPIO80_nCS_4, /* CS4 - TMIO */
68
69 /* Clocks */
70 GPIO12_32KHz,
71
72 /* BTUART */
73 GPIO42_BTUART_RXD,
74 GPIO43_BTUART_TXD,
75 GPIO44_BTUART_CTS,
76 GPIO45_GPIO, /* Used by TMIO for #SUSPEND */
77
78 /* wakeup */
79 GPIO0_GPIO | WAKEUP_ON_EDGE_RISE,
80};
81
22/* Only e800 has 128MB RAM */ 82/* Only e800 has 128MB RAM */
23static void __init eseries_fixup(struct machine_desc *desc, 83static void __init eseries_fixup(struct machine_desc *desc,
24 struct tag *tags, char **cmdline, struct meminfo *mi) 84 struct tag *tags, char **cmdline, struct meminfo *mi)
25{ 85{
26 mi->nr_banks=1; 86 mi->nr_banks=1;
27 mi->bank[0].start = 0xa0000000; 87 mi->bank[0].start = 0xa0000000;
@@ -32,83 +92,95 @@ static void __init eseries_fixup(struct machine_desc *desc,
32 mi->bank[0].size = (64*1024*1024); 92 mi->bank[0].size = (64*1024*1024);
33} 93}
34 94
95static void __init e740_init(void)
96{
97 pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config));
98}
99
100static void __init e400_init(void)
101{
102 pxa2xx_mfp_config(ARRAY_AND_SIZE(e400_pin_config));
103}
104
35/* e-series machine definitions */ 105/* e-series machine definitions */
36 106
37#ifdef CONFIG_MACH_E330 107#ifdef CONFIG_MACH_E330
38MACHINE_START(E330, "Toshiba e330") 108MACHINE_START(E330, "Toshiba e330")
39 /* Maintainer: Ian Molton (spyro@f2s.com) */ 109 /* Maintainer: Ian Molton (spyro@f2s.com) */
40 .phys_io = 0x40000000, 110 .phys_io = 0x40000000,
41 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, 111 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
42 .boot_params = 0xa0000100, 112 .boot_params = 0xa0000100,
43 .map_io = pxa_map_io, 113 .map_io = pxa_map_io,
44 .init_irq = pxa25x_init_irq, 114 .init_irq = pxa25x_init_irq,
45 .fixup = eseries_fixup, 115 .fixup = eseries_fixup,
46 .timer = &pxa_timer, 116 .timer = &pxa_timer,
47MACHINE_END 117MACHINE_END
48#endif 118#endif
49 119
50#ifdef CONFIG_MACH_E350 120#ifdef CONFIG_MACH_E350
51MACHINE_START(E350, "Toshiba e350") 121MACHINE_START(E350, "Toshiba e350")
52 /* Maintainer: Ian Molton (spyro@f2s.com) */ 122 /* Maintainer: Ian Molton (spyro@f2s.com) */
53 .phys_io = 0x40000000, 123 .phys_io = 0x40000000,
54 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, 124 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
55 .boot_params = 0xa0000100, 125 .boot_params = 0xa0000100,
56 .map_io = pxa_map_io, 126 .map_io = pxa_map_io,
57 .init_irq = pxa25x_init_irq, 127 .init_irq = pxa25x_init_irq,
58 .fixup = eseries_fixup, 128 .fixup = eseries_fixup,
59 .timer = &pxa_timer, 129 .timer = &pxa_timer,
60MACHINE_END 130MACHINE_END
61#endif 131#endif
62 132
63#ifdef CONFIG_MACH_E740 133#ifdef CONFIG_MACH_E740
64MACHINE_START(E740, "Toshiba e740") 134MACHINE_START(E740, "Toshiba e740")
65 /* Maintainer: Ian Molton (spyro@f2s.com) */ 135 /* Maintainer: Ian Molton (spyro@f2s.com) */
66 .phys_io = 0x40000000, 136 .phys_io = 0x40000000,
67 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, 137 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
68 .boot_params = 0xa0000100, 138 .boot_params = 0xa0000100,
69 .map_io = pxa_map_io, 139 .map_io = pxa_map_io,
70 .init_irq = pxa25x_init_irq, 140 .init_irq = pxa25x_init_irq,
71 .fixup = eseries_fixup, 141 .fixup = eseries_fixup,
72 .timer = &pxa_timer, 142 .init_machine = e740_init,
143 .timer = &pxa_timer,
73MACHINE_END 144MACHINE_END
74#endif 145#endif
75 146
76#ifdef CONFIG_MACH_E750 147#ifdef CONFIG_MACH_E750
77MACHINE_START(E750, "Toshiba e750") 148MACHINE_START(E750, "Toshiba e750")
78 /* Maintainer: Ian Molton (spyro@f2s.com) */ 149 /* Maintainer: Ian Molton (spyro@f2s.com) */
79 .phys_io = 0x40000000, 150 .phys_io = 0x40000000,
80 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, 151 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
81 .boot_params = 0xa0000100, 152 .boot_params = 0xa0000100,
82 .map_io = pxa_map_io, 153 .map_io = pxa_map_io,
83 .init_irq = pxa25x_init_irq, 154 .init_irq = pxa25x_init_irq,
84 .fixup = eseries_fixup, 155 .fixup = eseries_fixup,
85 .timer = &pxa_timer, 156 .timer = &pxa_timer,
86MACHINE_END 157MACHINE_END
87#endif 158#endif
88 159
89#ifdef CONFIG_MACH_E400 160#ifdef CONFIG_MACH_E400
90MACHINE_START(E400, "Toshiba e400") 161MACHINE_START(E400, "Toshiba e400")
91 /* Maintainer: Ian Molton (spyro@f2s.com) */ 162 /* Maintainer: Ian Molton (spyro@f2s.com) */
92 .phys_io = 0x40000000, 163 .phys_io = 0x40000000,
93 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, 164 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
94 .boot_params = 0xa0000100, 165 .boot_params = 0xa0000100,
95 .map_io = pxa_map_io, 166 .map_io = pxa_map_io,
96 .init_irq = pxa25x_init_irq, 167 .init_irq = pxa25x_init_irq,
97 .fixup = eseries_fixup, 168 .fixup = eseries_fixup,
98 .timer = &pxa_timer, 169 .init_machine = e400_init,
170 .timer = &pxa_timer,
99MACHINE_END 171MACHINE_END
100#endif 172#endif
101 173
102#ifdef CONFIG_MACH_E800 174#ifdef CONFIG_MACH_E800
103MACHINE_START(E800, "Toshiba e800") 175MACHINE_START(E800, "Toshiba e800")
104 /* Maintainer: Ian Molton (spyro@f2s.com) */ 176 /* Maintainer: Ian Molton (spyro@f2s.com) */
105 .phys_io = 0x40000000, 177 .phys_io = 0x40000000,
106 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, 178 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
107 .boot_params = 0xa0000100, 179 .boot_params = 0xa0000100,
108 .map_io = pxa_map_io, 180 .map_io = pxa_map_io,
109 .init_irq = pxa25x_init_irq, 181 .init_irq = pxa25x_init_irq,
110 .fixup = eseries_fixup, 182 .fixup = eseries_fixup,
111 .timer = &pxa_timer, 183 .timer = &pxa_timer,
112MACHINE_END 184MACHINE_END
113#endif 185#endif
114 186
diff --git a/arch/arm/mach-pxa/include/mach/irqs.h b/arch/arm/mach-pxa/include/mach/irqs.h
index 32772bc6925..108b5db9b2a 100644
--- a/arch/arm/mach-pxa/include/mach/irqs.h
+++ b/arch/arm/mach-pxa/include/mach/irqs.h
@@ -183,6 +183,7 @@
183 defined(CONFIG_MACH_TOSA) || \ 183 defined(CONFIG_MACH_TOSA) || \
184 defined(CONFIG_MACH_MAINSTONE) || \ 184 defined(CONFIG_MACH_MAINSTONE) || \
185 defined(CONFIG_MACH_PCM027) || \ 185 defined(CONFIG_MACH_PCM027) || \
186 defined(CONFIG_ARCH_PXA_ESERIES) || \
186 defined(CONFIG_MACH_MAGICIAN) 187 defined(CONFIG_MACH_MAGICIAN)
187#define NR_IRQS (IRQ_BOARD_END) 188#define NR_IRQS (IRQ_BOARD_END)
188#elif defined(CONFIG_MACH_ZYLONITE) 189#elif defined(CONFIG_MACH_ZYLONITE)
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c
index bb9e09208b9..4ffdff2d9ff 100644
--- a/arch/arm/mach-pxa/lubbock.c
+++ b/arch/arm/mach-pxa/lubbock.c
@@ -52,6 +52,7 @@
52#include <mach/mmc.h> 52#include <mach/mmc.h>
53 53
54#include "generic.h" 54#include "generic.h"
55#include "clock.h"
55#include "devices.h" 56#include "devices.h"
56 57
57static unsigned long lubbock_pin_config[] __initdata = { 58static unsigned long lubbock_pin_config[] __initdata = {
@@ -485,6 +486,7 @@ static void __init lubbock_init(void)
485 486
486 pxa2xx_mfp_config(ARRAY_AND_SIZE(lubbock_pin_config)); 487 pxa2xx_mfp_config(ARRAY_AND_SIZE(lubbock_pin_config));
487 488
489 clk_add_alias("SA1111_CLK", NULL, "GPIO11_CLK", NULL);
488 pxa_set_udc_info(&udc_info); 490 pxa_set_udc_info(&udc_info);
489 set_pxa_fb_info(&sharp_lm8v31); 491 set_pxa_fb_info(&sharp_lm8v31);
490 pxa_set_mci_info(&lubbock_mci_platform_data); 492 pxa_set_mci_info(&lubbock_mci_platform_data);
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c
index 055ec63d768..3f5f484549b 100644
--- a/arch/arm/mach-pxa/poodle.c
+++ b/arch/arm/mach-pxa/poodle.c
@@ -36,6 +36,7 @@
36#include <mach/pxa2xx-gpio.h> 36#include <mach/pxa2xx-gpio.h>
37#include <mach/mmc.h> 37#include <mach/mmc.h>
38#include <mach/udc.h> 38#include <mach/udc.h>
39#include <mach/i2c.h>
39#include <mach/irda.h> 40#include <mach/irda.h>
40#include <mach/poodle.h> 41#include <mach/poodle.h>
41#include <mach/pxafb.h> 42#include <mach/pxafb.h>
@@ -387,6 +388,7 @@ static void __init poodle_init(void)
387 pxa_set_udc_info(&udc_info); 388 pxa_set_udc_info(&udc_info);
388 pxa_set_mci_info(&poodle_mci_platform_data); 389 pxa_set_mci_info(&poodle_mci_platform_data);
389 pxa_set_ficp_info(&poodle_ficp_platform_data); 390 pxa_set_ficp_info(&poodle_ficp_platform_data);
391 pxa_set_i2c_info(NULL);
390 392
391 platform_scoop_config = &poodle_pcmcia_config; 393 platform_scoop_config = &poodle_pcmcia_config;
392 394
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
index 9e5d8a8c642..305452b56e9 100644
--- a/arch/arm/mach-pxa/pxa25x.c
+++ b/arch/arm/mach-pxa/pxa25x.c
@@ -166,8 +166,7 @@ static struct clk pxa25x_hwuart_clk =
166; 166;
167 167
168/* 168/*
169 * PXA 2xx clock declarations. Order is important (see aliases below) 169 * PXA 2xx clock declarations.
170 * Please be careful not to disrupt the ordering.
171 */ 170 */
172static struct clk pxa25x_clks[] = { 171static struct clk pxa25x_clks[] = {
173 INIT_CK("LCDCLK", LCD, &clk_pxa25x_lcd_ops, &pxa_device_fb.dev), 172 INIT_CK("LCDCLK", LCD, &clk_pxa25x_lcd_ops, &pxa_device_fb.dev),
@@ -194,11 +193,6 @@ static struct clk pxa25x_clks[] = {
194 INIT_CKEN("FICPCLK", FICP, 47923000, 0, NULL), 193 INIT_CKEN("FICPCLK", FICP, 47923000, 0, NULL),
195}; 194};
196 195
197static struct clk pxa2xx_clk_aliases[] = {
198 INIT_CKOTHER("GPIO7_CLK", &pxa25x_clks[4], NULL),
199 INIT_CKOTHER("SA1111_CLK", &pxa25x_clks[5], NULL),
200};
201
202#ifdef CONFIG_PM 196#ifdef CONFIG_PM
203 197
204#define SAVE(x) sleep_save[SLEEP_SAVE_##x] = x 198#define SAVE(x) sleep_save[SLEEP_SAVE_##x] = x
@@ -375,8 +369,6 @@ static int __init pxa25x_init(void)
375 if (cpu_is_pxa255()) 369 if (cpu_is_pxa255())
376 ret = platform_device_register(&pxa_device_hwuart); 370 ret = platform_device_register(&pxa_device_hwuart);
377 371
378 clks_register(pxa2xx_clk_aliases, ARRAY_SIZE(pxa2xx_clk_aliases));
379
380 return ret; 372 return ret;
381} 373}
382 374
diff --git a/arch/arm/mach-pxa/pxa300.c b/arch/arm/mach-pxa/pxa300.c
index 494fc1f032d..9adc7fc4618 100644
--- a/arch/arm/mach-pxa/pxa300.c
+++ b/arch/arm/mach-pxa/pxa300.c
@@ -90,7 +90,9 @@ static struct clk common_clks[] = {
90}; 90};
91 91
92static struct clk pxa310_clks[] = { 92static struct clk pxa310_clks[] = {
93#ifdef CONFIG_CPU_PXA310
93 PXA3xx_CKEN("MMCCLK", MMC3, 19500000, 0, &pxa3xx_device_mci3.dev), 94 PXA3xx_CKEN("MMCCLK", MMC3, 19500000, 0, &pxa3xx_device_mci3.dev),
95#endif
94}; 96};
95 97
96static int __init pxa300_init(void) 98static int __init pxa300_init(void)
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index cd39005c98f..b569f3b4cf3 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -40,6 +40,7 @@
40#include <mach/pxa2xx-gpio.h> 40#include <mach/pxa2xx-gpio.h>
41#include <mach/pxa27x-udc.h> 41#include <mach/pxa27x-udc.h>
42#include <mach/reset.h> 42#include <mach/reset.h>
43#include <mach/i2c.h>
43#include <mach/irda.h> 44#include <mach/irda.h>
44#include <mach/mmc.h> 45#include <mach/mmc.h>
45#include <mach/ohci.h> 46#include <mach/ohci.h>
@@ -574,6 +575,7 @@ static void __init common_init(void)
574 pxa_set_ficp_info(&spitz_ficp_platform_data); 575 pxa_set_ficp_info(&spitz_ficp_platform_data);
575 set_pxa_fb_parent(&spitzssp_device.dev); 576 set_pxa_fb_parent(&spitzssp_device.dev);
576 set_pxa_fb_info(&spitz_pxafb_info); 577 set_pxa_fb_info(&spitz_pxafb_info);
578 pxa_set_i2c_info(NULL);
577} 579}
578 580
579#if defined(CONFIG_MACH_SPITZ) || defined(CONFIG_MACH_BORZOI) 581#if defined(CONFIG_MACH_SPITZ) || defined(CONFIG_MACH_BORZOI)
diff --git a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c
index 67e18509d7b..b0d6b32654c 100644
--- a/arch/arm/mach-pxa/time.c
+++ b/arch/arm/mach-pxa/time.c
@@ -17,9 +17,9 @@
17#include <linux/interrupt.h> 17#include <linux/interrupt.h>
18#include <linux/clockchips.h> 18#include <linux/clockchips.h>
19#include <linux/sched.h> 19#include <linux/sched.h>
20#include <linux/cnt32_to_63.h>
20 21
21#include <asm/div64.h> 22#include <asm/div64.h>
22#include <asm/cnt32_to_63.h>
23#include <asm/mach/irq.h> 23#include <asm/mach/irq.h>
24#include <asm/mach/time.h> 24#include <asm/mach/time.h>
25#include <mach/pxa-regs.h> 25#include <mach/pxa-regs.h>
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c
index 5dab30eafdd..9f3ef9eb32e 100644
--- a/arch/arm/mach-pxa/tosa.c
+++ b/arch/arm/mach-pxa/tosa.c
@@ -50,6 +50,7 @@
50#include <asm/mach/sharpsl_param.h> 50#include <asm/mach/sharpsl_param.h>
51 51
52#include "generic.h" 52#include "generic.h"
53#include "clock.h"
53#include "devices.h" 54#include "devices.h"
54 55
55static unsigned long tosa_pin_config[] = { 56static unsigned long tosa_pin_config[] = {
@@ -521,6 +522,14 @@ static struct gpio_keys_button tosa_gpio_keys[] = {
521 .wakeup = 1, 522 .wakeup = 1,
522 .active_low = 1, 523 .active_low = 1,
523 }, 524 },
525 {
526 .type = EV_SW,
527 .code = SW_HEADPHONE_INSERT,
528 .gpio = TOSA_GPIO_EAR_IN,
529 .desc = "HeadPhone insert",
530 .active_low = 1,
531 .debounce_interval = 300,
532 },
524}; 533};
525 534
526static struct gpio_keys_platform_data tosa_gpio_keys_platform_data = { 535static struct gpio_keys_platform_data tosa_gpio_keys_platform_data = {
@@ -792,6 +801,8 @@ static void __init tosa_init(void)
792 pxa_set_i2c_info(NULL); 801 pxa_set_i2c_info(NULL);
793 platform_scoop_config = &tosa_pcmcia_config; 802 platform_scoop_config = &tosa_pcmcia_config;
794 803
804 clk_add_alias("CLK_CK3P6MI", &tc6393xb_device.dev, "GPIO11_CLK", NULL);
805
795 platform_add_devices(devices, ARRAY_SIZE(devices)); 806 platform_add_devices(devices, ARRAY_SIZE(devices));
796} 807}
797 808
diff --git a/arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h b/arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h
index 7dd458363a5..6026d091a2f 100644
--- a/arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h
+++ b/arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h
@@ -48,11 +48,11 @@
48#define S3C2443_CLKSRC_I2S_EPLLREF3 (3<<14) 48#define S3C2443_CLKSRC_I2S_EPLLREF3 (3<<14)
49#define S3C2443_CLKSRC_I2S_MASK (3<<14) 49#define S3C2443_CLKSRC_I2S_MASK (3<<14)
50 50
51#define S3C2443_CLKSRC_EPLLREF_XTAL (2<<8) 51#define S3C2443_CLKSRC_EPLLREF_XTAL (2<<7)
52#define S3C2443_CLKSRC_EPLLREF_EXTCLK (3<<8) 52#define S3C2443_CLKSRC_EPLLREF_EXTCLK (3<<7)
53#define S3C2443_CLKSRC_EPLLREF_MPLLREF (0<<8) 53#define S3C2443_CLKSRC_EPLLREF_MPLLREF (0<<7)
54#define S3C2443_CLKSRC_EPLLREF_MPLLREF2 (1<<8) 54#define S3C2443_CLKSRC_EPLLREF_MPLLREF2 (1<<7)
55#define S3C2443_CLKSRC_EPLLREF_MASK (3<<8) 55#define S3C2443_CLKSRC_EPLLREF_MASK (3<<7)
56 56
57#define S3C2443_CLKSRC_ESYSCLK_EPLL (1<<6) 57#define S3C2443_CLKSRC_ESYSCLK_EPLL (1<<6)
58#define S3C2443_CLKSRC_MSYSCLK_MPLL (1<<4) 58#define S3C2443_CLKSRC_MSYSCLK_MPLL (1<<4)
diff --git a/arch/arm/mach-s3c2410/nor-simtec.c b/arch/arm/mach-s3c2410/nor-simtec.c
index b2ae237042a..598d130633d 100644
--- a/arch/arm/mach-s3c2410/nor-simtec.c
+++ b/arch/arm/mach-s3c2410/nor-simtec.c
@@ -30,6 +30,7 @@
30#include <mach/bast-map.h> 30#include <mach/bast-map.h>
31#include <mach/bast-cpld.h> 31#include <mach/bast-cpld.h>
32 32
33#include "nor-simtec.h"
33 34
34static void simtec_nor_vpp(struct map_info *map, int vpp) 35static void simtec_nor_vpp(struct map_info *map, int vpp)
35{ 36{
@@ -50,7 +51,7 @@ static void simtec_nor_vpp(struct map_info *map, int vpp)
50 local_irq_restore(flags); 51 local_irq_restore(flags);
51} 52}
52 53
53struct physmap_flash_data simtec_nor_pdata = { 54static struct physmap_flash_data simtec_nor_pdata = {
54 .width = 2, 55 .width = 2,
55 .set_vpp = simtec_nor_vpp, 56 .set_vpp = simtec_nor_vpp,
56 .nr_parts = 0, 57 .nr_parts = 0,
diff --git a/arch/arm/mach-s3c2412/mach-jive.c b/arch/arm/mach-s3c2412/mach-jive.c
index 4c061d29463..ad980a1690c 100644
--- a/arch/arm/mach-s3c2412/mach-jive.c
+++ b/arch/arm/mach-s3c2412/mach-jive.c
@@ -395,7 +395,7 @@ static void jive_lcd_spi_chipselect(struct s3c2410_spigpio_info *spi, int cs)
395} 395}
396 396
397static struct s3c2410_spigpio_info jive_lcd_spi = { 397static struct s3c2410_spigpio_info jive_lcd_spi = {
398 .bus_num = 0, 398 .bus_num = 1,
399 .pin_clk = S3C2410_GPG8, 399 .pin_clk = S3C2410_GPG8,
400 .pin_mosi = S3C2410_GPB8, 400 .pin_mosi = S3C2410_GPB8,
401 .chip_select = jive_lcd_spi_chipselect, 401 .chip_select = jive_lcd_spi_chipselect,
diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c
index 1362994c78a..b422526f6d8 100644
--- a/arch/arm/mach-sa1100/generic.c
+++ b/arch/arm/mach-sa1100/generic.c
@@ -18,9 +18,9 @@
18#include <linux/ioport.h> 18#include <linux/ioport.h>
19#include <linux/sched.h> /* just for sched_clock() - funny that */ 19#include <linux/sched.h> /* just for sched_clock() - funny that */
20#include <linux/platform_device.h> 20#include <linux/platform_device.h>
21#include <linux/cnt32_to_63.h>
21 22
22#include <asm/div64.h> 23#include <asm/div64.h>
23#include <asm/cnt32_to_63.h>
24#include <mach/hardware.h> 24#include <mach/hardware.h>
25#include <asm/system.h> 25#include <asm/system.h>
26#include <asm/pgtable.h> 26#include <asm/pgtable.h>
diff --git a/arch/arm/mach-sa1100/include/mach/jornada720.h b/arch/arm/mach-sa1100/include/mach/jornada720.h
index bc120850d31..cc6b4bfcecf 100644
--- a/arch/arm/mach-sa1100/include/mach/jornada720.h
+++ b/arch/arm/mach-sa1100/include/mach/jornada720.h
@@ -1,10 +1,10 @@
1/* 1/*
2 * arch/arm/mach-sa1100/include/mach/jornada720.h 2 * arch/arm/mach-sa1100/include/mach/jornada720.h
3 * 3 *
4 * This file contains SSP/MCU communication definitions for HP Jornada 710/720/728 4 * SSP/MCU communication definitions for HP Jornada 710/720/728
5 * 5 *
6 * Copyright (C) 2007 Kristoffer Ericson <Kristoffer.Ericson@gmail.com> 6 * Copyright 2007,2008 Kristoffer Ericson <Kristoffer.Ericson@gmail.com>
7 * Copyright (C) 2000 John Ankcorn <jca@lcs.mit.edu> 7 * Copyright 2000 John Ankcorn <jca@lcs.mit.edu>
8 * 8 *
9 * This program is free software; you can redistribute it and/or modify 9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as 10 * it under the terms of the GNU General Public License version 2 as
@@ -25,3 +25,8 @@
25#define PWMOFF 0xDF 25#define PWMOFF 0xDF
26#define TXDUMMY 0x11 26#define TXDUMMY 0x11
27#define ERRORCODE 0x00 27#define ERRORCODE 0x00
28
29extern void jornada_ssp_start(void);
30extern void jornada_ssp_end(void);
31extern int jornada_ssp_inout(u8 byte);
32extern int jornada_ssp_byte(u8 byte);
diff --git a/arch/arm/mach-sa1100/jornada720_ssp.c b/arch/arm/mach-sa1100/jornada720_ssp.c
index 06ea7abd917..28cf3696797 100644
--- a/arch/arm/mach-sa1100/jornada720_ssp.c
+++ b/arch/arm/mach-sa1100/jornada720_ssp.c
@@ -21,8 +21,8 @@
21#include <linux/slab.h> 21#include <linux/slab.h>
22 22
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include <asm/hardware/ssp.h>
25#include <mach/jornada720.h> 24#include <mach/jornada720.h>
25#include <asm/hardware/ssp.h>
26 26
27static DEFINE_SPINLOCK(jornada_ssp_lock); 27static DEFINE_SPINLOCK(jornada_ssp_lock);
28static unsigned long jornada_ssp_flags; 28static unsigned long jornada_ssp_flags;
@@ -109,12 +109,12 @@ EXPORT_SYMBOL(jornada_ssp_inout);
109 * jornada_ssp_start - enable mcu 109 * jornada_ssp_start - enable mcu
110 * 110 *
111 */ 111 */
112int jornada_ssp_start() 112void jornada_ssp_start(void)
113{ 113{
114 spin_lock_irqsave(&jornada_ssp_lock, jornada_ssp_flags); 114 spin_lock_irqsave(&jornada_ssp_lock, jornada_ssp_flags);
115 GPCR = GPIO_GPIO25; 115 GPCR = GPIO_GPIO25;
116 udelay(50); 116 udelay(50);
117 return 0; 117 return;
118}; 118};
119EXPORT_SYMBOL(jornada_ssp_start); 119EXPORT_SYMBOL(jornada_ssp_start);
120 120
@@ -122,11 +122,11 @@ EXPORT_SYMBOL(jornada_ssp_start);
122 * jornada_ssp_end - disable mcu and turn off lock 122 * jornada_ssp_end - disable mcu and turn off lock
123 * 123 *
124 */ 124 */
125int jornada_ssp_end() 125void jornada_ssp_end(void)
126{ 126{
127 GPSR = GPIO_GPIO25; 127 GPSR = GPIO_GPIO25;
128 spin_unlock_irqrestore(&jornada_ssp_lock, jornada_ssp_flags); 128 spin_unlock_irqrestore(&jornada_ssp_lock, jornada_ssp_flags);
129 return 0; 129 return;
130}; 130};
131EXPORT_SYMBOL(jornada_ssp_end); 131EXPORT_SYMBOL(jornada_ssp_end);
132 132
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index d75e795c893..b638f10411e 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -28,8 +28,8 @@
28#include <linux/amba/clcd.h> 28#include <linux/amba/clcd.h>
29#include <linux/clocksource.h> 29#include <linux/clocksource.h>
30#include <linux/clockchips.h> 30#include <linux/clockchips.h>
31#include <linux/cnt32_to_63.h>
31 32
32#include <asm/cnt32_to_63.h>
33#include <asm/system.h> 33#include <asm/system.h>
34#include <mach/hardware.h> 34#include <mach/hardware.h>
35#include <asm/io.h> 35#include <asm/io.h>
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 25d9a11eb61..a713e40e1f1 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -211,6 +211,12 @@ static struct mem_type mem_types[] = {
211 PMD_SECT_TEX(1), 211 PMD_SECT_TEX(1),
212 .domain = DOMAIN_IO, 212 .domain = DOMAIN_IO,
213 }, 213 },
214 [MT_DEVICE_WC] = { /* ioremap_wc */
215 .prot_pte = PROT_PTE_DEVICE,
216 .prot_l1 = PMD_TYPE_TABLE,
217 .prot_sect = PROT_SECT_DEVICE,
218 .domain = DOMAIN_IO,
219 },
214 [MT_CACHECLEAN] = { 220 [MT_CACHECLEAN] = {
215 .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN, 221 .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
216 .domain = DOMAIN_KERNEL, 222 .domain = DOMAIN_KERNEL,
@@ -273,6 +279,20 @@ static void __init build_mem_type_table(void)
273 } 279 }
274 280
275 /* 281 /*
282 * On non-Xscale3 ARMv5-and-older systems, use CB=01
283 * (Uncached/Buffered) for ioremap_wc() mappings. On XScale3
284 * and ARMv6+, use TEXCB=00100 mappings (Inner/Outer Uncacheable
285 * in xsc3 parlance, Uncached Normal in ARMv6 parlance).
286 */
287 if (cpu_is_xsc3() || cpu_arch >= CPU_ARCH_ARMv6) {
288 mem_types[MT_DEVICE_WC].prot_pte_ext |= PTE_EXT_TEX(1);
289 mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_TEX(1);
290 } else {
291 mem_types[MT_DEVICE_WC].prot_pte |= L_PTE_BUFFERABLE;
292 mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_BUFFERABLE;
293 }
294
295 /*
276 * ARMv5 and lower, bit 4 must be set for page tables. 296 * ARMv5 and lower, bit 4 must be set for page tables.
277 * (was: cache "update-able on write" bit on ARM610) 297 * (was: cache "update-able on write" bit on ARM610)
278 * However, Xscale cores require this bit to be cleared. 298 * However, Xscale cores require this bit to be cleared.
diff --git a/arch/arm/plat-mxc/clock.c b/arch/arm/plat-mxc/clock.c
index 2f862721883..0a38f0b396e 100644
--- a/arch/arm/plat-mxc/clock.c
+++ b/arch/arm/plat-mxc/clock.c
@@ -37,7 +37,6 @@
37#include <linux/proc_fs.h> 37#include <linux/proc_fs.h>
38#include <linux/semaphore.h> 38#include <linux/semaphore.h>
39#include <linux/string.h> 39#include <linux/string.h>
40#include <linux/version.h>
41 40
42#include <mach/clock.h> 41#include <mach/clock.h>
43 42
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
index 23a07059999..197974defbe 100644
--- a/arch/arm/plat-omap/clock.c
+++ b/arch/arm/plat-omap/clock.c
@@ -10,7 +10,6 @@
10 * it under the terms of the GNU General Public License version 2 as 10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation. 11 * published by the Free Software Foundation.
12 */ 12 */
13#include <linux/version.h>
14#include <linux/kernel.h> 13#include <linux/kernel.h>
15#include <linux/init.h> 14#include <linux/init.h>
16#include <linux/module.h> 15#include <linux/module.h>
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
index 187e3d8bfdf..01da719a745 100644
--- a/arch/arm/plat-omap/devices.c
+++ b/arch/arm/plat-omap/devices.c
@@ -21,6 +21,7 @@
21 21
22#include <mach/tc.h> 22#include <mach/tc.h>
23#include <mach/board.h> 23#include <mach/board.h>
24#include <mach/mmc.h>
24#include <mach/mux.h> 25#include <mach/mux.h>
25#include <mach/gpio.h> 26#include <mach/gpio.h>
26#include <mach/menelaus.h> 27#include <mach/menelaus.h>
@@ -194,25 +195,38 @@ void omap_mcbsp_register_board_cfg(struct omap_mcbsp_platform_data *config,
194 195
195/*-------------------------------------------------------------------------*/ 196/*-------------------------------------------------------------------------*/
196 197
197#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) 198#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) || \
199 defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
198 200
199#ifdef CONFIG_ARCH_OMAP24XX 201#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX)
200#define OMAP_MMC1_BASE 0x4809c000 202#define OMAP_MMC1_BASE 0x4809c000
201#define OMAP_MMC1_INT INT_24XX_MMC_IRQ 203#define OMAP_MMC1_END (OMAP_MMC1_BASE + 0x1fc)
204#define OMAP_MMC1_INT INT_24XX_MMC_IRQ
205
206#define OMAP_MMC2_BASE 0x480b4000
207#define OMAP_MMC2_END (OMAP_MMC2_BASE + 0x1fc)
208#define OMAP_MMC2_INT INT_24XX_MMC2_IRQ
209
202#else 210#else
211
203#define OMAP_MMC1_BASE 0xfffb7800 212#define OMAP_MMC1_BASE 0xfffb7800
213#define OMAP_MMC1_END (OMAP_MMC1_BASE + 0x7f)
204#define OMAP_MMC1_INT INT_MMC 214#define OMAP_MMC1_INT INT_MMC
205#endif 215
206#define OMAP_MMC2_BASE 0xfffb7c00 /* omap16xx only */ 216#define OMAP_MMC2_BASE 0xfffb7c00 /* omap16xx only */
217#define OMAP_MMC2_END (OMAP_MMC2_BASE + 0x7f)
218#define OMAP_MMC2_INT INT_1610_MMC2
219
220#endif
207 221
208static struct omap_mmc_conf mmc1_conf; 222static struct omap_mmc_platform_data mmc1_data;
209 223
210static u64 mmc1_dmamask = 0xffffffff; 224static u64 mmc1_dmamask = 0xffffffff;
211 225
212static struct resource mmc1_resources[] = { 226static struct resource mmc1_resources[] = {
213 { 227 {
214 .start = OMAP_MMC1_BASE, 228 .start = OMAP_MMC1_BASE,
215 .end = OMAP_MMC1_BASE + 0x7f, 229 .end = OMAP_MMC1_END,
216 .flags = IORESOURCE_MEM, 230 .flags = IORESOURCE_MEM,
217 }, 231 },
218 { 232 {
@@ -226,26 +240,27 @@ static struct platform_device mmc_omap_device1 = {
226 .id = 1, 240 .id = 1,
227 .dev = { 241 .dev = {
228 .dma_mask = &mmc1_dmamask, 242 .dma_mask = &mmc1_dmamask,
229 .platform_data = &mmc1_conf, 243 .platform_data = &mmc1_data,
230 }, 244 },
231 .num_resources = ARRAY_SIZE(mmc1_resources), 245 .num_resources = ARRAY_SIZE(mmc1_resources),
232 .resource = mmc1_resources, 246 .resource = mmc1_resources,
233}; 247};
234 248
235#ifdef CONFIG_ARCH_OMAP16XX 249#if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP2430) || \
250 defined(CONFIG_ARCH_OMAP34XX)
236 251
237static struct omap_mmc_conf mmc2_conf; 252static struct omap_mmc_platform_data mmc2_data;
238 253
239static u64 mmc2_dmamask = 0xffffffff; 254static u64 mmc2_dmamask = 0xffffffff;
240 255
241static struct resource mmc2_resources[] = { 256static struct resource mmc2_resources[] = {
242 { 257 {
243 .start = OMAP_MMC2_BASE, 258 .start = OMAP_MMC2_BASE,
244 .end = OMAP_MMC2_BASE + 0x7f, 259 .end = OMAP_MMC2_END,
245 .flags = IORESOURCE_MEM, 260 .flags = IORESOURCE_MEM,
246 }, 261 },
247 { 262 {
248 .start = INT_1610_MMC2, 263 .start = OMAP_MMC2_INT,
249 .flags = IORESOURCE_IRQ, 264 .flags = IORESOURCE_IRQ,
250 }, 265 },
251}; 266};
@@ -255,26 +270,19 @@ static struct platform_device mmc_omap_device2 = {
255 .id = 2, 270 .id = 2,
256 .dev = { 271 .dev = {
257 .dma_mask = &mmc2_dmamask, 272 .dma_mask = &mmc2_dmamask,
258 .platform_data = &mmc2_conf, 273 .platform_data = &mmc2_data,
259 }, 274 },
260 .num_resources = ARRAY_SIZE(mmc2_resources), 275 .num_resources = ARRAY_SIZE(mmc2_resources),
261 .resource = mmc2_resources, 276 .resource = mmc2_resources,
262}; 277};
263#endif 278#endif
264 279
265static void __init omap_init_mmc(void) 280static inline void omap_init_mmc_conf(const struct omap_mmc_config *mmc_conf)
266{ 281{
267 const struct omap_mmc_config *mmc_conf; 282 if (cpu_is_omap2430() || cpu_is_omap34xx())
268 const struct omap_mmc_conf *mmc;
269
270 /* NOTE: assumes MMC was never (wrongly) enabled */
271 mmc_conf = omap_get_config(OMAP_TAG_MMC, struct omap_mmc_config);
272 if (!mmc_conf)
273 return; 283 return;
274 284
275 /* block 1 is always available and has just one pinout option */ 285 if (mmc_conf->mmc[0].enabled) {
276 mmc = &mmc_conf->mmc[0];
277 if (mmc->enabled) {
278 if (cpu_is_omap24xx()) { 286 if (cpu_is_omap24xx()) {
279 omap_cfg_reg(H18_24XX_MMC_CMD); 287 omap_cfg_reg(H18_24XX_MMC_CMD);
280 omap_cfg_reg(H15_24XX_MMC_CLKI); 288 omap_cfg_reg(H15_24XX_MMC_CLKI);
@@ -292,7 +300,7 @@ static void __init omap_init_mmc(void)
292 omap_cfg_reg(P20_1710_MMC_DATDIR0); 300 omap_cfg_reg(P20_1710_MMC_DATDIR0);
293 } 301 }
294 } 302 }
295 if (mmc->wire4) { 303 if (mmc_conf->mmc[0].wire4) {
296 if (cpu_is_omap24xx()) { 304 if (cpu_is_omap24xx()) {
297 omap_cfg_reg(H14_24XX_MMC_DAT1); 305 omap_cfg_reg(H14_24XX_MMC_DAT1);
298 omap_cfg_reg(E19_24XX_MMC_DAT2); 306 omap_cfg_reg(E19_24XX_MMC_DAT2);
@@ -303,25 +311,22 @@ static void __init omap_init_mmc(void)
303 } else { 311 } else {
304 omap_cfg_reg(MMC_DAT1); 312 omap_cfg_reg(MMC_DAT1);
305 /* NOTE: DAT2 can be on W10 (here) or M15 */ 313 /* NOTE: DAT2 can be on W10 (here) or M15 */
306 if (!mmc->nomux) 314 if (!mmc_conf->mmc[0].nomux)
307 omap_cfg_reg(MMC_DAT2); 315 omap_cfg_reg(MMC_DAT2);
308 omap_cfg_reg(MMC_DAT3); 316 omap_cfg_reg(MMC_DAT3);
309 } 317 }
310 } 318 }
311 mmc1_conf = *mmc;
312 (void) platform_device_register(&mmc_omap_device1);
313 } 319 }
314 320
315#ifdef CONFIG_ARCH_OMAP16XX 321#ifdef CONFIG_ARCH_OMAP16XX
316 /* block 2 is on newer chips, and has many pinout options */ 322 /* block 2 is on newer chips, and has many pinout options */
317 mmc = &mmc_conf->mmc[1]; 323 if (mmc_conf->mmc[1].enabled) {
318 if (mmc->enabled) { 324 if (!mmc_conf->mmc[1].nomux) {
319 if (!mmc->nomux) {
320 omap_cfg_reg(Y8_1610_MMC2_CMD); 325 omap_cfg_reg(Y8_1610_MMC2_CMD);
321 omap_cfg_reg(Y10_1610_MMC2_CLK); 326 omap_cfg_reg(Y10_1610_MMC2_CLK);
322 omap_cfg_reg(R18_1610_MMC2_CLKIN); 327 omap_cfg_reg(R18_1610_MMC2_CLKIN);
323 omap_cfg_reg(W8_1610_MMC2_DAT0); 328 omap_cfg_reg(W8_1610_MMC2_DAT0);
324 if (mmc->wire4) { 329 if (mmc_conf->mmc[1].wire4) {
325 omap_cfg_reg(V8_1610_MMC2_DAT1); 330 omap_cfg_reg(V8_1610_MMC2_DAT1);
326 omap_cfg_reg(W15_1610_MMC2_DAT2); 331 omap_cfg_reg(W15_1610_MMC2_DAT2);
327 omap_cfg_reg(R10_1610_MMC2_DAT3); 332 omap_cfg_reg(R10_1610_MMC2_DAT3);
@@ -337,14 +342,55 @@ static void __init omap_init_mmc(void)
337 if (cpu_is_omap1710()) 342 if (cpu_is_omap1710())
338 omap_writel(omap_readl(MOD_CONF_CTRL_1) | (1 << 24), 343 omap_writel(omap_readl(MOD_CONF_CTRL_1) | (1 << 24),
339 MOD_CONF_CTRL_1); 344 MOD_CONF_CTRL_1);
340 mmc2_conf = *mmc; 345 }
346#endif
347}
348
349static void __init omap_init_mmc(void)
350{
351 const struct omap_mmc_config *mmc_conf;
352
353 /* NOTE: assumes MMC was never (wrongly) enabled */
354 mmc_conf = omap_get_config(OMAP_TAG_MMC, struct omap_mmc_config);
355 if (!mmc_conf)
356 return;
357
358 omap_init_mmc_conf(mmc_conf);
359
360 if (mmc_conf->mmc[0].enabled) {
361 mmc1_data.conf = mmc_conf->mmc[0];
362 (void) platform_device_register(&mmc_omap_device1);
363 }
364
365#if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP2430) || \
366 defined(CONFIG_ARCH_OMAP34XX)
367 if (mmc_conf->mmc[1].enabled) {
368 mmc2_data.conf = mmc_conf->mmc[1];
341 (void) platform_device_register(&mmc_omap_device2); 369 (void) platform_device_register(&mmc_omap_device2);
342 } 370 }
343#endif 371#endif
344 return;
345} 372}
373
374void omap_set_mmc_info(int host, const struct omap_mmc_platform_data *info)
375{
376 switch (host) {
377 case 1:
378 mmc1_data = *info;
379 break;
380#if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP2430) || \
381 defined(CONFIG_ARCH_OMAP34XX)
382 case 2:
383 mmc2_data = *info;
384 break;
385#endif
386 default:
387 BUG();
388 }
389}
390
346#else 391#else
347static inline void omap_init_mmc(void) {} 392static inline void omap_init_mmc(void) {}
393void omap_set_mmc_info(int host, const struct omap_mmc_platform_data *info) {}
348#endif 394#endif
349 395
350/*-------------------------------------------------------------------------*/ 396/*-------------------------------------------------------------------------*/
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 3e76ee2bc73..9e1341ebc14 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -1488,7 +1488,7 @@ static int __init _omap_gpio_init(void)
1488 bank->chip.set = gpio_set; 1488 bank->chip.set = gpio_set;
1489 if (bank_is_mpuio(bank)) { 1489 if (bank_is_mpuio(bank)) {
1490 bank->chip.label = "mpuio"; 1490 bank->chip.label = "mpuio";
1491#ifdef CONFIG_ARCH_OMAP1 1491#ifdef CONFIG_ARCH_OMAP16XX
1492 bank->chip.dev = &omap_mpuio_device.dev; 1492 bank->chip.dev = &omap_mpuio_device.dev;
1493#endif 1493#endif
1494 bank->chip.base = OMAP_MPUIO(0); 1494 bank->chip.base = OMAP_MPUIO(0);
diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h b/arch/arm/plat-omap/include/mach/mcbsp.h
index 6eb44a92871..8fdb95e26fc 100644
--- a/arch/arm/plat-omap/include/mach/mcbsp.h
+++ b/arch/arm/plat-omap/include/mach/mcbsp.h
@@ -315,6 +315,7 @@ struct omap_mcbsp_ops {
315}; 315};
316 316
317struct omap_mcbsp_platform_data { 317struct omap_mcbsp_platform_data {
318 unsigned long phys_base;
318 u32 virt_base; 319 u32 virt_base;
319 u8 dma_rx_sync, dma_tx_sync; 320 u8 dma_rx_sync, dma_tx_sync;
320 u16 rx_irq, tx_irq; 321 u16 rx_irq, tx_irq;
@@ -324,6 +325,7 @@ struct omap_mcbsp_platform_data {
324 325
325struct omap_mcbsp { 326struct omap_mcbsp {
326 struct device *dev; 327 struct device *dev;
328 unsigned long phys_base;
327 u32 io_base; 329 u32 io_base;
328 u8 id; 330 u8 id;
329 u8 free; 331 u8 free;
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index d0844050f2d..014d26574bb 100644
--- a/arch/arm/plat-omap/mcbsp.c
+++ b/arch/arm/plat-omap/mcbsp.c
@@ -651,7 +651,7 @@ int omap_mcbsp_xmit_buffer(unsigned int id, dma_addr_t buffer,
651 omap_set_dma_dest_params(mcbsp[id].dma_tx_lch, 651 omap_set_dma_dest_params(mcbsp[id].dma_tx_lch,
652 src_port, 652 src_port,
653 OMAP_DMA_AMODE_CONSTANT, 653 OMAP_DMA_AMODE_CONSTANT,
654 mcbsp[id].io_base + OMAP_MCBSP_REG_DXR1, 654 mcbsp[id].phys_base + OMAP_MCBSP_REG_DXR1,
655 0, 0); 655 0, 0);
656 656
657 omap_set_dma_src_params(mcbsp[id].dma_tx_lch, 657 omap_set_dma_src_params(mcbsp[id].dma_tx_lch,
@@ -712,7 +712,7 @@ int omap_mcbsp_recv_buffer(unsigned int id, dma_addr_t buffer,
712 omap_set_dma_src_params(mcbsp[id].dma_rx_lch, 712 omap_set_dma_src_params(mcbsp[id].dma_rx_lch,
713 src_port, 713 src_port,
714 OMAP_DMA_AMODE_CONSTANT, 714 OMAP_DMA_AMODE_CONSTANT,
715 mcbsp[id].io_base + OMAP_MCBSP_REG_DRR1, 715 mcbsp[id].phys_base + OMAP_MCBSP_REG_DRR1,
716 0, 0); 716 0, 0);
717 717
718 omap_set_dma_dest_params(mcbsp[id].dma_rx_lch, 718 omap_set_dma_dest_params(mcbsp[id].dma_rx_lch,
@@ -830,6 +830,7 @@ static int __init omap_mcbsp_probe(struct platform_device *pdev)
830 mcbsp[id].dma_tx_lch = -1; 830 mcbsp[id].dma_tx_lch = -1;
831 mcbsp[id].dma_rx_lch = -1; 831 mcbsp[id].dma_rx_lch = -1;
832 832
833 mcbsp[id].phys_base = pdata->phys_base;
833 mcbsp[id].io_base = pdata->virt_base; 834 mcbsp[id].io_base = pdata->virt_base;
834 /* Default I/O is IRQ based */ 835 /* Default I/O is IRQ based */
835 mcbsp[id].io_type = OMAP_MCBSP_IRQ_IO; 836 mcbsp[id].io_type = OMAP_MCBSP_IRQ_IO;
diff --git a/arch/arm/plat-s3c24xx/gpiolib.c b/arch/arm/plat-s3c24xx/gpiolib.c
index 849f8469714..3caec6bad3e 100644
--- a/arch/arm/plat-s3c24xx/gpiolib.c
+++ b/arch/arm/plat-s3c24xx/gpiolib.c
@@ -39,7 +39,7 @@ static inline struct s3c24xx_gpio_chip *to_s3c_chip(struct gpio_chip *gpc)
39 * drivers themsevles. 39 * drivers themsevles.
40 */ 40 */
41 41
42int s3c24xx_gpiolib_input(struct gpio_chip *chip, unsigned offset) 42static int s3c24xx_gpiolib_input(struct gpio_chip *chip, unsigned offset)
43{ 43{
44 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip); 44 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip);
45 void __iomem *base = ourchip->base; 45 void __iomem *base = ourchip->base;
@@ -58,7 +58,7 @@ int s3c24xx_gpiolib_input(struct gpio_chip *chip, unsigned offset)
58 return 0; 58 return 0;
59} 59}
60 60
61int s3c24xx_gpiolib_output(struct gpio_chip *chip, 61static int s3c24xx_gpiolib_output(struct gpio_chip *chip,
62 unsigned offset, int value) 62 unsigned offset, int value)
63{ 63{
64 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip); 64 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip);
@@ -86,7 +86,8 @@ int s3c24xx_gpiolib_output(struct gpio_chip *chip,
86 return 0; 86 return 0;
87} 87}
88 88
89void s3c24xx_gpiolib_set(struct gpio_chip *chip, unsigned offset, int value) 89static void s3c24xx_gpiolib_set(struct gpio_chip *chip,
90 unsigned offset, int value)
90{ 91{
91 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip); 92 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip);
92 void __iomem *base = ourchip->base; 93 void __iomem *base = ourchip->base;
@@ -104,7 +105,7 @@ void s3c24xx_gpiolib_set(struct gpio_chip *chip, unsigned offset, int value)
104 local_irq_restore(flags); 105 local_irq_restore(flags);
105} 106}
106 107
107int s3c24xx_gpiolib_get(struct gpio_chip *chip, unsigned offset) 108static int s3c24xx_gpiolib_get(struct gpio_chip *chip, unsigned offset)
108{ 109{
109 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip); 110 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip);
110 unsigned long val; 111 unsigned long val;
@@ -150,8 +151,7 @@ static int s3c24xx_gpiolib_banka_output(struct gpio_chip *chip,
150 return 0; 151 return 0;
151} 152}
152 153
153 154static struct s3c24xx_gpio_chip gpios[] = {
154struct s3c24xx_gpio_chip gpios[] = {
155 [0] = { 155 [0] = {
156 .base = S3C24XX_GPIO_BASE(S3C2410_GPA0), 156 .base = S3C24XX_GPIO_BASE(S3C2410_GPA0),
157 .chip = { 157 .chip = {
diff --git a/arch/arm/plat-s3c24xx/pwm-clock.c b/arch/arm/plat-s3c24xx/pwm-clock.c
index ccfdc9d7ae4..306cc9c6f9e 100644
--- a/arch/arm/plat-s3c24xx/pwm-clock.c
+++ b/arch/arm/plat-s3c24xx/pwm-clock.c
@@ -89,7 +89,7 @@ static unsigned long clk_pwm_scaler_getrate(struct clk *clk)
89 89
90/* TODO - add set rate calls. */ 90/* TODO - add set rate calls. */
91 91
92struct clk clk_timer_scaler[] = { 92static struct clk clk_timer_scaler[] = {
93 [0] = { 93 [0] = {
94 .name = "pwm-scaler0", 94 .name = "pwm-scaler0",
95 .id = -1, 95 .id = -1,
@@ -102,7 +102,7 @@ struct clk clk_timer_scaler[] = {
102 }, 102 },
103}; 103};
104 104
105struct clk clk_timer_tclk[] = { 105static struct clk clk_timer_tclk[] = {
106 [0] = { 106 [0] = {
107 .name = "pwm-tclk0", 107 .name = "pwm-tclk0",
108 .id = -1, 108 .id = -1,
@@ -232,7 +232,7 @@ static int clk_pwm_tdiv_set_rate(struct clk *clk, unsigned long rate)
232 return 0; 232 return 0;
233} 233}
234 234
235struct pwm_tdiv_clk clk_timer_tdiv[] = { 235static struct pwm_tdiv_clk clk_timer_tdiv[] = {
236 [0] = { 236 [0] = {
237 .clk = { 237 .clk = {
238 .name = "pwm-tdiv", 238 .name = "pwm-tdiv",
diff --git a/arch/arm/plat-s3c24xx/pwm.c b/arch/arm/plat-s3c24xx/pwm.c
index 18c4bdc49a0..7a92c938542 100644
--- a/arch/arm/plat-s3c24xx/pwm.c
+++ b/arch/arm/plat-s3c24xx/pwm.c
@@ -19,6 +19,7 @@
19#include <linux/io.h> 19#include <linux/io.h>
20#include <linux/pwm.h> 20#include <linux/pwm.h>
21 21
22#include <asm/plat-s3c24xx/devs.h>
22#include <asm/plat-s3c/regs-timer.h> 23#include <asm/plat-s3c/regs-timer.h>
23 24
24struct pwm_device { 25struct pwm_device {
@@ -38,7 +39,7 @@ struct pwm_device {
38 unsigned char pwm_id; 39 unsigned char pwm_id;
39}; 40};
40 41
41#define pwm_dbg(_pwm, msg...) dev_info(&(_pwm)->pdev->dev, msg) 42#define pwm_dbg(_pwm, msg...) dev_dbg(&(_pwm)->pdev->dev, msg)
42 43
43static struct clk *clk_scaler[2]; 44static struct clk *clk_scaler[2];
44 45
@@ -168,7 +169,7 @@ void pwm_disable(struct pwm_device *pwm)
168 169
169EXPORT_SYMBOL(pwm_disable); 170EXPORT_SYMBOL(pwm_disable);
170 171
171unsigned long pwm_calc_tin(struct pwm_device *pwm, unsigned long freq) 172static unsigned long pwm_calc_tin(struct pwm_device *pwm, unsigned long freq)
172{ 173{
173 unsigned long tin_parent_rate; 174 unsigned long tin_parent_rate;
174 unsigned int div; 175 unsigned int div;
diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c
index ee4c292683e..dfc3443e23a 100644
--- a/arch/avr32/boards/atstk1000/atstk1002.c
+++ b/arch/avr32/boards/atstk1000/atstk1002.c
@@ -325,7 +325,7 @@ static int __init atstk1002_init(void)
325#ifdef CONFIG_BOARD_ATSTK100X_SPI1 325#ifdef CONFIG_BOARD_ATSTK100X_SPI1
326 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info)); 326 at32_add_device_spi(1, spi1_board_info, ARRAY_SIZE(spi1_board_info));
327#endif 327#endif
328#ifndef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM 328#ifndef CONFIG_BOARD_ATSTK100X_SW2_CUSTOM
329 at32_add_device_mci(0, MCI_PDATA); 329 at32_add_device_mci(0, MCI_PDATA);
330#endif 330#endif
331#ifdef CONFIG_BOARD_ATSTK1002_SW5_CUSTOM 331#ifdef CONFIG_BOARD_ATSTK1002_SW5_CUSTOM
diff --git a/arch/avr32/boot/images/.gitignore b/arch/avr32/boot/images/.gitignore
new file mode 100644
index 00000000000..64ea9d0141d
--- /dev/null
+++ b/arch/avr32/boot/images/.gitignore
@@ -0,0 +1,4 @@
1uImage
2uImage.srec
3vmlinux.cso
4sfdwarf.log
diff --git a/arch/avr32/kernel/.gitignore b/arch/avr32/kernel/.gitignore
new file mode 100644
index 00000000000..c5f676c3c22
--- /dev/null
+++ b/arch/avr32/kernel/.gitignore
@@ -0,0 +1 @@
vmlinux.lds
diff --git a/arch/avr32/kernel/asm-offsets.c b/arch/avr32/kernel/asm-offsets.c
index e4796c67a83..d6a8193a1d2 100644
--- a/arch/avr32/kernel/asm-offsets.c
+++ b/arch/avr32/kernel/asm-offsets.c
@@ -4,6 +4,8 @@
4 * to extract and format the required data. 4 * to extract and format the required data.
5 */ 5 */
6 6
7#include <linux/mm.h>
8#include <linux/sched.h>
7#include <linux/thread_info.h> 9#include <linux/thread_info.h>
8#include <linux/kbuild.h> 10#include <linux/kbuild.h>
9 11
@@ -17,4 +19,8 @@ void foo(void)
17 OFFSET(TI_rar_saved, thread_info, rar_saved); 19 OFFSET(TI_rar_saved, thread_info, rar_saved);
18 OFFSET(TI_rsr_saved, thread_info, rsr_saved); 20 OFFSET(TI_rsr_saved, thread_info, rsr_saved);
19 OFFSET(TI_restart_block, thread_info, restart_block); 21 OFFSET(TI_restart_block, thread_info, restart_block);
22 BLANK();
23 OFFSET(TSK_active_mm, task_struct, active_mm);
24 BLANK();
25 OFFSET(MM_pgd, mm_struct, pgd);
20} 26}
diff --git a/arch/avr32/kernel/avr32_ksyms.c b/arch/avr32/kernel/avr32_ksyms.c
index 84a7d44edc6..11e310c567a 100644
--- a/arch/avr32/kernel/avr32_ksyms.c
+++ b/arch/avr32/kernel/avr32_ksyms.c
@@ -58,6 +58,7 @@ EXPORT_SYMBOL(find_first_zero_bit);
58EXPORT_SYMBOL(find_next_zero_bit); 58EXPORT_SYMBOL(find_next_zero_bit);
59EXPORT_SYMBOL(find_first_bit); 59EXPORT_SYMBOL(find_first_bit);
60EXPORT_SYMBOL(find_next_bit); 60EXPORT_SYMBOL(find_next_bit);
61EXPORT_SYMBOL(generic_find_next_le_bit);
61EXPORT_SYMBOL(generic_find_next_zero_le_bit); 62EXPORT_SYMBOL(generic_find_next_zero_le_bit);
62 63
63/* I/O primitives (lib/io-*.S) */ 64/* I/O primitives (lib/io-*.S) */
diff --git a/arch/avr32/kernel/entry-avr32b.S b/arch/avr32/kernel/entry-avr32b.S
index 2b398cae110..33d49377b8b 100644
--- a/arch/avr32/kernel/entry-avr32b.S
+++ b/arch/avr32/kernel/entry-avr32b.S
@@ -334,9 +334,64 @@ save_full_context_ex:
334 334
335 /* Low-level exception handlers */ 335 /* Low-level exception handlers */
336handle_critical: 336handle_critical:
337 /*
338 * AT32AP700x errata:
339 *
340 * After a Java stack overflow or underflow trap, any CPU
341 * memory access may cause erratic behavior. This will happen
342 * when the four least significant bits of the JOSP system
343 * register contains any value between 9 and 15 (inclusive).
344 *
345 * Possible workarounds:
346 * - Don't use the Java Extension Module
347 * - Ensure that the stack overflow and underflow trap
348 * handlers do not do any memory access or trigger any
349 * exceptions before the overflow/underflow condition is
350 * cleared (by incrementing or decrementing the JOSP)
351 * - Make sure that JOSP does not contain any problematic
352 * value before doing any exception or interrupt
353 * processing.
354 * - Set up a critical exception handler which writes a
355 * known-to-be-safe value, e.g. 4, to JOSP before doing
356 * any further processing.
357 *
358 * We'll use the last workaround for now since we cannot
359 * guarantee that user space processes don't use Java mode.
360 * Non-well-behaving userland will be terminated with extreme
361 * prejudice.
362 */
363#ifdef CONFIG_CPU_AT32AP700X
364 /*
365 * There's a chance we can't touch memory, so temporarily
366 * borrow PTBR to save the stack pointer while we fix things
367 * up...
368 */
369 mtsr SYSREG_PTBR, sp
370 mov sp, 4
371 mtsr SYSREG_JOSP, sp
372 mfsr sp, SYSREG_PTBR
373 sub pc, -2
374
375 /* Push most of pt_regs on stack. We'll do the rest later */
337 sub sp, 4 376 sub sp, 4
338 stmts --sp, r0-lr 377 pushm r0-r12
339 rcall save_full_context_ex 378
379 /* PTBR mirrors current_thread_info()->task->active_mm->pgd */
380 get_thread_info r0
381 ld.w r1, r0[TI_task]
382 ld.w r2, r1[TSK_active_mm]
383 ld.w r3, r2[MM_pgd]
384 mtsr SYSREG_PTBR, r3
385#else
386 sub sp, 4
387 pushm r0-r12
388#endif
389 sub r0, sp, -(14 * 4)
390 mov r1, lr
391 mfsr r2, SYSREG_RAR_EX
392 mfsr r3, SYSREG_RSR_EX
393 pushm r0-r3
394
340 mfsr r12, SYSREG_ECR 395 mfsr r12, SYSREG_ECR
341 mov r11, sp 396 mov r11, sp
342 rcall do_critical_exception 397 rcall do_critical_exception
diff --git a/arch/avr32/kernel/syscall-stubs.S b/arch/avr32/kernel/syscall-stubs.S
index 890286a1e62..673178e235f 100644
--- a/arch/avr32/kernel/syscall-stubs.S
+++ b/arch/avr32/kernel/syscall-stubs.S
@@ -109,3 +109,12 @@ __sys_epoll_pwait:
109 rcall sys_epoll_pwait 109 rcall sys_epoll_pwait
110 sub sp, -4 110 sub sp, -4
111 popm pc 111 popm pc
112
113 .global __sys_sync_file_range
114 .type __sys_sync_file_range,@function
115__sys_sync_file_range:
116 pushm lr
117 st.w --sp, ARG6
118 rcall sys_sync_file_range
119 sub sp, -4
120 popm pc
diff --git a/arch/avr32/kernel/syscall_table.S b/arch/avr32/kernel/syscall_table.S
index 478bda4c4a0..7ee0057613b 100644
--- a/arch/avr32/kernel/syscall_table.S
+++ b/arch/avr32/kernel/syscall_table.S
@@ -275,7 +275,7 @@ sys_call_table:
275 .long sys_set_robust_list 275 .long sys_set_robust_list
276 .long sys_get_robust_list /* 260 */ 276 .long sys_get_robust_list /* 260 */
277 .long __sys_splice 277 .long __sys_splice
278 .long sys_sync_file_range 278 .long __sys_sync_file_range
279 .long sys_tee 279 .long sys_tee
280 .long sys_vmsplice 280 .long sys_vmsplice
281 .long __sys_epoll_pwait /* 265 */ 281 .long __sys_epoll_pwait /* 265 */
diff --git a/arch/avr32/kernel/traps.c b/arch/avr32/kernel/traps.c
index b835c4c0136..0d987373bc0 100644
--- a/arch/avr32/kernel/traps.c
+++ b/arch/avr32/kernel/traps.c
@@ -116,15 +116,15 @@ asmlinkage void do_nmi(unsigned long ecr, struct pt_regs *regs)
116 switch (ret) { 116 switch (ret) {
117 case NOTIFY_OK: 117 case NOTIFY_OK:
118 case NOTIFY_STOP: 118 case NOTIFY_STOP:
119 return; 119 break;
120 case NOTIFY_BAD: 120 case NOTIFY_BAD:
121 die("Fatal Non-Maskable Interrupt", regs, SIGINT); 121 die("Fatal Non-Maskable Interrupt", regs, SIGINT);
122 default: 122 default:
123 printk(KERN_ALERT "Got NMI, but nobody cared. Disabling...\n");
124 nmi_disable();
123 break; 125 break;
124 } 126 }
125 127 nmi_exit();
126 printk(KERN_ALERT "Got NMI, but nobody cared. Disabling...\n");
127 nmi_disable();
128} 128}
129 129
130asmlinkage void do_critical_exception(unsigned long ecr, struct pt_regs *regs) 130asmlinkage void do_critical_exception(unsigned long ecr, struct pt_regs *regs)
diff --git a/arch/avr32/lib/findbit.S b/arch/avr32/lib/findbit.S
index c6b91dee857..997b33b2288 100644
--- a/arch/avr32/lib/findbit.S
+++ b/arch/avr32/lib/findbit.S
@@ -123,6 +123,36 @@ ENTRY(find_next_bit)
123 brgt 1b 123 brgt 1b
124 retal r11 124 retal r11
125 125
126ENTRY(generic_find_next_le_bit)
127 lsr r8, r10, 5
128 sub r9, r11, r10
129 retle r11
130
131 lsl r8, 2
132 add r12, r8
133 andl r10, 31, COH
134 breq 1f
135
136 /* offset is not word-aligned. Handle the first (32 - r10) bits */
137 ldswp.w r8, r12[0]
138 sub r12, -4
139 lsr r8, r8, r10
140 brne .L_found
141
142 /* r9 = r9 - (32 - r10) = r9 + r10 - 32 */
143 add r9, r10
144 sub r9, 32
145 retle r11
146
147 /* Main loop. offset must be word-aligned */
1481: ldswp.w r8, r12[0]
149 cp.w r8, 0
150 brne .L_found
151 sub r12, -4
152 sub r9, 32
153 brgt 1b
154 retal r11
155
126ENTRY(generic_find_next_zero_le_bit) 156ENTRY(generic_find_next_zero_le_bit)
127 lsr r8, r10, 5 157 lsr r8, r10, 5
128 sub r9, r11, r10 158 sub r9, r11, r10
diff --git a/arch/avr32/mach-at32ap/pm-at32ap700x.S b/arch/avr32/mach-at32ap/pm-at32ap700x.S
index 5be4de65b20..17503b0ed6c 100644
--- a/arch/avr32/mach-at32ap/pm-at32ap700x.S
+++ b/arch/avr32/mach-at32ap/pm-at32ap700x.S
@@ -134,7 +134,7 @@ pm_standby:
134 mov r11, SDRAMC_LPR_LPCB_SELF_RFR 134 mov r11, SDRAMC_LPR_LPCB_SELF_RFR
135 bfins r10, r11, 0, 2 /* LPCB <- self Refresh */ 135 bfins r10, r11, 0, 2 /* LPCB <- self Refresh */
136 sync 0 /* flush write buffer */ 136 sync 0 /* flush write buffer */
137 st.w r12[SDRAMC_LPR], r11 /* put SDRAM in self-refresh mode */ 137 st.w r12[SDRAMC_LPR], r10 /* put SDRAM in self-refresh mode */
138 ld.w r11, r12[SDRAMC_LPR] 138 ld.w r11, r12[SDRAMC_LPR]
139 unmask_interrupts 139 unmask_interrupts
140 sleep CPU_SLEEP_FROZEN 140 sleep CPU_SLEEP_FROZEN
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index f64d25973a3..4154ff1101f 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -855,6 +855,7 @@ menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
855 855
856config PCI 856config PCI
857 bool "PCI support" 857 bool "PCI support"
858 depends on BROKEN
858 help 859 help
859 Support for PCI bus. 860 Support for PCI bus.
860 861
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile
index 9564731ad3a..eac0533d6e4 100644
--- a/arch/blackfin/Makefile
+++ b/arch/blackfin/Makefile
@@ -98,36 +98,20 @@ libs-y += arch/$(ARCH)/lib/
98 98
99drivers-$(CONFIG_OPROFILE) += arch/$(ARCH)/oprofile/ 99drivers-$(CONFIG_OPROFILE) += arch/$(ARCH)/oprofile/
100 100
101machdirs := $(patsubst %,arch/blackfin/mach-%/, $(machine-y))
101 102
103KBUILD_CFLAGS += -Iarch/$(ARCH)/include/
104KBUILD_CFLAGS += -Iarch/$(ARCH)/mach-$(MACHINE)/include
102 105
103# Update machine arch symlinks if something which affects 106KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs))
104# them changed. We use .mach to indicate when they were updated
105# last, otherwise make uses the target directory mtime.
106
107 show_mach_symlink = :
108 quiet_show_mach_symlink = echo ' SYMLINK include/asm-$(ARCH)/mach-$(MACHINE) -> include/asm-$(ARCH)/mach'
109silent_show_mach_symlink = :
110include/asm-blackfin/.mach: $(wildcard include/config/arch/*.h) include/config/auto.conf
111 @$($(quiet)show_mach_symlink)
112ifneq ($(KBUILD_SRC),)
113 $(Q)mkdir -p include/asm-$(ARCH)
114 $(Q)ln -fsn $(srctree)/include/asm-$(ARCH)/mach-$(MACHINE) include/asm-$(ARCH)/mach
115else
116 $(Q)ln -fsn mach-$(MACHINE) include/asm-$(ARCH)/mach
117endif
118 @touch $@
119 107
120CLEAN_FILES += \ 108CLEAN_FILES += \
121 include/asm-$(ARCH)/asm-offsets.h \ 109 arch/$(ARCH)/include/asm/asm-offsets.h \
122 arch/$(ARCH)/kernel/asm-offsets.s \ 110 arch/$(ARCH)/kernel/asm-offsets.s \
123 include/asm-$(ARCH)/mach \
124 include/asm-$(ARCH)/.mach
125 111
126archprepare: include/asm-blackfin/.mach
127archclean: 112archclean:
128 $(Q)$(MAKE) $(clean)=$(boot) 113 $(Q)$(MAKE) $(clean)=$(boot)
129 114
130
131INSTALL_PATH ?= /tftpboot 115INSTALL_PATH ?= /tftpboot
132boot := arch/$(ARCH)/boot 116boot := arch/$(ARCH)/boot
133BOOT_TARGETS = vmImage 117BOOT_TARGETS = vmImage
diff --git a/include/asm-blackfin/.gitignore b/arch/blackfin/include/asm/.gitignore
index 7858564a446..7858564a446 100644
--- a/include/asm-blackfin/.gitignore
+++ b/arch/blackfin/include/asm/.gitignore
diff --git a/include/asm-blackfin/Kbuild b/arch/blackfin/include/asm/Kbuild
index 606ecfdcc96..606ecfdcc96 100644
--- a/include/asm-blackfin/Kbuild
+++ b/arch/blackfin/include/asm/Kbuild
diff --git a/include/asm-blackfin/a.out.h b/arch/blackfin/include/asm/a.out.h
index 6c3d652ebd3..6c3d652ebd3 100644
--- a/include/asm-blackfin/a.out.h
+++ b/arch/blackfin/include/asm/a.out.h
diff --git a/include/asm-blackfin/atomic.h b/arch/blackfin/include/asm/atomic.h
index 7cf50871860..7cf50871860 100644
--- a/include/asm-blackfin/atomic.h
+++ b/arch/blackfin/include/asm/atomic.h
diff --git a/include/asm-blackfin/auxvec.h b/arch/blackfin/include/asm/auxvec.h
index 215506cd87b..215506cd87b 100644
--- a/include/asm-blackfin/auxvec.h
+++ b/arch/blackfin/include/asm/auxvec.h
diff --git a/include/asm-blackfin/bfin-global.h b/arch/blackfin/include/asm/bfin-global.h
index 7ba70de66f2..7ba70de66f2 100644
--- a/include/asm-blackfin/bfin-global.h
+++ b/arch/blackfin/include/asm/bfin-global.h
diff --git a/include/asm-blackfin/bfin5xx_spi.h b/arch/blackfin/include/asm/bfin5xx_spi.h
index 9fa19158e38..9fa19158e38 100644
--- a/include/asm-blackfin/bfin5xx_spi.h
+++ b/arch/blackfin/include/asm/bfin5xx_spi.h
diff --git a/include/asm-blackfin/bfin_simple_timer.h b/arch/blackfin/include/asm/bfin_simple_timer.h
index fccbb595464..fccbb595464 100644
--- a/include/asm-blackfin/bfin_simple_timer.h
+++ b/arch/blackfin/include/asm/bfin_simple_timer.h
diff --git a/include/asm-blackfin/bfin_sport.h b/arch/blackfin/include/asm/bfin_sport.h
index c76ed8def30..c76ed8def30 100644
--- a/include/asm-blackfin/bfin_sport.h
+++ b/arch/blackfin/include/asm/bfin_sport.h
diff --git a/include/asm-blackfin/bitops.h b/arch/blackfin/include/asm/bitops.h
index b39a175c79c..b39a175c79c 100644
--- a/include/asm-blackfin/bitops.h
+++ b/arch/blackfin/include/asm/bitops.h
diff --git a/include/asm-blackfin/blackfin.h b/arch/blackfin/include/asm/blackfin.h
index 984b74f0a2e..8749b0e321a 100644
--- a/include/asm-blackfin/blackfin.h
+++ b/arch/blackfin/include/asm/blackfin.h
@@ -11,7 +11,7 @@
11#define HI(con32) (((con32) >> 16) & 0xFFFF) 11#define HI(con32) (((con32) >> 16) & 0xFFFF)
12#define hi(con32) (((con32) >> 16) & 0xFFFF) 12#define hi(con32) (((con32) >> 16) & 0xFFFF)
13 13
14#include <asm/mach/anomaly.h> 14#include <mach/anomaly.h>
15 15
16#ifndef __ASSEMBLY__ 16#ifndef __ASSEMBLY__
17 17
@@ -86,7 +86,7 @@ static inline void CSYNC(void)
86 86
87#endif /* __ASSEMBLY__ */ 87#endif /* __ASSEMBLY__ */
88 88
89#include <asm/mach/blackfin.h> 89#include <mach/blackfin.h>
90#include <asm/bfin-global.h> 90#include <asm/bfin-global.h>
91 91
92#endif /* _BLACKFIN_H_ */ 92#endif /* _BLACKFIN_H_ */
diff --git a/include/asm-blackfin/bug.h b/arch/blackfin/include/asm/bug.h
index 6d3e11b1fc5..6d3e11b1fc5 100644
--- a/include/asm-blackfin/bug.h
+++ b/arch/blackfin/include/asm/bug.h
diff --git a/include/asm-blackfin/bugs.h b/arch/blackfin/include/asm/bugs.h
index 9093c9c1fb8..9093c9c1fb8 100644
--- a/include/asm-blackfin/bugs.h
+++ b/arch/blackfin/include/asm/bugs.h
diff --git a/include/asm-blackfin/byteorder.h b/arch/blackfin/include/asm/byteorder.h
index 6a673d42da1..6a673d42da1 100644
--- a/include/asm-blackfin/byteorder.h
+++ b/arch/blackfin/include/asm/byteorder.h
diff --git a/include/asm-blackfin/cache.h b/arch/blackfin/include/asm/cache.h
index 023d72133b5..023d72133b5 100644
--- a/include/asm-blackfin/cache.h
+++ b/arch/blackfin/include/asm/cache.h
diff --git a/include/asm-blackfin/cacheflush.h b/arch/blackfin/include/asm/cacheflush.h
index d81a77545a0..d81a77545a0 100644
--- a/include/asm-blackfin/cacheflush.h
+++ b/arch/blackfin/include/asm/cacheflush.h
diff --git a/include/asm-blackfin/mach-common/cdef_LPBlackfin.h b/arch/blackfin/include/asm/cdef_LPBlackfin.h
index d39c396f850..35f841bce57 100644
--- a/include/asm-blackfin/mach-common/cdef_LPBlackfin.h
+++ b/arch/blackfin/include/asm/cdef_LPBlackfin.h
@@ -33,7 +33,7 @@
33#warning cdef_LPBlackfin.h should only be included for 532 compatible chips. 33#warning cdef_LPBlackfin.h should only be included for 532 compatible chips.
34#endif 34#endif
35*/ 35*/
36#include <asm/mach-common/def_LPBlackfin.h> 36#include <asm/def_LPBlackfin.h>
37 37
38/*Cache & SRAM Memory*/ 38/*Cache & SRAM Memory*/
39#define bfin_read_SRAM_BASE_ADDRESS() bfin_read32(SRAM_BASE_ADDRESS) 39#define bfin_read_SRAM_BASE_ADDRESS() bfin_read32(SRAM_BASE_ADDRESS)
diff --git a/include/asm-blackfin/checksum.h b/arch/blackfin/include/asm/checksum.h
index 6f6af2b8e9e..6f6af2b8e9e 100644
--- a/include/asm-blackfin/checksum.h
+++ b/arch/blackfin/include/asm/checksum.h
diff --git a/include/asm-blackfin/mach-common/clocks.h b/arch/blackfin/include/asm/clocks.h
index 033bba92d61..033bba92d61 100644
--- a/include/asm-blackfin/mach-common/clocks.h
+++ b/arch/blackfin/include/asm/clocks.h
diff --git a/include/asm-blackfin/mach-common/context.S b/arch/blackfin/include/asm/context.S
index c0e630edfb9..c0e630edfb9 100644
--- a/include/asm-blackfin/mach-common/context.S
+++ b/arch/blackfin/include/asm/context.S
diff --git a/include/asm-blackfin/cplb-mpu.h b/arch/blackfin/include/asm/cplb-mpu.h
index 75c67b99d60..75c67b99d60 100644
--- a/include/asm-blackfin/cplb-mpu.h
+++ b/arch/blackfin/include/asm/cplb-mpu.h
diff --git a/include/asm-blackfin/cplb.h b/arch/blackfin/include/asm/cplb.h
index 5b0da9a69b6..05d6f05fb74 100644
--- a/include/asm-blackfin/cplb.h
+++ b/arch/blackfin/include/asm/cplb.h
@@ -31,7 +31,7 @@
31#define _CPLB_H 31#define _CPLB_H
32 32
33#include <asm/blackfin.h> 33#include <asm/blackfin.h>
34#include <asm/mach/anomaly.h> 34#include <mach/anomaly.h>
35 35
36#define SDRAM_IGENERIC (CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | CPLB_PORTPRIO) 36#define SDRAM_IGENERIC (CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | CPLB_PORTPRIO)
37#define SDRAM_IKERNEL (SDRAM_IGENERIC | CPLB_LOCK) 37#define SDRAM_IKERNEL (SDRAM_IGENERIC | CPLB_LOCK)
diff --git a/include/asm-blackfin/cplbinit.h b/arch/blackfin/include/asm/cplbinit.h
index 0eb1c1b685a..0eb1c1b685a 100644
--- a/include/asm-blackfin/cplbinit.h
+++ b/arch/blackfin/include/asm/cplbinit.h
diff --git a/include/asm-blackfin/cpumask.h b/arch/blackfin/include/asm/cpumask.h
index b20a8e9012c..b20a8e9012c 100644
--- a/include/asm-blackfin/cpumask.h
+++ b/arch/blackfin/include/asm/cpumask.h
diff --git a/include/asm-blackfin/cputime.h b/arch/blackfin/include/asm/cputime.h
index 2b19705f988..2b19705f988 100644
--- a/include/asm-blackfin/cputime.h
+++ b/arch/blackfin/include/asm/cputime.h
diff --git a/include/asm-blackfin/current.h b/arch/blackfin/include/asm/current.h
index 31918d29122..31918d29122 100644
--- a/include/asm-blackfin/current.h
+++ b/arch/blackfin/include/asm/current.h
diff --git a/include/asm-blackfin/mach-common/def_LPBlackfin.h b/arch/blackfin/include/asm/def_LPBlackfin.h
index e8967f6124f..6341eebff3d 100644
--- a/include/asm-blackfin/mach-common/def_LPBlackfin.h
+++ b/arch/blackfin/include/asm/def_LPBlackfin.h
@@ -31,7 +31,7 @@
31#ifndef _DEF_LPBLACKFIN_H 31#ifndef _DEF_LPBLACKFIN_H
32#define _DEF_LPBLACKFIN_H 32#define _DEF_LPBLACKFIN_H
33 33
34#include <asm/mach/anomaly.h> 34#include <mach/anomaly.h>
35 35
36#define MK_BMSK_(x) (1<<x) 36#define MK_BMSK_(x) (1<<x)
37 37
diff --git a/include/asm-blackfin/delay.h b/arch/blackfin/include/asm/delay.h
index 473a8113277..0889c3abb59 100644
--- a/include/asm-blackfin/delay.h
+++ b/arch/blackfin/include/asm/delay.h
@@ -9,7 +9,7 @@
9#ifndef __ASM_DELAY_H__ 9#ifndef __ASM_DELAY_H__
10#define __ASM_DELAY_H__ 10#define __ASM_DELAY_H__
11 11
12#include <asm/mach/anomaly.h> 12#include <mach/anomaly.h>
13 13
14static inline void __delay(unsigned long loops) 14static inline void __delay(unsigned long loops)
15{ 15{
diff --git a/include/asm-blackfin/device.h b/arch/blackfin/include/asm/device.h
index d8f9872b0e2..d8f9872b0e2 100644
--- a/include/asm-blackfin/device.h
+++ b/arch/blackfin/include/asm/device.h
diff --git a/include/asm-blackfin/div64.h b/arch/blackfin/include/asm/div64.h
index 6cd978cefb2..6cd978cefb2 100644
--- a/include/asm-blackfin/div64.h
+++ b/arch/blackfin/include/asm/div64.h
diff --git a/include/asm-blackfin/dma-mapping.h b/arch/blackfin/include/asm/dma-mapping.h
index 1a13c2fc366..1a13c2fc366 100644
--- a/include/asm-blackfin/dma-mapping.h
+++ b/arch/blackfin/include/asm/dma-mapping.h
diff --git a/include/asm-blackfin/dma.h b/arch/blackfin/include/asm/dma.h
index 3cd4b522aa3..6509733bb0f 100644
--- a/include/asm-blackfin/dma.h
+++ b/arch/blackfin/include/asm/dma.h
@@ -35,7 +35,7 @@
35#include <asm/signal.h> 35#include <asm/signal.h>
36 36
37#include <linux/kernel.h> 37#include <linux/kernel.h>
38#include <asm/mach/dma.h> 38#include <mach/dma.h>
39#include <linux/mm.h> 39#include <linux/mm.h>
40#include <linux/interrupt.h> 40#include <linux/interrupt.h>
41#include <asm/blackfin.h> 41#include <asm/blackfin.h>
diff --git a/include/asm-blackfin/dpmc.h b/arch/blackfin/include/asm/dpmc.h
index 96e8208f929..96e8208f929 100644
--- a/include/asm-blackfin/dpmc.h
+++ b/arch/blackfin/include/asm/dpmc.h
diff --git a/include/asm-blackfin/early_printk.h b/arch/blackfin/include/asm/early_printk.h
index 110f1c1f845..110f1c1f845 100644
--- a/include/asm-blackfin/early_printk.h
+++ b/arch/blackfin/include/asm/early_printk.h
diff --git a/include/asm-blackfin/elf.h b/arch/blackfin/include/asm/elf.h
index 67a03a8a353..67a03a8a353 100644
--- a/include/asm-blackfin/elf.h
+++ b/arch/blackfin/include/asm/elf.h
diff --git a/include/asm-blackfin/emergency-restart.h b/arch/blackfin/include/asm/emergency-restart.h
index 27f6c785d10..27f6c785d10 100644
--- a/include/asm-blackfin/emergency-restart.h
+++ b/arch/blackfin/include/asm/emergency-restart.h
diff --git a/include/asm-blackfin/entry.h b/arch/blackfin/include/asm/entry.h
index c4f721e0d00..c4f721e0d00 100644
--- a/include/asm-blackfin/entry.h
+++ b/arch/blackfin/include/asm/entry.h
diff --git a/include/asm-blackfin/errno.h b/arch/blackfin/include/asm/errno.h
index 164e4f39bb5..164e4f39bb5 100644
--- a/include/asm-blackfin/errno.h
+++ b/arch/blackfin/include/asm/errno.h
diff --git a/include/asm-blackfin/fb.h b/arch/blackfin/include/asm/fb.h
index c7df3803099..c7df3803099 100644
--- a/include/asm-blackfin/fb.h
+++ b/arch/blackfin/include/asm/fb.h
diff --git a/include/asm-blackfin/fcntl.h b/arch/blackfin/include/asm/fcntl.h
index 9c403712785..9c403712785 100644
--- a/include/asm-blackfin/fcntl.h
+++ b/arch/blackfin/include/asm/fcntl.h
diff --git a/include/asm-blackfin/fixed_code.h b/arch/blackfin/include/asm/fixed_code.h
index 32c4d495d84..32c4d495d84 100644
--- a/include/asm-blackfin/fixed_code.h
+++ b/arch/blackfin/include/asm/fixed_code.h
diff --git a/include/asm-blackfin/flat.h b/arch/blackfin/include/asm/flat.h
index e70074e05f4..e70074e05f4 100644
--- a/include/asm-blackfin/flat.h
+++ b/arch/blackfin/include/asm/flat.h
diff --git a/include/asm-blackfin/futex.h b/arch/blackfin/include/asm/futex.h
index 6a332a9f099..6a332a9f099 100644
--- a/include/asm-blackfin/futex.h
+++ b/arch/blackfin/include/asm/futex.h
diff --git a/include/asm-blackfin/gpio.h b/arch/blackfin/include/asm/gpio.h
index 168f1251eb4..ad33ac271fd 100644
--- a/include/asm-blackfin/gpio.h
+++ b/arch/blackfin/include/asm/gpio.h
@@ -224,7 +224,7 @@
224#endif 224#endif
225 225
226#ifdef BF548_FAMILY 226#ifdef BF548_FAMILY
227#include <asm-blackfin/mach-bf548/gpio.h> 227#include <mach/gpio.h>
228#endif 228#endif
229 229
230#ifdef BF561_FAMILY 230#ifdef BF561_FAMILY
diff --git a/include/asm-blackfin/gptimers.h b/arch/blackfin/include/asm/gptimers.h
index 0520d2aac8f..0520d2aac8f 100644
--- a/include/asm-blackfin/gptimers.h
+++ b/arch/blackfin/include/asm/gptimers.h
diff --git a/include/asm-blackfin/hardirq.h b/arch/blackfin/include/asm/hardirq.h
index b6b19f1b9da..b6b19f1b9da 100644
--- a/include/asm-blackfin/hardirq.h
+++ b/arch/blackfin/include/asm/hardirq.h
diff --git a/include/asm-blackfin/hw_irq.h b/arch/blackfin/include/asm/hw_irq.h
index 5b51eaec012..5b51eaec012 100644
--- a/include/asm-blackfin/hw_irq.h
+++ b/arch/blackfin/include/asm/hw_irq.h
diff --git a/include/asm-blackfin/io.h b/arch/blackfin/include/asm/io.h
index cbbf7ffdbbf..cbbf7ffdbbf 100644
--- a/include/asm-blackfin/io.h
+++ b/arch/blackfin/include/asm/io.h
diff --git a/include/asm-blackfin/ioctl.h b/arch/blackfin/include/asm/ioctl.h
index b279fe06dfe..b279fe06dfe 100644
--- a/include/asm-blackfin/ioctl.h
+++ b/arch/blackfin/include/asm/ioctl.h
diff --git a/include/asm-blackfin/ioctls.h b/arch/blackfin/include/asm/ioctls.h
index 895e3173165..895e3173165 100644
--- a/include/asm-blackfin/ioctls.h
+++ b/arch/blackfin/include/asm/ioctls.h
diff --git a/include/asm-blackfin/ipcbuf.h b/arch/blackfin/include/asm/ipcbuf.h
index 8f0899cdf4d..8f0899cdf4d 100644
--- a/include/asm-blackfin/ipcbuf.h
+++ b/arch/blackfin/include/asm/ipcbuf.h
diff --git a/include/asm-blackfin/irq.h b/arch/blackfin/include/asm/irq.h
index 86b67834354..89f59e18af9 100644
--- a/include/asm-blackfin/irq.h
+++ b/arch/blackfin/include/asm/irq.h
@@ -17,7 +17,7 @@
17#ifndef _BFIN_IRQ_H_ 17#ifndef _BFIN_IRQ_H_
18#define _BFIN_IRQ_H_ 18#define _BFIN_IRQ_H_
19 19
20#include <asm/mach/irq.h> 20#include <mach/irq.h>
21#include <asm/ptrace.h> 21#include <asm/ptrace.h>
22 22
23/******************************************************************************* 23/*******************************************************************************
@@ -34,7 +34,7 @@
34 * interrupts apart (just the TX/RX for the various devices) 34 * interrupts apart (just the TX/RX for the various devices)
35 *******************************************************************************/ 35 *******************************************************************************/
36 36
37/* SYS_IRQS and NR_IRQS are defined in <asm/mach-bf5xx/irq.h>*/ 37/* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h>*/
38 38
39/* 39/*
40 * Machine specific interrupt sources. 40 * Machine specific interrupt sources.
diff --git a/include/asm-blackfin/irq_handler.h b/arch/blackfin/include/asm/irq_handler.h
index 139b5208f9d..139b5208f9d 100644
--- a/include/asm-blackfin/irq_handler.h
+++ b/arch/blackfin/include/asm/irq_handler.h
diff --git a/include/asm-blackfin/irq_regs.h b/arch/blackfin/include/asm/irq_regs.h
index 3dd9c0b7027..3dd9c0b7027 100644
--- a/include/asm-blackfin/irq_regs.h
+++ b/arch/blackfin/include/asm/irq_regs.h
diff --git a/include/asm-blackfin/kdebug.h b/arch/blackfin/include/asm/kdebug.h
index 6ece1b03766..6ece1b03766 100644
--- a/include/asm-blackfin/kdebug.h
+++ b/arch/blackfin/include/asm/kdebug.h
diff --git a/include/asm-blackfin/kgdb.h b/arch/blackfin/include/asm/kgdb.h
index 0f73847fd6b..0f73847fd6b 100644
--- a/include/asm-blackfin/kgdb.h
+++ b/arch/blackfin/include/asm/kgdb.h
diff --git a/include/asm-blackfin/kmap_types.h b/arch/blackfin/include/asm/kmap_types.h
index e215f710497..e215f710497 100644
--- a/include/asm-blackfin/kmap_types.h
+++ b/arch/blackfin/include/asm/kmap_types.h
diff --git a/include/asm-blackfin/l1layout.h b/arch/blackfin/include/asm/l1layout.h
index c13ded77782..c13ded77782 100644
--- a/include/asm-blackfin/l1layout.h
+++ b/arch/blackfin/include/asm/l1layout.h
diff --git a/include/asm-blackfin/linkage.h b/arch/blackfin/include/asm/linkage.h
index 5a822bb790f..5a822bb790f 100644
--- a/include/asm-blackfin/linkage.h
+++ b/arch/blackfin/include/asm/linkage.h
diff --git a/include/asm-blackfin/local.h b/arch/blackfin/include/asm/local.h
index 75afffbc642..75afffbc642 100644
--- a/include/asm-blackfin/local.h
+++ b/arch/blackfin/include/asm/local.h
diff --git a/include/asm-blackfin/mem_map.h b/arch/blackfin/include/asm/mem_map.h
index 42d1f37f6d9..88d04a70770 100644
--- a/include/asm-blackfin/mem_map.h
+++ b/arch/blackfin/include/asm/mem_map.h
@@ -7,6 +7,6 @@
7#ifndef _MEM_MAP_H_ 7#ifndef _MEM_MAP_H_
8#define _MEM_MAP_H_ 8#define _MEM_MAP_H_
9 9
10#include <asm/mach/mem_map.h> 10#include <mach/mem_map.h>
11 11
12#endif /* _MEM_MAP_H_ */ 12#endif /* _MEM_MAP_H_ */
diff --git a/include/asm-blackfin/mman.h b/arch/blackfin/include/asm/mman.h
index b58f5ad3f02..b58f5ad3f02 100644
--- a/include/asm-blackfin/mman.h
+++ b/arch/blackfin/include/asm/mman.h
diff --git a/include/asm-blackfin/mmu.h b/arch/blackfin/include/asm/mmu.h
index 757e43906ed..757e43906ed 100644
--- a/include/asm-blackfin/mmu.h
+++ b/arch/blackfin/include/asm/mmu.h
diff --git a/include/asm-blackfin/mmu_context.h b/arch/blackfin/include/asm/mmu_context.h
index f55ec3c23a9..8529552a981 100644
--- a/include/asm-blackfin/mmu_context.h
+++ b/arch/blackfin/include/asm/mmu_context.h
@@ -173,8 +173,10 @@ static inline void protect_page(struct mm_struct *mm, unsigned long addr,
173 173
174static inline void update_protections(struct mm_struct *mm) 174static inline void update_protections(struct mm_struct *mm)
175{ 175{
176 flush_switched_cplbs(); 176 if (mm->context.page_rwx_mask == current_rwx_mask) {
177 set_mask_dcplbs(mm->context.page_rwx_mask); 177 flush_switched_cplbs();
178 set_mask_dcplbs(mm->context.page_rwx_mask);
179 }
178} 180}
179#endif 181#endif
180 182
diff --git a/include/asm-blackfin/module.h b/arch/blackfin/include/asm/module.h
index e3128df139d..e3128df139d 100644
--- a/include/asm-blackfin/module.h
+++ b/arch/blackfin/include/asm/module.h
diff --git a/include/asm-blackfin/msgbuf.h b/arch/blackfin/include/asm/msgbuf.h
index 6fcbe8cd801..6fcbe8cd801 100644
--- a/include/asm-blackfin/msgbuf.h
+++ b/arch/blackfin/include/asm/msgbuf.h
diff --git a/include/asm-blackfin/mutex.h b/arch/blackfin/include/asm/mutex.h
index 458c1f7fbc1..458c1f7fbc1 100644
--- a/include/asm-blackfin/mutex.h
+++ b/arch/blackfin/include/asm/mutex.h
diff --git a/include/asm-blackfin/nand.h b/arch/blackfin/include/asm/nand.h
index afbaafa793f..afbaafa793f 100644
--- a/include/asm-blackfin/nand.h
+++ b/arch/blackfin/include/asm/nand.h
diff --git a/include/asm-blackfin/page.h b/arch/blackfin/include/asm/page.h
index 344f6a8c1f2..344f6a8c1f2 100644
--- a/include/asm-blackfin/page.h
+++ b/arch/blackfin/include/asm/page.h
diff --git a/include/asm-blackfin/page_offset.h b/arch/blackfin/include/asm/page_offset.h
index cbaff24b4b2..cbaff24b4b2 100644
--- a/include/asm-blackfin/page_offset.h
+++ b/arch/blackfin/include/asm/page_offset.h
diff --git a/include/asm-blackfin/param.h b/arch/blackfin/include/asm/param.h
index 41564a6347f..41564a6347f 100644
--- a/include/asm-blackfin/param.h
+++ b/arch/blackfin/include/asm/param.h
diff --git a/include/asm-blackfin/pci.h b/arch/blackfin/include/asm/pci.h
index 61277358c86..61277358c86 100644
--- a/include/asm-blackfin/pci.h
+++ b/arch/blackfin/include/asm/pci.h
diff --git a/include/asm-blackfin/percpu.h b/arch/blackfin/include/asm/percpu.h
index 78dd61f6b39..78dd61f6b39 100644
--- a/include/asm-blackfin/percpu.h
+++ b/arch/blackfin/include/asm/percpu.h
diff --git a/include/asm-blackfin/pgalloc.h b/arch/blackfin/include/asm/pgalloc.h
index c686e0542fd..c686e0542fd 100644
--- a/include/asm-blackfin/pgalloc.h
+++ b/arch/blackfin/include/asm/pgalloc.h
diff --git a/include/asm-blackfin/pgtable.h b/arch/blackfin/include/asm/pgtable.h
index b11b114689c..f11684e4ade 100644
--- a/include/asm-blackfin/pgtable.h
+++ b/arch/blackfin/include/asm/pgtable.h
@@ -4,7 +4,7 @@
4#include <asm-generic/4level-fixup.h> 4#include <asm-generic/4level-fixup.h>
5 5
6#include <asm/page.h> 6#include <asm/page.h>
7#include <asm/mach-common/def_LPBlackfin.h> 7#include <asm/def_LPBlackfin.h>
8 8
9typedef pte_t *pte_addr_t; 9typedef pte_t *pte_addr_t;
10/* 10/*
diff --git a/include/asm-blackfin/poll.h b/arch/blackfin/include/asm/poll.h
index 94cc2636e0e..94cc2636e0e 100644
--- a/include/asm-blackfin/poll.h
+++ b/arch/blackfin/include/asm/poll.h
diff --git a/include/asm-blackfin/portmux.h b/arch/blackfin/include/asm/portmux.h
index 0807b286cd9..88eb5c07cc2 100644
--- a/include/asm-blackfin/portmux.h
+++ b/arch/blackfin/include/asm/portmux.h
@@ -21,7 +21,7 @@ int peripheral_request_list(const unsigned short per[], const char *label);
21void peripheral_free_list(const unsigned short per[]); 21void peripheral_free_list(const unsigned short per[]);
22 22
23#include <asm/gpio.h> 23#include <asm/gpio.h>
24#include <asm/mach/portmux.h> 24#include <mach/portmux.h>
25 25
26#ifndef P_SPORT2_TFS 26#ifndef P_SPORT2_TFS
27#define P_SPORT2_TFS P_UNDEF 27#define P_SPORT2_TFS P_UNDEF
diff --git a/include/asm-blackfin/posix_types.h b/arch/blackfin/include/asm/posix_types.h
index 23aa1f8c1bd..23aa1f8c1bd 100644
--- a/include/asm-blackfin/posix_types.h
+++ b/arch/blackfin/include/asm/posix_types.h
diff --git a/include/asm-blackfin/processor.h b/arch/blackfin/include/asm/processor.h
index 6f3995b119d..6f3995b119d 100644
--- a/include/asm-blackfin/processor.h
+++ b/arch/blackfin/include/asm/processor.h
diff --git a/include/asm-blackfin/ptrace.h b/arch/blackfin/include/asm/ptrace.h
index a45a80e54ad..a45a80e54ad 100644
--- a/include/asm-blackfin/ptrace.h
+++ b/arch/blackfin/include/asm/ptrace.h
diff --git a/include/asm-blackfin/reboot.h b/arch/blackfin/include/asm/reboot.h
index 6d448b5f598..6d448b5f598 100644
--- a/include/asm-blackfin/reboot.h
+++ b/arch/blackfin/include/asm/reboot.h
diff --git a/include/asm-blackfin/resource.h b/arch/blackfin/include/asm/resource.h
index 091355ab349..091355ab349 100644
--- a/include/asm-blackfin/resource.h
+++ b/arch/blackfin/include/asm/resource.h
diff --git a/include/asm-blackfin/scatterlist.h b/arch/blackfin/include/asm/scatterlist.h
index 04f448711cd..04f448711cd 100644
--- a/include/asm-blackfin/scatterlist.h
+++ b/arch/blackfin/include/asm/scatterlist.h
diff --git a/include/asm-blackfin/sections.h b/arch/blackfin/include/asm/sections.h
index 1443c3353a8..1443c3353a8 100644
--- a/include/asm-blackfin/sections.h
+++ b/arch/blackfin/include/asm/sections.h
diff --git a/include/asm-blackfin/segment.h b/arch/blackfin/include/asm/segment.h
index 02cfd09b5a9..02cfd09b5a9 100644
--- a/include/asm-blackfin/segment.h
+++ b/arch/blackfin/include/asm/segment.h
diff --git a/include/asm-blackfin/sembuf.h b/arch/blackfin/include/asm/sembuf.h
index 18deb5c7fa5..18deb5c7fa5 100644
--- a/include/asm-blackfin/sembuf.h
+++ b/arch/blackfin/include/asm/sembuf.h
diff --git a/include/asm-blackfin/serial.h b/arch/blackfin/include/asm/serial.h
index 994dd869558..994dd869558 100644
--- a/include/asm-blackfin/serial.h
+++ b/arch/blackfin/include/asm/serial.h
diff --git a/include/asm-blackfin/setup.h b/arch/blackfin/include/asm/setup.h
index 01c8c6cbe6f..01c8c6cbe6f 100644
--- a/include/asm-blackfin/setup.h
+++ b/arch/blackfin/include/asm/setup.h
diff --git a/include/asm-blackfin/shmbuf.h b/arch/blackfin/include/asm/shmbuf.h
index 612436303e8..612436303e8 100644
--- a/include/asm-blackfin/shmbuf.h
+++ b/arch/blackfin/include/asm/shmbuf.h
diff --git a/include/asm-blackfin/shmparam.h b/arch/blackfin/include/asm/shmparam.h
index 3c03906b766..3c03906b766 100644
--- a/include/asm-blackfin/shmparam.h
+++ b/arch/blackfin/include/asm/shmparam.h
diff --git a/include/asm-blackfin/sigcontext.h b/arch/blackfin/include/asm/sigcontext.h
index ce00b03c277..ce00b03c277 100644
--- a/include/asm-blackfin/sigcontext.h
+++ b/arch/blackfin/include/asm/sigcontext.h
diff --git a/include/asm-blackfin/siginfo.h b/arch/blackfin/include/asm/siginfo.h
index eca4565cea3..eca4565cea3 100644
--- a/include/asm-blackfin/siginfo.h
+++ b/arch/blackfin/include/asm/siginfo.h
diff --git a/include/asm-blackfin/signal.h b/arch/blackfin/include/asm/signal.h
index 87951d25145..87951d25145 100644
--- a/include/asm-blackfin/signal.h
+++ b/arch/blackfin/include/asm/signal.h
diff --git a/include/asm-blackfin/socket.h b/arch/blackfin/include/asm/socket.h
index 2ca702e44d4..2ca702e44d4 100644
--- a/include/asm-blackfin/socket.h
+++ b/arch/blackfin/include/asm/socket.h
diff --git a/include/asm-blackfin/sockios.h b/arch/blackfin/include/asm/sockios.h
index 426b89bfaa8..426b89bfaa8 100644
--- a/include/asm-blackfin/sockios.h
+++ b/arch/blackfin/include/asm/sockios.h
diff --git a/include/asm-blackfin/spinlock.h b/arch/blackfin/include/asm/spinlock.h
index 64e908a5064..64e908a5064 100644
--- a/include/asm-blackfin/spinlock.h
+++ b/arch/blackfin/include/asm/spinlock.h
diff --git a/include/asm-blackfin/stat.h b/arch/blackfin/include/asm/stat.h
index d2b6f11ec23..d2b6f11ec23 100644
--- a/include/asm-blackfin/stat.h
+++ b/arch/blackfin/include/asm/stat.h
diff --git a/include/asm-blackfin/statfs.h b/arch/blackfin/include/asm/statfs.h
index 350672091ba..350672091ba 100644
--- a/include/asm-blackfin/statfs.h
+++ b/arch/blackfin/include/asm/statfs.h
diff --git a/include/asm-blackfin/string.h b/arch/blackfin/include/asm/string.h
index 321f4d96e4a..321f4d96e4a 100644
--- a/include/asm-blackfin/string.h
+++ b/arch/blackfin/include/asm/string.h
diff --git a/include/asm-blackfin/system.h b/arch/blackfin/include/asm/system.h
index 51494ef5bb4..8f1627d8bf0 100644
--- a/include/asm-blackfin/system.h
+++ b/arch/blackfin/include/asm/system.h
@@ -36,7 +36,7 @@
36 36
37#include <linux/linkage.h> 37#include <linux/linkage.h>
38#include <linux/compiler.h> 38#include <linux/compiler.h>
39#include <asm/mach/anomaly.h> 39#include <mach/anomaly.h>
40 40
41/* 41/*
42 * Interrupt configuring macros. 42 * Interrupt configuring macros.
diff --git a/include/asm-blackfin/termbits.h b/arch/blackfin/include/asm/termbits.h
index f37feb7cf89..f37feb7cf89 100644
--- a/include/asm-blackfin/termbits.h
+++ b/arch/blackfin/include/asm/termbits.h
diff --git a/include/asm-blackfin/termios.h b/arch/blackfin/include/asm/termios.h
index d50d063c605..d50d063c605 100644
--- a/include/asm-blackfin/termios.h
+++ b/arch/blackfin/include/asm/termios.h
diff --git a/include/asm-blackfin/thread_info.h b/arch/blackfin/include/asm/thread_info.h
index 642769329d1..642769329d1 100644
--- a/include/asm-blackfin/thread_info.h
+++ b/arch/blackfin/include/asm/thread_info.h
diff --git a/include/asm-blackfin/time.h b/arch/blackfin/include/asm/time.h
index ddc43ce3853..ddc43ce3853 100644
--- a/include/asm-blackfin/time.h
+++ b/arch/blackfin/include/asm/time.h
diff --git a/include/asm-blackfin/timex.h b/arch/blackfin/include/asm/timex.h
index 22b0806161b..22b0806161b 100644
--- a/include/asm-blackfin/timex.h
+++ b/arch/blackfin/include/asm/timex.h
diff --git a/include/asm-blackfin/tlb.h b/arch/blackfin/include/asm/tlb.h
index 89a12ee916d..89a12ee916d 100644
--- a/include/asm-blackfin/tlb.h
+++ b/arch/blackfin/include/asm/tlb.h
diff --git a/include/asm-blackfin/tlbflush.h b/arch/blackfin/include/asm/tlbflush.h
index 277b400924b..277b400924b 100644
--- a/include/asm-blackfin/tlbflush.h
+++ b/arch/blackfin/include/asm/tlbflush.h
diff --git a/include/asm-blackfin/topology.h b/arch/blackfin/include/asm/topology.h
index acee2398789..acee2398789 100644
--- a/include/asm-blackfin/topology.h
+++ b/arch/blackfin/include/asm/topology.h
diff --git a/include/asm-blackfin/trace.h b/arch/blackfin/include/asm/trace.h
index 312b596b973..312b596b973 100644
--- a/include/asm-blackfin/trace.h
+++ b/arch/blackfin/include/asm/trace.h
diff --git a/include/asm-blackfin/traps.h b/arch/blackfin/include/asm/traps.h
index f0e5f940d9c..f0e5f940d9c 100644
--- a/include/asm-blackfin/traps.h
+++ b/arch/blackfin/include/asm/traps.h
diff --git a/include/asm-blackfin/types.h b/arch/blackfin/include/asm/types.h
index 8441cbc2bf9..8441cbc2bf9 100644
--- a/include/asm-blackfin/types.h
+++ b/arch/blackfin/include/asm/types.h
diff --git a/include/asm-blackfin/uaccess.h b/arch/blackfin/include/asm/uaccess.h
index d928b809905..d928b809905 100644
--- a/include/asm-blackfin/uaccess.h
+++ b/arch/blackfin/include/asm/uaccess.h
diff --git a/include/asm-blackfin/ucontext.h b/arch/blackfin/include/asm/ucontext.h
index 4a4e3856beb..4a4e3856beb 100644
--- a/include/asm-blackfin/ucontext.h
+++ b/arch/blackfin/include/asm/ucontext.h
diff --git a/include/asm-blackfin/unaligned.h b/arch/blackfin/include/asm/unaligned.h
index fd8a1d63494..fd8a1d63494 100644
--- a/include/asm-blackfin/unaligned.h
+++ b/arch/blackfin/include/asm/unaligned.h
diff --git a/include/asm-blackfin/unistd.h b/arch/blackfin/include/asm/unistd.h
index 1e57b636e0b..1e57b636e0b 100644
--- a/include/asm-blackfin/unistd.h
+++ b/arch/blackfin/include/asm/unistd.h
diff --git a/include/asm-blackfin/user.h b/arch/blackfin/include/asm/user.h
index afe6a0e1f7c..afe6a0e1f7c 100644
--- a/include/asm-blackfin/user.h
+++ b/arch/blackfin/include/asm/user.h
diff --git a/arch/blackfin/kernel/entry.S b/arch/blackfin/kernel/entry.S
index 31bd9bf3efa..faea88ebb2e 100644
--- a/arch/blackfin/kernel/entry.S
+++ b/arch/blackfin/kernel/entry.S
@@ -32,7 +32,7 @@
32#include <asm/errno.h> 32#include <asm/errno.h>
33#include <asm/asm-offsets.h> 33#include <asm/asm-offsets.h>
34 34
35#include <asm/mach-common/context.S> 35#include <asm/context.S>
36 36
37#ifdef CONFIG_EXCPT_IRQ_SYSC_L1 37#ifdef CONFIG_EXCPT_IRQ_SYSC_L1
38.section .l1.text 38.section .l1.text
diff --git a/arch/blackfin/mach-bf527/head.S b/arch/blackfin/mach-bf527/head.S
index c3334cc5bcb..28c48619120 100644
--- a/arch/blackfin/mach-bf527/head.S
+++ b/arch/blackfin/mach-bf527/head.S
@@ -31,8 +31,8 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#ifdef CONFIG_BFIN_KERNEL_CLOCK 33#ifdef CONFIG_BFIN_KERNEL_CLOCK
34#include <asm/mach-common/clocks.h> 34#include <asm/clocks.h>
35#include <asm/mach/mem_init.h> 35#include <mach/mem_init.h>
36#endif 36#endif
37 37
38.section .l1.text 38.section .l1.text
diff --git a/include/asm-blackfin/mach-bf527/anomaly.h b/arch/blackfin/mach-bf527/include/mach/anomaly.h
index b7b166f4f06..b7b166f4f06 100644
--- a/include/asm-blackfin/mach-bf527/anomaly.h
+++ b/arch/blackfin/mach-bf527/include/mach/anomaly.h
diff --git a/include/asm-blackfin/mach-bf527/bf527.h b/arch/blackfin/mach-bf527/include/mach/bf527.h
index 056eb4b9cd2..056eb4b9cd2 100644
--- a/include/asm-blackfin/mach-bf527/bf527.h
+++ b/arch/blackfin/mach-bf527/include/mach/bf527.h
diff --git a/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h b/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h
index 2526b6ed6fa..2526b6ed6fa 100644
--- a/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h
diff --git a/include/asm-blackfin/mach-bf527/bfin_sir.h b/arch/blackfin/mach-bf527/include/mach/bfin_sir.h
index cfd8ad4f1f2..cfd8ad4f1f2 100644
--- a/include/asm-blackfin/mach-bf527/bfin_sir.h
+++ b/arch/blackfin/mach-bf527/include/mach/bfin_sir.h
diff --git a/include/asm-blackfin/mach-bf527/blackfin.h b/arch/blackfin/mach-bf527/include/mach/blackfin.h
index 297821e2d79..297821e2d79 100644
--- a/include/asm-blackfin/mach-bf527/blackfin.h
+++ b/arch/blackfin/mach-bf527/include/mach/blackfin.h
diff --git a/include/asm-blackfin/mach-bf527/cdefBF522.h b/arch/blackfin/mach-bf527/include/mach/cdefBF522.h
index 52c06494b88..663c2bbdfd9 100644
--- a/include/asm-blackfin/mach-bf527/cdefBF522.h
+++ b/arch/blackfin/mach-bf527/include/mach/cdefBF522.h
@@ -36,7 +36,7 @@
36#include "defBF522.h" 36#include "defBF522.h"
37 37
38/* include core specific register pointer definitions */ 38/* include core specific register pointer definitions */
39#include <asm/mach-common/cdef_LPBlackfin.h> 39#include <asm/cdef_LPBlackfin.h>
40 40
41/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF522 */ 41/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF522 */
42 42
diff --git a/include/asm-blackfin/mach-bf527/cdefBF525.h b/arch/blackfin/mach-bf527/include/mach/cdefBF525.h
index 2cc67e4b4d8..00377eb59b7 100644
--- a/include/asm-blackfin/mach-bf527/cdefBF525.h
+++ b/arch/blackfin/mach-bf527/include/mach/cdefBF525.h
@@ -36,7 +36,7 @@
36#include "defBF525.h" 36#include "defBF525.h"
37 37
38/* include core specific register pointer definitions */ 38/* include core specific register pointer definitions */
39#include <asm/mach-common/cdef_LPBlackfin.h> 39#include <asm/cdef_LPBlackfin.h>
40 40
41/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF525 */ 41/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF525 */
42 42
diff --git a/include/asm-blackfin/mach-bf527/cdefBF527.h b/arch/blackfin/mach-bf527/include/mach/cdefBF527.h
index 5bd1a860174..fca8db70811 100644
--- a/include/asm-blackfin/mach-bf527/cdefBF527.h
+++ b/arch/blackfin/mach-bf527/include/mach/cdefBF527.h
@@ -36,7 +36,7 @@
36#include "defBF527.h" 36#include "defBF527.h"
37 37
38/* include core specific register pointer definitions */ 38/* include core specific register pointer definitions */
39#include <asm/mach-common/cdef_LPBlackfin.h> 39#include <asm/cdef_LPBlackfin.h>
40 40
41/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF527 */ 41/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF527 */
42 42
diff --git a/include/asm-blackfin/mach-bf527/cdefBF52x_base.h b/arch/blackfin/mach-bf527/include/mach/cdefBF52x_base.h
index 9dbdbec8ea1..9a814b9a12b 100644
--- a/include/asm-blackfin/mach-bf527/cdefBF52x_base.h
+++ b/arch/blackfin/mach-bf527/include/mach/cdefBF52x_base.h
@@ -37,7 +37,7 @@
37#include "defBF52x_base.h" 37#include "defBF52x_base.h"
38 38
39/* Include core specific register pointer definitions */ 39/* Include core specific register pointer definitions */
40#include <asm/mach-common/cdef_LPBlackfin.h> 40#include <asm/cdef_LPBlackfin.h>
41 41
42/* ==== begin from cdefBF534.h ==== */ 42/* ==== begin from cdefBF534.h ==== */
43 43
diff --git a/include/asm-blackfin/mach-bf527/defBF522.h b/arch/blackfin/mach-bf527/include/mach/defBF522.h
index 9671d8f2c5e..0a8cdcdf0b4 100644
--- a/include/asm-blackfin/mach-bf527/defBF522.h
+++ b/arch/blackfin/mach-bf527/include/mach/defBF522.h
@@ -32,7 +32,7 @@
32#define _DEF_BF522_H 32#define _DEF_BF522_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF522 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF522 */
38 38
diff --git a/include/asm-blackfin/mach-bf527/defBF525.h b/arch/blackfin/mach-bf527/include/mach/defBF525.h
index 6a375a084ac..5cd7576fef7 100644
--- a/include/asm-blackfin/mach-bf527/defBF525.h
+++ b/arch/blackfin/mach-bf527/include/mach/defBF525.h
@@ -32,7 +32,7 @@
32#define _DEF_BF525_H 32#define _DEF_BF525_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF525 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF525 */
38 38
diff --git a/include/asm-blackfin/mach-bf527/defBF527.h b/arch/blackfin/mach-bf527/include/mach/defBF527.h
index f1a70db70cb..f040f364afa 100644
--- a/include/asm-blackfin/mach-bf527/defBF527.h
+++ b/arch/blackfin/mach-bf527/include/mach/defBF527.h
@@ -32,7 +32,7 @@
32#define _DEF_BF527_H 32#define _DEF_BF527_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF527 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF527 */
38 38
diff --git a/include/asm-blackfin/mach-bf527/defBF52x_base.h b/arch/blackfin/mach-bf527/include/mach/defBF52x_base.h
index fc69cf93f14..6ac2ed7026e 100644
--- a/include/asm-blackfin/mach-bf527/defBF52x_base.h
+++ b/arch/blackfin/mach-bf527/include/mach/defBF52x_base.h
@@ -151,7 +151,7 @@
151#define TIMER7_CONFIG 0xFFC00670 /* Timer 7 Configuration Register */ 151#define TIMER7_CONFIG 0xFFC00670 /* Timer 7 Configuration Register */
152#define TIMER7_COUNTER 0xFFC00674 /* Timer 7 Counter Register */ 152#define TIMER7_COUNTER 0xFFC00674 /* Timer 7 Counter Register */
153#define TIMER7_PERIOD 0xFFC00678 /* Timer 7 Period Register */ 153#define TIMER7_PERIOD 0xFFC00678 /* Timer 7 Period Register */
154#define TIMER7_WIDTH 0xFFC0067C /* Timer 7 Width Register */ 154#define TIMER7_WIDTH 0xFFC0067C /* Timer 7 Width Register */
155 155
156#define TIMER_ENABLE 0xFFC00680 /* Timer Enable Register */ 156#define TIMER_ENABLE 0xFFC00680 /* Timer Enable Register */
157#define TIMER_DISABLE 0xFFC00684 /* Timer Disable Register */ 157#define TIMER_DISABLE 0xFFC00684 /* Timer Disable Register */
@@ -634,18 +634,9 @@
634/* PLL_DIV Macros */ 634/* PLL_DIV Macros */
635#define SET_SSEL(x) ((x)&0xF) /* Set SSEL = 0-15 --> SCLK = VCO/SSEL */ 635#define SET_SSEL(x) ((x)&0xF) /* Set SSEL = 0-15 --> SCLK = VCO/SSEL */
636 636
637/* VR_CTL Masks */ 637/* VR_CTL Masks */
638#define FREQ 0x0003 /* Switching Oscillator Frequency For Regulator */ 638#define FREQ 0x3000 /* Switching Oscillator Frequency For Regulator */
639#define HIBERNATE 0x0000 /* Powerdown/Bypass On-Board Regulation */ 639#define HIBERNATE 0x0000 /* Powerdown/Bypass On-Board Regulation */
640#define FREQ_333 0x0001 /* Switching Frequency Is 333 kHz */
641#define FREQ_667 0x0002 /* Switching Frequency Is 667 kHz */
642#define FREQ_1000 0x0003 /* Switching Frequency Is 1 MHz */
643
644#define GAIN 0x000C /* Voltage Level Gain */
645#define GAIN_5 0x0000 /* GAIN = 5 */
646#define GAIN_10 0x0004 /* GAIN = 10 */
647#define GAIN_20 0x0008 /* GAIN = 20 */
648#define GAIN_50 0x000C /* GAIN = 50 */
649 640
650#define VLEV 0x00F0 /* Internal Voltage Level */ 641#define VLEV 0x00F0 /* Internal Voltage Level */
651#define VLEV_085 0x0060 /* VLEV = 0.85 V (-5% - +10% Accuracy) */ 642#define VLEV_085 0x0060 /* VLEV = 0.85 V (-5% - +10% Accuracy) */
@@ -660,7 +651,7 @@
660#define VLEV_130 0x00F0 /* VLEV = 1.30 V (-5% - +10% Accuracy) */ 651#define VLEV_130 0x00F0 /* VLEV = 1.30 V (-5% - +10% Accuracy) */
661 652
662#define WAKE 0x0100 /* Enable RTC/Reset Wakeup From Hibernate */ 653#define WAKE 0x0100 /* Enable RTC/Reset Wakeup From Hibernate */
663#define CANWE 0x0200 /* Enable CAN Wakeup From Hibernate */ 654#define USBWE 0x0200 /* Enable USB Wakeup From Hibernate */
664#define PHYWE 0x0400 /* Enable PHY Wakeup From Hibernate */ 655#define PHYWE 0x0400 /* Enable PHY Wakeup From Hibernate */
665#define CLKBUFOE 0x4000 /* CLKIN Buffer Output Enable */ 656#define CLKBUFOE 0x4000 /* CLKIN Buffer Output Enable */
666#define PHYCLKOE CLKBUFOE /* Alternative legacy name for the above */ 657#define PHYCLKOE CLKBUFOE /* Alternative legacy name for the above */
@@ -697,16 +688,16 @@
697 688
698#define IRQ_ERROR1 0x00000002 /* Error Interrupt (DMA, DMARx Block, DMARx Overflow) */ 689#define IRQ_ERROR1 0x00000002 /* Error Interrupt (DMA, DMARx Block, DMARx Overflow) */
699#define IRQ_ERROR2 0x00000004 /* Error Interrupt (CAN, Ethernet, SPORTx, PPI, SPI, UARTx) */ 690#define IRQ_ERROR2 0x00000004 /* Error Interrupt (CAN, Ethernet, SPORTx, PPI, SPI, UARTx) */
700#define IRQ_RTC 0x00000008 /* Real Time Clock Interrupt */ 691#define IRQ_RTC 0x00000008 /* Real Time Clock Interrupt */
701#define IRQ_DMA0 0x00000010 /* DMA Channel 0 (PPI) Interrupt */ 692#define IRQ_DMA0 0x00000010 /* DMA Channel 0 (PPI) Interrupt */
702#define IRQ_DMA3 0x00000020 /* DMA Channel 3 (SPORT0 RX) Interrupt */ 693#define IRQ_DMA3 0x00000020 /* DMA Channel 3 (SPORT0 RX) Interrupt */
703#define IRQ_DMA4 0x00000040 /* DMA Channel 4 (SPORT0 TX) Interrupt */ 694#define IRQ_DMA4 0x00000040 /* DMA Channel 4 (SPORT0 TX) Interrupt */
704#define IRQ_DMA5 0x00000080 /* DMA Channel 5 (SPORT1 RX) Interrupt */ 695#define IRQ_DMA5 0x00000080 /* DMA Channel 5 (SPORT1 RX) Interrupt */
705 696
706#define IRQ_DMA6 0x00000100 /* DMA Channel 6 (SPORT1 TX) Interrupt */ 697#define IRQ_DMA6 0x00000100 /* DMA Channel 6 (SPORT1 TX) Interrupt */
707#define IRQ_TWI 0x00000200 /* TWI Interrupt */ 698#define IRQ_TWI 0x00000200 /* TWI Interrupt */
708#define IRQ_DMA7 0x00000400 /* DMA Channel 7 (SPI) Interrupt */ 699#define IRQ_DMA7 0x00000400 /* DMA Channel 7 (SPI) Interrupt */
709#define IRQ_DMA8 0x00000800 /* DMA Channel 8 (UART0 RX) Interrupt */ 700#define IRQ_DMA8 0x00000800 /* DMA Channel 8 (UART0 RX) Interrupt */
710#define IRQ_DMA9 0x00001000 /* DMA Channel 9 (UART0 TX) Interrupt */ 701#define IRQ_DMA9 0x00001000 /* DMA Channel 9 (UART0 TX) Interrupt */
711#define IRQ_DMA10 0x00002000 /* DMA Channel 10 (UART1 RX) Interrupt */ 702#define IRQ_DMA10 0x00002000 /* DMA Channel 10 (UART1 RX) Interrupt */
712#define IRQ_DMA11 0x00004000 /* DMA Channel 11 (UART1 TX) Interrupt */ 703#define IRQ_DMA11 0x00004000 /* DMA Channel 11 (UART1 TX) Interrupt */
@@ -801,7 +792,7 @@
801#define WDEV_NONE 0x0006 /* no event on roll over */ 792#define WDEV_NONE 0x0006 /* no event on roll over */
802#define WDEN 0x0FF0 /* enable watchdog */ 793#define WDEN 0x0FF0 /* enable watchdog */
803#define WDDIS 0x0AD0 /* disable watchdog */ 794#define WDDIS 0x0AD0 /* disable watchdog */
804#define WDRO 0x8000 /* watchdog rolled over latch */ 795#define WDRO 0x8000 /* watchdog rolled over latch */
805 796
806/* depreciated WDOG_CTL Register Masks for legacy code */ 797/* depreciated WDOG_CTL Register Masks for legacy code */
807 798
@@ -882,7 +873,7 @@
882#define NINT 0x01 /* Pending Interrupt */ 873#define NINT 0x01 /* Pending Interrupt */
883#define IIR_TX_READY 0x02 /* UART_THR empty */ 874#define IIR_TX_READY 0x02 /* UART_THR empty */
884#define IIR_RX_READY 0x04 /* Receive data ready */ 875#define IIR_RX_READY 0x04 /* Receive data ready */
885#define IIR_LINE_CHANGE 0x06 /* Receive line status */ 876#define IIR_LINE_CHANGE 0x06 /* Receive line status */
886#define IIR_STATUS 0x06 /* Highest Priority Pending Interrupt */ 877#define IIR_STATUS 0x06 /* Highest Priority Pending Interrupt */
887 878
888/* UARTx_GCTL Masks */ 879/* UARTx_GCTL Masks */
@@ -1638,12 +1629,12 @@
1638 1629
1639/* entry addresses of the user-callable Boot ROM functions */ 1630/* entry addresses of the user-callable Boot ROM functions */
1640 1631
1641#define _BOOTROM_RESET 0xEF000000 1632#define _BOOTROM_RESET 0xEF000000
1642#define _BOOTROM_FINAL_INIT 0xEF000002 1633#define _BOOTROM_FINAL_INIT 0xEF000002
1643#define _BOOTROM_DO_MEMORY_DMA 0xEF000006 1634#define _BOOTROM_DO_MEMORY_DMA 0xEF000006
1644#define _BOOTROM_BOOT_DXE_FLASH 0xEF000008 1635#define _BOOTROM_BOOT_DXE_FLASH 0xEF000008
1645#define _BOOTROM_BOOT_DXE_SPI 0xEF00000A 1636#define _BOOTROM_BOOT_DXE_SPI 0xEF00000A
1646#define _BOOTROM_BOOT_DXE_TWI 0xEF00000C 1637#define _BOOTROM_BOOT_DXE_TWI 0xEF00000C
1647#define _BOOTROM_GET_DXE_ADDRESS_FLASH 0xEF000010 1638#define _BOOTROM_GET_DXE_ADDRESS_FLASH 0xEF000010
1648#define _BOOTROM_GET_DXE_ADDRESS_SPI 0xEF000012 1639#define _BOOTROM_GET_DXE_ADDRESS_SPI 0xEF000012
1649#define _BOOTROM_GET_DXE_ADDRESS_TWI 0xEF000014 1640#define _BOOTROM_GET_DXE_ADDRESS_TWI 0xEF000014
@@ -1771,71 +1762,71 @@
1771/* Bit masks for CNT_CONFIG */ 1762/* Bit masks for CNT_CONFIG */
1772 1763
1773#define CNTE 0x1 /* Counter Enable */ 1764#define CNTE 0x1 /* Counter Enable */
1774#define nCNTE 0x0 1765#define nCNTE 0x0
1775#define DEBE 0x2 /* Debounce Enable */ 1766#define DEBE 0x2 /* Debounce Enable */
1776#define nDEBE 0x0 1767#define nDEBE 0x0
1777#define CDGINV 0x10 /* CDG Pin Polarity Invert */ 1768#define CDGINV 0x10 /* CDG Pin Polarity Invert */
1778#define nCDGINV 0x0 1769#define nCDGINV 0x0
1779#define CUDINV 0x20 /* CUD Pin Polarity Invert */ 1770#define CUDINV 0x20 /* CUD Pin Polarity Invert */
1780#define nCUDINV 0x0 1771#define nCUDINV 0x0
1781#define CZMINV 0x40 /* CZM Pin Polarity Invert */ 1772#define CZMINV 0x40 /* CZM Pin Polarity Invert */
1782#define nCZMINV 0x0 1773#define nCZMINV 0x0
1783#define CNTMODE 0x700 /* Counter Operating Mode */ 1774#define CNTMODE 0x700 /* Counter Operating Mode */
1784#define ZMZC 0x800 /* CZM Zeroes Counter Enable */ 1775#define ZMZC 0x800 /* CZM Zeroes Counter Enable */
1785#define nZMZC 0x0 1776#define nZMZC 0x0
1786#define BNDMODE 0x3000 /* Boundary register Mode */ 1777#define BNDMODE 0x3000 /* Boundary register Mode */
1787#define INPDIS 0x8000 /* CUG and CDG Input Disable */ 1778#define INPDIS 0x8000 /* CUG and CDG Input Disable */
1788#define nINPDIS 0x0 1779#define nINPDIS 0x0
1789 1780
1790/* Bit masks for CNT_IMASK */ 1781/* Bit masks for CNT_IMASK */
1791 1782
1792#define ICIE 0x1 /* Illegal Gray/Binary Code Interrupt Enable */ 1783#define ICIE 0x1 /* Illegal Gray/Binary Code Interrupt Enable */
1793#define nICIE 0x0 1784#define nICIE 0x0
1794#define UCIE 0x2 /* Up count Interrupt Enable */ 1785#define UCIE 0x2 /* Up count Interrupt Enable */
1795#define nUCIE 0x0 1786#define nUCIE 0x0
1796#define DCIE 0x4 /* Down count Interrupt Enable */ 1787#define DCIE 0x4 /* Down count Interrupt Enable */
1797#define nDCIE 0x0 1788#define nDCIE 0x0
1798#define MINCIE 0x8 /* Min Count Interrupt Enable */ 1789#define MINCIE 0x8 /* Min Count Interrupt Enable */
1799#define nMINCIE 0x0 1790#define nMINCIE 0x0
1800#define MAXCIE 0x10 /* Max Count Interrupt Enable */ 1791#define MAXCIE 0x10 /* Max Count Interrupt Enable */
1801#define nMAXCIE 0x0 1792#define nMAXCIE 0x0
1802#define COV31IE 0x20 /* Bit 31 Overflow Interrupt Enable */ 1793#define COV31IE 0x20 /* Bit 31 Overflow Interrupt Enable */
1803#define nCOV31IE 0x0 1794#define nCOV31IE 0x0
1804#define COV15IE 0x40 /* Bit 15 Overflow Interrupt Enable */ 1795#define COV15IE 0x40 /* Bit 15 Overflow Interrupt Enable */
1805#define nCOV15IE 0x0 1796#define nCOV15IE 0x0
1806#define CZEROIE 0x80 /* Count to Zero Interrupt Enable */ 1797#define CZEROIE 0x80 /* Count to Zero Interrupt Enable */
1807#define nCZEROIE 0x0 1798#define nCZEROIE 0x0
1808#define CZMIE 0x100 /* CZM Pin Interrupt Enable */ 1799#define CZMIE 0x100 /* CZM Pin Interrupt Enable */
1809#define nCZMIE 0x0 1800#define nCZMIE 0x0
1810#define CZMEIE 0x200 /* CZM Error Interrupt Enable */ 1801#define CZMEIE 0x200 /* CZM Error Interrupt Enable */
1811#define nCZMEIE 0x0 1802#define nCZMEIE 0x0
1812#define CZMZIE 0x400 /* CZM Zeroes Counter Interrupt Enable */ 1803#define CZMZIE 0x400 /* CZM Zeroes Counter Interrupt Enable */
1813#define nCZMZIE 0x0 1804#define nCZMZIE 0x0
1814 1805
1815/* Bit masks for CNT_STATUS */ 1806/* Bit masks for CNT_STATUS */
1816 1807
1817#define ICII 0x1 /* Illegal Gray/Binary Code Interrupt Identifier */ 1808#define ICII 0x1 /* Illegal Gray/Binary Code Interrupt Identifier */
1818#define nICII 0x0 1809#define nICII 0x0
1819#define UCII 0x2 /* Up count Interrupt Identifier */ 1810#define UCII 0x2 /* Up count Interrupt Identifier */
1820#define nUCII 0x0 1811#define nUCII 0x0
1821#define DCII 0x4 /* Down count Interrupt Identifier */ 1812#define DCII 0x4 /* Down count Interrupt Identifier */
1822#define nDCII 0x0 1813#define nDCII 0x0
1823#define MINCII 0x8 /* Min Count Interrupt Identifier */ 1814#define MINCII 0x8 /* Min Count Interrupt Identifier */
1824#define nMINCII 0x0 1815#define nMINCII 0x0
1825#define MAXCII 0x10 /* Max Count Interrupt Identifier */ 1816#define MAXCII 0x10 /* Max Count Interrupt Identifier */
1826#define nMAXCII 0x0 1817#define nMAXCII 0x0
1827#define COV31II 0x20 /* Bit 31 Overflow Interrupt Identifier */ 1818#define COV31II 0x20 /* Bit 31 Overflow Interrupt Identifier */
1828#define nCOV31II 0x0 1819#define nCOV31II 0x0
1829#define COV15II 0x40 /* Bit 15 Overflow Interrupt Identifier */ 1820#define COV15II 0x40 /* Bit 15 Overflow Interrupt Identifier */
1830#define nCOV15II 0x0 1821#define nCOV15II 0x0
1831#define CZEROII 0x80 /* Count to Zero Interrupt Identifier */ 1822#define CZEROII 0x80 /* Count to Zero Interrupt Identifier */
1832#define nCZEROII 0x0 1823#define nCZEROII 0x0
1833#define CZMII 0x100 /* CZM Pin Interrupt Identifier */ 1824#define CZMII 0x100 /* CZM Pin Interrupt Identifier */
1834#define nCZMII 0x0 1825#define nCZMII 0x0
1835#define CZMEII 0x200 /* CZM Error Interrupt Identifier */ 1826#define CZMEII 0x200 /* CZM Error Interrupt Identifier */
1836#define nCZMEII 0x0 1827#define nCZMEII 0x0
1837#define CZMZII 0x400 /* CZM Zeroes Counter Interrupt Identifier */ 1828#define CZMZII 0x400 /* CZM Zeroes Counter Interrupt Identifier */
1838#define nCZMZII 0x0 1829#define nCZMZII 0x0
1839 1830
1840/* Bit masks for CNT_COMMAND */ 1831/* Bit masks for CNT_COMMAND */
1841 1832
@@ -1843,7 +1834,7 @@
1843#define W1LMIN 0xf0 /* Load Min Register */ 1834#define W1LMIN 0xf0 /* Load Min Register */
1844#define W1LMAX 0xf00 /* Load Max Register */ 1835#define W1LMAX 0xf00 /* Load Max Register */
1845#define W1ZMONCE 0x1000 /* Enable CZM Clear Counter Once */ 1836#define W1ZMONCE 0x1000 /* Enable CZM Clear Counter Once */
1846#define nW1ZMONCE 0x0 1837#define nW1ZMONCE 0x0
1847 1838
1848/* Bit masks for CNT_DEBOUNCE */ 1839/* Bit masks for CNT_DEBOUNCE */
1849 1840
@@ -1853,15 +1844,15 @@
1853 1844
1854#define FUSE_FADDR 0x1ff /* OTP/Fuse Address */ 1845#define FUSE_FADDR 0x1ff /* OTP/Fuse Address */
1855#define FIEN 0x800 /* OTP/Fuse Interrupt Enable */ 1846#define FIEN 0x800 /* OTP/Fuse Interrupt Enable */
1856#define nFIEN 0x0 1847#define nFIEN 0x0
1857#define FTESTDEC 0x1000 /* OTP/Fuse Test Decoder */ 1848#define FTESTDEC 0x1000 /* OTP/Fuse Test Decoder */
1858#define nFTESTDEC 0x0 1849#define nFTESTDEC 0x0
1859#define FWRTEST 0x2000 /* OTP/Fuse Write Test */ 1850#define FWRTEST 0x2000 /* OTP/Fuse Write Test */
1860#define nFWRTEST 0x0 1851#define nFWRTEST 0x0
1861#define FRDEN 0x4000 /* OTP/Fuse Read Enable */ 1852#define FRDEN 0x4000 /* OTP/Fuse Read Enable */
1862#define nFRDEN 0x0 1853#define nFRDEN 0x0
1863#define FWREN 0x8000 /* OTP/Fuse Write Enable */ 1854#define FWREN 0x8000 /* OTP/Fuse Write Enable */
1864#define nFWREN 0x0 1855#define nFWREN 0x0
1865 1856
1866/* Bit masks for OTP_BEN */ 1857/* Bit masks for OTP_BEN */
1867 1858
@@ -1870,15 +1861,15 @@
1870/* Bit masks for OTP_STATUS */ 1861/* Bit masks for OTP_STATUS */
1871 1862
1872#define FCOMP 0x1 /* OTP/Fuse Access Complete */ 1863#define FCOMP 0x1 /* OTP/Fuse Access Complete */
1873#define nFCOMP 0x0 1864#define nFCOMP 0x0
1874#define FERROR 0x2 /* OTP/Fuse Access Error */ 1865#define FERROR 0x2 /* OTP/Fuse Access Error */
1875#define nFERROR 0x0 1866#define nFERROR 0x0
1876#define MMRGLOAD 0x10 /* Memory Mapped Register Gasket Load */ 1867#define MMRGLOAD 0x10 /* Memory Mapped Register Gasket Load */
1877#define nMMRGLOAD 0x0 1868#define nMMRGLOAD 0x0
1878#define MMRGLOCK 0x20 /* Memory Mapped Register Gasket Lock */ 1869#define MMRGLOCK 0x20 /* Memory Mapped Register Gasket Lock */
1879#define nMMRGLOCK 0x0 1870#define nMMRGLOCK 0x0
1880#define FPGMEN 0x40 /* OTP/Fuse Program Enable */ 1871#define FPGMEN 0x40 /* OTP/Fuse Program Enable */
1881#define nFPGMEN 0x0 1872#define nFPGMEN 0x0
1882 1873
1883/* Bit masks for OTP_TIMING */ 1874/* Bit masks for OTP_TIMING */
1884 1875
@@ -1892,42 +1883,42 @@
1892/* Bit masks for SECURE_SYSSWT */ 1883/* Bit masks for SECURE_SYSSWT */
1893 1884
1894#define EMUDABL 0x1 /* Emulation Disable. */ 1885#define EMUDABL 0x1 /* Emulation Disable. */
1895#define nEMUDABL 0x0 1886#define nEMUDABL 0x0
1896#define RSTDABL 0x2 /* Reset Disable */ 1887#define RSTDABL 0x2 /* Reset Disable */
1897#define nRSTDABL 0x0 1888#define nRSTDABL 0x0
1898#define L1IDABL 0x1c /* L1 Instruction Memory Disable. */ 1889#define L1IDABL 0x1c /* L1 Instruction Memory Disable. */
1899#define L1DADABL 0xe0 /* L1 Data Bank A Memory Disable. */ 1890#define L1DADABL 0xe0 /* L1 Data Bank A Memory Disable. */
1900#define L1DBDABL 0x700 /* L1 Data Bank B Memory Disable. */ 1891#define L1DBDABL 0x700 /* L1 Data Bank B Memory Disable. */
1901#define DMA0OVR 0x800 /* DMA0 Memory Access Override */ 1892#define DMA0OVR 0x800 /* DMA0 Memory Access Override */
1902#define nDMA0OVR 0x0 1893#define nDMA0OVR 0x0
1903#define DMA1OVR 0x1000 /* DMA1 Memory Access Override */ 1894#define DMA1OVR 0x1000 /* DMA1 Memory Access Override */
1904#define nDMA1OVR 0x0 1895#define nDMA1OVR 0x0
1905#define EMUOVR 0x4000 /* Emulation Override */ 1896#define EMUOVR 0x4000 /* Emulation Override */
1906#define nEMUOVR 0x0 1897#define nEMUOVR 0x0
1907#define OTPSEN 0x8000 /* OTP Secrets Enable. */ 1898#define OTPSEN 0x8000 /* OTP Secrets Enable. */
1908#define nOTPSEN 0x0 1899#define nOTPSEN 0x0
1909#define L2DABL 0x70000 /* L2 Memory Disable. */ 1900#define L2DABL 0x70000 /* L2 Memory Disable. */
1910 1901
1911/* Bit masks for SECURE_CONTROL */ 1902/* Bit masks for SECURE_CONTROL */
1912 1903
1913#define SECURE0 0x1 /* SECURE 0 */ 1904#define SECURE0 0x1 /* SECURE 0 */
1914#define nSECURE0 0x0 1905#define nSECURE0 0x0
1915#define SECURE1 0x2 /* SECURE 1 */ 1906#define SECURE1 0x2 /* SECURE 1 */
1916#define nSECURE1 0x0 1907#define nSECURE1 0x0
1917#define SECURE2 0x4 /* SECURE 2 */ 1908#define SECURE2 0x4 /* SECURE 2 */
1918#define nSECURE2 0x0 1909#define nSECURE2 0x0
1919#define SECURE3 0x8 /* SECURE 3 */ 1910#define SECURE3 0x8 /* SECURE 3 */
1920#define nSECURE3 0x0 1911#define nSECURE3 0x0
1921 1912
1922/* Bit masks for SECURE_STATUS */ 1913/* Bit masks for SECURE_STATUS */
1923 1914
1924#define SECMODE 0x3 /* Secured Mode Control State */ 1915#define SECMODE 0x3 /* Secured Mode Control State */
1925#define NMI 0x4 /* Non Maskable Interrupt */ 1916#define NMI 0x4 /* Non Maskable Interrupt */
1926#define nNMI 0x0 1917#define nNMI 0x0
1927#define AFVALID 0x8 /* Authentication Firmware Valid */ 1918#define AFVALID 0x8 /* Authentication Firmware Valid */
1928#define nAFVALID 0x0 1919#define nAFVALID 0x0
1929#define AFEXIT 0x10 /* Authentication Firmware Exit */ 1920#define AFEXIT 0x10 /* Authentication Firmware Exit */
1930#define nAFEXIT 0x0 1921#define nAFEXIT 0x0
1931#define SECSTAT 0xe0 /* Secure Status */ 1922#define SECSTAT 0xe0 /* Secure Status */
1932 1923
1933/* Bit masks for NFC_CTL */ 1924/* Bit masks for NFC_CTL */
@@ -1935,60 +1926,60 @@
1935#define WR_DLY 0xf /* Write Strobe Delay */ 1926#define WR_DLY 0xf /* Write Strobe Delay */
1936#define RD_DLY 0xf0 /* Read Strobe Delay */ 1927#define RD_DLY 0xf0 /* Read Strobe Delay */
1937#define NWIDTH 0x100 /* NAND Data Width */ 1928#define NWIDTH 0x100 /* NAND Data Width */
1938#define nNWIDTH 0x0 1929#define nNWIDTH 0x0
1939#define PG_SIZE 0x200 /* Page Size */ 1930#define PG_SIZE 0x200 /* Page Size */
1940#define nPG_SIZE 0x0 1931#define nPG_SIZE 0x0
1941 1932
1942/* Bit masks for NFC_STAT */ 1933/* Bit masks for NFC_STAT */
1943 1934
1944#define NBUSY 0x1 /* Not Busy */ 1935#define NBUSY 0x1 /* Not Busy */
1945#define nNBUSY 0x0 1936#define nNBUSY 0x0
1946#define WB_FULL 0x2 /* Write Buffer Full */ 1937#define WB_FULL 0x2 /* Write Buffer Full */
1947#define nWB_FULL 0x0 1938#define nWB_FULL 0x0
1948#define PG_WR_STAT 0x4 /* Page Write Pending */ 1939#define PG_WR_STAT 0x4 /* Page Write Pending */
1949#define nPG_WR_STAT 0x0 1940#define nPG_WR_STAT 0x0
1950#define PG_RD_STAT 0x8 /* Page Read Pending */ 1941#define PG_RD_STAT 0x8 /* Page Read Pending */
1951#define nPG_RD_STAT 0x0 1942#define nPG_RD_STAT 0x0
1952#define WB_EMPTY 0x10 /* Write Buffer Empty */ 1943#define WB_EMPTY 0x10 /* Write Buffer Empty */
1953#define nWB_EMPTY 0x0 1944#define nWB_EMPTY 0x0
1954 1945
1955/* Bit masks for NFC_IRQSTAT */ 1946/* Bit masks for NFC_IRQSTAT */
1956 1947
1957#define NBUSYIRQ 0x1 /* Not Busy IRQ */ 1948#define NBUSYIRQ 0x1 /* Not Busy IRQ */
1958#define nNBUSYIRQ 0x0 1949#define nNBUSYIRQ 0x0
1959#define WB_OVF 0x2 /* Write Buffer Overflow */ 1950#define WB_OVF 0x2 /* Write Buffer Overflow */
1960#define nWB_OVF 0x0 1951#define nWB_OVF 0x0
1961#define WB_EDGE 0x4 /* Write Buffer Edge Detect */ 1952#define WB_EDGE 0x4 /* Write Buffer Edge Detect */
1962#define nWB_EDGE 0x0 1953#define nWB_EDGE 0x0
1963#define RD_RDY 0x8 /* Read Data Ready */ 1954#define RD_RDY 0x8 /* Read Data Ready */
1964#define nRD_RDY 0x0 1955#define nRD_RDY 0x0
1965#define WR_DONE 0x10 /* Page Write Done */ 1956#define WR_DONE 0x10 /* Page Write Done */
1966#define nWR_DONE 0x0 1957#define nWR_DONE 0x0
1967 1958
1968/* Bit masks for NFC_IRQMASK */ 1959/* Bit masks for NFC_IRQMASK */
1969 1960
1970#define MASK_BUSYIRQ 0x1 /* Mask Not Busy IRQ */ 1961#define MASK_BUSYIRQ 0x1 /* Mask Not Busy IRQ */
1971#define nMASK_BUSYIRQ 0x0 1962#define nMASK_BUSYIRQ 0x0
1972#define MASK_WBOVF 0x2 /* Mask Write Buffer Overflow */ 1963#define MASK_WBOVF 0x2 /* Mask Write Buffer Overflow */
1973#define nMASK_WBOVF 0x0 1964#define nMASK_WBOVF 0x0
1974#define MASK_WBEMPTY 0x4 /* Mask Write Buffer Empty */ 1965#define MASK_WBEMPTY 0x4 /* Mask Write Buffer Empty */
1975#define nMASK_WBEMPTY 0x0 1966#define nMASK_WBEMPTY 0x0
1976#define MASK_RDRDY 0x8 /* Mask Read Data Ready */ 1967#define MASK_RDRDY 0x8 /* Mask Read Data Ready */
1977#define nMASK_RDRDY 0x0 1968#define nMASK_RDRDY 0x0
1978#define MASK_WRDONE 0x10 /* Mask Write Done */ 1969#define MASK_WRDONE 0x10 /* Mask Write Done */
1979#define nMASK_WRDONE 0x0 1970#define nMASK_WRDONE 0x0
1980 1971
1981/* Bit masks for NFC_RST */ 1972/* Bit masks for NFC_RST */
1982 1973
1983#define ECC_RST 0x1 /* ECC (and NFC counters) Reset */ 1974#define ECC_RST 0x1 /* ECC (and NFC counters) Reset */
1984#define nECC_RST 0x0 1975#define nECC_RST 0x0
1985 1976
1986/* Bit masks for NFC_PGCTL */ 1977/* Bit masks for NFC_PGCTL */
1987 1978
1988#define PG_RD_START 0x1 /* Page Read Start */ 1979#define PG_RD_START 0x1 /* Page Read Start */
1989#define nPG_RD_START 0x0 1980#define nPG_RD_START 0x0
1990#define PG_WR_START 0x2 /* Page Write Start */ 1981#define PG_WR_START 0x2 /* Page Write Start */
1991#define nPG_WR_START 0x0 1982#define nPG_WR_START 0x0
1992 1983
1993/* Bit masks for NFC_ECC0 */ 1984/* Bit masks for NFC_ECC0 */
1994 1985
diff --git a/include/asm-blackfin/mach-bf527/dma.h b/arch/blackfin/mach-bf527/include/mach/dma.h
index 49dd693223e..49dd693223e 100644
--- a/include/asm-blackfin/mach-bf527/dma.h
+++ b/arch/blackfin/mach-bf527/include/mach/dma.h
diff --git a/include/asm-blackfin/mach-bf527/irq.h b/arch/blackfin/mach-bf527/include/mach/irq.h
index 4e2b3f2020e..4e2b3f2020e 100644
--- a/include/asm-blackfin/mach-bf527/irq.h
+++ b/arch/blackfin/mach-bf527/include/mach/irq.h
diff --git a/include/asm-blackfin/mach-bf527/mem_init.h b/arch/blackfin/mach-bf527/include/mach/mem_init.h
index cbe03f4a569..cbe03f4a569 100644
--- a/include/asm-blackfin/mach-bf527/mem_init.h
+++ b/arch/blackfin/mach-bf527/include/mach/mem_init.h
diff --git a/include/asm-blackfin/mach-bf527/mem_map.h b/arch/blackfin/mach-bf527/include/mach/mem_map.h
index ef46dc991cd..ef46dc991cd 100644
--- a/include/asm-blackfin/mach-bf527/mem_map.h
+++ b/arch/blackfin/mach-bf527/include/mach/mem_map.h
diff --git a/include/asm-blackfin/mach-bf527/portmux.h b/arch/blackfin/mach-bf527/include/mach/portmux.h
index ae4d205bfcf..ae4d205bfcf 100644
--- a/include/asm-blackfin/mach-bf527/portmux.h
+++ b/arch/blackfin/mach-bf527/include/mach/portmux.h
diff --git a/arch/blackfin/mach-bf533/head.S b/arch/blackfin/mach-bf533/head.S
index d59db86195b..01b2b7ead5a 100644
--- a/arch/blackfin/mach-bf533/head.S
+++ b/arch/blackfin/mach-bf533/head.S
@@ -31,8 +31,8 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#ifdef CONFIG_BFIN_KERNEL_CLOCK 33#ifdef CONFIG_BFIN_KERNEL_CLOCK
34#include <asm/mach-common/clocks.h> 34#include <asm/clocks.h>
35#include <asm/mach/mem_init.h> 35#include <mach/mem_init.h>
36#endif 36#endif
37 37
38.section .l1.text 38.section .l1.text
diff --git a/include/asm-blackfin/mach-bf533/anomaly.h b/arch/blackfin/mach-bf533/include/mach/anomaly.h
index 8f7ea112fd3..8f7ea112fd3 100644
--- a/include/asm-blackfin/mach-bf533/anomaly.h
+++ b/arch/blackfin/mach-bf533/include/mach/anomaly.h
diff --git a/include/asm-blackfin/mach-bf533/bf533.h b/arch/blackfin/mach-bf533/include/mach/bf533.h
index 12a41693199..12a41693199 100644
--- a/include/asm-blackfin/mach-bf533/bf533.h
+++ b/arch/blackfin/mach-bf533/include/mach/bf533.h
diff --git a/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h b/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h
index ebf592b59aa..ebf592b59aa 100644
--- a/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h
diff --git a/include/asm-blackfin/mach-bf533/bfin_sir.h b/arch/blackfin/mach-bf533/include/mach/bfin_sir.h
index 9bb87e9e2e9..9bb87e9e2e9 100644
--- a/include/asm-blackfin/mach-bf533/bfin_sir.h
+++ b/arch/blackfin/mach-bf533/include/mach/bfin_sir.h
diff --git a/include/asm-blackfin/mach-bf533/blackfin.h b/arch/blackfin/mach-bf533/include/mach/blackfin.h
index d80971b4e3a..d80971b4e3a 100644
--- a/include/asm-blackfin/mach-bf533/blackfin.h
+++ b/arch/blackfin/mach-bf533/include/mach/blackfin.h
diff --git a/include/asm-blackfin/mach-bf533/cdefBF532.h b/arch/blackfin/mach-bf533/include/mach/cdefBF532.h
index 154655452d4..3d8978a52c1 100644
--- a/include/asm-blackfin/mach-bf533/cdefBF532.h
+++ b/arch/blackfin/mach-bf533/include/mach/cdefBF532.h
@@ -37,7 +37,7 @@
37#include "defBF532.h" 37#include "defBF532.h"
38 38
39/*include core specific register pointer definitions*/ 39/*include core specific register pointer definitions*/
40#include <asm/mach-common/cdef_LPBlackfin.h> 40#include <asm/cdef_LPBlackfin.h>
41 41
42#include <asm/system.h> 42#include <asm/system.h>
43 43
diff --git a/include/asm-blackfin/mach-bf533/defBF532.h b/arch/blackfin/mach-bf533/include/mach/defBF532.h
index 0ab4dd7494c..7f4633223e6 100644
--- a/include/asm-blackfin/mach-bf533/defBF532.h
+++ b/arch/blackfin/mach-bf533/include/mach/defBF532.h
@@ -48,7 +48,7 @@
48#define _DEF_BF532_H 48#define _DEF_BF532_H
49 49
50/* include all Core registers and bit definitions */ 50/* include all Core registers and bit definitions */
51#include <asm/mach-common/def_LPBlackfin.h> 51#include <asm/def_LPBlackfin.h>
52 52
53/*********************************************************************************** */ 53/*********************************************************************************** */
54/* System MMR Register Map */ 54/* System MMR Register Map */
diff --git a/include/asm-blackfin/mach-bf533/dma.h b/arch/blackfin/mach-bf533/include/mach/dma.h
index bd9d5e94307..bd9d5e94307 100644
--- a/include/asm-blackfin/mach-bf533/dma.h
+++ b/arch/blackfin/mach-bf533/include/mach/dma.h
diff --git a/include/asm-blackfin/mach-bf533/irq.h b/arch/blackfin/mach-bf533/include/mach/irq.h
index 5aa38e5da6b..5aa38e5da6b 100644
--- a/include/asm-blackfin/mach-bf533/irq.h
+++ b/arch/blackfin/mach-bf533/include/mach/irq.h
diff --git a/include/asm-blackfin/mach-bf533/mem_init.h b/arch/blackfin/mach-bf533/include/mach/mem_init.h
index ed2034bf10e..ed2034bf10e 100644
--- a/include/asm-blackfin/mach-bf533/mem_init.h
+++ b/arch/blackfin/mach-bf533/include/mach/mem_init.h
diff --git a/include/asm-blackfin/mach-bf533/mem_map.h b/arch/blackfin/mach-bf533/include/mach/mem_map.h
index 581fc6eea78..581fc6eea78 100644
--- a/include/asm-blackfin/mach-bf533/mem_map.h
+++ b/arch/blackfin/mach-bf533/include/mach/mem_map.h
diff --git a/include/asm-blackfin/mach-bf533/portmux.h b/arch/blackfin/mach-bf533/include/mach/portmux.h
index 685a2651dcd..685a2651dcd 100644
--- a/include/asm-blackfin/mach-bf533/portmux.h
+++ b/arch/blackfin/mach-bf533/include/mach/portmux.h
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index e93964fdb43..8482d22321f 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -584,6 +584,30 @@ static struct bfin5xx_spi_chip spidev_chip_info = {
584 584
585#if defined(CONFIG_MTD_DATAFLASH) \ 585#if defined(CONFIG_MTD_DATAFLASH) \
586 || defined(CONFIG_MTD_DATAFLASH_MODULE) 586 || defined(CONFIG_MTD_DATAFLASH_MODULE)
587
588static struct mtd_partition bfin_spi_dataflash_partitions[] = {
589 {
590 .name = "bootloader(spi)",
591 .size = 0x00040000,
592 .offset = 0,
593 .mask_flags = MTD_CAP_ROM
594 }, {
595 .name = "linux kernel(spi)",
596 .size = 0xe0000,
597 .offset = MTDPART_OFS_APPEND,
598 }, {
599 .name = "file system(spi)",
600 .size = MTDPART_SIZ_FULL,
601 .offset = MTDPART_OFS_APPEND,
602 }
603};
604
605static struct flash_platform_data bfin_spi_dataflash_data = {
606 .name = "SPI Dataflash",
607 .parts = bfin_spi_dataflash_partitions,
608 .nr_parts = ARRAY_SIZE(bfin_spi_dataflash_partitions),
609};
610
587/* DataFlash chip */ 611/* DataFlash chip */
588static struct bfin5xx_spi_chip data_flash_chip_info = { 612static struct bfin5xx_spi_chip data_flash_chip_info = {
589 .enable_dma = 0, /* use dma transfer with this chip*/ 613 .enable_dma = 0, /* use dma transfer with this chip*/
@@ -609,9 +633,10 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
609 || defined(CONFIG_MTD_DATAFLASH_MODULE) 633 || defined(CONFIG_MTD_DATAFLASH_MODULE)
610 { /* DataFlash chip */ 634 { /* DataFlash chip */
611 .modalias = "mtd_dataflash", 635 .modalias = "mtd_dataflash",
612 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 636 .max_speed_hz = 33250000, /* max spi clock (SCK) speed in HZ */
613 .bus_num = 0, /* Framework bus number */ 637 .bus_num = 0, /* Framework bus number */
614 .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/ 638 .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/
639 .platform_data = &bfin_spi_dataflash_data,
615 .controller_data = &data_flash_chip_info, 640 .controller_data = &data_flash_chip_info,
616 .mode = SPI_MODE_3, 641 .mode = SPI_MODE_3,
617 }, 642 },
diff --git a/arch/blackfin/mach-bf537/head.S b/arch/blackfin/mach-bf537/head.S
index 64e0287ab26..12eb5cc571d 100644
--- a/arch/blackfin/mach-bf537/head.S
+++ b/arch/blackfin/mach-bf537/head.S
@@ -31,8 +31,8 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#ifdef CONFIG_BFIN_KERNEL_CLOCK 33#ifdef CONFIG_BFIN_KERNEL_CLOCK
34#include <asm/mach-common/clocks.h> 34#include <asm/clocks.h>
35#include <asm/mach/mem_init.h> 35#include <mach/mem_init.h>
36#endif 36#endif
37 37
38.section .l1.text 38.section .l1.text
diff --git a/include/asm-blackfin/mach-bf537/anomaly.h b/arch/blackfin/mach-bf537/include/mach/anomaly.h
index 8460ab9c324..8460ab9c324 100644
--- a/include/asm-blackfin/mach-bf537/anomaly.h
+++ b/arch/blackfin/mach-bf537/include/mach/anomaly.h
diff --git a/include/asm-blackfin/mach-bf537/bf537.h b/arch/blackfin/mach-bf537/include/mach/bf537.h
index cfe2a221112..cfe2a221112 100644
--- a/include/asm-blackfin/mach-bf537/bf537.h
+++ b/arch/blackfin/mach-bf537/include/mach/bf537.h
diff --git a/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h b/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h
index 1bf56ffa22f..1bf56ffa22f 100644
--- a/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h
diff --git a/include/asm-blackfin/mach-bf537/bfin_sir.h b/arch/blackfin/mach-bf537/include/mach/bfin_sir.h
index cfd8ad4f1f2..cfd8ad4f1f2 100644
--- a/include/asm-blackfin/mach-bf537/bfin_sir.h
+++ b/arch/blackfin/mach-bf537/include/mach/bfin_sir.h
diff --git a/include/asm-blackfin/mach-bf537/blackfin.h b/arch/blackfin/mach-bf537/include/mach/blackfin.h
index cffc786b2a2..cffc786b2a2 100644
--- a/include/asm-blackfin/mach-bf537/blackfin.h
+++ b/arch/blackfin/mach-bf537/include/mach/blackfin.h
diff --git a/include/asm-blackfin/mach-bf537/cdefBF534.h b/arch/blackfin/mach-bf537/include/mach/cdefBF534.h
index 82de526f809..88d491cd9f3 100644
--- a/include/asm-blackfin/mach-bf537/cdefBF534.h
+++ b/arch/blackfin/mach-bf537/include/mach/cdefBF534.h
@@ -38,7 +38,7 @@
38#include "defBF534.h" 38#include "defBF534.h"
39 39
40/* Include core specific register pointer definitions */ 40/* Include core specific register pointer definitions */
41#include <asm/mach-common/cdef_LPBlackfin.h> 41#include <asm/cdef_LPBlackfin.h>
42 42
43#include <asm/system.h> 43#include <asm/system.h>
44 44
diff --git a/include/asm-blackfin/mach-bf537/cdefBF537.h b/arch/blackfin/mach-bf537/include/mach/cdefBF537.h
index b8fc949a991..b8fc949a991 100644
--- a/include/asm-blackfin/mach-bf537/cdefBF537.h
+++ b/arch/blackfin/mach-bf537/include/mach/cdefBF537.h
diff --git a/include/asm-blackfin/mach-bf537/defBF534.h b/arch/blackfin/mach-bf537/include/mach/defBF534.h
index d0d80d3152b..a3227f9003f 100644
--- a/include/asm-blackfin/mach-bf537/defBF534.h
+++ b/arch/blackfin/mach-bf537/include/mach/defBF534.h
@@ -32,7 +32,7 @@
32#define _DEF_BF534_H 32#define _DEF_BF534_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/************************************************************************************ 37/************************************************************************************
38** System MMR Register Map 38** System MMR Register Map
diff --git a/include/asm-blackfin/mach-bf537/defBF537.h b/arch/blackfin/mach-bf537/include/mach/defBF537.h
index abde24c6d3b..3d6c83e31b1 100644
--- a/include/asm-blackfin/mach-bf537/defBF537.h
+++ b/arch/blackfin/mach-bf537/include/mach/defBF537.h
@@ -33,7 +33,7 @@
33#define _DEF_BF537_H 33#define _DEF_BF537_H
34 34
35/* Include all Core registers and bit definitions*/ 35/* Include all Core registers and bit definitions*/
36#include <asm/mach-common/cdef_LPBlackfin.h> 36#include <asm/cdef_LPBlackfin.h>
37 37
38/* Include all MMR and bit defines common to BF534 */ 38/* Include all MMR and bit defines common to BF534 */
39#include "defBF534.h" 39#include "defBF534.h"
diff --git a/include/asm-blackfin/mach-bf537/dma.h b/arch/blackfin/mach-bf537/include/mach/dma.h
index 7a964040870..7a964040870 100644
--- a/include/asm-blackfin/mach-bf537/dma.h
+++ b/arch/blackfin/mach-bf537/include/mach/dma.h
diff --git a/include/asm-blackfin/mach-bf537/irq.h b/arch/blackfin/mach-bf537/include/mach/irq.h
index 2e68a8a1e73..2e68a8a1e73 100644
--- a/include/asm-blackfin/mach-bf537/irq.h
+++ b/arch/blackfin/mach-bf537/include/mach/irq.h
diff --git a/include/asm-blackfin/mach-bf537/mem_init.h b/arch/blackfin/mach-bf537/include/mach/mem_init.h
index f67698f670c..f67698f670c 100644
--- a/include/asm-blackfin/mach-bf537/mem_init.h
+++ b/arch/blackfin/mach-bf537/include/mach/mem_init.h
diff --git a/include/asm-blackfin/mach-bf537/mem_map.h b/arch/blackfin/mach-bf537/include/mach/mem_map.h
index 5078b669431..5078b669431 100644
--- a/include/asm-blackfin/mach-bf537/mem_map.h
+++ b/arch/blackfin/mach-bf537/include/mach/mem_map.h
diff --git a/include/asm-blackfin/mach-bf537/portmux.h b/arch/blackfin/mach-bf537/include/mach/portmux.h
index 78fee6e0f23..78fee6e0f23 100644
--- a/include/asm-blackfin/mach-bf537/portmux.h
+++ b/arch/blackfin/mach-bf537/include/mach/portmux.h
diff --git a/arch/blackfin/mach-bf548/boards/cm_bf548.c b/arch/blackfin/mach-bf548/boards/cm_bf548.c
index 58abbed0a22..ce934ee174e 100644
--- a/arch/blackfin/mach-bf548/boards/cm_bf548.c
+++ b/arch/blackfin/mach-bf548/boards/cm_bf548.c
@@ -45,7 +45,7 @@
45#include <asm/gpio.h> 45#include <asm/gpio.h>
46#include <asm/nand.h> 46#include <asm/nand.h>
47#include <asm/portmux.h> 47#include <asm/portmux.h>
48#include <asm/mach/bf54x_keys.h> 48#include <mach/bf54x_keys.h>
49#include <asm/dpmc.h> 49#include <asm/dpmc.h>
50#include <linux/input.h> 50#include <linux/input.h>
51#include <linux/spi/ad7877.h> 51#include <linux/spi/ad7877.h>
@@ -61,7 +61,7 @@ const char bfin_board_name[] = "Bluetechnix CM-BF548";
61 61
62#if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE) 62#if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE)
63 63
64#include <asm/mach/bf54x-lq043.h> 64#include <mach/bf54x-lq043.h>
65 65
66static struct bfin_bf54xfb_mach_info bf54x_lq043_data = { 66static struct bfin_bf54xfb_mach_info bf54x_lq043_data = {
67 .width = 480, 67 .width = 480,
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c
index 0d6333ada1d..39357693046 100644
--- a/arch/blackfin/mach-bf548/boards/ezkit.c
+++ b/arch/blackfin/mach-bf548/boards/ezkit.c
@@ -48,7 +48,7 @@
48#include <asm/nand.h> 48#include <asm/nand.h>
49#include <asm/dpmc.h> 49#include <asm/dpmc.h>
50#include <asm/portmux.h> 50#include <asm/portmux.h>
51#include <asm/mach/bf54x_keys.h> 51#include <mach/bf54x_keys.h>
52#include <linux/input.h> 52#include <linux/input.h>
53#include <linux/spi/ad7877.h> 53#include <linux/spi/ad7877.h>
54 54
@@ -106,7 +106,7 @@ arch_initcall(bfin_isp1761_init);
106 106
107#if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE) 107#if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE)
108 108
109#include <asm/mach/bf54x-lq043.h> 109#include <mach/bf54x-lq043.h>
110 110
111static struct bfin_bf54xfb_mach_info bf54x_lq043_data = { 111static struct bfin_bf54xfb_mach_info bf54x_lq043_data = {
112 .width = 480, 112 .width = 480,
diff --git a/arch/blackfin/mach-bf548/head.S b/arch/blackfin/mach-bf548/head.S
index e3000f70a26..4d5cfeacb12 100644
--- a/arch/blackfin/mach-bf548/head.S
+++ b/arch/blackfin/mach-bf548/head.S
@@ -31,8 +31,8 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#ifdef CONFIG_BFIN_KERNEL_CLOCK 33#ifdef CONFIG_BFIN_KERNEL_CLOCK
34#include <asm/mach-common/clocks.h> 34#include <asm/clocks.h>
35#include <asm/mach/mem_init.h> 35#include <mach/mem_init.h>
36#endif 36#endif
37 37
38.section .l1.text 38.section .l1.text
diff --git a/include/asm-blackfin/mach-bf548/anomaly.h b/arch/blackfin/mach-bf548/include/mach/anomaly.h
index 3ad59655881..3ad59655881 100644
--- a/include/asm-blackfin/mach-bf548/anomaly.h
+++ b/arch/blackfin/mach-bf548/include/mach/anomaly.h
diff --git a/include/asm-blackfin/mach-bf548/bf548.h b/arch/blackfin/mach-bf548/include/mach/bf548.h
index e748588e893..e748588e893 100644
--- a/include/asm-blackfin/mach-bf548/bf548.h
+++ b/arch/blackfin/mach-bf548/include/mach/bf548.h
diff --git a/include/asm-blackfin/mach-bf548/bf54x-lq043.h b/arch/blackfin/mach-bf548/include/mach/bf54x-lq043.h
index 9c7ca62a45e..9c7ca62a45e 100644
--- a/include/asm-blackfin/mach-bf548/bf54x-lq043.h
+++ b/arch/blackfin/mach-bf548/include/mach/bf54x-lq043.h
diff --git a/include/asm-blackfin/mach-bf548/bf54x_keys.h b/arch/blackfin/mach-bf548/include/mach/bf54x_keys.h
index 1fb4ec77cc2..1fb4ec77cc2 100644
--- a/include/asm-blackfin/mach-bf548/bf54x_keys.h
+++ b/arch/blackfin/mach-bf548/include/mach/bf54x_keys.h
diff --git a/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h b/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h
index 5e29446a8e0..5e29446a8e0 100644
--- a/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h
diff --git a/include/asm-blackfin/mach-bf548/bfin_sir.h b/arch/blackfin/mach-bf548/include/mach/bfin_sir.h
index c41f9cf0026..c41f9cf0026 100644
--- a/include/asm-blackfin/mach-bf548/bfin_sir.h
+++ b/arch/blackfin/mach-bf548/include/mach/bfin_sir.h
diff --git a/include/asm-blackfin/mach-bf548/blackfin.h b/arch/blackfin/mach-bf548/include/mach/blackfin.h
index d6ee74ac046..d6ee74ac046 100644
--- a/include/asm-blackfin/mach-bf548/blackfin.h
+++ b/arch/blackfin/mach-bf548/include/mach/blackfin.h
diff --git a/include/asm-blackfin/mach-bf548/cdefBF542.h b/arch/blackfin/mach-bf548/include/mach/cdefBF542.h
index 60b9f77576f..07aefb9ed79 100644
--- a/include/asm-blackfin/mach-bf548/cdefBF542.h
+++ b/arch/blackfin/mach-bf548/include/mach/cdefBF542.h
@@ -35,7 +35,7 @@
35#include "defBF542.h" 35#include "defBF542.h"
36 36
37/* include core sbfin_read_()ecific register pointer definitions */ 37/* include core sbfin_read_()ecific register pointer definitions */
38#include <asm/mach-common/cdef_LPBlackfin.h> 38#include <asm/cdef_LPBlackfin.h>
39 39
40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF542 */ 40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF542 */
41 41
diff --git a/include/asm-blackfin/mach-bf548/cdefBF544.h b/arch/blackfin/mach-bf548/include/mach/cdefBF544.h
index ea9b4ab496f..431a6927899 100644
--- a/include/asm-blackfin/mach-bf548/cdefBF544.h
+++ b/arch/blackfin/mach-bf548/include/mach/cdefBF544.h
@@ -35,7 +35,7 @@
35#include "defBF544.h" 35#include "defBF544.h"
36 36
37/* include core sbfin_read_()ecific register pointer definitions */ 37/* include core sbfin_read_()ecific register pointer definitions */
38#include <asm/mach-common/cdef_LPBlackfin.h> 38#include <asm/cdef_LPBlackfin.h>
39 39
40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF544 */ 40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF544 */
41 41
diff --git a/include/asm-blackfin/mach-bf548/cdefBF547.h b/arch/blackfin/mach-bf548/include/mach/cdefBF547.h
index ba716277c00..93376e90dfc 100644
--- a/include/asm-blackfin/mach-bf548/cdefBF547.h
+++ b/arch/blackfin/mach-bf548/include/mach/cdefBF547.h
@@ -35,7 +35,7 @@
35#include "defBF548.h" 35#include "defBF548.h"
36 36
37/* include core sbfin_read_()ecific register pointer definitions */ 37/* include core sbfin_read_()ecific register pointer definitions */
38#include <asm/mach-common/cdef_LPBlackfin.h> 38#include <asm/cdef_LPBlackfin.h>
39 39
40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */ 40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */
41 41
diff --git a/include/asm-blackfin/mach-bf548/cdefBF548.h b/arch/blackfin/mach-bf548/include/mach/cdefBF548.h
index ae971ebff6a..9cd74384136 100644
--- a/include/asm-blackfin/mach-bf548/cdefBF548.h
+++ b/arch/blackfin/mach-bf548/include/mach/cdefBF548.h
@@ -35,7 +35,7 @@
35#include "defBF548.h" 35#include "defBF548.h"
36 36
37/* include core sbfin_read_()ecific register pointer definitions */ 37/* include core sbfin_read_()ecific register pointer definitions */
38#include <asm/mach-common/cdef_LPBlackfin.h> 38#include <asm/cdef_LPBlackfin.h>
39 39
40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */ 40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */
41 41
diff --git a/include/asm-blackfin/mach-bf548/cdefBF549.h b/arch/blackfin/mach-bf548/include/mach/cdefBF549.h
index 92d07d96199..ead360b69de 100644
--- a/include/asm-blackfin/mach-bf548/cdefBF549.h
+++ b/arch/blackfin/mach-bf548/include/mach/cdefBF549.h
@@ -35,7 +35,7 @@
35#include "defBF549.h" 35#include "defBF549.h"
36 36
37/* include core sbfin_read_()ecific register pointer definitions */ 37/* include core sbfin_read_()ecific register pointer definitions */
38#include <asm/mach-common/cdef_LPBlackfin.h> 38#include <asm/cdef_LPBlackfin.h>
39 39
40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF549 */ 40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF549 */
41 41
diff --git a/include/asm-blackfin/mach-bf548/cdefBF54x_base.h b/arch/blackfin/mach-bf548/include/mach/cdefBF54x_base.h
index 57ac8cb9b1f..57ac8cb9b1f 100644
--- a/include/asm-blackfin/mach-bf548/cdefBF54x_base.h
+++ b/arch/blackfin/mach-bf548/include/mach/cdefBF54x_base.h
diff --git a/include/asm-blackfin/mach-bf548/defBF542.h b/arch/blackfin/mach-bf548/include/mach/defBF542.h
index a7c809f29ed..b1316541b8d 100644
--- a/include/asm-blackfin/mach-bf548/defBF542.h
+++ b/arch/blackfin/mach-bf548/include/mach/defBF542.h
@@ -32,7 +32,7 @@
32#define _DEF_BF542_H 32#define _DEF_BF542_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF542 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF542 */
38 38
diff --git a/include/asm-blackfin/mach-bf548/defBF544.h b/arch/blackfin/mach-bf548/include/mach/defBF544.h
index b8b9870e269..c2c785bdc5f 100644
--- a/include/asm-blackfin/mach-bf548/defBF544.h
+++ b/arch/blackfin/mach-bf548/include/mach/defBF544.h
@@ -32,7 +32,7 @@
32#define _DEF_BF544_H 32#define _DEF_BF544_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF544 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF544 */
38 38
diff --git a/include/asm-blackfin/mach-bf548/defBF547.h b/arch/blackfin/mach-bf548/include/mach/defBF547.h
index 3a3a18ebb10..661f0d877bd 100644
--- a/include/asm-blackfin/mach-bf548/defBF547.h
+++ b/arch/blackfin/mach-bf548/include/mach/defBF547.h
@@ -32,7 +32,7 @@
32#define _DEF_BF548_H 32#define _DEF_BF548_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */
38 38
diff --git a/include/asm-blackfin/mach-bf548/defBF548.h b/arch/blackfin/mach-bf548/include/mach/defBF548.h
index 1d7c96edb03..85d4bade911 100644
--- a/include/asm-blackfin/mach-bf548/defBF548.h
+++ b/arch/blackfin/mach-bf548/include/mach/defBF548.h
@@ -32,7 +32,7 @@
32#define _DEF_BF548_H 32#define _DEF_BF548_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */
38 38
diff --git a/include/asm-blackfin/mach-bf548/defBF549.h b/arch/blackfin/mach-bf548/include/mach/defBF549.h
index fcb72b41e00..09673454164 100644
--- a/include/asm-blackfin/mach-bf548/defBF549.h
+++ b/arch/blackfin/mach-bf548/include/mach/defBF549.h
@@ -32,7 +32,7 @@
32#define _DEF_BF549_H 32#define _DEF_BF549_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37 37
38/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF549 */ 38/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF549 */
diff --git a/include/asm-blackfin/mach-bf548/defBF54x_base.h b/arch/blackfin/mach-bf548/include/mach/defBF54x_base.h
index e022e896cb1..e022e896cb1 100644
--- a/include/asm-blackfin/mach-bf548/defBF54x_base.h
+++ b/arch/blackfin/mach-bf548/include/mach/defBF54x_base.h
diff --git a/include/asm-blackfin/mach-bf548/dma.h b/arch/blackfin/mach-bf548/include/mach/dma.h
index 36a2ef7e784..36a2ef7e784 100644
--- a/include/asm-blackfin/mach-bf548/dma.h
+++ b/arch/blackfin/mach-bf548/include/mach/dma.h
diff --git a/include/asm-blackfin/mach-bf548/gpio.h b/arch/blackfin/mach-bf548/include/mach/gpio.h
index bba82dc75f1..bba82dc75f1 100644
--- a/include/asm-blackfin/mach-bf548/gpio.h
+++ b/arch/blackfin/mach-bf548/include/mach/gpio.h
diff --git a/include/asm-blackfin/mach-bf548/irq.h b/arch/blackfin/mach-bf548/include/mach/irq.h
index ad380d1f587..ad380d1f587 100644
--- a/include/asm-blackfin/mach-bf548/irq.h
+++ b/arch/blackfin/mach-bf548/include/mach/irq.h
diff --git a/include/asm-blackfin/mach-bf548/mem_init.h b/arch/blackfin/mach-bf548/include/mach/mem_init.h
index ab0b863eee6..ab0b863eee6 100644
--- a/include/asm-blackfin/mach-bf548/mem_init.h
+++ b/arch/blackfin/mach-bf548/include/mach/mem_init.h
diff --git a/include/asm-blackfin/mach-bf548/mem_map.h b/arch/blackfin/mach-bf548/include/mach/mem_map.h
index f99f47bc3a0..f99f47bc3a0 100644
--- a/include/asm-blackfin/mach-bf548/mem_map.h
+++ b/arch/blackfin/mach-bf548/include/mach/mem_map.h
diff --git a/include/asm-blackfin/mach-bf548/portmux.h b/arch/blackfin/mach-bf548/include/mach/portmux.h
index 8177a567dcd..8177a567dcd 100644
--- a/include/asm-blackfin/mach-bf548/portmux.h
+++ b/arch/blackfin/mach-bf548/include/mach/portmux.h
diff --git a/arch/blackfin/mach-bf561/head.S b/arch/blackfin/mach-bf561/head.S
index c7a81e34703..75ea6a90582 100644
--- a/arch/blackfin/mach-bf561/head.S
+++ b/arch/blackfin/mach-bf561/head.S
@@ -31,8 +31,8 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#ifdef CONFIG_BFIN_KERNEL_CLOCK 33#ifdef CONFIG_BFIN_KERNEL_CLOCK
34#include <asm/mach-common/clocks.h> 34#include <asm/clocks.h>
35#include <asm/mach/mem_init.h> 35#include <mach/mem_init.h>
36#endif 36#endif
37 37
38.section .l1.text 38.section .l1.text
diff --git a/include/asm-blackfin/mach-bf561/anomaly.h b/arch/blackfin/mach-bf561/include/mach/anomaly.h
index 5c5d7d7d695..5c5d7d7d695 100644
--- a/include/asm-blackfin/mach-bf561/anomaly.h
+++ b/arch/blackfin/mach-bf561/include/mach/anomaly.h
diff --git a/include/asm-blackfin/mach-bf561/bf561.h b/arch/blackfin/mach-bf561/include/mach/bf561.h
index 3ef9e5f3613..3ef9e5f3613 100644
--- a/include/asm-blackfin/mach-bf561/bf561.h
+++ b/arch/blackfin/mach-bf561/include/mach/bf561.h
diff --git a/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h b/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h
index 8aa02780e64..8aa02780e64 100644
--- a/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h
diff --git a/include/asm-blackfin/mach-bf561/bfin_sir.h b/arch/blackfin/mach-bf561/include/mach/bfin_sir.h
index 9bb87e9e2e9..9bb87e9e2e9 100644
--- a/include/asm-blackfin/mach-bf561/bfin_sir.h
+++ b/arch/blackfin/mach-bf561/include/mach/bfin_sir.h
diff --git a/include/asm-blackfin/mach-bf561/blackfin.h b/arch/blackfin/mach-bf561/include/mach/blackfin.h
index 0ea8666e676..0ea8666e676 100644
--- a/include/asm-blackfin/mach-bf561/blackfin.h
+++ b/arch/blackfin/mach-bf561/include/mach/blackfin.h
diff --git a/include/asm-blackfin/mach-bf561/cdefBF561.h b/arch/blackfin/mach-bf561/include/mach/cdefBF561.h
index b07ffccd66d..c14d63402e7 100644
--- a/include/asm-blackfin/mach-bf561/cdefBF561.h
+++ b/arch/blackfin/mach-bf561/include/mach/cdefBF561.h
@@ -37,7 +37,7 @@
37#include "defBF561.h" 37#include "defBF561.h"
38 38
39/*include core specific register pointer definitions*/ 39/*include core specific register pointer definitions*/
40#include <asm/mach-common/cdef_LPBlackfin.h> 40#include <asm/cdef_LPBlackfin.h>
41 41
42#include <asm/system.h> 42#include <asm/system.h>
43 43
diff --git a/include/asm-blackfin/mach-bf561/defBF561.h b/arch/blackfin/mach-bf561/include/mach/defBF561.h
index 1ab50e906fe..4eca2026bb9 100644
--- a/include/asm-blackfin/mach-bf561/defBF561.h
+++ b/arch/blackfin/mach-bf561/include/mach/defBF561.h
@@ -37,7 +37,7 @@
37#endif 37#endif
38*/ 38*/
39/* include all Core registers and bit definitions */ 39/* include all Core registers and bit definitions */
40#include <asm/mach-common/def_LPBlackfin.h> 40#include <asm/def_LPBlackfin.h>
41 41
42/*********************************************************************************** */ 42/*********************************************************************************** */
43/* System MMR Register Map */ 43/* System MMR Register Map */
diff --git a/include/asm-blackfin/mach-bf561/dma.h b/arch/blackfin/mach-bf561/include/mach/dma.h
index 8bc46cd89a0..8bc46cd89a0 100644
--- a/include/asm-blackfin/mach-bf561/dma.h
+++ b/arch/blackfin/mach-bf561/include/mach/dma.h
diff --git a/include/asm-blackfin/mach-bf561/irq.h b/arch/blackfin/mach-bf561/include/mach/irq.h
index 6698389c556..6698389c556 100644
--- a/include/asm-blackfin/mach-bf561/irq.h
+++ b/arch/blackfin/mach-bf561/include/mach/irq.h
diff --git a/include/asm-blackfin/mach-bf561/mem_init.h b/arch/blackfin/mach-bf561/include/mach/mem_init.h
index e163260bca1..e163260bca1 100644
--- a/include/asm-blackfin/mach-bf561/mem_init.h
+++ b/arch/blackfin/mach-bf561/include/mach/mem_init.h
diff --git a/include/asm-blackfin/mach-bf561/mem_map.h b/arch/blackfin/mach-bf561/include/mach/mem_map.h
index c26d8486cc4..c26d8486cc4 100644
--- a/include/asm-blackfin/mach-bf561/mem_map.h
+++ b/arch/blackfin/mach-bf561/include/mach/mem_map.h
diff --git a/include/asm-blackfin/mach-bf561/portmux.h b/arch/blackfin/mach-bf561/include/mach/portmux.h
index a6ee8206efb..a6ee8206efb 100644
--- a/include/asm-blackfin/mach-bf561/portmux.h
+++ b/arch/blackfin/mach-bf561/include/mach/portmux.h
diff --git a/arch/blackfin/mach-common/arch_checks.c b/arch/blackfin/mach-common/arch_checks.c
index 5986758b275..98133b968f7 100644
--- a/arch/blackfin/mach-common/arch_checks.c
+++ b/arch/blackfin/mach-common/arch_checks.c
@@ -28,8 +28,8 @@
28 */ 28 */
29 29
30#include <asm/fixed_code.h> 30#include <asm/fixed_code.h>
31#include <asm/mach/anomaly.h> 31#include <mach/anomaly.h>
32#include <asm/mach-common/clocks.h> 32#include <asm/clocks.h>
33 33
34#ifdef CONFIG_BFIN_KERNEL_CLOCK 34#ifdef CONFIG_BFIN_KERNEL_CLOCK
35 35
diff --git a/arch/blackfin/mach-common/dpmc_modes.S b/arch/blackfin/mach-common/dpmc_modes.S
index 838b0b2ce9a..ad5431e2cd0 100644
--- a/arch/blackfin/mach-common/dpmc_modes.S
+++ b/arch/blackfin/mach-common/dpmc_modes.S
@@ -6,7 +6,7 @@
6 6
7#include <linux/linkage.h> 7#include <linux/linkage.h>
8#include <asm/blackfin.h> 8#include <asm/blackfin.h>
9#include <asm/mach/irq.h> 9#include <mach/irq.h>
10#include <asm/dpmc.h> 10#include <asm/dpmc.h>
11 11
12.section .l1.text 12.section .l1.text
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index 117c01c2c6b..847c172a99e 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -43,7 +43,7 @@
43#include <asm/asm-offsets.h> 43#include <asm/asm-offsets.h>
44#include <asm/trace.h> 44#include <asm/trace.h>
45 45
46#include <asm/mach-common/context.S> 46#include <asm/context.S>
47 47
48#if defined(CONFIG_BFIN_SCRATCH_REG_RETN) 48#if defined(CONFIG_BFIN_SCRATCH_REG_RETN)
49# define EX_SCRATCH_REG RETN 49# define EX_SCRATCH_REG RETN
diff --git a/arch/blackfin/mach-common/interrupt.S b/arch/blackfin/mach-common/interrupt.S
index 7f752c87fe4..b27e59d3240 100644
--- a/arch/blackfin/mach-common/interrupt.S
+++ b/arch/blackfin/mach-common/interrupt.S
@@ -29,7 +29,7 @@
29 */ 29 */
30 30
31#include <asm/blackfin.h> 31#include <asm/blackfin.h>
32#include <asm/mach/irq.h> 32#include <mach/irq.h>
33#include <linux/linkage.h> 33#include <linux/linkage.h>
34#include <asm/entry.h> 34#include <asm/entry.h>
35#include <asm/asm-offsets.h> 35#include <asm/asm-offsets.h>
@@ -37,7 +37,7 @@
37#include <asm/traps.h> 37#include <asm/traps.h>
38#include <asm/thread_info.h> 38#include <asm/thread_info.h>
39 39
40#include <asm/mach-common/context.S> 40#include <asm/context.S>
41 41
42.extern _ret_from_exception 42.extern _ret_from_exception
43 43
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c
index 62f8883a5c2..5fa536727c6 100644
--- a/arch/blackfin/mach-common/ints-priority.c
+++ b/arch/blackfin/mach-common/ints-priority.c
@@ -216,7 +216,7 @@ int bfin_internal_set_wake(unsigned int irq, unsigned int state)
216 wakeup |= KPADWE; 216 wakeup |= KPADWE;
217 break; 217 break;
218#endif 218#endif
219#ifdef IRQ_CNT 219#ifdef CONFIG_BF54x
220 case IRQ_CNT: 220 case IRQ_CNT:
221 wakeup |= ROTWE; 221 wakeup |= ROTWE;
222 break; 222 break;
@@ -983,7 +983,7 @@ int __init init_arch_irq(void)
983 983
984 local_irq_disable(); 984 local_irq_disable();
985 985
986#if defined(CONFIG_BF527) || defined(CONFIG_BF536) || defined(CONFIG_BF537) 986#if (defined(CONFIG_BF537) || defined(CONFIG_BF536))
987 /* Clear EMAC Interrupt Status bits so we can demux it later */ 987 /* Clear EMAC Interrupt Status bits so we can demux it later */
988 bfin_write_EMAC_SYSTAT(-1); 988 bfin_write_EMAC_SYSTAT(-1);
989#endif 989#endif
diff --git a/arch/blackfin/mm/blackfin_sram.c b/arch/blackfin/mm/blackfin_sram.c
index 9d2be43ac3d..4f5e887a0d9 100644
--- a/arch/blackfin/mm/blackfin_sram.c
+++ b/arch/blackfin/mm/blackfin_sram.c
@@ -335,7 +335,7 @@ static int _sram_free(const void *addr,
335 plast->size += pavail->size; 335 plast->size += pavail->size;
336 kmem_cache_free(sram_piece_cache, pavail); 336 kmem_cache_free(sram_piece_cache, pavail);
337 } else { 337 } else {
338 pavail->next = plast; 338 pavail->next = plast->next;
339 plast->next = pavail; 339 plast->next = pavail;
340 plast = pavail; 340 plast = pavail;
341 } 341 }
@@ -379,7 +379,7 @@ EXPORT_SYMBOL(sram_free);
379 379
380void *l1_data_A_sram_alloc(size_t size) 380void *l1_data_A_sram_alloc(size_t size)
381{ 381{
382 unsigned flags; 382 unsigned long flags;
383 void *addr = NULL; 383 void *addr = NULL;
384 384
385 /* add mutex operation */ 385 /* add mutex operation */
@@ -402,7 +402,7 @@ EXPORT_SYMBOL(l1_data_A_sram_alloc);
402 402
403int l1_data_A_sram_free(const void *addr) 403int l1_data_A_sram_free(const void *addr)
404{ 404{
405 unsigned flags; 405 unsigned long flags;
406 int ret; 406 int ret;
407 407
408 /* add mutex operation */ 408 /* add mutex operation */
@@ -425,7 +425,7 @@ EXPORT_SYMBOL(l1_data_A_sram_free);
425void *l1_data_B_sram_alloc(size_t size) 425void *l1_data_B_sram_alloc(size_t size)
426{ 426{
427#if L1_DATA_B_LENGTH != 0 427#if L1_DATA_B_LENGTH != 0
428 unsigned flags; 428 unsigned long flags;
429 void *addr; 429 void *addr;
430 430
431 /* add mutex operation */ 431 /* add mutex operation */
@@ -450,7 +450,7 @@ EXPORT_SYMBOL(l1_data_B_sram_alloc);
450int l1_data_B_sram_free(const void *addr) 450int l1_data_B_sram_free(const void *addr)
451{ 451{
452#if L1_DATA_B_LENGTH != 0 452#if L1_DATA_B_LENGTH != 0
453 unsigned flags; 453 unsigned long flags;
454 int ret; 454 int ret;
455 455
456 /* add mutex operation */ 456 /* add mutex operation */
@@ -504,7 +504,7 @@ EXPORT_SYMBOL(l1_data_sram_free);
504void *l1_inst_sram_alloc(size_t size) 504void *l1_inst_sram_alloc(size_t size)
505{ 505{
506#if L1_CODE_LENGTH != 0 506#if L1_CODE_LENGTH != 0
507 unsigned flags; 507 unsigned long flags;
508 void *addr; 508 void *addr;
509 509
510 /* add mutex operation */ 510 /* add mutex operation */
@@ -529,7 +529,7 @@ EXPORT_SYMBOL(l1_inst_sram_alloc);
529int l1_inst_sram_free(const void *addr) 529int l1_inst_sram_free(const void *addr)
530{ 530{
531#if L1_CODE_LENGTH != 0 531#if L1_CODE_LENGTH != 0
532 unsigned flags; 532 unsigned long flags;
533 int ret; 533 int ret;
534 534
535 /* add mutex operation */ 535 /* add mutex operation */
@@ -551,7 +551,7 @@ EXPORT_SYMBOL(l1_inst_sram_free);
551/* L1 Scratchpad memory allocate function */ 551/* L1 Scratchpad memory allocate function */
552void *l1sram_alloc(size_t size) 552void *l1sram_alloc(size_t size)
553{ 553{
554 unsigned flags; 554 unsigned long flags;
555 void *addr; 555 void *addr;
556 556
557 /* add mutex operation */ 557 /* add mutex operation */
@@ -569,7 +569,7 @@ void *l1sram_alloc(size_t size)
569/* L1 Scratchpad memory allocate function */ 569/* L1 Scratchpad memory allocate function */
570void *l1sram_alloc_max(size_t *psize) 570void *l1sram_alloc_max(size_t *psize)
571{ 571{
572 unsigned flags; 572 unsigned long flags;
573 void *addr; 573 void *addr;
574 574
575 /* add mutex operation */ 575 /* add mutex operation */
@@ -587,7 +587,7 @@ void *l1sram_alloc_max(size_t *psize)
587/* L1 Scratchpad memory free function */ 587/* L1 Scratchpad memory free function */
588int l1sram_free(const void *addr) 588int l1sram_free(const void *addr)
589{ 589{
590 unsigned flags; 590 unsigned long flags;
591 int ret; 591 int ret;
592 592
593 /* add mutex operation */ 593 /* add mutex operation */
@@ -605,7 +605,7 @@ int l1sram_free(const void *addr)
605void *l2_sram_alloc(size_t size) 605void *l2_sram_alloc(size_t size)
606{ 606{
607#if L2_LENGTH != 0 607#if L2_LENGTH != 0
608 unsigned flags; 608 unsigned long flags;
609 void *addr; 609 void *addr;
610 610
611 /* add mutex operation */ 611 /* add mutex operation */
@@ -641,7 +641,7 @@ EXPORT_SYMBOL(l2_sram_zalloc);
641int l2_sram_free(const void *addr) 641int l2_sram_free(const void *addr)
642{ 642{
643#if L2_LENGTH != 0 643#if L2_LENGTH != 0
644 unsigned flags; 644 unsigned long flags;
645 int ret; 645 int ret;
646 646
647 /* add mutex operation */ 647 /* add mutex operation */
diff --git a/arch/cris/arch-v32/kernel/fasttimer.c b/arch/cris/arch-v32/kernel/fasttimer.c
index 2de9d5849ef..111caa1a2ef 100644
--- a/arch/cris/arch-v32/kernel/fasttimer.c
+++ b/arch/cris/arch-v32/kernel/fasttimer.c
@@ -19,8 +19,6 @@
19#include <asm/irq.h> 19#include <asm/irq.h>
20#include <asm/system.h> 20#include <asm/system.h>
21 21
22#include <linux/version.h>
23
24#include <hwregs/reg_map.h> 22#include <hwregs/reg_map.h>
25#include <hwregs/reg_rdwr.h> 23#include <hwregs/reg_rdwr.h>
26#include <hwregs/timer_defs.h> 24#include <hwregs/timer_defs.h>
diff --git a/arch/ia64/include/asm/elf.h b/arch/ia64/include/asm/elf.h
index 5e0c1a6bce8..2acb6b6543c 100644
--- a/arch/ia64/include/asm/elf.h
+++ b/arch/ia64/include/asm/elf.h
@@ -266,4 +266,19 @@ do { \
266 } \ 266 } \
267} while (0) 267} while (0)
268 268
269/*
270 * format for entries in the Global Offset Table
271 */
272struct got_entry {
273 uint64_t val;
274};
275
276/*
277 * Layout of the Function Descriptor
278 */
279struct fdesc {
280 uint64_t ip;
281 uint64_t gp;
282};
283
269#endif /* _ASM_IA64_ELF_H */ 284#endif /* _ASM_IA64_ELF_H */
diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h
index 260a85ac9d6..7f257507cd8 100644
--- a/arch/ia64/include/asm/io.h
+++ b/arch/ia64/include/asm/io.h
@@ -19,6 +19,8 @@
19 * Copyright (C) 1999 Don Dugger <don.dugger@intel.com> 19 * Copyright (C) 1999 Don Dugger <don.dugger@intel.com>
20 */ 20 */
21 21
22#include <asm/unaligned.h>
23
22/* We don't use IO slowdowns on the ia64, but.. */ 24/* We don't use IO slowdowns on the ia64, but.. */
23#define __SLOW_DOWN_IO do { } while (0) 25#define __SLOW_DOWN_IO do { } while (0)
24#define SLOW_DOWN_IO do { } while (0) 26#define SLOW_DOWN_IO do { } while (0)
@@ -241,7 +243,7 @@ __insw (unsigned long port, void *dst, unsigned long count)
241 unsigned short *dp = dst; 243 unsigned short *dp = dst;
242 244
243 while (count--) 245 while (count--)
244 *dp++ = platform_inw(port); 246 put_unaligned(platform_inw(port), dp++);
245} 247}
246 248
247static inline void 249static inline void
@@ -250,7 +252,7 @@ __insl (unsigned long port, void *dst, unsigned long count)
250 unsigned int *dp = dst; 252 unsigned int *dp = dst;
251 253
252 while (count--) 254 while (count--)
253 *dp++ = platform_inl(port); 255 put_unaligned(platform_inl(port), dp++);
254} 256}
255 257
256static inline void 258static inline void
@@ -268,7 +270,7 @@ __outsw (unsigned long port, const void *src, unsigned long count)
268 const unsigned short *sp = src; 270 const unsigned short *sp = src;
269 271
270 while (count--) 272 while (count--)
271 platform_outw(*sp++, port); 273 platform_outw(get_unaligned(sp++), port);
272} 274}
273 275
274static inline void 276static inline void
@@ -277,7 +279,7 @@ __outsl (unsigned long port, const void *src, unsigned long count)
277 const unsigned int *sp = src; 279 const unsigned int *sp = src;
278 280
279 while (count--) 281 while (count--)
280 platform_outl(*sp++, port); 282 platform_outl(get_unaligned(sp++), port);
281} 283}
282 284
283/* 285/*
diff --git a/arch/ia64/include/asm/sections.h b/arch/ia64/include/asm/sections.h
index 7286e4a9fe8..1a873b36a4a 100644
--- a/arch/ia64/include/asm/sections.h
+++ b/arch/ia64/include/asm/sections.h
@@ -6,9 +6,14 @@
6 * David Mosberger-Tang <davidm@hpl.hp.com> 6 * David Mosberger-Tang <davidm@hpl.hp.com>
7 */ 7 */
8 8
9#include <linux/elf.h>
10#include <linux/uaccess.h>
9#include <asm-generic/sections.h> 11#include <asm-generic/sections.h>
10 12
11extern char __per_cpu_start[], __per_cpu_end[], __phys_per_cpu_start[]; 13extern char __per_cpu_start[], __per_cpu_end[], __phys_per_cpu_start[];
14#ifdef CONFIG_SMP
15extern char __cpu0_per_cpu[];
16#endif
12extern char __start___vtop_patchlist[], __end___vtop_patchlist[]; 17extern char __start___vtop_patchlist[], __end___vtop_patchlist[];
13extern char __start___rse_patchlist[], __end___rse_patchlist[]; 18extern char __start___rse_patchlist[], __end___rse_patchlist[];
14extern char __start___mckinley_e9_bundles[], __end___mckinley_e9_bundles[]; 19extern char __start___mckinley_e9_bundles[], __end___mckinley_e9_bundles[];
@@ -21,5 +26,17 @@ extern char __start_gate_brl_fsys_bubble_down_patchlist[], __end_gate_brl_fsys_b
21extern char __start_unwind[], __end_unwind[]; 26extern char __start_unwind[], __end_unwind[];
22extern char __start_ivt_text[], __end_ivt_text[]; 27extern char __start_ivt_text[], __end_ivt_text[];
23 28
29#undef dereference_function_descriptor
30static inline void *dereference_function_descriptor(void *ptr)
31{
32 struct fdesc *desc = ptr;
33 void *p;
34
35 if (!probe_kernel_address(&desc->ip, p))
36 ptr = p;
37 return ptr;
38}
39
40
24#endif /* _ASM_IA64_SECTIONS_H */ 41#endif /* _ASM_IA64_SECTIONS_H */
25 42
diff --git a/arch/ia64/include/asm/sn/bte.h b/arch/ia64/include/asm/sn/bte.h
index a0d214f4311..5efecf06c9a 100644
--- a/arch/ia64/include/asm/sn/bte.h
+++ b/arch/ia64/include/asm/sn/bte.h
@@ -223,10 +223,11 @@ extern void bte_error_handler(unsigned long);
223 * until the transfer is complete. In order to get the asynch 223 * until the transfer is complete. In order to get the asynch
224 * version of bte_copy, you must perform this check yourself. 224 * version of bte_copy, you must perform this check yourself.
225 */ 225 */
226#define BTE_UNALIGNED_COPY(src, dest, len, mode) \ 226#define BTE_UNALIGNED_COPY(src, dest, len, mode) \
227 (((len & L1_CACHE_MASK) || (src & L1_CACHE_MASK) || \ 227 (((len & (L1_CACHE_BYTES - 1)) || \
228 (dest & L1_CACHE_MASK)) ? \ 228 (src & (L1_CACHE_BYTES - 1)) || \
229 bte_unaligned_copy(src, dest, len, mode) : \ 229 (dest & (L1_CACHE_BYTES - 1))) ? \
230 bte_unaligned_copy(src, dest, len, mode) : \
230 bte_copy(src, dest, len, mode, NULL)) 231 bte_copy(src, dest, len, mode, NULL))
231 232
232 233
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c
index d45f215bc8f..51b75cea701 100644
--- a/arch/ia64/kernel/efi.c
+++ b/arch/ia64/kernel/efi.c
@@ -1232,9 +1232,10 @@ efi_initialize_iomem_resources(struct resource *code_resource,
1232 if (md->attribute & EFI_MEMORY_WP) { 1232 if (md->attribute & EFI_MEMORY_WP) {
1233 name = "System ROM"; 1233 name = "System ROM";
1234 flags |= IORESOURCE_READONLY; 1234 flags |= IORESOURCE_READONLY;
1235 } else { 1235 } else if (md->attribute == EFI_MEMORY_UC)
1236 name = "Uncached RAM";
1237 else
1236 name = "System RAM"; 1238 name = "System RAM";
1237 }
1238 break; 1239 break;
1239 1240
1240 case EFI_ACPI_MEMORY_NVS: 1241 case EFI_ACPI_MEMORY_NVS:
diff --git a/arch/ia64/kernel/head.S b/arch/ia64/kernel/head.S
index 8bdea8eb62e..66e491d8baa 100644
--- a/arch/ia64/kernel/head.S
+++ b/arch/ia64/kernel/head.S
@@ -367,16 +367,17 @@ start_ap:
367 ;; 367 ;;
368#else 368#else
369(isAP) br.few 2f 369(isAP) br.few 2f
370 mov r20=r19 370 movl r20=__cpu0_per_cpu
371 sub r19=r19,r18
372 ;; 371 ;;
373 shr.u r18=r18,3 372 shr.u r18=r18,3
3741: 3731:
375 ld8 r21=[r20],8;; 374 ld8 r21=[r19],8;;
376 st8[r19]=r21,8 375 st8[r20]=r21,8
377 adds r18=-1,r18;; 376 adds r18=-1,r18;;
378 cmp4.lt p7,p6=0,r18 377 cmp4.lt p7,p6=0,r18
379(p7) br.cond.dptk.few 1b 378(p7) br.cond.dptk.few 1b
379 mov r19=r20
380 ;;
3802: 3812:
381#endif 382#endif
382 tpa r19=r19 383 tpa r19=r19
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c
index 29aad349e0c..aaa7d901521 100644
--- a/arch/ia64/kernel/module.c
+++ b/arch/ia64/kernel/module.c
@@ -135,15 +135,6 @@ static const char *reloc_name[256] = {
135 135
136#undef N 136#undef N
137 137
138struct got_entry {
139 uint64_t val;
140};
141
142struct fdesc {
143 uint64_t ip;
144 uint64_t gp;
145};
146
147/* Opaque struct for insns, to protect against derefs. */ 138/* Opaque struct for insns, to protect against derefs. */
148struct insn; 139struct insn;
149 140
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
index c27d5b2c182..de636b21567 100644
--- a/arch/ia64/kernel/setup.c
+++ b/arch/ia64/kernel/setup.c
@@ -616,7 +616,9 @@ setup_arch (char **cmdline_p)
616 ia64_mca_init(); 616 ia64_mca_init();
617 617
618 platform_setup(cmdline_p); 618 platform_setup(cmdline_p);
619#ifndef CONFIG_IA64_HP_SIM
619 check_sal_cache_flush(); 620 check_sal_cache_flush();
621#endif
620 paging_init(); 622 paging_init();
621} 623}
622 624
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c
index b39853a292d..d8f05e504fb 100644
--- a/arch/ia64/kernel/smpboot.c
+++ b/arch/ia64/kernel/smpboot.c
@@ -138,6 +138,7 @@ cpumask_t cpu_possible_map = CPU_MASK_NONE;
138EXPORT_SYMBOL(cpu_possible_map); 138EXPORT_SYMBOL(cpu_possible_map);
139 139
140cpumask_t cpu_core_map[NR_CPUS] __cacheline_aligned; 140cpumask_t cpu_core_map[NR_CPUS] __cacheline_aligned;
141EXPORT_SYMBOL(cpu_core_map);
141DEFINE_PER_CPU_SHARED_ALIGNED(cpumask_t, cpu_sibling_map); 142DEFINE_PER_CPU_SHARED_ALIGNED(cpumask_t, cpu_sibling_map);
142EXPORT_PER_CPU_SYMBOL(cpu_sibling_map); 143EXPORT_PER_CPU_SYMBOL(cpu_sibling_map);
143 144
@@ -740,16 +741,14 @@ int __cpu_disable(void)
740 return -EBUSY; 741 return -EBUSY;
741 } 742 }
742 743
743 cpu_clear(cpu, cpu_online_map);
744
745 if (migrate_platform_irqs(cpu)) { 744 if (migrate_platform_irqs(cpu)) {
746 cpu_set(cpu, cpu_online_map); 745 cpu_set(cpu, cpu_online_map);
747 return (-EBUSY); 746 return (-EBUSY);
748 } 747 }
749 748
750 remove_siblinginfo(cpu); 749 remove_siblinginfo(cpu);
751 cpu_clear(cpu, cpu_online_map);
752 fixup_irqs(); 750 fixup_irqs();
751 cpu_clear(cpu, cpu_online_map);
753 local_flush_tlb_all(); 752 local_flush_tlb_all();
754 cpu_clear(cpu, cpu_callin_map); 753 cpu_clear(cpu, cpu_callin_map);
755 return 0; 754 return 0;
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S
index de71da811cd..10a7d47e851 100644
--- a/arch/ia64/kernel/vmlinux.lds.S
+++ b/arch/ia64/kernel/vmlinux.lds.S
@@ -215,9 +215,6 @@ SECTIONS
215 /* Per-cpu data: */ 215 /* Per-cpu data: */
216 percpu : { } :percpu 216 percpu : { } :percpu
217 . = ALIGN(PERCPU_PAGE_SIZE); 217 . = ALIGN(PERCPU_PAGE_SIZE);
218#ifdef CONFIG_SMP
219 . = . + PERCPU_PAGE_SIZE; /* cpu0 per-cpu space */
220#endif
221 __phys_per_cpu_start = .; 218 __phys_per_cpu_start = .;
222 .data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - LOAD_OFFSET) 219 .data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - LOAD_OFFSET)
223 { 220 {
@@ -233,6 +230,11 @@ SECTIONS
233 data : { } :data 230 data : { } :data
234 .data : AT(ADDR(.data) - LOAD_OFFSET) 231 .data : AT(ADDR(.data) - LOAD_OFFSET)
235 { 232 {
233#ifdef CONFIG_SMP
234 . = ALIGN(PERCPU_PAGE_SIZE);
235 __cpu0_per_cpu = .;
236 . = . + PERCPU_PAGE_SIZE; /* cpu0 per-cpu space */
237#endif
236 DATA_DATA 238 DATA_DATA
237 *(.data1) 239 *(.data1)
238 *(.gnu.linkonce.d*) 240 *(.gnu.linkonce.d*)
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index 7a37d06376b..cd0d1a7284b 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -38,6 +38,7 @@
38#include <asm/cacheflush.h> 38#include <asm/cacheflush.h>
39#include <asm/div64.h> 39#include <asm/div64.h>
40#include <asm/tlb.h> 40#include <asm/tlb.h>
41#include <asm/elf.h>
41 42
42#include "misc.h" 43#include "misc.h"
43#include "vti.h" 44#include "vti.h"
@@ -61,12 +62,6 @@ struct kvm_stats_debugfs_item debugfs_entries[] = {
61 { NULL } 62 { NULL }
62}; 63};
63 64
64
65struct fdesc{
66 unsigned long ip;
67 unsigned long gp;
68};
69
70static void kvm_flush_icache(unsigned long start, unsigned long len) 65static void kvm_flush_icache(unsigned long start, unsigned long len)
71{ 66{
72 int l; 67 int l;
diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c
index e566ff43884..0ee085efbe2 100644
--- a/arch/ia64/mm/contig.c
+++ b/arch/ia64/mm/contig.c
@@ -163,7 +163,7 @@ per_cpu_init (void)
163 * get_zeroed_page(). 163 * get_zeroed_page().
164 */ 164 */
165 if (first_time) { 165 if (first_time) {
166 void *cpu0_data = __phys_per_cpu_start - PERCPU_PAGE_SIZE; 166 void *cpu0_data = __cpu0_per_cpu;
167 167
168 first_time=0; 168 first_time=0;
169 169
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c
index 78026aabaa7..d8c5fcd89e5 100644
--- a/arch/ia64/mm/discontig.c
+++ b/arch/ia64/mm/discontig.c
@@ -144,7 +144,7 @@ static void *per_cpu_node_setup(void *cpu_data, int node)
144 144
145 for_each_possible_early_cpu(cpu) { 145 for_each_possible_early_cpu(cpu) {
146 if (cpu == 0) { 146 if (cpu == 0) {
147 void *cpu0_data = __phys_per_cpu_start - PERCPU_PAGE_SIZE; 147 void *cpu0_data = __cpu0_per_cpu;
148 __per_cpu_offset[cpu] = (char*)cpu0_data - 148 __per_cpu_offset[cpu] = (char*)cpu0_data -
149 __per_cpu_start; 149 __per_cpu_start;
150 } else if (node == node_cpuid[cpu].nid) { 150 } else if (node == node_cpuid[cpu].nid) {
diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c
index 529462c0157..79165122501 100644
--- a/arch/ia64/sn/pci/tioca_provider.c
+++ b/arch/ia64/sn/pci/tioca_provider.c
@@ -420,8 +420,10 @@ tioca_dma_mapped(struct pci_dev *pdev, u64 paddr, size_t req_size)
420 entry = find_next_zero_bit(map, mapsize, last_entry); 420 entry = find_next_zero_bit(map, mapsize, last_entry);
421 } 421 }
422 422
423 if (entry > mapsize) 423 if (entry > mapsize) {
424 kfree(ca_dmamap);
424 goto map_return; 425 goto map_return;
426 }
425 427
426 for (i = 0; i < entries; i++) 428 for (i = 0; i < entries; i++)
427 set_bit(entry + i, map); 429 set_bit(entry + i, map);
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig
index a5f864c445b..f57113f1f89 100644
--- a/arch/m32r/Kconfig
+++ b/arch/m32r/Kconfig
@@ -216,10 +216,6 @@ config MEMORY_SIZE
216 default "01000000" if PLAT_M32104UT 216 default "01000000" if PLAT_M32104UT
217 default "00800000" if PLAT_OAKS32R 217 default "00800000" if PLAT_OAKS32R
218 218
219config NOHIGHMEM
220 bool
221 default y
222
223config ARCH_DISCONTIGMEM_ENABLE 219config ARCH_DISCONTIGMEM_ENABLE
224 bool "Internal RAM Support" 220 bool "Internal RAM Support"
225 depends on CHIP_M32700 || CHIP_M32102 || CHIP_VDEC2 || CHIP_OPSP || CHIP_M32104 221 depends on CHIP_M32700 || CHIP_M32102 || CHIP_VDEC2 || CHIP_OPSP || CHIP_M32104
@@ -410,11 +406,7 @@ config PCI_DIRECT
410source "drivers/pci/Kconfig" 406source "drivers/pci/Kconfig"
411 407
412config ISA 408config ISA
413 bool "ISA support" 409 bool
414 help
415 Find out whether you have ISA slots on your motherboard. ISA is the
416 name of a bus system, i.e. the way the CPU talks to the other stuff
417 inside your box. If you have ISA, say Y, otherwise N.
418 410
419source "drivers/pcmcia/Kconfig" 411source "drivers/pcmcia/Kconfig"
420 412
diff --git a/arch/m32r/kernel/entry.S b/arch/m32r/kernel/entry.S
index d4eaa2fd181..612d35b082a 100644
--- a/arch/m32r/kernel/entry.S
+++ b/arch/m32r/kernel/entry.S
@@ -143,7 +143,7 @@ ret_from_intr:
143 and3 r4, r4, #0x8000 ; check BSM bit 143 and3 r4, r4, #0x8000 ; check BSM bit
144#endif 144#endif
145 beqz r4, resume_kernel 145 beqz r4, resume_kernel
146ENTRY(resume_userspace) 146resume_userspace:
147 DISABLE_INTERRUPTS(r4) ; make sure we don't miss an interrupt 147 DISABLE_INTERRUPTS(r4) ; make sure we don't miss an interrupt
148 ; setting need_resched or sigpending 148 ; setting need_resched or sigpending
149 ; between sampling and the iret 149 ; between sampling and the iret
diff --git a/arch/m32r/kernel/head.S b/arch/m32r/kernel/head.S
index dab7436d7bb..40180778a5c 100644
--- a/arch/m32r/kernel/head.S
+++ b/arch/m32r/kernel/head.S
@@ -29,7 +29,6 @@ __INITDATA
29 .global _end 29 .global _end
30ENTRY(stext) 30ENTRY(stext)
31ENTRY(_stext) 31ENTRY(_stext)
32ENTRY(startup_32)
33 /* Setup up the stack pointer */ 32 /* Setup up the stack pointer */
34 LDIMM (r0, spi_stack_top) 33 LDIMM (r0, spi_stack_top)
35 LDIMM (r1, spu_stack_top) 34 LDIMM (r1, spu_stack_top)
diff --git a/arch/m32r/kernel/irq.c b/arch/m32r/kernel/irq.c
index d0c5b0b7da2..2aeae467009 100644
--- a/arch/m32r/kernel/irq.c
+++ b/arch/m32r/kernel/irq.c
@@ -22,9 +22,6 @@
22#include <linux/module.h> 22#include <linux/module.h>
23#include <asm/uaccess.h> 23#include <asm/uaccess.h>
24 24
25atomic_t irq_err_count;
26atomic_t irq_mis_count;
27
28/* 25/*
29 * Generic, controller-independent functions: 26 * Generic, controller-independent functions:
30 */ 27 */
@@ -63,9 +60,6 @@ int show_interrupts(struct seq_file *p, void *v)
63 seq_putc(p, '\n'); 60 seq_putc(p, '\n');
64skip: 61skip:
65 spin_unlock_irqrestore(&irq_desc[i].lock, flags); 62 spin_unlock_irqrestore(&irq_desc[i].lock, flags);
66 } else if (i == NR_IRQS) {
67 seq_printf(p, "ERR: %10u\n", atomic_read(&irq_err_count));
68 seq_printf(p, "MIS: %10u\n", atomic_read(&irq_mis_count));
69 } 63 }
70 return 0; 64 return 0;
71} 65}
diff --git a/arch/m32r/kernel/m32r_ksyms.c b/arch/m32r/kernel/m32r_ksyms.c
index 16bcb189a38..22624b51d4d 100644
--- a/arch/m32r/kernel/m32r_ksyms.c
+++ b/arch/m32r/kernel/m32r_ksyms.c
@@ -14,6 +14,7 @@
14#include <asm/delay.h> 14#include <asm/delay.h>
15#include <asm/irq.h> 15#include <asm/irq.h>
16#include <asm/tlbflush.h> 16#include <asm/tlbflush.h>
17#include <asm/pgtable.h>
17 18
18/* platform dependent support */ 19/* platform dependent support */
19EXPORT_SYMBOL(boot_cpu_data); 20EXPORT_SYMBOL(boot_cpu_data);
@@ -65,6 +66,7 @@ EXPORT_SYMBOL(memset);
65EXPORT_SYMBOL(copy_page); 66EXPORT_SYMBOL(copy_page);
66EXPORT_SYMBOL(clear_page); 67EXPORT_SYMBOL(clear_page);
67EXPORT_SYMBOL(strlen); 68EXPORT_SYMBOL(strlen);
69EXPORT_SYMBOL(empty_zero_page);
68 70
69EXPORT_SYMBOL(_inb); 71EXPORT_SYMBOL(_inb);
70EXPORT_SYMBOL(_inw); 72EXPORT_SYMBOL(_inw);
diff --git a/arch/m32r/kernel/process.c b/arch/m32r/kernel/process.c
index a689e2978b6..5be4faaf5b1 100644
--- a/arch/m32r/kernel/process.c
+++ b/arch/m32r/kernel/process.c
@@ -35,8 +35,6 @@
35 35
36#include <linux/err.h> 36#include <linux/err.h>
37 37
38static int hlt_counter=0;
39
40/* 38/*
41 * Return saved PC of a blocked thread. 39 * Return saved PC of a blocked thread.
42 */ 40 */
@@ -48,31 +46,16 @@ unsigned long thread_saved_pc(struct task_struct *tsk)
48/* 46/*
49 * Powermanagement idle function, if any.. 47 * Powermanagement idle function, if any..
50 */ 48 */
51void (*pm_idle)(void) = NULL; 49static void (*pm_idle)(void) = NULL;
52EXPORT_SYMBOL(pm_idle);
53 50
54void (*pm_power_off)(void) = NULL; 51void (*pm_power_off)(void) = NULL;
55EXPORT_SYMBOL(pm_power_off); 52EXPORT_SYMBOL(pm_power_off);
56 53
57void disable_hlt(void)
58{
59 hlt_counter++;
60}
61
62EXPORT_SYMBOL(disable_hlt);
63
64void enable_hlt(void)
65{
66 hlt_counter--;
67}
68
69EXPORT_SYMBOL(enable_hlt);
70
71/* 54/*
72 * We use this is we don't have any better 55 * We use this is we don't have any better
73 * idle routine.. 56 * idle routine..
74 */ 57 */
75void default_idle(void) 58static void default_idle(void)
76{ 59{
77 /* M32R_FIXME: Please use "cpu_sleep" mode. */ 60 /* M32R_FIXME: Please use "cpu_sleep" mode. */
78 cpu_relax(); 61 cpu_relax();
@@ -260,15 +243,6 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long spu,
260 return 0; 243 return 0;
261} 244}
262 245
263/*
264 * Capture the user space registers if the task is not running (in user space)
265 */
266int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs)
267{
268 /* M32R_FIXME */
269 return 1;
270}
271
272asmlinkage int sys_fork(unsigned long r0, unsigned long r1, unsigned long r2, 246asmlinkage int sys_fork(unsigned long r0, unsigned long r1, unsigned long r2,
273 unsigned long r3, unsigned long r4, unsigned long r5, unsigned long r6, 247 unsigned long r3, unsigned long r4, unsigned long r5, unsigned long r6,
274 struct pt_regs regs) 248 struct pt_regs regs)
diff --git a/arch/m32r/kernel/smp.c b/arch/m32r/kernel/smp.c
index 7577f971ea4..929e5c9d3ad 100644
--- a/arch/m32r/kernel/smp.c
+++ b/arch/m32r/kernel/smp.c
@@ -84,7 +84,7 @@ void smp_send_timer(void);
84void smp_ipi_timer_interrupt(struct pt_regs *); 84void smp_ipi_timer_interrupt(struct pt_regs *);
85void smp_local_timer_interrupt(void); 85void smp_local_timer_interrupt(void);
86 86
87void send_IPI_allbutself(int, int); 87static void send_IPI_allbutself(int, int);
88static void send_IPI_mask(cpumask_t, int, int); 88static void send_IPI_mask(cpumask_t, int, int);
89unsigned long send_IPI_mask_phys(cpumask_t, int, int); 89unsigned long send_IPI_mask_phys(cpumask_t, int, int);
90 90
@@ -722,7 +722,7 @@ void smp_local_timer_interrupt(void)
722 * ---------- --- -------------------------------------------------------- 722 * ---------- --- --------------------------------------------------------
723 * 723 *
724 *==========================================================================*/ 724 *==========================================================================*/
725void send_IPI_allbutself(int ipi_num, int try) 725static void send_IPI_allbutself(int ipi_num, int try)
726{ 726{
727 cpumask_t cpumask; 727 cpumask_t cpumask;
728 728
diff --git a/arch/m32r/kernel/time.c b/arch/m32r/kernel/time.c
index 994cc155635..6ea017727cc 100644
--- a/arch/m32r/kernel/time.c
+++ b/arch/m32r/kernel/time.c
@@ -34,7 +34,6 @@
34#include <asm/hw_irq.h> 34#include <asm/hw_irq.h>
35 35
36#ifdef CONFIG_SMP 36#ifdef CONFIG_SMP
37extern void send_IPI_allbutself(int, int);
38extern void smp_local_timer_interrupt(void); 37extern void smp_local_timer_interrupt(void);
39#endif 38#endif
40 39
@@ -188,7 +187,7 @@ static long last_rtc_update = 0;
188 * timer_interrupt() needs to keep up the real-time clock, 187 * timer_interrupt() needs to keep up the real-time clock,
189 * as well as call the "do_timer()" routine every clocktick 188 * as well as call the "do_timer()" routine every clocktick
190 */ 189 */
191irqreturn_t timer_interrupt(int irq, void *dev_id) 190static irqreturn_t timer_interrupt(int irq, void *dev_id)
192{ 191{
193#ifndef CONFIG_SMP 192#ifndef CONFIG_SMP
194 profile_tick(CPU_PROFILING); 193 profile_tick(CPU_PROFILING);
@@ -228,7 +227,7 @@ irqreturn_t timer_interrupt(int irq, void *dev_id)
228 return IRQ_HANDLED; 227 return IRQ_HANDLED;
229} 228}
230 229
231struct irqaction irq0 = { 230static struct irqaction irq0 = {
232 .handler = timer_interrupt, 231 .handler = timer_interrupt,
233 .flags = IRQF_DISABLED, 232 .flags = IRQF_DISABLED,
234 .mask = CPU_MASK_NONE, 233 .mask = CPU_MASK_NONE,
diff --git a/arch/m32r/kernel/traps.c b/arch/m32r/kernel/traps.c
index 46159a4e644..03b14e55cd8 100644
--- a/arch/m32r/kernel/traps.c
+++ b/arch/m32r/kernel/traps.c
@@ -61,7 +61,7 @@ extern unsigned long eit_vector[];
61 ((unsigned long)func - (unsigned long)eit_vector - entry*4)/4 \ 61 ((unsigned long)func - (unsigned long)eit_vector - entry*4)/4 \
62 + 0xff000000UL 62 + 0xff000000UL
63 63
64void set_eit_vector_entries(void) 64static void set_eit_vector_entries(void)
65{ 65{
66 extern void default_eit_handler(void); 66 extern void default_eit_handler(void);
67 extern void system_call(void); 67 extern void system_call(void);
@@ -121,9 +121,9 @@ void __init trap_init(void)
121 cpu_init(); 121 cpu_init();
122} 122}
123 123
124int kstack_depth_to_print = 24; 124static int kstack_depth_to_print = 24;
125 125
126void show_trace(struct task_struct *task, unsigned long *stack) 126static void show_trace(struct task_struct *task, unsigned long *stack)
127{ 127{
128 unsigned long addr; 128 unsigned long addr;
129 129
@@ -224,7 +224,7 @@ bad:
224 printk("\n"); 224 printk("\n");
225} 225}
226 226
227DEFINE_SPINLOCK(die_lock); 227static DEFINE_SPINLOCK(die_lock);
228 228
229void die(const char * str, struct pt_regs * regs, long err) 229void die(const char * str, struct pt_regs * regs, long err)
230{ 230{
diff --git a/arch/m32r/lib/delay.c b/arch/m32r/lib/delay.c
index 59bfc34e0d9..ced549be80f 100644
--- a/arch/m32r/lib/delay.c
+++ b/arch/m32r/lib/delay.c
@@ -6,6 +6,7 @@
6 */ 6 */
7 7
8#include <linux/param.h> 8#include <linux/param.h>
9#include <linux/module.h>
9#ifdef CONFIG_SMP 10#ifdef CONFIG_SMP
10#include <linux/sched.h> 11#include <linux/sched.h>
11#include <asm/current.h> 12#include <asm/current.h>
@@ -121,3 +122,4 @@ void __ndelay(unsigned long nsecs)
121{ 122{
122 __const_udelay(nsecs * 0x00005); /* 2**32 / 1000000000 (rounded up) */ 123 __const_udelay(nsecs * 0x00005); /* 2**32 / 1000000000 (rounded up) */
123} 124}
125EXPORT_SYMBOL(__ndelay);
diff --git a/arch/m68k/atari/atakeyb.c b/arch/m68k/atari/atakeyb.c
index 8a2a53b3361..bb959fbab2d 100644
--- a/arch/m68k/atari/atakeyb.c
+++ b/arch/m68k/atari/atakeyb.c
@@ -580,13 +580,15 @@ int atari_keyb_init(void)
580 do { 580 do {
581 /* reset IKBD ACIA */ 581 /* reset IKBD ACIA */
582 acia.key_ctrl = ACIA_RESET | 582 acia.key_ctrl = ACIA_RESET |
583 (atari_switches & ATARI_SWITCH_IKBD) ? ACIA_RHTID : 0; 583 ((atari_switches & ATARI_SWITCH_IKBD) ?
584 ACIA_RHTID : 0);
584 (void)acia.key_ctrl; 585 (void)acia.key_ctrl;
585 (void)acia.key_data; 586 (void)acia.key_data;
586 587
587 /* reset MIDI ACIA */ 588 /* reset MIDI ACIA */
588 acia.mid_ctrl = ACIA_RESET | 589 acia.mid_ctrl = ACIA_RESET |
589 (atari_switches & ATARI_SWITCH_MIDI) ? ACIA_RHTID : 0; 590 ((atari_switches & ATARI_SWITCH_MIDI) ?
591 ACIA_RHTID : 0);
590 (void)acia.mid_ctrl; 592 (void)acia.mid_ctrl;
591 (void)acia.mid_data; 593 (void)acia.mid_data;
592 594
@@ -599,7 +601,8 @@ int atari_keyb_init(void)
599 ACIA_RHTID : ACIA_RLTID); 601 ACIA_RHTID : ACIA_RLTID);
600 602
601 acia.mid_ctrl = ACIA_DIV16 | ACIA_D8N1S | 603 acia.mid_ctrl = ACIA_DIV16 | ACIA_D8N1S |
602 (atari_switches & ATARI_SWITCH_MIDI) ? ACIA_RHTID : 0; 604 ((atari_switches & ATARI_SWITCH_MIDI) ?
605 ACIA_RHTID : 0);
603 606
604 /* make sure the interrupt line is up */ 607 /* make sure the interrupt line is up */
605 } while ((mfp.par_dt_reg & 0x10) == 0); 608 } while ((mfp.par_dt_reg & 0x10) == 0);
diff --git a/arch/m68k/configs/amiga_defconfig b/arch/m68k/configs/amiga_defconfig
index 8e2a0f5faf5..8bd61a640fc 100644
--- a/arch/m68k/configs/amiga_defconfig
+++ b/arch/m68k/configs/amiga_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:00 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -166,10 +172,6 @@ CONFIG_GENERIC_ISA_DMA=y
166CONFIG_ZONE_DMA=y 172CONFIG_ZONE_DMA=y
167# CONFIG_ARCH_SUPPORTS_MSI is not set 173# CONFIG_ARCH_SUPPORTS_MSI is not set
168CONFIG_ZORRO_NAMES=y 174CONFIG_ZORRO_NAMES=y
169
170#
171# Networking
172#
173CONFIG_NET=y 175CONFIG_NET=y
174 176
175# 177#
@@ -183,6 +185,7 @@ CONFIG_XFRM=y
183# CONFIG_XFRM_SUB_POLICY is not set 185# CONFIG_XFRM_SUB_POLICY is not set
184CONFIG_XFRM_MIGRATE=y 186CONFIG_XFRM_MIGRATE=y
185# CONFIG_XFRM_STATISTICS is not set 187# CONFIG_XFRM_STATISTICS is not set
188CONFIG_XFRM_IPCOMP=m
186CONFIG_NET_KEY=y 189CONFIG_NET_KEY=y
187CONFIG_NET_KEY_MIGRATE=y 190CONFIG_NET_KEY_MIGRATE=y
188CONFIG_INET=y 191CONFIG_INET=y
@@ -413,6 +416,7 @@ CONFIG_NET_CLS_ROUTE=y
413# 416#
414# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_EXT=y 418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
416# CONFIG_MAC80211 is not set 420# CONFIG_MAC80211 is not set
417CONFIG_IEEE80211=m 421CONFIG_IEEE80211=m
418# CONFIG_IEEE80211_DEBUG is not set 422# CONFIG_IEEE80211_DEBUG is not set
@@ -432,7 +436,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
432CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 436CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
433CONFIG_STANDALONE=y 437CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y 438CONFIG_PREVENT_FIRMWARE_BUILD=y
435CONFIG_FW_LOADER=m 439CONFIG_FW_LOADER=y
440# CONFIG_FIRMWARE_IN_KERNEL is not set
441CONFIG_EXTRA_FIRMWARE=""
436# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
437CONFIG_CONNECTOR=m 443CONFIG_CONNECTOR=m
438# CONFIG_MTD is not set 444# CONFIG_MTD is not set
@@ -460,6 +466,7 @@ CONFIG_CDROM_PKTCDVD=m
460CONFIG_CDROM_PKTCDVD_BUFFERS=8 466CONFIG_CDROM_PKTCDVD_BUFFERS=8
461# CONFIG_CDROM_PKTCDVD_WCACHE is not set 467# CONFIG_CDROM_PKTCDVD_WCACHE is not set
462CONFIG_ATA_OVER_ETH=m 468CONFIG_ATA_OVER_ETH=m
469# CONFIG_BLK_DEV_HD is not set
463CONFIG_MISC_DEVICES=y 470CONFIG_MISC_DEVICES=y
464# CONFIG_EEPROM_93CX6 is not set 471# CONFIG_EEPROM_93CX6 is not set
465# CONFIG_ENCLOSURE_SERVICES is not set 472# CONFIG_ENCLOSURE_SERVICES is not set
@@ -470,6 +477,7 @@ CONFIG_BLK_DEV_IDE=y
470# 477#
471# Please see Documentation/ide/ide.txt for help/info on IDE drives 478# Please see Documentation/ide/ide.txt for help/info on IDE drives
472# 479#
480CONFIG_IDE_ATAPI=y
473# CONFIG_BLK_DEV_IDE_SATA is not set 481# CONFIG_BLK_DEV_IDE_SATA is not set
474CONFIG_BLK_DEV_IDEDISK=y 482CONFIG_BLK_DEV_IDEDISK=y
475# CONFIG_IDEDISK_MULTI_MODE is not set 483# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -489,8 +497,6 @@ CONFIG_BLK_DEV_GAYLE=y
489CONFIG_BLK_DEV_IDEDOUBLER=y 497CONFIG_BLK_DEV_IDEDOUBLER=y
490CONFIG_BLK_DEV_BUDDHA=y 498CONFIG_BLK_DEV_BUDDHA=y
491# CONFIG_BLK_DEV_IDEDMA is not set 499# CONFIG_BLK_DEV_IDEDMA is not set
492# CONFIG_BLK_DEV_HD_ONLY is not set
493# CONFIG_BLK_DEV_HD is not set
494 500
495# 501#
496# SCSI device support 502# SCSI device support
@@ -556,6 +562,7 @@ CONFIG_A2091_SCSI=y
556CONFIG_GVP11_SCSI=y 562CONFIG_GVP11_SCSI=y
557CONFIG_SCSI_A4000T=y 563CONFIG_SCSI_A4000T=y
558CONFIG_SCSI_ZORRO7XX=y 564CONFIG_SCSI_ZORRO7XX=y
565# CONFIG_SCSI_DH is not set
559CONFIG_MD=y 566CONFIG_MD=y
560CONFIG_BLK_DEV_MD=m 567CONFIG_BLK_DEV_MD=m
561CONFIG_MD_LINEAR=m 568CONFIG_MD_LINEAR=m
@@ -564,7 +571,7 @@ CONFIG_MD_RAID1=m
564# CONFIG_MD_RAID10 is not set 571# CONFIG_MD_RAID10 is not set
565CONFIG_MD_RAID456=m 572CONFIG_MD_RAID456=m
566CONFIG_MD_RAID5_RESHAPE=y 573CONFIG_MD_RAID5_RESHAPE=y
567CONFIG_MD_MULTIPATH=m 574# CONFIG_MD_MULTIPATH is not set
568# CONFIG_MD_FAULTY is not set 575# CONFIG_MD_FAULTY is not set
569CONFIG_BLK_DEV_DM=m 576CONFIG_BLK_DEV_DM=m
570# CONFIG_DM_DEBUG is not set 577# CONFIG_DM_DEBUG is not set
@@ -573,13 +580,9 @@ CONFIG_DM_SNAPSHOT=m
573CONFIG_DM_MIRROR=m 580CONFIG_DM_MIRROR=m
574CONFIG_DM_ZERO=m 581CONFIG_DM_ZERO=m
575CONFIG_DM_MULTIPATH=m 582CONFIG_DM_MULTIPATH=m
576CONFIG_DM_MULTIPATH_EMC=m
577CONFIG_DM_MULTIPATH_RDAC=m
578CONFIG_DM_MULTIPATH_HP=m
579# CONFIG_DM_DELAY is not set 583# CONFIG_DM_DELAY is not set
580CONFIG_DM_UEVENT=y 584CONFIG_DM_UEVENT=y
581CONFIG_NETDEVICES=y 585CONFIG_NETDEVICES=y
582# CONFIG_NETDEVICES_MULTIQUEUE is not set
583CONFIG_DUMMY=m 586CONFIG_DUMMY=m
584# CONFIG_BONDING is not set 587# CONFIG_BONDING is not set
585CONFIG_MACVLAN=m 588CONFIG_MACVLAN=m
@@ -722,6 +725,7 @@ CONFIG_INPUT_M68K_BEEP=m
722# Character devices 725# Character devices
723# 726#
724CONFIG_VT=y 727CONFIG_VT=y
728CONFIG_CONSOLE_TRANSLATIONS=y
725CONFIG_VT_CONSOLE=y 729CONFIG_VT_CONSOLE=y
726CONFIG_HW_CONSOLE=y 730CONFIG_HW_CONSOLE=y
727CONFIG_VT_HW_CONSOLE_BINDING=y 731CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -757,6 +761,7 @@ CONFIG_GEN_RTC_X=y
757# CONFIG_POWER_SUPPLY is not set 761# CONFIG_POWER_SUPPLY is not set
758# CONFIG_HWMON is not set 762# CONFIG_HWMON is not set
759# CONFIG_THERMAL is not set 763# CONFIG_THERMAL is not set
764# CONFIG_THERMAL_HWMON is not set
760# CONFIG_WATCHDOG is not set 765# CONFIG_WATCHDOG is not set
761 766
762# 767#
@@ -768,8 +773,10 @@ CONFIG_SSB_POSSIBLE=y
768# 773#
769# Multifunction device drivers 774# Multifunction device drivers
770# 775#
776# CONFIG_MFD_CORE is not set
771# CONFIG_MFD_SM501 is not set 777# CONFIG_MFD_SM501 is not set
772# CONFIG_HTC_PASIC3 is not set 778# CONFIG_HTC_PASIC3 is not set
779# CONFIG_MFD_TMIO is not set
773 780
774# 781#
775# Multimedia devices 782# Multimedia devices
@@ -844,10 +851,6 @@ CONFIG_LOGO=y
844CONFIG_LOGO_LINUX_MONO=y 851CONFIG_LOGO_LINUX_MONO=y
845CONFIG_LOGO_LINUX_VGA16=y 852CONFIG_LOGO_LINUX_VGA16=y
846CONFIG_LOGO_LINUX_CLUT224=y 853CONFIG_LOGO_LINUX_CLUT224=y
847
848#
849# Sound
850#
851CONFIG_SOUND=m 854CONFIG_SOUND=m
852CONFIG_DMASOUND_PAULA=m 855CONFIG_DMASOUND_PAULA=m
853CONFIG_DMASOUND=m 856CONFIG_DMASOUND=m
@@ -861,6 +864,7 @@ CONFIG_HIDRAW=y
861# CONFIG_NEW_LEDS is not set 864# CONFIG_NEW_LEDS is not set
862# CONFIG_ACCESSIBILITY is not set 865# CONFIG_ACCESSIBILITY is not set
863# CONFIG_RTC_CLASS is not set 866# CONFIG_RTC_CLASS is not set
867# CONFIG_DMADEVICES is not set
864# CONFIG_AUXDISPLAY is not set 868# CONFIG_AUXDISPLAY is not set
865# CONFIG_UIO is not set 869# CONFIG_UIO is not set
866 870
@@ -899,6 +903,7 @@ CONFIG_XFS_FS=m
899CONFIG_OCFS2_FS=m 903CONFIG_OCFS2_FS=m
900CONFIG_OCFS2_FS_O2CB=m 904CONFIG_OCFS2_FS_O2CB=m
901CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 905CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
906# CONFIG_OCFS2_FS_STATS is not set
902# CONFIG_OCFS2_DEBUG_MASKLOG is not set 907# CONFIG_OCFS2_DEBUG_MASKLOG is not set
903# CONFIG_OCFS2_DEBUG_FS is not set 908# CONFIG_OCFS2_DEBUG_FS is not set
904CONFIG_DNOTIFY=y 909CONFIG_DNOTIFY=y
@@ -958,6 +963,7 @@ CONFIG_HFSPLUS_FS=m
958CONFIG_CRAMFS=m 963CONFIG_CRAMFS=m
959# CONFIG_VXFS_FS is not set 964# CONFIG_VXFS_FS is not set
960CONFIG_MINIX_FS=y 965CONFIG_MINIX_FS=y
966# CONFIG_OMFS_FS is not set
961CONFIG_HPFS_FS=m 967CONFIG_HPFS_FS=m
962# CONFIG_QNX4FS_FS is not set 968# CONFIG_QNX4FS_FS is not set
963# CONFIG_ROMFS_FS is not set 969# CONFIG_ROMFS_FS is not set
@@ -980,7 +986,6 @@ CONFIG_EXPORTFS=m
980CONFIG_NFS_COMMON=y 986CONFIG_NFS_COMMON=y
981CONFIG_SUNRPC=m 987CONFIG_SUNRPC=m
982CONFIG_SUNRPC_GSS=m 988CONFIG_SUNRPC_GSS=m
983CONFIG_SUNRPC_BIND34=y
984CONFIG_RPCSEC_GSS_KRB5=m 989CONFIG_RPCSEC_GSS_KRB5=m
985# CONFIG_RPCSEC_GSS_SPKM3 is not set 990# CONFIG_RPCSEC_GSS_SPKM3 is not set
986CONFIG_SMB_FS=m 991CONFIG_SMB_FS=m
@@ -989,7 +994,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
989# CONFIG_CIFS is not set 994# CONFIG_CIFS is not set
990# CONFIG_NCP_FS is not set 995# CONFIG_NCP_FS is not set
991CONFIG_CODA_FS=m 996CONFIG_CODA_FS=m
992# CONFIG_CODA_FS_OLD_API is not set
993# CONFIG_AFS_FS is not set 997# CONFIG_AFS_FS is not set
994 998
995# 999#
@@ -1054,6 +1058,8 @@ CONFIG_MAGIC_SYSRQ=y
1054# CONFIG_HEADERS_CHECK is not set 1058# CONFIG_HEADERS_CHECK is not set
1055# CONFIG_DEBUG_KERNEL is not set 1059# CONFIG_DEBUG_KERNEL is not set
1056CONFIG_DEBUG_BUGVERBOSE=y 1060CONFIG_DEBUG_BUGVERBOSE=y
1061CONFIG_DEBUG_MEMORY_INIT=y
1062CONFIG_SYSCTL_SYSCALL_CHECK=y
1057# CONFIG_SAMPLES is not set 1063# CONFIG_SAMPLES is not set
1058 1064
1059# 1065#
@@ -1113,6 +1119,10 @@ CONFIG_CRYPTO_CRC32C=m
1113CONFIG_CRYPTO_MD4=m 1119CONFIG_CRYPTO_MD4=m
1114CONFIG_CRYPTO_MD5=m 1120CONFIG_CRYPTO_MD5=m
1115CONFIG_CRYPTO_MICHAEL_MIC=m 1121CONFIG_CRYPTO_MICHAEL_MIC=m
1122CONFIG_CRYPTO_RMD128=m
1123CONFIG_CRYPTO_RMD160=m
1124CONFIG_CRYPTO_RMD256=m
1125CONFIG_CRYPTO_RMD320=m
1116CONFIG_CRYPTO_SHA1=m 1126CONFIG_CRYPTO_SHA1=m
1117CONFIG_CRYPTO_SHA256=m 1127CONFIG_CRYPTO_SHA256=m
1118CONFIG_CRYPTO_SHA512=m 1128CONFIG_CRYPTO_SHA512=m
@@ -1154,6 +1164,7 @@ CONFIG_BITREVERSE=y
1154# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1164# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1155CONFIG_CRC_CCITT=m 1165CONFIG_CRC_CCITT=m
1156CONFIG_CRC16=m 1166CONFIG_CRC16=m
1167CONFIG_CRC_T10DIF=y
1157CONFIG_CRC_ITU_T=m 1168CONFIG_CRC_ITU_T=m
1158CONFIG_CRC32=y 1169CONFIG_CRC32=y
1159# CONFIG_CRC7 is not set 1170# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/apollo_defconfig b/arch/m68k/configs/apollo_defconfig
index e2d511e2a1d..c41b854c028 100644
--- a/arch/m68k/configs/apollo_defconfig
+++ b/arch/m68k/configs/apollo_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:01 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -161,10 +167,6 @@ CONFIG_HEARTBEAT=y
161CONFIG_PROC_HARDWARE=y 167CONFIG_PROC_HARDWARE=y
162CONFIG_ZONE_DMA=y 168CONFIG_ZONE_DMA=y
163# CONFIG_ARCH_SUPPORTS_MSI is not set 169# CONFIG_ARCH_SUPPORTS_MSI is not set
164
165#
166# Networking
167#
168CONFIG_NET=y 170CONFIG_NET=y
169 171
170# 172#
@@ -178,6 +180,7 @@ CONFIG_XFRM=y
178# CONFIG_XFRM_SUB_POLICY is not set 180# CONFIG_XFRM_SUB_POLICY is not set
179CONFIG_XFRM_MIGRATE=y 181CONFIG_XFRM_MIGRATE=y
180# CONFIG_XFRM_STATISTICS is not set 182# CONFIG_XFRM_STATISTICS is not set
183CONFIG_XFRM_IPCOMP=m
181CONFIG_NET_KEY=y 184CONFIG_NET_KEY=y
182CONFIG_NET_KEY_MIGRATE=y 185CONFIG_NET_KEY_MIGRATE=y
183CONFIG_INET=y 186CONFIG_INET=y
@@ -411,6 +414,7 @@ CONFIG_NET_CLS_ROUTE=y
411# 414#
412# CONFIG_CFG80211 is not set 415# CONFIG_CFG80211 is not set
413CONFIG_WIRELESS_EXT=y 416CONFIG_WIRELESS_EXT=y
417# CONFIG_WIRELESS_EXT_SYSFS is not set
414# CONFIG_MAC80211 is not set 418# CONFIG_MAC80211 is not set
415CONFIG_IEEE80211=m 419CONFIG_IEEE80211=m
416# CONFIG_IEEE80211_DEBUG is not set 420# CONFIG_IEEE80211_DEBUG is not set
@@ -430,7 +434,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
430CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 434CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
431CONFIG_STANDALONE=y 435CONFIG_STANDALONE=y
432CONFIG_PREVENT_FIRMWARE_BUILD=y 436CONFIG_PREVENT_FIRMWARE_BUILD=y
433CONFIG_FW_LOADER=m 437CONFIG_FW_LOADER=y
438# CONFIG_FIRMWARE_IN_KERNEL is not set
439CONFIG_EXTRA_FIRMWARE=""
434# CONFIG_SYS_HYPERVISOR is not set 440# CONFIG_SYS_HYPERVISOR is not set
435CONFIG_CONNECTOR=m 441CONFIG_CONNECTOR=m
436# CONFIG_MTD is not set 442# CONFIG_MTD is not set
@@ -448,6 +454,7 @@ CONFIG_CDROM_PKTCDVD=m
448CONFIG_CDROM_PKTCDVD_BUFFERS=8 454CONFIG_CDROM_PKTCDVD_BUFFERS=8
449# CONFIG_CDROM_PKTCDVD_WCACHE is not set 455# CONFIG_CDROM_PKTCDVD_WCACHE is not set
450CONFIG_ATA_OVER_ETH=m 456CONFIG_ATA_OVER_ETH=m
457# CONFIG_BLK_DEV_HD is not set
451CONFIG_MISC_DEVICES=y 458CONFIG_MISC_DEVICES=y
452# CONFIG_EEPROM_93CX6 is not set 459# CONFIG_EEPROM_93CX6 is not set
453# CONFIG_ENCLOSURE_SERVICES is not set 460# CONFIG_ENCLOSURE_SERVICES is not set
@@ -499,6 +506,7 @@ CONFIG_SCSI_SRP_TGT_ATTRS=y
499CONFIG_SCSI_LOWLEVEL=y 506CONFIG_SCSI_LOWLEVEL=y
500CONFIG_ISCSI_TCP=m 507CONFIG_ISCSI_TCP=m
501# CONFIG_SCSI_DEBUG is not set 508# CONFIG_SCSI_DEBUG is not set
509# CONFIG_SCSI_DH is not set
502CONFIG_MD=y 510CONFIG_MD=y
503CONFIG_BLK_DEV_MD=m 511CONFIG_BLK_DEV_MD=m
504CONFIG_MD_LINEAR=m 512CONFIG_MD_LINEAR=m
@@ -507,7 +515,7 @@ CONFIG_MD_RAID1=m
507# CONFIG_MD_RAID10 is not set 515# CONFIG_MD_RAID10 is not set
508CONFIG_MD_RAID456=m 516CONFIG_MD_RAID456=m
509CONFIG_MD_RAID5_RESHAPE=y 517CONFIG_MD_RAID5_RESHAPE=y
510CONFIG_MD_MULTIPATH=m 518# CONFIG_MD_MULTIPATH is not set
511# CONFIG_MD_FAULTY is not set 519# CONFIG_MD_FAULTY is not set
512CONFIG_BLK_DEV_DM=m 520CONFIG_BLK_DEV_DM=m
513# CONFIG_DM_DEBUG is not set 521# CONFIG_DM_DEBUG is not set
@@ -516,13 +524,9 @@ CONFIG_DM_SNAPSHOT=m
516CONFIG_DM_MIRROR=m 524CONFIG_DM_MIRROR=m
517CONFIG_DM_ZERO=m 525CONFIG_DM_ZERO=m
518CONFIG_DM_MULTIPATH=m 526CONFIG_DM_MULTIPATH=m
519CONFIG_DM_MULTIPATH_EMC=m
520CONFIG_DM_MULTIPATH_RDAC=m
521CONFIG_DM_MULTIPATH_HP=m
522# CONFIG_DM_DELAY is not set 527# CONFIG_DM_DELAY is not set
523CONFIG_DM_UEVENT=y 528CONFIG_DM_UEVENT=y
524CONFIG_NETDEVICES=y 529CONFIG_NETDEVICES=y
525# CONFIG_NETDEVICES_MULTIQUEUE is not set
526CONFIG_DUMMY=m 530CONFIG_DUMMY=m
527# CONFIG_BONDING is not set 531# CONFIG_BONDING is not set
528CONFIG_MACVLAN=m 532CONFIG_MACVLAN=m
@@ -532,7 +536,6 @@ CONFIG_VETH=m
532# CONFIG_PHYLIB is not set 536# CONFIG_PHYLIB is not set
533CONFIG_NET_ETHERNET=y 537CONFIG_NET_ETHERNET=y
534# CONFIG_MII is not set 538# CONFIG_MII is not set
535CONFIG_APOLLO_ELPLUS=y
536# CONFIG_IBM_NEW_EMAC_ZMII is not set 539# CONFIG_IBM_NEW_EMAC_ZMII is not set
537# CONFIG_IBM_NEW_EMAC_RGMII is not set 540# CONFIG_IBM_NEW_EMAC_RGMII is not set
538# CONFIG_IBM_NEW_EMAC_TAH is not set 541# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -627,6 +630,7 @@ CONFIG_SERIO_LIBPS2=m
627# Character devices 630# Character devices
628# 631#
629CONFIG_VT=y 632CONFIG_VT=y
633CONFIG_CONSOLE_TRANSLATIONS=y
630CONFIG_VT_CONSOLE=y 634CONFIG_VT_CONSOLE=y
631CONFIG_HW_CONSOLE=y 635CONFIG_HW_CONSOLE=y
632CONFIG_VT_HW_CONSOLE_BINDING=y 636CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -657,6 +661,7 @@ CONFIG_GEN_RTC_X=y
657# CONFIG_POWER_SUPPLY is not set 661# CONFIG_POWER_SUPPLY is not set
658# CONFIG_HWMON is not set 662# CONFIG_HWMON is not set
659# CONFIG_THERMAL is not set 663# CONFIG_THERMAL is not set
664# CONFIG_THERMAL_HWMON is not set
660# CONFIG_WATCHDOG is not set 665# CONFIG_WATCHDOG is not set
661 666
662# 667#
@@ -668,8 +673,10 @@ CONFIG_SSB_POSSIBLE=y
668# 673#
669# Multifunction device drivers 674# Multifunction device drivers
670# 675#
676# CONFIG_MFD_CORE is not set
671# CONFIG_MFD_SM501 is not set 677# CONFIG_MFD_SM501 is not set
672# CONFIG_HTC_PASIC3 is not set 678# CONFIG_HTC_PASIC3 is not set
679# CONFIG_MFD_TMIO is not set
673 680
674# 681#
675# Multimedia devices 682# Multimedia devices
@@ -738,10 +745,6 @@ CONFIG_LOGO=y
738CONFIG_LOGO_LINUX_MONO=y 745CONFIG_LOGO_LINUX_MONO=y
739# CONFIG_LOGO_LINUX_VGA16 is not set 746# CONFIG_LOGO_LINUX_VGA16 is not set
740# CONFIG_LOGO_LINUX_CLUT224 is not set 747# CONFIG_LOGO_LINUX_CLUT224 is not set
741
742#
743# Sound
744#
745# CONFIG_SOUND is not set 748# CONFIG_SOUND is not set
746CONFIG_HID_SUPPORT=y 749CONFIG_HID_SUPPORT=y
747CONFIG_HID=m 750CONFIG_HID=m
@@ -753,6 +756,7 @@ CONFIG_HIDRAW=y
753# CONFIG_NEW_LEDS is not set 756# CONFIG_NEW_LEDS is not set
754# CONFIG_ACCESSIBILITY is not set 757# CONFIG_ACCESSIBILITY is not set
755# CONFIG_RTC_CLASS is not set 758# CONFIG_RTC_CLASS is not set
759# CONFIG_DMADEVICES is not set
756# CONFIG_UIO is not set 760# CONFIG_UIO is not set
757 761
758# 762#
@@ -789,6 +793,7 @@ CONFIG_XFS_FS=m
789CONFIG_OCFS2_FS=m 793CONFIG_OCFS2_FS=m
790CONFIG_OCFS2_FS_O2CB=m 794CONFIG_OCFS2_FS_O2CB=m
791CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 795CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
796# CONFIG_OCFS2_FS_STATS is not set
792# CONFIG_OCFS2_DEBUG_MASKLOG is not set 797# CONFIG_OCFS2_DEBUG_MASKLOG is not set
793# CONFIG_OCFS2_DEBUG_FS is not set 798# CONFIG_OCFS2_DEBUG_FS is not set
794CONFIG_DNOTIFY=y 799CONFIG_DNOTIFY=y
@@ -848,6 +853,7 @@ CONFIG_HFSPLUS_FS=m
848CONFIG_CRAMFS=m 853CONFIG_CRAMFS=m
849# CONFIG_VXFS_FS is not set 854# CONFIG_VXFS_FS is not set
850CONFIG_MINIX_FS=y 855CONFIG_MINIX_FS=y
856# CONFIG_OMFS_FS is not set
851CONFIG_HPFS_FS=m 857CONFIG_HPFS_FS=m
852# CONFIG_QNX4FS_FS is not set 858# CONFIG_QNX4FS_FS is not set
853# CONFIG_ROMFS_FS is not set 859# CONFIG_ROMFS_FS is not set
@@ -860,18 +866,17 @@ CONFIG_NFS_FS=y
860CONFIG_NFS_V3=y 866CONFIG_NFS_V3=y
861# CONFIG_NFS_V3_ACL is not set 867# CONFIG_NFS_V3_ACL is not set
862CONFIG_NFS_V4=y 868CONFIG_NFS_V4=y
869CONFIG_ROOT_NFS=y
863CONFIG_NFSD=m 870CONFIG_NFSD=m
864CONFIG_NFSD_V3=y 871CONFIG_NFSD_V3=y
865# CONFIG_NFSD_V3_ACL is not set 872# CONFIG_NFSD_V3_ACL is not set
866# CONFIG_NFSD_V4 is not set 873# CONFIG_NFSD_V4 is not set
867CONFIG_ROOT_NFS=y
868CONFIG_LOCKD=y 874CONFIG_LOCKD=y
869CONFIG_LOCKD_V4=y 875CONFIG_LOCKD_V4=y
870CONFIG_EXPORTFS=m 876CONFIG_EXPORTFS=m
871CONFIG_NFS_COMMON=y 877CONFIG_NFS_COMMON=y
872CONFIG_SUNRPC=y 878CONFIG_SUNRPC=y
873CONFIG_SUNRPC_GSS=y 879CONFIG_SUNRPC_GSS=y
874CONFIG_SUNRPC_BIND34=y
875CONFIG_RPCSEC_GSS_KRB5=y 880CONFIG_RPCSEC_GSS_KRB5=y
876# CONFIG_RPCSEC_GSS_SPKM3 is not set 881# CONFIG_RPCSEC_GSS_SPKM3 is not set
877CONFIG_SMB_FS=m 882CONFIG_SMB_FS=m
@@ -880,7 +885,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
880# CONFIG_CIFS is not set 885# CONFIG_CIFS is not set
881# CONFIG_NCP_FS is not set 886# CONFIG_NCP_FS is not set
882CONFIG_CODA_FS=m 887CONFIG_CODA_FS=m
883# CONFIG_CODA_FS_OLD_API is not set
884# CONFIG_AFS_FS is not set 888# CONFIG_AFS_FS is not set
885 889
886# 890#
@@ -944,6 +948,8 @@ CONFIG_MAGIC_SYSRQ=y
944# CONFIG_HEADERS_CHECK is not set 948# CONFIG_HEADERS_CHECK is not set
945# CONFIG_DEBUG_KERNEL is not set 949# CONFIG_DEBUG_KERNEL is not set
946CONFIG_DEBUG_BUGVERBOSE=y 950CONFIG_DEBUG_BUGVERBOSE=y
951CONFIG_DEBUG_MEMORY_INIT=y
952CONFIG_SYSCTL_SYSCALL_CHECK=y
947# CONFIG_SAMPLES is not set 953# CONFIG_SAMPLES is not set
948 954
949# 955#
@@ -1003,6 +1009,10 @@ CONFIG_CRYPTO_CRC32C=m
1003CONFIG_CRYPTO_MD4=m 1009CONFIG_CRYPTO_MD4=m
1004CONFIG_CRYPTO_MD5=y 1010CONFIG_CRYPTO_MD5=y
1005CONFIG_CRYPTO_MICHAEL_MIC=m 1011CONFIG_CRYPTO_MICHAEL_MIC=m
1012CONFIG_CRYPTO_RMD128=m
1013CONFIG_CRYPTO_RMD160=m
1014CONFIG_CRYPTO_RMD256=m
1015CONFIG_CRYPTO_RMD320=m
1006CONFIG_CRYPTO_SHA1=m 1016CONFIG_CRYPTO_SHA1=m
1007CONFIG_CRYPTO_SHA256=m 1017CONFIG_CRYPTO_SHA256=m
1008CONFIG_CRYPTO_SHA512=m 1018CONFIG_CRYPTO_SHA512=m
@@ -1044,6 +1054,7 @@ CONFIG_BITREVERSE=y
1044# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1054# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1045CONFIG_CRC_CCITT=m 1055CONFIG_CRC_CCITT=m
1046CONFIG_CRC16=m 1056CONFIG_CRC16=m
1057CONFIG_CRC_T10DIF=y
1047CONFIG_CRC_ITU_T=m 1058CONFIG_CRC_ITU_T=m
1048CONFIG_CRC32=y 1059CONFIG_CRC32=y
1049# CONFIG_CRC7 is not set 1060# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/atari_defconfig b/arch/m68k/configs/atari_defconfig
index 6e20d656ada..654c5acb9e8 100644
--- a/arch/m68k/configs/atari_defconfig
+++ b/arch/m68k/configs/atari_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:02 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -162,10 +168,6 @@ CONFIG_HEARTBEAT=y
162CONFIG_PROC_HARDWARE=y 168CONFIG_PROC_HARDWARE=y
163CONFIG_ZONE_DMA=y 169CONFIG_ZONE_DMA=y
164# CONFIG_ARCH_SUPPORTS_MSI is not set 170# CONFIG_ARCH_SUPPORTS_MSI is not set
165
166#
167# Networking
168#
169CONFIG_NET=y 171CONFIG_NET=y
170 172
171# 173#
@@ -179,6 +181,7 @@ CONFIG_XFRM=y
179# CONFIG_XFRM_SUB_POLICY is not set 181# CONFIG_XFRM_SUB_POLICY is not set
180CONFIG_XFRM_MIGRATE=y 182CONFIG_XFRM_MIGRATE=y
181# CONFIG_XFRM_STATISTICS is not set 183# CONFIG_XFRM_STATISTICS is not set
184CONFIG_XFRM_IPCOMP=m
182CONFIG_NET_KEY=y 185CONFIG_NET_KEY=y
183CONFIG_NET_KEY_MIGRATE=y 186CONFIG_NET_KEY_MIGRATE=y
184CONFIG_INET=y 187CONFIG_INET=y
@@ -409,6 +412,7 @@ CONFIG_NET_CLS_ROUTE=y
409# 412#
410# CONFIG_CFG80211 is not set 413# CONFIG_CFG80211 is not set
411CONFIG_WIRELESS_EXT=y 414CONFIG_WIRELESS_EXT=y
415# CONFIG_WIRELESS_EXT_SYSFS is not set
412# CONFIG_MAC80211 is not set 416# CONFIG_MAC80211 is not set
413CONFIG_IEEE80211=m 417CONFIG_IEEE80211=m
414# CONFIG_IEEE80211_DEBUG is not set 418# CONFIG_IEEE80211_DEBUG is not set
@@ -428,7 +432,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
428CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 432CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
429CONFIG_STANDALONE=y 433CONFIG_STANDALONE=y
430CONFIG_PREVENT_FIRMWARE_BUILD=y 434CONFIG_PREVENT_FIRMWARE_BUILD=y
431CONFIG_FW_LOADER=m 435CONFIG_FW_LOADER=y
436# CONFIG_FIRMWARE_IN_KERNEL is not set
437CONFIG_EXTRA_FIRMWARE=""
432# CONFIG_SYS_HYPERVISOR is not set 438# CONFIG_SYS_HYPERVISOR is not set
433CONFIG_CONNECTOR=m 439CONFIG_CONNECTOR=m
434# CONFIG_MTD is not set 440# CONFIG_MTD is not set
@@ -452,6 +458,7 @@ CONFIG_CDROM_PKTCDVD=m
452CONFIG_CDROM_PKTCDVD_BUFFERS=8 458CONFIG_CDROM_PKTCDVD_BUFFERS=8
453# CONFIG_CDROM_PKTCDVD_WCACHE is not set 459# CONFIG_CDROM_PKTCDVD_WCACHE is not set
454CONFIG_ATA_OVER_ETH=m 460CONFIG_ATA_OVER_ETH=m
461# CONFIG_BLK_DEV_HD is not set
455CONFIG_MISC_DEVICES=y 462CONFIG_MISC_DEVICES=y
456# CONFIG_EEPROM_93CX6 is not set 463# CONFIG_EEPROM_93CX6 is not set
457# CONFIG_ENCLOSURE_SERVICES is not set 464# CONFIG_ENCLOSURE_SERVICES is not set
@@ -462,6 +469,7 @@ CONFIG_BLK_DEV_IDE=y
462# 469#
463# Please see Documentation/ide/ide.txt for help/info on IDE drives 470# Please see Documentation/ide/ide.txt for help/info on IDE drives
464# 471#
472CONFIG_IDE_ATAPI=y
465# CONFIG_BLK_DEV_IDE_SATA is not set 473# CONFIG_BLK_DEV_IDE_SATA is not set
466CONFIG_BLK_DEV_IDEDISK=y 474CONFIG_BLK_DEV_IDEDISK=y
467# CONFIG_IDEDISK_MULTI_MODE is not set 475# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -479,8 +487,6 @@ CONFIG_IDE_PROC_FS=y
479# CONFIG_BLK_DEV_PLATFORM is not set 487# CONFIG_BLK_DEV_PLATFORM is not set
480CONFIG_BLK_DEV_FALCON_IDE=y 488CONFIG_BLK_DEV_FALCON_IDE=y
481# CONFIG_BLK_DEV_IDEDMA is not set 489# CONFIG_BLK_DEV_IDEDMA is not set
482# CONFIG_BLK_DEV_HD_ONLY is not set
483# CONFIG_BLK_DEV_HD is not set
484 490
485# 491#
486# SCSI device support 492# SCSI device support
@@ -530,6 +536,7 @@ CONFIG_ISCSI_TCP=m
530CONFIG_ATARI_SCSI=y 536CONFIG_ATARI_SCSI=y
531# CONFIG_ATARI_SCSI_TOSHIBA_DELAY is not set 537# CONFIG_ATARI_SCSI_TOSHIBA_DELAY is not set
532# CONFIG_ATARI_SCSI_RESET_BOOT is not set 538# CONFIG_ATARI_SCSI_RESET_BOOT is not set
539# CONFIG_SCSI_DH is not set
533CONFIG_MD=y 540CONFIG_MD=y
534CONFIG_BLK_DEV_MD=m 541CONFIG_BLK_DEV_MD=m
535CONFIG_MD_LINEAR=m 542CONFIG_MD_LINEAR=m
@@ -538,7 +545,7 @@ CONFIG_MD_RAID1=m
538# CONFIG_MD_RAID10 is not set 545# CONFIG_MD_RAID10 is not set
539CONFIG_MD_RAID456=m 546CONFIG_MD_RAID456=m
540CONFIG_MD_RAID5_RESHAPE=y 547CONFIG_MD_RAID5_RESHAPE=y
541CONFIG_MD_MULTIPATH=m 548# CONFIG_MD_MULTIPATH is not set
542# CONFIG_MD_FAULTY is not set 549# CONFIG_MD_FAULTY is not set
543CONFIG_BLK_DEV_DM=m 550CONFIG_BLK_DEV_DM=m
544# CONFIG_DM_DEBUG is not set 551# CONFIG_DM_DEBUG is not set
@@ -547,13 +554,9 @@ CONFIG_DM_SNAPSHOT=m
547CONFIG_DM_MIRROR=m 554CONFIG_DM_MIRROR=m
548CONFIG_DM_ZERO=m 555CONFIG_DM_ZERO=m
549CONFIG_DM_MULTIPATH=m 556CONFIG_DM_MULTIPATH=m
550CONFIG_DM_MULTIPATH_EMC=m
551CONFIG_DM_MULTIPATH_RDAC=m
552CONFIG_DM_MULTIPATH_HP=m
553# CONFIG_DM_DELAY is not set 557# CONFIG_DM_DELAY is not set
554CONFIG_DM_UEVENT=y 558CONFIG_DM_UEVENT=y
555CONFIG_NETDEVICES=y 559CONFIG_NETDEVICES=y
556# CONFIG_NETDEVICES_MULTIQUEUE is not set
557CONFIG_DUMMY=m 560CONFIG_DUMMY=m
558# CONFIG_BONDING is not set 561# CONFIG_BONDING is not set
559CONFIG_MACVLAN=m 562CONFIG_MACVLAN=m
@@ -666,6 +669,7 @@ CONFIG_SERIO_LIBPS2=y
666# Character devices 669# Character devices
667# 670#
668CONFIG_VT=y 671CONFIG_VT=y
672CONFIG_CONSOLE_TRANSLATIONS=y
669CONFIG_VT_CONSOLE=y 673CONFIG_VT_CONSOLE=y
670CONFIG_HW_CONSOLE=y 674CONFIG_HW_CONSOLE=y
671CONFIG_VT_HW_CONSOLE_BINDING=y 675CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -700,6 +704,7 @@ CONFIG_GEN_RTC_X=y
700# CONFIG_POWER_SUPPLY is not set 704# CONFIG_POWER_SUPPLY is not set
701# CONFIG_HWMON is not set 705# CONFIG_HWMON is not set
702# CONFIG_THERMAL is not set 706# CONFIG_THERMAL is not set
707# CONFIG_THERMAL_HWMON is not set
703# CONFIG_WATCHDOG is not set 708# CONFIG_WATCHDOG is not set
704 709
705# 710#
@@ -711,8 +716,10 @@ CONFIG_SSB_POSSIBLE=y
711# 716#
712# Multifunction device drivers 717# Multifunction device drivers
713# 718#
719# CONFIG_MFD_CORE is not set
714# CONFIG_MFD_SM501 is not set 720# CONFIG_MFD_SM501 is not set
715# CONFIG_HTC_PASIC3 is not set 721# CONFIG_HTC_PASIC3 is not set
722# CONFIG_MFD_TMIO is not set
716 723
717# 724#
718# Multimedia devices 725# Multimedia devices
@@ -782,10 +789,6 @@ CONFIG_LOGO=y
782CONFIG_LOGO_LINUX_MONO=y 789CONFIG_LOGO_LINUX_MONO=y
783CONFIG_LOGO_LINUX_VGA16=y 790CONFIG_LOGO_LINUX_VGA16=y
784CONFIG_LOGO_LINUX_CLUT224=y 791CONFIG_LOGO_LINUX_CLUT224=y
785
786#
787# Sound
788#
789CONFIG_SOUND=m 792CONFIG_SOUND=m
790CONFIG_DMASOUND_ATARI=m 793CONFIG_DMASOUND_ATARI=m
791CONFIG_DMASOUND=m 794CONFIG_DMASOUND=m
@@ -799,6 +802,7 @@ CONFIG_HIDRAW=y
799# CONFIG_NEW_LEDS is not set 802# CONFIG_NEW_LEDS is not set
800# CONFIG_ACCESSIBILITY is not set 803# CONFIG_ACCESSIBILITY is not set
801# CONFIG_RTC_CLASS is not set 804# CONFIG_RTC_CLASS is not set
805# CONFIG_DMADEVICES is not set
802# CONFIG_AUXDISPLAY is not set 806# CONFIG_AUXDISPLAY is not set
803# CONFIG_UIO is not set 807# CONFIG_UIO is not set
804 808
@@ -806,11 +810,8 @@ CONFIG_HIDRAW=y
806# Character devices 810# Character devices
807# 811#
808CONFIG_ATARI_MFPSER=m 812CONFIG_ATARI_MFPSER=m
809CONFIG_ATARI_SCC=y
810CONFIG_ATARI_SCC_DMA=y
811CONFIG_ATARI_MIDI=m 813CONFIG_ATARI_MIDI=m
812CONFIG_ATARI_DSP56K=m 814CONFIG_ATARI_DSP56K=m
813# CONFIG_SERIAL_CONSOLE is not set
814 815
815# 816#
816# File systems 817# File systems
@@ -820,8 +821,10 @@ CONFIG_EXT2_FS=y
820# CONFIG_EXT2_FS_XIP is not set 821# CONFIG_EXT2_FS_XIP is not set
821CONFIG_EXT3_FS=y 822CONFIG_EXT3_FS=y
822# CONFIG_EXT3_FS_XATTR is not set 823# CONFIG_EXT3_FS_XATTR is not set
823# CONFIG_EXT4DEV_FS is not set 824CONFIG_EXT4DEV_FS=y
825# CONFIG_EXT4DEV_FS_XATTR is not set
824CONFIG_JBD=y 826CONFIG_JBD=y
827CONFIG_JBD2=y
825CONFIG_REISERFS_FS=m 828CONFIG_REISERFS_FS=m
826# CONFIG_REISERFS_CHECK is not set 829# CONFIG_REISERFS_CHECK is not set
827# CONFIG_REISERFS_PROC_INFO is not set 830# CONFIG_REISERFS_PROC_INFO is not set
@@ -840,6 +843,7 @@ CONFIG_XFS_FS=m
840CONFIG_OCFS2_FS=m 843CONFIG_OCFS2_FS=m
841CONFIG_OCFS2_FS_O2CB=m 844CONFIG_OCFS2_FS_O2CB=m
842CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 845CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
846# CONFIG_OCFS2_FS_STATS is not set
843# CONFIG_OCFS2_DEBUG_MASKLOG is not set 847# CONFIG_OCFS2_DEBUG_MASKLOG is not set
844# CONFIG_OCFS2_DEBUG_FS is not set 848# CONFIG_OCFS2_DEBUG_FS is not set
845CONFIG_DNOTIFY=y 849CONFIG_DNOTIFY=y
@@ -899,6 +903,7 @@ CONFIG_HFSPLUS_FS=m
899CONFIG_CRAMFS=m 903CONFIG_CRAMFS=m
900# CONFIG_VXFS_FS is not set 904# CONFIG_VXFS_FS is not set
901CONFIG_MINIX_FS=y 905CONFIG_MINIX_FS=y
906# CONFIG_OMFS_FS is not set
902CONFIG_HPFS_FS=m 907CONFIG_HPFS_FS=m
903# CONFIG_QNX4FS_FS is not set 908# CONFIG_QNX4FS_FS is not set
904# CONFIG_ROMFS_FS is not set 909# CONFIG_ROMFS_FS is not set
@@ -920,7 +925,6 @@ CONFIG_LOCKD_V4=y
920CONFIG_EXPORTFS=m 925CONFIG_EXPORTFS=m
921CONFIG_NFS_COMMON=y 926CONFIG_NFS_COMMON=y
922CONFIG_SUNRPC=m 927CONFIG_SUNRPC=m
923CONFIG_SUNRPC_BIND34=y
924# CONFIG_RPCSEC_GSS_KRB5 is not set 928# CONFIG_RPCSEC_GSS_KRB5 is not set
925# CONFIG_RPCSEC_GSS_SPKM3 is not set 929# CONFIG_RPCSEC_GSS_SPKM3 is not set
926CONFIG_SMB_FS=m 930CONFIG_SMB_FS=m
@@ -929,7 +933,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
929# CONFIG_CIFS is not set 933# CONFIG_CIFS is not set
930# CONFIG_NCP_FS is not set 934# CONFIG_NCP_FS is not set
931CONFIG_CODA_FS=m 935CONFIG_CODA_FS=m
932# CONFIG_CODA_FS_OLD_API is not set
933# CONFIG_AFS_FS is not set 936# CONFIG_AFS_FS is not set
934 937
935# 938#
@@ -994,6 +997,8 @@ CONFIG_MAGIC_SYSRQ=y
994# CONFIG_HEADERS_CHECK is not set 997# CONFIG_HEADERS_CHECK is not set
995# CONFIG_DEBUG_KERNEL is not set 998# CONFIG_DEBUG_KERNEL is not set
996CONFIG_DEBUG_BUGVERBOSE=y 999CONFIG_DEBUG_BUGVERBOSE=y
1000CONFIG_DEBUG_MEMORY_INIT=y
1001CONFIG_SYSCTL_SYSCALL_CHECK=y
997# CONFIG_SAMPLES is not set 1002# CONFIG_SAMPLES is not set
998 1003
999# 1004#
@@ -1053,6 +1058,10 @@ CONFIG_CRYPTO_CRC32C=m
1053CONFIG_CRYPTO_MD4=m 1058CONFIG_CRYPTO_MD4=m
1054CONFIG_CRYPTO_MD5=m 1059CONFIG_CRYPTO_MD5=m
1055CONFIG_CRYPTO_MICHAEL_MIC=m 1060CONFIG_CRYPTO_MICHAEL_MIC=m
1061CONFIG_CRYPTO_RMD128=m
1062CONFIG_CRYPTO_RMD160=m
1063CONFIG_CRYPTO_RMD256=m
1064CONFIG_CRYPTO_RMD320=m
1056CONFIG_CRYPTO_SHA1=m 1065CONFIG_CRYPTO_SHA1=m
1057CONFIG_CRYPTO_SHA256=m 1066CONFIG_CRYPTO_SHA256=m
1058CONFIG_CRYPTO_SHA512=m 1067CONFIG_CRYPTO_SHA512=m
@@ -1094,6 +1103,7 @@ CONFIG_BITREVERSE=y
1094# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1103# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1095CONFIG_CRC_CCITT=m 1104CONFIG_CRC_CCITT=m
1096CONFIG_CRC16=y 1105CONFIG_CRC16=y
1106CONFIG_CRC_T10DIF=y
1097CONFIG_CRC_ITU_T=m 1107CONFIG_CRC_ITU_T=m
1098CONFIG_CRC32=y 1108CONFIG_CRC32=y
1099# CONFIG_CRC7 is not set 1109# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/bvme6000_defconfig b/arch/m68k/configs/bvme6000_defconfig
index a0a9b30bb50..2e44af0fe54 100644
--- a/arch/m68k/configs/bvme6000_defconfig
+++ b/arch/m68k/configs/bvme6000_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:03 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -163,10 +169,6 @@ CONFIG_BINFMT_MISC=m
163CONFIG_PROC_HARDWARE=y 169CONFIG_PROC_HARDWARE=y
164CONFIG_ZONE_DMA=y 170CONFIG_ZONE_DMA=y
165# CONFIG_ARCH_SUPPORTS_MSI is not set 171# CONFIG_ARCH_SUPPORTS_MSI is not set
166
167#
168# Networking
169#
170CONFIG_NET=y 172CONFIG_NET=y
171 173
172# 174#
@@ -180,6 +182,7 @@ CONFIG_XFRM=y
180# CONFIG_XFRM_SUB_POLICY is not set 182# CONFIG_XFRM_SUB_POLICY is not set
181CONFIG_XFRM_MIGRATE=y 183CONFIG_XFRM_MIGRATE=y
182# CONFIG_XFRM_STATISTICS is not set 184# CONFIG_XFRM_STATISTICS is not set
185CONFIG_XFRM_IPCOMP=m
183CONFIG_NET_KEY=y 186CONFIG_NET_KEY=y
184CONFIG_NET_KEY_MIGRATE=y 187CONFIG_NET_KEY_MIGRATE=y
185CONFIG_INET=y 188CONFIG_INET=y
@@ -413,6 +416,7 @@ CONFIG_NET_CLS_ROUTE=y
413# 416#
414# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_EXT=y 418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
416# CONFIG_MAC80211 is not set 420# CONFIG_MAC80211 is not set
417CONFIG_IEEE80211=m 421CONFIG_IEEE80211=m
418# CONFIG_IEEE80211_DEBUG is not set 422# CONFIG_IEEE80211_DEBUG is not set
@@ -432,7 +436,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
432CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 436CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
433CONFIG_STANDALONE=y 437CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y 438CONFIG_PREVENT_FIRMWARE_BUILD=y
435CONFIG_FW_LOADER=m 439CONFIG_FW_LOADER=y
440# CONFIG_FIRMWARE_IN_KERNEL is not set
441CONFIG_EXTRA_FIRMWARE=""
436# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
437CONFIG_CONNECTOR=m 443CONFIG_CONNECTOR=m
438# CONFIG_MTD is not set 444# CONFIG_MTD is not set
@@ -450,6 +456,7 @@ CONFIG_CDROM_PKTCDVD=m
450CONFIG_CDROM_PKTCDVD_BUFFERS=8 456CONFIG_CDROM_PKTCDVD_BUFFERS=8
451# CONFIG_CDROM_PKTCDVD_WCACHE is not set 457# CONFIG_CDROM_PKTCDVD_WCACHE is not set
452CONFIG_ATA_OVER_ETH=m 458CONFIG_ATA_OVER_ETH=m
459# CONFIG_BLK_DEV_HD is not set
453CONFIG_MISC_DEVICES=y 460CONFIG_MISC_DEVICES=y
454# CONFIG_EEPROM_93CX6 is not set 461# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_ENCLOSURE_SERVICES is not set 462# CONFIG_ENCLOSURE_SERVICES is not set
@@ -503,6 +510,7 @@ CONFIG_ISCSI_TCP=m
503CONFIG_53C700_BE_BUS=y 510CONFIG_53C700_BE_BUS=y
504# CONFIG_SCSI_DEBUG is not set 511# CONFIG_SCSI_DEBUG is not set
505CONFIG_BVME6000_SCSI=y 512CONFIG_BVME6000_SCSI=y
513# CONFIG_SCSI_DH is not set
506CONFIG_MD=y 514CONFIG_MD=y
507CONFIG_BLK_DEV_MD=m 515CONFIG_BLK_DEV_MD=m
508CONFIG_MD_LINEAR=m 516CONFIG_MD_LINEAR=m
@@ -511,7 +519,7 @@ CONFIG_MD_RAID1=m
511# CONFIG_MD_RAID10 is not set 519# CONFIG_MD_RAID10 is not set
512CONFIG_MD_RAID456=m 520CONFIG_MD_RAID456=m
513CONFIG_MD_RAID5_RESHAPE=y 521CONFIG_MD_RAID5_RESHAPE=y
514CONFIG_MD_MULTIPATH=m 522# CONFIG_MD_MULTIPATH is not set
515# CONFIG_MD_FAULTY is not set 523# CONFIG_MD_FAULTY is not set
516CONFIG_BLK_DEV_DM=m 524CONFIG_BLK_DEV_DM=m
517# CONFIG_DM_DEBUG is not set 525# CONFIG_DM_DEBUG is not set
@@ -520,13 +528,9 @@ CONFIG_DM_SNAPSHOT=m
520CONFIG_DM_MIRROR=m 528CONFIG_DM_MIRROR=m
521CONFIG_DM_ZERO=m 529CONFIG_DM_ZERO=m
522CONFIG_DM_MULTIPATH=m 530CONFIG_DM_MULTIPATH=m
523CONFIG_DM_MULTIPATH_EMC=m
524CONFIG_DM_MULTIPATH_RDAC=m
525CONFIG_DM_MULTIPATH_HP=m
526# CONFIG_DM_DELAY is not set 531# CONFIG_DM_DELAY is not set
527CONFIG_DM_UEVENT=y 532CONFIG_DM_UEVENT=y
528CONFIG_NETDEVICES=y 533CONFIG_NETDEVICES=y
529# CONFIG_NETDEVICES_MULTIQUEUE is not set
530CONFIG_DUMMY=m 534CONFIG_DUMMY=m
531# CONFIG_BONDING is not set 535# CONFIG_BONDING is not set
532CONFIG_MACVLAN=m 536CONFIG_MACVLAN=m
@@ -631,6 +635,7 @@ CONFIG_SERIO_LIBPS2=m
631# Character devices 635# Character devices
632# 636#
633CONFIG_VT=y 637CONFIG_VT=y
638CONFIG_CONSOLE_TRANSLATIONS=y
634CONFIG_VT_CONSOLE=y 639CONFIG_VT_CONSOLE=y
635CONFIG_HW_CONSOLE=y 640CONFIG_HW_CONSOLE=y
636CONFIG_VT_HW_CONSOLE_BINDING=y 641CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -661,6 +666,7 @@ CONFIG_GEN_RTC_X=y
661# CONFIG_POWER_SUPPLY is not set 666# CONFIG_POWER_SUPPLY is not set
662# CONFIG_HWMON is not set 667# CONFIG_HWMON is not set
663# CONFIG_THERMAL is not set 668# CONFIG_THERMAL is not set
669# CONFIG_THERMAL_HWMON is not set
664# CONFIG_WATCHDOG is not set 670# CONFIG_WATCHDOG is not set
665 671
666# 672#
@@ -672,8 +678,10 @@ CONFIG_SSB_POSSIBLE=y
672# 678#
673# Multifunction device drivers 679# Multifunction device drivers
674# 680#
681# CONFIG_MFD_CORE is not set
675# CONFIG_MFD_SM501 is not set 682# CONFIG_MFD_SM501 is not set
676# CONFIG_HTC_PASIC3 is not set 683# CONFIG_HTC_PASIC3 is not set
684# CONFIG_MFD_TMIO is not set
677 685
678# 686#
679# Multimedia devices 687# Multimedia devices
@@ -708,10 +716,6 @@ CONFIG_SSB_POSSIBLE=y
708# Console display driver support 716# Console display driver support
709# 717#
710CONFIG_DUMMY_CONSOLE=y 718CONFIG_DUMMY_CONSOLE=y
711
712#
713# Sound
714#
715# CONFIG_SOUND is not set 719# CONFIG_SOUND is not set
716CONFIG_HID_SUPPORT=y 720CONFIG_HID_SUPPORT=y
717CONFIG_HID=m 721CONFIG_HID=m
@@ -723,6 +727,7 @@ CONFIG_HIDRAW=y
723# CONFIG_NEW_LEDS is not set 727# CONFIG_NEW_LEDS is not set
724# CONFIG_ACCESSIBILITY is not set 728# CONFIG_ACCESSIBILITY is not set
725# CONFIG_RTC_CLASS is not set 729# CONFIG_RTC_CLASS is not set
730# CONFIG_DMADEVICES is not set
726# CONFIG_UIO is not set 731# CONFIG_UIO is not set
727 732
728# 733#
@@ -759,6 +764,7 @@ CONFIG_XFS_FS=m
759CONFIG_OCFS2_FS=m 764CONFIG_OCFS2_FS=m
760CONFIG_OCFS2_FS_O2CB=m 765CONFIG_OCFS2_FS_O2CB=m
761CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 766CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
767# CONFIG_OCFS2_FS_STATS is not set
762# CONFIG_OCFS2_DEBUG_MASKLOG is not set 768# CONFIG_OCFS2_DEBUG_MASKLOG is not set
763# CONFIG_OCFS2_DEBUG_FS is not set 769# CONFIG_OCFS2_DEBUG_FS is not set
764CONFIG_DNOTIFY=y 770CONFIG_DNOTIFY=y
@@ -818,6 +824,7 @@ CONFIG_HFSPLUS_FS=m
818CONFIG_CRAMFS=m 824CONFIG_CRAMFS=m
819# CONFIG_VXFS_FS is not set 825# CONFIG_VXFS_FS is not set
820CONFIG_MINIX_FS=y 826CONFIG_MINIX_FS=y
827# CONFIG_OMFS_FS is not set
821CONFIG_HPFS_FS=m 828CONFIG_HPFS_FS=m
822# CONFIG_QNX4FS_FS is not set 829# CONFIG_QNX4FS_FS is not set
823# CONFIG_ROMFS_FS is not set 830# CONFIG_ROMFS_FS is not set
@@ -830,18 +837,17 @@ CONFIG_NFS_FS=y
830CONFIG_NFS_V3=y 837CONFIG_NFS_V3=y
831# CONFIG_NFS_V3_ACL is not set 838# CONFIG_NFS_V3_ACL is not set
832CONFIG_NFS_V4=y 839CONFIG_NFS_V4=y
840CONFIG_ROOT_NFS=y
833CONFIG_NFSD=m 841CONFIG_NFSD=m
834CONFIG_NFSD_V3=y 842CONFIG_NFSD_V3=y
835# CONFIG_NFSD_V3_ACL is not set 843# CONFIG_NFSD_V3_ACL is not set
836# CONFIG_NFSD_V4 is not set 844# CONFIG_NFSD_V4 is not set
837CONFIG_ROOT_NFS=y
838CONFIG_LOCKD=y 845CONFIG_LOCKD=y
839CONFIG_LOCKD_V4=y 846CONFIG_LOCKD_V4=y
840CONFIG_EXPORTFS=m 847CONFIG_EXPORTFS=m
841CONFIG_NFS_COMMON=y 848CONFIG_NFS_COMMON=y
842CONFIG_SUNRPC=y 849CONFIG_SUNRPC=y
843CONFIG_SUNRPC_GSS=y 850CONFIG_SUNRPC_GSS=y
844CONFIG_SUNRPC_BIND34=y
845CONFIG_RPCSEC_GSS_KRB5=y 851CONFIG_RPCSEC_GSS_KRB5=y
846# CONFIG_RPCSEC_GSS_SPKM3 is not set 852# CONFIG_RPCSEC_GSS_SPKM3 is not set
847CONFIG_SMB_FS=m 853CONFIG_SMB_FS=m
@@ -850,7 +856,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
850# CONFIG_CIFS is not set 856# CONFIG_CIFS is not set
851# CONFIG_NCP_FS is not set 857# CONFIG_NCP_FS is not set
852CONFIG_CODA_FS=m 858CONFIG_CODA_FS=m
853# CONFIG_CODA_FS_OLD_API is not set
854# CONFIG_AFS_FS is not set 859# CONFIG_AFS_FS is not set
855 860
856# 861#
@@ -915,6 +920,8 @@ CONFIG_MAGIC_SYSRQ=y
915# CONFIG_HEADERS_CHECK is not set 920# CONFIG_HEADERS_CHECK is not set
916# CONFIG_DEBUG_KERNEL is not set 921# CONFIG_DEBUG_KERNEL is not set
917CONFIG_DEBUG_BUGVERBOSE=y 922CONFIG_DEBUG_BUGVERBOSE=y
923CONFIG_DEBUG_MEMORY_INIT=y
924CONFIG_SYSCTL_SYSCALL_CHECK=y
918# CONFIG_SAMPLES is not set 925# CONFIG_SAMPLES is not set
919 926
920# 927#
@@ -974,6 +981,10 @@ CONFIG_CRYPTO_CRC32C=m
974CONFIG_CRYPTO_MD4=m 981CONFIG_CRYPTO_MD4=m
975CONFIG_CRYPTO_MD5=y 982CONFIG_CRYPTO_MD5=y
976CONFIG_CRYPTO_MICHAEL_MIC=m 983CONFIG_CRYPTO_MICHAEL_MIC=m
984CONFIG_CRYPTO_RMD128=m
985CONFIG_CRYPTO_RMD160=m
986CONFIG_CRYPTO_RMD256=m
987CONFIG_CRYPTO_RMD320=m
977CONFIG_CRYPTO_SHA1=m 988CONFIG_CRYPTO_SHA1=m
978CONFIG_CRYPTO_SHA256=m 989CONFIG_CRYPTO_SHA256=m
979CONFIG_CRYPTO_SHA512=m 990CONFIG_CRYPTO_SHA512=m
@@ -1015,6 +1026,7 @@ CONFIG_BITREVERSE=m
1015# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1026# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1016CONFIG_CRC_CCITT=m 1027CONFIG_CRC_CCITT=m
1017CONFIG_CRC16=m 1028CONFIG_CRC16=m
1029CONFIG_CRC_T10DIF=y
1018CONFIG_CRC_ITU_T=m 1030CONFIG_CRC_ITU_T=m
1019CONFIG_CRC32=m 1031CONFIG_CRC32=m
1020# CONFIG_CRC7 is not set 1032# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/hp300_defconfig b/arch/m68k/configs/hp300_defconfig
index 6778041de26..3570fc89b08 100644
--- a/arch/m68k/configs/hp300_defconfig
+++ b/arch/m68k/configs/hp300_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:04 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -162,10 +168,6 @@ CONFIG_HEARTBEAT=y
162CONFIG_PROC_HARDWARE=y 168CONFIG_PROC_HARDWARE=y
163CONFIG_ZONE_DMA=y 169CONFIG_ZONE_DMA=y
164# CONFIG_ARCH_SUPPORTS_MSI is not set 170# CONFIG_ARCH_SUPPORTS_MSI is not set
165
166#
167# Networking
168#
169CONFIG_NET=y 171CONFIG_NET=y
170 172
171# 173#
@@ -179,6 +181,7 @@ CONFIG_XFRM=y
179# CONFIG_XFRM_SUB_POLICY is not set 181# CONFIG_XFRM_SUB_POLICY is not set
180CONFIG_XFRM_MIGRATE=y 182CONFIG_XFRM_MIGRATE=y
181# CONFIG_XFRM_STATISTICS is not set 183# CONFIG_XFRM_STATISTICS is not set
184CONFIG_XFRM_IPCOMP=m
182CONFIG_NET_KEY=y 185CONFIG_NET_KEY=y
183CONFIG_NET_KEY_MIGRATE=y 186CONFIG_NET_KEY_MIGRATE=y
184CONFIG_INET=y 187CONFIG_INET=y
@@ -412,6 +415,7 @@ CONFIG_NET_CLS_ROUTE=y
412# 415#
413# CONFIG_CFG80211 is not set 416# CONFIG_CFG80211 is not set
414CONFIG_WIRELESS_EXT=y 417CONFIG_WIRELESS_EXT=y
418# CONFIG_WIRELESS_EXT_SYSFS is not set
415# CONFIG_MAC80211 is not set 419# CONFIG_MAC80211 is not set
416CONFIG_IEEE80211=m 420CONFIG_IEEE80211=m
417# CONFIG_IEEE80211_DEBUG is not set 421# CONFIG_IEEE80211_DEBUG is not set
@@ -431,7 +435,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
431CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 435CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
432CONFIG_STANDALONE=y 436CONFIG_STANDALONE=y
433CONFIG_PREVENT_FIRMWARE_BUILD=y 437CONFIG_PREVENT_FIRMWARE_BUILD=y
434CONFIG_FW_LOADER=m 438CONFIG_FW_LOADER=y
439# CONFIG_FIRMWARE_IN_KERNEL is not set
440CONFIG_EXTRA_FIRMWARE=""
435# CONFIG_SYS_HYPERVISOR is not set 441# CONFIG_SYS_HYPERVISOR is not set
436CONFIG_CONNECTOR=m 442CONFIG_CONNECTOR=m
437# CONFIG_MTD is not set 443# CONFIG_MTD is not set
@@ -449,6 +455,7 @@ CONFIG_CDROM_PKTCDVD=m
449CONFIG_CDROM_PKTCDVD_BUFFERS=8 455CONFIG_CDROM_PKTCDVD_BUFFERS=8
450# CONFIG_CDROM_PKTCDVD_WCACHE is not set 456# CONFIG_CDROM_PKTCDVD_WCACHE is not set
451CONFIG_ATA_OVER_ETH=m 457CONFIG_ATA_OVER_ETH=m
458# CONFIG_BLK_DEV_HD is not set
452CONFIG_MISC_DEVICES=y 459CONFIG_MISC_DEVICES=y
453# CONFIG_EEPROM_93CX6 is not set 460# CONFIG_EEPROM_93CX6 is not set
454# CONFIG_ENCLOSURE_SERVICES is not set 461# CONFIG_ENCLOSURE_SERVICES is not set
@@ -500,6 +507,7 @@ CONFIG_SCSI_SRP_TGT_ATTRS=y
500CONFIG_SCSI_LOWLEVEL=y 507CONFIG_SCSI_LOWLEVEL=y
501CONFIG_ISCSI_TCP=m 508CONFIG_ISCSI_TCP=m
502# CONFIG_SCSI_DEBUG is not set 509# CONFIG_SCSI_DEBUG is not set
510# CONFIG_SCSI_DH is not set
503CONFIG_MD=y 511CONFIG_MD=y
504CONFIG_BLK_DEV_MD=m 512CONFIG_BLK_DEV_MD=m
505CONFIG_MD_LINEAR=m 513CONFIG_MD_LINEAR=m
@@ -508,7 +516,7 @@ CONFIG_MD_RAID1=m
508# CONFIG_MD_RAID10 is not set 516# CONFIG_MD_RAID10 is not set
509CONFIG_MD_RAID456=m 517CONFIG_MD_RAID456=m
510CONFIG_MD_RAID5_RESHAPE=y 518CONFIG_MD_RAID5_RESHAPE=y
511CONFIG_MD_MULTIPATH=m 519# CONFIG_MD_MULTIPATH is not set
512# CONFIG_MD_FAULTY is not set 520# CONFIG_MD_FAULTY is not set
513CONFIG_BLK_DEV_DM=m 521CONFIG_BLK_DEV_DM=m
514# CONFIG_DM_DEBUG is not set 522# CONFIG_DM_DEBUG is not set
@@ -517,13 +525,9 @@ CONFIG_DM_SNAPSHOT=m
517CONFIG_DM_MIRROR=m 525CONFIG_DM_MIRROR=m
518CONFIG_DM_ZERO=m 526CONFIG_DM_ZERO=m
519CONFIG_DM_MULTIPATH=m 527CONFIG_DM_MULTIPATH=m
520CONFIG_DM_MULTIPATH_EMC=m
521CONFIG_DM_MULTIPATH_RDAC=m
522CONFIG_DM_MULTIPATH_HP=m
523# CONFIG_DM_DELAY is not set 528# CONFIG_DM_DELAY is not set
524CONFIG_DM_UEVENT=y 529CONFIG_DM_UEVENT=y
525CONFIG_NETDEVICES=y 530CONFIG_NETDEVICES=y
526# CONFIG_NETDEVICES_MULTIQUEUE is not set
527CONFIG_DUMMY=m 531CONFIG_DUMMY=m
528# CONFIG_BONDING is not set 532# CONFIG_BONDING is not set
529CONFIG_MACVLAN=m 533CONFIG_MACVLAN=m
@@ -636,6 +640,7 @@ CONFIG_SERIO_LIBPS2=m
636# Character devices 640# Character devices
637# 641#
638CONFIG_VT=y 642CONFIG_VT=y
643CONFIG_CONSOLE_TRANSLATIONS=y
639CONFIG_VT_CONSOLE=y 644CONFIG_VT_CONSOLE=y
640CONFIG_HW_CONSOLE=y 645CONFIG_HW_CONSOLE=y
641CONFIG_VT_HW_CONSOLE_BINDING=y 646CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -666,6 +671,7 @@ CONFIG_GEN_RTC_X=y
666# CONFIG_POWER_SUPPLY is not set 671# CONFIG_POWER_SUPPLY is not set
667# CONFIG_HWMON is not set 672# CONFIG_HWMON is not set
668# CONFIG_THERMAL is not set 673# CONFIG_THERMAL is not set
674# CONFIG_THERMAL_HWMON is not set
669# CONFIG_WATCHDOG is not set 675# CONFIG_WATCHDOG is not set
670 676
671# 677#
@@ -677,8 +683,10 @@ CONFIG_SSB_POSSIBLE=y
677# 683#
678# Multifunction device drivers 684# Multifunction device drivers
679# 685#
686# CONFIG_MFD_CORE is not set
680# CONFIG_MFD_SM501 is not set 687# CONFIG_MFD_SM501 is not set
681# CONFIG_HTC_PASIC3 is not set 688# CONFIG_HTC_PASIC3 is not set
689# CONFIG_MFD_TMIO is not set
682 690
683# 691#
684# Multimedia devices 692# Multimedia devices
@@ -747,10 +755,6 @@ CONFIG_LOGO=y
747# CONFIG_LOGO_LINUX_MONO is not set 755# CONFIG_LOGO_LINUX_MONO is not set
748# CONFIG_LOGO_LINUX_VGA16 is not set 756# CONFIG_LOGO_LINUX_VGA16 is not set
749CONFIG_LOGO_LINUX_CLUT224=y 757CONFIG_LOGO_LINUX_CLUT224=y
750
751#
752# Sound
753#
754# CONFIG_SOUND is not set 758# CONFIG_SOUND is not set
755CONFIG_HID_SUPPORT=y 759CONFIG_HID_SUPPORT=y
756CONFIG_HID=m 760CONFIG_HID=m
@@ -762,6 +766,7 @@ CONFIG_HIDRAW=y
762# CONFIG_NEW_LEDS is not set 766# CONFIG_NEW_LEDS is not set
763# CONFIG_ACCESSIBILITY is not set 767# CONFIG_ACCESSIBILITY is not set
764# CONFIG_RTC_CLASS is not set 768# CONFIG_RTC_CLASS is not set
769# CONFIG_DMADEVICES is not set
765# CONFIG_UIO is not set 770# CONFIG_UIO is not set
766 771
767# 772#
@@ -796,6 +801,7 @@ CONFIG_XFS_FS=m
796CONFIG_OCFS2_FS=m 801CONFIG_OCFS2_FS=m
797CONFIG_OCFS2_FS_O2CB=m 802CONFIG_OCFS2_FS_O2CB=m
798CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 803CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
804# CONFIG_OCFS2_FS_STATS is not set
799# CONFIG_OCFS2_DEBUG_MASKLOG is not set 805# CONFIG_OCFS2_DEBUG_MASKLOG is not set
800# CONFIG_OCFS2_DEBUG_FS is not set 806# CONFIG_OCFS2_DEBUG_FS is not set
801CONFIG_DNOTIFY=y 807CONFIG_DNOTIFY=y
@@ -855,6 +861,7 @@ CONFIG_HFSPLUS_FS=m
855CONFIG_CRAMFS=m 861CONFIG_CRAMFS=m
856# CONFIG_VXFS_FS is not set 862# CONFIG_VXFS_FS is not set
857CONFIG_MINIX_FS=y 863CONFIG_MINIX_FS=y
864# CONFIG_OMFS_FS is not set
858CONFIG_HPFS_FS=m 865CONFIG_HPFS_FS=m
859# CONFIG_QNX4FS_FS is not set 866# CONFIG_QNX4FS_FS is not set
860# CONFIG_ROMFS_FS is not set 867# CONFIG_ROMFS_FS is not set
@@ -867,18 +874,17 @@ CONFIG_NFS_FS=y
867CONFIG_NFS_V3=y 874CONFIG_NFS_V3=y
868# CONFIG_NFS_V3_ACL is not set 875# CONFIG_NFS_V3_ACL is not set
869CONFIG_NFS_V4=y 876CONFIG_NFS_V4=y
877CONFIG_ROOT_NFS=y
870CONFIG_NFSD=m 878CONFIG_NFSD=m
871CONFIG_NFSD_V3=y 879CONFIG_NFSD_V3=y
872# CONFIG_NFSD_V3_ACL is not set 880# CONFIG_NFSD_V3_ACL is not set
873# CONFIG_NFSD_V4 is not set 881# CONFIG_NFSD_V4 is not set
874CONFIG_ROOT_NFS=y
875CONFIG_LOCKD=y 882CONFIG_LOCKD=y
876CONFIG_LOCKD_V4=y 883CONFIG_LOCKD_V4=y
877CONFIG_EXPORTFS=m 884CONFIG_EXPORTFS=m
878CONFIG_NFS_COMMON=y 885CONFIG_NFS_COMMON=y
879CONFIG_SUNRPC=y 886CONFIG_SUNRPC=y
880CONFIG_SUNRPC_GSS=y 887CONFIG_SUNRPC_GSS=y
881CONFIG_SUNRPC_BIND34=y
882CONFIG_RPCSEC_GSS_KRB5=y 888CONFIG_RPCSEC_GSS_KRB5=y
883# CONFIG_RPCSEC_GSS_SPKM3 is not set 889# CONFIG_RPCSEC_GSS_SPKM3 is not set
884CONFIG_SMB_FS=m 890CONFIG_SMB_FS=m
@@ -887,7 +893,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
887# CONFIG_CIFS is not set 893# CONFIG_CIFS is not set
888# CONFIG_NCP_FS is not set 894# CONFIG_NCP_FS is not set
889CONFIG_CODA_FS=m 895CONFIG_CODA_FS=m
890# CONFIG_CODA_FS_OLD_API is not set
891# CONFIG_AFS_FS is not set 896# CONFIG_AFS_FS is not set
892 897
893# 898#
@@ -951,6 +956,8 @@ CONFIG_MAGIC_SYSRQ=y
951# CONFIG_HEADERS_CHECK is not set 956# CONFIG_HEADERS_CHECK is not set
952# CONFIG_DEBUG_KERNEL is not set 957# CONFIG_DEBUG_KERNEL is not set
953CONFIG_DEBUG_BUGVERBOSE=y 958CONFIG_DEBUG_BUGVERBOSE=y
959CONFIG_DEBUG_MEMORY_INIT=y
960CONFIG_SYSCTL_SYSCALL_CHECK=y
954# CONFIG_SAMPLES is not set 961# CONFIG_SAMPLES is not set
955 962
956# 963#
@@ -1010,6 +1017,10 @@ CONFIG_CRYPTO_CRC32C=m
1010CONFIG_CRYPTO_MD4=m 1017CONFIG_CRYPTO_MD4=m
1011CONFIG_CRYPTO_MD5=y 1018CONFIG_CRYPTO_MD5=y
1012CONFIG_CRYPTO_MICHAEL_MIC=m 1019CONFIG_CRYPTO_MICHAEL_MIC=m
1020CONFIG_CRYPTO_RMD128=m
1021CONFIG_CRYPTO_RMD160=m
1022CONFIG_CRYPTO_RMD256=m
1023CONFIG_CRYPTO_RMD320=m
1013CONFIG_CRYPTO_SHA1=m 1024CONFIG_CRYPTO_SHA1=m
1014CONFIG_CRYPTO_SHA256=m 1025CONFIG_CRYPTO_SHA256=m
1015CONFIG_CRYPTO_SHA512=m 1026CONFIG_CRYPTO_SHA512=m
@@ -1051,6 +1062,7 @@ CONFIG_BITREVERSE=y
1051# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1062# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1052CONFIG_CRC_CCITT=m 1063CONFIG_CRC_CCITT=m
1053CONFIG_CRC16=m 1064CONFIG_CRC16=m
1065CONFIG_CRC_T10DIF=y
1054CONFIG_CRC_ITU_T=m 1066CONFIG_CRC_ITU_T=m
1055CONFIG_CRC32=y 1067CONFIG_CRC32=y
1056# CONFIG_CRC7 is not set 1068# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/mac_defconfig b/arch/m68k/configs/mac_defconfig
index 7cd37574034..db6e8822594 100644
--- a/arch/m68k/configs/mac_defconfig
+++ b/arch/m68k/configs/mac_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:06 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -163,10 +169,6 @@ CONFIG_BINFMT_MISC=m
163CONFIG_PROC_HARDWARE=y 169CONFIG_PROC_HARDWARE=y
164CONFIG_ZONE_DMA=y 170CONFIG_ZONE_DMA=y
165# CONFIG_ARCH_SUPPORTS_MSI is not set 171# CONFIG_ARCH_SUPPORTS_MSI is not set
166
167#
168# Networking
169#
170CONFIG_NET=y 172CONFIG_NET=y
171 173
172# 174#
@@ -180,6 +182,7 @@ CONFIG_XFRM=y
180# CONFIG_XFRM_SUB_POLICY is not set 182# CONFIG_XFRM_SUB_POLICY is not set
181CONFIG_XFRM_MIGRATE=y 183CONFIG_XFRM_MIGRATE=y
182# CONFIG_XFRM_STATISTICS is not set 184# CONFIG_XFRM_STATISTICS is not set
185CONFIG_XFRM_IPCOMP=m
183CONFIG_NET_KEY=y 186CONFIG_NET_KEY=y
184CONFIG_NET_KEY_MIGRATE=y 187CONFIG_NET_KEY_MIGRATE=y
185CONFIG_INET=y 188CONFIG_INET=y
@@ -413,6 +416,7 @@ CONFIG_NET_CLS_ROUTE=y
413# 416#
414# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_EXT=y 418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
416# CONFIG_MAC80211 is not set 420# CONFIG_MAC80211 is not set
417CONFIG_IEEE80211=m 421CONFIG_IEEE80211=m
418# CONFIG_IEEE80211_DEBUG is not set 422# CONFIG_IEEE80211_DEBUG is not set
@@ -432,7 +436,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
432CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 436CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
433CONFIG_STANDALONE=y 437CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y 438CONFIG_PREVENT_FIRMWARE_BUILD=y
435CONFIG_FW_LOADER=m 439CONFIG_FW_LOADER=y
440# CONFIG_FIRMWARE_IN_KERNEL is not set
441CONFIG_EXTRA_FIRMWARE=""
436# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
437CONFIG_CONNECTOR=m 443CONFIG_CONNECTOR=m
438# CONFIG_MTD is not set 444# CONFIG_MTD is not set
@@ -450,6 +456,7 @@ CONFIG_CDROM_PKTCDVD=m
450CONFIG_CDROM_PKTCDVD_BUFFERS=8 456CONFIG_CDROM_PKTCDVD_BUFFERS=8
451# CONFIG_CDROM_PKTCDVD_WCACHE is not set 457# CONFIG_CDROM_PKTCDVD_WCACHE is not set
452CONFIG_ATA_OVER_ETH=m 458CONFIG_ATA_OVER_ETH=m
459# CONFIG_BLK_DEV_HD is not set
453CONFIG_MISC_DEVICES=y 460CONFIG_MISC_DEVICES=y
454# CONFIG_EEPROM_93CX6 is not set 461# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_ENCLOSURE_SERVICES is not set 462# CONFIG_ENCLOSURE_SERVICES is not set
@@ -460,6 +467,7 @@ CONFIG_BLK_DEV_IDE=y
460# 467#
461# Please see Documentation/ide/ide.txt for help/info on IDE drives 468# Please see Documentation/ide/ide.txt for help/info on IDE drives
462# 469#
470CONFIG_IDE_ATAPI=y
463# CONFIG_BLK_DEV_IDE_SATA is not set 471# CONFIG_BLK_DEV_IDE_SATA is not set
464CONFIG_BLK_DEV_IDEDISK=y 472CONFIG_BLK_DEV_IDEDISK=y
465# CONFIG_IDEDISK_MULTI_MODE is not set 473# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -477,8 +485,6 @@ CONFIG_IDE_PROC_FS=y
477# CONFIG_BLK_DEV_PLATFORM is not set 485# CONFIG_BLK_DEV_PLATFORM is not set
478CONFIG_BLK_DEV_MAC_IDE=y 486CONFIG_BLK_DEV_MAC_IDE=y
479# CONFIG_BLK_DEV_IDEDMA is not set 487# CONFIG_BLK_DEV_IDEDMA is not set
480# CONFIG_BLK_DEV_HD_ONLY is not set
481# CONFIG_BLK_DEV_HD is not set
482 488
483# 489#
484# SCSI device support 490# SCSI device support
@@ -527,6 +533,7 @@ CONFIG_ISCSI_TCP=m
527# CONFIG_SCSI_DEBUG is not set 533# CONFIG_SCSI_DEBUG is not set
528CONFIG_MAC_SCSI=y 534CONFIG_MAC_SCSI=y
529CONFIG_SCSI_MAC_ESP=y 535CONFIG_SCSI_MAC_ESP=y
536# CONFIG_SCSI_DH is not set
530CONFIG_MD=y 537CONFIG_MD=y
531CONFIG_BLK_DEV_MD=m 538CONFIG_BLK_DEV_MD=m
532CONFIG_MD_LINEAR=m 539CONFIG_MD_LINEAR=m
@@ -535,7 +542,7 @@ CONFIG_MD_RAID1=m
535# CONFIG_MD_RAID10 is not set 542# CONFIG_MD_RAID10 is not set
536CONFIG_MD_RAID456=m 543CONFIG_MD_RAID456=m
537CONFIG_MD_RAID5_RESHAPE=y 544CONFIG_MD_RAID5_RESHAPE=y
538CONFIG_MD_MULTIPATH=m 545# CONFIG_MD_MULTIPATH is not set
539# CONFIG_MD_FAULTY is not set 546# CONFIG_MD_FAULTY is not set
540CONFIG_BLK_DEV_DM=m 547CONFIG_BLK_DEV_DM=m
541# CONFIG_DM_DEBUG is not set 548# CONFIG_DM_DEBUG is not set
@@ -544,9 +551,6 @@ CONFIG_DM_SNAPSHOT=m
544CONFIG_DM_MIRROR=m 551CONFIG_DM_MIRROR=m
545CONFIG_DM_ZERO=m 552CONFIG_DM_ZERO=m
546CONFIG_DM_MULTIPATH=m 553CONFIG_DM_MULTIPATH=m
547CONFIG_DM_MULTIPATH_EMC=m
548CONFIG_DM_MULTIPATH_RDAC=m
549CONFIG_DM_MULTIPATH_HP=m
550# CONFIG_DM_DELAY is not set 554# CONFIG_DM_DELAY is not set
551CONFIG_DM_UEVENT=y 555CONFIG_DM_UEVENT=y
552CONFIG_MACINTOSH_DRIVERS=y 556CONFIG_MACINTOSH_DRIVERS=y
@@ -559,7 +563,6 @@ CONFIG_ADB_CUDA=y
559CONFIG_INPUT_ADBHID=y 563CONFIG_INPUT_ADBHID=y
560CONFIG_MAC_EMUMOUSEBTN=y 564CONFIG_MAC_EMUMOUSEBTN=y
561CONFIG_NETDEVICES=y 565CONFIG_NETDEVICES=y
562# CONFIG_NETDEVICES_MULTIQUEUE is not set
563CONFIG_DUMMY=m 566CONFIG_DUMMY=m
564# CONFIG_BONDING is not set 567# CONFIG_BONDING is not set
565CONFIG_MACVLAN=m 568CONFIG_MACVLAN=m
@@ -670,6 +673,7 @@ CONFIG_SERIO_LIBPS2=m
670# Character devices 673# Character devices
671# 674#
672CONFIG_VT=y 675CONFIG_VT=y
676CONFIG_CONSOLE_TRANSLATIONS=y
673CONFIG_VT_CONSOLE=y 677CONFIG_VT_CONSOLE=y
674CONFIG_HW_CONSOLE=y 678CONFIG_HW_CONSOLE=y
675CONFIG_VT_HW_CONSOLE_BINDING=y 679CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -700,6 +704,7 @@ CONFIG_GEN_RTC_X=y
700# CONFIG_POWER_SUPPLY is not set 704# CONFIG_POWER_SUPPLY is not set
701# CONFIG_HWMON is not set 705# CONFIG_HWMON is not set
702# CONFIG_THERMAL is not set 706# CONFIG_THERMAL is not set
707# CONFIG_THERMAL_HWMON is not set
703# CONFIG_WATCHDOG is not set 708# CONFIG_WATCHDOG is not set
704 709
705# 710#
@@ -711,8 +716,10 @@ CONFIG_SSB_POSSIBLE=y
711# 716#
712# Multifunction device drivers 717# Multifunction device drivers
713# 718#
719# CONFIG_MFD_CORE is not set
714# CONFIG_MFD_SM501 is not set 720# CONFIG_MFD_SM501 is not set
715# CONFIG_HTC_PASIC3 is not set 721# CONFIG_HTC_PASIC3 is not set
722# CONFIG_MFD_TMIO is not set
716 723
717# 724#
718# Multimedia devices 725# Multimedia devices
@@ -784,10 +791,6 @@ CONFIG_LOGO_LINUX_MONO=y
784CONFIG_LOGO_LINUX_VGA16=y 791CONFIG_LOGO_LINUX_VGA16=y
785CONFIG_LOGO_LINUX_CLUT224=y 792CONFIG_LOGO_LINUX_CLUT224=y
786CONFIG_LOGO_MAC_CLUT224=y 793CONFIG_LOGO_MAC_CLUT224=y
787
788#
789# Sound
790#
791# CONFIG_SOUND is not set 794# CONFIG_SOUND is not set
792CONFIG_HID_SUPPORT=y 795CONFIG_HID_SUPPORT=y
793CONFIG_HID=m 796CONFIG_HID=m
@@ -799,6 +802,7 @@ CONFIG_HIDRAW=y
799# CONFIG_NEW_LEDS is not set 802# CONFIG_NEW_LEDS is not set
800# CONFIG_ACCESSIBILITY is not set 803# CONFIG_ACCESSIBILITY is not set
801# CONFIG_RTC_CLASS is not set 804# CONFIG_RTC_CLASS is not set
805# CONFIG_DMADEVICES is not set
802# CONFIG_UIO is not set 806# CONFIG_UIO is not set
803 807
804# 808#
@@ -836,6 +840,7 @@ CONFIG_XFS_FS=m
836CONFIG_OCFS2_FS=m 840CONFIG_OCFS2_FS=m
837CONFIG_OCFS2_FS_O2CB=m 841CONFIG_OCFS2_FS_O2CB=m
838CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 842CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
843# CONFIG_OCFS2_FS_STATS is not set
839# CONFIG_OCFS2_DEBUG_MASKLOG is not set 844# CONFIG_OCFS2_DEBUG_MASKLOG is not set
840# CONFIG_OCFS2_DEBUG_FS is not set 845# CONFIG_OCFS2_DEBUG_FS is not set
841CONFIG_DNOTIFY=y 846CONFIG_DNOTIFY=y
@@ -895,6 +900,7 @@ CONFIG_HFSPLUS_FS=y
895CONFIG_CRAMFS=m 900CONFIG_CRAMFS=m
896# CONFIG_VXFS_FS is not set 901# CONFIG_VXFS_FS is not set
897CONFIG_MINIX_FS=y 902CONFIG_MINIX_FS=y
903# CONFIG_OMFS_FS is not set
898CONFIG_HPFS_FS=m 904CONFIG_HPFS_FS=m
899# CONFIG_QNX4FS_FS is not set 905# CONFIG_QNX4FS_FS is not set
900# CONFIG_ROMFS_FS is not set 906# CONFIG_ROMFS_FS is not set
@@ -917,7 +923,6 @@ CONFIG_EXPORTFS=m
917CONFIG_NFS_COMMON=y 923CONFIG_NFS_COMMON=y
918CONFIG_SUNRPC=m 924CONFIG_SUNRPC=m
919CONFIG_SUNRPC_GSS=m 925CONFIG_SUNRPC_GSS=m
920CONFIG_SUNRPC_BIND34=y
921CONFIG_RPCSEC_GSS_KRB5=m 926CONFIG_RPCSEC_GSS_KRB5=m
922# CONFIG_RPCSEC_GSS_SPKM3 is not set 927# CONFIG_RPCSEC_GSS_SPKM3 is not set
923CONFIG_SMB_FS=m 928CONFIG_SMB_FS=m
@@ -926,7 +931,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
926# CONFIG_CIFS is not set 931# CONFIG_CIFS is not set
927# CONFIG_NCP_FS is not set 932# CONFIG_NCP_FS is not set
928CONFIG_CODA_FS=m 933CONFIG_CODA_FS=m
929# CONFIG_CODA_FS_OLD_API is not set
930# CONFIG_AFS_FS is not set 934# CONFIG_AFS_FS is not set
931 935
932# 936#
@@ -991,6 +995,8 @@ CONFIG_MAGIC_SYSRQ=y
991# CONFIG_HEADERS_CHECK is not set 995# CONFIG_HEADERS_CHECK is not set
992# CONFIG_DEBUG_KERNEL is not set 996# CONFIG_DEBUG_KERNEL is not set
993CONFIG_DEBUG_BUGVERBOSE=y 997CONFIG_DEBUG_BUGVERBOSE=y
998CONFIG_DEBUG_MEMORY_INIT=y
999CONFIG_SYSCTL_SYSCALL_CHECK=y
994# CONFIG_SAMPLES is not set 1000# CONFIG_SAMPLES is not set
995 1001
996# 1002#
@@ -1050,6 +1056,10 @@ CONFIG_CRYPTO_CRC32C=m
1050CONFIG_CRYPTO_MD4=m 1056CONFIG_CRYPTO_MD4=m
1051CONFIG_CRYPTO_MD5=m 1057CONFIG_CRYPTO_MD5=m
1052CONFIG_CRYPTO_MICHAEL_MIC=m 1058CONFIG_CRYPTO_MICHAEL_MIC=m
1059CONFIG_CRYPTO_RMD128=m
1060CONFIG_CRYPTO_RMD160=m
1061CONFIG_CRYPTO_RMD256=m
1062CONFIG_CRYPTO_RMD320=m
1053CONFIG_CRYPTO_SHA1=m 1063CONFIG_CRYPTO_SHA1=m
1054CONFIG_CRYPTO_SHA256=m 1064CONFIG_CRYPTO_SHA256=m
1055CONFIG_CRYPTO_SHA512=m 1065CONFIG_CRYPTO_SHA512=m
@@ -1091,6 +1101,7 @@ CONFIG_BITREVERSE=y
1091# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1101# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1092CONFIG_CRC_CCITT=m 1102CONFIG_CRC_CCITT=m
1093CONFIG_CRC16=m 1103CONFIG_CRC16=m
1104CONFIG_CRC_T10DIF=y
1094CONFIG_CRC_ITU_T=m 1105CONFIG_CRC_ITU_T=m
1095CONFIG_CRC32=y 1106CONFIG_CRC32=y
1096# CONFIG_CRC7 is not set 1107# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/multi_defconfig b/arch/m68k/configs/multi_defconfig
index 0747fa3984d..1a806102b99 100644
--- a/arch/m68k/configs/multi_defconfig
+++ b/arch/m68k/configs/multi_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:07 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -173,10 +179,6 @@ CONFIG_GENERIC_ISA_DMA=y
173CONFIG_ZONE_DMA=y 179CONFIG_ZONE_DMA=y
174# CONFIG_ARCH_SUPPORTS_MSI is not set 180# CONFIG_ARCH_SUPPORTS_MSI is not set
175CONFIG_ZORRO_NAMES=y 181CONFIG_ZORRO_NAMES=y
176
177#
178# Networking
179#
180CONFIG_NET=y 182CONFIG_NET=y
181 183
182# 184#
@@ -190,6 +192,7 @@ CONFIG_XFRM=y
190# CONFIG_XFRM_SUB_POLICY is not set 192# CONFIG_XFRM_SUB_POLICY is not set
191CONFIG_XFRM_MIGRATE=y 193CONFIG_XFRM_MIGRATE=y
192# CONFIG_XFRM_STATISTICS is not set 194# CONFIG_XFRM_STATISTICS is not set
195CONFIG_XFRM_IPCOMP=m
193CONFIG_NET_KEY=y 196CONFIG_NET_KEY=y
194CONFIG_NET_KEY_MIGRATE=y 197CONFIG_NET_KEY_MIGRATE=y
195CONFIG_INET=y 198CONFIG_INET=y
@@ -427,6 +430,7 @@ CONFIG_NET_CLS_ROUTE=y
427# 430#
428# CONFIG_CFG80211 is not set 431# CONFIG_CFG80211 is not set
429CONFIG_WIRELESS_EXT=y 432CONFIG_WIRELESS_EXT=y
433# CONFIG_WIRELESS_EXT_SYSFS is not set
430# CONFIG_MAC80211 is not set 434# CONFIG_MAC80211 is not set
431CONFIG_IEEE80211=m 435CONFIG_IEEE80211=m
432# CONFIG_IEEE80211_DEBUG is not set 436# CONFIG_IEEE80211_DEBUG is not set
@@ -446,7 +450,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
446CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 450CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
447CONFIG_STANDALONE=y 451CONFIG_STANDALONE=y
448CONFIG_PREVENT_FIRMWARE_BUILD=y 452CONFIG_PREVENT_FIRMWARE_BUILD=y
449CONFIG_FW_LOADER=m 453CONFIG_FW_LOADER=y
454# CONFIG_FIRMWARE_IN_KERNEL is not set
455CONFIG_EXTRA_FIRMWARE=""
450# CONFIG_SYS_HYPERVISOR is not set 456# CONFIG_SYS_HYPERVISOR is not set
451CONFIG_CONNECTOR=m 457CONFIG_CONNECTOR=m
452# CONFIG_MTD is not set 458# CONFIG_MTD is not set
@@ -476,6 +482,7 @@ CONFIG_CDROM_PKTCDVD=m
476CONFIG_CDROM_PKTCDVD_BUFFERS=8 482CONFIG_CDROM_PKTCDVD_BUFFERS=8
477# CONFIG_CDROM_PKTCDVD_WCACHE is not set 483# CONFIG_CDROM_PKTCDVD_WCACHE is not set
478CONFIG_ATA_OVER_ETH=m 484CONFIG_ATA_OVER_ETH=m
485# CONFIG_BLK_DEV_HD is not set
479CONFIG_MISC_DEVICES=y 486CONFIG_MISC_DEVICES=y
480# CONFIG_EEPROM_93CX6 is not set 487# CONFIG_EEPROM_93CX6 is not set
481# CONFIG_ENCLOSURE_SERVICES is not set 488# CONFIG_ENCLOSURE_SERVICES is not set
@@ -486,6 +493,7 @@ CONFIG_BLK_DEV_IDE=y
486# 493#
487# Please see Documentation/ide/ide.txt for help/info on IDE drives 494# Please see Documentation/ide/ide.txt for help/info on IDE drives
488# 495#
496CONFIG_IDE_ATAPI=y
489# CONFIG_BLK_DEV_IDE_SATA is not set 497# CONFIG_BLK_DEV_IDE_SATA is not set
490CONFIG_BLK_DEV_IDEDISK=y 498CONFIG_BLK_DEV_IDEDISK=y
491# CONFIG_IDEDISK_MULTI_MODE is not set 499# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -508,8 +516,6 @@ CONFIG_BLK_DEV_FALCON_IDE=y
508CONFIG_BLK_DEV_MAC_IDE=y 516CONFIG_BLK_DEV_MAC_IDE=y
509CONFIG_BLK_DEV_Q40IDE=y 517CONFIG_BLK_DEV_Q40IDE=y
510# CONFIG_BLK_DEV_IDEDMA is not set 518# CONFIG_BLK_DEV_IDEDMA is not set
511# CONFIG_BLK_DEV_HD_ONLY is not set
512# CONFIG_BLK_DEV_HD is not set
513 519
514# 520#
515# SCSI device support 521# SCSI device support
@@ -584,6 +590,7 @@ CONFIG_MVME147_SCSI=y
584CONFIG_MVME16x_SCSI=y 590CONFIG_MVME16x_SCSI=y
585CONFIG_BVME6000_SCSI=y 591CONFIG_BVME6000_SCSI=y
586CONFIG_SUN3X_ESP=y 592CONFIG_SUN3X_ESP=y
593# CONFIG_SCSI_DH is not set
587CONFIG_MD=y 594CONFIG_MD=y
588CONFIG_BLK_DEV_MD=m 595CONFIG_BLK_DEV_MD=m
589CONFIG_MD_LINEAR=m 596CONFIG_MD_LINEAR=m
@@ -592,7 +599,7 @@ CONFIG_MD_RAID1=m
592# CONFIG_MD_RAID10 is not set 599# CONFIG_MD_RAID10 is not set
593CONFIG_MD_RAID456=m 600CONFIG_MD_RAID456=m
594CONFIG_MD_RAID5_RESHAPE=y 601CONFIG_MD_RAID5_RESHAPE=y
595CONFIG_MD_MULTIPATH=m 602# CONFIG_MD_MULTIPATH is not set
596# CONFIG_MD_FAULTY is not set 603# CONFIG_MD_FAULTY is not set
597CONFIG_BLK_DEV_DM=m 604CONFIG_BLK_DEV_DM=m
598# CONFIG_DM_DEBUG is not set 605# CONFIG_DM_DEBUG is not set
@@ -601,9 +608,6 @@ CONFIG_DM_SNAPSHOT=m
601CONFIG_DM_MIRROR=m 608CONFIG_DM_MIRROR=m
602CONFIG_DM_ZERO=m 609CONFIG_DM_ZERO=m
603CONFIG_DM_MULTIPATH=m 610CONFIG_DM_MULTIPATH=m
604CONFIG_DM_MULTIPATH_EMC=m
605CONFIG_DM_MULTIPATH_RDAC=m
606CONFIG_DM_MULTIPATH_HP=m
607# CONFIG_DM_DELAY is not set 611# CONFIG_DM_DELAY is not set
608CONFIG_DM_UEVENT=y 612CONFIG_DM_UEVENT=y
609CONFIG_MACINTOSH_DRIVERS=y 613CONFIG_MACINTOSH_DRIVERS=y
@@ -616,7 +620,6 @@ CONFIG_ADB_CUDA=y
616CONFIG_INPUT_ADBHID=y 620CONFIG_INPUT_ADBHID=y
617CONFIG_MAC_EMUMOUSEBTN=y 621CONFIG_MAC_EMUMOUSEBTN=y
618CONFIG_NETDEVICES=y 622CONFIG_NETDEVICES=y
619# CONFIG_NETDEVICES_MULTIQUEUE is not set
620CONFIG_DUMMY=m 623CONFIG_DUMMY=m
621# CONFIG_BONDING is not set 624# CONFIG_BONDING is not set
622CONFIG_MACVLAN=m 625CONFIG_MACVLAN=m
@@ -632,7 +635,6 @@ CONFIG_A2065=m
632CONFIG_HYDRA=m 635CONFIG_HYDRA=m
633CONFIG_ZORRO8390=m 636CONFIG_ZORRO8390=m
634CONFIG_APNE=m 637CONFIG_APNE=m
635CONFIG_APOLLO_ELPLUS=y
636CONFIG_MAC8390=y 638CONFIG_MAC8390=y
637CONFIG_MAC89x0=m 639CONFIG_MAC89x0=m
638CONFIG_MACSONIC=m 640CONFIG_MACSONIC=m
@@ -791,6 +793,7 @@ CONFIG_SERIO_LIBPS2=y
791# Character devices 793# Character devices
792# 794#
793CONFIG_VT=y 795CONFIG_VT=y
796CONFIG_CONSOLE_TRANSLATIONS=y
794CONFIG_VT_CONSOLE=y 797CONFIG_VT_CONSOLE=y
795CONFIG_HW_CONSOLE=y 798CONFIG_HW_CONSOLE=y
796CONFIG_VT_HW_CONSOLE_BINDING=y 799CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -827,6 +830,7 @@ CONFIG_GEN_RTC_X=y
827# CONFIG_POWER_SUPPLY is not set 830# CONFIG_POWER_SUPPLY is not set
828# CONFIG_HWMON is not set 831# CONFIG_HWMON is not set
829# CONFIG_THERMAL is not set 832# CONFIG_THERMAL is not set
833# CONFIG_THERMAL_HWMON is not set
830# CONFIG_WATCHDOG is not set 834# CONFIG_WATCHDOG is not set
831 835
832# 836#
@@ -838,8 +842,10 @@ CONFIG_SSB_POSSIBLE=y
838# 842#
839# Multifunction device drivers 843# Multifunction device drivers
840# 844#
845# CONFIG_MFD_CORE is not set
841# CONFIG_MFD_SM501 is not set 846# CONFIG_MFD_SM501 is not set
842# CONFIG_HTC_PASIC3 is not set 847# CONFIG_HTC_PASIC3 is not set
848# CONFIG_MFD_TMIO is not set
843 849
844# 850#
845# Multimedia devices 851# Multimedia devices
@@ -923,10 +929,6 @@ CONFIG_LOGO_LINUX_MONO=y
923CONFIG_LOGO_LINUX_VGA16=y 929CONFIG_LOGO_LINUX_VGA16=y
924CONFIG_LOGO_LINUX_CLUT224=y 930CONFIG_LOGO_LINUX_CLUT224=y
925CONFIG_LOGO_MAC_CLUT224=y 931CONFIG_LOGO_MAC_CLUT224=y
926
927#
928# Sound
929#
930CONFIG_SOUND=m 932CONFIG_SOUND=m
931CONFIG_DMASOUND_ATARI=m 933CONFIG_DMASOUND_ATARI=m
932CONFIG_DMASOUND_PAULA=m 934CONFIG_DMASOUND_PAULA=m
@@ -942,6 +944,7 @@ CONFIG_HIDRAW=y
942# CONFIG_NEW_LEDS is not set 944# CONFIG_NEW_LEDS is not set
943# CONFIG_ACCESSIBILITY is not set 945# CONFIG_ACCESSIBILITY is not set
944# CONFIG_RTC_CLASS is not set 946# CONFIG_RTC_CLASS is not set
947# CONFIG_DMADEVICES is not set
945# CONFIG_AUXDISPLAY is not set 948# CONFIG_AUXDISPLAY is not set
946# CONFIG_UIO is not set 949# CONFIG_UIO is not set
947 950
@@ -949,8 +952,6 @@ CONFIG_HIDRAW=y
949# Character devices 952# Character devices
950# 953#
951CONFIG_ATARI_MFPSER=m 954CONFIG_ATARI_MFPSER=m
952CONFIG_ATARI_SCC=y
953CONFIG_ATARI_SCC_DMA=y
954CONFIG_ATARI_MIDI=m 955CONFIG_ATARI_MIDI=m
955CONFIG_ATARI_DSP56K=m 956CONFIG_ATARI_DSP56K=m
956CONFIG_AMIGA_BUILTIN_SERIAL=y 957CONFIG_AMIGA_BUILTIN_SERIAL=y
@@ -972,8 +973,10 @@ CONFIG_EXT2_FS=y
972# CONFIG_EXT2_FS_XIP is not set 973# CONFIG_EXT2_FS_XIP is not set
973CONFIG_EXT3_FS=y 974CONFIG_EXT3_FS=y
974# CONFIG_EXT3_FS_XATTR is not set 975# CONFIG_EXT3_FS_XATTR is not set
975# CONFIG_EXT4DEV_FS is not set 976CONFIG_EXT4DEV_FS=y
977# CONFIG_EXT4DEV_FS_XATTR is not set
976CONFIG_JBD=y 978CONFIG_JBD=y
979CONFIG_JBD2=y
977CONFIG_REISERFS_FS=m 980CONFIG_REISERFS_FS=m
978# CONFIG_REISERFS_CHECK is not set 981# CONFIG_REISERFS_CHECK is not set
979# CONFIG_REISERFS_PROC_INFO is not set 982# CONFIG_REISERFS_PROC_INFO is not set
@@ -992,6 +995,7 @@ CONFIG_XFS_FS=m
992CONFIG_OCFS2_FS=m 995CONFIG_OCFS2_FS=m
993CONFIG_OCFS2_FS_O2CB=m 996CONFIG_OCFS2_FS_O2CB=m
994CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 997CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
998# CONFIG_OCFS2_FS_STATS is not set
995# CONFIG_OCFS2_DEBUG_MASKLOG is not set 999# CONFIG_OCFS2_DEBUG_MASKLOG is not set
996# CONFIG_OCFS2_DEBUG_FS is not set 1000# CONFIG_OCFS2_DEBUG_FS is not set
997CONFIG_DNOTIFY=y 1001CONFIG_DNOTIFY=y
@@ -1051,6 +1055,7 @@ CONFIG_HFSPLUS_FS=y
1051CONFIG_CRAMFS=m 1055CONFIG_CRAMFS=m
1052# CONFIG_VXFS_FS is not set 1056# CONFIG_VXFS_FS is not set
1053CONFIG_MINIX_FS=y 1057CONFIG_MINIX_FS=y
1058# CONFIG_OMFS_FS is not set
1054CONFIG_HPFS_FS=m 1059CONFIG_HPFS_FS=m
1055# CONFIG_QNX4FS_FS is not set 1060# CONFIG_QNX4FS_FS is not set
1056# CONFIG_ROMFS_FS is not set 1061# CONFIG_ROMFS_FS is not set
@@ -1063,18 +1068,17 @@ CONFIG_NFS_FS=y
1063CONFIG_NFS_V3=y 1068CONFIG_NFS_V3=y
1064# CONFIG_NFS_V3_ACL is not set 1069# CONFIG_NFS_V3_ACL is not set
1065CONFIG_NFS_V4=y 1070CONFIG_NFS_V4=y
1071CONFIG_ROOT_NFS=y
1066CONFIG_NFSD=m 1072CONFIG_NFSD=m
1067CONFIG_NFSD_V3=y 1073CONFIG_NFSD_V3=y
1068# CONFIG_NFSD_V3_ACL is not set 1074# CONFIG_NFSD_V3_ACL is not set
1069# CONFIG_NFSD_V4 is not set 1075# CONFIG_NFSD_V4 is not set
1070CONFIG_ROOT_NFS=y
1071CONFIG_LOCKD=y 1076CONFIG_LOCKD=y
1072CONFIG_LOCKD_V4=y 1077CONFIG_LOCKD_V4=y
1073CONFIG_EXPORTFS=m 1078CONFIG_EXPORTFS=m
1074CONFIG_NFS_COMMON=y 1079CONFIG_NFS_COMMON=y
1075CONFIG_SUNRPC=y 1080CONFIG_SUNRPC=y
1076CONFIG_SUNRPC_GSS=y 1081CONFIG_SUNRPC_GSS=y
1077CONFIG_SUNRPC_BIND34=y
1078CONFIG_RPCSEC_GSS_KRB5=y 1082CONFIG_RPCSEC_GSS_KRB5=y
1079# CONFIG_RPCSEC_GSS_SPKM3 is not set 1083# CONFIG_RPCSEC_GSS_SPKM3 is not set
1080CONFIG_SMB_FS=m 1084CONFIG_SMB_FS=m
@@ -1083,7 +1087,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
1083# CONFIG_CIFS is not set 1087# CONFIG_CIFS is not set
1084# CONFIG_NCP_FS is not set 1088# CONFIG_NCP_FS is not set
1085CONFIG_CODA_FS=m 1089CONFIG_CODA_FS=m
1086# CONFIG_CODA_FS_OLD_API is not set
1087# CONFIG_AFS_FS is not set 1090# CONFIG_AFS_FS is not set
1088 1091
1089# 1092#
@@ -1152,6 +1155,8 @@ CONFIG_MAGIC_SYSRQ=y
1152# CONFIG_HEADERS_CHECK is not set 1155# CONFIG_HEADERS_CHECK is not set
1153# CONFIG_DEBUG_KERNEL is not set 1156# CONFIG_DEBUG_KERNEL is not set
1154CONFIG_DEBUG_BUGVERBOSE=y 1157CONFIG_DEBUG_BUGVERBOSE=y
1158CONFIG_DEBUG_MEMORY_INIT=y
1159CONFIG_SYSCTL_SYSCALL_CHECK=y
1155# CONFIG_SAMPLES is not set 1160# CONFIG_SAMPLES is not set
1156 1161
1157# 1162#
@@ -1211,6 +1216,10 @@ CONFIG_CRYPTO_CRC32C=m
1211CONFIG_CRYPTO_MD4=m 1216CONFIG_CRYPTO_MD4=m
1212CONFIG_CRYPTO_MD5=y 1217CONFIG_CRYPTO_MD5=y
1213CONFIG_CRYPTO_MICHAEL_MIC=m 1218CONFIG_CRYPTO_MICHAEL_MIC=m
1219CONFIG_CRYPTO_RMD128=m
1220CONFIG_CRYPTO_RMD160=m
1221CONFIG_CRYPTO_RMD256=m
1222CONFIG_CRYPTO_RMD320=m
1214CONFIG_CRYPTO_SHA1=m 1223CONFIG_CRYPTO_SHA1=m
1215CONFIG_CRYPTO_SHA256=m 1224CONFIG_CRYPTO_SHA256=m
1216CONFIG_CRYPTO_SHA512=m 1225CONFIG_CRYPTO_SHA512=m
@@ -1252,6 +1261,7 @@ CONFIG_BITREVERSE=y
1252# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1261# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1253CONFIG_CRC_CCITT=m 1262CONFIG_CRC_CCITT=m
1254CONFIG_CRC16=y 1263CONFIG_CRC16=y
1264CONFIG_CRC_T10DIF=y
1255CONFIG_CRC_ITU_T=m 1265CONFIG_CRC_ITU_T=m
1256CONFIG_CRC32=y 1266CONFIG_CRC32=y
1257# CONFIG_CRC7 is not set 1267# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/mvme147_defconfig b/arch/m68k/configs/mvme147_defconfig
index e7a8246840b..cacb5aef6a3 100644
--- a/arch/m68k/configs/mvme147_defconfig
+++ b/arch/m68k/configs/mvme147_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:08 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -163,10 +169,6 @@ CONFIG_BINFMT_MISC=m
163CONFIG_PROC_HARDWARE=y 169CONFIG_PROC_HARDWARE=y
164CONFIG_ZONE_DMA=y 170CONFIG_ZONE_DMA=y
165# CONFIG_ARCH_SUPPORTS_MSI is not set 171# CONFIG_ARCH_SUPPORTS_MSI is not set
166
167#
168# Networking
169#
170CONFIG_NET=y 172CONFIG_NET=y
171 173
172# 174#
@@ -180,6 +182,7 @@ CONFIG_XFRM=y
180# CONFIG_XFRM_SUB_POLICY is not set 182# CONFIG_XFRM_SUB_POLICY is not set
181CONFIG_XFRM_MIGRATE=y 183CONFIG_XFRM_MIGRATE=y
182# CONFIG_XFRM_STATISTICS is not set 184# CONFIG_XFRM_STATISTICS is not set
185CONFIG_XFRM_IPCOMP=m
183CONFIG_NET_KEY=y 186CONFIG_NET_KEY=y
184CONFIG_NET_KEY_MIGRATE=y 187CONFIG_NET_KEY_MIGRATE=y
185CONFIG_INET=y 188CONFIG_INET=y
@@ -413,6 +416,7 @@ CONFIG_NET_CLS_ROUTE=y
413# 416#
414# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_EXT=y 418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
416# CONFIG_MAC80211 is not set 420# CONFIG_MAC80211 is not set
417CONFIG_IEEE80211=m 421CONFIG_IEEE80211=m
418# CONFIG_IEEE80211_DEBUG is not set 422# CONFIG_IEEE80211_DEBUG is not set
@@ -432,7 +436,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
432CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 436CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
433CONFIG_STANDALONE=y 437CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y 438CONFIG_PREVENT_FIRMWARE_BUILD=y
435CONFIG_FW_LOADER=m 439CONFIG_FW_LOADER=y
440# CONFIG_FIRMWARE_IN_KERNEL is not set
441CONFIG_EXTRA_FIRMWARE=""
436# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
437CONFIG_CONNECTOR=m 443CONFIG_CONNECTOR=m
438# CONFIG_MTD is not set 444# CONFIG_MTD is not set
@@ -450,6 +456,7 @@ CONFIG_CDROM_PKTCDVD=m
450CONFIG_CDROM_PKTCDVD_BUFFERS=8 456CONFIG_CDROM_PKTCDVD_BUFFERS=8
451# CONFIG_CDROM_PKTCDVD_WCACHE is not set 457# CONFIG_CDROM_PKTCDVD_WCACHE is not set
452CONFIG_ATA_OVER_ETH=m 458CONFIG_ATA_OVER_ETH=m
459# CONFIG_BLK_DEV_HD is not set
453CONFIG_MISC_DEVICES=y 460CONFIG_MISC_DEVICES=y
454# CONFIG_EEPROM_93CX6 is not set 461# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_ENCLOSURE_SERVICES is not set 462# CONFIG_ENCLOSURE_SERVICES is not set
@@ -502,6 +509,7 @@ CONFIG_SCSI_LOWLEVEL=y
502CONFIG_ISCSI_TCP=m 509CONFIG_ISCSI_TCP=m
503# CONFIG_SCSI_DEBUG is not set 510# CONFIG_SCSI_DEBUG is not set
504CONFIG_MVME147_SCSI=y 511CONFIG_MVME147_SCSI=y
512# CONFIG_SCSI_DH is not set
505CONFIG_MD=y 513CONFIG_MD=y
506CONFIG_BLK_DEV_MD=m 514CONFIG_BLK_DEV_MD=m
507CONFIG_MD_LINEAR=m 515CONFIG_MD_LINEAR=m
@@ -510,7 +518,7 @@ CONFIG_MD_RAID1=m
510# CONFIG_MD_RAID10 is not set 518# CONFIG_MD_RAID10 is not set
511CONFIG_MD_RAID456=m 519CONFIG_MD_RAID456=m
512CONFIG_MD_RAID5_RESHAPE=y 520CONFIG_MD_RAID5_RESHAPE=y
513CONFIG_MD_MULTIPATH=m 521# CONFIG_MD_MULTIPATH is not set
514# CONFIG_MD_FAULTY is not set 522# CONFIG_MD_FAULTY is not set
515CONFIG_BLK_DEV_DM=m 523CONFIG_BLK_DEV_DM=m
516# CONFIG_DM_DEBUG is not set 524# CONFIG_DM_DEBUG is not set
@@ -519,13 +527,9 @@ CONFIG_DM_SNAPSHOT=m
519CONFIG_DM_MIRROR=m 527CONFIG_DM_MIRROR=m
520CONFIG_DM_ZERO=m 528CONFIG_DM_ZERO=m
521CONFIG_DM_MULTIPATH=m 529CONFIG_DM_MULTIPATH=m
522CONFIG_DM_MULTIPATH_EMC=m
523CONFIG_DM_MULTIPATH_RDAC=m
524CONFIG_DM_MULTIPATH_HP=m
525# CONFIG_DM_DELAY is not set 530# CONFIG_DM_DELAY is not set
526CONFIG_DM_UEVENT=y 531CONFIG_DM_UEVENT=y
527CONFIG_NETDEVICES=y 532CONFIG_NETDEVICES=y
528# CONFIG_NETDEVICES_MULTIQUEUE is not set
529CONFIG_DUMMY=m 533CONFIG_DUMMY=m
530# CONFIG_BONDING is not set 534# CONFIG_BONDING is not set
531CONFIG_MACVLAN=m 535CONFIG_MACVLAN=m
@@ -630,6 +634,7 @@ CONFIG_SERIO_LIBPS2=m
630# Character devices 634# Character devices
631# 635#
632CONFIG_VT=y 636CONFIG_VT=y
637CONFIG_CONSOLE_TRANSLATIONS=y
633CONFIG_VT_CONSOLE=y 638CONFIG_VT_CONSOLE=y
634CONFIG_HW_CONSOLE=y 639CONFIG_HW_CONSOLE=y
635CONFIG_VT_HW_CONSOLE_BINDING=y 640CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -660,6 +665,7 @@ CONFIG_GEN_RTC_X=y
660# CONFIG_POWER_SUPPLY is not set 665# CONFIG_POWER_SUPPLY is not set
661# CONFIG_HWMON is not set 666# CONFIG_HWMON is not set
662# CONFIG_THERMAL is not set 667# CONFIG_THERMAL is not set
668# CONFIG_THERMAL_HWMON is not set
663# CONFIG_WATCHDOG is not set 669# CONFIG_WATCHDOG is not set
664 670
665# 671#
@@ -671,8 +677,10 @@ CONFIG_SSB_POSSIBLE=y
671# 677#
672# Multifunction device drivers 678# Multifunction device drivers
673# 679#
680# CONFIG_MFD_CORE is not set
674# CONFIG_MFD_SM501 is not set 681# CONFIG_MFD_SM501 is not set
675# CONFIG_HTC_PASIC3 is not set 682# CONFIG_HTC_PASIC3 is not set
683# CONFIG_MFD_TMIO is not set
676 684
677# 685#
678# Multimedia devices 686# Multimedia devices
@@ -707,10 +715,6 @@ CONFIG_SSB_POSSIBLE=y
707# Console display driver support 715# Console display driver support
708# 716#
709CONFIG_DUMMY_CONSOLE=y 717CONFIG_DUMMY_CONSOLE=y
710
711#
712# Sound
713#
714# CONFIG_SOUND is not set 718# CONFIG_SOUND is not set
715CONFIG_HID_SUPPORT=y 719CONFIG_HID_SUPPORT=y
716CONFIG_HID=m 720CONFIG_HID=m
@@ -722,6 +726,7 @@ CONFIG_HIDRAW=y
722# CONFIG_NEW_LEDS is not set 726# CONFIG_NEW_LEDS is not set
723# CONFIG_ACCESSIBILITY is not set 727# CONFIG_ACCESSIBILITY is not set
724# CONFIG_RTC_CLASS is not set 728# CONFIG_RTC_CLASS is not set
729# CONFIG_DMADEVICES is not set
725# CONFIG_UIO is not set 730# CONFIG_UIO is not set
726 731
727# 732#
@@ -758,6 +763,7 @@ CONFIG_XFS_FS=m
758CONFIG_OCFS2_FS=m 763CONFIG_OCFS2_FS=m
759CONFIG_OCFS2_FS_O2CB=m 764CONFIG_OCFS2_FS_O2CB=m
760CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 765CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
766# CONFIG_OCFS2_FS_STATS is not set
761# CONFIG_OCFS2_DEBUG_MASKLOG is not set 767# CONFIG_OCFS2_DEBUG_MASKLOG is not set
762# CONFIG_OCFS2_DEBUG_FS is not set 768# CONFIG_OCFS2_DEBUG_FS is not set
763CONFIG_DNOTIFY=y 769CONFIG_DNOTIFY=y
@@ -817,6 +823,7 @@ CONFIG_HFSPLUS_FS=m
817CONFIG_CRAMFS=m 823CONFIG_CRAMFS=m
818# CONFIG_VXFS_FS is not set 824# CONFIG_VXFS_FS is not set
819CONFIG_MINIX_FS=y 825CONFIG_MINIX_FS=y
826# CONFIG_OMFS_FS is not set
820CONFIG_HPFS_FS=m 827CONFIG_HPFS_FS=m
821# CONFIG_QNX4FS_FS is not set 828# CONFIG_QNX4FS_FS is not set
822# CONFIG_ROMFS_FS is not set 829# CONFIG_ROMFS_FS is not set
@@ -829,18 +836,17 @@ CONFIG_NFS_FS=y
829CONFIG_NFS_V3=y 836CONFIG_NFS_V3=y
830# CONFIG_NFS_V3_ACL is not set 837# CONFIG_NFS_V3_ACL is not set
831CONFIG_NFS_V4=y 838CONFIG_NFS_V4=y
839CONFIG_ROOT_NFS=y
832CONFIG_NFSD=m 840CONFIG_NFSD=m
833CONFIG_NFSD_V3=y 841CONFIG_NFSD_V3=y
834# CONFIG_NFSD_V3_ACL is not set 842# CONFIG_NFSD_V3_ACL is not set
835# CONFIG_NFSD_V4 is not set 843# CONFIG_NFSD_V4 is not set
836CONFIG_ROOT_NFS=y
837CONFIG_LOCKD=y 844CONFIG_LOCKD=y
838CONFIG_LOCKD_V4=y 845CONFIG_LOCKD_V4=y
839CONFIG_EXPORTFS=m 846CONFIG_EXPORTFS=m
840CONFIG_NFS_COMMON=y 847CONFIG_NFS_COMMON=y
841CONFIG_SUNRPC=y 848CONFIG_SUNRPC=y
842CONFIG_SUNRPC_GSS=y 849CONFIG_SUNRPC_GSS=y
843CONFIG_SUNRPC_BIND34=y
844CONFIG_RPCSEC_GSS_KRB5=y 850CONFIG_RPCSEC_GSS_KRB5=y
845# CONFIG_RPCSEC_GSS_SPKM3 is not set 851# CONFIG_RPCSEC_GSS_SPKM3 is not set
846CONFIG_SMB_FS=m 852CONFIG_SMB_FS=m
@@ -849,7 +855,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
849# CONFIG_CIFS is not set 855# CONFIG_CIFS is not set
850# CONFIG_NCP_FS is not set 856# CONFIG_NCP_FS is not set
851CONFIG_CODA_FS=m 857CONFIG_CODA_FS=m
852# CONFIG_CODA_FS_OLD_API is not set
853# CONFIG_AFS_FS is not set 858# CONFIG_AFS_FS is not set
854 859
855# 860#
@@ -914,6 +919,8 @@ CONFIG_MAGIC_SYSRQ=y
914# CONFIG_HEADERS_CHECK is not set 919# CONFIG_HEADERS_CHECK is not set
915# CONFIG_DEBUG_KERNEL is not set 920# CONFIG_DEBUG_KERNEL is not set
916CONFIG_DEBUG_BUGVERBOSE=y 921CONFIG_DEBUG_BUGVERBOSE=y
922CONFIG_DEBUG_MEMORY_INIT=y
923CONFIG_SYSCTL_SYSCALL_CHECK=y
917# CONFIG_SAMPLES is not set 924# CONFIG_SAMPLES is not set
918 925
919# 926#
@@ -973,6 +980,10 @@ CONFIG_CRYPTO_CRC32C=m
973CONFIG_CRYPTO_MD4=m 980CONFIG_CRYPTO_MD4=m
974CONFIG_CRYPTO_MD5=y 981CONFIG_CRYPTO_MD5=y
975CONFIG_CRYPTO_MICHAEL_MIC=m 982CONFIG_CRYPTO_MICHAEL_MIC=m
983CONFIG_CRYPTO_RMD128=m
984CONFIG_CRYPTO_RMD160=m
985CONFIG_CRYPTO_RMD256=m
986CONFIG_CRYPTO_RMD320=m
976CONFIG_CRYPTO_SHA1=m 987CONFIG_CRYPTO_SHA1=m
977CONFIG_CRYPTO_SHA256=m 988CONFIG_CRYPTO_SHA256=m
978CONFIG_CRYPTO_SHA512=m 989CONFIG_CRYPTO_SHA512=m
@@ -1014,6 +1025,7 @@ CONFIG_BITREVERSE=y
1014# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1025# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1015CONFIG_CRC_CCITT=m 1026CONFIG_CRC_CCITT=m
1016CONFIG_CRC16=m 1027CONFIG_CRC16=m
1028CONFIG_CRC_T10DIF=y
1017CONFIG_CRC_ITU_T=m 1029CONFIG_CRC_ITU_T=m
1018CONFIG_CRC32=y 1030CONFIG_CRC32=y
1019# CONFIG_CRC7 is not set 1031# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/mvme16x_defconfig b/arch/m68k/configs/mvme16x_defconfig
index ab536eb172b..a183e25e348 100644
--- a/arch/m68k/configs/mvme16x_defconfig
+++ b/arch/m68k/configs/mvme16x_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:09 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -163,10 +169,6 @@ CONFIG_BINFMT_MISC=m
163CONFIG_PROC_HARDWARE=y 169CONFIG_PROC_HARDWARE=y
164CONFIG_ZONE_DMA=y 170CONFIG_ZONE_DMA=y
165# CONFIG_ARCH_SUPPORTS_MSI is not set 171# CONFIG_ARCH_SUPPORTS_MSI is not set
166
167#
168# Networking
169#
170CONFIG_NET=y 172CONFIG_NET=y
171 173
172# 174#
@@ -180,6 +182,7 @@ CONFIG_XFRM=y
180# CONFIG_XFRM_SUB_POLICY is not set 182# CONFIG_XFRM_SUB_POLICY is not set
181CONFIG_XFRM_MIGRATE=y 183CONFIG_XFRM_MIGRATE=y
182# CONFIG_XFRM_STATISTICS is not set 184# CONFIG_XFRM_STATISTICS is not set
185CONFIG_XFRM_IPCOMP=m
183CONFIG_NET_KEY=y 186CONFIG_NET_KEY=y
184CONFIG_NET_KEY_MIGRATE=y 187CONFIG_NET_KEY_MIGRATE=y
185CONFIG_INET=y 188CONFIG_INET=y
@@ -413,6 +416,7 @@ CONFIG_NET_CLS_ROUTE=y
413# 416#
414# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_EXT=y 418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
416# CONFIG_MAC80211 is not set 420# CONFIG_MAC80211 is not set
417CONFIG_IEEE80211=m 421CONFIG_IEEE80211=m
418# CONFIG_IEEE80211_DEBUG is not set 422# CONFIG_IEEE80211_DEBUG is not set
@@ -432,7 +436,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
432CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 436CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
433CONFIG_STANDALONE=y 437CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y 438CONFIG_PREVENT_FIRMWARE_BUILD=y
435CONFIG_FW_LOADER=m 439CONFIG_FW_LOADER=y
440# CONFIG_FIRMWARE_IN_KERNEL is not set
441CONFIG_EXTRA_FIRMWARE=""
436# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
437CONFIG_CONNECTOR=m 443CONFIG_CONNECTOR=m
438# CONFIG_MTD is not set 444# CONFIG_MTD is not set
@@ -450,6 +456,7 @@ CONFIG_CDROM_PKTCDVD=m
450CONFIG_CDROM_PKTCDVD_BUFFERS=8 456CONFIG_CDROM_PKTCDVD_BUFFERS=8
451# CONFIG_CDROM_PKTCDVD_WCACHE is not set 457# CONFIG_CDROM_PKTCDVD_WCACHE is not set
452CONFIG_ATA_OVER_ETH=m 458CONFIG_ATA_OVER_ETH=m
459# CONFIG_BLK_DEV_HD is not set
453CONFIG_MISC_DEVICES=y 460CONFIG_MISC_DEVICES=y
454# CONFIG_EEPROM_93CX6 is not set 461# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_ENCLOSURE_SERVICES is not set 462# CONFIG_ENCLOSURE_SERVICES is not set
@@ -503,6 +510,7 @@ CONFIG_ISCSI_TCP=m
503CONFIG_53C700_BE_BUS=y 510CONFIG_53C700_BE_BUS=y
504# CONFIG_SCSI_DEBUG is not set 511# CONFIG_SCSI_DEBUG is not set
505CONFIG_MVME16x_SCSI=y 512CONFIG_MVME16x_SCSI=y
513# CONFIG_SCSI_DH is not set
506CONFIG_MD=y 514CONFIG_MD=y
507CONFIG_BLK_DEV_MD=m 515CONFIG_BLK_DEV_MD=m
508CONFIG_MD_LINEAR=m 516CONFIG_MD_LINEAR=m
@@ -511,7 +519,7 @@ CONFIG_MD_RAID1=m
511# CONFIG_MD_RAID10 is not set 519# CONFIG_MD_RAID10 is not set
512CONFIG_MD_RAID456=m 520CONFIG_MD_RAID456=m
513CONFIG_MD_RAID5_RESHAPE=y 521CONFIG_MD_RAID5_RESHAPE=y
514CONFIG_MD_MULTIPATH=m 522# CONFIG_MD_MULTIPATH is not set
515# CONFIG_MD_FAULTY is not set 523# CONFIG_MD_FAULTY is not set
516CONFIG_BLK_DEV_DM=m 524CONFIG_BLK_DEV_DM=m
517# CONFIG_DM_DEBUG is not set 525# CONFIG_DM_DEBUG is not set
@@ -520,13 +528,9 @@ CONFIG_DM_SNAPSHOT=m
520CONFIG_DM_MIRROR=m 528CONFIG_DM_MIRROR=m
521CONFIG_DM_ZERO=m 529CONFIG_DM_ZERO=m
522CONFIG_DM_MULTIPATH=m 530CONFIG_DM_MULTIPATH=m
523CONFIG_DM_MULTIPATH_EMC=m
524CONFIG_DM_MULTIPATH_RDAC=m
525CONFIG_DM_MULTIPATH_HP=m
526# CONFIG_DM_DELAY is not set 531# CONFIG_DM_DELAY is not set
527CONFIG_DM_UEVENT=y 532CONFIG_DM_UEVENT=y
528CONFIG_NETDEVICES=y 533CONFIG_NETDEVICES=y
529# CONFIG_NETDEVICES_MULTIQUEUE is not set
530CONFIG_DUMMY=m 534CONFIG_DUMMY=m
531# CONFIG_BONDING is not set 535# CONFIG_BONDING is not set
532CONFIG_MACVLAN=m 536CONFIG_MACVLAN=m
@@ -631,6 +635,7 @@ CONFIG_SERIO_LIBPS2=m
631# Character devices 635# Character devices
632# 636#
633CONFIG_VT=y 637CONFIG_VT=y
638CONFIG_CONSOLE_TRANSLATIONS=y
634CONFIG_VT_CONSOLE=y 639CONFIG_VT_CONSOLE=y
635CONFIG_HW_CONSOLE=y 640CONFIG_HW_CONSOLE=y
636CONFIG_VT_HW_CONSOLE_BINDING=y 641CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -661,6 +666,7 @@ CONFIG_GEN_RTC_X=y
661# CONFIG_POWER_SUPPLY is not set 666# CONFIG_POWER_SUPPLY is not set
662# CONFIG_HWMON is not set 667# CONFIG_HWMON is not set
663# CONFIG_THERMAL is not set 668# CONFIG_THERMAL is not set
669# CONFIG_THERMAL_HWMON is not set
664# CONFIG_WATCHDOG is not set 670# CONFIG_WATCHDOG is not set
665 671
666# 672#
@@ -672,8 +678,10 @@ CONFIG_SSB_POSSIBLE=y
672# 678#
673# Multifunction device drivers 679# Multifunction device drivers
674# 680#
681# CONFIG_MFD_CORE is not set
675# CONFIG_MFD_SM501 is not set 682# CONFIG_MFD_SM501 is not set
676# CONFIG_HTC_PASIC3 is not set 683# CONFIG_HTC_PASIC3 is not set
684# CONFIG_MFD_TMIO is not set
677 685
678# 686#
679# Multimedia devices 687# Multimedia devices
@@ -708,10 +716,6 @@ CONFIG_SSB_POSSIBLE=y
708# Console display driver support 716# Console display driver support
709# 717#
710CONFIG_DUMMY_CONSOLE=y 718CONFIG_DUMMY_CONSOLE=y
711
712#
713# Sound
714#
715# CONFIG_SOUND is not set 719# CONFIG_SOUND is not set
716CONFIG_HID_SUPPORT=y 720CONFIG_HID_SUPPORT=y
717CONFIG_HID=m 721CONFIG_HID=m
@@ -723,6 +727,7 @@ CONFIG_HIDRAW=y
723# CONFIG_NEW_LEDS is not set 727# CONFIG_NEW_LEDS is not set
724# CONFIG_ACCESSIBILITY is not set 728# CONFIG_ACCESSIBILITY is not set
725# CONFIG_RTC_CLASS is not set 729# CONFIG_RTC_CLASS is not set
730# CONFIG_DMADEVICES is not set
726# CONFIG_UIO is not set 731# CONFIG_UIO is not set
727 732
728# 733#
@@ -760,6 +765,7 @@ CONFIG_XFS_FS=m
760CONFIG_OCFS2_FS=m 765CONFIG_OCFS2_FS=m
761CONFIG_OCFS2_FS_O2CB=m 766CONFIG_OCFS2_FS_O2CB=m
762CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 767CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
768# CONFIG_OCFS2_FS_STATS is not set
763# CONFIG_OCFS2_DEBUG_MASKLOG is not set 769# CONFIG_OCFS2_DEBUG_MASKLOG is not set
764# CONFIG_OCFS2_DEBUG_FS is not set 770# CONFIG_OCFS2_DEBUG_FS is not set
765CONFIG_DNOTIFY=y 771CONFIG_DNOTIFY=y
@@ -819,6 +825,7 @@ CONFIG_HFSPLUS_FS=m
819CONFIG_CRAMFS=m 825CONFIG_CRAMFS=m
820# CONFIG_VXFS_FS is not set 826# CONFIG_VXFS_FS is not set
821CONFIG_MINIX_FS=y 827CONFIG_MINIX_FS=y
828# CONFIG_OMFS_FS is not set
822CONFIG_HPFS_FS=m 829CONFIG_HPFS_FS=m
823# CONFIG_QNX4FS_FS is not set 830# CONFIG_QNX4FS_FS is not set
824# CONFIG_ROMFS_FS is not set 831# CONFIG_ROMFS_FS is not set
@@ -831,18 +838,17 @@ CONFIG_NFS_FS=y
831CONFIG_NFS_V3=y 838CONFIG_NFS_V3=y
832# CONFIG_NFS_V3_ACL is not set 839# CONFIG_NFS_V3_ACL is not set
833CONFIG_NFS_V4=y 840CONFIG_NFS_V4=y
841CONFIG_ROOT_NFS=y
834CONFIG_NFSD=m 842CONFIG_NFSD=m
835CONFIG_NFSD_V3=y 843CONFIG_NFSD_V3=y
836# CONFIG_NFSD_V3_ACL is not set 844# CONFIG_NFSD_V3_ACL is not set
837# CONFIG_NFSD_V4 is not set 845# CONFIG_NFSD_V4 is not set
838CONFIG_ROOT_NFS=y
839CONFIG_LOCKD=y 846CONFIG_LOCKD=y
840CONFIG_LOCKD_V4=y 847CONFIG_LOCKD_V4=y
841CONFIG_EXPORTFS=m 848CONFIG_EXPORTFS=m
842CONFIG_NFS_COMMON=y 849CONFIG_NFS_COMMON=y
843CONFIG_SUNRPC=y 850CONFIG_SUNRPC=y
844CONFIG_SUNRPC_GSS=y 851CONFIG_SUNRPC_GSS=y
845CONFIG_SUNRPC_BIND34=y
846CONFIG_RPCSEC_GSS_KRB5=y 852CONFIG_RPCSEC_GSS_KRB5=y
847# CONFIG_RPCSEC_GSS_SPKM3 is not set 853# CONFIG_RPCSEC_GSS_SPKM3 is not set
848CONFIG_SMB_FS=m 854CONFIG_SMB_FS=m
@@ -851,7 +857,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
851# CONFIG_CIFS is not set 857# CONFIG_CIFS is not set
852# CONFIG_NCP_FS is not set 858# CONFIG_NCP_FS is not set
853CONFIG_CODA_FS=m 859CONFIG_CODA_FS=m
854# CONFIG_CODA_FS_OLD_API is not set
855# CONFIG_AFS_FS is not set 860# CONFIG_AFS_FS is not set
856 861
857# 862#
@@ -916,6 +921,8 @@ CONFIG_MAGIC_SYSRQ=y
916# CONFIG_HEADERS_CHECK is not set 921# CONFIG_HEADERS_CHECK is not set
917# CONFIG_DEBUG_KERNEL is not set 922# CONFIG_DEBUG_KERNEL is not set
918CONFIG_DEBUG_BUGVERBOSE=y 923CONFIG_DEBUG_BUGVERBOSE=y
924CONFIG_DEBUG_MEMORY_INIT=y
925CONFIG_SYSCTL_SYSCALL_CHECK=y
919# CONFIG_SAMPLES is not set 926# CONFIG_SAMPLES is not set
920 927
921# 928#
@@ -975,6 +982,10 @@ CONFIG_CRYPTO_CRC32C=m
975CONFIG_CRYPTO_MD4=m 982CONFIG_CRYPTO_MD4=m
976CONFIG_CRYPTO_MD5=y 983CONFIG_CRYPTO_MD5=y
977CONFIG_CRYPTO_MICHAEL_MIC=m 984CONFIG_CRYPTO_MICHAEL_MIC=m
985CONFIG_CRYPTO_RMD128=m
986CONFIG_CRYPTO_RMD160=m
987CONFIG_CRYPTO_RMD256=m
988CONFIG_CRYPTO_RMD320=m
978CONFIG_CRYPTO_SHA1=m 989CONFIG_CRYPTO_SHA1=m
979CONFIG_CRYPTO_SHA256=m 990CONFIG_CRYPTO_SHA256=m
980CONFIG_CRYPTO_SHA512=m 991CONFIG_CRYPTO_SHA512=m
@@ -1016,6 +1027,7 @@ CONFIG_BITREVERSE=y
1016# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1027# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1017CONFIG_CRC_CCITT=m 1028CONFIG_CRC_CCITT=m
1018CONFIG_CRC16=m 1029CONFIG_CRC16=m
1030CONFIG_CRC_T10DIF=y
1019CONFIG_CRC_ITU_T=m 1031CONFIG_CRC_ITU_T=m
1020CONFIG_CRC32=y 1032CONFIG_CRC32=y
1021# CONFIG_CRC7 is not set 1033# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/q40_defconfig b/arch/m68k/configs/q40_defconfig
index e05be687b50..72eaff0776b 100644
--- a/arch/m68k/configs/q40_defconfig
+++ b/arch/m68k/configs/q40_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:10 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -163,10 +169,6 @@ CONFIG_ISA=y
163CONFIG_GENERIC_ISA_DMA=y 169CONFIG_GENERIC_ISA_DMA=y
164CONFIG_ZONE_DMA=y 170CONFIG_ZONE_DMA=y
165# CONFIG_ARCH_SUPPORTS_MSI is not set 171# CONFIG_ARCH_SUPPORTS_MSI is not set
166
167#
168# Networking
169#
170CONFIG_NET=y 172CONFIG_NET=y
171 173
172# 174#
@@ -180,6 +182,7 @@ CONFIG_XFRM=y
180# CONFIG_XFRM_SUB_POLICY is not set 182# CONFIG_XFRM_SUB_POLICY is not set
181CONFIG_XFRM_MIGRATE=y 183CONFIG_XFRM_MIGRATE=y
182# CONFIG_XFRM_STATISTICS is not set 184# CONFIG_XFRM_STATISTICS is not set
185CONFIG_XFRM_IPCOMP=m
183CONFIG_NET_KEY=y 186CONFIG_NET_KEY=y
184CONFIG_NET_KEY_MIGRATE=y 187CONFIG_NET_KEY_MIGRATE=y
185CONFIG_INET=y 188CONFIG_INET=y
@@ -410,6 +413,7 @@ CONFIG_NET_CLS_ROUTE=y
410# 413#
411# CONFIG_CFG80211 is not set 414# CONFIG_CFG80211 is not set
412CONFIG_WIRELESS_EXT=y 415CONFIG_WIRELESS_EXT=y
416# CONFIG_WIRELESS_EXT_SYSFS is not set
413# CONFIG_MAC80211 is not set 417# CONFIG_MAC80211 is not set
414CONFIG_IEEE80211=m 418CONFIG_IEEE80211=m
415# CONFIG_IEEE80211_DEBUG is not set 419# CONFIG_IEEE80211_DEBUG is not set
@@ -429,7 +433,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
429CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 433CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
430CONFIG_STANDALONE=y 434CONFIG_STANDALONE=y
431CONFIG_PREVENT_FIRMWARE_BUILD=y 435CONFIG_PREVENT_FIRMWARE_BUILD=y
432CONFIG_FW_LOADER=m 436CONFIG_FW_LOADER=y
437# CONFIG_FIRMWARE_IN_KERNEL is not set
438CONFIG_EXTRA_FIRMWARE=""
433# CONFIG_SYS_HYPERVISOR is not set 439# CONFIG_SYS_HYPERVISOR is not set
434CONFIG_CONNECTOR=m 440CONFIG_CONNECTOR=m
435# CONFIG_MTD is not set 441# CONFIG_MTD is not set
@@ -448,6 +454,7 @@ CONFIG_CDROM_PKTCDVD=m
448CONFIG_CDROM_PKTCDVD_BUFFERS=8 454CONFIG_CDROM_PKTCDVD_BUFFERS=8
449# CONFIG_CDROM_PKTCDVD_WCACHE is not set 455# CONFIG_CDROM_PKTCDVD_WCACHE is not set
450CONFIG_ATA_OVER_ETH=m 456CONFIG_ATA_OVER_ETH=m
457# CONFIG_BLK_DEV_HD is not set
451CONFIG_MISC_DEVICES=y 458CONFIG_MISC_DEVICES=y
452# CONFIG_EEPROM_93CX6 is not set 459# CONFIG_EEPROM_93CX6 is not set
453# CONFIG_ENCLOSURE_SERVICES is not set 460# CONFIG_ENCLOSURE_SERVICES is not set
@@ -458,6 +465,7 @@ CONFIG_BLK_DEV_IDE=y
458# 465#
459# Please see Documentation/ide/ide.txt for help/info on IDE drives 466# Please see Documentation/ide/ide.txt for help/info on IDE drives
460# 467#
468CONFIG_IDE_ATAPI=y
461# CONFIG_BLK_DEV_IDE_SATA is not set 469# CONFIG_BLK_DEV_IDE_SATA is not set
462CONFIG_BLK_DEV_IDEDISK=y 470CONFIG_BLK_DEV_IDEDISK=y
463# CONFIG_IDEDISK_MULTI_MODE is not set 471# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -475,8 +483,6 @@ CONFIG_IDE_PROC_FS=y
475# CONFIG_BLK_DEV_PLATFORM is not set 483# CONFIG_BLK_DEV_PLATFORM is not set
476CONFIG_BLK_DEV_Q40IDE=y 484CONFIG_BLK_DEV_Q40IDE=y
477# CONFIG_BLK_DEV_IDEDMA is not set 485# CONFIG_BLK_DEV_IDEDMA is not set
478# CONFIG_BLK_DEV_HD_ONLY is not set
479# CONFIG_BLK_DEV_HD is not set
480 486
481# 487#
482# SCSI device support 488# SCSI device support
@@ -536,6 +542,7 @@ CONFIG_ISCSI_TCP=m
536# CONFIG_SCSI_SYM53C416 is not set 542# CONFIG_SCSI_SYM53C416 is not set
537# CONFIG_SCSI_T128 is not set 543# CONFIG_SCSI_T128 is not set
538# CONFIG_SCSI_DEBUG is not set 544# CONFIG_SCSI_DEBUG is not set
545# CONFIG_SCSI_DH is not set
539CONFIG_MD=y 546CONFIG_MD=y
540CONFIG_BLK_DEV_MD=m 547CONFIG_BLK_DEV_MD=m
541CONFIG_MD_LINEAR=m 548CONFIG_MD_LINEAR=m
@@ -544,7 +551,7 @@ CONFIG_MD_RAID1=m
544# CONFIG_MD_RAID10 is not set 551# CONFIG_MD_RAID10 is not set
545CONFIG_MD_RAID456=m 552CONFIG_MD_RAID456=m
546CONFIG_MD_RAID5_RESHAPE=y 553CONFIG_MD_RAID5_RESHAPE=y
547CONFIG_MD_MULTIPATH=m 554# CONFIG_MD_MULTIPATH is not set
548# CONFIG_MD_FAULTY is not set 555# CONFIG_MD_FAULTY is not set
549CONFIG_BLK_DEV_DM=m 556CONFIG_BLK_DEV_DM=m
550# CONFIG_DM_DEBUG is not set 557# CONFIG_DM_DEBUG is not set
@@ -553,13 +560,9 @@ CONFIG_DM_SNAPSHOT=m
553CONFIG_DM_MIRROR=m 560CONFIG_DM_MIRROR=m
554CONFIG_DM_ZERO=m 561CONFIG_DM_ZERO=m
555CONFIG_DM_MULTIPATH=m 562CONFIG_DM_MULTIPATH=m
556CONFIG_DM_MULTIPATH_EMC=m
557CONFIG_DM_MULTIPATH_RDAC=m
558CONFIG_DM_MULTIPATH_HP=m
559# CONFIG_DM_DELAY is not set 563# CONFIG_DM_DELAY is not set
560CONFIG_DM_UEVENT=y 564CONFIG_DM_UEVENT=y
561CONFIG_NETDEVICES=y 565CONFIG_NETDEVICES=y
562# CONFIG_NETDEVICES_MULTIQUEUE is not set
563CONFIG_DUMMY=m 566CONFIG_DUMMY=m
564# CONFIG_BONDING is not set 567# CONFIG_BONDING is not set
565CONFIG_MACVLAN=m 568CONFIG_MACVLAN=m
@@ -680,6 +683,7 @@ CONFIG_SERIO_LIBPS2=m
680# Character devices 683# Character devices
681# 684#
682CONFIG_VT=y 685CONFIG_VT=y
686CONFIG_CONSOLE_TRANSLATIONS=y
683CONFIG_VT_CONSOLE=y 687CONFIG_VT_CONSOLE=y
684CONFIG_HW_CONSOLE=y 688CONFIG_HW_CONSOLE=y
685CONFIG_VT_HW_CONSOLE_BINDING=y 689CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -711,6 +715,7 @@ CONFIG_GEN_RTC_X=y
711# CONFIG_POWER_SUPPLY is not set 715# CONFIG_POWER_SUPPLY is not set
712# CONFIG_HWMON is not set 716# CONFIG_HWMON is not set
713# CONFIG_THERMAL is not set 717# CONFIG_THERMAL is not set
718# CONFIG_THERMAL_HWMON is not set
714# CONFIG_WATCHDOG is not set 719# CONFIG_WATCHDOG is not set
715 720
716# 721#
@@ -722,8 +727,10 @@ CONFIG_SSB_POSSIBLE=y
722# 727#
723# Multifunction device drivers 728# Multifunction device drivers
724# 729#
730# CONFIG_MFD_CORE is not set
725# CONFIG_MFD_SM501 is not set 731# CONFIG_MFD_SM501 is not set
726# CONFIG_HTC_PASIC3 is not set 732# CONFIG_HTC_PASIC3 is not set
733# CONFIG_MFD_TMIO is not set
727 734
728# 735#
729# Multimedia devices 736# Multimedia devices
@@ -792,10 +799,6 @@ CONFIG_LOGO=y
792CONFIG_LOGO_LINUX_MONO=y 799CONFIG_LOGO_LINUX_MONO=y
793CONFIG_LOGO_LINUX_VGA16=y 800CONFIG_LOGO_LINUX_VGA16=y
794CONFIG_LOGO_LINUX_CLUT224=y 801CONFIG_LOGO_LINUX_CLUT224=y
795
796#
797# Sound
798#
799CONFIG_SOUND=m 802CONFIG_SOUND=m
800CONFIG_DMASOUND_Q40=m 803CONFIG_DMASOUND_Q40=m
801CONFIG_DMASOUND=m 804CONFIG_DMASOUND=m
@@ -809,6 +812,7 @@ CONFIG_HIDRAW=y
809# CONFIG_NEW_LEDS is not set 812# CONFIG_NEW_LEDS is not set
810# CONFIG_ACCESSIBILITY is not set 813# CONFIG_ACCESSIBILITY is not set
811# CONFIG_RTC_CLASS is not set 814# CONFIG_RTC_CLASS is not set
815# CONFIG_DMADEVICES is not set
812# CONFIG_UIO is not set 816# CONFIG_UIO is not set
813 817
814# 818#
@@ -843,6 +847,7 @@ CONFIG_XFS_FS=m
843CONFIG_OCFS2_FS=m 847CONFIG_OCFS2_FS=m
844CONFIG_OCFS2_FS_O2CB=m 848CONFIG_OCFS2_FS_O2CB=m
845CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 849CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
850# CONFIG_OCFS2_FS_STATS is not set
846# CONFIG_OCFS2_DEBUG_MASKLOG is not set 851# CONFIG_OCFS2_DEBUG_MASKLOG is not set
847# CONFIG_OCFS2_DEBUG_FS is not set 852# CONFIG_OCFS2_DEBUG_FS is not set
848CONFIG_DNOTIFY=y 853CONFIG_DNOTIFY=y
@@ -902,6 +907,7 @@ CONFIG_HFSPLUS_FS=m
902CONFIG_CRAMFS=m 907CONFIG_CRAMFS=m
903# CONFIG_VXFS_FS is not set 908# CONFIG_VXFS_FS is not set
904CONFIG_MINIX_FS=y 909CONFIG_MINIX_FS=y
910# CONFIG_OMFS_FS is not set
905CONFIG_HPFS_FS=m 911CONFIG_HPFS_FS=m
906# CONFIG_QNX4FS_FS is not set 912# CONFIG_QNX4FS_FS is not set
907# CONFIG_ROMFS_FS is not set 913# CONFIG_ROMFS_FS is not set
@@ -924,7 +930,6 @@ CONFIG_EXPORTFS=m
924CONFIG_NFS_COMMON=y 930CONFIG_NFS_COMMON=y
925CONFIG_SUNRPC=y 931CONFIG_SUNRPC=y
926CONFIG_SUNRPC_GSS=y 932CONFIG_SUNRPC_GSS=y
927CONFIG_SUNRPC_BIND34=y
928CONFIG_RPCSEC_GSS_KRB5=y 933CONFIG_RPCSEC_GSS_KRB5=y
929# CONFIG_RPCSEC_GSS_SPKM3 is not set 934# CONFIG_RPCSEC_GSS_SPKM3 is not set
930CONFIG_SMB_FS=m 935CONFIG_SMB_FS=m
@@ -933,7 +938,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
933# CONFIG_CIFS is not set 938# CONFIG_CIFS is not set
934# CONFIG_NCP_FS is not set 939# CONFIG_NCP_FS is not set
935CONFIG_CODA_FS=m 940CONFIG_CODA_FS=m
936# CONFIG_CODA_FS_OLD_API is not set
937# CONFIG_AFS_FS is not set 941# CONFIG_AFS_FS is not set
938 942
939# 943#
@@ -997,6 +1001,8 @@ CONFIG_MAGIC_SYSRQ=y
997# CONFIG_HEADERS_CHECK is not set 1001# CONFIG_HEADERS_CHECK is not set
998# CONFIG_DEBUG_KERNEL is not set 1002# CONFIG_DEBUG_KERNEL is not set
999CONFIG_DEBUG_BUGVERBOSE=y 1003CONFIG_DEBUG_BUGVERBOSE=y
1004CONFIG_DEBUG_MEMORY_INIT=y
1005CONFIG_SYSCTL_SYSCALL_CHECK=y
1000# CONFIG_SAMPLES is not set 1006# CONFIG_SAMPLES is not set
1001 1007
1002# 1008#
@@ -1056,6 +1062,10 @@ CONFIG_CRYPTO_CRC32C=m
1056CONFIG_CRYPTO_MD4=m 1062CONFIG_CRYPTO_MD4=m
1057CONFIG_CRYPTO_MD5=y 1063CONFIG_CRYPTO_MD5=y
1058CONFIG_CRYPTO_MICHAEL_MIC=m 1064CONFIG_CRYPTO_MICHAEL_MIC=m
1065CONFIG_CRYPTO_RMD128=m
1066CONFIG_CRYPTO_RMD160=m
1067CONFIG_CRYPTO_RMD256=m
1068CONFIG_CRYPTO_RMD320=m
1059CONFIG_CRYPTO_SHA1=m 1069CONFIG_CRYPTO_SHA1=m
1060CONFIG_CRYPTO_SHA256=m 1070CONFIG_CRYPTO_SHA256=m
1061CONFIG_CRYPTO_SHA512=m 1071CONFIG_CRYPTO_SHA512=m
@@ -1097,6 +1107,7 @@ CONFIG_BITREVERSE=y
1097# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1107# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1098CONFIG_CRC_CCITT=m 1108CONFIG_CRC_CCITT=m
1099CONFIG_CRC16=m 1109CONFIG_CRC16=m
1110CONFIG_CRC_T10DIF=y
1100CONFIG_CRC_ITU_T=m 1111CONFIG_CRC_ITU_T=m
1101CONFIG_CRC32=y 1112CONFIG_CRC32=y
1102# CONFIG_CRC7 is not set 1113# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/sun3_defconfig b/arch/m68k/configs/sun3_defconfig
index 296340d2b31..cb62b96d766 100644
--- a/arch/m68k/configs/sun3_defconfig
+++ b/arch/m68k/configs/sun3_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:11 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -149,10 +155,6 @@ CONFIG_BINFMT_MISC=m
149CONFIG_PROC_HARDWARE=y 155CONFIG_PROC_HARDWARE=y
150CONFIG_ZONE_DMA=y 156CONFIG_ZONE_DMA=y
151# CONFIG_ARCH_SUPPORTS_MSI is not set 157# CONFIG_ARCH_SUPPORTS_MSI is not set
152
153#
154# Networking
155#
156CONFIG_NET=y 158CONFIG_NET=y
157 159
158# 160#
@@ -166,6 +168,7 @@ CONFIG_XFRM=y
166# CONFIG_XFRM_SUB_POLICY is not set 168# CONFIG_XFRM_SUB_POLICY is not set
167CONFIG_XFRM_MIGRATE=y 169CONFIG_XFRM_MIGRATE=y
168# CONFIG_XFRM_STATISTICS is not set 170# CONFIG_XFRM_STATISTICS is not set
171CONFIG_XFRM_IPCOMP=m
169CONFIG_NET_KEY=y 172CONFIG_NET_KEY=y
170CONFIG_NET_KEY_MIGRATE=y 173CONFIG_NET_KEY_MIGRATE=y
171CONFIG_INET=y 174CONFIG_INET=y
@@ -399,6 +402,7 @@ CONFIG_NET_CLS_ROUTE=y
399# 402#
400# CONFIG_CFG80211 is not set 403# CONFIG_CFG80211 is not set
401CONFIG_WIRELESS_EXT=y 404CONFIG_WIRELESS_EXT=y
405# CONFIG_WIRELESS_EXT_SYSFS is not set
402# CONFIG_MAC80211 is not set 406# CONFIG_MAC80211 is not set
403CONFIG_IEEE80211=m 407CONFIG_IEEE80211=m
404# CONFIG_IEEE80211_DEBUG is not set 408# CONFIG_IEEE80211_DEBUG is not set
@@ -418,7 +422,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
418CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 422CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
419CONFIG_STANDALONE=y 423CONFIG_STANDALONE=y
420CONFIG_PREVENT_FIRMWARE_BUILD=y 424CONFIG_PREVENT_FIRMWARE_BUILD=y
421CONFIG_FW_LOADER=m 425CONFIG_FW_LOADER=y
426# CONFIG_FIRMWARE_IN_KERNEL is not set
427CONFIG_EXTRA_FIRMWARE=""
422# CONFIG_SYS_HYPERVISOR is not set 428# CONFIG_SYS_HYPERVISOR is not set
423CONFIG_CONNECTOR=m 429CONFIG_CONNECTOR=m
424# CONFIG_MTD is not set 430# CONFIG_MTD is not set
@@ -436,6 +442,7 @@ CONFIG_CDROM_PKTCDVD=m
436CONFIG_CDROM_PKTCDVD_BUFFERS=8 442CONFIG_CDROM_PKTCDVD_BUFFERS=8
437# CONFIG_CDROM_PKTCDVD_WCACHE is not set 443# CONFIG_CDROM_PKTCDVD_WCACHE is not set
438CONFIG_ATA_OVER_ETH=m 444CONFIG_ATA_OVER_ETH=m
445# CONFIG_BLK_DEV_HD is not set
439CONFIG_MISC_DEVICES=y 446CONFIG_MISC_DEVICES=y
440# CONFIG_EEPROM_93CX6 is not set 447# CONFIG_EEPROM_93CX6 is not set
441# CONFIG_ENCLOSURE_SERVICES is not set 448# CONFIG_ENCLOSURE_SERVICES is not set
@@ -488,6 +495,7 @@ CONFIG_SCSI_LOWLEVEL=y
488CONFIG_ISCSI_TCP=m 495CONFIG_ISCSI_TCP=m
489# CONFIG_SCSI_DEBUG is not set 496# CONFIG_SCSI_DEBUG is not set
490CONFIG_SUN3_SCSI=y 497CONFIG_SUN3_SCSI=y
498# CONFIG_SCSI_DH is not set
491CONFIG_MD=y 499CONFIG_MD=y
492CONFIG_BLK_DEV_MD=m 500CONFIG_BLK_DEV_MD=m
493CONFIG_MD_LINEAR=m 501CONFIG_MD_LINEAR=m
@@ -496,7 +504,7 @@ CONFIG_MD_RAID1=m
496# CONFIG_MD_RAID10 is not set 504# CONFIG_MD_RAID10 is not set
497CONFIG_MD_RAID456=m 505CONFIG_MD_RAID456=m
498CONFIG_MD_RAID5_RESHAPE=y 506CONFIG_MD_RAID5_RESHAPE=y
499CONFIG_MD_MULTIPATH=m 507# CONFIG_MD_MULTIPATH is not set
500# CONFIG_MD_FAULTY is not set 508# CONFIG_MD_FAULTY is not set
501CONFIG_BLK_DEV_DM=m 509CONFIG_BLK_DEV_DM=m
502# CONFIG_DM_DEBUG is not set 510# CONFIG_DM_DEBUG is not set
@@ -505,13 +513,9 @@ CONFIG_DM_SNAPSHOT=m
505CONFIG_DM_MIRROR=m 513CONFIG_DM_MIRROR=m
506CONFIG_DM_ZERO=m 514CONFIG_DM_ZERO=m
507CONFIG_DM_MULTIPATH=m 515CONFIG_DM_MULTIPATH=m
508CONFIG_DM_MULTIPATH_EMC=m
509CONFIG_DM_MULTIPATH_RDAC=m
510CONFIG_DM_MULTIPATH_HP=m
511# CONFIG_DM_DELAY is not set 516# CONFIG_DM_DELAY is not set
512CONFIG_DM_UEVENT=y 517CONFIG_DM_UEVENT=y
513CONFIG_NETDEVICES=y 518CONFIG_NETDEVICES=y
514# CONFIG_NETDEVICES_MULTIQUEUE is not set
515CONFIG_DUMMY=m 519CONFIG_DUMMY=m
516# CONFIG_BONDING is not set 520# CONFIG_BONDING is not set
517CONFIG_MACVLAN=m 521CONFIG_MACVLAN=m
@@ -527,7 +531,6 @@ CONFIG_SUN3_82586=y
527# CONFIG_IBM_NEW_EMAC_RGMII is not set 531# CONFIG_IBM_NEW_EMAC_RGMII is not set
528# CONFIG_IBM_NEW_EMAC_TAH is not set 532# CONFIG_IBM_NEW_EMAC_TAH is not set
529# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 533# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
530# CONFIG_B44 is not set
531# CONFIG_NETDEV_1000 is not set 534# CONFIG_NETDEV_1000 is not set
532# CONFIG_NETDEV_10000 is not set 535# CONFIG_NETDEV_10000 is not set
533 536
@@ -617,6 +620,7 @@ CONFIG_SERIO_LIBPS2=m
617# Character devices 620# Character devices
618# 621#
619CONFIG_VT=y 622CONFIG_VT=y
623CONFIG_CONSOLE_TRANSLATIONS=y
620CONFIG_VT_CONSOLE=y 624CONFIG_VT_CONSOLE=y
621CONFIG_HW_CONSOLE=y 625CONFIG_HW_CONSOLE=y
622CONFIG_VT_HW_CONSOLE_BINDING=y 626CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -647,19 +651,20 @@ CONFIG_GEN_RTC_X=y
647# CONFIG_POWER_SUPPLY is not set 651# CONFIG_POWER_SUPPLY is not set
648# CONFIG_HWMON is not set 652# CONFIG_HWMON is not set
649# CONFIG_THERMAL is not set 653# CONFIG_THERMAL is not set
654# CONFIG_THERMAL_HWMON is not set
650# CONFIG_WATCHDOG is not set 655# CONFIG_WATCHDOG is not set
651 656
652# 657#
653# Sonics Silicon Backplane 658# Sonics Silicon Backplane
654# 659#
655CONFIG_SSB_POSSIBLE=y
656# CONFIG_SSB is not set
657 660
658# 661#
659# Multifunction device drivers 662# Multifunction device drivers
660# 663#
664# CONFIG_MFD_CORE is not set
661# CONFIG_MFD_SM501 is not set 665# CONFIG_MFD_SM501 is not set
662# CONFIG_HTC_PASIC3 is not set 666# CONFIG_HTC_PASIC3 is not set
667# CONFIG_MFD_TMIO is not set
663 668
664# 669#
665# Multimedia devices 670# Multimedia devices
@@ -727,10 +732,6 @@ CONFIG_LOGO=y
727CONFIG_LOGO_LINUX_MONO=y 732CONFIG_LOGO_LINUX_MONO=y
728CONFIG_LOGO_LINUX_VGA16=y 733CONFIG_LOGO_LINUX_VGA16=y
729CONFIG_LOGO_LINUX_CLUT224=y 734CONFIG_LOGO_LINUX_CLUT224=y
730
731#
732# Sound
733#
734# CONFIG_SOUND is not set 735# CONFIG_SOUND is not set
735CONFIG_HID_SUPPORT=y 736CONFIG_HID_SUPPORT=y
736CONFIG_HID=m 737CONFIG_HID=m
@@ -776,6 +777,7 @@ CONFIG_XFS_FS=m
776CONFIG_OCFS2_FS=m 777CONFIG_OCFS2_FS=m
777CONFIG_OCFS2_FS_O2CB=m 778CONFIG_OCFS2_FS_O2CB=m
778CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 779CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
780# CONFIG_OCFS2_FS_STATS is not set
779# CONFIG_OCFS2_DEBUG_MASKLOG is not set 781# CONFIG_OCFS2_DEBUG_MASKLOG is not set
780# CONFIG_OCFS2_DEBUG_FS is not set 782# CONFIG_OCFS2_DEBUG_FS is not set
781CONFIG_DNOTIFY=y 783CONFIG_DNOTIFY=y
@@ -835,6 +837,7 @@ CONFIG_HFSPLUS_FS=m
835CONFIG_CRAMFS=m 837CONFIG_CRAMFS=m
836# CONFIG_VXFS_FS is not set 838# CONFIG_VXFS_FS is not set
837CONFIG_MINIX_FS=y 839CONFIG_MINIX_FS=y
840# CONFIG_OMFS_FS is not set
838CONFIG_HPFS_FS=m 841CONFIG_HPFS_FS=m
839# CONFIG_QNX4FS_FS is not set 842# CONFIG_QNX4FS_FS is not set
840# CONFIG_ROMFS_FS is not set 843# CONFIG_ROMFS_FS is not set
@@ -847,18 +850,17 @@ CONFIG_NFS_FS=y
847CONFIG_NFS_V3=y 850CONFIG_NFS_V3=y
848# CONFIG_NFS_V3_ACL is not set 851# CONFIG_NFS_V3_ACL is not set
849CONFIG_NFS_V4=y 852CONFIG_NFS_V4=y
853CONFIG_ROOT_NFS=y
850CONFIG_NFSD=m 854CONFIG_NFSD=m
851CONFIG_NFSD_V3=y 855CONFIG_NFSD_V3=y
852# CONFIG_NFSD_V3_ACL is not set 856# CONFIG_NFSD_V3_ACL is not set
853# CONFIG_NFSD_V4 is not set 857# CONFIG_NFSD_V4 is not set
854CONFIG_ROOT_NFS=y
855CONFIG_LOCKD=y 858CONFIG_LOCKD=y
856CONFIG_LOCKD_V4=y 859CONFIG_LOCKD_V4=y
857CONFIG_EXPORTFS=m 860CONFIG_EXPORTFS=m
858CONFIG_NFS_COMMON=y 861CONFIG_NFS_COMMON=y
859CONFIG_SUNRPC=y 862CONFIG_SUNRPC=y
860CONFIG_SUNRPC_GSS=y 863CONFIG_SUNRPC_GSS=y
861CONFIG_SUNRPC_BIND34=y
862CONFIG_RPCSEC_GSS_KRB5=y 864CONFIG_RPCSEC_GSS_KRB5=y
863# CONFIG_RPCSEC_GSS_SPKM3 is not set 865# CONFIG_RPCSEC_GSS_SPKM3 is not set
864CONFIG_SMB_FS=m 866CONFIG_SMB_FS=m
@@ -867,7 +869,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
867# CONFIG_CIFS is not set 869# CONFIG_CIFS is not set
868# CONFIG_NCP_FS is not set 870# CONFIG_NCP_FS is not set
869CONFIG_CODA_FS=m 871CONFIG_CODA_FS=m
870# CONFIG_CODA_FS_OLD_API is not set
871# CONFIG_AFS_FS is not set 872# CONFIG_AFS_FS is not set
872 873
873# 874#
@@ -932,6 +933,8 @@ CONFIG_MAGIC_SYSRQ=y
932# CONFIG_HEADERS_CHECK is not set 933# CONFIG_HEADERS_CHECK is not set
933# CONFIG_DEBUG_KERNEL is not set 934# CONFIG_DEBUG_KERNEL is not set
934CONFIG_DEBUG_BUGVERBOSE=y 935CONFIG_DEBUG_BUGVERBOSE=y
936CONFIG_DEBUG_MEMORY_INIT=y
937CONFIG_SYSCTL_SYSCALL_CHECK=y
935# CONFIG_SAMPLES is not set 938# CONFIG_SAMPLES is not set
936 939
937# 940#
@@ -991,6 +994,10 @@ CONFIG_CRYPTO_CRC32C=m
991CONFIG_CRYPTO_MD4=m 994CONFIG_CRYPTO_MD4=m
992CONFIG_CRYPTO_MD5=y 995CONFIG_CRYPTO_MD5=y
993CONFIG_CRYPTO_MICHAEL_MIC=m 996CONFIG_CRYPTO_MICHAEL_MIC=m
997CONFIG_CRYPTO_RMD128=m
998CONFIG_CRYPTO_RMD160=m
999CONFIG_CRYPTO_RMD256=m
1000CONFIG_CRYPTO_RMD320=m
994CONFIG_CRYPTO_SHA1=m 1001CONFIG_CRYPTO_SHA1=m
995CONFIG_CRYPTO_SHA256=m 1002CONFIG_CRYPTO_SHA256=m
996CONFIG_CRYPTO_SHA512=m 1003CONFIG_CRYPTO_SHA512=m
@@ -1032,6 +1039,7 @@ CONFIG_BITREVERSE=y
1032# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1039# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1033CONFIG_CRC_CCITT=m 1040CONFIG_CRC_CCITT=m
1034CONFIG_CRC16=m 1041CONFIG_CRC16=m
1042CONFIG_CRC_T10DIF=y
1035CONFIG_CRC_ITU_T=m 1043CONFIG_CRC_ITU_T=m
1036CONFIG_CRC32=y 1044CONFIG_CRC32=y
1037# CONFIG_CRC7 is not set 1045# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/sun3x_defconfig b/arch/m68k/configs/sun3x_defconfig
index 8d3a416c92b..04b4363a705 100644
--- a/arch/m68k/configs/sun3x_defconfig
+++ b/arch/m68k/configs/sun3x_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:12 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -160,10 +166,6 @@ CONFIG_BINFMT_MISC=m
160CONFIG_PROC_HARDWARE=y 166CONFIG_PROC_HARDWARE=y
161CONFIG_ZONE_DMA=y 167CONFIG_ZONE_DMA=y
162# CONFIG_ARCH_SUPPORTS_MSI is not set 168# CONFIG_ARCH_SUPPORTS_MSI is not set
163
164#
165# Networking
166#
167CONFIG_NET=y 169CONFIG_NET=y
168 170
169# 171#
@@ -177,6 +179,7 @@ CONFIG_XFRM=y
177# CONFIG_XFRM_SUB_POLICY is not set 179# CONFIG_XFRM_SUB_POLICY is not set
178CONFIG_XFRM_MIGRATE=y 180CONFIG_XFRM_MIGRATE=y
179# CONFIG_XFRM_STATISTICS is not set 181# CONFIG_XFRM_STATISTICS is not set
182CONFIG_XFRM_IPCOMP=m
180CONFIG_NET_KEY=y 183CONFIG_NET_KEY=y
181CONFIG_NET_KEY_MIGRATE=y 184CONFIG_NET_KEY_MIGRATE=y
182CONFIG_INET=y 185CONFIG_INET=y
@@ -410,6 +413,7 @@ CONFIG_NET_CLS_ROUTE=y
410# 413#
411# CONFIG_CFG80211 is not set 414# CONFIG_CFG80211 is not set
412CONFIG_WIRELESS_EXT=y 415CONFIG_WIRELESS_EXT=y
416# CONFIG_WIRELESS_EXT_SYSFS is not set
413# CONFIG_MAC80211 is not set 417# CONFIG_MAC80211 is not set
414CONFIG_IEEE80211=m 418CONFIG_IEEE80211=m
415# CONFIG_IEEE80211_DEBUG is not set 419# CONFIG_IEEE80211_DEBUG is not set
@@ -429,7 +433,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
429CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 433CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
430CONFIG_STANDALONE=y 434CONFIG_STANDALONE=y
431CONFIG_PREVENT_FIRMWARE_BUILD=y 435CONFIG_PREVENT_FIRMWARE_BUILD=y
432CONFIG_FW_LOADER=m 436CONFIG_FW_LOADER=y
437# CONFIG_FIRMWARE_IN_KERNEL is not set
438CONFIG_EXTRA_FIRMWARE=""
433# CONFIG_SYS_HYPERVISOR is not set 439# CONFIG_SYS_HYPERVISOR is not set
434CONFIG_CONNECTOR=m 440CONFIG_CONNECTOR=m
435# CONFIG_MTD is not set 441# CONFIG_MTD is not set
@@ -447,6 +453,7 @@ CONFIG_CDROM_PKTCDVD=m
447CONFIG_CDROM_PKTCDVD_BUFFERS=8 453CONFIG_CDROM_PKTCDVD_BUFFERS=8
448# CONFIG_CDROM_PKTCDVD_WCACHE is not set 454# CONFIG_CDROM_PKTCDVD_WCACHE is not set
449CONFIG_ATA_OVER_ETH=m 455CONFIG_ATA_OVER_ETH=m
456# CONFIG_BLK_DEV_HD is not set
450CONFIG_MISC_DEVICES=y 457CONFIG_MISC_DEVICES=y
451# CONFIG_EEPROM_93CX6 is not set 458# CONFIG_EEPROM_93CX6 is not set
452# CONFIG_ENCLOSURE_SERVICES is not set 459# CONFIG_ENCLOSURE_SERVICES is not set
@@ -499,6 +506,7 @@ CONFIG_SCSI_LOWLEVEL=y
499CONFIG_ISCSI_TCP=m 506CONFIG_ISCSI_TCP=m
500# CONFIG_SCSI_DEBUG is not set 507# CONFIG_SCSI_DEBUG is not set
501CONFIG_SUN3X_ESP=y 508CONFIG_SUN3X_ESP=y
509# CONFIG_SCSI_DH is not set
502CONFIG_MD=y 510CONFIG_MD=y
503CONFIG_BLK_DEV_MD=m 511CONFIG_BLK_DEV_MD=m
504CONFIG_MD_LINEAR=m 512CONFIG_MD_LINEAR=m
@@ -507,7 +515,7 @@ CONFIG_MD_RAID1=m
507# CONFIG_MD_RAID10 is not set 515# CONFIG_MD_RAID10 is not set
508CONFIG_MD_RAID456=m 516CONFIG_MD_RAID456=m
509CONFIG_MD_RAID5_RESHAPE=y 517CONFIG_MD_RAID5_RESHAPE=y
510CONFIG_MD_MULTIPATH=m 518# CONFIG_MD_MULTIPATH is not set
511# CONFIG_MD_FAULTY is not set 519# CONFIG_MD_FAULTY is not set
512CONFIG_BLK_DEV_DM=m 520CONFIG_BLK_DEV_DM=m
513# CONFIG_DM_DEBUG is not set 521# CONFIG_DM_DEBUG is not set
@@ -516,13 +524,9 @@ CONFIG_DM_SNAPSHOT=m
516CONFIG_DM_MIRROR=m 524CONFIG_DM_MIRROR=m
517CONFIG_DM_ZERO=m 525CONFIG_DM_ZERO=m
518CONFIG_DM_MULTIPATH=m 526CONFIG_DM_MULTIPATH=m
519CONFIG_DM_MULTIPATH_EMC=m
520CONFIG_DM_MULTIPATH_RDAC=m
521CONFIG_DM_MULTIPATH_HP=m
522# CONFIG_DM_DELAY is not set 527# CONFIG_DM_DELAY is not set
523CONFIG_DM_UEVENT=y 528CONFIG_DM_UEVENT=y
524CONFIG_NETDEVICES=y 529CONFIG_NETDEVICES=y
525# CONFIG_NETDEVICES_MULTIQUEUE is not set
526CONFIG_DUMMY=m 530CONFIG_DUMMY=m
527# CONFIG_BONDING is not set 531# CONFIG_BONDING is not set
528CONFIG_MACVLAN=m 532CONFIG_MACVLAN=m
@@ -627,6 +631,7 @@ CONFIG_SERIO_LIBPS2=m
627# Character devices 631# Character devices
628# 632#
629CONFIG_VT=y 633CONFIG_VT=y
634CONFIG_CONSOLE_TRANSLATIONS=y
630CONFIG_VT_CONSOLE=y 635CONFIG_VT_CONSOLE=y
631CONFIG_HW_CONSOLE=y 636CONFIG_HW_CONSOLE=y
632CONFIG_VT_HW_CONSOLE_BINDING=y 637CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -657,6 +662,7 @@ CONFIG_GEN_RTC_X=y
657# CONFIG_POWER_SUPPLY is not set 662# CONFIG_POWER_SUPPLY is not set
658# CONFIG_HWMON is not set 663# CONFIG_HWMON is not set
659# CONFIG_THERMAL is not set 664# CONFIG_THERMAL is not set
665# CONFIG_THERMAL_HWMON is not set
660# CONFIG_WATCHDOG is not set 666# CONFIG_WATCHDOG is not set
661 667
662# 668#
@@ -668,8 +674,10 @@ CONFIG_SSB_POSSIBLE=y
668# 674#
669# Multifunction device drivers 675# Multifunction device drivers
670# 676#
677# CONFIG_MFD_CORE is not set
671# CONFIG_MFD_SM501 is not set 678# CONFIG_MFD_SM501 is not set
672# CONFIG_HTC_PASIC3 is not set 679# CONFIG_HTC_PASIC3 is not set
680# CONFIG_MFD_TMIO is not set
673 681
674# 682#
675# Multimedia devices 683# Multimedia devices
@@ -737,10 +745,6 @@ CONFIG_LOGO=y
737CONFIG_LOGO_LINUX_MONO=y 745CONFIG_LOGO_LINUX_MONO=y
738CONFIG_LOGO_LINUX_VGA16=y 746CONFIG_LOGO_LINUX_VGA16=y
739CONFIG_LOGO_LINUX_CLUT224=y 747CONFIG_LOGO_LINUX_CLUT224=y
740
741#
742# Sound
743#
744# CONFIG_SOUND is not set 748# CONFIG_SOUND is not set
745CONFIG_HID_SUPPORT=y 749CONFIG_HID_SUPPORT=y
746CONFIG_HID=m 750CONFIG_HID=m
@@ -752,6 +756,7 @@ CONFIG_HIDRAW=y
752# CONFIG_NEW_LEDS is not set 756# CONFIG_NEW_LEDS is not set
753# CONFIG_ACCESSIBILITY is not set 757# CONFIG_ACCESSIBILITY is not set
754# CONFIG_RTC_CLASS is not set 758# CONFIG_RTC_CLASS is not set
759# CONFIG_DMADEVICES is not set
755# CONFIG_UIO is not set 760# CONFIG_UIO is not set
756 761
757# 762#
@@ -786,6 +791,7 @@ CONFIG_XFS_FS=m
786CONFIG_OCFS2_FS=m 791CONFIG_OCFS2_FS=m
787CONFIG_OCFS2_FS_O2CB=m 792CONFIG_OCFS2_FS_O2CB=m
788CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 793CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
794# CONFIG_OCFS2_FS_STATS is not set
789# CONFIG_OCFS2_DEBUG_MASKLOG is not set 795# CONFIG_OCFS2_DEBUG_MASKLOG is not set
790# CONFIG_OCFS2_DEBUG_FS is not set 796# CONFIG_OCFS2_DEBUG_FS is not set
791CONFIG_DNOTIFY=y 797CONFIG_DNOTIFY=y
@@ -845,6 +851,7 @@ CONFIG_HFSPLUS_FS=m
845CONFIG_CRAMFS=m 851CONFIG_CRAMFS=m
846# CONFIG_VXFS_FS is not set 852# CONFIG_VXFS_FS is not set
847CONFIG_MINIX_FS=y 853CONFIG_MINIX_FS=y
854# CONFIG_OMFS_FS is not set
848CONFIG_HPFS_FS=m 855CONFIG_HPFS_FS=m
849# CONFIG_QNX4FS_FS is not set 856# CONFIG_QNX4FS_FS is not set
850# CONFIG_ROMFS_FS is not set 857# CONFIG_ROMFS_FS is not set
@@ -857,18 +864,17 @@ CONFIG_NFS_FS=y
857CONFIG_NFS_V3=y 864CONFIG_NFS_V3=y
858# CONFIG_NFS_V3_ACL is not set 865# CONFIG_NFS_V3_ACL is not set
859CONFIG_NFS_V4=y 866CONFIG_NFS_V4=y
867CONFIG_ROOT_NFS=y
860CONFIG_NFSD=m 868CONFIG_NFSD=m
861CONFIG_NFSD_V3=y 869CONFIG_NFSD_V3=y
862# CONFIG_NFSD_V3_ACL is not set 870# CONFIG_NFSD_V3_ACL is not set
863# CONFIG_NFSD_V4 is not set 871# CONFIG_NFSD_V4 is not set
864CONFIG_ROOT_NFS=y
865CONFIG_LOCKD=y 872CONFIG_LOCKD=y
866CONFIG_LOCKD_V4=y 873CONFIG_LOCKD_V4=y
867CONFIG_EXPORTFS=m 874CONFIG_EXPORTFS=m
868CONFIG_NFS_COMMON=y 875CONFIG_NFS_COMMON=y
869CONFIG_SUNRPC=y 876CONFIG_SUNRPC=y
870CONFIG_SUNRPC_GSS=y 877CONFIG_SUNRPC_GSS=y
871CONFIG_SUNRPC_BIND34=y
872CONFIG_RPCSEC_GSS_KRB5=y 878CONFIG_RPCSEC_GSS_KRB5=y
873# CONFIG_RPCSEC_GSS_SPKM3 is not set 879# CONFIG_RPCSEC_GSS_SPKM3 is not set
874CONFIG_SMB_FS=m 880CONFIG_SMB_FS=m
@@ -877,7 +883,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
877# CONFIG_CIFS is not set 883# CONFIG_CIFS is not set
878# CONFIG_NCP_FS is not set 884# CONFIG_NCP_FS is not set
879CONFIG_CODA_FS=m 885CONFIG_CODA_FS=m
880# CONFIG_CODA_FS_OLD_API is not set
881# CONFIG_AFS_FS is not set 886# CONFIG_AFS_FS is not set
882 887
883# 888#
@@ -942,6 +947,8 @@ CONFIG_MAGIC_SYSRQ=y
942# CONFIG_HEADERS_CHECK is not set 947# CONFIG_HEADERS_CHECK is not set
943# CONFIG_DEBUG_KERNEL is not set 948# CONFIG_DEBUG_KERNEL is not set
944CONFIG_DEBUG_BUGVERBOSE=y 949CONFIG_DEBUG_BUGVERBOSE=y
950CONFIG_DEBUG_MEMORY_INIT=y
951CONFIG_SYSCTL_SYSCALL_CHECK=y
945# CONFIG_SAMPLES is not set 952# CONFIG_SAMPLES is not set
946 953
947# 954#
@@ -1001,6 +1008,10 @@ CONFIG_CRYPTO_CRC32C=m
1001CONFIG_CRYPTO_MD4=m 1008CONFIG_CRYPTO_MD4=m
1002CONFIG_CRYPTO_MD5=y 1009CONFIG_CRYPTO_MD5=y
1003CONFIG_CRYPTO_MICHAEL_MIC=m 1010CONFIG_CRYPTO_MICHAEL_MIC=m
1011CONFIG_CRYPTO_RMD128=m
1012CONFIG_CRYPTO_RMD160=m
1013CONFIG_CRYPTO_RMD256=m
1014CONFIG_CRYPTO_RMD320=m
1004CONFIG_CRYPTO_SHA1=m 1015CONFIG_CRYPTO_SHA1=m
1005CONFIG_CRYPTO_SHA256=m 1016CONFIG_CRYPTO_SHA256=m
1006CONFIG_CRYPTO_SHA512=m 1017CONFIG_CRYPTO_SHA512=m
@@ -1042,6 +1053,7 @@ CONFIG_BITREVERSE=y
1042# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1053# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1043CONFIG_CRC_CCITT=m 1054CONFIG_CRC_CCITT=m
1044CONFIG_CRC16=m 1055CONFIG_CRC16=m
1056CONFIG_CRC_T10DIF=y
1045CONFIG_CRC_ITU_T=m 1057CONFIG_CRC_ITU_T=m
1046CONFIG_CRC32=y 1058CONFIG_CRC32=y
1047# CONFIG_CRC7 is not set 1059# CONFIG_CRC7 is not set
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 4da736e2533..c930b8ceb41 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1403,7 +1403,6 @@ config MIPS_MT_SMTC
1403 depends on CPU_MIPS32_R2 1403 depends on CPU_MIPS32_R2
1404 #depends on CPU_MIPS64_R2 # once there is hardware ... 1404 #depends on CPU_MIPS64_R2 # once there is hardware ...
1405 depends on SYS_SUPPORTS_MULTITHREADING 1405 depends on SYS_SUPPORTS_MULTITHREADING
1406 select GENERIC_CLOCKEVENTS_BROADCAST
1407 select CPU_MIPSR2_IRQ_VI 1406 select CPU_MIPSR2_IRQ_VI
1408 select CPU_MIPSR2_IRQ_EI 1407 select CPU_MIPSR2_IRQ_EI
1409 select MIPS_MT 1408 select MIPS_MT
@@ -1451,32 +1450,17 @@ config MIPS_VPE_LOADER
1451 Includes a loader for loading an elf relocatable object 1450 Includes a loader for loading an elf relocatable object
1452 onto another VPE and running it. 1451 onto another VPE and running it.
1453 1452
1454config MIPS_MT_SMTC_INSTANT_REPLAY
1455 bool "Low-latency Dispatch of Deferred SMTC IPIs"
1456 depends on MIPS_MT_SMTC && !PREEMPT
1457 default y
1458 help
1459 SMTC pseudo-interrupts between TCs are deferred and queued
1460 if the target TC is interrupt-inhibited (IXMT). In the first
1461 SMTC prototypes, these queued IPIs were serviced on return
1462 to user mode, or on entry into the kernel idle loop. The
1463 INSTANT_REPLAY option dispatches them as part of local_irq_restore()
1464 processing, which adds runtime overhead (hence the option to turn
1465 it off), but ensures that IPIs are handled promptly even under
1466 heavy I/O interrupt load.
1467
1468config MIPS_MT_SMTC_IM_BACKSTOP 1453config MIPS_MT_SMTC_IM_BACKSTOP
1469 bool "Use per-TC register bits as backstop for inhibited IM bits" 1454 bool "Use per-TC register bits as backstop for inhibited IM bits"
1470 depends on MIPS_MT_SMTC 1455 depends on MIPS_MT_SMTC
1471 default y 1456 default n
1472 help 1457 help
1473 To support multiple TC microthreads acting as "CPUs" within 1458 To support multiple TC microthreads acting as "CPUs" within
1474 a VPE, VPE-wide interrupt mask bits must be specially manipulated 1459 a VPE, VPE-wide interrupt mask bits must be specially manipulated
1475 during interrupt handling. To support legacy drivers and interrupt 1460 during interrupt handling. To support legacy drivers and interrupt
1476 controller management code, SMTC has a "backstop" to track and 1461 controller management code, SMTC has a "backstop" to track and
1477 if necessary restore the interrupt mask. This has some performance 1462 if necessary restore the interrupt mask. This has some performance
1478 impact on interrupt service overhead. Disable it only if you know 1463 impact on interrupt service overhead.
1479 what you are doing.
1480 1464
1481config MIPS_MT_SMTC_IRQAFF 1465config MIPS_MT_SMTC_IRQAFF
1482 bool "Support IRQ affinity API" 1466 bool "Support IRQ affinity API"
@@ -1486,10 +1470,8 @@ config MIPS_MT_SMTC_IRQAFF
1486 Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.) 1470 Enables SMP IRQ affinity API (/proc/irq/*/smp_affinity, etc.)
1487 for SMTC Linux kernel. Requires platform support, of which 1471 for SMTC Linux kernel. Requires platform support, of which
1488 an example can be found in the MIPS kernel i8259 and Malta 1472 an example can be found in the MIPS kernel i8259 and Malta
1489 platform code. It is recommended that MIPS_MT_SMTC_INSTANT_REPLAY 1473 platform code. Adds some overhead to interrupt dispatch, and
1490 be enabled if MIPS_MT_SMTC_IRQAFF is used. Adds overhead to 1474 should be used only if you know what you are doing.
1491 interrupt dispatch, and should be used only if you know what
1492 you are doing.
1493 1475
1494config MIPS_VPE_LOADER_TOM 1476config MIPS_VPE_LOADER_TOM
1495 bool "Load VPE program into memory hidden from linux" 1477 bool "Load VPE program into memory hidden from linux"
@@ -1886,6 +1868,15 @@ config STACKTRACE_SUPPORT
1886 1868
1887source "init/Kconfig" 1869source "init/Kconfig"
1888 1870
1871config PROBE_INITRD_HEADER
1872 bool "Probe initrd header created by addinitrd"
1873 depends on BLK_DEV_INITRD
1874 help
1875 Probe initrd header at the last page of kernel image.
1876 Say Y here if you are using arch/mips/boot/addinitrd.c to
1877 add initrd or initramfs image to the kernel image.
1878 Otherwise, say N.
1879
1889menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)" 1880menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
1890 1881
1891config HW_HAS_EISA 1882config HW_HAS_EISA
diff --git a/arch/mips/au1000/common/gpio.c b/arch/mips/au1000/common/gpio.c
index b485d94ce8a..e660ddd611c 100644
--- a/arch/mips/au1000/common/gpio.c
+++ b/arch/mips/au1000/common/gpio.c
@@ -48,7 +48,7 @@ static void au1xxx_gpio2_write(unsigned gpio, int value)
48{ 48{
49 gpio -= AU1XXX_GPIO_BASE; 49 gpio -= AU1XXX_GPIO_BASE;
50 50
51 gpio2->output = (GPIO2_OUTPUT_ENABLE_MASK << gpio) | (value << gpio); 51 gpio2->output = (GPIO2_OUTPUT_ENABLE_MASK << gpio) | ((!!value) << gpio);
52} 52}
53 53
54static int au1xxx_gpio2_direction_input(unsigned gpio) 54static int au1xxx_gpio2_direction_input(unsigned gpio)
@@ -61,7 +61,8 @@ static int au1xxx_gpio2_direction_input(unsigned gpio)
61static int au1xxx_gpio2_direction_output(unsigned gpio, int value) 61static int au1xxx_gpio2_direction_output(unsigned gpio, int value)
62{ 62{
63 gpio -= AU1XXX_GPIO_BASE; 63 gpio -= AU1XXX_GPIO_BASE;
64 gpio2->dir = (0x01 << gpio) | (value << gpio); 64 gpio2->dir |= 0x01 << gpio;
65 gpio2->output = (GPIO2_OUTPUT_ENABLE_MASK << gpio) | ((!!value) << gpio);
65 return 0; 66 return 0;
66} 67}
67 68
@@ -90,6 +91,7 @@ static int au1xxx_gpio1_direction_input(unsigned gpio)
90static int au1xxx_gpio1_direction_output(unsigned gpio, int value) 91static int au1xxx_gpio1_direction_output(unsigned gpio, int value)
91{ 92{
92 gpio1->trioutclr = (0x01 & gpio); 93 gpio1->trioutclr = (0x01 & gpio);
94 au1xxx_gpio1_write(gpio, value);
93 return 0; 95 return 0;
94} 96}
95 97
diff --git a/arch/mips/emma2rh/markeins/setup.c b/arch/mips/emma2rh/markeins/setup.c
index 822a20e21fa..b6a23ad539f 100644
--- a/arch/mips/emma2rh/markeins/setup.c
+++ b/arch/mips/emma2rh/markeins/setup.c
@@ -25,23 +25,9 @@
25#include <linux/init.h> 25#include <linux/init.h>
26#include <linux/kernel.h> 26#include <linux/kernel.h>
27#include <linux/types.h> 27#include <linux/types.h>
28#include <linux/initrd.h> 28
29#include <linux/irq.h>
30#include <linux/ioport.h>
31#include <linux/param.h> /* for HZ */
32#include <linux/root_dev.h>
33#include <linux/serial.h>
34#include <linux/serial_core.h>
35
36#include <asm/cpu.h>
37#include <asm/bootinfo.h>
38#include <asm/addrspace.h>
39#include <asm/time.h> 29#include <asm/time.h>
40#include <asm/bcache.h>
41#include <asm/irq.h>
42#include <asm/reboot.h> 30#include <asm/reboot.h>
43#include <asm/traps.h>
44#include <asm/debug.h>
45 31
46#include <asm/emma2rh/emma2rh.h> 32#include <asm/emma2rh/emma2rh.h>
47 33
diff --git a/arch/mips/jazz/setup.c b/arch/mips/jazz/setup.c
index b59ba6b93cd..7043f6b9ff3 100644
--- a/arch/mips/jazz/setup.c
+++ b/arch/mips/jazz/setup.c
@@ -5,33 +5,22 @@
5 * License. See the file "COPYING" in the main directory of this archive 5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details. 6 * for more details.
7 * 7 *
8 * Copyright (C) 1996, 1997, 1998, 2001, 07 by Ralf Baechle 8 * Copyright (C) 1996, 1997, 1998, 2001, 07, 08 by Ralf Baechle
9 * Copyright (C) 2001 MIPS Technologies, Inc. 9 * Copyright (C) 2001 MIPS Technologies, Inc.
10 * Copyright (C) 2007 by Thomas Bogendoerfer 10 * Copyright (C) 2007 by Thomas Bogendoerfer
11 */ 11 */
12#include <linux/eisa.h> 12#include <linux/eisa.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/ioport.h> 14#include <linux/ioport.h>
15#include <linux/sched.h>
16#include <linux/interrupt.h>
17#include <linux/mm.h>
18#include <linux/console.h> 15#include <linux/console.h>
19#include <linux/fb.h>
20#include <linux/pm.h>
21#include <linux/screen_info.h> 16#include <linux/screen_info.h>
22#include <linux/platform_device.h> 17#include <linux/platform_device.h>
23#include <linux/serial_8250.h> 18#include <linux/serial_8250.h>
24 19
25#include <asm/bootinfo.h>
26#include <asm/irq.h>
27#include <asm/jazz.h> 20#include <asm/jazz.h>
28#include <asm/jazzdma.h> 21#include <asm/jazzdma.h>
29#include <asm/reboot.h> 22#include <asm/reboot.h>
30#include <asm/io.h>
31#include <asm/pgtable.h> 23#include <asm/pgtable.h>
32#include <asm/time.h>
33#include <asm/traps.h>
34#include <asm/mc146818-time.h>
35 24
36extern asmlinkage void jazz_handle_int(void); 25extern asmlinkage void jazz_handle_int(void);
37 26
diff --git a/arch/mips/kernel/.gitignore b/arch/mips/kernel/.gitignore
new file mode 100644
index 00000000000..c5f676c3c22
--- /dev/null
+++ b/arch/mips/kernel/.gitignore
@@ -0,0 +1 @@
vmlinux.lds
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile
index 706f9397479..25775cb5400 100644
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
@@ -10,6 +10,7 @@ obj-y += cpu-probe.o branch.o entry.o genex.o irq.o process.o \
10 10
11obj-$(CONFIG_CEVT_BCM1480) += cevt-bcm1480.o 11obj-$(CONFIG_CEVT_BCM1480) += cevt-bcm1480.o
12obj-$(CONFIG_CEVT_R4K) += cevt-r4k.o 12obj-$(CONFIG_CEVT_R4K) += cevt-r4k.o
13obj-$(CONFIG_MIPS_MT_SMTC) += cevt-smtc.o
13obj-$(CONFIG_CEVT_DS1287) += cevt-ds1287.o 14obj-$(CONFIG_CEVT_DS1287) += cevt-ds1287.o
14obj-$(CONFIG_CEVT_GT641XX) += cevt-gt641xx.o 15obj-$(CONFIG_CEVT_GT641XX) += cevt-gt641xx.o
15obj-$(CONFIG_CEVT_SB1250) += cevt-sb1250.o 16obj-$(CONFIG_CEVT_SB1250) += cevt-sb1250.o
diff --git a/arch/mips/kernel/cevt-r4k.c b/arch/mips/kernel/cevt-r4k.c
index 24a2d907aa0..4a4c59f2737 100644
--- a/arch/mips/kernel/cevt-r4k.c
+++ b/arch/mips/kernel/cevt-r4k.c
@@ -12,6 +12,14 @@
12 12
13#include <asm/smtc_ipi.h> 13#include <asm/smtc_ipi.h>
14#include <asm/time.h> 14#include <asm/time.h>
15#include <asm/cevt-r4k.h>
16
17/*
18 * The SMTC Kernel for the 34K, 1004K, et. al. replaces several
19 * of these routines with SMTC-specific variants.
20 */
21
22#ifndef CONFIG_MIPS_MT_SMTC
15 23
16static int mips_next_event(unsigned long delta, 24static int mips_next_event(unsigned long delta,
17 struct clock_event_device *evt) 25 struct clock_event_device *evt)
@@ -19,60 +27,27 @@ static int mips_next_event(unsigned long delta,
19 unsigned int cnt; 27 unsigned int cnt;
20 int res; 28 int res;
21 29
22#ifdef CONFIG_MIPS_MT_SMTC
23 {
24 unsigned long flags, vpflags;
25 local_irq_save(flags);
26 vpflags = dvpe();
27#endif
28 cnt = read_c0_count(); 30 cnt = read_c0_count();
29 cnt += delta; 31 cnt += delta;
30 write_c0_compare(cnt); 32 write_c0_compare(cnt);
31 res = ((int)(read_c0_count() - cnt) > 0) ? -ETIME : 0; 33 res = ((int)(read_c0_count() - cnt) > 0) ? -ETIME : 0;
32#ifdef CONFIG_MIPS_MT_SMTC
33 evpe(vpflags);
34 local_irq_restore(flags);
35 }
36#endif
37 return res; 34 return res;
38} 35}
39 36
40static void mips_set_mode(enum clock_event_mode mode, 37#endif /* CONFIG_MIPS_MT_SMTC */
41 struct clock_event_device *evt) 38
39void mips_set_clock_mode(enum clock_event_mode mode,
40 struct clock_event_device *evt)
42{ 41{
43 /* Nothing to do ... */ 42 /* Nothing to do ... */
44} 43}
45 44
46static DEFINE_PER_CPU(struct clock_event_device, mips_clockevent_device); 45DEFINE_PER_CPU(struct clock_event_device, mips_clockevent_device);
47static int cp0_timer_irq_installed; 46int cp0_timer_irq_installed;
48 47
49/* 48#ifndef CONFIG_MIPS_MT_SMTC
50 * Timer ack for an R4k-compatible timer of a known frequency.
51 */
52static void c0_timer_ack(void)
53{
54 write_c0_compare(read_c0_compare());
55}
56 49
57/* 50irqreturn_t c0_compare_interrupt(int irq, void *dev_id)
58 * Possibly handle a performance counter interrupt.
59 * Return true if the timer interrupt should not be checked
60 */
61static inline int handle_perf_irq(int r2)
62{
63 /*
64 * The performance counter overflow interrupt may be shared with the
65 * timer interrupt (cp0_perfcount_irq < 0). If it is and a
66 * performance counter has overflowed (perf_irq() == IRQ_HANDLED)
67 * and we can't reliably determine if a counter interrupt has also
68 * happened (!r2) then don't check for a timer interrupt.
69 */
70 return (cp0_perfcount_irq < 0) &&
71 perf_irq() == IRQ_HANDLED &&
72 !r2;
73}
74
75static irqreturn_t c0_compare_interrupt(int irq, void *dev_id)
76{ 51{
77 const int r2 = cpu_has_mips_r2; 52 const int r2 = cpu_has_mips_r2;
78 struct clock_event_device *cd; 53 struct clock_event_device *cd;
@@ -93,12 +68,8 @@ static irqreturn_t c0_compare_interrupt(int irq, void *dev_id)
93 * interrupt. Being the paranoiacs we are we check anyway. 68 * interrupt. Being the paranoiacs we are we check anyway.
94 */ 69 */
95 if (!r2 || (read_c0_cause() & (1 << 30))) { 70 if (!r2 || (read_c0_cause() & (1 << 30))) {
96 c0_timer_ack(); 71 /* Clear Count/Compare Interrupt */
97#ifdef CONFIG_MIPS_MT_SMTC 72 write_c0_compare(read_c0_compare());
98 if (cpu_data[cpu].vpe_id)
99 goto out;
100 cpu = 0;
101#endif
102 cd = &per_cpu(mips_clockevent_device, cpu); 73 cd = &per_cpu(mips_clockevent_device, cpu);
103 cd->event_handler(cd); 74 cd->event_handler(cd);
104 } 75 }
@@ -107,65 +78,16 @@ out:
107 return IRQ_HANDLED; 78 return IRQ_HANDLED;
108} 79}
109 80
110static struct irqaction c0_compare_irqaction = { 81#endif /* Not CONFIG_MIPS_MT_SMTC */
82
83struct irqaction c0_compare_irqaction = {
111 .handler = c0_compare_interrupt, 84 .handler = c0_compare_interrupt,
112#ifdef CONFIG_MIPS_MT_SMTC
113 .flags = IRQF_DISABLED,
114#else
115 .flags = IRQF_DISABLED | IRQF_PERCPU, 85 .flags = IRQF_DISABLED | IRQF_PERCPU,
116#endif
117 .name = "timer", 86 .name = "timer",
118}; 87};
119 88
120#ifdef CONFIG_MIPS_MT_SMTC
121DEFINE_PER_CPU(struct clock_event_device, smtc_dummy_clockevent_device);
122
123static void smtc_set_mode(enum clock_event_mode mode,
124 struct clock_event_device *evt)
125{
126}
127
128static void mips_broadcast(cpumask_t mask)
129{
130 unsigned int cpu;
131
132 for_each_cpu_mask(cpu, mask)
133 smtc_send_ipi(cpu, SMTC_CLOCK_TICK, 0);
134}
135
136static void setup_smtc_dummy_clockevent_device(void)
137{
138 //uint64_t mips_freq = mips_hpt_^frequency;
139 unsigned int cpu = smp_processor_id();
140 struct clock_event_device *cd;
141 89
142 cd = &per_cpu(smtc_dummy_clockevent_device, cpu); 90void mips_event_handler(struct clock_event_device *dev)
143
144 cd->name = "SMTC";
145 cd->features = CLOCK_EVT_FEAT_DUMMY;
146
147 /* Calculate the min / max delta */
148 cd->mult = 0; //div_sc((unsigned long) mips_freq, NSEC_PER_SEC, 32);
149 cd->shift = 0; //32;
150 cd->max_delta_ns = 0; //clockevent_delta2ns(0x7fffffff, cd);
151 cd->min_delta_ns = 0; //clockevent_delta2ns(0x30, cd);
152
153 cd->rating = 200;
154 cd->irq = 17; //-1;
155// if (cpu)
156// cd->cpumask = CPU_MASK_ALL; // cpumask_of_cpu(cpu);
157// else
158 cd->cpumask = cpumask_of_cpu(cpu);
159
160 cd->set_mode = smtc_set_mode;
161
162 cd->broadcast = mips_broadcast;
163
164 clockevents_register_device(cd);
165}
166#endif
167
168static void mips_event_handler(struct clock_event_device *dev)
169{ 91{
170} 92}
171 93
@@ -177,7 +99,23 @@ static int c0_compare_int_pending(void)
177 return (read_c0_cause() >> cp0_compare_irq) & 0x100; 99 return (read_c0_cause() >> cp0_compare_irq) & 0x100;
178} 100}
179 101
180static int c0_compare_int_usable(void) 102/*
103 * Compare interrupt can be routed and latched outside the core,
104 * so a single execution hazard barrier may not be enough to give
105 * it time to clear as seen in the Cause register. 4 time the
106 * pipeline depth seems reasonably conservative, and empirically
107 * works better in configurations with high CPU/bus clock ratios.
108 */
109
110#define compare_change_hazard() \
111 do { \
112 irq_disable_hazard(); \
113 irq_disable_hazard(); \
114 irq_disable_hazard(); \
115 irq_disable_hazard(); \
116 } while (0)
117
118int c0_compare_int_usable(void)
181{ 119{
182 unsigned int delta; 120 unsigned int delta;
183 unsigned int cnt; 121 unsigned int cnt;
@@ -187,7 +125,7 @@ static int c0_compare_int_usable(void)
187 */ 125 */
188 if (c0_compare_int_pending()) { 126 if (c0_compare_int_pending()) {
189 write_c0_compare(read_c0_count()); 127 write_c0_compare(read_c0_count());
190 irq_disable_hazard(); 128 compare_change_hazard();
191 if (c0_compare_int_pending()) 129 if (c0_compare_int_pending())
192 return 0; 130 return 0;
193 } 131 }
@@ -196,7 +134,7 @@ static int c0_compare_int_usable(void)
196 cnt = read_c0_count(); 134 cnt = read_c0_count();
197 cnt += delta; 135 cnt += delta;
198 write_c0_compare(cnt); 136 write_c0_compare(cnt);
199 irq_disable_hazard(); 137 compare_change_hazard();
200 if ((int)(read_c0_count() - cnt) < 0) 138 if ((int)(read_c0_count() - cnt) < 0)
201 break; 139 break;
202 /* increase delta if the timer was already expired */ 140 /* increase delta if the timer was already expired */
@@ -205,11 +143,12 @@ static int c0_compare_int_usable(void)
205 while ((int)(read_c0_count() - cnt) <= 0) 143 while ((int)(read_c0_count() - cnt) <= 0)
206 ; /* Wait for expiry */ 144 ; /* Wait for expiry */
207 145
146 compare_change_hazard();
208 if (!c0_compare_int_pending()) 147 if (!c0_compare_int_pending())
209 return 0; 148 return 0;
210 149
211 write_c0_compare(read_c0_count()); 150 write_c0_compare(read_c0_count());
212 irq_disable_hazard(); 151 compare_change_hazard();
213 if (c0_compare_int_pending()) 152 if (c0_compare_int_pending())
214 return 0; 153 return 0;
215 154
@@ -219,6 +158,8 @@ static int c0_compare_int_usable(void)
219 return 1; 158 return 1;
220} 159}
221 160
161#ifndef CONFIG_MIPS_MT_SMTC
162
222int __cpuinit mips_clockevent_init(void) 163int __cpuinit mips_clockevent_init(void)
223{ 164{
224 uint64_t mips_freq = mips_hpt_frequency; 165 uint64_t mips_freq = mips_hpt_frequency;
@@ -229,17 +170,6 @@ int __cpuinit mips_clockevent_init(void)
229 if (!cpu_has_counter || !mips_hpt_frequency) 170 if (!cpu_has_counter || !mips_hpt_frequency)
230 return -ENXIO; 171 return -ENXIO;
231 172
232#ifdef CONFIG_MIPS_MT_SMTC
233 setup_smtc_dummy_clockevent_device();
234
235 /*
236 * On SMTC we only register VPE0's compare interrupt as clockevent
237 * device.
238 */
239 if (cpu)
240 return 0;
241#endif
242
243 if (!c0_compare_int_usable()) 173 if (!c0_compare_int_usable())
244 return -ENXIO; 174 return -ENXIO;
245 175
@@ -265,13 +195,9 @@ int __cpuinit mips_clockevent_init(void)
265 195
266 cd->rating = 300; 196 cd->rating = 300;
267 cd->irq = irq; 197 cd->irq = irq;
268#ifdef CONFIG_MIPS_MT_SMTC
269 cd->cpumask = CPU_MASK_ALL;
270#else
271 cd->cpumask = cpumask_of_cpu(cpu); 198 cd->cpumask = cpumask_of_cpu(cpu);
272#endif
273 cd->set_next_event = mips_next_event; 199 cd->set_next_event = mips_next_event;
274 cd->set_mode = mips_set_mode; 200 cd->set_mode = mips_set_clock_mode;
275 cd->event_handler = mips_event_handler; 201 cd->event_handler = mips_event_handler;
276 202
277 clockevents_register_device(cd); 203 clockevents_register_device(cd);
@@ -281,12 +207,9 @@ int __cpuinit mips_clockevent_init(void)
281 207
282 cp0_timer_irq_installed = 1; 208 cp0_timer_irq_installed = 1;
283 209
284#ifdef CONFIG_MIPS_MT_SMTC
285#define CPUCTR_IMASKBIT (0x100 << cp0_compare_irq)
286 setup_irq_smtc(irq, &c0_compare_irqaction, CPUCTR_IMASKBIT);
287#else
288 setup_irq(irq, &c0_compare_irqaction); 210 setup_irq(irq, &c0_compare_irqaction);
289#endif
290 211
291 return 0; 212 return 0;
292} 213}
214
215#endif /* Not CONFIG_MIPS_MT_SMTC */
diff --git a/arch/mips/kernel/cevt-smtc.c b/arch/mips/kernel/cevt-smtc.c
new file mode 100644
index 00000000000..5162fe4b595
--- /dev/null
+++ b/arch/mips/kernel/cevt-smtc.c
@@ -0,0 +1,321 @@
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) 2007 MIPS Technologies, Inc.
7 * Copyright (C) 2007 Ralf Baechle <ralf@linux-mips.org>
8 * Copyright (C) 2008 Kevin D. Kissell, Paralogos sarl
9 */
10#include <linux/clockchips.h>
11#include <linux/interrupt.h>
12#include <linux/percpu.h>
13
14#include <asm/smtc_ipi.h>
15#include <asm/time.h>
16#include <asm/cevt-r4k.h>
17
18/*
19 * Variant clock event timer support for SMTC on MIPS 34K, 1004K
20 * or other MIPS MT cores.
21 *
22 * Notes on SMTC Support:
23 *
24 * SMTC has multiple microthread TCs pretending to be Linux CPUs.
25 * But there's only one Count/Compare pair per VPE, and Compare
26 * interrupts are taken opportunisitically by available TCs
27 * bound to the VPE with the Count register. The new timer
28 * framework provides for global broadcasts, but we really
29 * want VPE-level multicasts for best behavior. So instead
30 * of invoking the high-level clock-event broadcast code,
31 * this version of SMTC support uses the historical SMTC
32 * multicast mechanisms "under the hood", appearing to the
33 * generic clock layer as if the interrupts are per-CPU.
34 *
35 * The approach taken here is to maintain a set of NR_CPUS
36 * virtual timers, and track which "CPU" needs to be alerted
37 * at each event.
38 *
39 * It's unlikely that we'll see a MIPS MT core with more than
40 * 2 VPEs, but we *know* that we won't need to handle more
41 * VPEs than we have "CPUs". So NCPUs arrays of NCPUs elements
42 * is always going to be overkill, but always going to be enough.
43 */
44
45unsigned long smtc_nexttime[NR_CPUS][NR_CPUS];
46static int smtc_nextinvpe[NR_CPUS];
47
48/*
49 * Timestamps stored are absolute values to be programmed
50 * into Count register. Valid timestamps will never be zero.
51 * If a Zero Count value is actually calculated, it is converted
52 * to be a 1, which will introduce 1 or two CPU cycles of error
53 * roughly once every four billion events, which at 1000 HZ means
54 * about once every 50 days. If that's actually a problem, one
55 * could alternate squashing 0 to 1 and to -1.
56 */
57
58#define MAKEVALID(x) (((x) == 0L) ? 1L : (x))
59#define ISVALID(x) ((x) != 0L)
60
61/*
62 * Time comparison is subtle, as it's really truncated
63 * modular arithmetic.
64 */
65
66#define IS_SOONER(a, b, reference) \
67 (((a) - (unsigned long)(reference)) < ((b) - (unsigned long)(reference)))
68
69/*
70 * CATCHUP_INCREMENT, used when the function falls behind the counter.
71 * Could be an increasing function instead of a constant;
72 */
73
74#define CATCHUP_INCREMENT 64
75
76static int mips_next_event(unsigned long delta,
77 struct clock_event_device *evt)
78{
79 unsigned long flags;
80 unsigned int mtflags;
81 unsigned long timestamp, reference, previous;
82 unsigned long nextcomp = 0L;
83 int vpe = current_cpu_data.vpe_id;
84 int cpu = smp_processor_id();
85 local_irq_save(flags);
86 mtflags = dmt();
87
88 /*
89 * Maintain the per-TC virtual timer
90 * and program the per-VPE shared Count register
91 * as appropriate here...
92 */
93 reference = (unsigned long)read_c0_count();
94 timestamp = MAKEVALID(reference + delta);
95 /*
96 * To really model the clock, we have to catch the case
97 * where the current next-in-VPE timestamp is the old
98 * timestamp for the calling CPE, but the new value is
99 * in fact later. In that case, we have to do a full
100 * scan and discover the new next-in-VPE CPU id and
101 * timestamp.
102 */
103 previous = smtc_nexttime[vpe][cpu];
104 if (cpu == smtc_nextinvpe[vpe] && ISVALID(previous)
105 && IS_SOONER(previous, timestamp, reference)) {
106 int i;
107 int soonest = cpu;
108
109 /*
110 * Update timestamp array here, so that new
111 * value gets considered along with those of
112 * other virtual CPUs on the VPE.
113 */
114 smtc_nexttime[vpe][cpu] = timestamp;
115 for_each_online_cpu(i) {
116 if (ISVALID(smtc_nexttime[vpe][i])
117 && IS_SOONER(smtc_nexttime[vpe][i],
118 smtc_nexttime[vpe][soonest], reference)) {
119 soonest = i;
120 }
121 }
122 smtc_nextinvpe[vpe] = soonest;
123 nextcomp = smtc_nexttime[vpe][soonest];
124 /*
125 * Otherwise, we don't have to process the whole array rank,
126 * we just have to see if the event horizon has gotten closer.
127 */
128 } else {
129 if (!ISVALID(smtc_nexttime[vpe][smtc_nextinvpe[vpe]]) ||
130 IS_SOONER(timestamp,
131 smtc_nexttime[vpe][smtc_nextinvpe[vpe]], reference)) {
132 smtc_nextinvpe[vpe] = cpu;
133 nextcomp = timestamp;
134 }
135 /*
136 * Since next-in-VPE may me the same as the executing
137 * virtual CPU, we update the array *after* checking
138 * its value.
139 */
140 smtc_nexttime[vpe][cpu] = timestamp;
141 }
142
143 /*
144 * It may be that, in fact, we don't need to update Compare,
145 * but if we do, we want to make sure we didn't fall into
146 * a crack just behind Count.
147 */
148 if (ISVALID(nextcomp)) {
149 write_c0_compare(nextcomp);
150 ehb();
151 /*
152 * We never return an error, we just make sure
153 * that we trigger the handlers as quickly as
154 * we can if we fell behind.
155 */
156 while ((nextcomp - (unsigned long)read_c0_count())
157 > (unsigned long)LONG_MAX) {
158 nextcomp += CATCHUP_INCREMENT;
159 write_c0_compare(nextcomp);
160 ehb();
161 }
162 }
163 emt(mtflags);
164 local_irq_restore(flags);
165 return 0;
166}
167
168
169void smtc_distribute_timer(int vpe)
170{
171 unsigned long flags;
172 unsigned int mtflags;
173 int cpu;
174 struct clock_event_device *cd;
175 unsigned long nextstamp = 0L;
176 unsigned long reference;
177
178
179repeat:
180 for_each_online_cpu(cpu) {
181 /*
182 * Find virtual CPUs within the current VPE who have
183 * unserviced timer requests whose time is now past.
184 */
185 local_irq_save(flags);
186 mtflags = dmt();
187 if (cpu_data[cpu].vpe_id == vpe &&
188 ISVALID(smtc_nexttime[vpe][cpu])) {
189 reference = (unsigned long)read_c0_count();
190 if ((smtc_nexttime[vpe][cpu] - reference)
191 > (unsigned long)LONG_MAX) {
192 smtc_nexttime[vpe][cpu] = 0L;
193 emt(mtflags);
194 local_irq_restore(flags);
195 /*
196 * We don't send IPIs to ourself.
197 */
198 if (cpu != smp_processor_id()) {
199 smtc_send_ipi(cpu, SMTC_CLOCK_TICK, 0);
200 } else {
201 cd = &per_cpu(mips_clockevent_device, cpu);
202 cd->event_handler(cd);
203 }
204 } else {
205 /* Local to VPE but Valid Time not yet reached. */
206 if (!ISVALID(nextstamp) ||
207 IS_SOONER(smtc_nexttime[vpe][cpu], nextstamp,
208 reference)) {
209 smtc_nextinvpe[vpe] = cpu;
210 nextstamp = smtc_nexttime[vpe][cpu];
211 }
212 emt(mtflags);
213 local_irq_restore(flags);
214 }
215 } else {
216 emt(mtflags);
217 local_irq_restore(flags);
218
219 }
220 }
221 /* Reprogram for interrupt at next soonest timestamp for VPE */
222 if (ISVALID(nextstamp)) {
223 write_c0_compare(nextstamp);
224 ehb();
225 if ((nextstamp - (unsigned long)read_c0_count())
226 > (unsigned long)LONG_MAX)
227 goto repeat;
228 }
229}
230
231
232irqreturn_t c0_compare_interrupt(int irq, void *dev_id)
233{
234 int cpu = smp_processor_id();
235
236 /* If we're running SMTC, we've got MIPS MT and therefore MIPS32R2 */
237 handle_perf_irq(1);
238
239 if (read_c0_cause() & (1 << 30)) {
240 /* Clear Count/Compare Interrupt */
241 write_c0_compare(read_c0_compare());
242 smtc_distribute_timer(cpu_data[cpu].vpe_id);
243 }
244 return IRQ_HANDLED;
245}
246
247
248int __cpuinit mips_clockevent_init(void)
249{
250 uint64_t mips_freq = mips_hpt_frequency;
251 unsigned int cpu = smp_processor_id();
252 struct clock_event_device *cd;
253 unsigned int irq;
254 int i;
255 int j;
256
257 if (!cpu_has_counter || !mips_hpt_frequency)
258 return -ENXIO;
259 if (cpu == 0) {
260 for (i = 0; i < num_possible_cpus(); i++) {
261 smtc_nextinvpe[i] = 0;
262 for (j = 0; j < num_possible_cpus(); j++)
263 smtc_nexttime[i][j] = 0L;
264 }
265 /*
266 * SMTC also can't have the usablility test
267 * run by secondary TCs once Compare is in use.
268 */
269 if (!c0_compare_int_usable())
270 return -ENXIO;
271 }
272
273 /*
274 * With vectored interrupts things are getting platform specific.
275 * get_c0_compare_int is a hook to allow a platform to return the
276 * interrupt number of it's liking.
277 */
278 irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq;
279 if (get_c0_compare_int)
280 irq = get_c0_compare_int();
281
282 cd = &per_cpu(mips_clockevent_device, cpu);
283
284 cd->name = "MIPS";
285 cd->features = CLOCK_EVT_FEAT_ONESHOT;
286
287 /* Calculate the min / max delta */
288 cd->mult = div_sc((unsigned long) mips_freq, NSEC_PER_SEC, 32);
289 cd->shift = 32;
290 cd->max_delta_ns = clockevent_delta2ns(0x7fffffff, cd);
291 cd->min_delta_ns = clockevent_delta2ns(0x300, cd);
292
293 cd->rating = 300;
294 cd->irq = irq;
295 cd->cpumask = cpumask_of_cpu(cpu);
296 cd->set_next_event = mips_next_event;
297 cd->set_mode = mips_set_clock_mode;
298 cd->event_handler = mips_event_handler;
299
300 clockevents_register_device(cd);
301
302 /*
303 * On SMTC we only want to do the data structure
304 * initialization and IRQ setup once.
305 */
306 if (cpu)
307 return 0;
308 /*
309 * And we need the hwmask associated with the c0_compare
310 * vector to be initialized.
311 */
312 irq_hwmask[irq] = (0x100 << cp0_compare_irq);
313 if (cp0_timer_irq_installed)
314 return 0;
315
316 cp0_timer_irq_installed = 1;
317
318 setup_irq(irq, &c0_compare_irqaction);
319
320 return 0;
321}
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index 335a6ae3d59..e621fda8ab3 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -45,18 +45,7 @@ static void r39xx_wait(void)
45 local_irq_enable(); 45 local_irq_enable();
46} 46}
47 47
48/* 48extern void r4k_wait(void);
49 * There is a race when WAIT instruction executed with interrupt
50 * enabled.
51 * But it is implementation-dependent wheter the pipelie restarts when
52 * a non-enabled interrupt is requested.
53 */
54static void r4k_wait(void)
55{
56 __asm__(" .set mips3 \n"
57 " wait \n"
58 " .set mips0 \n");
59}
60 49
61/* 50/*
62 * This variant is preferable as it allows testing need_resched and going to 51 * This variant is preferable as it allows testing need_resched and going to
@@ -65,14 +54,18 @@ static void r4k_wait(void)
65 * interrupt is requested" restriction in the MIPS32/MIPS64 architecture makes 54 * interrupt is requested" restriction in the MIPS32/MIPS64 architecture makes
66 * using this version a gamble. 55 * using this version a gamble.
67 */ 56 */
68static void r4k_wait_irqoff(void) 57void r4k_wait_irqoff(void)
69{ 58{
70 local_irq_disable(); 59 local_irq_disable();
71 if (!need_resched()) 60 if (!need_resched())
72 __asm__(" .set mips3 \n" 61 __asm__(" .set push \n"
62 " .set mips3 \n"
73 " wait \n" 63 " wait \n"
74 " .set mips0 \n"); 64 " .set pop \n");
75 local_irq_enable(); 65 local_irq_enable();
66 __asm__(" .globl __pastwait \n"
67 "__pastwait: \n");
68 return;
76} 69}
77 70
78/* 71/*
@@ -128,7 +121,7 @@ static int __init wait_disable(char *s)
128 121
129__setup("nowait", wait_disable); 122__setup("nowait", wait_disable);
130 123
131static inline void check_wait(void) 124void __init check_wait(void)
132{ 125{
133 struct cpuinfo_mips *c = &current_cpu_data; 126 struct cpuinfo_mips *c = &current_cpu_data;
134 127
@@ -242,7 +235,6 @@ static inline void check_errata(void)
242 235
243void __init check_bugs32(void) 236void __init check_bugs32(void)
244{ 237{
245 check_wait();
246 check_errata(); 238 check_errata();
247} 239}
248 240
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S
index e29598ae939..ffa331029e0 100644
--- a/arch/mips/kernel/entry.S
+++ b/arch/mips/kernel/entry.S
@@ -79,11 +79,6 @@ FEXPORT(syscall_exit)
79 79
80FEXPORT(restore_all) # restore full frame 80FEXPORT(restore_all) # restore full frame
81#ifdef CONFIG_MIPS_MT_SMTC 81#ifdef CONFIG_MIPS_MT_SMTC
82/* Detect and execute deferred IPI "interrupts" */
83 LONG_L s0, TI_REGS($28)
84 LONG_S sp, TI_REGS($28)
85 jal deferred_smtc_ipi
86 LONG_S s0, TI_REGS($28)
87#ifdef CONFIG_MIPS_MT_SMTC_IM_BACKSTOP 82#ifdef CONFIG_MIPS_MT_SMTC_IM_BACKSTOP
88/* Re-arm any temporarily masked interrupts not explicitly "acked" */ 83/* Re-arm any temporarily masked interrupts not explicitly "acked" */
89 mfc0 v0, CP0_TCSTATUS 84 mfc0 v0, CP0_TCSTATUS
@@ -112,6 +107,11 @@ FEXPORT(restore_all) # restore full frame
112 xor t0, t0, t3 107 xor t0, t0, t3
113 mtc0 t0, CP0_TCCONTEXT 108 mtc0 t0, CP0_TCCONTEXT
114#endif /* CONFIG_MIPS_MT_SMTC_IM_BACKSTOP */ 109#endif /* CONFIG_MIPS_MT_SMTC_IM_BACKSTOP */
110/* Detect and execute deferred IPI "interrupts" */
111 LONG_L s0, TI_REGS($28)
112 LONG_S sp, TI_REGS($28)
113 jal deferred_smtc_ipi
114 LONG_S s0, TI_REGS($28)
115#endif /* CONFIG_MIPS_MT_SMTC */ 115#endif /* CONFIG_MIPS_MT_SMTC */
116 .set noat 116 .set noat
117 RESTORE_TEMP 117 RESTORE_TEMP
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S
index c6ada98ee04..01dcbe38fa0 100644
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
@@ -20,6 +20,7 @@
20#include <asm/stackframe.h> 20#include <asm/stackframe.h>
21#include <asm/war.h> 21#include <asm/war.h>
22#include <asm/page.h> 22#include <asm/page.h>
23#include <asm/thread_info.h>
23 24
24#define PANIC_PIC(msg) \ 25#define PANIC_PIC(msg) \
25 .set push; \ 26 .set push; \
@@ -126,7 +127,42 @@ handle_vcei:
126 127
127 __FINIT 128 __FINIT
128 129
130 .align 5 /* 32 byte rollback region */
131LEAF(r4k_wait)
132 .set push
133 .set noreorder
134 /* start of rollback region */
135 LONG_L t0, TI_FLAGS($28)
136 nop
137 andi t0, _TIF_NEED_RESCHED
138 bnez t0, 1f
139 nop
140 nop
141 nop
142 .set mips3
143 wait
144 /* end of rollback region (the region size must be power of two) */
145 .set pop
1461:
147 jr ra
148 END(r4k_wait)
149
150 .macro BUILD_ROLLBACK_PROLOGUE handler
151 FEXPORT(rollback_\handler)
152 .set push
153 .set noat
154 MFC0 k0, CP0_EPC
155 PTR_LA k1, r4k_wait
156 ori k0, 0x1f /* 32 byte rollback region */
157 xori k0, 0x1f
158 bne k0, k1, 9f
159 MTC0 k0, CP0_EPC
1609:
161 .set pop
162 .endm
163
129 .align 5 164 .align 5
165BUILD_ROLLBACK_PROLOGUE handle_int
130NESTED(handle_int, PT_SIZE, sp) 166NESTED(handle_int, PT_SIZE, sp)
131#ifdef CONFIG_TRACE_IRQFLAGS 167#ifdef CONFIG_TRACE_IRQFLAGS
132 /* 168 /*
@@ -201,6 +237,7 @@ NESTED(except_vec_ejtag_debug, 0, sp)
201 * This prototype is copied to ebase + n*IntCtl.VS and patched 237 * This prototype is copied to ebase + n*IntCtl.VS and patched
202 * to invoke the handler 238 * to invoke the handler
203 */ 239 */
240BUILD_ROLLBACK_PROLOGUE except_vec_vi
204NESTED(except_vec_vi, 0, sp) 241NESTED(except_vec_vi, 0, sp)
205 SAVE_SOME 242 SAVE_SOME
206 SAVE_AT 243 SAVE_AT
@@ -245,8 +282,8 @@ NESTED(except_vec_vi_handler, 0, sp)
245 and t0, a0, t1 282 and t0, a0, t1
246#ifdef CONFIG_MIPS_MT_SMTC_IM_BACKSTOP 283#ifdef CONFIG_MIPS_MT_SMTC_IM_BACKSTOP
247 mfc0 t2, CP0_TCCONTEXT 284 mfc0 t2, CP0_TCCONTEXT
248 or t0, t0, t2 285 or t2, t0, t2
249 mtc0 t0, CP0_TCCONTEXT 286 mtc0 t2, CP0_TCCONTEXT
250#endif /* CONFIG_MIPS_MT_SMTC_IM_BACKSTOP */ 287#endif /* CONFIG_MIPS_MT_SMTC_IM_BACKSTOP */
251 xor t1, t1, t0 288 xor t1, t1, t0
252 mtc0 t1, CP0_STATUS 289 mtc0 t1, CP0_STATUS
diff --git a/arch/mips/kernel/kgdb.c b/arch/mips/kernel/kgdb.c
index c5a8b2d21ca..6e152c80cd4 100644
--- a/arch/mips/kernel/kgdb.c
+++ b/arch/mips/kernel/kgdb.c
@@ -62,13 +62,13 @@ void arch_kgdb_breakpoint(void)
62 62
63static void kgdb_call_nmi_hook(void *ignored) 63static void kgdb_call_nmi_hook(void *ignored)
64{ 64{
65 kgdb_nmicallback(raw_smp_processor_id(), (void *)0); 65 kgdb_nmicallback(raw_smp_processor_id(), NULL);
66} 66}
67 67
68void kgdb_roundup_cpus(unsigned long flags) 68void kgdb_roundup_cpus(unsigned long flags)
69{ 69{
70 local_irq_enable(); 70 local_irq_enable();
71 smp_call_function(kgdb_call_nmi_hook, NULL, NULL); 71 smp_call_function(kgdb_call_nmi_hook, NULL, 0);
72 local_irq_disable(); 72 local_irq_disable();
73} 73}
74 74
@@ -190,9 +190,6 @@ static int kgdb_mips_notify(struct notifier_block *self, unsigned long cmd,
190 struct pt_regs *regs = args->regs; 190 struct pt_regs *regs = args->regs;
191 int trap = (regs->cp0_cause & 0x7c) >> 2; 191 int trap = (regs->cp0_cause & 0x7c) >> 2;
192 192
193 if (fixup_exception(regs))
194 return NOTIFY_DONE;
195
196 /* Userpace events, ignore. */ 193 /* Userpace events, ignore. */
197 if (user_mode(regs)) 194 if (user_mode(regs))
198 return NOTIFY_DONE; 195 return NOTIFY_DONE;
@@ -239,8 +236,7 @@ int kgdb_arch_handle_exception(int vector, int signo, int err_code,
239 236
240 atomic_set(&kgdb_cpu_doing_single_step, -1); 237 atomic_set(&kgdb_cpu_doing_single_step, -1);
241 if (remcom_in_buffer[0] == 's') 238 if (remcom_in_buffer[0] == 's')
242 if (kgdb_contthread) 239 atomic_set(&kgdb_cpu_doing_single_step, cpu);
243 atomic_set(&kgdb_cpu_doing_single_step, cpu);
244 240
245 return 0; 241 return 0;
246 } 242 }
diff --git a/arch/mips/kernel/mips-mt-fpaff.c b/arch/mips/kernel/mips-mt-fpaff.c
index df4d3f2f740..dc9eb72ed9d 100644
--- a/arch/mips/kernel/mips-mt-fpaff.c
+++ b/arch/mips/kernel/mips-mt-fpaff.c
@@ -159,7 +159,7 @@ __setup("fpaff=", fpaff_thresh);
159/* 159/*
160 * FPU Use Factor empirically derived from experiments on 34K 160 * FPU Use Factor empirically derived from experiments on 34K
161 */ 161 */
162#define FPUSEFACTOR 333 162#define FPUSEFACTOR 2000
163 163
164static __init int mt_fp_affinity_init(void) 164static __init int mt_fp_affinity_init(void)
165{ 165{
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
index b16facd9ea8..22fc19bbe87 100644
--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -55,7 +55,7 @@ void __noreturn cpu_idle(void)
55 while (1) { 55 while (1) {
56 tick_nohz_stop_sched_tick(1); 56 tick_nohz_stop_sched_tick(1);
57 while (!need_resched()) { 57 while (!need_resched()) {
58#ifdef CONFIG_SMTC_IDLE_HOOK_DEBUG 58#ifdef CONFIG_MIPS_MT_SMTC
59 extern void smtc_idle_loop_hook(void); 59 extern void smtc_idle_loop_hook(void);
60 60
61 smtc_idle_loop_hook(); 61 smtc_idle_loop_hook();
@@ -145,17 +145,18 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
145 */ 145 */
146 p->thread.cp0_status = read_c0_status() & ~(ST0_CU2|ST0_CU1); 146 p->thread.cp0_status = read_c0_status() & ~(ST0_CU2|ST0_CU1);
147 childregs->cp0_status &= ~(ST0_CU2|ST0_CU1); 147 childregs->cp0_status &= ~(ST0_CU2|ST0_CU1);
148 clear_tsk_thread_flag(p, TIF_USEDFPU);
149 148
150#ifdef CONFIG_MIPS_MT_FPAFF 149#ifdef CONFIG_MIPS_MT_SMTC
151 /* 150 /*
152 * FPU affinity support is cleaner if we track the 151 * SMTC restores TCStatus after Status, and the CU bits
153 * user-visible CPU affinity from the very beginning. 152 * are aliased there.
154 * The generic cpus_allowed mask will already have
155 * been copied from the parent before copy_thread
156 * is invoked.
157 */ 153 */
158 p->thread.user_cpus_allowed = p->cpus_allowed; 154 childregs->cp0_tcstatus &= ~(ST0_CU2|ST0_CU1);
155#endif
156 clear_tsk_thread_flag(p, TIF_USEDFPU);
157
158#ifdef CONFIG_MIPS_MT_FPAFF
159 clear_tsk_thread_flag(p, TIF_FPUBOUND);
159#endif /* CONFIG_MIPS_MT_FPAFF */ 160#endif /* CONFIG_MIPS_MT_FPAFF */
160 161
161 if (clone_flags & CLONE_SETTLS) 162 if (clone_flags & CLONE_SETTLS)
diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
index 35234b92b9a..96ffc9c6d19 100644
--- a/arch/mips/kernel/ptrace.c
+++ b/arch/mips/kernel/ptrace.c
@@ -238,7 +238,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
238 case FPC_EIR: { /* implementation / version register */ 238 case FPC_EIR: { /* implementation / version register */
239 unsigned int flags; 239 unsigned int flags;
240#ifdef CONFIG_MIPS_MT_SMTC 240#ifdef CONFIG_MIPS_MT_SMTC
241 unsigned int irqflags; 241 unsigned long irqflags;
242 unsigned int mtflags; 242 unsigned int mtflags;
243#endif /* CONFIG_MIPS_MT_SMTC */ 243#endif /* CONFIG_MIPS_MT_SMTC */
244 244
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
index fc4fd4d705e..5e75a316f6b 100644
--- a/arch/mips/kernel/scall32-o32.S
+++ b/arch/mips/kernel/scall32-o32.S
@@ -647,6 +647,12 @@ einval: li v0, -EINVAL
647 sys sys_timerfd_create 2 647 sys sys_timerfd_create 2
648 sys sys_timerfd_gettime 2 648 sys sys_timerfd_gettime 2
649 sys sys_timerfd_settime 4 649 sys sys_timerfd_settime 4
650 sys sys_signalfd4 4
651 sys sys_eventfd2 2 /* 4325 */
652 sys sys_epoll_create1 1
653 sys sys_dup3 3
654 sys sys_pipe2 2
655 sys sys_inotify_init1 1
650 .endm 656 .endm
651 657
652 /* We pre-compute the number of _instruction_ bytes needed to 658 /* We pre-compute the number of _instruction_ bytes needed to
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
index 2b73fd1e452..3d58204c9d4 100644
--- a/arch/mips/kernel/scall64-64.S
+++ b/arch/mips/kernel/scall64-64.S
@@ -481,4 +481,10 @@ sys_call_table:
481 PTR sys_timerfd_create /* 5280 */ 481 PTR sys_timerfd_create /* 5280 */
482 PTR sys_timerfd_gettime 482 PTR sys_timerfd_gettime
483 PTR sys_timerfd_settime 483 PTR sys_timerfd_settime
484 PTR sys_signalfd4
485 PTR sys_eventfd2
486 PTR sys_epoll_create1 /* 5285 */
487 PTR sys_dup3
488 PTR sys_pipe2
489 PTR sys_inotify_init1
484 .size sys_call_table,.-sys_call_table 490 .size sys_call_table,.-sys_call_table
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index 2654e75d2fe..da7f1b6ea0f 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -407,4 +407,10 @@ EXPORT(sysn32_call_table)
407 PTR sys_timerfd_create 407 PTR sys_timerfd_create
408 PTR sys_timerfd_gettime /* 5285 */ 408 PTR sys_timerfd_gettime /* 5285 */
409 PTR sys_timerfd_settime 409 PTR sys_timerfd_settime
410 PTR sys_signalfd4
411 PTR sys_eventfd2
412 PTR sys_epoll_create1
413 PTR sys_dup3 /* 5290 */
414 PTR sys_pipe2
415 PTR sys_inotify_init1
410 .size sysn32_call_table,.-sysn32_call_table 416 .size sysn32_call_table,.-sysn32_call_table
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index 76167bea5a7..d7cd1aac9ad 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -529,4 +529,10 @@ sys_call_table:
529 PTR sys_timerfd_create 529 PTR sys_timerfd_create
530 PTR sys_timerfd_gettime 530 PTR sys_timerfd_gettime
531 PTR sys_timerfd_settime 531 PTR sys_timerfd_settime
532 PTR compat_sys_signalfd4
533 PTR sys_eventfd2 /* 4325 */
534 PTR sys_epoll_create1
535 PTR sys_dup3
536 PTR sys_pipe2
537 PTR sys_inotify_init1
532 .size sys_call_table,.-sys_call_table 538 .size sys_call_table,.-sys_call_table
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index 8af84867e74..16f8edfe5cd 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -78,7 +78,7 @@ void __init add_memory_region(phys_t start, phys_t size, long type)
78 78
79 /* Sanity check */ 79 /* Sanity check */
80 if (start + size < start) { 80 if (start + size < start) {
81 printk("Trying to add an invalid memory region, skipped\n"); 81 pr_warning("Trying to add an invalid memory region, skipped\n");
82 return; 82 return;
83 } 83 }
84 84
@@ -92,7 +92,7 @@ void __init add_memory_region(phys_t start, phys_t size, long type)
92 } 92 }
93 93
94 if (x == BOOT_MEM_MAP_MAX) { 94 if (x == BOOT_MEM_MAP_MAX) {
95 printk("Ooops! Too many entries in the memory map!\n"); 95 pr_err("Ooops! Too many entries in the memory map!\n");
96 return; 96 return;
97 } 97 }
98 98
@@ -108,22 +108,22 @@ static void __init print_memory_map(void)
108 const int field = 2 * sizeof(unsigned long); 108 const int field = 2 * sizeof(unsigned long);
109 109
110 for (i = 0; i < boot_mem_map.nr_map; i++) { 110 for (i = 0; i < boot_mem_map.nr_map; i++) {
111 printk(" memory: %0*Lx @ %0*Lx ", 111 printk(KERN_INFO " memory: %0*Lx @ %0*Lx ",
112 field, (unsigned long long) boot_mem_map.map[i].size, 112 field, (unsigned long long) boot_mem_map.map[i].size,
113 field, (unsigned long long) boot_mem_map.map[i].addr); 113 field, (unsigned long long) boot_mem_map.map[i].addr);
114 114
115 switch (boot_mem_map.map[i].type) { 115 switch (boot_mem_map.map[i].type) {
116 case BOOT_MEM_RAM: 116 case BOOT_MEM_RAM:
117 printk("(usable)\n"); 117 printk(KERN_CONT "(usable)\n");
118 break; 118 break;
119 case BOOT_MEM_ROM_DATA: 119 case BOOT_MEM_ROM_DATA:
120 printk("(ROM data)\n"); 120 printk(KERN_CONT "(ROM data)\n");
121 break; 121 break;
122 case BOOT_MEM_RESERVED: 122 case BOOT_MEM_RESERVED:
123 printk("(reserved)\n"); 123 printk(KERN_CONT "(reserved)\n");
124 break; 124 break;
125 default: 125 default:
126 printk("type %lu\n", boot_mem_map.map[i].type); 126 printk(KERN_CONT "type %lu\n", boot_mem_map.map[i].type);
127 break; 127 break;
128 } 128 }
129 } 129 }
@@ -160,36 +160,39 @@ early_param("rd_size", rd_size_early);
160static unsigned long __init init_initrd(void) 160static unsigned long __init init_initrd(void)
161{ 161{
162 unsigned long end; 162 unsigned long end;
163 u32 *initrd_header;
164 163
165 /* 164 /*
166 * Board specific code or command line parser should have 165 * Board specific code or command line parser should have
167 * already set up initrd_start and initrd_end. In these cases 166 * already set up initrd_start and initrd_end. In these cases
168 * perfom sanity checks and use them if all looks good. 167 * perfom sanity checks and use them if all looks good.
169 */ 168 */
170 if (initrd_start && initrd_end > initrd_start) 169 if (!initrd_start || initrd_end <= initrd_start) {
171 goto sanitize; 170#ifdef CONFIG_PROBE_INITRD_HEADER
171 u32 *initrd_header;
172 172
173 /* 173 /*
174 * See if initrd has been added to the kernel image by 174 * See if initrd has been added to the kernel image by
175 * arch/mips/boot/addinitrd.c. In that case a header is 175 * arch/mips/boot/addinitrd.c. In that case a header is
176 * prepended to initrd and is made up by 8 bytes. The fisrt 176 * prepended to initrd and is made up by 8 bytes. The first
177 * word is a magic number and the second one is the size of 177 * word is a magic number and the second one is the size of
178 * initrd. Initrd start must be page aligned in any cases. 178 * initrd. Initrd start must be page aligned in any cases.
179 */ 179 */
180 initrd_header = __va(PAGE_ALIGN(__pa_symbol(&_end) + 8)) - 8; 180 initrd_header = __va(PAGE_ALIGN(__pa_symbol(&_end) + 8)) - 8;
181 if (initrd_header[0] != 0x494E5244) 181 if (initrd_header[0] != 0x494E5244)
182 goto disable;
183 initrd_start = (unsigned long)(initrd_header + 2);
184 initrd_end = initrd_start + initrd_header[1];
185#else
182 goto disable; 186 goto disable;
183 initrd_start = (unsigned long)(initrd_header + 2); 187#endif
184 initrd_end = initrd_start + initrd_header[1]; 188 }
185 189
186sanitize:
187 if (initrd_start & ~PAGE_MASK) { 190 if (initrd_start & ~PAGE_MASK) {
188 printk(KERN_ERR "initrd start must be page aligned\n"); 191 pr_err("initrd start must be page aligned\n");
189 goto disable; 192 goto disable;
190 } 193 }
191 if (initrd_start < PAGE_OFFSET) { 194 if (initrd_start < PAGE_OFFSET) {
192 printk(KERN_ERR "initrd start < PAGE_OFFSET\n"); 195 pr_err("initrd start < PAGE_OFFSET\n");
193 goto disable; 196 goto disable;
194 } 197 }
195 198
@@ -221,18 +224,18 @@ static void __init finalize_initrd(void)
221 goto disable; 224 goto disable;
222 } 225 }
223 if (__pa(initrd_end) > PFN_PHYS(max_low_pfn)) { 226 if (__pa(initrd_end) > PFN_PHYS(max_low_pfn)) {
224 printk("Initrd extends beyond end of memory"); 227 printk(KERN_ERR "Initrd extends beyond end of memory");
225 goto disable; 228 goto disable;
226 } 229 }
227 230
228 reserve_bootmem(__pa(initrd_start), size, BOOTMEM_DEFAULT); 231 reserve_bootmem(__pa(initrd_start), size, BOOTMEM_DEFAULT);
229 initrd_below_start_ok = 1; 232 initrd_below_start_ok = 1;
230 233
231 printk(KERN_INFO "Initial ramdisk at: 0x%lx (%lu bytes)\n", 234 pr_info("Initial ramdisk at: 0x%lx (%lu bytes)\n",
232 initrd_start, size); 235 initrd_start, size);
233 return; 236 return;
234disable: 237disable:
235 printk(" - disabling initrd\n"); 238 printk(KERN_CONT " - disabling initrd\n");
236 initrd_start = 0; 239 initrd_start = 0;
237 initrd_end = 0; 240 initrd_end = 0;
238} 241}
@@ -310,14 +313,12 @@ static void __init bootmem_init(void)
310 if (min_low_pfn >= max_low_pfn) 313 if (min_low_pfn >= max_low_pfn)
311 panic("Incorrect memory mapping !!!"); 314 panic("Incorrect memory mapping !!!");
312 if (min_low_pfn > ARCH_PFN_OFFSET) { 315 if (min_low_pfn > ARCH_PFN_OFFSET) {
313 printk(KERN_INFO 316 pr_info("Wasting %lu bytes for tracking %lu unused pages\n",
314 "Wasting %lu bytes for tracking %lu unused pages\n", 317 (min_low_pfn - ARCH_PFN_OFFSET) * sizeof(struct page),
315 (min_low_pfn - ARCH_PFN_OFFSET) * sizeof(struct page), 318 min_low_pfn - ARCH_PFN_OFFSET);
316 min_low_pfn - ARCH_PFN_OFFSET);
317 } else if (min_low_pfn < ARCH_PFN_OFFSET) { 319 } else if (min_low_pfn < ARCH_PFN_OFFSET) {
318 printk(KERN_INFO 320 pr_info("%lu free pages won't be used\n",
319 "%lu free pages won't be used\n", 321 ARCH_PFN_OFFSET - min_low_pfn);
320 ARCH_PFN_OFFSET - min_low_pfn);
321 } 322 }
322 min_low_pfn = ARCH_PFN_OFFSET; 323 min_low_pfn = ARCH_PFN_OFFSET;
323 324
@@ -471,7 +472,7 @@ static void __init arch_mem_init(char **cmdline_p)
471 /* call board setup routine */ 472 /* call board setup routine */
472 plat_mem_setup(); 473 plat_mem_setup();
473 474
474 printk("Determined physical RAM map:\n"); 475 pr_info("Determined physical RAM map:\n");
475 print_memory_map(); 476 print_memory_map();
476 477
477 strlcpy(command_line, arcs_cmdline, sizeof(command_line)); 478 strlcpy(command_line, arcs_cmdline, sizeof(command_line));
@@ -482,7 +483,7 @@ static void __init arch_mem_init(char **cmdline_p)
482 parse_early_param(); 483 parse_early_param();
483 484
484 if (usermem) { 485 if (usermem) {
485 printk("User-defined physical RAM map:\n"); 486 pr_info("User-defined physical RAM map:\n");
486 print_memory_map(); 487 print_memory_map();
487 } 488 }
488 489
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c
index a516286532a..897fb2b4751 100644
--- a/arch/mips/kernel/smtc.c
+++ b/arch/mips/kernel/smtc.c
@@ -1,4 +1,21 @@
1/* Copyright (C) 2004 Mips Technologies, Inc */ 1/*
2 * This program is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU General Public License
4 * as published by the Free Software Foundation; either version 2
5 * of the License, or (at your option) any later version.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 * You should have received a copy of the GNU General Public License
13 * along with this program; if not, write to the Free Software
14 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
15 *
16 * Copyright (C) 2004 Mips Technologies, Inc
17 * Copyright (C) 2008 Kevin D. Kissell
18 */
2 19
3#include <linux/clockchips.h> 20#include <linux/clockchips.h>
4#include <linux/kernel.h> 21#include <linux/kernel.h>
@@ -21,7 +38,6 @@
21#include <asm/time.h> 38#include <asm/time.h>
22#include <asm/addrspace.h> 39#include <asm/addrspace.h>
23#include <asm/smtc.h> 40#include <asm/smtc.h>
24#include <asm/smtc_ipi.h>
25#include <asm/smtc_proc.h> 41#include <asm/smtc_proc.h>
26 42
27/* 43/*
@@ -58,11 +74,6 @@ unsigned long irq_hwmask[NR_IRQS];
58 74
59asiduse smtc_live_asid[MAX_SMTC_TLBS][MAX_SMTC_ASIDS]; 75asiduse smtc_live_asid[MAX_SMTC_TLBS][MAX_SMTC_ASIDS];
60 76
61/*
62 * Clock interrupt "latch" buffers, per "CPU"
63 */
64
65static atomic_t ipi_timer_latch[NR_CPUS];
66 77
67/* 78/*
68 * Number of InterProcessor Interrupt (IPI) message buffers to allocate 79 * Number of InterProcessor Interrupt (IPI) message buffers to allocate
@@ -70,7 +81,7 @@ static atomic_t ipi_timer_latch[NR_CPUS];
70 81
71#define IPIBUF_PER_CPU 4 82#define IPIBUF_PER_CPU 4
72 83
73static struct smtc_ipi_q IPIQ[NR_CPUS]; 84struct smtc_ipi_q IPIQ[NR_CPUS];
74static struct smtc_ipi_q freeIPIq; 85static struct smtc_ipi_q freeIPIq;
75 86
76 87
@@ -282,7 +293,7 @@ static void smtc_configure_tlb(void)
282 * phys_cpu_present_map and the logical/physical mappings. 293 * phys_cpu_present_map and the logical/physical mappings.
283 */ 294 */
284 295
285int __init mipsmt_build_cpu_map(int start_cpu_slot) 296int __init smtc_build_cpu_map(int start_cpu_slot)
286{ 297{
287 int i, ntcs; 298 int i, ntcs;
288 299
@@ -325,7 +336,12 @@ static void smtc_tc_setup(int vpe, int tc, int cpu)
325 write_tc_c0_tcstatus((read_tc_c0_tcstatus() 336 write_tc_c0_tcstatus((read_tc_c0_tcstatus()
326 & ~(TCSTATUS_TKSU | TCSTATUS_DA | TCSTATUS_IXMT)) 337 & ~(TCSTATUS_TKSU | TCSTATUS_DA | TCSTATUS_IXMT))
327 | TCSTATUS_A); 338 | TCSTATUS_A);
328 write_tc_c0_tccontext(0); 339 /*
340 * TCContext gets an offset from the base of the IPIQ array
341 * to be used in low-level code to detect the presence of
342 * an active IPI queue
343 */
344 write_tc_c0_tccontext((sizeof(struct smtc_ipi_q) * cpu) << 16);
329 /* Bind tc to vpe */ 345 /* Bind tc to vpe */
330 write_tc_c0_tcbind(vpe); 346 write_tc_c0_tcbind(vpe);
331 /* In general, all TCs should have the same cpu_data indications */ 347 /* In general, all TCs should have the same cpu_data indications */
@@ -336,10 +352,18 @@ static void smtc_tc_setup(int vpe, int tc, int cpu)
336 cpu_data[cpu].options &= ~MIPS_CPU_FPU; 352 cpu_data[cpu].options &= ~MIPS_CPU_FPU;
337 cpu_data[cpu].vpe_id = vpe; 353 cpu_data[cpu].vpe_id = vpe;
338 cpu_data[cpu].tc_id = tc; 354 cpu_data[cpu].tc_id = tc;
355 /* Multi-core SMTC hasn't been tested, but be prepared */
356 cpu_data[cpu].core = (read_vpe_c0_ebase() >> 1) & 0xff;
339} 357}
340 358
359/*
360 * Tweak to get Count registes in as close a sync as possible.
361 * Value seems good for 34K-class cores.
362 */
363
364#define CP0_SKEW 8
341 365
342void mipsmt_prepare_cpus(void) 366void smtc_prepare_cpus(int cpus)
343{ 367{
344 int i, vpe, tc, ntc, nvpe, tcpervpe[NR_CPUS], slop, cpu; 368 int i, vpe, tc, ntc, nvpe, tcpervpe[NR_CPUS], slop, cpu;
345 unsigned long flags; 369 unsigned long flags;
@@ -363,13 +387,13 @@ void mipsmt_prepare_cpus(void)
363 IPIQ[i].head = IPIQ[i].tail = NULL; 387 IPIQ[i].head = IPIQ[i].tail = NULL;
364 spin_lock_init(&IPIQ[i].lock); 388 spin_lock_init(&IPIQ[i].lock);
365 IPIQ[i].depth = 0; 389 IPIQ[i].depth = 0;
366 atomic_set(&ipi_timer_latch[i], 0);
367 } 390 }
368 391
369 /* cpu_data index starts at zero */ 392 /* cpu_data index starts at zero */
370 cpu = 0; 393 cpu = 0;
371 cpu_data[cpu].vpe_id = 0; 394 cpu_data[cpu].vpe_id = 0;
372 cpu_data[cpu].tc_id = 0; 395 cpu_data[cpu].tc_id = 0;
396 cpu_data[cpu].core = (read_c0_ebase() >> 1) & 0xff;
373 cpu++; 397 cpu++;
374 398
375 /* Report on boot-time options */ 399 /* Report on boot-time options */
@@ -484,7 +508,8 @@ void mipsmt_prepare_cpus(void)
484 write_vpe_c0_compare(0); 508 write_vpe_c0_compare(0);
485 /* Propagate Config7 */ 509 /* Propagate Config7 */
486 write_vpe_c0_config7(read_c0_config7()); 510 write_vpe_c0_config7(read_c0_config7());
487 write_vpe_c0_count(read_c0_count()); 511 write_vpe_c0_count(read_c0_count() + CP0_SKEW);
512 ehb();
488 } 513 }
489 /* enable multi-threading within VPE */ 514 /* enable multi-threading within VPE */
490 write_vpe_c0_vpecontrol(read_vpe_c0_vpecontrol() | VPECONTROL_TE); 515 write_vpe_c0_vpecontrol(read_vpe_c0_vpecontrol() | VPECONTROL_TE);
@@ -556,7 +581,7 @@ void mipsmt_prepare_cpus(void)
556void __cpuinit smtc_boot_secondary(int cpu, struct task_struct *idle) 581void __cpuinit smtc_boot_secondary(int cpu, struct task_struct *idle)
557{ 582{
558 extern u32 kernelsp[NR_CPUS]; 583 extern u32 kernelsp[NR_CPUS];
559 long flags; 584 unsigned long flags;
560 int mtflags; 585 int mtflags;
561 586
562 LOCK_MT_PRA(); 587 LOCK_MT_PRA();
@@ -585,24 +610,22 @@ void __cpuinit smtc_boot_secondary(int cpu, struct task_struct *idle)
585 610
586void smtc_init_secondary(void) 611void smtc_init_secondary(void)
587{ 612{
588 /*
589 * Start timer on secondary VPEs if necessary.
590 * plat_timer_setup has already have been invoked by init/main
591 * on "boot" TC. Like per_cpu_trap_init() hack, this assumes that
592 * SMTC init code assigns TCs consdecutively and in ascending order
593 * to across available VPEs.
594 */
595 if (((read_c0_tcbind() & TCBIND_CURTC) != 0) &&
596 ((read_c0_tcbind() & TCBIND_CURVPE)
597 != cpu_data[smp_processor_id() - 1].vpe_id)){
598 write_c0_compare(read_c0_count() + mips_hpt_frequency/HZ);
599 }
600
601 local_irq_enable(); 613 local_irq_enable();
602} 614}
603 615
604void smtc_smp_finish(void) 616void smtc_smp_finish(void)
605{ 617{
618 int cpu = smp_processor_id();
619
620 /*
621 * Lowest-numbered CPU per VPE starts a clock tick.
622 * Like per_cpu_trap_init() hack, this assumes that
623 * SMTC init code assigns TCs consdecutively and
624 * in ascending order across available VPEs.
625 */
626 if (cpu > 0 && (cpu_data[cpu].vpe_id != cpu_data[cpu - 1].vpe_id))
627 write_c0_compare(read_c0_count() + mips_hpt_frequency/HZ);
628
606 printk("TC %d going on-line as CPU %d\n", 629 printk("TC %d going on-line as CPU %d\n",
607 cpu_data[smp_processor_id()].tc_id, smp_processor_id()); 630 cpu_data[smp_processor_id()].tc_id, smp_processor_id());
608} 631}
@@ -753,8 +776,10 @@ void smtc_send_ipi(int cpu, int type, unsigned int action)
753{ 776{
754 int tcstatus; 777 int tcstatus;
755 struct smtc_ipi *pipi; 778 struct smtc_ipi *pipi;
756 long flags; 779 unsigned long flags;
757 int mtflags; 780 int mtflags;
781 unsigned long tcrestart;
782 extern void r4k_wait_irqoff(void), __pastwait(void);
758 783
759 if (cpu == smp_processor_id()) { 784 if (cpu == smp_processor_id()) {
760 printk("Cannot Send IPI to self!\n"); 785 printk("Cannot Send IPI to self!\n");
@@ -771,8 +796,6 @@ void smtc_send_ipi(int cpu, int type, unsigned int action)
771 pipi->arg = (void *)action; 796 pipi->arg = (void *)action;
772 pipi->dest = cpu; 797 pipi->dest = cpu;
773 if (cpu_data[cpu].vpe_id != cpu_data[smp_processor_id()].vpe_id) { 798 if (cpu_data[cpu].vpe_id != cpu_data[smp_processor_id()].vpe_id) {
774 if (type == SMTC_CLOCK_TICK)
775 atomic_inc(&ipi_timer_latch[cpu]);
776 /* If not on same VPE, enqueue and send cross-VPE interrupt */ 799 /* If not on same VPE, enqueue and send cross-VPE interrupt */
777 smtc_ipi_nq(&IPIQ[cpu], pipi); 800 smtc_ipi_nq(&IPIQ[cpu], pipi);
778 LOCK_CORE_PRA(); 801 LOCK_CORE_PRA();
@@ -800,22 +823,29 @@ void smtc_send_ipi(int cpu, int type, unsigned int action)
800 823
801 if ((tcstatus & TCSTATUS_IXMT) != 0) { 824 if ((tcstatus & TCSTATUS_IXMT) != 0) {
802 /* 825 /*
803 * Spin-waiting here can deadlock, 826 * If we're in the the irq-off version of the wait
804 * so we queue the message for the target TC. 827 * loop, we need to force exit from the wait and
828 * do a direct post of the IPI.
829 */
830 if (cpu_wait == r4k_wait_irqoff) {
831 tcrestart = read_tc_c0_tcrestart();
832 if (tcrestart >= (unsigned long)r4k_wait_irqoff
833 && tcrestart < (unsigned long)__pastwait) {
834 write_tc_c0_tcrestart(__pastwait);
835 tcstatus &= ~TCSTATUS_IXMT;
836 write_tc_c0_tcstatus(tcstatus);
837 goto postdirect;
838 }
839 }
840 /*
841 * Otherwise we queue the message for the target TC
842 * to pick up when he does a local_irq_restore()
805 */ 843 */
806 write_tc_c0_tchalt(0); 844 write_tc_c0_tchalt(0);
807 UNLOCK_CORE_PRA(); 845 UNLOCK_CORE_PRA();
808 /* Try to reduce redundant timer interrupt messages */
809 if (type == SMTC_CLOCK_TICK) {
810 if (atomic_postincrement(&ipi_timer_latch[cpu])!=0){
811 smtc_ipi_nq(&freeIPIq, pipi);
812 return;
813 }
814 }
815 smtc_ipi_nq(&IPIQ[cpu], pipi); 846 smtc_ipi_nq(&IPIQ[cpu], pipi);
816 } else { 847 } else {
817 if (type == SMTC_CLOCK_TICK) 848postdirect:
818 atomic_inc(&ipi_timer_latch[cpu]);
819 post_direct_ipi(cpu, pipi); 849 post_direct_ipi(cpu, pipi);
820 write_tc_c0_tchalt(0); 850 write_tc_c0_tchalt(0);
821 UNLOCK_CORE_PRA(); 851 UNLOCK_CORE_PRA();
@@ -883,7 +913,7 @@ static void ipi_call_interrupt(void)
883 smp_call_function_interrupt(); 913 smp_call_function_interrupt();
884} 914}
885 915
886DECLARE_PER_CPU(struct clock_event_device, smtc_dummy_clockevent_device); 916DECLARE_PER_CPU(struct clock_event_device, mips_clockevent_device);
887 917
888void ipi_decode(struct smtc_ipi *pipi) 918void ipi_decode(struct smtc_ipi *pipi)
889{ 919{
@@ -891,20 +921,13 @@ void ipi_decode(struct smtc_ipi *pipi)
891 struct clock_event_device *cd; 921 struct clock_event_device *cd;
892 void *arg_copy = pipi->arg; 922 void *arg_copy = pipi->arg;
893 int type_copy = pipi->type; 923 int type_copy = pipi->type;
894 int ticks;
895
896 smtc_ipi_nq(&freeIPIq, pipi); 924 smtc_ipi_nq(&freeIPIq, pipi);
897 switch (type_copy) { 925 switch (type_copy) {
898 case SMTC_CLOCK_TICK: 926 case SMTC_CLOCK_TICK:
899 irq_enter(); 927 irq_enter();
900 kstat_this_cpu.irqs[MIPS_CPU_IRQ_BASE + 1]++; 928 kstat_this_cpu.irqs[MIPS_CPU_IRQ_BASE + 1]++;
901 cd = &per_cpu(smtc_dummy_clockevent_device, cpu); 929 cd = &per_cpu(mips_clockevent_device, cpu);
902 ticks = atomic_read(&ipi_timer_latch[cpu]); 930 cd->event_handler(cd);
903 atomic_sub(ticks, &ipi_timer_latch[cpu]);
904 while (ticks) {
905 cd->event_handler(cd);
906 ticks--;
907 }
908 irq_exit(); 931 irq_exit();
909 break; 932 break;
910 933
@@ -937,24 +960,48 @@ void ipi_decode(struct smtc_ipi *pipi)
937 } 960 }
938} 961}
939 962
963/*
964 * Similar to smtc_ipi_replay(), but invoked from context restore,
965 * so it reuses the current exception frame rather than set up a
966 * new one with self_ipi.
967 */
968
940void deferred_smtc_ipi(void) 969void deferred_smtc_ipi(void)
941{ 970{
942 struct smtc_ipi *pipi; 971 int cpu = smp_processor_id();
943 unsigned long flags;
944/* DEBUG */
945 int q = smp_processor_id();
946 972
947 /* 973 /*
948 * Test is not atomic, but much faster than a dequeue, 974 * Test is not atomic, but much faster than a dequeue,
949 * and the vast majority of invocations will have a null queue. 975 * and the vast majority of invocations will have a null queue.
976 * If irq_disabled when this was called, then any IPIs queued
977 * after we test last will be taken on the next irq_enable/restore.
978 * If interrupts were enabled, then any IPIs added after the
979 * last test will be taken directly.
950 */ 980 */
951 if (IPIQ[q].head != NULL) { 981
952 while((pipi = smtc_ipi_dq(&IPIQ[q])) != NULL) { 982 while (IPIQ[cpu].head != NULL) {
953 /* ipi_decode() should be called with interrupts off */ 983 struct smtc_ipi_q *q = &IPIQ[cpu];
954 local_irq_save(flags); 984 struct smtc_ipi *pipi;
985 unsigned long flags;
986
987 /*
988 * It may be possible we'll come in with interrupts
989 * already enabled.
990 */
991 local_irq_save(flags);
992
993 spin_lock(&q->lock);
994 pipi = __smtc_ipi_dq(q);
995 spin_unlock(&q->lock);
996 if (pipi != NULL)
955 ipi_decode(pipi); 997 ipi_decode(pipi);
956 local_irq_restore(flags); 998 /*
957 } 999 * The use of the __raw_local restore isn't
1000 * as obviously necessary here as in smtc_ipi_replay(),
1001 * but it's more efficient, given that we're already
1002 * running down the IPI queue.
1003 */
1004 __raw_local_irq_restore(flags);
958 } 1005 }
959} 1006}
960 1007
@@ -975,7 +1022,7 @@ static irqreturn_t ipi_interrupt(int irq, void *dev_idm)
975 struct smtc_ipi *pipi; 1022 struct smtc_ipi *pipi;
976 unsigned long tcstatus; 1023 unsigned long tcstatus;
977 int sent; 1024 int sent;
978 long flags; 1025 unsigned long flags;
979 unsigned int mtflags; 1026 unsigned int mtflags;
980 unsigned int vpflags; 1027 unsigned int vpflags;
981 1028
@@ -1066,55 +1113,53 @@ static void setup_cross_vpe_interrupts(unsigned int nvpe)
1066 1113
1067/* 1114/*
1068 * SMTC-specific hacks invoked from elsewhere in the kernel. 1115 * SMTC-specific hacks invoked from elsewhere in the kernel.
1069 *
1070 * smtc_ipi_replay is called from raw_local_irq_restore which is only ever
1071 * called with interrupts disabled. We do rely on interrupts being disabled
1072 * here because using spin_lock_irqsave()/spin_unlock_irqrestore() would
1073 * result in a recursive call to raw_local_irq_restore().
1074 */ 1116 */
1075 1117
1076static void __smtc_ipi_replay(void) 1118 /*
1119 * smtc_ipi_replay is called from raw_local_irq_restore
1120 */
1121
1122void smtc_ipi_replay(void)
1077{ 1123{
1078 unsigned int cpu = smp_processor_id(); 1124 unsigned int cpu = smp_processor_id();
1079 1125
1080 /* 1126 /*
1081 * To the extent that we've ever turned interrupts off, 1127 * To the extent that we've ever turned interrupts off,
1082 * we may have accumulated deferred IPIs. This is subtle. 1128 * we may have accumulated deferred IPIs. This is subtle.
1083 * If we use the smtc_ipi_qdepth() macro, we'll get an
1084 * exact number - but we'll also disable interrupts
1085 * and create a window of failure where a new IPI gets
1086 * queued after we test the depth but before we re-enable
1087 * interrupts. So long as IXMT never gets set, however,
1088 * we should be OK: If we pick up something and dispatch 1129 * we should be OK: If we pick up something and dispatch
1089 * it here, that's great. If we see nothing, but concurrent 1130 * it here, that's great. If we see nothing, but concurrent
1090 * with this operation, another TC sends us an IPI, IXMT 1131 * with this operation, another TC sends us an IPI, IXMT
1091 * is clear, and we'll handle it as a real pseudo-interrupt 1132 * is clear, and we'll handle it as a real pseudo-interrupt
1092 * and not a pseudo-pseudo interrupt. 1133 * and not a pseudo-pseudo interrupt. The important thing
1134 * is to do the last check for queued message *after* the
1135 * re-enabling of interrupts.
1093 */ 1136 */
1094 if (IPIQ[cpu].depth > 0) { 1137 while (IPIQ[cpu].head != NULL) {
1095 while (1) { 1138 struct smtc_ipi_q *q = &IPIQ[cpu];
1096 struct smtc_ipi_q *q = &IPIQ[cpu]; 1139 struct smtc_ipi *pipi;
1097 struct smtc_ipi *pipi; 1140 unsigned long flags;
1098 extern void self_ipi(struct smtc_ipi *); 1141
1099 1142 /*
1100 spin_lock(&q->lock); 1143 * It's just possible we'll come in with interrupts
1101 pipi = __smtc_ipi_dq(q); 1144 * already enabled.
1102 spin_unlock(&q->lock); 1145 */
1103 if (!pipi) 1146 local_irq_save(flags);
1104 break; 1147
1148 spin_lock(&q->lock);
1149 pipi = __smtc_ipi_dq(q);
1150 spin_unlock(&q->lock);
1151 /*
1152 ** But use a raw restore here to avoid recursion.
1153 */
1154 __raw_local_irq_restore(flags);
1105 1155
1156 if (pipi) {
1106 self_ipi(pipi); 1157 self_ipi(pipi);
1107 smtc_cpu_stats[cpu].selfipis++; 1158 smtc_cpu_stats[cpu].selfipis++;
1108 } 1159 }
1109 } 1160 }
1110} 1161}
1111 1162
1112void smtc_ipi_replay(void)
1113{
1114 raw_local_irq_disable();
1115 __smtc_ipi_replay();
1116}
1117
1118EXPORT_SYMBOL(smtc_ipi_replay); 1163EXPORT_SYMBOL(smtc_ipi_replay);
1119 1164
1120void smtc_idle_loop_hook(void) 1165void smtc_idle_loop_hook(void)
@@ -1193,40 +1238,13 @@ void smtc_idle_loop_hook(void)
1193 } 1238 }
1194 } 1239 }
1195 1240
1196 /*
1197 * Now that we limit outstanding timer IPIs, check for hung TC
1198 */
1199 for (tc = 0; tc < NR_CPUS; tc++) {
1200 /* Don't check ourself - we'll dequeue IPIs just below */
1201 if ((tc != smp_processor_id()) &&
1202 atomic_read(&ipi_timer_latch[tc]) > timerq_limit) {
1203 if (clock_hang_reported[tc] == 0) {
1204 pdb_msg += sprintf(pdb_msg,
1205 "TC %d looks hung with timer latch at %d\n",
1206 tc, atomic_read(&ipi_timer_latch[tc]));
1207 clock_hang_reported[tc]++;
1208 }
1209 }
1210 }
1211 emt(mtflags); 1241 emt(mtflags);
1212 local_irq_restore(flags); 1242 local_irq_restore(flags);
1213 if (pdb_msg != &id_ho_db_msg[0]) 1243 if (pdb_msg != &id_ho_db_msg[0])
1214 printk("CPU%d: %s", smp_processor_id(), id_ho_db_msg); 1244 printk("CPU%d: %s", smp_processor_id(), id_ho_db_msg);
1215#endif /* CONFIG_SMTC_IDLE_HOOK_DEBUG */ 1245#endif /* CONFIG_SMTC_IDLE_HOOK_DEBUG */
1216 1246
1217 /* 1247 smtc_ipi_replay();
1218 * Replay any accumulated deferred IPIs. If "Instant Replay"
1219 * is in use, there should never be any.
1220 */
1221#ifndef CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY
1222 {
1223 unsigned long flags;
1224
1225 local_irq_save(flags);
1226 __smtc_ipi_replay();
1227 local_irq_restore(flags);
1228 }
1229#endif /* CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY */
1230} 1248}
1231 1249
1232void smtc_soft_dump(void) 1250void smtc_soft_dump(void)
@@ -1242,10 +1260,6 @@ void smtc_soft_dump(void)
1242 printk("%d: %ld\n", i, smtc_cpu_stats[i].selfipis); 1260 printk("%d: %ld\n", i, smtc_cpu_stats[i].selfipis);
1243 } 1261 }
1244 smtc_ipi_qdump(); 1262 smtc_ipi_qdump();
1245 printk("Timer IPI Backlogs:\n");
1246 for (i=0; i < NR_CPUS; i++) {
1247 printk("%d: %d\n", i, atomic_read(&ipi_timer_latch[i]));
1248 }
1249 printk("%d Recoveries of \"stolen\" FPU\n", 1263 printk("%d Recoveries of \"stolen\" FPU\n",
1250 atomic_read(&smtc_fpu_recoveries)); 1264 atomic_read(&smtc_fpu_recoveries));
1251} 1265}
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 426cced1e9d..b602ac6eb47 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -46,6 +46,9 @@
46#include <asm/types.h> 46#include <asm/types.h>
47#include <asm/stacktrace.h> 47#include <asm/stacktrace.h>
48 48
49extern void check_wait(void);
50extern asmlinkage void r4k_wait(void);
51extern asmlinkage void rollback_handle_int(void);
49extern asmlinkage void handle_int(void); 52extern asmlinkage void handle_int(void);
50extern asmlinkage void handle_tlbm(void); 53extern asmlinkage void handle_tlbm(void);
51extern asmlinkage void handle_tlbl(void); 54extern asmlinkage void handle_tlbl(void);
@@ -373,8 +376,8 @@ void __noreturn die(const char * str, const struct pt_regs * regs)
373 do_exit(SIGSEGV); 376 do_exit(SIGSEGV);
374} 377}
375 378
376extern const struct exception_table_entry __start___dbe_table[]; 379extern struct exception_table_entry __start___dbe_table[];
377extern const struct exception_table_entry __stop___dbe_table[]; 380extern struct exception_table_entry __stop___dbe_table[];
378 381
379__asm__( 382__asm__(
380" .section __dbe_table, \"a\"\n" 383" .section __dbe_table, \"a\"\n"
@@ -822,8 +825,10 @@ static void mt_ase_fp_affinity(void)
822 if (cpus_intersects(current->cpus_allowed, mt_fpu_cpumask)) { 825 if (cpus_intersects(current->cpus_allowed, mt_fpu_cpumask)) {
823 cpumask_t tmask; 826 cpumask_t tmask;
824 827
825 cpus_and(tmask, current->thread.user_cpus_allowed, 828 current->thread.user_cpus_allowed
826 mt_fpu_cpumask); 829 = current->cpus_allowed;
830 cpus_and(tmask, current->cpus_allowed,
831 mt_fpu_cpumask);
827 set_cpus_allowed(current, tmask); 832 set_cpus_allowed(current, tmask);
828 set_thread_flag(TIF_FPUBOUND); 833 set_thread_flag(TIF_FPUBOUND);
829 } 834 }
@@ -1200,7 +1205,7 @@ void *set_except_vector(int n, void *addr)
1200 if (n == 0 && cpu_has_divec) { 1205 if (n == 0 && cpu_has_divec) {
1201 *(u32 *)(ebase + 0x200) = 0x08000000 | 1206 *(u32 *)(ebase + 0x200) = 0x08000000 |
1202 (0x03ffffff & (handler >> 2)); 1207 (0x03ffffff & (handler >> 2));
1203 flush_icache_range(ebase + 0x200, ebase + 0x204); 1208 local_flush_icache_range(ebase + 0x200, ebase + 0x204);
1204 } 1209 }
1205 return (void *)old_handler; 1210 return (void *)old_handler;
1206} 1211}
@@ -1251,6 +1256,9 @@ static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs)
1251 1256
1252 extern char except_vec_vi, except_vec_vi_lui; 1257 extern char except_vec_vi, except_vec_vi_lui;
1253 extern char except_vec_vi_ori, except_vec_vi_end; 1258 extern char except_vec_vi_ori, except_vec_vi_end;
1259 extern char rollback_except_vec_vi;
1260 char *vec_start = (cpu_wait == r4k_wait) ?
1261 &rollback_except_vec_vi : &except_vec_vi;
1254#ifdef CONFIG_MIPS_MT_SMTC 1262#ifdef CONFIG_MIPS_MT_SMTC
1255 /* 1263 /*
1256 * We need to provide the SMTC vectored interrupt handler 1264 * We need to provide the SMTC vectored interrupt handler
@@ -1258,11 +1266,11 @@ static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs)
1258 * Status.IM bit to be masked before going there. 1266 * Status.IM bit to be masked before going there.
1259 */ 1267 */
1260 extern char except_vec_vi_mori; 1268 extern char except_vec_vi_mori;
1261 const int mori_offset = &except_vec_vi_mori - &except_vec_vi; 1269 const int mori_offset = &except_vec_vi_mori - vec_start;
1262#endif /* CONFIG_MIPS_MT_SMTC */ 1270#endif /* CONFIG_MIPS_MT_SMTC */
1263 const int handler_len = &except_vec_vi_end - &except_vec_vi; 1271 const int handler_len = &except_vec_vi_end - vec_start;
1264 const int lui_offset = &except_vec_vi_lui - &except_vec_vi; 1272 const int lui_offset = &except_vec_vi_lui - vec_start;
1265 const int ori_offset = &except_vec_vi_ori - &except_vec_vi; 1273 const int ori_offset = &except_vec_vi_ori - vec_start;
1266 1274
1267 if (handler_len > VECTORSPACING) { 1275 if (handler_len > VECTORSPACING) {
1268 /* 1276 /*
@@ -1272,7 +1280,7 @@ static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs)
1272 panic("VECTORSPACING too small"); 1280 panic("VECTORSPACING too small");
1273 } 1281 }
1274 1282
1275 memcpy(b, &except_vec_vi, handler_len); 1283 memcpy(b, vec_start, handler_len);
1276#ifdef CONFIG_MIPS_MT_SMTC 1284#ifdef CONFIG_MIPS_MT_SMTC
1277 BUG_ON(n > 7); /* Vector index %d exceeds SMTC maximum. */ 1285 BUG_ON(n > 7); /* Vector index %d exceeds SMTC maximum. */
1278 1286
@@ -1283,7 +1291,8 @@ static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs)
1283 *w = (*w & 0xffff0000) | (((u32)handler >> 16) & 0xffff); 1291 *w = (*w & 0xffff0000) | (((u32)handler >> 16) & 0xffff);
1284 w = (u32 *)(b + ori_offset); 1292 w = (u32 *)(b + ori_offset);
1285 *w = (*w & 0xffff0000) | ((u32)handler & 0xffff); 1293 *w = (*w & 0xffff0000) | ((u32)handler & 0xffff);
1286 flush_icache_range((unsigned long)b, (unsigned long)(b+handler_len)); 1294 local_flush_icache_range((unsigned long)b,
1295 (unsigned long)(b+handler_len));
1287 } 1296 }
1288 else { 1297 else {
1289 /* 1298 /*
@@ -1295,7 +1304,8 @@ static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs)
1295 w = (u32 *)b; 1304 w = (u32 *)b;
1296 *w++ = 0x08000000 | (((u32)handler >> 2) & 0x03fffff); /* j handler */ 1305 *w++ = 0x08000000 | (((u32)handler >> 2) & 0x03fffff); /* j handler */
1297 *w = 0; 1306 *w = 0;
1298 flush_icache_range((unsigned long)b, (unsigned long)(b+8)); 1307 local_flush_icache_range((unsigned long)b,
1308 (unsigned long)(b+8));
1299 } 1309 }
1300 1310
1301 return (void *)old_handler; 1311 return (void *)old_handler;
@@ -1515,7 +1525,7 @@ void __cpuinit per_cpu_trap_init(void)
1515void __init set_handler(unsigned long offset, void *addr, unsigned long size) 1525void __init set_handler(unsigned long offset, void *addr, unsigned long size)
1516{ 1526{
1517 memcpy((void *)(ebase + offset), addr, size); 1527 memcpy((void *)(ebase + offset), addr, size);
1518 flush_icache_range(ebase + offset, ebase + offset + size); 1528 local_flush_icache_range(ebase + offset, ebase + offset + size);
1519} 1529}
1520 1530
1521static char panic_null_cerr[] __cpuinitdata = 1531static char panic_null_cerr[] __cpuinitdata =
@@ -1552,6 +1562,10 @@ void __init trap_init(void)
1552 extern char except_vec3_generic, except_vec3_r4000; 1562 extern char except_vec3_generic, except_vec3_r4000;
1553 extern char except_vec4; 1563 extern char except_vec4;
1554 unsigned long i; 1564 unsigned long i;
1565 int rollback;
1566
1567 check_wait();
1568 rollback = (cpu_wait == r4k_wait);
1555 1569
1556#if defined(CONFIG_KGDB) 1570#if defined(CONFIG_KGDB)
1557 if (kgdb_early_setup) 1571 if (kgdb_early_setup)
@@ -1616,7 +1630,7 @@ void __init trap_init(void)
1616 if (board_be_init) 1630 if (board_be_init)
1617 board_be_init(); 1631 board_be_init();
1618 1632
1619 set_except_vector(0, handle_int); 1633 set_except_vector(0, rollback ? rollback_handle_int : handle_int);
1620 set_except_vector(1, handle_tlbm); 1634 set_except_vector(1, handle_tlbm);
1621 set_except_vector(2, handle_tlbl); 1635 set_except_vector(2, handle_tlbl);
1622 set_except_vector(3, handle_tlbs); 1636 set_except_vector(3, handle_tlbs);
@@ -1680,6 +1694,8 @@ void __init trap_init(void)
1680 signal32_init(); 1694 signal32_init();
1681#endif 1695#endif
1682 1696
1683 flush_icache_range(ebase, ebase + 0x400); 1697 local_flush_icache_range(ebase, ebase + 0x400);
1684 flush_tlb_handlers(); 1698 flush_tlb_handlers();
1699
1700 sort_extable(__start___dbe_table, __stop___dbe_table);
1685} 1701}
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
index b5470ceb418..afb119f3568 100644
--- a/arch/mips/kernel/vmlinux.lds.S
+++ b/arch/mips/kernel/vmlinux.lds.S
@@ -36,6 +36,7 @@ SECTIONS
36 SCHED_TEXT 36 SCHED_TEXT
37 LOCK_TEXT 37 LOCK_TEXT
38 KPROBES_TEXT 38 KPROBES_TEXT
39 *(.text.*)
39 *(.fixup) 40 *(.fixup)
40 *(.gnu.warning) 41 *(.gnu.warning)
41 } :text = 0 42 } :text = 0
diff --git a/arch/mips/lib/csum_partial.S b/arch/mips/lib/csum_partial.S
index 8d7784122c1..edac9892c51 100644
--- a/arch/mips/lib/csum_partial.S
+++ b/arch/mips/lib/csum_partial.S
@@ -39,12 +39,14 @@
39#ifdef USE_DOUBLE 39#ifdef USE_DOUBLE
40 40
41#define LOAD ld 41#define LOAD ld
42#define LOAD32 lwu
42#define ADD daddu 43#define ADD daddu
43#define NBYTES 8 44#define NBYTES 8
44 45
45#else 46#else
46 47
47#define LOAD lw 48#define LOAD lw
49#define LOAD32 lw
48#define ADD addu 50#define ADD addu
49#define NBYTES 4 51#define NBYTES 4
50 52
@@ -60,6 +62,14 @@
60 ADD sum, v1; \ 62 ADD sum, v1; \
61 .set pop 63 .set pop
62 64
65#define ADDC32(sum,reg) \
66 .set push; \
67 .set noat; \
68 addu sum, reg; \
69 sltu v1, sum, reg; \
70 addu sum, v1; \
71 .set pop
72
63#define CSUM_BIGCHUNK1(src, offset, sum, _t0, _t1, _t2, _t3) \ 73#define CSUM_BIGCHUNK1(src, offset, sum, _t0, _t1, _t2, _t3) \
64 LOAD _t0, (offset + UNIT(0))(src); \ 74 LOAD _t0, (offset + UNIT(0))(src); \
65 LOAD _t1, (offset + UNIT(1))(src); \ 75 LOAD _t1, (offset + UNIT(1))(src); \
@@ -132,7 +142,7 @@ LEAF(csum_partial)
132 beqz t8, .Lqword_align 142 beqz t8, .Lqword_align
133 andi t8, src, 0x8 143 andi t8, src, 0x8
134 144
135 lw t0, 0x00(src) 145 LOAD32 t0, 0x00(src)
136 LONG_SUBU a1, a1, 0x4 146 LONG_SUBU a1, a1, 0x4
137 ADDC(sum, t0) 147 ADDC(sum, t0)
138 PTR_ADDU src, src, 0x4 148 PTR_ADDU src, src, 0x4
@@ -211,7 +221,7 @@ LEAF(csum_partial)
211 LONG_SRL t8, t8, 0x2 221 LONG_SRL t8, t8, 0x2
212 222
213.Lend_words: 223.Lend_words:
214 lw t0, (src) 224 LOAD32 t0, (src)
215 LONG_SUBU t8, t8, 0x1 225 LONG_SUBU t8, t8, 0x1
216 ADDC(sum, t0) 226 ADDC(sum, t0)
217 .set reorder /* DADDI_WAR */ 227 .set reorder /* DADDI_WAR */
@@ -230,6 +240,9 @@ LEAF(csum_partial)
230 /* Still a full word to go */ 240 /* Still a full word to go */
231 ulw t1, (src) 241 ulw t1, (src)
232 PTR_ADDIU src, 4 242 PTR_ADDIU src, 4
243#ifdef USE_DOUBLE
244 dsll t1, t1, 32 /* clear lower 32bit */
245#endif
233 ADDC(sum, t1) 246 ADDC(sum, t1)
234 247
2351: move t1, zero 2481: move t1, zero
@@ -280,7 +293,7 @@ LEAF(csum_partial)
2801: 2931:
281 .set reorder 294 .set reorder
282 /* Add the passed partial csum. */ 295 /* Add the passed partial csum. */
283 ADDC(sum, a2) 296 ADDC32(sum, a2)
284 jr ra 297 jr ra
285 .set noreorder 298 .set noreorder
286 END(csum_partial) 299 END(csum_partial)
@@ -681,7 +694,7 @@ EXC( sb t0, NBYTES-2(dst), .Ls_exc)
681 .set pop 694 .set pop
6821: 6951:
683 .set reorder 696 .set reorder
684 ADDC(sum, psum) 697 ADDC32(sum, psum)
685 jr ra 698 jr ra
686 .set noreorder 699 .set noreorder
687 700
diff --git a/arch/mips/mm/c-r3k.c b/arch/mips/mm/c-r3k.c
index 27a5b466c85..5500c20c79a 100644
--- a/arch/mips/mm/c-r3k.c
+++ b/arch/mips/mm/c-r3k.c
@@ -320,6 +320,7 @@ void __cpuinit r3k_cache_init(void)
320 flush_cache_range = r3k_flush_cache_range; 320 flush_cache_range = r3k_flush_cache_range;
321 flush_cache_page = r3k_flush_cache_page; 321 flush_cache_page = r3k_flush_cache_page;
322 flush_icache_range = r3k_flush_icache_range; 322 flush_icache_range = r3k_flush_icache_range;
323 local_flush_icache_range = r3k_flush_icache_range;
323 324
324 flush_cache_sigtramp = r3k_flush_cache_sigtramp; 325 flush_cache_sigtramp = r3k_flush_cache_sigtramp;
325 local_flush_data_cache_page = local_r3k_flush_data_cache_page; 326 local_flush_data_cache_page = local_r3k_flush_data_cache_page;
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 71df3390c07..6e99665ae86 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -543,12 +543,8 @@ struct flush_icache_range_args {
543 unsigned long end; 543 unsigned long end;
544}; 544};
545 545
546static inline void local_r4k_flush_icache_range(void *args) 546static inline void local_r4k_flush_icache_range(unsigned long start, unsigned long end)
547{ 547{
548 struct flush_icache_range_args *fir_args = args;
549 unsigned long start = fir_args->start;
550 unsigned long end = fir_args->end;
551
552 if (!cpu_has_ic_fills_f_dc) { 548 if (!cpu_has_ic_fills_f_dc) {
553 if (end - start >= dcache_size) { 549 if (end - start >= dcache_size) {
554 r4k_blast_dcache(); 550 r4k_blast_dcache();
@@ -564,6 +560,15 @@ static inline void local_r4k_flush_icache_range(void *args)
564 protected_blast_icache_range(start, end); 560 protected_blast_icache_range(start, end);
565} 561}
566 562
563static inline void local_r4k_flush_icache_range_ipi(void *args)
564{
565 struct flush_icache_range_args *fir_args = args;
566 unsigned long start = fir_args->start;
567 unsigned long end = fir_args->end;
568
569 local_r4k_flush_icache_range(start, end);
570}
571
567static void r4k_flush_icache_range(unsigned long start, unsigned long end) 572static void r4k_flush_icache_range(unsigned long start, unsigned long end)
568{ 573{
569 struct flush_icache_range_args args; 574 struct flush_icache_range_args args;
@@ -571,7 +576,7 @@ static void r4k_flush_icache_range(unsigned long start, unsigned long end)
571 args.start = start; 576 args.start = start;
572 args.end = end; 577 args.end = end;
573 578
574 r4k_on_each_cpu(local_r4k_flush_icache_range, &args, 1); 579 r4k_on_each_cpu(local_r4k_flush_icache_range_ipi, &args, 1);
575 instruction_hazard(); 580 instruction_hazard();
576} 581}
577 582
@@ -1375,6 +1380,7 @@ void __cpuinit r4k_cache_init(void)
1375 local_flush_data_cache_page = local_r4k_flush_data_cache_page; 1380 local_flush_data_cache_page = local_r4k_flush_data_cache_page;
1376 flush_data_cache_page = r4k_flush_data_cache_page; 1381 flush_data_cache_page = r4k_flush_data_cache_page;
1377 flush_icache_range = r4k_flush_icache_range; 1382 flush_icache_range = r4k_flush_icache_range;
1383 local_flush_icache_range = local_r4k_flush_icache_range;
1378 1384
1379#if defined(CONFIG_DMA_NONCOHERENT) 1385#if defined(CONFIG_DMA_NONCOHERENT)
1380 if (coherentio) { 1386 if (coherentio) {
diff --git a/arch/mips/mm/c-tx39.c b/arch/mips/mm/c-tx39.c
index a9f7f1f5e9b..f7c8f9ce39c 100644
--- a/arch/mips/mm/c-tx39.c
+++ b/arch/mips/mm/c-tx39.c
@@ -362,6 +362,7 @@ void __cpuinit tx39_cache_init(void)
362 flush_cache_range = (void *) tx39h_flush_icache_all; 362 flush_cache_range = (void *) tx39h_flush_icache_all;
363 flush_cache_page = (void *) tx39h_flush_icache_all; 363 flush_cache_page = (void *) tx39h_flush_icache_all;
364 flush_icache_range = (void *) tx39h_flush_icache_all; 364 flush_icache_range = (void *) tx39h_flush_icache_all;
365 local_flush_icache_range = (void *) tx39h_flush_icache_all;
365 366
366 flush_cache_sigtramp = (void *) tx39h_flush_icache_all; 367 flush_cache_sigtramp = (void *) tx39h_flush_icache_all;
367 local_flush_data_cache_page = (void *) tx39h_flush_icache_all; 368 local_flush_data_cache_page = (void *) tx39h_flush_icache_all;
@@ -390,6 +391,7 @@ void __cpuinit tx39_cache_init(void)
390 flush_cache_range = tx39_flush_cache_range; 391 flush_cache_range = tx39_flush_cache_range;
391 flush_cache_page = tx39_flush_cache_page; 392 flush_cache_page = tx39_flush_cache_page;
392 flush_icache_range = tx39_flush_icache_range; 393 flush_icache_range = tx39_flush_icache_range;
394 local_flush_icache_range = tx39_flush_icache_range;
393 395
394 flush_cache_sigtramp = tx39_flush_cache_sigtramp; 396 flush_cache_sigtramp = tx39_flush_cache_sigtramp;
395 local_flush_data_cache_page = local_tx39_flush_data_cache_page; 397 local_flush_data_cache_page = local_tx39_flush_data_cache_page;
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
index 034e8506f6e..1eb7c71e3d6 100644
--- a/arch/mips/mm/cache.c
+++ b/arch/mips/mm/cache.c
@@ -29,6 +29,7 @@ void (*flush_cache_range)(struct vm_area_struct *vma, unsigned long start,
29void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page, 29void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page,
30 unsigned long pfn); 30 unsigned long pfn);
31void (*flush_icache_range)(unsigned long start, unsigned long end); 31void (*flush_icache_range)(unsigned long start, unsigned long end);
32void (*local_flush_icache_range)(unsigned long start, unsigned long end);
32 33
33void (*__flush_cache_vmap)(void); 34void (*__flush_cache_vmap)(void);
34void (*__flush_cache_vunmap)(void); 35void (*__flush_cache_vunmap)(void);
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index 76da73a5ab3..979cf919728 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -1273,10 +1273,10 @@ void __cpuinit build_tlb_refill_handler(void)
1273 1273
1274void __cpuinit flush_tlb_handlers(void) 1274void __cpuinit flush_tlb_handlers(void)
1275{ 1275{
1276 flush_icache_range((unsigned long)handle_tlbl, 1276 local_flush_icache_range((unsigned long)handle_tlbl,
1277 (unsigned long)handle_tlbl + sizeof(handle_tlbl)); 1277 (unsigned long)handle_tlbl + sizeof(handle_tlbl));
1278 flush_icache_range((unsigned long)handle_tlbs, 1278 local_flush_icache_range((unsigned long)handle_tlbs,
1279 (unsigned long)handle_tlbs + sizeof(handle_tlbs)); 1279 (unsigned long)handle_tlbs + sizeof(handle_tlbs));
1280 flush_icache_range((unsigned long)handle_tlbm, 1280 local_flush_icache_range((unsigned long)handle_tlbm,
1281 (unsigned long)handle_tlbm + sizeof(handle_tlbm)); 1281 (unsigned long)handle_tlbm + sizeof(handle_tlbm));
1282} 1282}
diff --git a/arch/mips/mti-malta/Makefile b/arch/mips/mti-malta/Makefile
index 3b7dd722c32..cef2db8d222 100644
--- a/arch/mips/mti-malta/Makefile
+++ b/arch/mips/mti-malta/Makefile
@@ -15,6 +15,6 @@ obj-$(CONFIG_EARLY_PRINTK) += malta-console.o
15obj-$(CONFIG_PCI) += malta-pci.o 15obj-$(CONFIG_PCI) += malta-pci.o
16 16
17# FIXME FIXME FIXME 17# FIXME FIXME FIXME
18obj-$(CONFIG_MIPS_MT_SMTC) += malta_smtc.o 18obj-$(CONFIG_MIPS_MT_SMTC) += malta-smtc.o
19 19
20EXTRA_CFLAGS += -Werror 20EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/mti-malta/malta-smtc.c b/arch/mips/mti-malta/malta-smtc.c
index 5ea705e4945..f84a46a8ae6 100644
--- a/arch/mips/mti-malta/malta-smtc.c
+++ b/arch/mips/mti-malta/malta-smtc.c
@@ -84,12 +84,17 @@ static void msmtc_cpus_done(void)
84 84
85static void __init msmtc_smp_setup(void) 85static void __init msmtc_smp_setup(void)
86{ 86{
87 mipsmt_build_cpu_map(0); 87 /*
88 * we won't get the definitive value until
89 * we've run smtc_prepare_cpus later, but
90 * we would appear to need an upper bound now.
91 */
92 smp_num_siblings = smtc_build_cpu_map(0);
88} 93}
89 94
90static void __init msmtc_prepare_cpus(unsigned int max_cpus) 95static void __init msmtc_prepare_cpus(unsigned int max_cpus)
91{ 96{
92 mipsmt_prepare_cpus(); 97 smtc_prepare_cpus(max_cpus);
93} 98}
94 99
95struct plat_smp_ops msmtc_smp_ops = { 100struct plat_smp_ops msmtc_smp_ops = {
diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile
index 15e01aec37f..c8c32f417b6 100644
--- a/arch/mips/pci/Makefile
+++ b/arch/mips/pci/Makefile
@@ -15,6 +15,7 @@ obj-$(CONFIG_SOC_TX3927) += ops-tx3927.o
15obj-$(CONFIG_PCI_VR41XX) += ops-vr41xx.o pci-vr41xx.o 15obj-$(CONFIG_PCI_VR41XX) += ops-vr41xx.o pci-vr41xx.o
16obj-$(CONFIG_MARKEINS) += ops-emma2rh.o pci-emma2rh.o fixup-emma2rh.o 16obj-$(CONFIG_MARKEINS) += ops-emma2rh.o pci-emma2rh.o fixup-emma2rh.o
17obj-$(CONFIG_PCI_TX4927) += ops-tx4927.o 17obj-$(CONFIG_PCI_TX4927) += ops-tx4927.o
18obj-$(CONFIG_BCM47XX) += pci-bcm47xx.o
18 19
19# 20#
20# These are still pretty much in the old state, watch, go blind. 21# These are still pretty much in the old state, watch, go blind.
diff --git a/arch/mips/pci/pci-bcm47xx.c b/arch/mips/pci/pci-bcm47xx.c
new file mode 100644
index 00000000000..bea9b6cdfdb
--- /dev/null
+++ b/arch/mips/pci/pci-bcm47xx.c
@@ -0,0 +1,60 @@
1/*
2 * Copyright (C) 2008 Aurelien Jarno <aurelien@aurel32.net>
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
10 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
12 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
13 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
14 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
15 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
16 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
17 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
18 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
19 *
20 * You should have received a copy of the GNU General Public License along
21 * with this program; if not, write to the Free Software Foundation, Inc.,
22 * 675 Mass Ave, Cambridge, MA 02139, USA.
23 */
24
25#include <linux/types.h>
26#include <linux/pci.h>
27#include <linux/ssb/ssb.h>
28
29int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
30{
31 return 0;
32}
33
34int pcibios_plat_dev_init(struct pci_dev *dev)
35{
36 int res;
37 u8 slot, pin;
38
39 res = ssb_pcibios_plat_dev_init(dev);
40 if (res < 0) {
41 printk(KERN_ALERT "PCI: Failed to init device %s\n",
42 pci_name(dev));
43 return res;
44 }
45
46 pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
47 slot = PCI_SLOT(dev->devfn);
48 res = ssb_pcibios_map_irq(dev, slot, pin);
49
50 /* IRQ-0 and IRQ-1 are software interrupts. */
51 if (res < 2) {
52 printk(KERN_ALERT "PCI: Failed to map IRQ of device %s\n",
53 pci_name(dev));
54 return res;
55 }
56
57 dev->irq = res;
58 return 0;
59}
60
diff --git a/arch/mips/pci/pci-ip27.c b/arch/mips/pci/pci-ip27.c
index ce92f82b16d..f97ab146101 100644
--- a/arch/mips/pci/pci-ip27.c
+++ b/arch/mips/pci/pci-ip27.c
@@ -143,25 +143,47 @@ int __cpuinit bridge_probe(nasid_t nasid, int widget_id, int masterwid)
143 */ 143 */
144int __devinit pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) 144int __devinit pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
145{ 145{
146 return 0;
147}
148
149/* Most MIPS systems have straight-forward swizzling needs. */
150static inline u8 bridge_swizzle(u8 pin, u8 slot)
151{
152 return (((pin - 1) + slot) % 4) + 1;
153}
154
155static inline struct pci_dev *bridge_root_dev(struct pci_dev *dev)
156{
157 while (dev->bus->parent) {
158 /* Move up the chain of bridges. */
159 dev = dev->bus->self;
160 }
161
162 return dev;
163}
164
165/* Do platform specific device initialization at pci_enable_device() time */
166int pcibios_plat_dev_init(struct pci_dev *dev)
167{
146 struct bridge_controller *bc = BRIDGE_CONTROLLER(dev->bus); 168 struct bridge_controller *bc = BRIDGE_CONTROLLER(dev->bus);
147 int irq = bc->pci_int[slot]; 169 struct pci_dev *rdev = bridge_root_dev(dev);
170 int slot = PCI_SLOT(rdev->devfn);
171 int irq;
148 172
173 irq = bc->pci_int[slot];
149 if (irq == -1) { 174 if (irq == -1) {
150 irq = bc->pci_int[slot] = request_bridge_irq(bc); 175 irq = request_bridge_irq(bc);
151 if (irq < 0) 176 if (irq < 0)
152 panic("Can't allocate interrupt for PCI device %s\n", 177 return irq;
153 pci_name(dev)); 178
179 bc->pci_int[slot] = irq;
154 } 180 }
155 181
156 irq_to_bridge[irq] = bc; 182 irq_to_bridge[irq] = bc;
157 irq_to_slot[irq] = slot; 183 irq_to_slot[irq] = slot;
158 184
159 return irq; 185 dev->irq = irq;
160}
161 186
162/* Do platform specific device initialization at pci_enable_device() time */
163int pcibios_plat_dev_init(struct pci_dev *dev)
164{
165 return 0; 187 return 0;
166} 188}
167 189
@@ -205,6 +227,7 @@ int pcibus_to_node(struct pci_bus *bus)
205 227
206 return bc->nasid; 228 return bc->nasid;
207} 229}
230EXPORT_SYMBOL(pcibus_to_node);
208 231
209DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SGI, PCI_DEVICE_ID_SGI_IOC3, 232DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SGI, PCI_DEVICE_ID_SGI_IOC3,
210 pci_fixup_ioc3); 233 pci_fixup_ioc3);
diff --git a/arch/mips/rb532/devices.c b/arch/mips/rb532/devices.c
index 44fb0a62877..82ab395efa3 100644
--- a/arch/mips/rb532/devices.c
+++ b/arch/mips/rb532/devices.c
@@ -49,8 +49,6 @@
49#define GPIO_ALE (1 << 0x0a) 49#define GPIO_ALE (1 << 0x0a)
50#define GPIO_CLE (1 << 0x0b) 50#define GPIO_CLE (1 << 0x0b)
51 51
52extern char *board_type;
53
54static struct resource korina_dev0_res[] = { 52static struct resource korina_dev0_res[] = {
55 { 53 {
56 .name = "korina_regs", 54 .name = "korina_regs",
@@ -265,14 +263,6 @@ static void __init parse_mac_addr(char *macstr)
265} 263}
266 264
267 265
268/* DEVICE CONTROLLER 1 */
269#define CFG_DC_DEV1 ((void *)0xb8010010)
270#define CFG_DC_DEV2 ((void *)0xb8010020)
271#define CFG_DC_DEVBASE 0x0
272#define CFG_DC_DEVMASK 0x4
273#define CFG_DC_DEVC 0x8
274#define CFG_DC_DEVTC 0xC
275
276/* NAND definitions */ 266/* NAND definitions */
277#define NAND_CHIP_DELAY 25 267#define NAND_CHIP_DELAY 25
278 268
@@ -301,16 +291,16 @@ static void __init rb532_nand_setup(void)
301static int __init plat_setup_devices(void) 291static int __init plat_setup_devices(void)
302{ 292{
303 /* Look for the CF card reader */ 293 /* Look for the CF card reader */
304 if (!readl(CFG_DC_DEV1 + CFG_DC_DEVMASK)) 294 if (!readl(IDT434_REG_BASE + DEV1MASK))
305 rb532_devs[1] = NULL; 295 rb532_devs[1] = NULL;
306 else { 296 else {
307 cf_slot0_res[0].start = 297 cf_slot0_res[0].start =
308 readl(CFG_DC_DEV1 + CFG_DC_DEVBASE); 298 readl(IDT434_REG_BASE + DEV1BASE);
309 cf_slot0_res[0].end = cf_slot0_res[0].start + 0x1000; 299 cf_slot0_res[0].end = cf_slot0_res[0].start + 0x1000;
310 } 300 }
311 301
312 /* Read the NAND resources from the device controller */ 302 /* Read the NAND resources from the device controller */
313 nand_slot0_res[0].start = readl(CFG_DC_DEV2 + CFG_DC_DEVBASE); 303 nand_slot0_res[0].start = readl(IDT434_REG_BASE + DEV2BASE);
314 nand_slot0_res[0].end = nand_slot0_res[0].start + 0x1000; 304 nand_slot0_res[0].end = nand_slot0_res[0].start + 0x1000;
315 305
316 /* Initialise the NAND device */ 306 /* Initialise the NAND device */
diff --git a/arch/mips/sgi-ip22/ip22-platform.c b/arch/mips/sgi-ip22/ip22-platform.c
index 60141235ec4..52486c4d2b0 100644
--- a/arch/mips/sgi-ip22/ip22-platform.c
+++ b/arch/mips/sgi-ip22/ip22-platform.c
@@ -150,7 +150,7 @@ static int __init sgiseeq_devinit(void)
150 return res; 150 return res;
151 151
152 /* Second HPC is missing? */ 152 /* Second HPC is missing? */
153 if (!ip22_is_fullhouse() || 153 if (ip22_is_fullhouse() ||
154 get_dbe(tmp, (unsigned int *)&hpc3c1->pbdma[1])) 154 get_dbe(tmp, (unsigned int *)&hpc3c1->pbdma[1]))
155 return 0; 155 return 0;
156 156
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c
index 1bc57d0f4c5..fe6bee09cec 100644
--- a/arch/mips/txx9/generic/setup.c
+++ b/arch/mips/txx9/generic/setup.c
@@ -53,6 +53,7 @@ txx9_reg_res_init(unsigned int pcode, unsigned long base, unsigned long size)
53 txx9_ce_res[i].name = txx9_ce_res_name[i]; 53 txx9_ce_res[i].name = txx9_ce_res_name[i];
54 } 54 }
55 55
56 txx9_pcode = pcode;
56 sprintf(txx9_pcode_str, "TX%x", pcode); 57 sprintf(txx9_pcode_str, "TX%x", pcode);
57 if (base) { 58 if (base) {
58 txx9_reg_res.start = base & 0xfffffffffULL; 59 txx9_reg_res.start = base & 0xfffffffffULL;
@@ -328,6 +329,9 @@ void __init arch_init_irq(void)
328 329
329void __init plat_time_init(void) 330void __init plat_time_init(void)
330{ 331{
332#ifdef CONFIG_CPU_TX49XX
333 mips_hpt_frequency = txx9_cpu_clock / 2;
334#endif
331 txx9_board_vec->time_init(); 335 txx9_board_vec->time_init();
332} 336}
333 337
diff --git a/arch/mips/vr41xx/common/irq.c b/arch/mips/vr41xx/common/irq.c
index cba36a247e3..92dd1a0ca35 100644
--- a/arch/mips/vr41xx/common/irq.c
+++ b/arch/mips/vr41xx/common/irq.c
@@ -72,6 +72,7 @@ static void irq_dispatch(unsigned int irq)
72 cascade = irq_cascade + irq; 72 cascade = irq_cascade + irq;
73 if (cascade->get_irq != NULL) { 73 if (cascade->get_irq != NULL) {
74 unsigned int source_irq = irq; 74 unsigned int source_irq = irq;
75 int ret;
75 desc = irq_desc + source_irq; 76 desc = irq_desc + source_irq;
76 if (desc->chip->mask_ack) 77 if (desc->chip->mask_ack)
77 desc->chip->mask_ack(source_irq); 78 desc->chip->mask_ack(source_irq);
@@ -79,8 +80,9 @@ static void irq_dispatch(unsigned int irq)
79 desc->chip->mask(source_irq); 80 desc->chip->mask(source_irq);
80 desc->chip->ack(source_irq); 81 desc->chip->ack(source_irq);
81 } 82 }
82 irq = cascade->get_irq(irq); 83 ret = cascade->get_irq(irq);
83 if (irq < 0) 84 irq = ret;
85 if (ret < 0)
84 atomic_inc(&irq_err_count); 86 atomic_inc(&irq_err_count);
85 else 87 else
86 irq_dispatch(irq); 88 irq_dispatch(irq);
diff --git a/arch/mn10300/kernel/irq.c b/arch/mn10300/kernel/irq.c
index 761c434a248..56c64ccc9c2 100644
--- a/arch/mn10300/kernel/irq.c
+++ b/arch/mn10300/kernel/irq.c
@@ -20,22 +20,8 @@ EXPORT_SYMBOL(__mn10300_irq_enabled_epsw);
20atomic_t irq_err_count; 20atomic_t irq_err_count;
21 21
22/* 22/*
23 * MN10300 INTC controller operations 23 * MN10300 interrupt controller operations
24 */ 24 */
25static void mn10300_cpupic_disable(unsigned int irq)
26{
27 u16 tmp = GxICR(irq);
28 GxICR(irq) = (tmp & GxICR_LEVEL) | GxICR_DETECT;
29 tmp = GxICR(irq);
30}
31
32static void mn10300_cpupic_enable(unsigned int irq)
33{
34 u16 tmp = GxICR(irq);
35 GxICR(irq) = (tmp & GxICR_LEVEL) | GxICR_ENABLE;
36 tmp = GxICR(irq);
37}
38
39static void mn10300_cpupic_ack(unsigned int irq) 25static void mn10300_cpupic_ack(unsigned int irq)
40{ 26{
41 u16 tmp; 27 u16 tmp;
@@ -60,26 +46,54 @@ static void mn10300_cpupic_mask_ack(unsigned int irq)
60static void mn10300_cpupic_unmask(unsigned int irq) 46static void mn10300_cpupic_unmask(unsigned int irq)
61{ 47{
62 u16 tmp = GxICR(irq); 48 u16 tmp = GxICR(irq);
63 GxICR(irq) = (tmp & GxICR_LEVEL) | GxICR_ENABLE | GxICR_DETECT; 49 GxICR(irq) = (tmp & GxICR_LEVEL) | GxICR_ENABLE;
64 tmp = GxICR(irq); 50 tmp = GxICR(irq);
65} 51}
66 52
67static void mn10300_cpupic_end(unsigned int irq) 53static void mn10300_cpupic_unmask_clear(unsigned int irq)
68{ 54{
55 /* the MN10300 PIC latches its interrupt request bit, even after the
56 * device has ceased to assert its interrupt line and the interrupt
57 * channel has been disabled in the PIC, so for level-triggered
58 * interrupts we need to clear the request bit when we re-enable */
69 u16 tmp = GxICR(irq); 59 u16 tmp = GxICR(irq);
70 GxICR(irq) = (tmp & GxICR_LEVEL) | GxICR_ENABLE; 60 GxICR(irq) = (tmp & GxICR_LEVEL) | GxICR_ENABLE | GxICR_DETECT;
71 tmp = GxICR(irq); 61 tmp = GxICR(irq);
72} 62}
73 63
74static struct irq_chip mn10300_cpu_pic = { 64/*
75 .name = "cpu", 65 * MN10300 PIC level-triggered IRQ handling.
76 .disable = mn10300_cpupic_disable, 66 *
77 .enable = mn10300_cpupic_enable, 67 * The PIC has no 'ACK' function per se. It is possible to clear individual
68 * channel latches, but each latch relatches whether or not the channel is
69 * masked, so we need to clear the latch when we unmask the channel.
70 *
71 * Also for this reason, we don't supply an ack() op (it's unused anyway if
72 * mask_ack() is provided), and mask_ack() just masks.
73 */
74static struct irq_chip mn10300_cpu_pic_level = {
75 .name = "cpu_l",
76 .disable = mn10300_cpupic_mask,
77 .enable = mn10300_cpupic_unmask_clear,
78 .ack = NULL,
79 .mask = mn10300_cpupic_mask,
80 .mask_ack = mn10300_cpupic_mask,
81 .unmask = mn10300_cpupic_unmask_clear,
82};
83
84/*
85 * MN10300 PIC edge-triggered IRQ handling.
86 *
87 * We use the latch clearing function of the PIC as the 'ACK' function.
88 */
89static struct irq_chip mn10300_cpu_pic_edge = {
90 .name = "cpu_e",
91 .disable = mn10300_cpupic_mask,
92 .enable = mn10300_cpupic_unmask,
78 .ack = mn10300_cpupic_ack, 93 .ack = mn10300_cpupic_ack,
79 .mask = mn10300_cpupic_mask, 94 .mask = mn10300_cpupic_mask,
80 .mask_ack = mn10300_cpupic_mask_ack, 95 .mask_ack = mn10300_cpupic_mask_ack,
81 .unmask = mn10300_cpupic_unmask, 96 .unmask = mn10300_cpupic_unmask,
82 .end = mn10300_cpupic_end,
83}; 97};
84 98
85/* 99/*
@@ -114,7 +128,8 @@ void set_intr_level(int irq, u16 level)
114 */ 128 */
115void set_intr_postackable(int irq) 129void set_intr_postackable(int irq)
116{ 130{
117 set_irq_handler(irq, handle_level_irq); 131 set_irq_chip_and_handler(irq, &mn10300_cpu_pic_level,
132 handle_level_irq);
118} 133}
119 134
120/* 135/*
@@ -126,8 +141,12 @@ void __init init_IRQ(void)
126 141
127 for (irq = 0; irq < NR_IRQS; irq++) 142 for (irq = 0; irq < NR_IRQS; irq++)
128 if (irq_desc[irq].chip == &no_irq_type) 143 if (irq_desc[irq].chip == &no_irq_type)
129 set_irq_chip_and_handler(irq, &mn10300_cpu_pic, 144 /* due to the PIC latching interrupt requests, even
130 handle_edge_irq); 145 * when the IRQ is disabled, IRQ_PENDING is superfluous
146 * and we can use handle_level_irq() for edge-triggered
147 * interrupts */
148 set_irq_chip_and_handler(irq, &mn10300_cpu_pic_edge,
149 handle_level_irq);
131 unit_init_IRQ(); 150 unit_init_IRQ();
132} 151}
133 152
diff --git a/arch/mn10300/kernel/mn10300-serial.c b/arch/mn10300/kernel/mn10300-serial.c
index 8b054e7a8ae..aa07d0cd190 100644
--- a/arch/mn10300/kernel/mn10300-serial.c
+++ b/arch/mn10300/kernel/mn10300-serial.c
@@ -17,7 +17,6 @@ static const char serial_revdate[] = "2007-11-06";
17#define SUPPORT_SYSRQ 17#define SUPPORT_SYSRQ
18#endif 18#endif
19 19
20#include <linux/version.h>
21#include <linux/module.h> 20#include <linux/module.h>
22#include <linux/serial.h> 21#include <linux/serial.h>
23#include <linux/circ_buf.h> 22#include <linux/circ_buf.h>
diff --git a/arch/mn10300/kernel/time.c b/arch/mn10300/kernel/time.c
index babb7c2ac37..e4606586f94 100644
--- a/arch/mn10300/kernel/time.c
+++ b/arch/mn10300/kernel/time.c
@@ -1,6 +1,6 @@
1/* MN10300 Low level time management 1/* MN10300 Low level time management
2 * 2 *
3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved. 3 * Copyright (C) 2007-2008 Red Hat, Inc. All Rights Reserved.
4 * Written by David Howells (dhowells@redhat.com) 4 * Written by David Howells (dhowells@redhat.com)
5 * - Derived from arch/i386/kernel/time.c 5 * - Derived from arch/i386/kernel/time.c
6 * 6 *
@@ -16,6 +16,7 @@
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/smp.h> 17#include <linux/smp.h>
18#include <linux/profile.h> 18#include <linux/profile.h>
19#include <linux/cnt32_to_63.h>
19#include <asm/irq.h> 20#include <asm/irq.h>
20#include <asm/div64.h> 21#include <asm/div64.h>
21#include <asm/processor.h> 22#include <asm/processor.h>
@@ -40,27 +41,54 @@ static struct irqaction timer_irq = {
40 .name = "timer", 41 .name = "timer",
41}; 42};
42 43
44static unsigned long sched_clock_multiplier;
45
43/* 46/*
44 * scheduler clock - returns current time in nanosec units. 47 * scheduler clock - returns current time in nanosec units.
45 */ 48 */
46unsigned long long sched_clock(void) 49unsigned long long sched_clock(void)
47{ 50{
48 union { 51 union {
49 unsigned long long l; 52 unsigned long long ll;
50 u32 w[2]; 53 unsigned l[2];
51 } quot; 54 } tsc64, result;
55 unsigned long tsc, tmp;
56 unsigned product[3]; /* 96-bit intermediate value */
57
58 /* read the TSC value
59 */
60 tsc = 0 - get_cycles(); /* get_cycles() counts down */
52 61
53 quot.w[0] = mn10300_last_tsc - get_cycles(); 62 /* expand to 64-bits.
54 quot.w[1] = 1000000000; 63 * - sched_clock() must be called once a minute or better or the
64 * following will go horribly wrong - see cnt32_to_63()
65 */
66 tsc64.ll = cnt32_to_63(tsc) & 0x7fffffffffffffffULL;
55 67
56 asm("mulu %2,%3,%0,%1" 68 /* scale the 64-bit TSC value to a nanosecond value via a 96-bit
57 : "=r"(quot.w[1]), "=r"(quot.w[0]) 69 * intermediate
58 : "0"(quot.w[1]), "1"(quot.w[0]) 70 */
71 asm("mulu %2,%0,%3,%0 \n" /* LSW * mult -> 0:%3:%0 */
72 "mulu %2,%1,%2,%1 \n" /* MSW * mult -> %2:%1:0 */
73 "add %3,%1 \n"
74 "addc 0,%2 \n" /* result in %2:%1:%0 */
75 : "=r"(product[0]), "=r"(product[1]), "=r"(product[2]), "=r"(tmp)
76 : "0"(tsc64.l[0]), "1"(tsc64.l[1]), "2"(sched_clock_multiplier)
59 : "cc"); 77 : "cc");
60 78
61 do_div(quot.l, MN10300_TSCCLK); 79 result.l[0] = product[1] << 16 | product[0] >> 16;
80 result.l[1] = product[2] << 16 | product[1] >> 16;
62 81
63 return quot.l; 82 return result.ll;
83}
84
85/*
86 * initialise the scheduler clock
87 */
88static void __init mn10300_sched_clock_init(void)
89{
90 sched_clock_multiplier =
91 __muldiv64u(NSEC_PER_SEC, 1 << 16, MN10300_TSCCLK);
64} 92}
65 93
66/* 94/*
@@ -128,4 +156,6 @@ void __init time_init(void)
128 /* start the watchdog timer */ 156 /* start the watchdog timer */
129 watchdog_go(); 157 watchdog_go();
130#endif 158#endif
159
160 mn10300_sched_clock_init();
131} 161}
diff --git a/arch/mn10300/mm/fault.c b/arch/mn10300/mm/fault.c
index 78f092ca031..33cf25025da 100644
--- a/arch/mn10300/mm/fault.c
+++ b/arch/mn10300/mm/fault.c
@@ -174,7 +174,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long fault_code,
174 * If we're in an interrupt or have no user 174 * If we're in an interrupt or have no user
175 * context, we must not take the fault.. 175 * context, we must not take the fault..
176 */ 176 */
177 if (in_interrupt() || !mm) 177 if (in_atomic() || !mm)
178 goto no_context; 178 goto no_context;
179 179
180 down_read(&mm->mmap_sem); 180 down_read(&mm->mmap_sem);
diff --git a/arch/mn10300/unit-asb2303/unit-init.c b/arch/mn10300/unit-asb2303/unit-init.c
index 14b2c817cff..70e8cb4ea26 100644
--- a/arch/mn10300/unit-asb2303/unit-init.c
+++ b/arch/mn10300/unit-asb2303/unit-init.c
@@ -51,7 +51,7 @@ void __init unit_init_IRQ(void)
51 switch (GET_XIRQ_TRIGGER(extnum)) { 51 switch (GET_XIRQ_TRIGGER(extnum)) {
52 case XIRQ_TRIGGER_HILEVEL: 52 case XIRQ_TRIGGER_HILEVEL:
53 case XIRQ_TRIGGER_LOWLEVEL: 53 case XIRQ_TRIGGER_LOWLEVEL:
54 set_irq_handler(XIRQ2IRQ(extnum), handle_level_irq); 54 set_intr_postackable(XIRQ2IRQ(extnum));
55 break; 55 break;
56 default: 56 default:
57 break; 57 break;
diff --git a/arch/mn10300/unit-asb2305/unit-init.c b/arch/mn10300/unit-asb2305/unit-init.c
index 6a352414a35..72812a9439a 100644
--- a/arch/mn10300/unit-asb2305/unit-init.c
+++ b/arch/mn10300/unit-asb2305/unit-init.c
@@ -52,7 +52,7 @@ void __init unit_init_IRQ(void)
52 switch (GET_XIRQ_TRIGGER(extnum)) { 52 switch (GET_XIRQ_TRIGGER(extnum)) {
53 case XIRQ_TRIGGER_HILEVEL: 53 case XIRQ_TRIGGER_HILEVEL:
54 case XIRQ_TRIGGER_LOWLEVEL: 54 case XIRQ_TRIGGER_LOWLEVEL:
55 set_irq_handler(XIRQ2IRQ(extnum), handle_level_irq); 55 set_intr_postackable(XIRQ2IRQ(extnum));
56 break; 56 break;
57 default: 57 default:
58 break; 58 break;
diff --git a/arch/parisc/hpux/fs.c b/arch/parisc/hpux/fs.c
index 1263f00dc35..12c04c5e558 100644
--- a/arch/parisc/hpux/fs.c
+++ b/arch/parisc/hpux/fs.c
@@ -84,22 +84,28 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset,
84 if (reclen > buf->count) 84 if (reclen > buf->count)
85 return -EINVAL; 85 return -EINVAL;
86 d_ino = ino; 86 d_ino = ino;
87 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) 87 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
88 buf->error = -EOVERFLOW;
88 return -EOVERFLOW; 89 return -EOVERFLOW;
90 }
89 dirent = buf->previous; 91 dirent = buf->previous;
90 if (dirent) 92 if (dirent)
91 put_user(offset, &dirent->d_off); 93 if (put_user(offset, &dirent->d_off))
94 goto Efault;
92 dirent = buf->current_dir; 95 dirent = buf->current_dir;
96 if (put_user(d_ino, &dirent->d_ino) ||
97 put_user(reclen, &dirent->d_reclen) ||
98 put_user(namlen, &dirent->d_namlen) ||
99 copy_to_user(dirent->d_name, name, namlen) ||
100 put_user(0, dirent->d_name + namlen))
101 goto Efault;
93 buf->previous = dirent; 102 buf->previous = dirent;
94 put_user(d_ino, &dirent->d_ino); 103 buf->current_dir = (void __user *)dirent + reclen;
95 put_user(reclen, &dirent->d_reclen);
96 put_user(namlen, &dirent->d_namlen);
97 copy_to_user(dirent->d_name, name, namlen);
98 put_user(0, dirent->d_name + namlen);
99 dirent = (void __user *)dirent + reclen;
100 buf->current_dir = dirent;
101 buf->count -= reclen; 104 buf->count -= reclen;
102 return 0; 105 return 0;
106Efault:
107 buf->error = -EFAULT;
108 return -EFAULT;
103} 109}
104 110
105#undef NAME_OFFSET 111#undef NAME_OFFSET
@@ -126,8 +132,10 @@ int hpux_getdents(unsigned int fd, struct hpux_dirent __user *dirent, unsigned i
126 error = buf.error; 132 error = buf.error;
127 lastdirent = buf.previous; 133 lastdirent = buf.previous;
128 if (lastdirent) { 134 if (lastdirent) {
129 put_user(file->f_pos, &lastdirent->d_off); 135 if (put_user(file->f_pos, &lastdirent->d_off))
130 error = count - buf.count; 136 error = -EFAULT;
137 else
138 error = count - buf.count;
131 } 139 }
132 140
133out_putf: 141out_putf:
diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c
index fdacdd4341c..44138c3e6ea 100644
--- a/arch/parisc/kernel/module.c
+++ b/arch/parisc/kernel/module.c
@@ -47,7 +47,9 @@
47#include <linux/string.h> 47#include <linux/string.h>
48#include <linux/kernel.h> 48#include <linux/kernel.h>
49#include <linux/bug.h> 49#include <linux/bug.h>
50#include <linux/uaccess.h>
50 51
52#include <asm/sections.h>
51#include <asm/unwind.h> 53#include <asm/unwind.h>
52 54
53#if 0 55#if 0
@@ -860,3 +862,15 @@ void module_arch_cleanup(struct module *mod)
860 deregister_unwind_table(mod); 862 deregister_unwind_table(mod);
861 module_bug_cleanup(mod); 863 module_bug_cleanup(mod);
862} 864}
865
866#ifdef CONFIG_64BIT
867void *dereference_function_descriptor(void *ptr)
868{
869 Elf64_Fdesc *desc = ptr;
870 void *p;
871
872 if (!probe_kernel_address(&desc->addr, p))
873 ptr = p;
874 return ptr;
875}
876#endif
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 9155c9312c1..c6be19e9cea 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -116,6 +116,11 @@ ifeq ($(CONFIG_6xx),y)
116KBUILD_CFLAGS += -mcpu=powerpc 116KBUILD_CFLAGS += -mcpu=powerpc
117endif 117endif
118 118
119# Work around a gcc code-gen bug with -fno-omit-frame-pointer.
120ifeq ($(CONFIG_FTRACE),y)
121KBUILD_CFLAGS += -mno-sched-epilog
122endif
123
119cpu-as-$(CONFIG_4xx) += -Wa,-m405 124cpu-as-$(CONFIG_4xx) += -Wa,-m405
120cpu-as-$(CONFIG_6xx) += -Wa,-maltivec 125cpu-as-$(CONFIG_6xx) += -Wa,-maltivec
121cpu-as-$(CONFIG_POWER4) += -Wa,-maltivec 126cpu-as-$(CONFIG_POWER4) += -Wa,-maltivec
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 14174aa2407..65d1a8454d2 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -49,7 +49,7 @@ zlib := inffast.c inflate.c inftrees.c
49zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h 49zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h
50zliblinuxheader := zlib.h zconf.h zutil.h 50zliblinuxheader := zlib.h zconf.h zutil.h
51 51
52$(addprefix $(obj)/,$(zlib) gunzip_util.o main.o): \ 52$(addprefix $(obj)/,$(zlib) cuboot-c2k.o gunzip_util.o main.o prpmc2800.o): \
53 $(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader)) 53 $(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader))
54 54
55src-libfdt := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c 55src-libfdt := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c
@@ -195,7 +195,7 @@ image-$(CONFIG_PPC_CELLEB) += zImage.pseries
195image-$(CONFIG_PPC_CHRP) += zImage.chrp 195image-$(CONFIG_PPC_CHRP) += zImage.chrp
196image-$(CONFIG_PPC_EFIKA) += zImage.chrp 196image-$(CONFIG_PPC_EFIKA) += zImage.chrp
197image-$(CONFIG_PPC_PMAC) += zImage.pmac 197image-$(CONFIG_PPC_PMAC) += zImage.pmac
198image-$(CONFIG_PPC_HOLLY) += zImage.holly 198image-$(CONFIG_PPC_HOLLY) += dtbImage.holly
199image-$(CONFIG_PPC_PRPMC2800) += dtbImage.prpmc2800 199image-$(CONFIG_PPC_PRPMC2800) += dtbImage.prpmc2800
200image-$(CONFIG_PPC_ISERIES) += zImage.iseries 200image-$(CONFIG_PPC_ISERIES) += zImage.iseries
201image-$(CONFIG_DEFAULT_UIMAGE) += uImage 201image-$(CONFIG_DEFAULT_UIMAGE) += uImage
diff --git a/arch/powerpc/boot/dts/holly.dts b/arch/powerpc/boot/dts/holly.dts
index f87fe7b9ced..c6e11ebeceb 100644
--- a/arch/powerpc/boot/dts/holly.dts
+++ b/arch/powerpc/boot/dts/holly.dts
@@ -133,61 +133,61 @@
133 reg = <0x00007400 0x00000400>; 133 reg = <0x00007400 0x00000400>;
134 big-endian; 134 big-endian;
135 }; 135 };
136 };
136 137
137 pci@1000 { 138 pci@c0001000 {
138 device_type = "pci"; 139 device_type = "pci";
139 compatible = "tsi109-pci", "tsi108-pci"; 140 compatible = "tsi109-pci", "tsi108-pci";
140 #interrupt-cells = <1>; 141 #interrupt-cells = <1>;
141 #size-cells = <2>; 142 #size-cells = <2>;
142 #address-cells = <3>; 143 #address-cells = <3>;
143 reg = <0x00001000 0x00001000>; 144 reg = <0xc0001000 0x00001000>;
144 bus-range = <0x0 0x0>; 145 bus-range = <0x0 0x0>;
145 /*----------------------------------------------------+ 146 /*----------------------------------------------------+
146 | PCI memory range. 147 | PCI memory range.
147 | 01 denotes I/O space 148 | 01 denotes I/O space
148 | 02 denotes 32-bit memory space 149 | 02 denotes 32-bit memory space
149 +----------------------------------------------------*/ 150 +----------------------------------------------------*/
150 ranges = <0x02000000 0x00000000 0x40000000 0x40000000 0x00000000 0x10000000 151 ranges = <0x02000000 0x00000000 0x40000000 0x40000000 0x00000000 0x10000000
151 0x01000000 0x00000000 0x00000000 0x7e000000 0x00000000 0x00010000>; 152 0x01000000 0x00000000 0x00000000 0x7e000000 0x00000000 0x00010000>;
152 clock-frequency = <133333332>; 153 clock-frequency = <133333332>;
153 interrupt-parent = <&MPIC>; 154 interrupt-parent = <&MPIC>;
155 interrupts = <0x17 0x2>;
156 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
157 /*----------------------------------------------------+
158 | The INTA, INTB, INTC, INTD are shared.
159 +----------------------------------------------------*/
160 interrupt-map = <
161 0x800 0x0 0x0 0x1 &RT0 0x24 0x0
162 0x800 0x0 0x0 0x2 &RT0 0x25 0x0
163 0x800 0x0 0x0 0x3 &RT0 0x26 0x0
164 0x800 0x0 0x0 0x4 &RT0 0x27 0x0
165
166 0x1000 0x0 0x0 0x1 &RT0 0x25 0x0
167 0x1000 0x0 0x0 0x2 &RT0 0x26 0x0
168 0x1000 0x0 0x0 0x3 &RT0 0x27 0x0
169 0x1000 0x0 0x0 0x4 &RT0 0x24 0x0
170
171 0x1800 0x0 0x0 0x1 &RT0 0x26 0x0
172 0x1800 0x0 0x0 0x2 &RT0 0x27 0x0
173 0x1800 0x0 0x0 0x3 &RT0 0x24 0x0
174 0x1800 0x0 0x0 0x4 &RT0 0x25 0x0
175
176 0x2000 0x0 0x0 0x1 &RT0 0x27 0x0
177 0x2000 0x0 0x0 0x2 &RT0 0x24 0x0
178 0x2000 0x0 0x0 0x3 &RT0 0x25 0x0
179 0x2000 0x0 0x0 0x4 &RT0 0x26 0x0
180 >;
181
182 RT0: router@1180 {
183 device_type = "pic-router";
184 interrupt-controller;
185 big-endian;
186 clock-frequency = <0>;
187 #address-cells = <0>;
188 #interrupt-cells = <2>;
154 interrupts = <0x17 0x2>; 189 interrupts = <0x17 0x2>;
155 interrupt-map-mask = <0xf800 0x0 0x0 0x7>; 190 interrupt-parent = <&MPIC>;
156 /*----------------------------------------------------+
157 | The INTA, INTB, INTC, INTD are shared.
158 +----------------------------------------------------*/
159 interrupt-map = <
160 0x800 0x0 0x0 0x1 &RT0 0x24 0x0
161 0x800 0x0 0x0 0x2 &RT0 0x25 0x0
162 0x800 0x0 0x0 0x3 &RT0 0x26 0x0
163 0x800 0x0 0x0 0x4 &RT0 0x27 0x0
164
165 0x1000 0x0 0x0 0x1 &RT0 0x25 0x0
166 0x1000 0x0 0x0 0x2 &RT0 0x26 0x0
167 0x1000 0x0 0x0 0x3 &RT0 0x27 0x0
168 0x1000 0x0 0x0 0x4 &RT0 0x24 0x0
169
170 0x1800 0x0 0x0 0x1 &RT0 0x26 0x0
171 0x1800 0x0 0x0 0x2 &RT0 0x27 0x0
172 0x1800 0x0 0x0 0x3 &RT0 0x24 0x0
173 0x1800 0x0 0x0 0x4 &RT0 0x25 0x0
174
175 0x2000 0x0 0x0 0x1 &RT0 0x27 0x0
176 0x2000 0x0 0x0 0x2 &RT0 0x24 0x0
177 0x2000 0x0 0x0 0x3 &RT0 0x25 0x0
178 0x2000 0x0 0x0 0x4 &RT0 0x26 0x0
179 >;
180
181 RT0: router@1180 {
182 device_type = "pic-router";
183 interrupt-controller;
184 big-endian;
185 clock-frequency = <0>;
186 #address-cells = <0>;
187 #interrupt-cells = <2>;
188 interrupts = <0x17 0x2>;
189 interrupt-parent = <&MPIC>;
190 };
191 }; 191 };
192 }; 192 };
193 193
diff --git a/arch/powerpc/boot/dts/mpc8610_hpcd.dts b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
index 3b3a1062cb2..584a4f184eb 100644
--- a/arch/powerpc/boot/dts/mpc8610_hpcd.dts
+++ b/arch/powerpc/boot/dts/mpc8610_hpcd.dts
@@ -281,7 +281,7 @@
281 cell-index = <0>; 281 cell-index = <0>;
282 reg = <0x0 0x80>; 282 reg = <0x0 0x80>;
283 interrupt-parent = <&mpic>; 283 interrupt-parent = <&mpic>;
284 interrupts = <60 2>; 284 interrupts = <76 2>;
285 }; 285 };
286 dma-channel@1 { 286 dma-channel@1 {
287 compatible = "fsl,mpc8610-dma-channel", 287 compatible = "fsl,mpc8610-dma-channel",
@@ -289,7 +289,7 @@
289 cell-index = <1>; 289 cell-index = <1>;
290 reg = <0x80 0x80>; 290 reg = <0x80 0x80>;
291 interrupt-parent = <&mpic>; 291 interrupt-parent = <&mpic>;
292 interrupts = <61 2>; 292 interrupts = <77 2>;
293 }; 293 };
294 dma-channel@2 { 294 dma-channel@2 {
295 compatible = "fsl,mpc8610-dma-channel", 295 compatible = "fsl,mpc8610-dma-channel",
@@ -297,7 +297,7 @@
297 cell-index = <2>; 297 cell-index = <2>;
298 reg = <0x100 0x80>; 298 reg = <0x100 0x80>;
299 interrupt-parent = <&mpic>; 299 interrupt-parent = <&mpic>;
300 interrupts = <62 2>; 300 interrupts = <78 2>;
301 }; 301 };
302 dma-channel@3 { 302 dma-channel@3 {
303 compatible = "fsl,mpc8610-dma-channel", 303 compatible = "fsl,mpc8610-dma-channel",
@@ -305,7 +305,7 @@
305 cell-index = <3>; 305 cell-index = <3>;
306 reg = <0x180 0x80>; 306 reg = <0x180 0x80>;
307 interrupt-parent = <&mpic>; 307 interrupt-parent = <&mpic>;
308 interrupts = <63 2>; 308 interrupts = <79 2>;
309 }; 309 };
310 }; 310 };
311 311
diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn.dts b/arch/powerpc/boot/dts/mpc8641_hpcn.dts
index ae08761ffff..d665e767822 100644
--- a/arch/powerpc/boot/dts/mpc8641_hpcn.dts
+++ b/arch/powerpc/boot/dts/mpc8641_hpcn.dts
@@ -411,7 +411,7 @@
411 0xe000 0 0 1 &i8259 12 2 411 0xe000 0 0 1 &i8259 12 2
412 0xe100 0 0 2 &i8259 9 2 412 0xe100 0 0 2 &i8259 9 2
413 0xe200 0 0 3 &i8259 10 2 413 0xe200 0 0 3 &i8259 10 2
414 0xe300 0 0 4 &i8259 112 414 0xe300 0 0 4 &i8259 11 2
415 415
416 // IDSEL 0x1d Audio 416 // IDSEL 0x1d Audio
417 0xe800 0 0 1 &i8259 6 2 417 0xe800 0 0 1 &i8259 6 2
diff --git a/arch/powerpc/boot/dts/tqm8548-bigflash.dts b/arch/powerpc/boot/dts/tqm8548-bigflash.dts
index 64d2d5bbcdf..4199e89b4e5 100644
--- a/arch/powerpc/boot/dts/tqm8548-bigflash.dts
+++ b/arch/powerpc/boot/dts/tqm8548-bigflash.dts
@@ -50,13 +50,14 @@
50 reg = <0x00000000 0x00000000>; // Filled in by U-Boot 50 reg = <0x00000000 0x00000000>; // Filled in by U-Boot
51 }; 51 };
52 52
53 soc8548@a0000000 { 53 soc@a0000000 {
54 #address-cells = <1>; 54 #address-cells = <1>;
55 #size-cells = <1>; 55 #size-cells = <1>;
56 device_type = "soc"; 56 device_type = "soc";
57 ranges = <0x0 0xa0000000 0x100000>; 57 ranges = <0x0 0xa0000000 0x100000>;
58 reg = <0xa0000000 0x1000>; // CCSRBAR 58 reg = <0xa0000000 0x1000>; // CCSRBAR
59 bus-frequency = <0>; 59 bus-frequency = <0>;
60 compatible = "fsl,mpc8548-immr", "simple-bus";
60 61
61 memory-controller@2000 { 62 memory-controller@2000 {
62 compatible = "fsl,mpc8548-memory-controller"; 63 compatible = "fsl,mpc8548-memory-controller";
@@ -83,6 +84,11 @@
83 interrupts = <43 2>; 84 interrupts = <43 2>;
84 interrupt-parent = <&mpic>; 85 interrupt-parent = <&mpic>;
85 dfsrr; 86 dfsrr;
87
88 rtc@68 {
89 compatible = "dallas,ds1337";
90 reg = <0x68>;
91 };
86 }; 92 };
87 93
88 i2c@3100 { 94 i2c@3100 {
diff --git a/arch/powerpc/boot/dts/tqm8548.dts b/arch/powerpc/boot/dts/tqm8548.dts
index 2563112cabd..58ee4185454 100644
--- a/arch/powerpc/boot/dts/tqm8548.dts
+++ b/arch/powerpc/boot/dts/tqm8548.dts
@@ -50,13 +50,14 @@
50 reg = <0x00000000 0x00000000>; // Filled in by U-Boot 50 reg = <0x00000000 0x00000000>; // Filled in by U-Boot
51 }; 51 };
52 52
53 soc8548@e0000000 { 53 soc@e0000000 {
54 #address-cells = <1>; 54 #address-cells = <1>;
55 #size-cells = <1>; 55 #size-cells = <1>;
56 device_type = "soc"; 56 device_type = "soc";
57 ranges = <0x0 0xe0000000 0x100000>; 57 ranges = <0x0 0xe0000000 0x100000>;
58 reg = <0xe0000000 0x1000>; // CCSRBAR 58 reg = <0xe0000000 0x1000>; // CCSRBAR
59 bus-frequency = <0>; 59 bus-frequency = <0>;
60 compatible = "fsl,mpc8548-immr", "simple-bus";
60 61
61 memory-controller@2000 { 62 memory-controller@2000 {
62 compatible = "fsl,mpc8548-memory-controller"; 63 compatible = "fsl,mpc8548-memory-controller";
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
index 644bf9d4ea0..965c237c122 100755
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
@@ -165,7 +165,7 @@ cuboot*)
165 binary=y 165 binary=y
166 gzip= 166 gzip=
167 case "$platform" in 167 case "$platform" in
168 *-mpc885ads|*-adder875*|*-ep88xc) 168 *-mpc866ads|*-mpc885ads|*-adder875*|*-ep88xc)
169 platformo=$object/cuboot-8xx.o 169 platformo=$object/cuboot-8xx.o
170 ;; 170 ;;
171 *5200*|*-motionpro) 171 *5200*|*-motionpro)
diff --git a/arch/powerpc/configs/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig
index 60bb4d106c8..5e6780a088c 100644
--- a/arch/powerpc/configs/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.25-rc6 3# Linux kernel version: 2.6.27-rc4
4# Tue May 6 02:21:00 2008 4# Thu Aug 21 00:52:01 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18CONFIG_FSL_EMB_PERFMON=y 18CONFIG_FSL_EMB_PERFMON=y
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -31,6 +32,9 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 40CONFIG_GENERIC_HWEIGHT=y
@@ -50,6 +54,9 @@ CONFIG_AUDIT_ARCH=y
50CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
51# CONFIG_DEFAULT_UIMAGE is not set 55# CONFIG_DEFAULT_UIMAGE is not set
52CONFIG_REDBOOT=y 56CONFIG_REDBOOT=y
57CONFIG_HIBERNATE_32=y
58CONFIG_ARCH_HIBERNATION_POSSIBLE=y
59CONFIG_ARCH_SUSPEND_POSSIBLE=y
53# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -92,6 +99,7 @@ CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 99CONFIG_PRINTK=y
93CONFIG_BUG=y 100CONFIG_BUG=y
94CONFIG_ELF_CORE=y 101CONFIG_ELF_CORE=y
102CONFIG_PCSPKR_PLATFORM=y
95CONFIG_COMPAT_BRK=y 103CONFIG_COMPAT_BRK=y
96CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
97CONFIG_FUTEX=y 105CONFIG_FUTEX=y
@@ -109,24 +117,33 @@ CONFIG_SLUB=y
109# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set 118# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
112CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_DMA_ATTRS is not set
126# CONFIG_USE_GENERIC_SMP_HELPERS is not set
127# CONFIG_HAVE_CLK is not set
114CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
115CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
117# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
118CONFIG_BASE_SMALL=0 133CONFIG_BASE_SMALL=0
119CONFIG_MODULES=y 134CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set
120CONFIG_MODULE_UNLOAD=y 136CONFIG_MODULE_UNLOAD=y
121# CONFIG_MODULE_FORCE_UNLOAD is not set 137# CONFIG_MODULE_FORCE_UNLOAD is not set
122# CONFIG_MODVERSIONS is not set 138# CONFIG_MODVERSIONS is not set
123# CONFIG_MODULE_SRCVERSION_ALL is not set 139# CONFIG_MODULE_SRCVERSION_ALL is not set
124# CONFIG_KMOD is not set 140CONFIG_KMOD=y
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 143# CONFIG_BLK_DEV_IO_TRACE is not set
128# CONFIG_LSF is not set 144# CONFIG_LSF is not set
129# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set
130 147
131# 148#
132# IO Schedulers 149# IO Schedulers
@@ -145,38 +162,49 @@ CONFIG_CLASSIC_RCU=y
145# 162#
146# Platform support 163# Platform support
147# 164#
148# CONFIG_PPC_MULTIPLATFORM is not set 165CONFIG_PPC_MULTIPLATFORM=y
149# CONFIG_PPC_82xx is not set 166CONFIG_CLASSIC32=y
150CONFIG_PPC_83xx=y 167CONFIG_PPC_CHRP=y
151# CONFIG_PPC_86xx is not set 168# CONFIG_MPC5121_ADS is not set
152# CONFIG_PPC_MPC512x is not set 169# CONFIG_MPC5121_GENERIC is not set
153# CONFIG_PPC_MPC5121 is not set 170# CONFIG_PPC_MPC52xx is not set
171CONFIG_PPC_PMAC=y
154# CONFIG_PPC_CELL is not set 172# CONFIG_PPC_CELL is not set
155# CONFIG_PPC_CELL_NATIVE is not set 173# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set
156# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
157CONFIG_MPC83xx=y 176CONFIG_PPC_83xx=y
158# CONFIG_MPC831x_RDB is not set 177# CONFIG_MPC831x_RDB is not set
159# CONFIG_MPC832x_MDS is not set 178# CONFIG_MPC832x_MDS is not set
160# CONFIG_MPC832x_RDB is not set 179# CONFIG_MPC832x_RDB is not set
161# CONFIG_MPC834x_MDS is not set 180# CONFIG_MPC834x_MDS is not set
162# CONFIG_MPC834x_ITX is not set 181# CONFIG_MPC834x_ITX is not set
163# CONFIG_MPC836x_MDS is not set 182# CONFIG_MPC836x_MDS is not set
183# CONFIG_MPC836x_RDK is not set
164# CONFIG_MPC837x_MDS is not set 184# CONFIG_MPC837x_MDS is not set
165# CONFIG_MPC837x_RDB is not set 185# CONFIG_MPC837x_RDB is not set
166# CONFIG_SBC834x is not set 186# CONFIG_SBC834x is not set
167CONFIG_ASP834x=y 187CONFIG_ASP834x=y
168CONFIG_PPC_MPC834x=y 188CONFIG_PPC_MPC834x=y
189# CONFIG_PPC_86xx is not set
190# CONFIG_EMBEDDED6xx is not set
191CONFIG_PPC_NATIVE=y
192# CONFIG_UDBG_RTAS_CONSOLE is not set
169CONFIG_IPIC=y 193CONFIG_IPIC=y
170# CONFIG_MPIC is not set 194CONFIG_MPIC=y
171# CONFIG_MPIC_WEIRD is not set 195# CONFIG_MPIC_WEIRD is not set
172# CONFIG_PPC_I8259 is not set 196CONFIG_PPC_I8259=y
173# CONFIG_PPC_RTAS is not set 197CONFIG_PPC_RTAS=y
198# CONFIG_RTAS_ERROR_LOGGING is not set
199CONFIG_RTAS_PROC=y
174# CONFIG_MMIO_NVRAM is not set 200# CONFIG_MMIO_NVRAM is not set
175# CONFIG_PPC_MPC106 is not set 201CONFIG_PPC_MPC106=y
176# CONFIG_PPC_970_NAP is not set 202# CONFIG_PPC_970_NAP is not set
177# CONFIG_PPC_INDIRECT_IO is not set 203# CONFIG_PPC_INDIRECT_IO is not set
178# CONFIG_GENERIC_IOMAP is not set 204# CONFIG_GENERIC_IOMAP is not set
179# CONFIG_CPU_FREQ is not set 205# CONFIG_CPU_FREQ is not set
206# CONFIG_PPC601_SYNC_FIX is not set
207# CONFIG_TAU is not set
180# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
181 209
182# 210#
@@ -192,7 +220,7 @@ CONFIG_HZ_250=y
192# CONFIG_HZ_300 is not set 220# CONFIG_HZ_300 is not set
193# CONFIG_HZ_1000 is not set 221# CONFIG_HZ_1000 is not set
194CONFIG_HZ=250 222CONFIG_HZ=250
195# CONFIG_SCHED_HRTICK is not set 223CONFIG_SCHED_HRTICK=y
196CONFIG_PREEMPT_NONE=y 224CONFIG_PREEMPT_NONE=y
197# CONFIG_PREEMPT_VOLUNTARY is not set 225# CONFIG_PREEMPT_VOLUNTARY is not set
198# CONFIG_PREEMPT is not set 226# CONFIG_PREEMPT is not set
@@ -202,6 +230,7 @@ CONFIG_BINFMT_ELF=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
203CONFIG_ARCH_HAS_WALK_MEMORY=y 231CONFIG_ARCH_HAS_WALK_MEMORY=y
204CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 232CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
233# CONFIG_KEXEC is not set
205CONFIG_ARCH_FLATMEM_ENABLE=y 234CONFIG_ARCH_FLATMEM_ENABLE=y
206CONFIG_ARCH_POPULATES_NODE_MAP=y 235CONFIG_ARCH_POPULATES_NODE_MAP=y
207CONFIG_SELECT_MEMORY_MODEL=y 236CONFIG_SELECT_MEMORY_MODEL=y
@@ -212,13 +241,17 @@ CONFIG_FLATMEM=y
212CONFIG_FLAT_NODE_MEM_MAP=y 241CONFIG_FLAT_NODE_MEM_MAP=y
213# CONFIG_SPARSEMEM_STATIC is not set 242# CONFIG_SPARSEMEM_STATIC is not set
214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 243# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
244CONFIG_PAGEFLAGS_EXTENDED=y
215CONFIG_SPLIT_PTLOCK_CPUS=4 245CONFIG_SPLIT_PTLOCK_CPUS=4
246CONFIG_MIGRATION=y
216# CONFIG_RESOURCES_64BIT is not set 247# CONFIG_RESOURCES_64BIT is not set
217CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
218CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
219CONFIG_VIRT_TO_BUS=y 250CONFIG_VIRT_TO_BUS=y
251CONFIG_FORCE_MAX_ZONEORDER=11
220CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
221# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
254CONFIG_EXTRA_TARGETS=""
222# CONFIG_PM is not set 255# CONFIG_PM is not set
223CONFIG_SECCOMP=y 256CONFIG_SECCOMP=y
224CONFIG_ISA_DMA_API=y 257CONFIG_ISA_DMA_API=y
@@ -226,10 +259,13 @@ CONFIG_ISA_DMA_API=y
226# 259#
227# Bus options 260# Bus options
228# 261#
262# CONFIG_ISA is not set
229CONFIG_ZONE_DMA=y 263CONFIG_ZONE_DMA=y
230CONFIG_GENERIC_ISA_DMA=y 264CONFIG_GENERIC_ISA_DMA=y
231CONFIG_PPC_INDIRECT_PCI=y 265CONFIG_PPC_INDIRECT_PCI=y
232CONFIG_FSL_SOC=y 266CONFIG_FSL_SOC=y
267CONFIG_FSL_PCI=y
268CONFIG_PPC_PCI_CHOICE=y
233CONFIG_PCI=y 269CONFIG_PCI=y
234CONFIG_PCI_DOMAINS=y 270CONFIG_PCI_DOMAINS=y
235CONFIG_PCI_SYSCALL=y 271CONFIG_PCI_SYSCALL=y
@@ -239,6 +275,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
239CONFIG_PCI_LEGACY=y 275CONFIG_PCI_LEGACY=y
240# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
241# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set
242 279
243# 280#
244# Advanced setup 281# Advanced setup
@@ -248,15 +285,11 @@ CONFIG_PCI_LEGACY=y
248# 285#
249# Default settings for advanced configuration options are used 286# Default settings for advanced configuration options are used
250# 287#
251CONFIG_HIGHMEM_START=0xfe000000
252CONFIG_LOWMEM_SIZE=0x30000000 288CONFIG_LOWMEM_SIZE=0x30000000
289CONFIG_PAGE_OFFSET=0xc0000000
253CONFIG_KERNEL_START=0xc0000000 290CONFIG_KERNEL_START=0xc0000000
291CONFIG_PHYSICAL_START=0x00000000
254CONFIG_TASK_SIZE=0xc0000000 292CONFIG_TASK_SIZE=0xc0000000
255CONFIG_BOOT_LOAD=0x00800000
256
257#
258# Networking
259#
260CONFIG_NET=y 293CONFIG_NET=y
261 294
262# 295#
@@ -300,8 +333,6 @@ CONFIG_TCP_CONG_CUBIC=y
300CONFIG_DEFAULT_TCP_CONG="cubic" 333CONFIG_DEFAULT_TCP_CONG="cubic"
301# CONFIG_TCP_MD5SIG is not set 334# CONFIG_TCP_MD5SIG is not set
302# CONFIG_IPV6 is not set 335# CONFIG_IPV6 is not set
303# CONFIG_INET6_XFRM_TUNNEL is not set
304# CONFIG_INET6_TUNNEL is not set
305# CONFIG_NETWORK_SECMARK is not set 336# CONFIG_NETWORK_SECMARK is not set
306# CONFIG_NETFILTER is not set 337# CONFIG_NETFILTER is not set
307# CONFIG_IP_DCCP is not set 338# CONFIG_IP_DCCP is not set
@@ -363,6 +394,7 @@ CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
363# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set 394# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
364# CONFIG_MTD_CMDLINE_PARTS is not set 395# CONFIG_MTD_CMDLINE_PARTS is not set
365CONFIG_MTD_OF_PARTS=y 396CONFIG_MTD_OF_PARTS=y
397# CONFIG_MTD_AR7_PARTS is not set
366 398
367# 399#
368# User Modules And Translation Layers 400# User Modules And Translation Layers
@@ -434,9 +466,11 @@ CONFIG_MTD_PHYSMAP_OF=y
434# 466#
435# CONFIG_MTD_UBI is not set 467# CONFIG_MTD_UBI is not set
436CONFIG_OF_DEVICE=y 468CONFIG_OF_DEVICE=y
469CONFIG_OF_I2C=y
437# CONFIG_PARPORT is not set 470# CONFIG_PARPORT is not set
438CONFIG_BLK_DEV=y 471CONFIG_BLK_DEV=y
439# CONFIG_BLK_DEV_FD is not set 472# CONFIG_BLK_DEV_FD is not set
473# CONFIG_MAC_FLOPPY is not set
440# CONFIG_BLK_CPQ_DA is not set 474# CONFIG_BLK_CPQ_DA is not set
441# CONFIG_BLK_CPQ_CISS_DA is not set 475# CONFIG_BLK_CPQ_CISS_DA is not set
442# CONFIG_BLK_DEV_DAC960 is not set 476# CONFIG_BLK_DEV_DAC960 is not set
@@ -453,12 +487,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
453# CONFIG_BLK_DEV_XIP is not set 487# CONFIG_BLK_DEV_XIP is not set
454# CONFIG_CDROM_PKTCDVD is not set 488# CONFIG_CDROM_PKTCDVD is not set
455# CONFIG_ATA_OVER_ETH is not set 489# CONFIG_ATA_OVER_ETH is not set
490# CONFIG_BLK_DEV_HD is not set
456CONFIG_MISC_DEVICES=y 491CONFIG_MISC_DEVICES=y
457# CONFIG_PHANTOM is not set 492# CONFIG_PHANTOM is not set
458# CONFIG_EEPROM_93CX6 is not set 493# CONFIG_EEPROM_93CX6 is not set
459# CONFIG_SGI_IOC4 is not set 494# CONFIG_SGI_IOC4 is not set
460# CONFIG_TIFM_CORE is not set 495# CONFIG_TIFM_CORE is not set
461# CONFIG_ENCLOSURE_SERVICES is not set 496# CONFIG_ENCLOSURE_SERVICES is not set
497# CONFIG_HP_ILO is not set
462CONFIG_HAVE_IDE=y 498CONFIG_HAVE_IDE=y
463# CONFIG_IDE is not set 499# CONFIG_IDE is not set
464 500
@@ -476,12 +512,15 @@ CONFIG_HAVE_IDE=y
476# 512#
477# IEEE 1394 (FireWire) support 513# IEEE 1394 (FireWire) support
478# 514#
515
516#
517# Enable only one of the two stacks, unless you know what you are doing
518#
479# CONFIG_FIREWIRE is not set 519# CONFIG_FIREWIRE is not set
480# CONFIG_IEEE1394 is not set 520# CONFIG_IEEE1394 is not set
481# CONFIG_I2O is not set 521# CONFIG_I2O is not set
482# CONFIG_MACINTOSH_DRIVERS is not set 522# CONFIG_MACINTOSH_DRIVERS is not set
483CONFIG_NETDEVICES=y 523CONFIG_NETDEVICES=y
484# CONFIG_NETDEVICES_MULTIQUEUE is not set
485# CONFIG_DUMMY is not set 524# CONFIG_DUMMY is not set
486# CONFIG_BONDING is not set 525# CONFIG_BONDING is not set
487# CONFIG_MACVLAN is not set 526# CONFIG_MACVLAN is not set
@@ -508,6 +547,8 @@ CONFIG_PHYLIB=y
508# CONFIG_MDIO_BITBANG is not set 547# CONFIG_MDIO_BITBANG is not set
509CONFIG_NET_ETHERNET=y 548CONFIG_NET_ETHERNET=y
510CONFIG_MII=y 549CONFIG_MII=y
550# CONFIG_MACE is not set
551# CONFIG_BMAC is not set
511# CONFIG_HAPPYMEAL is not set 552# CONFIG_HAPPYMEAL is not set
512# CONFIG_SUNGEM is not set 553# CONFIG_SUNGEM is not set
513# CONFIG_CASSINI is not set 554# CONFIG_CASSINI is not set
@@ -525,7 +566,6 @@ CONFIG_NETDEV_1000=y
525# CONFIG_DL2K is not set 566# CONFIG_DL2K is not set
526# CONFIG_E1000 is not set 567# CONFIG_E1000 is not set
527# CONFIG_E1000E is not set 568# CONFIG_E1000E is not set
528# CONFIG_E1000E_ENABLED is not set
529# CONFIG_IP1000 is not set 569# CONFIG_IP1000 is not set
530# CONFIG_IGB is not set 570# CONFIG_IGB is not set
531# CONFIG_NS83820 is not set 571# CONFIG_NS83820 is not set
@@ -535,14 +575,14 @@ CONFIG_NETDEV_1000=y
535# CONFIG_SIS190 is not set 575# CONFIG_SIS190 is not set
536# CONFIG_SKGE is not set 576# CONFIG_SKGE is not set
537# CONFIG_SKY2 is not set 577# CONFIG_SKY2 is not set
538# CONFIG_SK98LIN is not set
539# CONFIG_VIA_VELOCITY is not set 578# CONFIG_VIA_VELOCITY is not set
540# CONFIG_TIGON3 is not set 579# CONFIG_TIGON3 is not set
541# CONFIG_BNX2 is not set 580# CONFIG_BNX2 is not set
542CONFIG_GIANFAR=y 581CONFIG_GIANFAR=y
543# CONFIG_GFAR_NAPI is not set 582# CONFIG_MV643XX_ETH is not set
544# CONFIG_QLA3XXX is not set 583# CONFIG_QLA3XXX is not set
545# CONFIG_ATL1 is not set 584# CONFIG_ATL1 is not set
585# CONFIG_ATL1E is not set
546# CONFIG_NETDEV_10000 is not set 586# CONFIG_NETDEV_10000 is not set
547# CONFIG_TR is not set 587# CONFIG_TR is not set
548 588
@@ -551,6 +591,7 @@ CONFIG_GIANFAR=y
551# 591#
552# CONFIG_WLAN_PRE80211 is not set 592# CONFIG_WLAN_PRE80211 is not set
553# CONFIG_WLAN_80211 is not set 593# CONFIG_WLAN_80211 is not set
594# CONFIG_IWLWIFI_LEDS is not set
554 595
555# 596#
556# USB Network Adapters 597# USB Network Adapters
@@ -606,6 +647,7 @@ CONFIG_INPUT=y
606# Character devices 647# Character devices
607# 648#
608# CONFIG_VT is not set 649# CONFIG_VT is not set
650CONFIG_DEVKMEM=y
609# CONFIG_SERIAL_NONSTANDARD is not set 651# CONFIG_SERIAL_NONSTANDARD is not set
610# CONFIG_NOZOMI is not set 652# CONFIG_NOZOMI is not set
611 653
@@ -625,16 +667,17 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
625# CONFIG_SERIAL_UARTLITE is not set 667# CONFIG_SERIAL_UARTLITE is not set
626CONFIG_SERIAL_CORE=y 668CONFIG_SERIAL_CORE=y
627CONFIG_SERIAL_CORE_CONSOLE=y 669CONFIG_SERIAL_CORE_CONSOLE=y
670# CONFIG_SERIAL_PMACZILOG is not set
628# CONFIG_SERIAL_JSM is not set 671# CONFIG_SERIAL_JSM is not set
629# CONFIG_SERIAL_OF_PLATFORM is not set 672# CONFIG_SERIAL_OF_PLATFORM is not set
630CONFIG_UNIX98_PTYS=y 673CONFIG_UNIX98_PTYS=y
631CONFIG_LEGACY_PTYS=y 674CONFIG_LEGACY_PTYS=y
632CONFIG_LEGACY_PTY_COUNT=256 675CONFIG_LEGACY_PTY_COUNT=256
676# CONFIG_BRIQ_PANEL is not set
677# CONFIG_HVC_RTAS is not set
633# CONFIG_IPMI_HANDLER is not set 678# CONFIG_IPMI_HANDLER is not set
634# CONFIG_HW_RANDOM is not set 679# CONFIG_HW_RANDOM is not set
635# CONFIG_NVRAM is not set 680# CONFIG_NVRAM is not set
636CONFIG_GEN_RTC=y
637# CONFIG_GEN_RTC_X is not set
638# CONFIG_R3964 is not set 681# CONFIG_R3964 is not set
639# CONFIG_APPLICOM is not set 682# CONFIG_APPLICOM is not set
640# CONFIG_RAW_DRIVER is not set 683# CONFIG_RAW_DRIVER is not set
@@ -643,16 +686,14 @@ CONFIG_DEVPORT=y
643CONFIG_I2C=y 686CONFIG_I2C=y
644CONFIG_I2C_BOARDINFO=y 687CONFIG_I2C_BOARDINFO=y
645CONFIG_I2C_CHARDEV=y 688CONFIG_I2C_CHARDEV=y
689CONFIG_I2C_HELPER_AUTO=y
646 690
647# 691#
648# I2C Algorithms 692# I2C Hardware Bus support
649# 693#
650# CONFIG_I2C_ALGOBIT is not set
651# CONFIG_I2C_ALGOPCF is not set
652# CONFIG_I2C_ALGOPCA is not set
653 694
654# 695#
655# I2C Hardware Bus support 696# PC SMBus host controller drivers
656# 697#
657# CONFIG_I2C_ALI1535 is not set 698# CONFIG_I2C_ALI1535 is not set
658# CONFIG_I2C_ALI1563 is not set 699# CONFIG_I2C_ALI1563 is not set
@@ -660,50 +701,70 @@ CONFIG_I2C_CHARDEV=y
660# CONFIG_I2C_AMD756 is not set 701# CONFIG_I2C_AMD756 is not set
661# CONFIG_I2C_AMD8111 is not set 702# CONFIG_I2C_AMD8111 is not set
662# CONFIG_I2C_I801 is not set 703# CONFIG_I2C_I801 is not set
663# CONFIG_I2C_I810 is not set 704# CONFIG_I2C_ISCH is not set
664# CONFIG_I2C_PIIX4 is not set 705# CONFIG_I2C_PIIX4 is not set
665CONFIG_I2C_MPC=y
666# CONFIG_I2C_NFORCE2 is not set 706# CONFIG_I2C_NFORCE2 is not set
667# CONFIG_I2C_OCORES is not set
668# CONFIG_I2C_PARPORT_LIGHT is not set
669# CONFIG_I2C_PROSAVAGE is not set
670# CONFIG_I2C_SAVAGE4 is not set
671# CONFIG_I2C_SIMTEC is not set
672# CONFIG_I2C_SIS5595 is not set 707# CONFIG_I2C_SIS5595 is not set
673# CONFIG_I2C_SIS630 is not set 708# CONFIG_I2C_SIS630 is not set
674# CONFIG_I2C_SIS96X is not set 709# CONFIG_I2C_SIS96X is not set
675# CONFIG_I2C_TAOS_EVM is not set
676# CONFIG_I2C_STUB is not set
677# CONFIG_I2C_TINY_USB is not set
678# CONFIG_I2C_VIA is not set 710# CONFIG_I2C_VIA is not set
679# CONFIG_I2C_VIAPRO is not set 711# CONFIG_I2C_VIAPRO is not set
712
713#
714# Mac SMBus host controller drivers
715#
716# CONFIG_I2C_HYDRA is not set
717CONFIG_I2C_POWERMAC=y
718
719#
720# I2C system bus drivers (mostly embedded / system-on-chip)
721#
722CONFIG_I2C_MPC=y
723# CONFIG_I2C_OCORES is not set
724# CONFIG_I2C_SIMTEC is not set
725
726#
727# External I2C/SMBus adapter drivers
728#
729# CONFIG_I2C_PARPORT_LIGHT is not set
730# CONFIG_I2C_TAOS_EVM is not set
731# CONFIG_I2C_TINY_USB is not set
732
733#
734# Graphics adapter I2C/DDC channel drivers
735#
680# CONFIG_I2C_VOODOO3 is not set 736# CONFIG_I2C_VOODOO3 is not set
681 737
682# 738#
739# Other I2C/SMBus bus drivers
740#
741# CONFIG_I2C_PCA_PLATFORM is not set
742# CONFIG_I2C_STUB is not set
743
744#
683# Miscellaneous I2C Chip support 745# Miscellaneous I2C Chip support
684# 746#
685# CONFIG_DS1682 is not set 747# CONFIG_DS1682 is not set
748# CONFIG_AT24 is not set
686# CONFIG_SENSORS_EEPROM is not set 749# CONFIG_SENSORS_EEPROM is not set
687# CONFIG_SENSORS_PCF8574 is not set 750# CONFIG_SENSORS_PCF8574 is not set
688# CONFIG_PCF8575 is not set 751# CONFIG_PCF8575 is not set
752# CONFIG_SENSORS_PCA9539 is not set
689# CONFIG_SENSORS_PCF8591 is not set 753# CONFIG_SENSORS_PCF8591 is not set
690# CONFIG_TPS65010 is not set
691# CONFIG_SENSORS_MAX6875 is not set 754# CONFIG_SENSORS_MAX6875 is not set
692# CONFIG_SENSORS_TSL2550 is not set 755# CONFIG_SENSORS_TSL2550 is not set
693# CONFIG_I2C_DEBUG_CORE is not set 756# CONFIG_I2C_DEBUG_CORE is not set
694# CONFIG_I2C_DEBUG_ALGO is not set 757# CONFIG_I2C_DEBUG_ALGO is not set
695# CONFIG_I2C_DEBUG_BUS is not set 758# CONFIG_I2C_DEBUG_BUS is not set
696# CONFIG_I2C_DEBUG_CHIP is not set 759# CONFIG_I2C_DEBUG_CHIP is not set
697
698#
699# SPI support
700#
701# CONFIG_SPI is not set 760# CONFIG_SPI is not set
702# CONFIG_SPI_MASTER is not set 761CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
762# CONFIG_GPIOLIB is not set
703# CONFIG_W1 is not set 763# CONFIG_W1 is not set
704# CONFIG_POWER_SUPPLY is not set 764# CONFIG_POWER_SUPPLY is not set
705CONFIG_HWMON=y 765CONFIG_HWMON=y
706# CONFIG_HWMON_VID is not set 766# CONFIG_HWMON_VID is not set
767# CONFIG_SENSORS_AD7414 is not set
707# CONFIG_SENSORS_AD7418 is not set 768# CONFIG_SENSORS_AD7418 is not set
708# CONFIG_SENSORS_ADM1021 is not set 769# CONFIG_SENSORS_ADM1021 is not set
709# CONFIG_SENSORS_ADM1025 is not set 770# CONFIG_SENSORS_ADM1025 is not set
@@ -713,6 +774,7 @@ CONFIG_HWMON=y
713# CONFIG_SENSORS_ADM9240 is not set 774# CONFIG_SENSORS_ADM9240 is not set
714# CONFIG_SENSORS_ADT7470 is not set 775# CONFIG_SENSORS_ADT7470 is not set
715# CONFIG_SENSORS_ADT7473 is not set 776# CONFIG_SENSORS_ADT7473 is not set
777# CONFIG_SENSORS_AMS is not set
716# CONFIG_SENSORS_ATXP1 is not set 778# CONFIG_SENSORS_ATXP1 is not set
717# CONFIG_SENSORS_DS1621 is not set 779# CONFIG_SENSORS_DS1621 is not set
718# CONFIG_SENSORS_I5K_AMB is not set 780# CONFIG_SENSORS_I5K_AMB is not set
@@ -757,6 +819,7 @@ CONFIG_HWMON=y
757# CONFIG_SENSORS_W83627EHF is not set 819# CONFIG_SENSORS_W83627EHF is not set
758# CONFIG_HWMON_DEBUG_CHIP is not set 820# CONFIG_HWMON_DEBUG_CHIP is not set
759CONFIG_THERMAL=y 821CONFIG_THERMAL=y
822# CONFIG_THERMAL_HWMON is not set
760CONFIG_WATCHDOG=y 823CONFIG_WATCHDOG=y
761# CONFIG_WATCHDOG_NOWAYOUT is not set 824# CONFIG_WATCHDOG_NOWAYOUT is not set
762 825
@@ -764,7 +827,9 @@ CONFIG_WATCHDOG=y
764# Watchdog Device Drivers 827# Watchdog Device Drivers
765# 828#
766# CONFIG_SOFT_WATCHDOG is not set 829# CONFIG_SOFT_WATCHDOG is not set
767CONFIG_83xx_WDT=y 830# CONFIG_ALIM7101_WDT is not set
831# CONFIG_8xxx_WDT is not set
832# CONFIG_WATCHDOG_RTAS is not set
768 833
769# 834#
770# PCI-based Watchdog Cards 835# PCI-based Watchdog Cards
@@ -786,13 +851,25 @@ CONFIG_SSB_POSSIBLE=y
786# 851#
787# Multifunction device drivers 852# Multifunction device drivers
788# 853#
854# CONFIG_MFD_CORE is not set
789# CONFIG_MFD_SM501 is not set 855# CONFIG_MFD_SM501 is not set
856# CONFIG_HTC_PASIC3 is not set
857# CONFIG_MFD_TMIO is not set
790 858
791# 859#
792# Multimedia devices 860# Multimedia devices
793# 861#
862
863#
864# Multimedia core support
865#
794# CONFIG_VIDEO_DEV is not set 866# CONFIG_VIDEO_DEV is not set
795# CONFIG_DVB_CORE is not set 867# CONFIG_DVB_CORE is not set
868# CONFIG_VIDEO_MEDIA is not set
869
870#
871# Multimedia drivers
872#
796CONFIG_DAB=y 873CONFIG_DAB=y
797# CONFIG_USB_DABUSB is not set 874# CONFIG_USB_DABUSB is not set
798 875
@@ -810,10 +887,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
810# Display device support 887# Display device support
811# 888#
812# CONFIG_DISPLAY_SUPPORT is not set 889# CONFIG_DISPLAY_SUPPORT is not set
813
814#
815# Sound
816#
817# CONFIG_SOUND is not set 890# CONFIG_SOUND is not set
818# CONFIG_HID_SUPPORT is not set 891# CONFIG_HID_SUPPORT is not set
819CONFIG_USB_SUPPORT=y 892CONFIG_USB_SUPPORT=y
@@ -831,16 +904,21 @@ CONFIG_USB=y
831CONFIG_USB_DEVICE_CLASS=y 904CONFIG_USB_DEVICE_CLASS=y
832# CONFIG_USB_DYNAMIC_MINORS is not set 905# CONFIG_USB_DYNAMIC_MINORS is not set
833# CONFIG_USB_OTG is not set 906# CONFIG_USB_OTG is not set
907# CONFIG_USB_OTG_WHITELIST is not set
908# CONFIG_USB_OTG_BLACKLIST_HUB is not set
909CONFIG_USB_MON=y
834 910
835# 911#
836# USB Host Controller Drivers 912# USB Host Controller Drivers
837# 913#
914# CONFIG_USB_C67X00_HCD is not set
838CONFIG_USB_EHCI_HCD=y 915CONFIG_USB_EHCI_HCD=y
839CONFIG_USB_EHCI_ROOT_HUB_TT=y 916CONFIG_USB_EHCI_ROOT_HUB_TT=y
840# CONFIG_USB_EHCI_TT_NEWSCHED is not set 917# CONFIG_USB_EHCI_TT_NEWSCHED is not set
841CONFIG_USB_EHCI_FSL=y 918CONFIG_USB_EHCI_FSL=y
842CONFIG_USB_EHCI_HCD_PPC_OF=y 919CONFIG_USB_EHCI_HCD_PPC_OF=y
843# CONFIG_USB_ISP116X_HCD is not set 920# CONFIG_USB_ISP116X_HCD is not set
921# CONFIG_USB_ISP1760_HCD is not set
844# CONFIG_USB_OHCI_HCD is not set 922# CONFIG_USB_OHCI_HCD is not set
845# CONFIG_USB_UHCI_HCD is not set 923# CONFIG_USB_UHCI_HCD is not set
846# CONFIG_USB_SL811_HCD is not set 924# CONFIG_USB_SL811_HCD is not set
@@ -851,6 +929,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
851# 929#
852# CONFIG_USB_ACM is not set 930# CONFIG_USB_ACM is not set
853# CONFIG_USB_PRINTER is not set 931# CONFIG_USB_PRINTER is not set
932# CONFIG_USB_WDM is not set
854 933
855# 934#
856# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 935# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -865,7 +944,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
865# USB Imaging devices 944# USB Imaging devices
866# 945#
867# CONFIG_USB_MDC800 is not set 946# CONFIG_USB_MDC800 is not set
868CONFIG_USB_MON=y
869 947
870# 948#
871# USB port drivers 949# USB port drivers
@@ -878,7 +956,6 @@ CONFIG_USB_MON=y
878# CONFIG_USB_EMI62 is not set 956# CONFIG_USB_EMI62 is not set
879# CONFIG_USB_EMI26 is not set 957# CONFIG_USB_EMI26 is not set
880# CONFIG_USB_ADUTUX is not set 958# CONFIG_USB_ADUTUX is not set
881# CONFIG_USB_AUERSWALD is not set
882# CONFIG_USB_RIO500 is not set 959# CONFIG_USB_RIO500 is not set
883# CONFIG_USB_LEGOTOWER is not set 960# CONFIG_USB_LEGOTOWER is not set
884# CONFIG_USB_LCD is not set 961# CONFIG_USB_LCD is not set
@@ -894,18 +971,16 @@ CONFIG_USB_MON=y
894# CONFIG_USB_LD is not set 971# CONFIG_USB_LD is not set
895# CONFIG_USB_TRANCEVIBRATOR is not set 972# CONFIG_USB_TRANCEVIBRATOR is not set
896# CONFIG_USB_IOWARRIOR is not set 973# CONFIG_USB_IOWARRIOR is not set
974# CONFIG_USB_ISIGHTFW is not set
897# CONFIG_USB_GADGET is not set 975# CONFIG_USB_GADGET is not set
898# CONFIG_MMC is not set 976# CONFIG_MMC is not set
899# CONFIG_MEMSTICK is not set 977# CONFIG_MEMSTICK is not set
900# CONFIG_NEW_LEDS is not set 978# CONFIG_NEW_LEDS is not set
979# CONFIG_ACCESSIBILITY is not set
901# CONFIG_INFINIBAND is not set 980# CONFIG_INFINIBAND is not set
902# CONFIG_EDAC is not set 981# CONFIG_EDAC is not set
903CONFIG_RTC_LIB=y 982CONFIG_RTC_LIB=y
904CONFIG_RTC_CLASS=y 983CONFIG_RTC_CLASS=y
905
906#
907# Conflicting RTC option has been selected, check GEN_RTC and RTC
908#
909CONFIG_RTC_HCTOSYS=y 984CONFIG_RTC_HCTOSYS=y
910CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 985CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
911# CONFIG_RTC_DEBUG is not set 986# CONFIG_RTC_DEBUG is not set
@@ -933,6 +1008,7 @@ CONFIG_RTC_DRV_DS1374=y
933# CONFIG_RTC_DRV_PCF8583 is not set 1008# CONFIG_RTC_DRV_PCF8583 is not set
934# CONFIG_RTC_DRV_M41T80 is not set 1009# CONFIG_RTC_DRV_M41T80 is not set
935# CONFIG_RTC_DRV_S35390A is not set 1010# CONFIG_RTC_DRV_S35390A is not set
1011# CONFIG_RTC_DRV_FM3130 is not set
936 1012
937# 1013#
938# SPI RTC drivers 1014# SPI RTC drivers
@@ -953,11 +1029,8 @@ CONFIG_RTC_DRV_DS1374=y
953# 1029#
954# on-CPU RTC drivers 1030# on-CPU RTC drivers
955# 1031#
1032# CONFIG_RTC_DRV_PPC is not set
956# CONFIG_DMADEVICES is not set 1033# CONFIG_DMADEVICES is not set
957
958#
959# Userspace I/O
960#
961# CONFIG_UIO is not set 1034# CONFIG_UIO is not set
962 1035
963# 1036#
@@ -977,7 +1050,6 @@ CONFIG_FS_MBCACHE=y
977# CONFIG_JFS_FS is not set 1050# CONFIG_JFS_FS is not set
978# CONFIG_FS_POSIX_ACL is not set 1051# CONFIG_FS_POSIX_ACL is not set
979# CONFIG_XFS_FS is not set 1052# CONFIG_XFS_FS is not set
980# CONFIG_GFS2_FS is not set
981# CONFIG_OCFS2_FS is not set 1053# CONFIG_OCFS2_FS is not set
982CONFIG_DNOTIFY=y 1054CONFIG_DNOTIFY=y
983CONFIG_INOTIFY=y 1055CONFIG_INOTIFY=y
@@ -1036,6 +1108,7 @@ CONFIG_JFFS2_RTIME=y
1036# CONFIG_CRAMFS is not set 1108# CONFIG_CRAMFS is not set
1037# CONFIG_VXFS_FS is not set 1109# CONFIG_VXFS_FS is not set
1038# CONFIG_MINIX_FS is not set 1110# CONFIG_MINIX_FS is not set
1111# CONFIG_OMFS_FS is not set
1039# CONFIG_HPFS_FS is not set 1112# CONFIG_HPFS_FS is not set
1040# CONFIG_QNX4FS_FS is not set 1113# CONFIG_QNX4FS_FS is not set
1041# CONFIG_ROMFS_FS is not set 1114# CONFIG_ROMFS_FS is not set
@@ -1046,15 +1119,13 @@ CONFIG_NFS_FS=y
1046CONFIG_NFS_V3=y 1119CONFIG_NFS_V3=y
1047# CONFIG_NFS_V3_ACL is not set 1120# CONFIG_NFS_V3_ACL is not set
1048CONFIG_NFS_V4=y 1121CONFIG_NFS_V4=y
1049# CONFIG_NFS_DIRECTIO is not set
1050# CONFIG_NFSD is not set
1051CONFIG_ROOT_NFS=y 1122CONFIG_ROOT_NFS=y
1123# CONFIG_NFSD is not set
1052CONFIG_LOCKD=y 1124CONFIG_LOCKD=y
1053CONFIG_LOCKD_V4=y 1125CONFIG_LOCKD_V4=y
1054CONFIG_NFS_COMMON=y 1126CONFIG_NFS_COMMON=y
1055CONFIG_SUNRPC=y 1127CONFIG_SUNRPC=y
1056CONFIG_SUNRPC_GSS=y 1128CONFIG_SUNRPC_GSS=y
1057# CONFIG_SUNRPC_BIND34 is not set
1058CONFIG_RPCSEC_GSS_KRB5=y 1129CONFIG_RPCSEC_GSS_KRB5=y
1059# CONFIG_RPCSEC_GSS_SPKM3 is not set 1130# CONFIG_RPCSEC_GSS_SPKM3 is not set
1060# CONFIG_SMB_FS is not set 1131# CONFIG_SMB_FS is not set
@@ -1126,8 +1197,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1126# Library routines 1197# Library routines
1127# 1198#
1128CONFIG_BITREVERSE=y 1199CONFIG_BITREVERSE=y
1200# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1129# CONFIG_CRC_CCITT is not set 1201# CONFIG_CRC_CCITT is not set
1130# CONFIG_CRC16 is not set 1202# CONFIG_CRC16 is not set
1203# CONFIG_CRC_T10DIF is not set
1131# CONFIG_CRC_ITU_T is not set 1204# CONFIG_CRC_ITU_T is not set
1132CONFIG_CRC32=y 1205CONFIG_CRC32=y
1133# CONFIG_CRC7 is not set 1206# CONFIG_CRC7 is not set
@@ -1146,6 +1219,7 @@ CONFIG_HAVE_LMB=y
1146# CONFIG_PRINTK_TIME is not set 1219# CONFIG_PRINTK_TIME is not set
1147CONFIG_ENABLE_WARN_DEPRECATED=y 1220CONFIG_ENABLE_WARN_DEPRECATED=y
1148CONFIG_ENABLE_MUST_CHECK=y 1221CONFIG_ENABLE_MUST_CHECK=y
1222CONFIG_FRAME_WARN=1024
1149# CONFIG_MAGIC_SYSRQ is not set 1223# CONFIG_MAGIC_SYSRQ is not set
1150# CONFIG_UNUSED_SYMBOLS is not set 1224# CONFIG_UNUSED_SYMBOLS is not set
1151# CONFIG_DEBUG_FS is not set 1225# CONFIG_DEBUG_FS is not set
@@ -1154,7 +1228,18 @@ CONFIG_ENABLE_MUST_CHECK=y
1154# CONFIG_SLUB_DEBUG_ON is not set 1228# CONFIG_SLUB_DEBUG_ON is not set
1155# CONFIG_SLUB_STATS is not set 1229# CONFIG_SLUB_STATS is not set
1156# CONFIG_DEBUG_BUGVERBOSE is not set 1230# CONFIG_DEBUG_BUGVERBOSE is not set
1231# CONFIG_DEBUG_MEMORY_INIT is not set
1232# CONFIG_LATENCYTOP is not set
1233# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1234CONFIG_HAVE_FTRACE=y
1235CONFIG_HAVE_DYNAMIC_FTRACE=y
1236# CONFIG_FTRACE is not set
1237# CONFIG_SCHED_TRACER is not set
1238# CONFIG_CONTEXT_SWITCH_TRACER is not set
1157# CONFIG_SAMPLES is not set 1239# CONFIG_SAMPLES is not set
1240CONFIG_HAVE_ARCH_KGDB=y
1241# CONFIG_IRQSTACKS is not set
1242# CONFIG_BOOTX_TEXT is not set
1158# CONFIG_PPC_EARLY_DEBUG is not set 1243# CONFIG_PPC_EARLY_DEBUG is not set
1159 1244
1160# 1245#
@@ -1164,51 +1249,86 @@ CONFIG_ENABLE_MUST_CHECK=y
1164# CONFIG_SECURITY is not set 1249# CONFIG_SECURITY is not set
1165# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1250# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1166CONFIG_CRYPTO=y 1251CONFIG_CRYPTO=y
1252
1253#
1254# Crypto core or helper
1255#
1167CONFIG_CRYPTO_ALGAPI=y 1256CONFIG_CRYPTO_ALGAPI=y
1168CONFIG_CRYPTO_BLKCIPHER=y 1257CONFIG_CRYPTO_BLKCIPHER=y
1169# CONFIG_CRYPTO_SEQIV is not set
1170CONFIG_CRYPTO_MANAGER=y 1258CONFIG_CRYPTO_MANAGER=y
1259# CONFIG_CRYPTO_GF128MUL is not set
1260# CONFIG_CRYPTO_NULL is not set
1261# CONFIG_CRYPTO_CRYPTD is not set
1262# CONFIG_CRYPTO_AUTHENC is not set
1263# CONFIG_CRYPTO_TEST is not set
1264
1265#
1266# Authenticated Encryption with Associated Data
1267#
1268# CONFIG_CRYPTO_CCM is not set
1269# CONFIG_CRYPTO_GCM is not set
1270# CONFIG_CRYPTO_SEQIV is not set
1271
1272#
1273# Block modes
1274#
1275CONFIG_CRYPTO_CBC=y
1276# CONFIG_CRYPTO_CTR is not set
1277# CONFIG_CRYPTO_CTS is not set
1278CONFIG_CRYPTO_ECB=m
1279# CONFIG_CRYPTO_LRW is not set
1280CONFIG_CRYPTO_PCBC=m
1281# CONFIG_CRYPTO_XTS is not set
1282
1283#
1284# Hash modes
1285#
1171# CONFIG_CRYPTO_HMAC is not set 1286# CONFIG_CRYPTO_HMAC is not set
1172# CONFIG_CRYPTO_XCBC is not set 1287# CONFIG_CRYPTO_XCBC is not set
1173# CONFIG_CRYPTO_NULL is not set 1288
1289#
1290# Digest
1291#
1292# CONFIG_CRYPTO_CRC32C is not set
1174# CONFIG_CRYPTO_MD4 is not set 1293# CONFIG_CRYPTO_MD4 is not set
1175CONFIG_CRYPTO_MD5=y 1294CONFIG_CRYPTO_MD5=y
1295# CONFIG_CRYPTO_MICHAEL_MIC is not set
1296# CONFIG_CRYPTO_RMD128 is not set
1297# CONFIG_CRYPTO_RMD160 is not set
1298# CONFIG_CRYPTO_RMD256 is not set
1299# CONFIG_CRYPTO_RMD320 is not set
1176# CONFIG_CRYPTO_SHA1 is not set 1300# CONFIG_CRYPTO_SHA1 is not set
1177# CONFIG_CRYPTO_SHA256 is not set 1301# CONFIG_CRYPTO_SHA256 is not set
1178# CONFIG_CRYPTO_SHA512 is not set 1302# CONFIG_CRYPTO_SHA512 is not set
1179# CONFIG_CRYPTO_WP512 is not set
1180# CONFIG_CRYPTO_TGR192 is not set 1303# CONFIG_CRYPTO_TGR192 is not set
1181# CONFIG_CRYPTO_GF128MUL is not set 1304# CONFIG_CRYPTO_WP512 is not set
1182CONFIG_CRYPTO_ECB=m 1305
1183CONFIG_CRYPTO_CBC=y 1306#
1184CONFIG_CRYPTO_PCBC=m 1307# Ciphers
1185# CONFIG_CRYPTO_LRW is not set 1308#
1186# CONFIG_CRYPTO_XTS is not set
1187# CONFIG_CRYPTO_CTR is not set
1188# CONFIG_CRYPTO_GCM is not set
1189# CONFIG_CRYPTO_CCM is not set
1190# CONFIG_CRYPTO_CRYPTD is not set
1191CONFIG_CRYPTO_DES=y
1192# CONFIG_CRYPTO_FCRYPT is not set
1193# CONFIG_CRYPTO_BLOWFISH is not set
1194# CONFIG_CRYPTO_TWOFISH is not set
1195# CONFIG_CRYPTO_SERPENT is not set
1196# CONFIG_CRYPTO_AES is not set 1309# CONFIG_CRYPTO_AES is not set
1310# CONFIG_CRYPTO_ANUBIS is not set
1311# CONFIG_CRYPTO_ARC4 is not set
1312# CONFIG_CRYPTO_BLOWFISH is not set
1313# CONFIG_CRYPTO_CAMELLIA is not set
1197# CONFIG_CRYPTO_CAST5 is not set 1314# CONFIG_CRYPTO_CAST5 is not set
1198# CONFIG_CRYPTO_CAST6 is not set 1315# CONFIG_CRYPTO_CAST6 is not set
1199# CONFIG_CRYPTO_TEA is not set 1316CONFIG_CRYPTO_DES=y
1200# CONFIG_CRYPTO_ARC4 is not set 1317# CONFIG_CRYPTO_FCRYPT is not set
1201# CONFIG_CRYPTO_KHAZAD is not set 1318# CONFIG_CRYPTO_KHAZAD is not set
1202# CONFIG_CRYPTO_ANUBIS is not set
1203# CONFIG_CRYPTO_SEED is not set
1204# CONFIG_CRYPTO_SALSA20 is not set 1319# CONFIG_CRYPTO_SALSA20 is not set
1320# CONFIG_CRYPTO_SEED is not set
1321# CONFIG_CRYPTO_SERPENT is not set
1322# CONFIG_CRYPTO_TEA is not set
1323# CONFIG_CRYPTO_TWOFISH is not set
1324
1325#
1326# Compression
1327#
1205# CONFIG_CRYPTO_DEFLATE is not set 1328# CONFIG_CRYPTO_DEFLATE is not set
1206# CONFIG_CRYPTO_MICHAEL_MIC is not set
1207# CONFIG_CRYPTO_CRC32C is not set
1208# CONFIG_CRYPTO_CAMELLIA is not set
1209# CONFIG_CRYPTO_TEST is not set
1210# CONFIG_CRYPTO_AUTHENC is not set
1211# CONFIG_CRYPTO_LZO is not set 1329# CONFIG_CRYPTO_LZO is not set
1212CONFIG_CRYPTO_HW=y 1330CONFIG_CRYPTO_HW=y
1213# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1331# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1332# CONFIG_CRYPTO_DEV_TALITOS is not set
1214# CONFIG_PPC_CLOCK is not set 1333# CONFIG_PPC_CLOCK is not set
1334# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
index 5428f9f5ed8..2028337868b 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:21 2008 4# Thu Aug 21 00:52:17 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162CONFIG_MPC831x_RDB=y 176CONFIG_MPC831x_RDB=y
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166# CONFIG_MPC834x_ITX is not set 180# CONFIG_MPC834x_ITX is not set
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC831x=y 187CONFIG_PPC_MPC831x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
184 208
185# 209#
@@ -195,7 +219,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 221CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 222CONFIG_SCHED_HRTICK=y
199CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
@@ -205,6 +229,7 @@ CONFIG_BINFMT_ELF=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y 230CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
232# CONFIG_KEXEC is not set
208CONFIG_ARCH_FLATMEM_ENABLE=y 233CONFIG_ARCH_FLATMEM_ENABLE=y
209CONFIG_ARCH_POPULATES_NODE_MAP=y 234CONFIG_ARCH_POPULATES_NODE_MAP=y
210CONFIG_SELECT_MEMORY_MODEL=y 235CONFIG_SELECT_MEMORY_MODEL=y
@@ -217,6 +242,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -224,6 +250,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 254# CONFIG_PM is not set
228CONFIG_SECCOMP=y 255CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 256CONFIG_ISA_DMA_API=y
@@ -231,10 +258,13 @@ CONFIG_ISA_DMA_API=y
231# 258#
232# Bus options 259# Bus options
233# 260#
261# CONFIG_ISA is not set
234CONFIG_ZONE_DMA=y 262CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 263CONFIG_GENERIC_ISA_DMA=y
236CONFIG_PPC_INDIRECT_PCI=y 264CONFIG_PPC_INDIRECT_PCI=y
237CONFIG_FSL_SOC=y 265CONFIG_FSL_SOC=y
266CONFIG_FSL_PCI=y
267CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 268CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 269CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 270CONFIG_PCI_SYSCALL=y
@@ -260,10 +290,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
260CONFIG_KERNEL_START=0xc0000000 290CONFIG_KERNEL_START=0xc0000000
261CONFIG_PHYSICAL_START=0x00000000 291CONFIG_PHYSICAL_START=0x00000000
262CONFIG_TASK_SIZE=0xc0000000 292CONFIG_TASK_SIZE=0xc0000000
263
264#
265# Networking
266#
267CONFIG_NET=y 293CONFIG_NET=y
268 294
269# 295#
@@ -452,9 +478,11 @@ CONFIG_MTD_NAND_FSL_ELBC=y
452# CONFIG_MTD_UBI is not set 478# CONFIG_MTD_UBI is not set
453CONFIG_OF_DEVICE=y 479CONFIG_OF_DEVICE=y
454CONFIG_OF_I2C=y 480CONFIG_OF_I2C=y
481CONFIG_OF_SPI=y
455# CONFIG_PARPORT is not set 482# CONFIG_PARPORT is not set
456CONFIG_BLK_DEV=y 483CONFIG_BLK_DEV=y
457# CONFIG_BLK_DEV_FD is not set 484# CONFIG_BLK_DEV_FD is not set
485# CONFIG_MAC_FLOPPY is not set
458# CONFIG_BLK_CPQ_DA is not set 486# CONFIG_BLK_CPQ_DA is not set
459# CONFIG_BLK_CPQ_CISS_DA is not set 487# CONFIG_BLK_CPQ_CISS_DA is not set
460# CONFIG_BLK_DEV_DAC960 is not set 488# CONFIG_BLK_DEV_DAC960 is not set
@@ -471,12 +499,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
471# CONFIG_BLK_DEV_XIP is not set 499# CONFIG_BLK_DEV_XIP is not set
472# CONFIG_CDROM_PKTCDVD is not set 500# CONFIG_CDROM_PKTCDVD is not set
473# CONFIG_ATA_OVER_ETH is not set 501# CONFIG_ATA_OVER_ETH is not set
502# CONFIG_BLK_DEV_HD is not set
474CONFIG_MISC_DEVICES=y 503CONFIG_MISC_DEVICES=y
475# CONFIG_PHANTOM is not set 504# CONFIG_PHANTOM is not set
476# CONFIG_EEPROM_93CX6 is not set 505# CONFIG_EEPROM_93CX6 is not set
477# CONFIG_SGI_IOC4 is not set 506# CONFIG_SGI_IOC4 is not set
478# CONFIG_TIFM_CORE is not set 507# CONFIG_TIFM_CORE is not set
479# CONFIG_ENCLOSURE_SERVICES is not set 508# CONFIG_ENCLOSURE_SERVICES is not set
509# CONFIG_HP_ILO is not set
480CONFIG_HAVE_IDE=y 510CONFIG_HAVE_IDE=y
481# CONFIG_IDE is not set 511# CONFIG_IDE is not set
482 512
@@ -553,7 +583,10 @@ CONFIG_SCSI_LOWLEVEL=y
553# CONFIG_SCSI_DC390T is not set 583# CONFIG_SCSI_DC390T is not set
554# CONFIG_SCSI_NSP32 is not set 584# CONFIG_SCSI_NSP32 is not set
555# CONFIG_SCSI_DEBUG is not set 585# CONFIG_SCSI_DEBUG is not set
586# CONFIG_SCSI_MESH is not set
587# CONFIG_SCSI_MAC53C94 is not set
556# CONFIG_SCSI_SRP is not set 588# CONFIG_SCSI_SRP is not set
589# CONFIG_SCSI_DH is not set
557# CONFIG_ATA is not set 590# CONFIG_ATA is not set
558CONFIG_MD=y 591CONFIG_MD=y
559CONFIG_BLK_DEV_MD=y 592CONFIG_BLK_DEV_MD=y
@@ -570,12 +603,15 @@ CONFIG_MD_RAID1=y
570# 603#
571# IEEE 1394 (FireWire) support 604# IEEE 1394 (FireWire) support
572# 605#
606
607#
608# Enable only one of the two stacks, unless you know what you are doing
609#
573# CONFIG_FIREWIRE is not set 610# CONFIG_FIREWIRE is not set
574# CONFIG_IEEE1394 is not set 611# CONFIG_IEEE1394 is not set
575# CONFIG_I2O is not set 612# CONFIG_I2O is not set
576# CONFIG_MACINTOSH_DRIVERS is not set 613# CONFIG_MACINTOSH_DRIVERS is not set
577CONFIG_NETDEVICES=y 614CONFIG_NETDEVICES=y
578# CONFIG_NETDEVICES_MULTIQUEUE is not set
579# CONFIG_DUMMY is not set 615# CONFIG_DUMMY is not set
580# CONFIG_BONDING is not set 616# CONFIG_BONDING is not set
581# CONFIG_MACVLAN is not set 617# CONFIG_MACVLAN is not set
@@ -602,6 +638,8 @@ CONFIG_CICADA_PHY=y
602# CONFIG_MDIO_BITBANG is not set 638# CONFIG_MDIO_BITBANG is not set
603CONFIG_NET_ETHERNET=y 639CONFIG_NET_ETHERNET=y
604CONFIG_MII=y 640CONFIG_MII=y
641# CONFIG_MACE is not set
642# CONFIG_BMAC is not set
605# CONFIG_HAPPYMEAL is not set 643# CONFIG_HAPPYMEAL is not set
606# CONFIG_SUNGEM is not set 644# CONFIG_SUNGEM is not set
607# CONFIG_CASSINI is not set 645# CONFIG_CASSINI is not set
@@ -638,7 +676,6 @@ CONFIG_NETDEV_1000=y
638# CONFIG_DL2K is not set 676# CONFIG_DL2K is not set
639# CONFIG_E1000 is not set 677# CONFIG_E1000 is not set
640# CONFIG_E1000E is not set 678# CONFIG_E1000E is not set
641# CONFIG_E1000E_ENABLED is not set
642# CONFIG_IP1000 is not set 679# CONFIG_IP1000 is not set
643# CONFIG_IGB is not set 680# CONFIG_IGB is not set
644# CONFIG_NS83820 is not set 681# CONFIG_NS83820 is not set
@@ -652,9 +689,10 @@ CONFIG_NETDEV_1000=y
652# CONFIG_TIGON3 is not set 689# CONFIG_TIGON3 is not set
653# CONFIG_BNX2 is not set 690# CONFIG_BNX2 is not set
654CONFIG_GIANFAR=y 691CONFIG_GIANFAR=y
655CONFIG_GFAR_NAPI=y 692# CONFIG_MV643XX_ETH is not set
656# CONFIG_QLA3XXX is not set 693# CONFIG_QLA3XXX is not set
657# CONFIG_ATL1 is not set 694# CONFIG_ATL1 is not set
695# CONFIG_ATL1E is not set
658CONFIG_NETDEV_10000=y 696CONFIG_NETDEV_10000=y
659# CONFIG_CHELSIO_T1 is not set 697# CONFIG_CHELSIO_T1 is not set
660# CONFIG_CHELSIO_T3 is not set 698# CONFIG_CHELSIO_T3 is not set
@@ -752,11 +790,14 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
752# CONFIG_SERIAL_UARTLITE is not set 790# CONFIG_SERIAL_UARTLITE is not set
753CONFIG_SERIAL_CORE=y 791CONFIG_SERIAL_CORE=y
754CONFIG_SERIAL_CORE_CONSOLE=y 792CONFIG_SERIAL_CORE_CONSOLE=y
793# CONFIG_SERIAL_PMACZILOG is not set
755# CONFIG_SERIAL_JSM is not set 794# CONFIG_SERIAL_JSM is not set
756# CONFIG_SERIAL_OF_PLATFORM is not set 795# CONFIG_SERIAL_OF_PLATFORM is not set
757CONFIG_UNIX98_PTYS=y 796CONFIG_UNIX98_PTYS=y
758CONFIG_LEGACY_PTYS=y 797CONFIG_LEGACY_PTYS=y
759CONFIG_LEGACY_PTY_COUNT=256 798CONFIG_LEGACY_PTY_COUNT=256
799# CONFIG_BRIQ_PANEL is not set
800# CONFIG_HVC_RTAS is not set
760# CONFIG_IPMI_HANDLER is not set 801# CONFIG_IPMI_HANDLER is not set
761CONFIG_HW_RANDOM=y 802CONFIG_HW_RANDOM=y
762# CONFIG_NVRAM is not set 803# CONFIG_NVRAM is not set
@@ -768,43 +809,70 @@ CONFIG_DEVPORT=y
768CONFIG_I2C=y 809CONFIG_I2C=y
769CONFIG_I2C_BOARDINFO=y 810CONFIG_I2C_BOARDINFO=y
770CONFIG_I2C_CHARDEV=y 811CONFIG_I2C_CHARDEV=y
812CONFIG_I2C_HELPER_AUTO=y
771 813
772# 814#
773# I2C Hardware Bus support 815# I2C Hardware Bus support
774# 816#
817
818#
819# PC SMBus host controller drivers
820#
775# CONFIG_I2C_ALI1535 is not set 821# CONFIG_I2C_ALI1535 is not set
776# CONFIG_I2C_ALI1563 is not set 822# CONFIG_I2C_ALI1563 is not set
777# CONFIG_I2C_ALI15X3 is not set 823# CONFIG_I2C_ALI15X3 is not set
778# CONFIG_I2C_AMD756 is not set 824# CONFIG_I2C_AMD756 is not set
779# CONFIG_I2C_AMD8111 is not set 825# CONFIG_I2C_AMD8111 is not set
780# CONFIG_I2C_I801 is not set 826# CONFIG_I2C_I801 is not set
781# CONFIG_I2C_I810 is not set 827# CONFIG_I2C_ISCH is not set
782# CONFIG_I2C_PIIX4 is not set 828# CONFIG_I2C_PIIX4 is not set
783CONFIG_I2C_MPC=y
784# CONFIG_I2C_NFORCE2 is not set 829# CONFIG_I2C_NFORCE2 is not set
785# CONFIG_I2C_OCORES is not set
786# CONFIG_I2C_PARPORT_LIGHT is not set
787# CONFIG_I2C_PROSAVAGE is not set
788# CONFIG_I2C_SAVAGE4 is not set
789# CONFIG_I2C_SIMTEC is not set
790# CONFIG_I2C_SIS5595 is not set 830# CONFIG_I2C_SIS5595 is not set
791# CONFIG_I2C_SIS630 is not set 831# CONFIG_I2C_SIS630 is not set
792# CONFIG_I2C_SIS96X is not set 832# CONFIG_I2C_SIS96X is not set
793# CONFIG_I2C_TAOS_EVM is not set
794# CONFIG_I2C_STUB is not set
795# CONFIG_I2C_TINY_USB is not set
796# CONFIG_I2C_VIA is not set 833# CONFIG_I2C_VIA is not set
797# CONFIG_I2C_VIAPRO is not set 834# CONFIG_I2C_VIAPRO is not set
835
836#
837# Mac SMBus host controller drivers
838#
839# CONFIG_I2C_HYDRA is not set
840CONFIG_I2C_POWERMAC=y
841
842#
843# I2C system bus drivers (mostly embedded / system-on-chip)
844#
845CONFIG_I2C_MPC=y
846# CONFIG_I2C_OCORES is not set
847# CONFIG_I2C_SIMTEC is not set
848
849#
850# External I2C/SMBus adapter drivers
851#
852# CONFIG_I2C_PARPORT_LIGHT is not set
853# CONFIG_I2C_TAOS_EVM is not set
854# CONFIG_I2C_TINY_USB is not set
855
856#
857# Graphics adapter I2C/DDC channel drivers
858#
798# CONFIG_I2C_VOODOO3 is not set 859# CONFIG_I2C_VOODOO3 is not set
860
861#
862# Other I2C/SMBus bus drivers
863#
799# CONFIG_I2C_PCA_PLATFORM is not set 864# CONFIG_I2C_PCA_PLATFORM is not set
865# CONFIG_I2C_STUB is not set
800 866
801# 867#
802# Miscellaneous I2C Chip support 868# Miscellaneous I2C Chip support
803# 869#
804# CONFIG_DS1682 is not set 870# CONFIG_DS1682 is not set
871# CONFIG_AT24 is not set
805# CONFIG_SENSORS_EEPROM is not set 872# CONFIG_SENSORS_EEPROM is not set
806# CONFIG_SENSORS_PCF8574 is not set 873# CONFIG_SENSORS_PCF8574 is not set
807# CONFIG_PCF8575 is not set 874# CONFIG_PCF8575 is not set
875# CONFIG_SENSORS_PCA9539 is not set
808# CONFIG_SENSORS_PCF8591 is not set 876# CONFIG_SENSORS_PCF8591 is not set
809# CONFIG_SENSORS_MAX6875 is not set 877# CONFIG_SENSORS_MAX6875 is not set
810# CONFIG_SENSORS_TSL2550 is not set 878# CONFIG_SENSORS_TSL2550 is not set
@@ -828,11 +896,15 @@ CONFIG_SPI_MPC83xx=y
828# CONFIG_SPI_AT25 is not set 896# CONFIG_SPI_AT25 is not set
829# CONFIG_SPI_SPIDEV is not set 897# CONFIG_SPI_SPIDEV is not set
830# CONFIG_SPI_TLE62X0 is not set 898# CONFIG_SPI_TLE62X0 is not set
899CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
900# CONFIG_GPIOLIB is not set
831# CONFIG_W1 is not set 901# CONFIG_W1 is not set
832# CONFIG_POWER_SUPPLY is not set 902# CONFIG_POWER_SUPPLY is not set
833CONFIG_HWMON=y 903CONFIG_HWMON=y
834# CONFIG_HWMON_VID is not set 904# CONFIG_HWMON_VID is not set
905# CONFIG_SENSORS_AD7414 is not set
835# CONFIG_SENSORS_AD7418 is not set 906# CONFIG_SENSORS_AD7418 is not set
907# CONFIG_SENSORS_ADCXX is not set
836# CONFIG_SENSORS_ADM1021 is not set 908# CONFIG_SENSORS_ADM1021 is not set
837# CONFIG_SENSORS_ADM1025 is not set 909# CONFIG_SENSORS_ADM1025 is not set
838# CONFIG_SENSORS_ADM1026 is not set 910# CONFIG_SENSORS_ADM1026 is not set
@@ -841,6 +913,7 @@ CONFIG_HWMON=y
841# CONFIG_SENSORS_ADM9240 is not set 913# CONFIG_SENSORS_ADM9240 is not set
842# CONFIG_SENSORS_ADT7470 is not set 914# CONFIG_SENSORS_ADT7470 is not set
843# CONFIG_SENSORS_ADT7473 is not set 915# CONFIG_SENSORS_ADT7473 is not set
916# CONFIG_SENSORS_AMS is not set
844# CONFIG_SENSORS_ATXP1 is not set 917# CONFIG_SENSORS_ATXP1 is not set
845# CONFIG_SENSORS_DS1621 is not set 918# CONFIG_SENSORS_DS1621 is not set
846# CONFIG_SENSORS_I5K_AMB is not set 919# CONFIG_SENSORS_I5K_AMB is not set
@@ -886,6 +959,7 @@ CONFIG_HWMON=y
886# CONFIG_SENSORS_W83627EHF is not set 959# CONFIG_SENSORS_W83627EHF is not set
887# CONFIG_HWMON_DEBUG_CHIP is not set 960# CONFIG_HWMON_DEBUG_CHIP is not set
888# CONFIG_THERMAL is not set 961# CONFIG_THERMAL is not set
962# CONFIG_THERMAL_HWMON is not set
889CONFIG_WATCHDOG=y 963CONFIG_WATCHDOG=y
890# CONFIG_WATCHDOG_NOWAYOUT is not set 964# CONFIG_WATCHDOG_NOWAYOUT is not set
891 965
@@ -893,7 +967,9 @@ CONFIG_WATCHDOG=y
893# Watchdog Device Drivers 967# Watchdog Device Drivers
894# 968#
895# CONFIG_SOFT_WATCHDOG is not set 969# CONFIG_SOFT_WATCHDOG is not set
896CONFIG_83xx_WDT=y 970# CONFIG_ALIM7101_WDT is not set
971# CONFIG_8xxx_WDT is not set
972# CONFIG_WATCHDOG_RTAS is not set
897 973
898# 974#
899# PCI-based Watchdog Cards 975# PCI-based Watchdog Cards
@@ -915,8 +991,10 @@ CONFIG_SSB_POSSIBLE=y
915# 991#
916# Multifunction device drivers 992# Multifunction device drivers
917# 993#
994# CONFIG_MFD_CORE is not set
918# CONFIG_MFD_SM501 is not set 995# CONFIG_MFD_SM501 is not set
919# CONFIG_HTC_PASIC3 is not set 996# CONFIG_HTC_PASIC3 is not set
997# CONFIG_MFD_TMIO is not set
920 998
921# 999#
922# Multimedia devices 1000# Multimedia devices
@@ -949,10 +1027,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
949# Display device support 1027# Display device support
950# 1028#
951# CONFIG_DISPLAY_SUPPORT is not set 1029# CONFIG_DISPLAY_SUPPORT is not set
952
953#
954# Sound
955#
956# CONFIG_SOUND is not set 1030# CONFIG_SOUND is not set
957CONFIG_HID_SUPPORT=y 1031CONFIG_HID_SUPPORT=y
958CONFIG_HID=y 1032CONFIG_HID=y
@@ -986,6 +1060,7 @@ CONFIG_USB_DEVICE_CLASS=y
986# CONFIG_USB_OTG is not set 1060# CONFIG_USB_OTG is not set
987# CONFIG_USB_OTG_WHITELIST is not set 1061# CONFIG_USB_OTG_WHITELIST is not set
988# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1062# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1063CONFIG_USB_MON=y
989 1064
990# 1065#
991# USB Host Controller Drivers 1066# USB Host Controller Drivers
@@ -1009,6 +1084,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1009CONFIG_USB_UHCI_HCD=y 1084CONFIG_USB_UHCI_HCD=y
1010# CONFIG_USB_SL811_HCD is not set 1085# CONFIG_USB_SL811_HCD is not set
1011# CONFIG_USB_R8A66597_HCD is not set 1086# CONFIG_USB_R8A66597_HCD is not set
1087# CONFIG_USB_GADGET_MUSB_HDRC is not set
1012 1088
1013# 1089#
1014# USB Device Class drivers 1090# USB Device Class drivers
@@ -1037,6 +1113,7 @@ CONFIG_USB_STORAGE=y
1037# CONFIG_USB_STORAGE_ALAUDA is not set 1113# CONFIG_USB_STORAGE_ALAUDA is not set
1038# CONFIG_USB_STORAGE_ONETOUCH is not set 1114# CONFIG_USB_STORAGE_ONETOUCH is not set
1039# CONFIG_USB_STORAGE_KARMA is not set 1115# CONFIG_USB_STORAGE_KARMA is not set
1116# CONFIG_USB_STORAGE_SIERRA is not set
1040# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1117# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1041# CONFIG_USB_LIBUSUAL is not set 1118# CONFIG_USB_LIBUSUAL is not set
1042 1119
@@ -1045,7 +1122,6 @@ CONFIG_USB_STORAGE=y
1045# 1122#
1046# CONFIG_USB_MDC800 is not set 1123# CONFIG_USB_MDC800 is not set
1047# CONFIG_USB_MICROTEK is not set 1124# CONFIG_USB_MICROTEK is not set
1048CONFIG_USB_MON=y
1049 1125
1050# 1126#
1051# USB port drivers 1127# USB port drivers
@@ -1058,7 +1134,6 @@ CONFIG_USB_MON=y
1058# CONFIG_USB_EMI62 is not set 1134# CONFIG_USB_EMI62 is not set
1059# CONFIG_USB_EMI26 is not set 1135# CONFIG_USB_EMI26 is not set
1060# CONFIG_USB_ADUTUX is not set 1136# CONFIG_USB_ADUTUX is not set
1061# CONFIG_USB_AUERSWALD is not set
1062# CONFIG_USB_RIO500 is not set 1137# CONFIG_USB_RIO500 is not set
1063# CONFIG_USB_LEGOTOWER is not set 1138# CONFIG_USB_LEGOTOWER is not set
1064# CONFIG_USB_LCD is not set 1139# CONFIG_USB_LCD is not set
@@ -1085,7 +1160,7 @@ CONFIG_USB_GADGET_SELECTED=y
1085# CONFIG_USB_GADGET_FSL_USB2 is not set 1160# CONFIG_USB_GADGET_FSL_USB2 is not set
1086CONFIG_USB_GADGET_NET2280=y 1161CONFIG_USB_GADGET_NET2280=y
1087CONFIG_USB_NET2280=y 1162CONFIG_USB_NET2280=y
1088# CONFIG_USB_GADGET_PXA2XX is not set 1163# CONFIG_USB_GADGET_PXA25X is not set
1089# CONFIG_USB_GADGET_M66592 is not set 1164# CONFIG_USB_GADGET_M66592 is not set
1090# CONFIG_USB_GADGET_PXA27X is not set 1165# CONFIG_USB_GADGET_PXA27X is not set
1091# CONFIG_USB_GADGET_GOKU is not set 1166# CONFIG_USB_GADGET_GOKU is not set
@@ -1103,6 +1178,7 @@ CONFIG_USB_ETH_RNDIS=y
1103# CONFIG_USB_G_SERIAL is not set 1178# CONFIG_USB_G_SERIAL is not set
1104# CONFIG_USB_MIDI_GADGET is not set 1179# CONFIG_USB_MIDI_GADGET is not set
1105# CONFIG_USB_G_PRINTER is not set 1180# CONFIG_USB_G_PRINTER is not set
1181# CONFIG_USB_CDC_COMPOSITE is not set
1106# CONFIG_MMC is not set 1182# CONFIG_MMC is not set
1107# CONFIG_MEMSTICK is not set 1183# CONFIG_MEMSTICK is not set
1108# CONFIG_NEW_LEDS is not set 1184# CONFIG_NEW_LEDS is not set
@@ -1138,10 +1214,13 @@ CONFIG_RTC_DRV_DS1307=y
1138# CONFIG_RTC_DRV_PCF8583 is not set 1214# CONFIG_RTC_DRV_PCF8583 is not set
1139# CONFIG_RTC_DRV_M41T80 is not set 1215# CONFIG_RTC_DRV_M41T80 is not set
1140# CONFIG_RTC_DRV_S35390A is not set 1216# CONFIG_RTC_DRV_S35390A is not set
1217# CONFIG_RTC_DRV_FM3130 is not set
1141 1218
1142# 1219#
1143# SPI RTC drivers 1220# SPI RTC drivers
1144# 1221#
1222# CONFIG_RTC_DRV_M41T94 is not set
1223# CONFIG_RTC_DRV_DS1305 is not set
1145# CONFIG_RTC_DRV_MAX6902 is not set 1224# CONFIG_RTC_DRV_MAX6902 is not set
1146# CONFIG_RTC_DRV_R9701 is not set 1225# CONFIG_RTC_DRV_R9701 is not set
1147# CONFIG_RTC_DRV_RS5C348 is not set 1226# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1240,6 +1319,7 @@ CONFIG_JFFS2_RTIME=y
1240# CONFIG_CRAMFS is not set 1319# CONFIG_CRAMFS is not set
1241# CONFIG_VXFS_FS is not set 1320# CONFIG_VXFS_FS is not set
1242# CONFIG_MINIX_FS is not set 1321# CONFIG_MINIX_FS is not set
1322# CONFIG_OMFS_FS is not set
1243# CONFIG_HPFS_FS is not set 1323# CONFIG_HPFS_FS is not set
1244# CONFIG_QNX4FS_FS is not set 1324# CONFIG_QNX4FS_FS is not set
1245# CONFIG_ROMFS_FS is not set 1325# CONFIG_ROMFS_FS is not set
@@ -1250,14 +1330,13 @@ CONFIG_NFS_FS=y
1250CONFIG_NFS_V3=y 1330CONFIG_NFS_V3=y
1251# CONFIG_NFS_V3_ACL is not set 1331# CONFIG_NFS_V3_ACL is not set
1252CONFIG_NFS_V4=y 1332CONFIG_NFS_V4=y
1253# CONFIG_NFSD is not set
1254CONFIG_ROOT_NFS=y 1333CONFIG_ROOT_NFS=y
1334# CONFIG_NFSD is not set
1255CONFIG_LOCKD=y 1335CONFIG_LOCKD=y
1256CONFIG_LOCKD_V4=y 1336CONFIG_LOCKD_V4=y
1257CONFIG_NFS_COMMON=y 1337CONFIG_NFS_COMMON=y
1258CONFIG_SUNRPC=y 1338CONFIG_SUNRPC=y
1259CONFIG_SUNRPC_GSS=y 1339CONFIG_SUNRPC_GSS=y
1260# CONFIG_SUNRPC_BIND34 is not set
1261CONFIG_RPCSEC_GSS_KRB5=y 1340CONFIG_RPCSEC_GSS_KRB5=y
1262# CONFIG_RPCSEC_GSS_SPKM3 is not set 1341# CONFIG_RPCSEC_GSS_SPKM3 is not set
1263# CONFIG_SMB_FS is not set 1342# CONFIG_SMB_FS is not set
@@ -1297,6 +1376,7 @@ CONFIG_BITREVERSE=y
1297# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1376# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1298# CONFIG_CRC_CCITT is not set 1377# CONFIG_CRC_CCITT is not set
1299# CONFIG_CRC16 is not set 1378# CONFIG_CRC16 is not set
1379# CONFIG_CRC_T10DIF is not set
1300# CONFIG_CRC_ITU_T is not set 1380# CONFIG_CRC_ITU_T is not set
1301CONFIG_CRC32=y 1381CONFIG_CRC32=y
1302# CONFIG_CRC7 is not set 1382# CONFIG_CRC7 is not set
@@ -1323,6 +1403,8 @@ CONFIG_FRAME_WARN=1024
1323CONFIG_DEBUG_KERNEL=y 1403CONFIG_DEBUG_KERNEL=y
1324# CONFIG_DEBUG_SHIRQ is not set 1404# CONFIG_DEBUG_SHIRQ is not set
1325CONFIG_DETECT_SOFTLOCKUP=y 1405CONFIG_DETECT_SOFTLOCKUP=y
1406# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1407CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1326CONFIG_SCHED_DEBUG=y 1408CONFIG_SCHED_DEBUG=y
1327# CONFIG_SCHEDSTATS is not set 1409# CONFIG_SCHEDSTATS is not set
1328# CONFIG_TIMER_STATS is not set 1410# CONFIG_TIMER_STATS is not set
@@ -1340,19 +1422,32 @@ CONFIG_SCHED_DEBUG=y
1340# CONFIG_DEBUG_INFO is not set 1422# CONFIG_DEBUG_INFO is not set
1341# CONFIG_DEBUG_VM is not set 1423# CONFIG_DEBUG_VM is not set
1342# CONFIG_DEBUG_WRITECOUNT is not set 1424# CONFIG_DEBUG_WRITECOUNT is not set
1425# CONFIG_DEBUG_MEMORY_INIT is not set
1343# CONFIG_DEBUG_LIST is not set 1426# CONFIG_DEBUG_LIST is not set
1344# CONFIG_DEBUG_SG is not set 1427# CONFIG_DEBUG_SG is not set
1345# CONFIG_BOOT_PRINTK_DELAY is not set 1428# CONFIG_BOOT_PRINTK_DELAY is not set
1346# CONFIG_RCU_TORTURE_TEST is not set 1429# CONFIG_RCU_TORTURE_TEST is not set
1347# CONFIG_BACKTRACE_SELF_TEST is not set 1430# CONFIG_BACKTRACE_SELF_TEST is not set
1348# CONFIG_FAULT_INJECTION is not set 1431# CONFIG_FAULT_INJECTION is not set
1432# CONFIG_LATENCYTOP is not set
1433CONFIG_SYSCTL_SYSCALL_CHECK=y
1434CONFIG_HAVE_FTRACE=y
1435CONFIG_HAVE_DYNAMIC_FTRACE=y
1436# CONFIG_FTRACE is not set
1437# CONFIG_SCHED_TRACER is not set
1438# CONFIG_CONTEXT_SWITCH_TRACER is not set
1349# CONFIG_SAMPLES is not set 1439# CONFIG_SAMPLES is not set
1440CONFIG_HAVE_ARCH_KGDB=y
1441# CONFIG_KGDB is not set
1350# CONFIG_DEBUG_STACKOVERFLOW is not set 1442# CONFIG_DEBUG_STACKOVERFLOW is not set
1351# CONFIG_DEBUG_STACK_USAGE is not set 1443# CONFIG_DEBUG_STACK_USAGE is not set
1352# CONFIG_DEBUG_PAGEALLOC is not set 1444# CONFIG_DEBUG_PAGEALLOC is not set
1353# CONFIG_DEBUGGER is not set 1445# CONFIG_CODE_PATCHING_SELFTEST is not set
1446# CONFIG_FTR_FIXUP_SELFTEST is not set
1447# CONFIG_XMON is not set
1354# CONFIG_IRQSTACKS is not set 1448# CONFIG_IRQSTACKS is not set
1355# CONFIG_BDI_SWITCH is not set 1449# CONFIG_BDI_SWITCH is not set
1450# CONFIG_BOOTX_TEXT is not set
1356# CONFIG_PPC_EARLY_DEBUG is not set 1451# CONFIG_PPC_EARLY_DEBUG is not set
1357 1452
1358# 1453#
@@ -1406,6 +1501,10 @@ CONFIG_CRYPTO_PCBC=m
1406# CONFIG_CRYPTO_MD4 is not set 1501# CONFIG_CRYPTO_MD4 is not set
1407CONFIG_CRYPTO_MD5=y 1502CONFIG_CRYPTO_MD5=y
1408# CONFIG_CRYPTO_MICHAEL_MIC is not set 1503# CONFIG_CRYPTO_MICHAEL_MIC is not set
1504# CONFIG_CRYPTO_RMD128 is not set
1505# CONFIG_CRYPTO_RMD160 is not set
1506# CONFIG_CRYPTO_RMD256 is not set
1507# CONFIG_CRYPTO_RMD320 is not set
1409# CONFIG_CRYPTO_SHA1 is not set 1508# CONFIG_CRYPTO_SHA1 is not set
1410# CONFIG_CRYPTO_SHA256 is not set 1509# CONFIG_CRYPTO_SHA256 is not set
1411# CONFIG_CRYPTO_SHA512 is not set 1510# CONFIG_CRYPTO_SHA512 is not set
@@ -1438,5 +1537,6 @@ CONFIG_CRYPTO_DES=y
1438# CONFIG_CRYPTO_LZO is not set 1537# CONFIG_CRYPTO_LZO is not set
1439CONFIG_CRYPTO_HW=y 1538CONFIG_CRYPTO_HW=y
1440# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1539# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1540# CONFIG_CRYPTO_DEV_TALITOS is not set
1441# CONFIG_PPC_CLOCK is not set 1541# CONFIG_PPC_CLOCK is not set
1442# CONFIG_VIRTUALIZATION is not set 1542# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
index 9bc3a03ae26..dd80eb0a87a 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:21 2008 4# Thu Aug 21 00:52:18 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162CONFIG_MPC831x_RDB=y 176CONFIG_MPC831x_RDB=y
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166# CONFIG_MPC834x_ITX is not set 180# CONFIG_MPC834x_ITX is not set
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC831x=y 187CONFIG_PPC_MPC831x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
184 208
185# 209#
@@ -195,7 +219,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 221CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 222CONFIG_SCHED_HRTICK=y
199CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
@@ -205,6 +229,7 @@ CONFIG_BINFMT_ELF=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y 230CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
232# CONFIG_KEXEC is not set
208CONFIG_ARCH_FLATMEM_ENABLE=y 233CONFIG_ARCH_FLATMEM_ENABLE=y
209CONFIG_ARCH_POPULATES_NODE_MAP=y 234CONFIG_ARCH_POPULATES_NODE_MAP=y
210CONFIG_SELECT_MEMORY_MODEL=y 235CONFIG_SELECT_MEMORY_MODEL=y
@@ -217,6 +242,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -224,6 +250,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 254# CONFIG_PM is not set
228CONFIG_SECCOMP=y 255CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 256CONFIG_ISA_DMA_API=y
@@ -231,10 +258,13 @@ CONFIG_ISA_DMA_API=y
231# 258#
232# Bus options 259# Bus options
233# 260#
261# CONFIG_ISA is not set
234CONFIG_ZONE_DMA=y 262CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 263CONFIG_GENERIC_ISA_DMA=y
236CONFIG_PPC_INDIRECT_PCI=y 264CONFIG_PPC_INDIRECT_PCI=y
237CONFIG_FSL_SOC=y 265CONFIG_FSL_SOC=y
266CONFIG_FSL_PCI=y
267CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 268CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 269CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 270CONFIG_PCI_SYSCALL=y
@@ -260,10 +290,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
260CONFIG_KERNEL_START=0xc0000000 290CONFIG_KERNEL_START=0xc0000000
261CONFIG_PHYSICAL_START=0x00000000 291CONFIG_PHYSICAL_START=0x00000000
262CONFIG_TASK_SIZE=0xc0000000 292CONFIG_TASK_SIZE=0xc0000000
263
264#
265# Networking
266#
267CONFIG_NET=y 293CONFIG_NET=y
268 294
269# 295#
@@ -452,9 +478,11 @@ CONFIG_MTD_NAND_IDS=y
452# CONFIG_MTD_UBI is not set 478# CONFIG_MTD_UBI is not set
453CONFIG_OF_DEVICE=y 479CONFIG_OF_DEVICE=y
454CONFIG_OF_I2C=y 480CONFIG_OF_I2C=y
481CONFIG_OF_SPI=y
455# CONFIG_PARPORT is not set 482# CONFIG_PARPORT is not set
456CONFIG_BLK_DEV=y 483CONFIG_BLK_DEV=y
457# CONFIG_BLK_DEV_FD is not set 484# CONFIG_BLK_DEV_FD is not set
485# CONFIG_MAC_FLOPPY is not set
458# CONFIG_BLK_CPQ_DA is not set 486# CONFIG_BLK_CPQ_DA is not set
459# CONFIG_BLK_CPQ_CISS_DA is not set 487# CONFIG_BLK_CPQ_CISS_DA is not set
460# CONFIG_BLK_DEV_DAC960 is not set 488# CONFIG_BLK_DEV_DAC960 is not set
@@ -471,12 +499,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
471# CONFIG_BLK_DEV_XIP is not set 499# CONFIG_BLK_DEV_XIP is not set
472# CONFIG_CDROM_PKTCDVD is not set 500# CONFIG_CDROM_PKTCDVD is not set
473# CONFIG_ATA_OVER_ETH is not set 501# CONFIG_ATA_OVER_ETH is not set
502# CONFIG_BLK_DEV_HD is not set
474CONFIG_MISC_DEVICES=y 503CONFIG_MISC_DEVICES=y
475# CONFIG_PHANTOM is not set 504# CONFIG_PHANTOM is not set
476# CONFIG_EEPROM_93CX6 is not set 505# CONFIG_EEPROM_93CX6 is not set
477# CONFIG_SGI_IOC4 is not set 506# CONFIG_SGI_IOC4 is not set
478# CONFIG_TIFM_CORE is not set 507# CONFIG_TIFM_CORE is not set
479# CONFIG_ENCLOSURE_SERVICES is not set 508# CONFIG_ENCLOSURE_SERVICES is not set
509# CONFIG_HP_ILO is not set
480CONFIG_HAVE_IDE=y 510CONFIG_HAVE_IDE=y
481# CONFIG_IDE is not set 511# CONFIG_IDE is not set
482 512
@@ -554,7 +584,10 @@ CONFIG_SCSI_LOWLEVEL=y
554# CONFIG_SCSI_DC390T is not set 584# CONFIG_SCSI_DC390T is not set
555# CONFIG_SCSI_NSP32 is not set 585# CONFIG_SCSI_NSP32 is not set
556# CONFIG_SCSI_DEBUG is not set 586# CONFIG_SCSI_DEBUG is not set
587# CONFIG_SCSI_MESH is not set
588# CONFIG_SCSI_MAC53C94 is not set
557# CONFIG_SCSI_SRP is not set 589# CONFIG_SCSI_SRP is not set
590# CONFIG_SCSI_DH is not set
558CONFIG_ATA=y 591CONFIG_ATA=y
559# CONFIG_ATA_NONSTANDARD is not set 592# CONFIG_ATA_NONSTANDARD is not set
560CONFIG_SATA_PMP=y 593CONFIG_SATA_PMP=y
@@ -631,12 +664,15 @@ CONFIG_MD_RAID1=y
631# 664#
632# IEEE 1394 (FireWire) support 665# IEEE 1394 (FireWire) support
633# 666#
667
668#
669# Enable only one of the two stacks, unless you know what you are doing
670#
634# CONFIG_FIREWIRE is not set 671# CONFIG_FIREWIRE is not set
635# CONFIG_IEEE1394 is not set 672# CONFIG_IEEE1394 is not set
636# CONFIG_I2O is not set 673# CONFIG_I2O is not set
637# CONFIG_MACINTOSH_DRIVERS is not set 674# CONFIG_MACINTOSH_DRIVERS is not set
638CONFIG_NETDEVICES=y 675CONFIG_NETDEVICES=y
639# CONFIG_NETDEVICES_MULTIQUEUE is not set
640# CONFIG_DUMMY is not set 676# CONFIG_DUMMY is not set
641# CONFIG_BONDING is not set 677# CONFIG_BONDING is not set
642# CONFIG_MACVLAN is not set 678# CONFIG_MACVLAN is not set
@@ -663,6 +699,8 @@ CONFIG_PHYLIB=y
663# CONFIG_MDIO_BITBANG is not set 699# CONFIG_MDIO_BITBANG is not set
664CONFIG_NET_ETHERNET=y 700CONFIG_NET_ETHERNET=y
665CONFIG_MII=y 701CONFIG_MII=y
702# CONFIG_MACE is not set
703# CONFIG_BMAC is not set
666# CONFIG_HAPPYMEAL is not set 704# CONFIG_HAPPYMEAL is not set
667# CONFIG_SUNGEM is not set 705# CONFIG_SUNGEM is not set
668# CONFIG_CASSINI is not set 706# CONFIG_CASSINI is not set
@@ -699,7 +737,6 @@ CONFIG_NETDEV_1000=y
699# CONFIG_DL2K is not set 737# CONFIG_DL2K is not set
700# CONFIG_E1000 is not set 738# CONFIG_E1000 is not set
701# CONFIG_E1000E is not set 739# CONFIG_E1000E is not set
702# CONFIG_E1000E_ENABLED is not set
703# CONFIG_IP1000 is not set 740# CONFIG_IP1000 is not set
704# CONFIG_IGB is not set 741# CONFIG_IGB is not set
705# CONFIG_NS83820 is not set 742# CONFIG_NS83820 is not set
@@ -713,9 +750,10 @@ CONFIG_NETDEV_1000=y
713# CONFIG_TIGON3 is not set 750# CONFIG_TIGON3 is not set
714# CONFIG_BNX2 is not set 751# CONFIG_BNX2 is not set
715CONFIG_GIANFAR=y 752CONFIG_GIANFAR=y
716CONFIG_GFAR_NAPI=y 753# CONFIG_MV643XX_ETH is not set
717# CONFIG_QLA3XXX is not set 754# CONFIG_QLA3XXX is not set
718# CONFIG_ATL1 is not set 755# CONFIG_ATL1 is not set
756# CONFIG_ATL1E is not set
719CONFIG_NETDEV_10000=y 757CONFIG_NETDEV_10000=y
720# CONFIG_CHELSIO_T1 is not set 758# CONFIG_CHELSIO_T1 is not set
721# CONFIG_CHELSIO_T3 is not set 759# CONFIG_CHELSIO_T3 is not set
@@ -813,11 +851,14 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
813# CONFIG_SERIAL_UARTLITE is not set 851# CONFIG_SERIAL_UARTLITE is not set
814CONFIG_SERIAL_CORE=y 852CONFIG_SERIAL_CORE=y
815CONFIG_SERIAL_CORE_CONSOLE=y 853CONFIG_SERIAL_CORE_CONSOLE=y
854# CONFIG_SERIAL_PMACZILOG is not set
816# CONFIG_SERIAL_JSM is not set 855# CONFIG_SERIAL_JSM is not set
817# CONFIG_SERIAL_OF_PLATFORM is not set 856# CONFIG_SERIAL_OF_PLATFORM is not set
818CONFIG_UNIX98_PTYS=y 857CONFIG_UNIX98_PTYS=y
819CONFIG_LEGACY_PTYS=y 858CONFIG_LEGACY_PTYS=y
820CONFIG_LEGACY_PTY_COUNT=256 859CONFIG_LEGACY_PTY_COUNT=256
860# CONFIG_BRIQ_PANEL is not set
861# CONFIG_HVC_RTAS is not set
821# CONFIG_IPMI_HANDLER is not set 862# CONFIG_IPMI_HANDLER is not set
822CONFIG_HW_RANDOM=y 863CONFIG_HW_RANDOM=y
823# CONFIG_NVRAM is not set 864# CONFIG_NVRAM is not set
@@ -829,43 +870,70 @@ CONFIG_DEVPORT=y
829CONFIG_I2C=y 870CONFIG_I2C=y
830CONFIG_I2C_BOARDINFO=y 871CONFIG_I2C_BOARDINFO=y
831CONFIG_I2C_CHARDEV=y 872CONFIG_I2C_CHARDEV=y
873CONFIG_I2C_HELPER_AUTO=y
832 874
833# 875#
834# I2C Hardware Bus support 876# I2C Hardware Bus support
835# 877#
878
879#
880# PC SMBus host controller drivers
881#
836# CONFIG_I2C_ALI1535 is not set 882# CONFIG_I2C_ALI1535 is not set
837# CONFIG_I2C_ALI1563 is not set 883# CONFIG_I2C_ALI1563 is not set
838# CONFIG_I2C_ALI15X3 is not set 884# CONFIG_I2C_ALI15X3 is not set
839# CONFIG_I2C_AMD756 is not set 885# CONFIG_I2C_AMD756 is not set
840# CONFIG_I2C_AMD8111 is not set 886# CONFIG_I2C_AMD8111 is not set
841# CONFIG_I2C_I801 is not set 887# CONFIG_I2C_I801 is not set
842# CONFIG_I2C_I810 is not set 888# CONFIG_I2C_ISCH is not set
843# CONFIG_I2C_PIIX4 is not set 889# CONFIG_I2C_PIIX4 is not set
844CONFIG_I2C_MPC=y
845# CONFIG_I2C_NFORCE2 is not set 890# CONFIG_I2C_NFORCE2 is not set
846# CONFIG_I2C_OCORES is not set
847# CONFIG_I2C_PARPORT_LIGHT is not set
848# CONFIG_I2C_PROSAVAGE is not set
849# CONFIG_I2C_SAVAGE4 is not set
850# CONFIG_I2C_SIMTEC is not set
851# CONFIG_I2C_SIS5595 is not set 891# CONFIG_I2C_SIS5595 is not set
852# CONFIG_I2C_SIS630 is not set 892# CONFIG_I2C_SIS630 is not set
853# CONFIG_I2C_SIS96X is not set 893# CONFIG_I2C_SIS96X is not set
854# CONFIG_I2C_TAOS_EVM is not set
855# CONFIG_I2C_STUB is not set
856# CONFIG_I2C_TINY_USB is not set
857# CONFIG_I2C_VIA is not set 894# CONFIG_I2C_VIA is not set
858# CONFIG_I2C_VIAPRO is not set 895# CONFIG_I2C_VIAPRO is not set
896
897#
898# Mac SMBus host controller drivers
899#
900# CONFIG_I2C_HYDRA is not set
901CONFIG_I2C_POWERMAC=y
902
903#
904# I2C system bus drivers (mostly embedded / system-on-chip)
905#
906CONFIG_I2C_MPC=y
907# CONFIG_I2C_OCORES is not set
908# CONFIG_I2C_SIMTEC is not set
909
910#
911# External I2C/SMBus adapter drivers
912#
913# CONFIG_I2C_PARPORT_LIGHT is not set
914# CONFIG_I2C_TAOS_EVM is not set
915# CONFIG_I2C_TINY_USB is not set
916
917#
918# Graphics adapter I2C/DDC channel drivers
919#
859# CONFIG_I2C_VOODOO3 is not set 920# CONFIG_I2C_VOODOO3 is not set
921
922#
923# Other I2C/SMBus bus drivers
924#
860# CONFIG_I2C_PCA_PLATFORM is not set 925# CONFIG_I2C_PCA_PLATFORM is not set
926# CONFIG_I2C_STUB is not set
861 927
862# 928#
863# Miscellaneous I2C Chip support 929# Miscellaneous I2C Chip support
864# 930#
865# CONFIG_DS1682 is not set 931# CONFIG_DS1682 is not set
932# CONFIG_AT24 is not set
866# CONFIG_SENSORS_EEPROM is not set 933# CONFIG_SENSORS_EEPROM is not set
867# CONFIG_SENSORS_PCF8574 is not set 934# CONFIG_SENSORS_PCF8574 is not set
868# CONFIG_PCF8575 is not set 935# CONFIG_PCF8575 is not set
936# CONFIG_SENSORS_PCA9539 is not set
869# CONFIG_SENSORS_PCF8591 is not set 937# CONFIG_SENSORS_PCF8591 is not set
870# CONFIG_SENSORS_MAX6875 is not set 938# CONFIG_SENSORS_MAX6875 is not set
871# CONFIG_SENSORS_TSL2550 is not set 939# CONFIG_SENSORS_TSL2550 is not set
@@ -889,11 +957,15 @@ CONFIG_SPI_MPC83xx=y
889# CONFIG_SPI_AT25 is not set 957# CONFIG_SPI_AT25 is not set
890# CONFIG_SPI_SPIDEV is not set 958# CONFIG_SPI_SPIDEV is not set
891# CONFIG_SPI_TLE62X0 is not set 959# CONFIG_SPI_TLE62X0 is not set
960CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
961# CONFIG_GPIOLIB is not set
892# CONFIG_W1 is not set 962# CONFIG_W1 is not set
893# CONFIG_POWER_SUPPLY is not set 963# CONFIG_POWER_SUPPLY is not set
894CONFIG_HWMON=y 964CONFIG_HWMON=y
895# CONFIG_HWMON_VID is not set 965# CONFIG_HWMON_VID is not set
966# CONFIG_SENSORS_AD7414 is not set
896# CONFIG_SENSORS_AD7418 is not set 967# CONFIG_SENSORS_AD7418 is not set
968# CONFIG_SENSORS_ADCXX is not set
897# CONFIG_SENSORS_ADM1021 is not set 969# CONFIG_SENSORS_ADM1021 is not set
898# CONFIG_SENSORS_ADM1025 is not set 970# CONFIG_SENSORS_ADM1025 is not set
899# CONFIG_SENSORS_ADM1026 is not set 971# CONFIG_SENSORS_ADM1026 is not set
@@ -902,6 +974,7 @@ CONFIG_HWMON=y
902# CONFIG_SENSORS_ADM9240 is not set 974# CONFIG_SENSORS_ADM9240 is not set
903# CONFIG_SENSORS_ADT7470 is not set 975# CONFIG_SENSORS_ADT7470 is not set
904# CONFIG_SENSORS_ADT7473 is not set 976# CONFIG_SENSORS_ADT7473 is not set
977# CONFIG_SENSORS_AMS is not set
905# CONFIG_SENSORS_ATXP1 is not set 978# CONFIG_SENSORS_ATXP1 is not set
906# CONFIG_SENSORS_DS1621 is not set 979# CONFIG_SENSORS_DS1621 is not set
907# CONFIG_SENSORS_I5K_AMB is not set 980# CONFIG_SENSORS_I5K_AMB is not set
@@ -947,6 +1020,7 @@ CONFIG_HWMON=y
947# CONFIG_SENSORS_W83627EHF is not set 1020# CONFIG_SENSORS_W83627EHF is not set
948# CONFIG_HWMON_DEBUG_CHIP is not set 1021# CONFIG_HWMON_DEBUG_CHIP is not set
949# CONFIG_THERMAL is not set 1022# CONFIG_THERMAL is not set
1023# CONFIG_THERMAL_HWMON is not set
950CONFIG_WATCHDOG=y 1024CONFIG_WATCHDOG=y
951# CONFIG_WATCHDOG_NOWAYOUT is not set 1025# CONFIG_WATCHDOG_NOWAYOUT is not set
952 1026
@@ -954,7 +1028,9 @@ CONFIG_WATCHDOG=y
954# Watchdog Device Drivers 1028# Watchdog Device Drivers
955# 1029#
956# CONFIG_SOFT_WATCHDOG is not set 1030# CONFIG_SOFT_WATCHDOG is not set
957CONFIG_83xx_WDT=y 1031# CONFIG_ALIM7101_WDT is not set
1032# CONFIG_8xxx_WDT is not set
1033# CONFIG_WATCHDOG_RTAS is not set
958 1034
959# 1035#
960# PCI-based Watchdog Cards 1036# PCI-based Watchdog Cards
@@ -976,8 +1052,10 @@ CONFIG_SSB_POSSIBLE=y
976# 1052#
977# Multifunction device drivers 1053# Multifunction device drivers
978# 1054#
1055# CONFIG_MFD_CORE is not set
979# CONFIG_MFD_SM501 is not set 1056# CONFIG_MFD_SM501 is not set
980# CONFIG_HTC_PASIC3 is not set 1057# CONFIG_HTC_PASIC3 is not set
1058# CONFIG_MFD_TMIO is not set
981 1059
982# 1060#
983# Multimedia devices 1061# Multimedia devices
@@ -1010,10 +1088,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
1010# Display device support 1088# Display device support
1011# 1089#
1012# CONFIG_DISPLAY_SUPPORT is not set 1090# CONFIG_DISPLAY_SUPPORT is not set
1013
1014#
1015# Sound
1016#
1017# CONFIG_SOUND is not set 1091# CONFIG_SOUND is not set
1018CONFIG_HID_SUPPORT=y 1092CONFIG_HID_SUPPORT=y
1019CONFIG_HID=y 1093CONFIG_HID=y
@@ -1047,6 +1121,7 @@ CONFIG_USB_DEVICE_CLASS=y
1047# CONFIG_USB_OTG is not set 1121# CONFIG_USB_OTG is not set
1048# CONFIG_USB_OTG_WHITELIST is not set 1122# CONFIG_USB_OTG_WHITELIST is not set
1049# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1123# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1124CONFIG_USB_MON=y
1050 1125
1051# 1126#
1052# USB Host Controller Drivers 1127# USB Host Controller Drivers
@@ -1070,6 +1145,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1070CONFIG_USB_UHCI_HCD=y 1145CONFIG_USB_UHCI_HCD=y
1071# CONFIG_USB_SL811_HCD is not set 1146# CONFIG_USB_SL811_HCD is not set
1072# CONFIG_USB_R8A66597_HCD is not set 1147# CONFIG_USB_R8A66597_HCD is not set
1148# CONFIG_USB_GADGET_MUSB_HDRC is not set
1073 1149
1074# 1150#
1075# USB Device Class drivers 1151# USB Device Class drivers
@@ -1098,6 +1174,7 @@ CONFIG_USB_STORAGE=y
1098# CONFIG_USB_STORAGE_ALAUDA is not set 1174# CONFIG_USB_STORAGE_ALAUDA is not set
1099# CONFIG_USB_STORAGE_ONETOUCH is not set 1175# CONFIG_USB_STORAGE_ONETOUCH is not set
1100# CONFIG_USB_STORAGE_KARMA is not set 1176# CONFIG_USB_STORAGE_KARMA is not set
1177# CONFIG_USB_STORAGE_SIERRA is not set
1101# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1178# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1102# CONFIG_USB_LIBUSUAL is not set 1179# CONFIG_USB_LIBUSUAL is not set
1103 1180
@@ -1106,7 +1183,6 @@ CONFIG_USB_STORAGE=y
1106# 1183#
1107# CONFIG_USB_MDC800 is not set 1184# CONFIG_USB_MDC800 is not set
1108# CONFIG_USB_MICROTEK is not set 1185# CONFIG_USB_MICROTEK is not set
1109CONFIG_USB_MON=y
1110 1186
1111# 1187#
1112# USB port drivers 1188# USB port drivers
@@ -1119,7 +1195,6 @@ CONFIG_USB_MON=y
1119# CONFIG_USB_EMI62 is not set 1195# CONFIG_USB_EMI62 is not set
1120# CONFIG_USB_EMI26 is not set 1196# CONFIG_USB_EMI26 is not set
1121# CONFIG_USB_ADUTUX is not set 1197# CONFIG_USB_ADUTUX is not set
1122# CONFIG_USB_AUERSWALD is not set
1123# CONFIG_USB_RIO500 is not set 1198# CONFIG_USB_RIO500 is not set
1124# CONFIG_USB_LEGOTOWER is not set 1199# CONFIG_USB_LEGOTOWER is not set
1125# CONFIG_USB_LCD is not set 1200# CONFIG_USB_LCD is not set
@@ -1146,7 +1221,7 @@ CONFIG_USB_GADGET_SELECTED=y
1146# CONFIG_USB_GADGET_FSL_USB2 is not set 1221# CONFIG_USB_GADGET_FSL_USB2 is not set
1147CONFIG_USB_GADGET_NET2280=y 1222CONFIG_USB_GADGET_NET2280=y
1148CONFIG_USB_NET2280=y 1223CONFIG_USB_NET2280=y
1149# CONFIG_USB_GADGET_PXA2XX is not set 1224# CONFIG_USB_GADGET_PXA25X is not set
1150# CONFIG_USB_GADGET_M66592 is not set 1225# CONFIG_USB_GADGET_M66592 is not set
1151# CONFIG_USB_GADGET_PXA27X is not set 1226# CONFIG_USB_GADGET_PXA27X is not set
1152# CONFIG_USB_GADGET_GOKU is not set 1227# CONFIG_USB_GADGET_GOKU is not set
@@ -1164,6 +1239,7 @@ CONFIG_USB_ETH_RNDIS=y
1164# CONFIG_USB_G_SERIAL is not set 1239# CONFIG_USB_G_SERIAL is not set
1165# CONFIG_USB_MIDI_GADGET is not set 1240# CONFIG_USB_MIDI_GADGET is not set
1166# CONFIG_USB_G_PRINTER is not set 1241# CONFIG_USB_G_PRINTER is not set
1242# CONFIG_USB_CDC_COMPOSITE is not set
1167# CONFIG_MMC is not set 1243# CONFIG_MMC is not set
1168# CONFIG_MEMSTICK is not set 1244# CONFIG_MEMSTICK is not set
1169# CONFIG_NEW_LEDS is not set 1245# CONFIG_NEW_LEDS is not set
@@ -1199,10 +1275,13 @@ CONFIG_RTC_DRV_DS1307=y
1199# CONFIG_RTC_DRV_PCF8583 is not set 1275# CONFIG_RTC_DRV_PCF8583 is not set
1200# CONFIG_RTC_DRV_M41T80 is not set 1276# CONFIG_RTC_DRV_M41T80 is not set
1201# CONFIG_RTC_DRV_S35390A is not set 1277# CONFIG_RTC_DRV_S35390A is not set
1278# CONFIG_RTC_DRV_FM3130 is not set
1202 1279
1203# 1280#
1204# SPI RTC drivers 1281# SPI RTC drivers
1205# 1282#
1283# CONFIG_RTC_DRV_M41T94 is not set
1284# CONFIG_RTC_DRV_DS1305 is not set
1206# CONFIG_RTC_DRV_MAX6902 is not set 1285# CONFIG_RTC_DRV_MAX6902 is not set
1207# CONFIG_RTC_DRV_R9701 is not set 1286# CONFIG_RTC_DRV_R9701 is not set
1208# CONFIG_RTC_DRV_RS5C348 is not set 1287# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1301,6 +1380,7 @@ CONFIG_JFFS2_RTIME=y
1301# CONFIG_CRAMFS is not set 1380# CONFIG_CRAMFS is not set
1302# CONFIG_VXFS_FS is not set 1381# CONFIG_VXFS_FS is not set
1303# CONFIG_MINIX_FS is not set 1382# CONFIG_MINIX_FS is not set
1383# CONFIG_OMFS_FS is not set
1304# CONFIG_HPFS_FS is not set 1384# CONFIG_HPFS_FS is not set
1305# CONFIG_QNX4FS_FS is not set 1385# CONFIG_QNX4FS_FS is not set
1306# CONFIG_ROMFS_FS is not set 1386# CONFIG_ROMFS_FS is not set
@@ -1311,14 +1391,13 @@ CONFIG_NFS_FS=y
1311CONFIG_NFS_V3=y 1391CONFIG_NFS_V3=y
1312# CONFIG_NFS_V3_ACL is not set 1392# CONFIG_NFS_V3_ACL is not set
1313CONFIG_NFS_V4=y 1393CONFIG_NFS_V4=y
1314# CONFIG_NFSD is not set
1315CONFIG_ROOT_NFS=y 1394CONFIG_ROOT_NFS=y
1395# CONFIG_NFSD is not set
1316CONFIG_LOCKD=y 1396CONFIG_LOCKD=y
1317CONFIG_LOCKD_V4=y 1397CONFIG_LOCKD_V4=y
1318CONFIG_NFS_COMMON=y 1398CONFIG_NFS_COMMON=y
1319CONFIG_SUNRPC=y 1399CONFIG_SUNRPC=y
1320CONFIG_SUNRPC_GSS=y 1400CONFIG_SUNRPC_GSS=y
1321# CONFIG_SUNRPC_BIND34 is not set
1322CONFIG_RPCSEC_GSS_KRB5=y 1401CONFIG_RPCSEC_GSS_KRB5=y
1323# CONFIG_RPCSEC_GSS_SPKM3 is not set 1402# CONFIG_RPCSEC_GSS_SPKM3 is not set
1324# CONFIG_SMB_FS is not set 1403# CONFIG_SMB_FS is not set
@@ -1358,6 +1437,7 @@ CONFIG_BITREVERSE=y
1358# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1437# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1359# CONFIG_CRC_CCITT is not set 1438# CONFIG_CRC_CCITT is not set
1360# CONFIG_CRC16 is not set 1439# CONFIG_CRC16 is not set
1440# CONFIG_CRC_T10DIF is not set
1361# CONFIG_CRC_ITU_T is not set 1441# CONFIG_CRC_ITU_T is not set
1362CONFIG_CRC32=y 1442CONFIG_CRC32=y
1363# CONFIG_CRC7 is not set 1443# CONFIG_CRC7 is not set
@@ -1384,6 +1464,8 @@ CONFIG_FRAME_WARN=1024
1384CONFIG_DEBUG_KERNEL=y 1464CONFIG_DEBUG_KERNEL=y
1385# CONFIG_DEBUG_SHIRQ is not set 1465# CONFIG_DEBUG_SHIRQ is not set
1386CONFIG_DETECT_SOFTLOCKUP=y 1466CONFIG_DETECT_SOFTLOCKUP=y
1467# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1468CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1387CONFIG_SCHED_DEBUG=y 1469CONFIG_SCHED_DEBUG=y
1388# CONFIG_SCHEDSTATS is not set 1470# CONFIG_SCHEDSTATS is not set
1389# CONFIG_TIMER_STATS is not set 1471# CONFIG_TIMER_STATS is not set
@@ -1401,19 +1483,32 @@ CONFIG_SCHED_DEBUG=y
1401# CONFIG_DEBUG_INFO is not set 1483# CONFIG_DEBUG_INFO is not set
1402# CONFIG_DEBUG_VM is not set 1484# CONFIG_DEBUG_VM is not set
1403# CONFIG_DEBUG_WRITECOUNT is not set 1485# CONFIG_DEBUG_WRITECOUNT is not set
1486# CONFIG_DEBUG_MEMORY_INIT is not set
1404# CONFIG_DEBUG_LIST is not set 1487# CONFIG_DEBUG_LIST is not set
1405# CONFIG_DEBUG_SG is not set 1488# CONFIG_DEBUG_SG is not set
1406# CONFIG_BOOT_PRINTK_DELAY is not set 1489# CONFIG_BOOT_PRINTK_DELAY is not set
1407# CONFIG_RCU_TORTURE_TEST is not set 1490# CONFIG_RCU_TORTURE_TEST is not set
1408# CONFIG_BACKTRACE_SELF_TEST is not set 1491# CONFIG_BACKTRACE_SELF_TEST is not set
1409# CONFIG_FAULT_INJECTION is not set 1492# CONFIG_FAULT_INJECTION is not set
1493# CONFIG_LATENCYTOP is not set
1494CONFIG_SYSCTL_SYSCALL_CHECK=y
1495CONFIG_HAVE_FTRACE=y
1496CONFIG_HAVE_DYNAMIC_FTRACE=y
1497# CONFIG_FTRACE is not set
1498# CONFIG_SCHED_TRACER is not set
1499# CONFIG_CONTEXT_SWITCH_TRACER is not set
1410# CONFIG_SAMPLES is not set 1500# CONFIG_SAMPLES is not set
1501CONFIG_HAVE_ARCH_KGDB=y
1502# CONFIG_KGDB is not set
1411# CONFIG_DEBUG_STACKOVERFLOW is not set 1503# CONFIG_DEBUG_STACKOVERFLOW is not set
1412# CONFIG_DEBUG_STACK_USAGE is not set 1504# CONFIG_DEBUG_STACK_USAGE is not set
1413# CONFIG_DEBUG_PAGEALLOC is not set 1505# CONFIG_DEBUG_PAGEALLOC is not set
1414# CONFIG_DEBUGGER is not set 1506# CONFIG_CODE_PATCHING_SELFTEST is not set
1507# CONFIG_FTR_FIXUP_SELFTEST is not set
1508# CONFIG_XMON is not set
1415# CONFIG_IRQSTACKS is not set 1509# CONFIG_IRQSTACKS is not set
1416# CONFIG_BDI_SWITCH is not set 1510# CONFIG_BDI_SWITCH is not set
1511# CONFIG_BOOTX_TEXT is not set
1417# CONFIG_PPC_EARLY_DEBUG is not set 1512# CONFIG_PPC_EARLY_DEBUG is not set
1418 1513
1419# 1514#
@@ -1467,6 +1562,10 @@ CONFIG_CRYPTO_PCBC=m
1467# CONFIG_CRYPTO_MD4 is not set 1562# CONFIG_CRYPTO_MD4 is not set
1468CONFIG_CRYPTO_MD5=y 1563CONFIG_CRYPTO_MD5=y
1469# CONFIG_CRYPTO_MICHAEL_MIC is not set 1564# CONFIG_CRYPTO_MICHAEL_MIC is not set
1565# CONFIG_CRYPTO_RMD128 is not set
1566# CONFIG_CRYPTO_RMD160 is not set
1567# CONFIG_CRYPTO_RMD256 is not set
1568# CONFIG_CRYPTO_RMD320 is not set
1470# CONFIG_CRYPTO_SHA1 is not set 1569# CONFIG_CRYPTO_SHA1 is not set
1471# CONFIG_CRYPTO_SHA256 is not set 1570# CONFIG_CRYPTO_SHA256 is not set
1472# CONFIG_CRYPTO_SHA512 is not set 1571# CONFIG_CRYPTO_SHA512 is not set
@@ -1499,5 +1598,6 @@ CONFIG_CRYPTO_DES=y
1499# CONFIG_CRYPTO_LZO is not set 1598# CONFIG_CRYPTO_LZO is not set
1500CONFIG_CRYPTO_HW=y 1599CONFIG_CRYPTO_HW=y
1501# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1600# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1601# CONFIG_CRYPTO_DEV_TALITOS is not set
1502# CONFIG_PPC_CLOCK is not set 1602# CONFIG_PPC_CLOCK is not set
1503# CONFIG_VIRTUALIZATION is not set 1603# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
index 1eca26f3659..bdf50c8a17e 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:22 2008 4# Thu Aug 21 00:52:18 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162# CONFIG_MPC831x_RDB is not set 176# CONFIG_MPC831x_RDB is not set
163CONFIG_MPC832x_MDS=y 177CONFIG_MPC832x_MDS=y
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166# CONFIG_MPC834x_ITX is not set 180# CONFIG_MPC834x_ITX is not set
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC832x=y 187CONFIG_PPC_MPC832x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183CONFIG_QUICC_ENGINE=y 207CONFIG_QUICC_ENGINE=y
184# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
185 209
@@ -196,7 +220,7 @@ CONFIG_HZ_250=y
196# CONFIG_HZ_300 is not set 220# CONFIG_HZ_300 is not set
197# CONFIG_HZ_1000 is not set 221# CONFIG_HZ_1000 is not set
198CONFIG_HZ=250 222CONFIG_HZ=250
199# CONFIG_SCHED_HRTICK is not set 223CONFIG_SCHED_HRTICK=y
200CONFIG_PREEMPT_NONE=y 224CONFIG_PREEMPT_NONE=y
201# CONFIG_PREEMPT_VOLUNTARY is not set 225# CONFIG_PREEMPT_VOLUNTARY is not set
202# CONFIG_PREEMPT is not set 226# CONFIG_PREEMPT is not set
@@ -207,6 +231,7 @@ CONFIG_MATH_EMULATION=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
208CONFIG_ARCH_HAS_WALK_MEMORY=y 232CONFIG_ARCH_HAS_WALK_MEMORY=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 233CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
234# CONFIG_KEXEC is not set
210CONFIG_ARCH_FLATMEM_ENABLE=y 235CONFIG_ARCH_FLATMEM_ENABLE=y
211CONFIG_ARCH_POPULATES_NODE_MAP=y 236CONFIG_ARCH_POPULATES_NODE_MAP=y
212CONFIG_SELECT_MEMORY_MODEL=y 237CONFIG_SELECT_MEMORY_MODEL=y
@@ -219,6 +244,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 244# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y 245CONFIG_PAGEFLAGS_EXTENDED=y
221CONFIG_SPLIT_PTLOCK_CPUS=4 246CONFIG_SPLIT_PTLOCK_CPUS=4
247CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set 248# CONFIG_RESOURCES_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=1 249CONFIG_ZONE_DMA_FLAG=1
224CONFIG_BOUNCE=y 250CONFIG_BOUNCE=y
@@ -226,6 +252,7 @@ CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
227CONFIG_PROC_DEVICETREE=y 253CONFIG_PROC_DEVICETREE=y
228# CONFIG_CMDLINE_BOOL is not set 254# CONFIG_CMDLINE_BOOL is not set
255CONFIG_EXTRA_TARGETS=""
229# CONFIG_PM is not set 256# CONFIG_PM is not set
230CONFIG_SECCOMP=y 257CONFIG_SECCOMP=y
231CONFIG_ISA_DMA_API=y 258CONFIG_ISA_DMA_API=y
@@ -233,10 +260,13 @@ CONFIG_ISA_DMA_API=y
233# 260#
234# Bus options 261# Bus options
235# 262#
263# CONFIG_ISA is not set
236CONFIG_ZONE_DMA=y 264CONFIG_ZONE_DMA=y
237CONFIG_GENERIC_ISA_DMA=y 265CONFIG_GENERIC_ISA_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 266CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 267CONFIG_FSL_SOC=y
268CONFIG_FSL_PCI=y
269CONFIG_PPC_PCI_CHOICE=y
240CONFIG_PCI=y 270CONFIG_PCI=y
241CONFIG_PCI_DOMAINS=y 271CONFIG_PCI_DOMAINS=y
242CONFIG_PCI_SYSCALL=y 272CONFIG_PCI_SYSCALL=y
@@ -261,10 +291,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
261CONFIG_KERNEL_START=0xc0000000 291CONFIG_KERNEL_START=0xc0000000
262CONFIG_PHYSICAL_START=0x00000000 292CONFIG_PHYSICAL_START=0x00000000
263CONFIG_TASK_SIZE=0xc0000000 293CONFIG_TASK_SIZE=0xc0000000
264
265#
266# Networking
267#
268CONFIG_NET=y 294CONFIG_NET=y
269 295
270# 296#
@@ -365,6 +391,7 @@ CONFIG_OF_I2C=y
365# CONFIG_PARPORT is not set 391# CONFIG_PARPORT is not set
366CONFIG_BLK_DEV=y 392CONFIG_BLK_DEV=y
367# CONFIG_BLK_DEV_FD is not set 393# CONFIG_BLK_DEV_FD is not set
394# CONFIG_MAC_FLOPPY is not set
368# CONFIG_BLK_CPQ_DA is not set 395# CONFIG_BLK_CPQ_DA is not set
369# CONFIG_BLK_CPQ_CISS_DA is not set 396# CONFIG_BLK_CPQ_CISS_DA is not set
370# CONFIG_BLK_DEV_DAC960 is not set 397# CONFIG_BLK_DEV_DAC960 is not set
@@ -380,12 +407,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
380# CONFIG_BLK_DEV_XIP is not set 407# CONFIG_BLK_DEV_XIP is not set
381# CONFIG_CDROM_PKTCDVD is not set 408# CONFIG_CDROM_PKTCDVD is not set
382# CONFIG_ATA_OVER_ETH is not set 409# CONFIG_ATA_OVER_ETH is not set
410# CONFIG_BLK_DEV_HD is not set
383CONFIG_MISC_DEVICES=y 411CONFIG_MISC_DEVICES=y
384# CONFIG_PHANTOM is not set 412# CONFIG_PHANTOM is not set
385# CONFIG_EEPROM_93CX6 is not set 413# CONFIG_EEPROM_93CX6 is not set
386# CONFIG_SGI_IOC4 is not set 414# CONFIG_SGI_IOC4 is not set
387# CONFIG_TIFM_CORE is not set 415# CONFIG_TIFM_CORE is not set
388# CONFIG_ENCLOSURE_SERVICES is not set 416# CONFIG_ENCLOSURE_SERVICES is not set
417# CONFIG_HP_ILO is not set
389CONFIG_HAVE_IDE=y 418CONFIG_HAVE_IDE=y
390# CONFIG_IDE is not set 419# CONFIG_IDE is not set
391 420
@@ -462,7 +491,10 @@ CONFIG_SCSI_LOWLEVEL=y
462# CONFIG_SCSI_DC390T is not set 491# CONFIG_SCSI_DC390T is not set
463# CONFIG_SCSI_NSP32 is not set 492# CONFIG_SCSI_NSP32 is not set
464# CONFIG_SCSI_DEBUG is not set 493# CONFIG_SCSI_DEBUG is not set
494# CONFIG_SCSI_MESH is not set
495# CONFIG_SCSI_MAC53C94 is not set
465# CONFIG_SCSI_SRP is not set 496# CONFIG_SCSI_SRP is not set
497# CONFIG_SCSI_DH is not set
466# CONFIG_ATA is not set 498# CONFIG_ATA is not set
467# CONFIG_MD is not set 499# CONFIG_MD is not set
468# CONFIG_FUSION is not set 500# CONFIG_FUSION is not set
@@ -470,12 +502,15 @@ CONFIG_SCSI_LOWLEVEL=y
470# 502#
471# IEEE 1394 (FireWire) support 503# IEEE 1394 (FireWire) support
472# 504#
505
506#
507# Enable only one of the two stacks, unless you know what you are doing
508#
473# CONFIG_FIREWIRE is not set 509# CONFIG_FIREWIRE is not set
474# CONFIG_IEEE1394 is not set 510# CONFIG_IEEE1394 is not set
475# CONFIG_I2O is not set 511# CONFIG_I2O is not set
476# CONFIG_MACINTOSH_DRIVERS is not set 512# CONFIG_MACINTOSH_DRIVERS is not set
477CONFIG_NETDEVICES=y 513CONFIG_NETDEVICES=y
478# CONFIG_NETDEVICES_MULTIQUEUE is not set
479# CONFIG_DUMMY is not set 514# CONFIG_DUMMY is not set
480# CONFIG_BONDING is not set 515# CONFIG_BONDING is not set
481# CONFIG_MACVLAN is not set 516# CONFIG_MACVLAN is not set
@@ -502,6 +537,8 @@ CONFIG_DAVICOM_PHY=y
502# CONFIG_MDIO_BITBANG is not set 537# CONFIG_MDIO_BITBANG is not set
503CONFIG_NET_ETHERNET=y 538CONFIG_NET_ETHERNET=y
504CONFIG_MII=y 539CONFIG_MII=y
540# CONFIG_MACE is not set
541# CONFIG_BMAC is not set
505# CONFIG_HAPPYMEAL is not set 542# CONFIG_HAPPYMEAL is not set
506# CONFIG_SUNGEM is not set 543# CONFIG_SUNGEM is not set
507# CONFIG_CASSINI is not set 544# CONFIG_CASSINI is not set
@@ -519,7 +556,6 @@ CONFIG_NETDEV_1000=y
519# CONFIG_DL2K is not set 556# CONFIG_DL2K is not set
520# CONFIG_E1000 is not set 557# CONFIG_E1000 is not set
521# CONFIG_E1000E is not set 558# CONFIG_E1000E is not set
522# CONFIG_E1000E_ENABLED is not set
523# CONFIG_IP1000 is not set 559# CONFIG_IP1000 is not set
524# CONFIG_IGB is not set 560# CONFIG_IGB is not set
525# CONFIG_NS83820 is not set 561# CONFIG_NS83820 is not set
@@ -534,12 +570,13 @@ CONFIG_NETDEV_1000=y
534# CONFIG_BNX2 is not set 570# CONFIG_BNX2 is not set
535# CONFIG_GIANFAR is not set 571# CONFIG_GIANFAR is not set
536CONFIG_UCC_GETH=y 572CONFIG_UCC_GETH=y
537# CONFIG_UGETH_NAPI is not set
538# CONFIG_UGETH_MAGIC_PACKET is not set 573# CONFIG_UGETH_MAGIC_PACKET is not set
539# CONFIG_UGETH_FILTERING is not set 574# CONFIG_UGETH_FILTERING is not set
540# CONFIG_UGETH_TX_ON_DEMAND is not set 575# CONFIG_UGETH_TX_ON_DEMAND is not set
576# CONFIG_MV643XX_ETH is not set
541# CONFIG_QLA3XXX is not set 577# CONFIG_QLA3XXX is not set
542# CONFIG_ATL1 is not set 578# CONFIG_ATL1 is not set
579# CONFIG_ATL1E is not set
543CONFIG_NETDEV_10000=y 580CONFIG_NETDEV_10000=y
544# CONFIG_CHELSIO_T1 is not set 581# CONFIG_CHELSIO_T1 is not set
545# CONFIG_CHELSIO_T3 is not set 582# CONFIG_CHELSIO_T3 is not set
@@ -628,12 +665,15 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
628# CONFIG_SERIAL_UARTLITE is not set 665# CONFIG_SERIAL_UARTLITE is not set
629CONFIG_SERIAL_CORE=y 666CONFIG_SERIAL_CORE=y
630CONFIG_SERIAL_CORE_CONSOLE=y 667CONFIG_SERIAL_CORE_CONSOLE=y
668# CONFIG_SERIAL_PMACZILOG is not set
631# CONFIG_SERIAL_JSM is not set 669# CONFIG_SERIAL_JSM is not set
632# CONFIG_SERIAL_OF_PLATFORM is not set 670# CONFIG_SERIAL_OF_PLATFORM is not set
633# CONFIG_SERIAL_QE is not set 671# CONFIG_SERIAL_QE is not set
634CONFIG_UNIX98_PTYS=y 672CONFIG_UNIX98_PTYS=y
635CONFIG_LEGACY_PTYS=y 673CONFIG_LEGACY_PTYS=y
636CONFIG_LEGACY_PTY_COUNT=256 674CONFIG_LEGACY_PTY_COUNT=256
675# CONFIG_BRIQ_PANEL is not set
676# CONFIG_HVC_RTAS is not set
637# CONFIG_IPMI_HANDLER is not set 677# CONFIG_IPMI_HANDLER is not set
638CONFIG_HW_RANDOM=y 678CONFIG_HW_RANDOM=y
639# CONFIG_NVRAM is not set 679# CONFIG_NVRAM is not set
@@ -645,42 +685,69 @@ CONFIG_DEVPORT=y
645CONFIG_I2C=y 685CONFIG_I2C=y
646CONFIG_I2C_BOARDINFO=y 686CONFIG_I2C_BOARDINFO=y
647CONFIG_I2C_CHARDEV=y 687CONFIG_I2C_CHARDEV=y
688CONFIG_I2C_HELPER_AUTO=y
648 689
649# 690#
650# I2C Hardware Bus support 691# I2C Hardware Bus support
651# 692#
693
694#
695# PC SMBus host controller drivers
696#
652# CONFIG_I2C_ALI1535 is not set 697# CONFIG_I2C_ALI1535 is not set
653# CONFIG_I2C_ALI1563 is not set 698# CONFIG_I2C_ALI1563 is not set
654# CONFIG_I2C_ALI15X3 is not set 699# CONFIG_I2C_ALI15X3 is not set
655# CONFIG_I2C_AMD756 is not set 700# CONFIG_I2C_AMD756 is not set
656# CONFIG_I2C_AMD8111 is not set 701# CONFIG_I2C_AMD8111 is not set
657# CONFIG_I2C_I801 is not set 702# CONFIG_I2C_I801 is not set
658# CONFIG_I2C_I810 is not set 703# CONFIG_I2C_ISCH is not set
659# CONFIG_I2C_PIIX4 is not set 704# CONFIG_I2C_PIIX4 is not set
660CONFIG_I2C_MPC=y
661# CONFIG_I2C_NFORCE2 is not set 705# CONFIG_I2C_NFORCE2 is not set
662# CONFIG_I2C_OCORES is not set
663# CONFIG_I2C_PARPORT_LIGHT is not set
664# CONFIG_I2C_PROSAVAGE is not set
665# CONFIG_I2C_SAVAGE4 is not set
666# CONFIG_I2C_SIMTEC is not set
667# CONFIG_I2C_SIS5595 is not set 706# CONFIG_I2C_SIS5595 is not set
668# CONFIG_I2C_SIS630 is not set 707# CONFIG_I2C_SIS630 is not set
669# CONFIG_I2C_SIS96X is not set 708# CONFIG_I2C_SIS96X is not set
670# CONFIG_I2C_TAOS_EVM is not set
671# CONFIG_I2C_STUB is not set
672# CONFIG_I2C_VIA is not set 709# CONFIG_I2C_VIA is not set
673# CONFIG_I2C_VIAPRO is not set 710# CONFIG_I2C_VIAPRO is not set
711
712#
713# Mac SMBus host controller drivers
714#
715# CONFIG_I2C_HYDRA is not set
716CONFIG_I2C_POWERMAC=y
717
718#
719# I2C system bus drivers (mostly embedded / system-on-chip)
720#
721CONFIG_I2C_MPC=y
722# CONFIG_I2C_OCORES is not set
723# CONFIG_I2C_SIMTEC is not set
724
725#
726# External I2C/SMBus adapter drivers
727#
728# CONFIG_I2C_PARPORT_LIGHT is not set
729# CONFIG_I2C_TAOS_EVM is not set
730
731#
732# Graphics adapter I2C/DDC channel drivers
733#
674# CONFIG_I2C_VOODOO3 is not set 734# CONFIG_I2C_VOODOO3 is not set
735
736#
737# Other I2C/SMBus bus drivers
738#
675# CONFIG_I2C_PCA_PLATFORM is not set 739# CONFIG_I2C_PCA_PLATFORM is not set
740# CONFIG_I2C_STUB is not set
676 741
677# 742#
678# Miscellaneous I2C Chip support 743# Miscellaneous I2C Chip support
679# 744#
680# CONFIG_DS1682 is not set 745# CONFIG_DS1682 is not set
746# CONFIG_AT24 is not set
681# CONFIG_SENSORS_EEPROM is not set 747# CONFIG_SENSORS_EEPROM is not set
682# CONFIG_SENSORS_PCF8574 is not set 748# CONFIG_SENSORS_PCF8574 is not set
683# CONFIG_PCF8575 is not set 749# CONFIG_PCF8575 is not set
750# CONFIG_SENSORS_PCA9539 is not set
684# CONFIG_SENSORS_PCF8591 is not set 751# CONFIG_SENSORS_PCF8591 is not set
685# CONFIG_SENSORS_MAX6875 is not set 752# CONFIG_SENSORS_MAX6875 is not set
686# CONFIG_SENSORS_TSL2550 is not set 753# CONFIG_SENSORS_TSL2550 is not set
@@ -689,10 +756,13 @@ CONFIG_I2C_MPC=y
689# CONFIG_I2C_DEBUG_BUS is not set 756# CONFIG_I2C_DEBUG_BUS is not set
690# CONFIG_I2C_DEBUG_CHIP is not set 757# CONFIG_I2C_DEBUG_CHIP is not set
691# CONFIG_SPI is not set 758# CONFIG_SPI is not set
759CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
760# CONFIG_GPIOLIB is not set
692# CONFIG_W1 is not set 761# CONFIG_W1 is not set
693# CONFIG_POWER_SUPPLY is not set 762# CONFIG_POWER_SUPPLY is not set
694CONFIG_HWMON=y 763CONFIG_HWMON=y
695# CONFIG_HWMON_VID is not set 764# CONFIG_HWMON_VID is not set
765# CONFIG_SENSORS_AD7414 is not set
696# CONFIG_SENSORS_AD7418 is not set 766# CONFIG_SENSORS_AD7418 is not set
697# CONFIG_SENSORS_ADM1021 is not set 767# CONFIG_SENSORS_ADM1021 is not set
698# CONFIG_SENSORS_ADM1025 is not set 768# CONFIG_SENSORS_ADM1025 is not set
@@ -702,6 +772,7 @@ CONFIG_HWMON=y
702# CONFIG_SENSORS_ADM9240 is not set 772# CONFIG_SENSORS_ADM9240 is not set
703# CONFIG_SENSORS_ADT7470 is not set 773# CONFIG_SENSORS_ADT7470 is not set
704# CONFIG_SENSORS_ADT7473 is not set 774# CONFIG_SENSORS_ADT7473 is not set
775# CONFIG_SENSORS_AMS is not set
705# CONFIG_SENSORS_ATXP1 is not set 776# CONFIG_SENSORS_ATXP1 is not set
706# CONFIG_SENSORS_DS1621 is not set 777# CONFIG_SENSORS_DS1621 is not set
707# CONFIG_SENSORS_I5K_AMB is not set 778# CONFIG_SENSORS_I5K_AMB is not set
@@ -746,6 +817,7 @@ CONFIG_HWMON=y
746# CONFIG_SENSORS_W83627EHF is not set 817# CONFIG_SENSORS_W83627EHF is not set
747# CONFIG_HWMON_DEBUG_CHIP is not set 818# CONFIG_HWMON_DEBUG_CHIP is not set
748# CONFIG_THERMAL is not set 819# CONFIG_THERMAL is not set
820# CONFIG_THERMAL_HWMON is not set
749CONFIG_WATCHDOG=y 821CONFIG_WATCHDOG=y
750# CONFIG_WATCHDOG_NOWAYOUT is not set 822# CONFIG_WATCHDOG_NOWAYOUT is not set
751 823
@@ -753,7 +825,9 @@ CONFIG_WATCHDOG=y
753# Watchdog Device Drivers 825# Watchdog Device Drivers
754# 826#
755# CONFIG_SOFT_WATCHDOG is not set 827# CONFIG_SOFT_WATCHDOG is not set
756CONFIG_83xx_WDT=y 828# CONFIG_ALIM7101_WDT is not set
829# CONFIG_8xxx_WDT is not set
830# CONFIG_WATCHDOG_RTAS is not set
757 831
758# 832#
759# PCI-based Watchdog Cards 833# PCI-based Watchdog Cards
@@ -770,8 +844,10 @@ CONFIG_SSB_POSSIBLE=y
770# 844#
771# Multifunction device drivers 845# Multifunction device drivers
772# 846#
847# CONFIG_MFD_CORE is not set
773# CONFIG_MFD_SM501 is not set 848# CONFIG_MFD_SM501 is not set
774# CONFIG_HTC_PASIC3 is not set 849# CONFIG_HTC_PASIC3 is not set
850# CONFIG_MFD_TMIO is not set
775 851
776# 852#
777# Multimedia devices 853# Multimedia devices
@@ -803,10 +879,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
803# Display device support 879# Display device support
804# 880#
805# CONFIG_DISPLAY_SUPPORT is not set 881# CONFIG_DISPLAY_SUPPORT is not set
806
807#
808# Sound
809#
810# CONFIG_SOUND is not set 882# CONFIG_SOUND is not set
811CONFIG_HID_SUPPORT=y 883CONFIG_HID_SUPPORT=y
812CONFIG_HID=y 884CONFIG_HID=y
@@ -821,6 +893,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
821# CONFIG_USB_OTG_BLACKLIST_HUB is not set 893# CONFIG_USB_OTG_BLACKLIST_HUB is not set
822 894
823# 895#
896# Enable Host or Gadget support to see Inventra options
897#
898
899#
824# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 900# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
825# 901#
826# CONFIG_USB_GADGET is not set 902# CONFIG_USB_GADGET is not set
@@ -859,6 +935,7 @@ CONFIG_RTC_DRV_DS1374=y
859# CONFIG_RTC_DRV_PCF8583 is not set 935# CONFIG_RTC_DRV_PCF8583 is not set
860# CONFIG_RTC_DRV_M41T80 is not set 936# CONFIG_RTC_DRV_M41T80 is not set
861# CONFIG_RTC_DRV_S35390A is not set 937# CONFIG_RTC_DRV_S35390A is not set
938# CONFIG_RTC_DRV_FM3130 is not set
862 939
863# 940#
864# SPI RTC drivers 941# SPI RTC drivers
@@ -947,6 +1024,7 @@ CONFIG_TMPFS=y
947# CONFIG_CRAMFS is not set 1024# CONFIG_CRAMFS is not set
948# CONFIG_VXFS_FS is not set 1025# CONFIG_VXFS_FS is not set
949# CONFIG_MINIX_FS is not set 1026# CONFIG_MINIX_FS is not set
1027# CONFIG_OMFS_FS is not set
950# CONFIG_HPFS_FS is not set 1028# CONFIG_HPFS_FS is not set
951# CONFIG_QNX4FS_FS is not set 1029# CONFIG_QNX4FS_FS is not set
952# CONFIG_ROMFS_FS is not set 1030# CONFIG_ROMFS_FS is not set
@@ -957,14 +1035,13 @@ CONFIG_NFS_FS=y
957CONFIG_NFS_V3=y 1035CONFIG_NFS_V3=y
958# CONFIG_NFS_V3_ACL is not set 1036# CONFIG_NFS_V3_ACL is not set
959CONFIG_NFS_V4=y 1037CONFIG_NFS_V4=y
960# CONFIG_NFSD is not set
961CONFIG_ROOT_NFS=y 1038CONFIG_ROOT_NFS=y
1039# CONFIG_NFSD is not set
962CONFIG_LOCKD=y 1040CONFIG_LOCKD=y
963CONFIG_LOCKD_V4=y 1041CONFIG_LOCKD_V4=y
964CONFIG_NFS_COMMON=y 1042CONFIG_NFS_COMMON=y
965CONFIG_SUNRPC=y 1043CONFIG_SUNRPC=y
966CONFIG_SUNRPC_GSS=y 1044CONFIG_SUNRPC_GSS=y
967# CONFIG_SUNRPC_BIND34 is not set
968CONFIG_RPCSEC_GSS_KRB5=y 1045CONFIG_RPCSEC_GSS_KRB5=y
969# CONFIG_RPCSEC_GSS_SPKM3 is not set 1046# CONFIG_RPCSEC_GSS_SPKM3 is not set
970# CONFIG_SMB_FS is not set 1047# CONFIG_SMB_FS is not set
@@ -994,6 +1071,7 @@ CONFIG_PARTITION_ADVANCED=y
994# CONFIG_DLM is not set 1071# CONFIG_DLM is not set
995CONFIG_UCC_FAST=y 1072CONFIG_UCC_FAST=y
996CONFIG_UCC=y 1073CONFIG_UCC=y
1074# CONFIG_QE_GPIO is not set
997 1075
998# 1076#
999# Library routines 1077# Library routines
@@ -1002,6 +1080,7 @@ CONFIG_BITREVERSE=y
1002# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1080# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1003# CONFIG_CRC_CCITT is not set 1081# CONFIG_CRC_CCITT is not set
1004# CONFIG_CRC16 is not set 1082# CONFIG_CRC16 is not set
1083# CONFIG_CRC_T10DIF is not set
1005# CONFIG_CRC_ITU_T is not set 1084# CONFIG_CRC_ITU_T is not set
1006CONFIG_CRC32=y 1085CONFIG_CRC32=y
1007# CONFIG_CRC7 is not set 1086# CONFIG_CRC7 is not set
@@ -1027,8 +1106,18 @@ CONFIG_FRAME_WARN=1024
1027# CONFIG_SLUB_DEBUG_ON is not set 1106# CONFIG_SLUB_DEBUG_ON is not set
1028# CONFIG_SLUB_STATS is not set 1107# CONFIG_SLUB_STATS is not set
1029# CONFIG_DEBUG_BUGVERBOSE is not set 1108# CONFIG_DEBUG_BUGVERBOSE is not set
1109# CONFIG_DEBUG_MEMORY_INIT is not set
1110# CONFIG_LATENCYTOP is not set
1111CONFIG_SYSCTL_SYSCALL_CHECK=y
1112CONFIG_HAVE_FTRACE=y
1113CONFIG_HAVE_DYNAMIC_FTRACE=y
1114# CONFIG_FTRACE is not set
1115# CONFIG_SCHED_TRACER is not set
1116# CONFIG_CONTEXT_SWITCH_TRACER is not set
1030# CONFIG_SAMPLES is not set 1117# CONFIG_SAMPLES is not set
1118CONFIG_HAVE_ARCH_KGDB=y
1031# CONFIG_IRQSTACKS is not set 1119# CONFIG_IRQSTACKS is not set
1120# CONFIG_BOOTX_TEXT is not set
1032# CONFIG_PPC_EARLY_DEBUG is not set 1121# CONFIG_PPC_EARLY_DEBUG is not set
1033 1122
1034# 1123#
@@ -1082,6 +1171,10 @@ CONFIG_CRYPTO_PCBC=m
1082# CONFIG_CRYPTO_MD4 is not set 1171# CONFIG_CRYPTO_MD4 is not set
1083CONFIG_CRYPTO_MD5=y 1172CONFIG_CRYPTO_MD5=y
1084# CONFIG_CRYPTO_MICHAEL_MIC is not set 1173# CONFIG_CRYPTO_MICHAEL_MIC is not set
1174# CONFIG_CRYPTO_RMD128 is not set
1175# CONFIG_CRYPTO_RMD160 is not set
1176# CONFIG_CRYPTO_RMD256 is not set
1177# CONFIG_CRYPTO_RMD320 is not set
1085# CONFIG_CRYPTO_SHA1 is not set 1178# CONFIG_CRYPTO_SHA1 is not set
1086# CONFIG_CRYPTO_SHA256 is not set 1179# CONFIG_CRYPTO_SHA256 is not set
1087# CONFIG_CRYPTO_SHA512 is not set 1180# CONFIG_CRYPTO_SHA512 is not set
@@ -1114,6 +1207,7 @@ CONFIG_CRYPTO_DES=y
1114# CONFIG_CRYPTO_LZO is not set 1207# CONFIG_CRYPTO_LZO is not set
1115CONFIG_CRYPTO_HW=y 1208CONFIG_CRYPTO_HW=y
1116# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1209# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1210# CONFIG_CRYPTO_DEV_TALITOS is not set
1117# CONFIG_PPC_CLOCK is not set 1211# CONFIG_PPC_CLOCK is not set
1118CONFIG_PPC_LIB_RHEAP=y 1212CONFIG_PPC_LIB_RHEAP=y
1119# CONFIG_VIRTUALIZATION is not set 1213# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
index de95d327463..4eef8c95480 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:24 2008 4# Thu Aug 21 00:52:19 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162# CONFIG_MPC831x_RDB is not set 176# CONFIG_MPC831x_RDB is not set
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164CONFIG_MPC832x_RDB=y 178CONFIG_MPC832x_RDB=y
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166# CONFIG_MPC834x_ITX is not set 180# CONFIG_MPC834x_ITX is not set
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC832x=y 187CONFIG_PPC_MPC832x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183CONFIG_QUICC_ENGINE=y 207CONFIG_QUICC_ENGINE=y
184# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
185 209
@@ -196,7 +220,7 @@ CONFIG_HZ_250=y
196# CONFIG_HZ_300 is not set 220# CONFIG_HZ_300 is not set
197# CONFIG_HZ_1000 is not set 221# CONFIG_HZ_1000 is not set
198CONFIG_HZ=250 222CONFIG_HZ=250
199# CONFIG_SCHED_HRTICK is not set 223CONFIG_SCHED_HRTICK=y
200CONFIG_PREEMPT_NONE=y 224CONFIG_PREEMPT_NONE=y
201# CONFIG_PREEMPT_VOLUNTARY is not set 225# CONFIG_PREEMPT_VOLUNTARY is not set
202# CONFIG_PREEMPT is not set 226# CONFIG_PREEMPT is not set
@@ -207,6 +231,7 @@ CONFIG_MATH_EMULATION=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
208CONFIG_ARCH_HAS_WALK_MEMORY=y 232CONFIG_ARCH_HAS_WALK_MEMORY=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 233CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
234# CONFIG_KEXEC is not set
210CONFIG_ARCH_FLATMEM_ENABLE=y 235CONFIG_ARCH_FLATMEM_ENABLE=y
211CONFIG_ARCH_POPULATES_NODE_MAP=y 236CONFIG_ARCH_POPULATES_NODE_MAP=y
212CONFIG_SELECT_MEMORY_MODEL=y 237CONFIG_SELECT_MEMORY_MODEL=y
@@ -219,6 +244,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 244# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y 245CONFIG_PAGEFLAGS_EXTENDED=y
221CONFIG_SPLIT_PTLOCK_CPUS=4 246CONFIG_SPLIT_PTLOCK_CPUS=4
247CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set 248# CONFIG_RESOURCES_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=1 249CONFIG_ZONE_DMA_FLAG=1
224CONFIG_BOUNCE=y 250CONFIG_BOUNCE=y
@@ -226,6 +252,7 @@ CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
227CONFIG_PROC_DEVICETREE=y 253CONFIG_PROC_DEVICETREE=y
228# CONFIG_CMDLINE_BOOL is not set 254# CONFIG_CMDLINE_BOOL is not set
255CONFIG_EXTRA_TARGETS=""
229# CONFIG_PM is not set 256# CONFIG_PM is not set
230CONFIG_SECCOMP=y 257CONFIG_SECCOMP=y
231CONFIG_ISA_DMA_API=y 258CONFIG_ISA_DMA_API=y
@@ -233,10 +260,13 @@ CONFIG_ISA_DMA_API=y
233# 260#
234# Bus options 261# Bus options
235# 262#
263# CONFIG_ISA is not set
236CONFIG_ZONE_DMA=y 264CONFIG_ZONE_DMA=y
237CONFIG_GENERIC_ISA_DMA=y 265CONFIG_GENERIC_ISA_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 266CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 267CONFIG_FSL_SOC=y
268CONFIG_FSL_PCI=y
269CONFIG_PPC_PCI_CHOICE=y
240CONFIG_PCI=y 270CONFIG_PCI=y
241CONFIG_PCI_DOMAINS=y 271CONFIG_PCI_DOMAINS=y
242CONFIG_PCI_SYSCALL=y 272CONFIG_PCI_SYSCALL=y
@@ -261,10 +291,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
261CONFIG_KERNEL_START=0xc0000000 291CONFIG_KERNEL_START=0xc0000000
262CONFIG_PHYSICAL_START=0x00000000 292CONFIG_PHYSICAL_START=0x00000000
263CONFIG_TASK_SIZE=0xc0000000 293CONFIG_TASK_SIZE=0xc0000000
264
265#
266# Networking
267#
268CONFIG_NET=y 294CONFIG_NET=y
269 295
270# 296#
@@ -362,9 +388,11 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
362# CONFIG_MTD is not set 388# CONFIG_MTD is not set
363CONFIG_OF_DEVICE=y 389CONFIG_OF_DEVICE=y
364CONFIG_OF_I2C=y 390CONFIG_OF_I2C=y
391CONFIG_OF_SPI=y
365# CONFIG_PARPORT is not set 392# CONFIG_PARPORT is not set
366CONFIG_BLK_DEV=y 393CONFIG_BLK_DEV=y
367# CONFIG_BLK_DEV_FD is not set 394# CONFIG_BLK_DEV_FD is not set
395# CONFIG_MAC_FLOPPY is not set
368# CONFIG_BLK_CPQ_DA is not set 396# CONFIG_BLK_CPQ_DA is not set
369# CONFIG_BLK_CPQ_CISS_DA is not set 397# CONFIG_BLK_CPQ_CISS_DA is not set
370# CONFIG_BLK_DEV_DAC960 is not set 398# CONFIG_BLK_DEV_DAC960 is not set
@@ -381,12 +409,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
381# CONFIG_BLK_DEV_XIP is not set 409# CONFIG_BLK_DEV_XIP is not set
382# CONFIG_CDROM_PKTCDVD is not set 410# CONFIG_CDROM_PKTCDVD is not set
383# CONFIG_ATA_OVER_ETH is not set 411# CONFIG_ATA_OVER_ETH is not set
412# CONFIG_BLK_DEV_HD is not set
384CONFIG_MISC_DEVICES=y 413CONFIG_MISC_DEVICES=y
385# CONFIG_PHANTOM is not set 414# CONFIG_PHANTOM is not set
386# CONFIG_EEPROM_93CX6 is not set 415# CONFIG_EEPROM_93CX6 is not set
387# CONFIG_SGI_IOC4 is not set 416# CONFIG_SGI_IOC4 is not set
388# CONFIG_TIFM_CORE is not set 417# CONFIG_TIFM_CORE is not set
389# CONFIG_ENCLOSURE_SERVICES is not set 418# CONFIG_ENCLOSURE_SERVICES is not set
419# CONFIG_HP_ILO is not set
390CONFIG_HAVE_IDE=y 420CONFIG_HAVE_IDE=y
391# CONFIG_IDE is not set 421# CONFIG_IDE is not set
392 422
@@ -463,7 +493,10 @@ CONFIG_SCSI_LOWLEVEL=y
463# CONFIG_SCSI_DC390T is not set 493# CONFIG_SCSI_DC390T is not set
464# CONFIG_SCSI_NSP32 is not set 494# CONFIG_SCSI_NSP32 is not set
465# CONFIG_SCSI_DEBUG is not set 495# CONFIG_SCSI_DEBUG is not set
496# CONFIG_SCSI_MESH is not set
497# CONFIG_SCSI_MAC53C94 is not set
466# CONFIG_SCSI_SRP is not set 498# CONFIG_SCSI_SRP is not set
499# CONFIG_SCSI_DH is not set
467# CONFIG_ATA is not set 500# CONFIG_ATA is not set
468# CONFIG_MD is not set 501# CONFIG_MD is not set
469# CONFIG_FUSION is not set 502# CONFIG_FUSION is not set
@@ -471,12 +504,15 @@ CONFIG_SCSI_LOWLEVEL=y
471# 504#
472# IEEE 1394 (FireWire) support 505# IEEE 1394 (FireWire) support
473# 506#
507
508#
509# Enable only one of the two stacks, unless you know what you are doing
510#
474# CONFIG_FIREWIRE is not set 511# CONFIG_FIREWIRE is not set
475# CONFIG_IEEE1394 is not set 512# CONFIG_IEEE1394 is not set
476# CONFIG_I2O is not set 513# CONFIG_I2O is not set
477# CONFIG_MACINTOSH_DRIVERS is not set 514# CONFIG_MACINTOSH_DRIVERS is not set
478CONFIG_NETDEVICES=y 515CONFIG_NETDEVICES=y
479# CONFIG_NETDEVICES_MULTIQUEUE is not set
480# CONFIG_DUMMY is not set 516# CONFIG_DUMMY is not set
481# CONFIG_BONDING is not set 517# CONFIG_BONDING is not set
482# CONFIG_MACVLAN is not set 518# CONFIG_MACVLAN is not set
@@ -503,6 +539,8 @@ CONFIG_ICPLUS_PHY=y
503# CONFIG_MDIO_BITBANG is not set 539# CONFIG_MDIO_BITBANG is not set
504CONFIG_NET_ETHERNET=y 540CONFIG_NET_ETHERNET=y
505CONFIG_MII=y 541CONFIG_MII=y
542# CONFIG_MACE is not set
543# CONFIG_BMAC is not set
506# CONFIG_HAPPYMEAL is not set 544# CONFIG_HAPPYMEAL is not set
507# CONFIG_SUNGEM is not set 545# CONFIG_SUNGEM is not set
508# CONFIG_CASSINI is not set 546# CONFIG_CASSINI is not set
@@ -520,10 +558,8 @@ CONFIG_NETDEV_1000=y
520# CONFIG_ACENIC is not set 558# CONFIG_ACENIC is not set
521# CONFIG_DL2K is not set 559# CONFIG_DL2K is not set
522CONFIG_E1000=y 560CONFIG_E1000=y
523# CONFIG_E1000_NAPI is not set
524# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 561# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
525# CONFIG_E1000E is not set 562# CONFIG_E1000E is not set
526# CONFIG_E1000E_ENABLED is not set
527# CONFIG_IP1000 is not set 563# CONFIG_IP1000 is not set
528# CONFIG_IGB is not set 564# CONFIG_IGB is not set
529# CONFIG_NS83820 is not set 565# CONFIG_NS83820 is not set
@@ -538,12 +574,13 @@ CONFIG_E1000=y
538# CONFIG_BNX2 is not set 574# CONFIG_BNX2 is not set
539# CONFIG_GIANFAR is not set 575# CONFIG_GIANFAR is not set
540CONFIG_UCC_GETH=y 576CONFIG_UCC_GETH=y
541CONFIG_UGETH_NAPI=y
542# CONFIG_UGETH_MAGIC_PACKET is not set 577# CONFIG_UGETH_MAGIC_PACKET is not set
543# CONFIG_UGETH_FILTERING is not set 578# CONFIG_UGETH_FILTERING is not set
544# CONFIG_UGETH_TX_ON_DEMAND is not set 579# CONFIG_UGETH_TX_ON_DEMAND is not set
580# CONFIG_MV643XX_ETH is not set
545# CONFIG_QLA3XXX is not set 581# CONFIG_QLA3XXX is not set
546# CONFIG_ATL1 is not set 582# CONFIG_ATL1 is not set
583# CONFIG_ATL1E is not set
547CONFIG_NETDEV_10000=y 584CONFIG_NETDEV_10000=y
548# CONFIG_CHELSIO_T1 is not set 585# CONFIG_CHELSIO_T1 is not set
549# CONFIG_CHELSIO_T3 is not set 586# CONFIG_CHELSIO_T3 is not set
@@ -641,12 +678,15 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
641# CONFIG_SERIAL_UARTLITE is not set 678# CONFIG_SERIAL_UARTLITE is not set
642CONFIG_SERIAL_CORE=y 679CONFIG_SERIAL_CORE=y
643CONFIG_SERIAL_CORE_CONSOLE=y 680CONFIG_SERIAL_CORE_CONSOLE=y
681# CONFIG_SERIAL_PMACZILOG is not set
644# CONFIG_SERIAL_JSM is not set 682# CONFIG_SERIAL_JSM is not set
645# CONFIG_SERIAL_OF_PLATFORM is not set 683# CONFIG_SERIAL_OF_PLATFORM is not set
646# CONFIG_SERIAL_QE is not set 684# CONFIG_SERIAL_QE is not set
647CONFIG_UNIX98_PTYS=y 685CONFIG_UNIX98_PTYS=y
648CONFIG_LEGACY_PTYS=y 686CONFIG_LEGACY_PTYS=y
649CONFIG_LEGACY_PTY_COUNT=256 687CONFIG_LEGACY_PTY_COUNT=256
688# CONFIG_BRIQ_PANEL is not set
689# CONFIG_HVC_RTAS is not set
650# CONFIG_IPMI_HANDLER is not set 690# CONFIG_IPMI_HANDLER is not set
651CONFIG_HW_RANDOM=y 691CONFIG_HW_RANDOM=y
652# CONFIG_NVRAM is not set 692# CONFIG_NVRAM is not set
@@ -660,43 +700,70 @@ CONFIG_DEVPORT=y
660CONFIG_I2C=y 700CONFIG_I2C=y
661CONFIG_I2C_BOARDINFO=y 701CONFIG_I2C_BOARDINFO=y
662CONFIG_I2C_CHARDEV=y 702CONFIG_I2C_CHARDEV=y
703CONFIG_I2C_HELPER_AUTO=y
663 704
664# 705#
665# I2C Hardware Bus support 706# I2C Hardware Bus support
666# 707#
708
709#
710# PC SMBus host controller drivers
711#
667# CONFIG_I2C_ALI1535 is not set 712# CONFIG_I2C_ALI1535 is not set
668# CONFIG_I2C_ALI1563 is not set 713# CONFIG_I2C_ALI1563 is not set
669# CONFIG_I2C_ALI15X3 is not set 714# CONFIG_I2C_ALI15X3 is not set
670# CONFIG_I2C_AMD756 is not set 715# CONFIG_I2C_AMD756 is not set
671# CONFIG_I2C_AMD8111 is not set 716# CONFIG_I2C_AMD8111 is not set
672# CONFIG_I2C_I801 is not set 717# CONFIG_I2C_I801 is not set
673# CONFIG_I2C_I810 is not set 718# CONFIG_I2C_ISCH is not set
674# CONFIG_I2C_PIIX4 is not set 719# CONFIG_I2C_PIIX4 is not set
675CONFIG_I2C_MPC=y
676# CONFIG_I2C_NFORCE2 is not set 720# CONFIG_I2C_NFORCE2 is not set
677# CONFIG_I2C_OCORES is not set
678# CONFIG_I2C_PARPORT_LIGHT is not set
679# CONFIG_I2C_PROSAVAGE is not set
680# CONFIG_I2C_SAVAGE4 is not set
681# CONFIG_I2C_SIMTEC is not set
682# CONFIG_I2C_SIS5595 is not set 721# CONFIG_I2C_SIS5595 is not set
683# CONFIG_I2C_SIS630 is not set 722# CONFIG_I2C_SIS630 is not set
684# CONFIG_I2C_SIS96X is not set 723# CONFIG_I2C_SIS96X is not set
685# CONFIG_I2C_TAOS_EVM is not set
686# CONFIG_I2C_STUB is not set
687# CONFIG_I2C_TINY_USB is not set
688# CONFIG_I2C_VIA is not set 724# CONFIG_I2C_VIA is not set
689# CONFIG_I2C_VIAPRO is not set 725# CONFIG_I2C_VIAPRO is not set
726
727#
728# Mac SMBus host controller drivers
729#
730# CONFIG_I2C_HYDRA is not set
731CONFIG_I2C_POWERMAC=y
732
733#
734# I2C system bus drivers (mostly embedded / system-on-chip)
735#
736CONFIG_I2C_MPC=y
737# CONFIG_I2C_OCORES is not set
738# CONFIG_I2C_SIMTEC is not set
739
740#
741# External I2C/SMBus adapter drivers
742#
743# CONFIG_I2C_PARPORT_LIGHT is not set
744# CONFIG_I2C_TAOS_EVM is not set
745# CONFIG_I2C_TINY_USB is not set
746
747#
748# Graphics adapter I2C/DDC channel drivers
749#
690# CONFIG_I2C_VOODOO3 is not set 750# CONFIG_I2C_VOODOO3 is not set
751
752#
753# Other I2C/SMBus bus drivers
754#
691# CONFIG_I2C_PCA_PLATFORM is not set 755# CONFIG_I2C_PCA_PLATFORM is not set
756# CONFIG_I2C_STUB is not set
692 757
693# 758#
694# Miscellaneous I2C Chip support 759# Miscellaneous I2C Chip support
695# 760#
696# CONFIG_DS1682 is not set 761# CONFIG_DS1682 is not set
762# CONFIG_AT24 is not set
697# CONFIG_SENSORS_EEPROM is not set 763# CONFIG_SENSORS_EEPROM is not set
698# CONFIG_SENSORS_PCF8574 is not set 764# CONFIG_SENSORS_PCF8574 is not set
699# CONFIG_PCF8575 is not set 765# CONFIG_PCF8575 is not set
766# CONFIG_SENSORS_PCA9539 is not set
700# CONFIG_SENSORS_PCF8591 is not set 767# CONFIG_SENSORS_PCF8591 is not set
701# CONFIG_SENSORS_MAX6875 is not set 768# CONFIG_SENSORS_MAX6875 is not set
702# CONFIG_SENSORS_TSL2550 is not set 769# CONFIG_SENSORS_TSL2550 is not set
@@ -719,11 +786,15 @@ CONFIG_SPI_MPC83xx=y
719# CONFIG_SPI_AT25 is not set 786# CONFIG_SPI_AT25 is not set
720# CONFIG_SPI_SPIDEV is not set 787# CONFIG_SPI_SPIDEV is not set
721# CONFIG_SPI_TLE62X0 is not set 788# CONFIG_SPI_TLE62X0 is not set
789CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
790# CONFIG_GPIOLIB is not set
722# CONFIG_W1 is not set 791# CONFIG_W1 is not set
723# CONFIG_POWER_SUPPLY is not set 792# CONFIG_POWER_SUPPLY is not set
724CONFIG_HWMON=y 793CONFIG_HWMON=y
725# CONFIG_HWMON_VID is not set 794# CONFIG_HWMON_VID is not set
795# CONFIG_SENSORS_AD7414 is not set
726# CONFIG_SENSORS_AD7418 is not set 796# CONFIG_SENSORS_AD7418 is not set
797# CONFIG_SENSORS_ADCXX is not set
727# CONFIG_SENSORS_ADM1021 is not set 798# CONFIG_SENSORS_ADM1021 is not set
728# CONFIG_SENSORS_ADM1025 is not set 799# CONFIG_SENSORS_ADM1025 is not set
729# CONFIG_SENSORS_ADM1026 is not set 800# CONFIG_SENSORS_ADM1026 is not set
@@ -732,6 +803,7 @@ CONFIG_HWMON=y
732# CONFIG_SENSORS_ADM9240 is not set 803# CONFIG_SENSORS_ADM9240 is not set
733# CONFIG_SENSORS_ADT7470 is not set 804# CONFIG_SENSORS_ADT7470 is not set
734# CONFIG_SENSORS_ADT7473 is not set 805# CONFIG_SENSORS_ADT7473 is not set
806# CONFIG_SENSORS_AMS is not set
735# CONFIG_SENSORS_ATXP1 is not set 807# CONFIG_SENSORS_ATXP1 is not set
736# CONFIG_SENSORS_DS1621 is not set 808# CONFIG_SENSORS_DS1621 is not set
737# CONFIG_SENSORS_I5K_AMB is not set 809# CONFIG_SENSORS_I5K_AMB is not set
@@ -777,6 +849,7 @@ CONFIG_HWMON=y
777# CONFIG_SENSORS_W83627EHF is not set 849# CONFIG_SENSORS_W83627EHF is not set
778# CONFIG_HWMON_DEBUG_CHIP is not set 850# CONFIG_HWMON_DEBUG_CHIP is not set
779# CONFIG_THERMAL is not set 851# CONFIG_THERMAL is not set
852# CONFIG_THERMAL_HWMON is not set
780CONFIG_WATCHDOG=y 853CONFIG_WATCHDOG=y
781# CONFIG_WATCHDOG_NOWAYOUT is not set 854# CONFIG_WATCHDOG_NOWAYOUT is not set
782 855
@@ -784,7 +857,9 @@ CONFIG_WATCHDOG=y
784# Watchdog Device Drivers 857# Watchdog Device Drivers
785# 858#
786# CONFIG_SOFT_WATCHDOG is not set 859# CONFIG_SOFT_WATCHDOG is not set
787CONFIG_83xx_WDT=y 860# CONFIG_ALIM7101_WDT is not set
861# CONFIG_8xxx_WDT is not set
862# CONFIG_WATCHDOG_RTAS is not set
788 863
789# 864#
790# PCI-based Watchdog Cards 865# PCI-based Watchdog Cards
@@ -806,8 +881,10 @@ CONFIG_SSB_POSSIBLE=y
806# 881#
807# Multifunction device drivers 882# Multifunction device drivers
808# 883#
884# CONFIG_MFD_CORE is not set
809# CONFIG_MFD_SM501 is not set 885# CONFIG_MFD_SM501 is not set
810# CONFIG_HTC_PASIC3 is not set 886# CONFIG_HTC_PASIC3 is not set
887# CONFIG_MFD_TMIO is not set
811 888
812# 889#
813# Multimedia devices 890# Multimedia devices
@@ -840,10 +917,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
840# Display device support 917# Display device support
841# 918#
842# CONFIG_DISPLAY_SUPPORT is not set 919# CONFIG_DISPLAY_SUPPORT is not set
843
844#
845# Sound
846#
847# CONFIG_SOUND is not set 920# CONFIG_SOUND is not set
848CONFIG_HID_SUPPORT=y 921CONFIG_HID_SUPPORT=y
849CONFIG_HID=y 922CONFIG_HID=y
@@ -877,6 +950,7 @@ CONFIG_USB_DEVICE_CLASS=y
877# CONFIG_USB_OTG is not set 950# CONFIG_USB_OTG is not set
878# CONFIG_USB_OTG_WHITELIST is not set 951# CONFIG_USB_OTG_WHITELIST is not set
879# CONFIG_USB_OTG_BLACKLIST_HUB is not set 952# CONFIG_USB_OTG_BLACKLIST_HUB is not set
953CONFIG_USB_MON=y
880 954
881# 955#
882# USB Host Controller Drivers 956# USB Host Controller Drivers
@@ -928,6 +1002,7 @@ CONFIG_USB_STORAGE=y
928# CONFIG_USB_STORAGE_ALAUDA is not set 1002# CONFIG_USB_STORAGE_ALAUDA is not set
929# CONFIG_USB_STORAGE_ONETOUCH is not set 1003# CONFIG_USB_STORAGE_ONETOUCH is not set
930# CONFIG_USB_STORAGE_KARMA is not set 1004# CONFIG_USB_STORAGE_KARMA is not set
1005# CONFIG_USB_STORAGE_SIERRA is not set
931# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1006# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
932# CONFIG_USB_LIBUSUAL is not set 1007# CONFIG_USB_LIBUSUAL is not set
933 1008
@@ -936,7 +1011,6 @@ CONFIG_USB_STORAGE=y
936# 1011#
937# CONFIG_USB_MDC800 is not set 1012# CONFIG_USB_MDC800 is not set
938# CONFIG_USB_MICROTEK is not set 1013# CONFIG_USB_MICROTEK is not set
939CONFIG_USB_MON=y
940 1014
941# 1015#
942# USB port drivers 1016# USB port drivers
@@ -949,7 +1023,6 @@ CONFIG_USB_MON=y
949# CONFIG_USB_EMI62 is not set 1023# CONFIG_USB_EMI62 is not set
950# CONFIG_USB_EMI26 is not set 1024# CONFIG_USB_EMI26 is not set
951# CONFIG_USB_ADUTUX is not set 1025# CONFIG_USB_ADUTUX is not set
952# CONFIG_USB_AUERSWALD is not set
953# CONFIG_USB_RIO500 is not set 1026# CONFIG_USB_RIO500 is not set
954# CONFIG_USB_LEGOTOWER is not set 1027# CONFIG_USB_LEGOTOWER is not set
955# CONFIG_USB_LCD is not set 1028# CONFIG_USB_LCD is not set
@@ -1063,6 +1136,7 @@ CONFIG_TMPFS=y
1063# CONFIG_CRAMFS is not set 1136# CONFIG_CRAMFS is not set
1064# CONFIG_VXFS_FS is not set 1137# CONFIG_VXFS_FS is not set
1065# CONFIG_MINIX_FS is not set 1138# CONFIG_MINIX_FS is not set
1139# CONFIG_OMFS_FS is not set
1066# CONFIG_HPFS_FS is not set 1140# CONFIG_HPFS_FS is not set
1067# CONFIG_QNX4FS_FS is not set 1141# CONFIG_QNX4FS_FS is not set
1068# CONFIG_ROMFS_FS is not set 1142# CONFIG_ROMFS_FS is not set
@@ -1073,14 +1147,13 @@ CONFIG_NFS_FS=y
1073CONFIG_NFS_V3=y 1147CONFIG_NFS_V3=y
1074# CONFIG_NFS_V3_ACL is not set 1148# CONFIG_NFS_V3_ACL is not set
1075CONFIG_NFS_V4=y 1149CONFIG_NFS_V4=y
1076# CONFIG_NFSD is not set
1077CONFIG_ROOT_NFS=y 1150CONFIG_ROOT_NFS=y
1151# CONFIG_NFSD is not set
1078CONFIG_LOCKD=y 1152CONFIG_LOCKD=y
1079CONFIG_LOCKD_V4=y 1153CONFIG_LOCKD_V4=y
1080CONFIG_NFS_COMMON=y 1154CONFIG_NFS_COMMON=y
1081CONFIG_SUNRPC=y 1155CONFIG_SUNRPC=y
1082CONFIG_SUNRPC_GSS=y 1156CONFIG_SUNRPC_GSS=y
1083# CONFIG_SUNRPC_BIND34 is not set
1084CONFIG_RPCSEC_GSS_KRB5=y 1157CONFIG_RPCSEC_GSS_KRB5=y
1085# CONFIG_RPCSEC_GSS_SPKM3 is not set 1158# CONFIG_RPCSEC_GSS_SPKM3 is not set
1086# CONFIG_SMB_FS is not set 1159# CONFIG_SMB_FS is not set
@@ -1154,6 +1227,7 @@ CONFIG_NLS_ISO8859_1=y
1154# CONFIG_DLM is not set 1227# CONFIG_DLM is not set
1155CONFIG_UCC_FAST=y 1228CONFIG_UCC_FAST=y
1156CONFIG_UCC=y 1229CONFIG_UCC=y
1230# CONFIG_QE_GPIO is not set
1157 1231
1158# 1232#
1159# Library routines 1233# Library routines
@@ -1162,6 +1236,7 @@ CONFIG_BITREVERSE=y
1162# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1236# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1163# CONFIG_CRC_CCITT is not set 1237# CONFIG_CRC_CCITT is not set
1164# CONFIG_CRC16 is not set 1238# CONFIG_CRC16 is not set
1239CONFIG_CRC_T10DIF=y
1165CONFIG_CRC_ITU_T=y 1240CONFIG_CRC_ITU_T=y
1166CONFIG_CRC32=y 1241CONFIG_CRC32=y
1167CONFIG_CRC7=y 1242CONFIG_CRC7=y
@@ -1187,8 +1262,18 @@ CONFIG_FRAME_WARN=1024
1187# CONFIG_SLUB_DEBUG_ON is not set 1262# CONFIG_SLUB_DEBUG_ON is not set
1188# CONFIG_SLUB_STATS is not set 1263# CONFIG_SLUB_STATS is not set
1189# CONFIG_DEBUG_BUGVERBOSE is not set 1264# CONFIG_DEBUG_BUGVERBOSE is not set
1265# CONFIG_DEBUG_MEMORY_INIT is not set
1266# CONFIG_LATENCYTOP is not set
1267CONFIG_SYSCTL_SYSCALL_CHECK=y
1268CONFIG_HAVE_FTRACE=y
1269CONFIG_HAVE_DYNAMIC_FTRACE=y
1270# CONFIG_FTRACE is not set
1271# CONFIG_SCHED_TRACER is not set
1272# CONFIG_CONTEXT_SWITCH_TRACER is not set
1190# CONFIG_SAMPLES is not set 1273# CONFIG_SAMPLES is not set
1274CONFIG_HAVE_ARCH_KGDB=y
1191# CONFIG_IRQSTACKS is not set 1275# CONFIG_IRQSTACKS is not set
1276# CONFIG_BOOTX_TEXT is not set
1192# CONFIG_PPC_EARLY_DEBUG is not set 1277# CONFIG_PPC_EARLY_DEBUG is not set
1193 1278
1194# 1279#
@@ -1242,6 +1327,10 @@ CONFIG_CRYPTO_PCBC=m
1242# CONFIG_CRYPTO_MD4 is not set 1327# CONFIG_CRYPTO_MD4 is not set
1243CONFIG_CRYPTO_MD5=y 1328CONFIG_CRYPTO_MD5=y
1244# CONFIG_CRYPTO_MICHAEL_MIC is not set 1329# CONFIG_CRYPTO_MICHAEL_MIC is not set
1330# CONFIG_CRYPTO_RMD128 is not set
1331# CONFIG_CRYPTO_RMD160 is not set
1332# CONFIG_CRYPTO_RMD256 is not set
1333# CONFIG_CRYPTO_RMD320 is not set
1245# CONFIG_CRYPTO_SHA1 is not set 1334# CONFIG_CRYPTO_SHA1 is not set
1246# CONFIG_CRYPTO_SHA256 is not set 1335# CONFIG_CRYPTO_SHA256 is not set
1247# CONFIG_CRYPTO_SHA512 is not set 1336# CONFIG_CRYPTO_SHA512 is not set
@@ -1274,6 +1363,7 @@ CONFIG_CRYPTO_DES=y
1274# CONFIG_CRYPTO_LZO is not set 1363# CONFIG_CRYPTO_LZO is not set
1275CONFIG_CRYPTO_HW=y 1364CONFIG_CRYPTO_HW=y
1276# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1365# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1366# CONFIG_CRYPTO_DEV_TALITOS is not set
1277# CONFIG_PPC_CLOCK is not set 1367# CONFIG_PPC_CLOCK is not set
1278CONFIG_PPC_LIB_RHEAP=y 1368CONFIG_PPC_LIB_RHEAP=y
1279# CONFIG_VIRTUALIZATION is not set 1369# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index b47fc918570..8d651393185 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:25 2008 4# Thu Aug 21 00:52:20 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162# CONFIG_MPC831x_RDB is not set 176# CONFIG_MPC831x_RDB is not set
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166CONFIG_MPC834x_ITX=y 180CONFIG_MPC834x_ITX=y
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC834x=y 187CONFIG_PPC_MPC834x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
184 208
185# 209#
@@ -195,7 +219,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 221CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 222CONFIG_SCHED_HRTICK=y
199CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
@@ -205,6 +229,7 @@ CONFIG_BINFMT_ELF=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y 230CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
232# CONFIG_KEXEC is not set
208CONFIG_ARCH_FLATMEM_ENABLE=y 233CONFIG_ARCH_FLATMEM_ENABLE=y
209CONFIG_ARCH_POPULATES_NODE_MAP=y 234CONFIG_ARCH_POPULATES_NODE_MAP=y
210CONFIG_SELECT_MEMORY_MODEL=y 235CONFIG_SELECT_MEMORY_MODEL=y
@@ -217,6 +242,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -224,6 +250,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 254# CONFIG_PM is not set
228CONFIG_SECCOMP=y 255CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 256CONFIG_ISA_DMA_API=y
@@ -231,10 +258,13 @@ CONFIG_ISA_DMA_API=y
231# 258#
232# Bus options 259# Bus options
233# 260#
261# CONFIG_ISA is not set
234CONFIG_ZONE_DMA=y 262CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 263CONFIG_GENERIC_ISA_DMA=y
236CONFIG_PPC_INDIRECT_PCI=y 264CONFIG_PPC_INDIRECT_PCI=y
237CONFIG_FSL_SOC=y 265CONFIG_FSL_SOC=y
266CONFIG_FSL_PCI=y
267CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 268CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 269CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 270CONFIG_PCI_SYSCALL=y
@@ -259,10 +289,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
259CONFIG_KERNEL_START=0xc0000000 289CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000 290CONFIG_PHYSICAL_START=0x00000000
261CONFIG_TASK_SIZE=0xc0000000 291CONFIG_TASK_SIZE=0xc0000000
262
263#
264# Networking
265#
266CONFIG_NET=y 292CONFIG_NET=y
267 293
268# 294#
@@ -439,9 +465,11 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
439# CONFIG_MTD_UBI is not set 465# CONFIG_MTD_UBI is not set
440CONFIG_OF_DEVICE=y 466CONFIG_OF_DEVICE=y
441CONFIG_OF_I2C=y 467CONFIG_OF_I2C=y
468CONFIG_OF_SPI=y
442# CONFIG_PARPORT is not set 469# CONFIG_PARPORT is not set
443CONFIG_BLK_DEV=y 470CONFIG_BLK_DEV=y
444# CONFIG_BLK_DEV_FD is not set 471# CONFIG_BLK_DEV_FD is not set
472# CONFIG_MAC_FLOPPY is not set
445# CONFIG_BLK_CPQ_DA is not set 473# CONFIG_BLK_CPQ_DA is not set
446# CONFIG_BLK_CPQ_CISS_DA is not set 474# CONFIG_BLK_CPQ_CISS_DA is not set
447# CONFIG_BLK_DEV_DAC960 is not set 475# CONFIG_BLK_DEV_DAC960 is not set
@@ -458,18 +486,17 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
458# CONFIG_BLK_DEV_XIP is not set 486# CONFIG_BLK_DEV_XIP is not set
459# CONFIG_CDROM_PKTCDVD is not set 487# CONFIG_CDROM_PKTCDVD is not set
460# CONFIG_ATA_OVER_ETH is not set 488# CONFIG_ATA_OVER_ETH is not set
489# CONFIG_BLK_DEV_HD is not set
461CONFIG_MISC_DEVICES=y 490CONFIG_MISC_DEVICES=y
462# CONFIG_PHANTOM is not set 491# CONFIG_PHANTOM is not set
463# CONFIG_EEPROM_93CX6 is not set 492# CONFIG_EEPROM_93CX6 is not set
464# CONFIG_SGI_IOC4 is not set 493# CONFIG_SGI_IOC4 is not set
465# CONFIG_TIFM_CORE is not set 494# CONFIG_TIFM_CORE is not set
466# CONFIG_ENCLOSURE_SERVICES is not set 495# CONFIG_ENCLOSURE_SERVICES is not set
496# CONFIG_HP_ILO is not set
467CONFIG_HAVE_IDE=y 497CONFIG_HAVE_IDE=y
468CONFIG_IDE=y 498CONFIG_IDE=y
469CONFIG_IDE_MAX_HWIFS=4
470# CONFIG_BLK_DEV_IDE is not set 499# CONFIG_BLK_DEV_IDE is not set
471# CONFIG_BLK_DEV_HD_ONLY is not set
472# CONFIG_BLK_DEV_HD is not set
473 500
474# 501#
475# SCSI device support 502# SCSI device support
@@ -545,7 +572,10 @@ CONFIG_SCSI_LOWLEVEL=y
545# CONFIG_SCSI_DC390T is not set 572# CONFIG_SCSI_DC390T is not set
546# CONFIG_SCSI_NSP32 is not set 573# CONFIG_SCSI_NSP32 is not set
547# CONFIG_SCSI_DEBUG is not set 574# CONFIG_SCSI_DEBUG is not set
575# CONFIG_SCSI_MESH is not set
576# CONFIG_SCSI_MAC53C94 is not set
548# CONFIG_SCSI_SRP is not set 577# CONFIG_SCSI_SRP is not set
578# CONFIG_SCSI_DH is not set
549CONFIG_ATA=y 579CONFIG_ATA=y
550# CONFIG_ATA_NONSTANDARD is not set 580# CONFIG_ATA_NONSTANDARD is not set
551CONFIG_SATA_PMP=y 581CONFIG_SATA_PMP=y
@@ -623,12 +653,15 @@ CONFIG_MD_RAID1=y
623# 653#
624# IEEE 1394 (FireWire) support 654# IEEE 1394 (FireWire) support
625# 655#
656
657#
658# Enable only one of the two stacks, unless you know what you are doing
659#
626# CONFIG_FIREWIRE is not set 660# CONFIG_FIREWIRE is not set
627# CONFIG_IEEE1394 is not set 661# CONFIG_IEEE1394 is not set
628# CONFIG_I2O is not set 662# CONFIG_I2O is not set
629# CONFIG_MACINTOSH_DRIVERS is not set 663# CONFIG_MACINTOSH_DRIVERS is not set
630CONFIG_NETDEVICES=y 664CONFIG_NETDEVICES=y
631# CONFIG_NETDEVICES_MULTIQUEUE is not set
632# CONFIG_DUMMY is not set 665# CONFIG_DUMMY is not set
633# CONFIG_BONDING is not set 666# CONFIG_BONDING is not set
634# CONFIG_MACVLAN is not set 667# CONFIG_MACVLAN is not set
@@ -659,7 +692,6 @@ CONFIG_NETDEV_1000=y
659# CONFIG_DL2K is not set 692# CONFIG_DL2K is not set
660# CONFIG_E1000 is not set 693# CONFIG_E1000 is not set
661# CONFIG_E1000E is not set 694# CONFIG_E1000E is not set
662# CONFIG_E1000E_ENABLED is not set
663# CONFIG_IP1000 is not set 695# CONFIG_IP1000 is not set
664# CONFIG_IGB is not set 696# CONFIG_IGB is not set
665# CONFIG_NS83820 is not set 697# CONFIG_NS83820 is not set
@@ -673,9 +705,10 @@ CONFIG_NETDEV_1000=y
673# CONFIG_TIGON3 is not set 705# CONFIG_TIGON3 is not set
674# CONFIG_BNX2 is not set 706# CONFIG_BNX2 is not set
675CONFIG_GIANFAR=y 707CONFIG_GIANFAR=y
676CONFIG_GFAR_NAPI=y 708# CONFIG_MV643XX_ETH is not set
677# CONFIG_QLA3XXX is not set 709# CONFIG_QLA3XXX is not set
678# CONFIG_ATL1 is not set 710# CONFIG_ATL1 is not set
711# CONFIG_ATL1E is not set
679CONFIG_NETDEV_10000=y 712CONFIG_NETDEV_10000=y
680# CONFIG_CHELSIO_T1 is not set 713# CONFIG_CHELSIO_T1 is not set
681# CONFIG_CHELSIO_T3 is not set 714# CONFIG_CHELSIO_T3 is not set
@@ -753,11 +786,14 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
753# CONFIG_SERIAL_UARTLITE is not set 786# CONFIG_SERIAL_UARTLITE is not set
754CONFIG_SERIAL_CORE=y 787CONFIG_SERIAL_CORE=y
755CONFIG_SERIAL_CORE_CONSOLE=y 788CONFIG_SERIAL_CORE_CONSOLE=y
789# CONFIG_SERIAL_PMACZILOG is not set
756# CONFIG_SERIAL_JSM is not set 790# CONFIG_SERIAL_JSM is not set
757# CONFIG_SERIAL_OF_PLATFORM is not set 791# CONFIG_SERIAL_OF_PLATFORM is not set
758CONFIG_UNIX98_PTYS=y 792CONFIG_UNIX98_PTYS=y
759CONFIG_LEGACY_PTYS=y 793CONFIG_LEGACY_PTYS=y
760CONFIG_LEGACY_PTY_COUNT=256 794CONFIG_LEGACY_PTY_COUNT=256
795# CONFIG_BRIQ_PANEL is not set
796# CONFIG_HVC_RTAS is not set
761# CONFIG_IPMI_HANDLER is not set 797# CONFIG_IPMI_HANDLER is not set
762CONFIG_HW_RANDOM=y 798CONFIG_HW_RANDOM=y
763# CONFIG_NVRAM is not set 799# CONFIG_NVRAM is not set
@@ -769,43 +805,70 @@ CONFIG_DEVPORT=y
769CONFIG_I2C=y 805CONFIG_I2C=y
770CONFIG_I2C_BOARDINFO=y 806CONFIG_I2C_BOARDINFO=y
771CONFIG_I2C_CHARDEV=y 807CONFIG_I2C_CHARDEV=y
808CONFIG_I2C_HELPER_AUTO=y
772 809
773# 810#
774# I2C Hardware Bus support 811# I2C Hardware Bus support
775# 812#
813
814#
815# PC SMBus host controller drivers
816#
776# CONFIG_I2C_ALI1535 is not set 817# CONFIG_I2C_ALI1535 is not set
777# CONFIG_I2C_ALI1563 is not set 818# CONFIG_I2C_ALI1563 is not set
778# CONFIG_I2C_ALI15X3 is not set 819# CONFIG_I2C_ALI15X3 is not set
779# CONFIG_I2C_AMD756 is not set 820# CONFIG_I2C_AMD756 is not set
780# CONFIG_I2C_AMD8111 is not set 821# CONFIG_I2C_AMD8111 is not set
781# CONFIG_I2C_I801 is not set 822# CONFIG_I2C_I801 is not set
782# CONFIG_I2C_I810 is not set 823# CONFIG_I2C_ISCH is not set
783# CONFIG_I2C_PIIX4 is not set 824# CONFIG_I2C_PIIX4 is not set
784CONFIG_I2C_MPC=y
785# CONFIG_I2C_NFORCE2 is not set 825# CONFIG_I2C_NFORCE2 is not set
786# CONFIG_I2C_OCORES is not set
787# CONFIG_I2C_PARPORT_LIGHT is not set
788# CONFIG_I2C_PROSAVAGE is not set
789# CONFIG_I2C_SAVAGE4 is not set
790# CONFIG_I2C_SIMTEC is not set
791# CONFIG_I2C_SIS5595 is not set 826# CONFIG_I2C_SIS5595 is not set
792# CONFIG_I2C_SIS630 is not set 827# CONFIG_I2C_SIS630 is not set
793# CONFIG_I2C_SIS96X is not set 828# CONFIG_I2C_SIS96X is not set
794# CONFIG_I2C_TAOS_EVM is not set
795# CONFIG_I2C_STUB is not set
796# CONFIG_I2C_TINY_USB is not set
797# CONFIG_I2C_VIA is not set 829# CONFIG_I2C_VIA is not set
798# CONFIG_I2C_VIAPRO is not set 830# CONFIG_I2C_VIAPRO is not set
831
832#
833# Mac SMBus host controller drivers
834#
835# CONFIG_I2C_HYDRA is not set
836CONFIG_I2C_POWERMAC=y
837
838#
839# I2C system bus drivers (mostly embedded / system-on-chip)
840#
841CONFIG_I2C_MPC=y
842# CONFIG_I2C_OCORES is not set
843# CONFIG_I2C_SIMTEC is not set
844
845#
846# External I2C/SMBus adapter drivers
847#
848# CONFIG_I2C_PARPORT_LIGHT is not set
849# CONFIG_I2C_TAOS_EVM is not set
850# CONFIG_I2C_TINY_USB is not set
851
852#
853# Graphics adapter I2C/DDC channel drivers
854#
799# CONFIG_I2C_VOODOO3 is not set 855# CONFIG_I2C_VOODOO3 is not set
856
857#
858# Other I2C/SMBus bus drivers
859#
800# CONFIG_I2C_PCA_PLATFORM is not set 860# CONFIG_I2C_PCA_PLATFORM is not set
861# CONFIG_I2C_STUB is not set
801 862
802# 863#
803# Miscellaneous I2C Chip support 864# Miscellaneous I2C Chip support
804# 865#
805# CONFIG_DS1682 is not set 866# CONFIG_DS1682 is not set
867# CONFIG_AT24 is not set
806# CONFIG_SENSORS_EEPROM is not set 868# CONFIG_SENSORS_EEPROM is not set
807CONFIG_SENSORS_PCF8574=y 869CONFIG_SENSORS_PCF8574=y
808# CONFIG_PCF8575 is not set 870# CONFIG_PCF8575 is not set
871# CONFIG_SENSORS_PCA9539 is not set
809# CONFIG_SENSORS_PCF8591 is not set 872# CONFIG_SENSORS_PCF8591 is not set
810# CONFIG_SENSORS_MAX6875 is not set 873# CONFIG_SENSORS_MAX6875 is not set
811# CONFIG_SENSORS_TSL2550 is not set 874# CONFIG_SENSORS_TSL2550 is not set
@@ -828,10 +891,13 @@ CONFIG_SPI_MPC83xx=y
828# CONFIG_SPI_AT25 is not set 891# CONFIG_SPI_AT25 is not set
829# CONFIG_SPI_SPIDEV is not set 892# CONFIG_SPI_SPIDEV is not set
830# CONFIG_SPI_TLE62X0 is not set 893# CONFIG_SPI_TLE62X0 is not set
894CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
895# CONFIG_GPIOLIB is not set
831# CONFIG_W1 is not set 896# CONFIG_W1 is not set
832# CONFIG_POWER_SUPPLY is not set 897# CONFIG_POWER_SUPPLY is not set
833# CONFIG_HWMON is not set 898# CONFIG_HWMON is not set
834# CONFIG_THERMAL is not set 899# CONFIG_THERMAL is not set
900# CONFIG_THERMAL_HWMON is not set
835CONFIG_WATCHDOG=y 901CONFIG_WATCHDOG=y
836# CONFIG_WATCHDOG_NOWAYOUT is not set 902# CONFIG_WATCHDOG_NOWAYOUT is not set
837 903
@@ -839,7 +905,9 @@ CONFIG_WATCHDOG=y
839# Watchdog Device Drivers 905# Watchdog Device Drivers
840# 906#
841# CONFIG_SOFT_WATCHDOG is not set 907# CONFIG_SOFT_WATCHDOG is not set
842CONFIG_83xx_WDT=y 908# CONFIG_ALIM7101_WDT is not set
909# CONFIG_8xxx_WDT is not set
910# CONFIG_WATCHDOG_RTAS is not set
843 911
844# 912#
845# PCI-based Watchdog Cards 913# PCI-based Watchdog Cards
@@ -861,8 +929,10 @@ CONFIG_SSB_POSSIBLE=y
861# 929#
862# Multifunction device drivers 930# Multifunction device drivers
863# 931#
932# CONFIG_MFD_CORE is not set
864# CONFIG_MFD_SM501 is not set 933# CONFIG_MFD_SM501 is not set
865# CONFIG_HTC_PASIC3 is not set 934# CONFIG_HTC_PASIC3 is not set
935# CONFIG_MFD_TMIO is not set
866 936
867# 937#
868# Multimedia devices 938# Multimedia devices
@@ -895,10 +965,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
895# Display device support 965# Display device support
896# 966#
897# CONFIG_DISPLAY_SUPPORT is not set 967# CONFIG_DISPLAY_SUPPORT is not set
898
899#
900# Sound
901#
902# CONFIG_SOUND is not set 968# CONFIG_SOUND is not set
903CONFIG_USB_SUPPORT=y 969CONFIG_USB_SUPPORT=y
904CONFIG_USB_ARCH_HAS_HCD=y 970CONFIG_USB_ARCH_HAS_HCD=y
@@ -917,6 +983,7 @@ CONFIG_USB_DEVICE_CLASS=y
917# CONFIG_USB_OTG is not set 983# CONFIG_USB_OTG is not set
918# CONFIG_USB_OTG_WHITELIST is not set 984# CONFIG_USB_OTG_WHITELIST is not set
919# CONFIG_USB_OTG_BLACKLIST_HUB is not set 985# CONFIG_USB_OTG_BLACKLIST_HUB is not set
986CONFIG_USB_MON=y
920 987
921# 988#
922# USB Host Controller Drivers 989# USB Host Controller Drivers
@@ -960,6 +1027,7 @@ CONFIG_USB_STORAGE=y
960# CONFIG_USB_STORAGE_JUMPSHOT is not set 1027# CONFIG_USB_STORAGE_JUMPSHOT is not set
961# CONFIG_USB_STORAGE_ALAUDA is not set 1028# CONFIG_USB_STORAGE_ALAUDA is not set
962# CONFIG_USB_STORAGE_KARMA is not set 1029# CONFIG_USB_STORAGE_KARMA is not set
1030# CONFIG_USB_STORAGE_SIERRA is not set
963# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1031# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
964# CONFIG_USB_LIBUSUAL is not set 1032# CONFIG_USB_LIBUSUAL is not set
965 1033
@@ -968,7 +1036,6 @@ CONFIG_USB_STORAGE=y
968# 1036#
969# CONFIG_USB_MDC800 is not set 1037# CONFIG_USB_MDC800 is not set
970# CONFIG_USB_MICROTEK is not set 1038# CONFIG_USB_MICROTEK is not set
971CONFIG_USB_MON=y
972 1039
973# 1040#
974# USB port drivers 1041# USB port drivers
@@ -981,7 +1048,6 @@ CONFIG_USB_MON=y
981# CONFIG_USB_EMI62 is not set 1048# CONFIG_USB_EMI62 is not set
982# CONFIG_USB_EMI26 is not set 1049# CONFIG_USB_EMI26 is not set
983# CONFIG_USB_ADUTUX is not set 1050# CONFIG_USB_ADUTUX is not set
984# CONFIG_USB_AUERSWALD is not set
985# CONFIG_USB_RIO500 is not set 1051# CONFIG_USB_RIO500 is not set
986# CONFIG_USB_LEGOTOWER is not set 1052# CONFIG_USB_LEGOTOWER is not set
987# CONFIG_USB_LCD is not set 1053# CONFIG_USB_LCD is not set
@@ -1035,10 +1101,13 @@ CONFIG_RTC_DRV_DS1307=y
1035# CONFIG_RTC_DRV_PCF8583 is not set 1101# CONFIG_RTC_DRV_PCF8583 is not set
1036# CONFIG_RTC_DRV_M41T80 is not set 1102# CONFIG_RTC_DRV_M41T80 is not set
1037# CONFIG_RTC_DRV_S35390A is not set 1103# CONFIG_RTC_DRV_S35390A is not set
1104# CONFIG_RTC_DRV_FM3130 is not set
1038 1105
1039# 1106#
1040# SPI RTC drivers 1107# SPI RTC drivers
1041# 1108#
1109# CONFIG_RTC_DRV_M41T94 is not set
1110# CONFIG_RTC_DRV_DS1305 is not set
1042# CONFIG_RTC_DRV_MAX6902 is not set 1111# CONFIG_RTC_DRV_MAX6902 is not set
1043# CONFIG_RTC_DRV_R9701 is not set 1112# CONFIG_RTC_DRV_R9701 is not set
1044# CONFIG_RTC_DRV_RS5C348 is not set 1113# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1130,6 +1199,7 @@ CONFIG_TMPFS=y
1130# CONFIG_CRAMFS is not set 1199# CONFIG_CRAMFS is not set
1131# CONFIG_VXFS_FS is not set 1200# CONFIG_VXFS_FS is not set
1132# CONFIG_MINIX_FS is not set 1201# CONFIG_MINIX_FS is not set
1202# CONFIG_OMFS_FS is not set
1133# CONFIG_HPFS_FS is not set 1203# CONFIG_HPFS_FS is not set
1134# CONFIG_QNX4FS_FS is not set 1204# CONFIG_QNX4FS_FS is not set
1135# CONFIG_ROMFS_FS is not set 1205# CONFIG_ROMFS_FS is not set
@@ -1140,14 +1210,13 @@ CONFIG_NFS_FS=y
1140CONFIG_NFS_V3=y 1210CONFIG_NFS_V3=y
1141# CONFIG_NFS_V3_ACL is not set 1211# CONFIG_NFS_V3_ACL is not set
1142CONFIG_NFS_V4=y 1212CONFIG_NFS_V4=y
1143# CONFIG_NFSD is not set
1144CONFIG_ROOT_NFS=y 1213CONFIG_ROOT_NFS=y
1214# CONFIG_NFSD is not set
1145CONFIG_LOCKD=y 1215CONFIG_LOCKD=y
1146CONFIG_LOCKD_V4=y 1216CONFIG_LOCKD_V4=y
1147CONFIG_NFS_COMMON=y 1217CONFIG_NFS_COMMON=y
1148CONFIG_SUNRPC=y 1218CONFIG_SUNRPC=y
1149CONFIG_SUNRPC_GSS=y 1219CONFIG_SUNRPC_GSS=y
1150# CONFIG_SUNRPC_BIND34 is not set
1151CONFIG_RPCSEC_GSS_KRB5=y 1220CONFIG_RPCSEC_GSS_KRB5=y
1152# CONFIG_RPCSEC_GSS_SPKM3 is not set 1221# CONFIG_RPCSEC_GSS_SPKM3 is not set
1153# CONFIG_SMB_FS is not set 1222# CONFIG_SMB_FS is not set
@@ -1226,6 +1295,7 @@ CONFIG_BITREVERSE=y
1226# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1295# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1227# CONFIG_CRC_CCITT is not set 1296# CONFIG_CRC_CCITT is not set
1228# CONFIG_CRC16 is not set 1297# CONFIG_CRC16 is not set
1298CONFIG_CRC_T10DIF=y
1229# CONFIG_CRC_ITU_T is not set 1299# CONFIG_CRC_ITU_T is not set
1230CONFIG_CRC32=y 1300CONFIG_CRC32=y
1231# CONFIG_CRC7 is not set 1301# CONFIG_CRC7 is not set
@@ -1251,8 +1321,18 @@ CONFIG_FRAME_WARN=1024
1251# CONFIG_SLUB_DEBUG_ON is not set 1321# CONFIG_SLUB_DEBUG_ON is not set
1252# CONFIG_SLUB_STATS is not set 1322# CONFIG_SLUB_STATS is not set
1253# CONFIG_DEBUG_BUGVERBOSE is not set 1323# CONFIG_DEBUG_BUGVERBOSE is not set
1324# CONFIG_DEBUG_MEMORY_INIT is not set
1325# CONFIG_LATENCYTOP is not set
1326CONFIG_SYSCTL_SYSCALL_CHECK=y
1327CONFIG_HAVE_FTRACE=y
1328CONFIG_HAVE_DYNAMIC_FTRACE=y
1329# CONFIG_FTRACE is not set
1330# CONFIG_SCHED_TRACER is not set
1331# CONFIG_CONTEXT_SWITCH_TRACER is not set
1254# CONFIG_SAMPLES is not set 1332# CONFIG_SAMPLES is not set
1333CONFIG_HAVE_ARCH_KGDB=y
1255# CONFIG_IRQSTACKS is not set 1334# CONFIG_IRQSTACKS is not set
1335# CONFIG_BOOTX_TEXT is not set
1256# CONFIG_PPC_EARLY_DEBUG is not set 1336# CONFIG_PPC_EARLY_DEBUG is not set
1257 1337
1258# 1338#
@@ -1306,6 +1386,10 @@ CONFIG_CRYPTO_PCBC=m
1306# CONFIG_CRYPTO_MD4 is not set 1386# CONFIG_CRYPTO_MD4 is not set
1307CONFIG_CRYPTO_MD5=y 1387CONFIG_CRYPTO_MD5=y
1308# CONFIG_CRYPTO_MICHAEL_MIC is not set 1388# CONFIG_CRYPTO_MICHAEL_MIC is not set
1389# CONFIG_CRYPTO_RMD128 is not set
1390# CONFIG_CRYPTO_RMD160 is not set
1391# CONFIG_CRYPTO_RMD256 is not set
1392# CONFIG_CRYPTO_RMD320 is not set
1309# CONFIG_CRYPTO_SHA1 is not set 1393# CONFIG_CRYPTO_SHA1 is not set
1310# CONFIG_CRYPTO_SHA256 is not set 1394# CONFIG_CRYPTO_SHA256 is not set
1311# CONFIG_CRYPTO_SHA512 is not set 1395# CONFIG_CRYPTO_SHA512 is not set
@@ -1338,5 +1422,6 @@ CONFIG_CRYPTO_DES=y
1338# CONFIG_CRYPTO_LZO is not set 1422# CONFIG_CRYPTO_LZO is not set
1339CONFIG_CRYPTO_HW=y 1423CONFIG_CRYPTO_HW=y
1340# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1424# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1425# CONFIG_CRYPTO_DEV_TALITOS is not set
1341# CONFIG_PPC_CLOCK is not set 1426# CONFIG_PPC_CLOCK is not set
1342# CONFIG_VIRTUALIZATION is not set 1427# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
index fdac4845bad..a8afa39d6f7 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:26 2008 4# Thu Aug 21 00:52:21 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162# CONFIG_MPC831x_RDB is not set 176# CONFIG_MPC831x_RDB is not set
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166CONFIG_MPC834x_ITX=y 180CONFIG_MPC834x_ITX=y
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC834x=y 187CONFIG_PPC_MPC834x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
184 208
185# 209#
@@ -195,7 +219,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 221CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 222CONFIG_SCHED_HRTICK=y
199CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
@@ -205,6 +229,7 @@ CONFIG_BINFMT_ELF=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y 230CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
232# CONFIG_KEXEC is not set
208CONFIG_ARCH_FLATMEM_ENABLE=y 233CONFIG_ARCH_FLATMEM_ENABLE=y
209CONFIG_ARCH_POPULATES_NODE_MAP=y 234CONFIG_ARCH_POPULATES_NODE_MAP=y
210CONFIG_SELECT_MEMORY_MODEL=y 235CONFIG_SELECT_MEMORY_MODEL=y
@@ -217,6 +242,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -224,6 +250,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 254# CONFIG_PM is not set
228CONFIG_SECCOMP=y 255CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 256CONFIG_ISA_DMA_API=y
@@ -231,10 +258,13 @@ CONFIG_ISA_DMA_API=y
231# 258#
232# Bus options 259# Bus options
233# 260#
261# CONFIG_ISA is not set
234CONFIG_ZONE_DMA=y 262CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 263CONFIG_GENERIC_ISA_DMA=y
236CONFIG_PPC_INDIRECT_PCI=y 264CONFIG_PPC_INDIRECT_PCI=y
237CONFIG_FSL_SOC=y 265CONFIG_FSL_SOC=y
266CONFIG_FSL_PCI=y
267CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 268CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 269CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 270CONFIG_PCI_SYSCALL=y
@@ -259,10 +289,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
259CONFIG_KERNEL_START=0xc0000000 289CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000 290CONFIG_PHYSICAL_START=0x00000000
261CONFIG_TASK_SIZE=0xc0000000 291CONFIG_TASK_SIZE=0xc0000000
262
263#
264# Networking
265#
266CONFIG_NET=y 292CONFIG_NET=y
267 293
268# 294#
@@ -439,9 +465,11 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
439# CONFIG_MTD_UBI is not set 465# CONFIG_MTD_UBI is not set
440CONFIG_OF_DEVICE=y 466CONFIG_OF_DEVICE=y
441CONFIG_OF_I2C=y 467CONFIG_OF_I2C=y
468CONFIG_OF_SPI=y
442# CONFIG_PARPORT is not set 469# CONFIG_PARPORT is not set
443CONFIG_BLK_DEV=y 470CONFIG_BLK_DEV=y
444# CONFIG_BLK_DEV_FD is not set 471# CONFIG_BLK_DEV_FD is not set
472# CONFIG_MAC_FLOPPY is not set
445# CONFIG_BLK_CPQ_DA is not set 473# CONFIG_BLK_CPQ_DA is not set
446# CONFIG_BLK_CPQ_CISS_DA is not set 474# CONFIG_BLK_CPQ_CISS_DA is not set
447# CONFIG_BLK_DEV_DAC960 is not set 475# CONFIG_BLK_DEV_DAC960 is not set
@@ -458,12 +486,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
458# CONFIG_BLK_DEV_XIP is not set 486# CONFIG_BLK_DEV_XIP is not set
459# CONFIG_CDROM_PKTCDVD is not set 487# CONFIG_CDROM_PKTCDVD is not set
460# CONFIG_ATA_OVER_ETH is not set 488# CONFIG_ATA_OVER_ETH is not set
489# CONFIG_BLK_DEV_HD is not set
461CONFIG_MISC_DEVICES=y 490CONFIG_MISC_DEVICES=y
462# CONFIG_PHANTOM is not set 491# CONFIG_PHANTOM is not set
463# CONFIG_EEPROM_93CX6 is not set 492# CONFIG_EEPROM_93CX6 is not set
464# CONFIG_SGI_IOC4 is not set 493# CONFIG_SGI_IOC4 is not set
465# CONFIG_TIFM_CORE is not set 494# CONFIG_TIFM_CORE is not set
466# CONFIG_ENCLOSURE_SERVICES is not set 495# CONFIG_ENCLOSURE_SERVICES is not set
496# CONFIG_HP_ILO is not set
467CONFIG_HAVE_IDE=y 497CONFIG_HAVE_IDE=y
468# CONFIG_IDE is not set 498# CONFIG_IDE is not set
469 499
@@ -540,7 +570,10 @@ CONFIG_SCSI_LOWLEVEL=y
540# CONFIG_SCSI_DC390T is not set 570# CONFIG_SCSI_DC390T is not set
541# CONFIG_SCSI_NSP32 is not set 571# CONFIG_SCSI_NSP32 is not set
542# CONFIG_SCSI_DEBUG is not set 572# CONFIG_SCSI_DEBUG is not set
573# CONFIG_SCSI_MESH is not set
574# CONFIG_SCSI_MAC53C94 is not set
543# CONFIG_SCSI_SRP is not set 575# CONFIG_SCSI_SRP is not set
576# CONFIG_SCSI_DH is not set
544# CONFIG_ATA is not set 577# CONFIG_ATA is not set
545# CONFIG_MD is not set 578# CONFIG_MD is not set
546# CONFIG_FUSION is not set 579# CONFIG_FUSION is not set
@@ -548,12 +581,15 @@ CONFIG_SCSI_LOWLEVEL=y
548# 581#
549# IEEE 1394 (FireWire) support 582# IEEE 1394 (FireWire) support
550# 583#
584
585#
586# Enable only one of the two stacks, unless you know what you are doing
587#
551# CONFIG_FIREWIRE is not set 588# CONFIG_FIREWIRE is not set
552# CONFIG_IEEE1394 is not set 589# CONFIG_IEEE1394 is not set
553# CONFIG_I2O is not set 590# CONFIG_I2O is not set
554# CONFIG_MACINTOSH_DRIVERS is not set 591# CONFIG_MACINTOSH_DRIVERS is not set
555CONFIG_NETDEVICES=y 592CONFIG_NETDEVICES=y
556# CONFIG_NETDEVICES_MULTIQUEUE is not set
557# CONFIG_DUMMY is not set 593# CONFIG_DUMMY is not set
558# CONFIG_BONDING is not set 594# CONFIG_BONDING is not set
559# CONFIG_MACVLAN is not set 595# CONFIG_MACVLAN is not set
@@ -584,7 +620,6 @@ CONFIG_NETDEV_1000=y
584# CONFIG_DL2K is not set 620# CONFIG_DL2K is not set
585# CONFIG_E1000 is not set 621# CONFIG_E1000 is not set
586# CONFIG_E1000E is not set 622# CONFIG_E1000E is not set
587# CONFIG_E1000E_ENABLED is not set
588# CONFIG_IP1000 is not set 623# CONFIG_IP1000 is not set
589# CONFIG_IGB is not set 624# CONFIG_IGB is not set
590# CONFIG_NS83820 is not set 625# CONFIG_NS83820 is not set
@@ -598,9 +633,10 @@ CONFIG_NETDEV_1000=y
598# CONFIG_TIGON3 is not set 633# CONFIG_TIGON3 is not set
599# CONFIG_BNX2 is not set 634# CONFIG_BNX2 is not set
600CONFIG_GIANFAR=y 635CONFIG_GIANFAR=y
601CONFIG_GFAR_NAPI=y 636# CONFIG_MV643XX_ETH is not set
602# CONFIG_QLA3XXX is not set 637# CONFIG_QLA3XXX is not set
603# CONFIG_ATL1 is not set 638# CONFIG_ATL1 is not set
639# CONFIG_ATL1E is not set
604CONFIG_NETDEV_10000=y 640CONFIG_NETDEV_10000=y
605# CONFIG_CHELSIO_T1 is not set 641# CONFIG_CHELSIO_T1 is not set
606# CONFIG_CHELSIO_T3 is not set 642# CONFIG_CHELSIO_T3 is not set
@@ -678,11 +714,14 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
678# CONFIG_SERIAL_UARTLITE is not set 714# CONFIG_SERIAL_UARTLITE is not set
679CONFIG_SERIAL_CORE=y 715CONFIG_SERIAL_CORE=y
680CONFIG_SERIAL_CORE_CONSOLE=y 716CONFIG_SERIAL_CORE_CONSOLE=y
717# CONFIG_SERIAL_PMACZILOG is not set
681# CONFIG_SERIAL_JSM is not set 718# CONFIG_SERIAL_JSM is not set
682# CONFIG_SERIAL_OF_PLATFORM is not set 719# CONFIG_SERIAL_OF_PLATFORM is not set
683CONFIG_UNIX98_PTYS=y 720CONFIG_UNIX98_PTYS=y
684CONFIG_LEGACY_PTYS=y 721CONFIG_LEGACY_PTYS=y
685CONFIG_LEGACY_PTY_COUNT=256 722CONFIG_LEGACY_PTY_COUNT=256
723# CONFIG_BRIQ_PANEL is not set
724# CONFIG_HVC_RTAS is not set
686# CONFIG_IPMI_HANDLER is not set 725# CONFIG_IPMI_HANDLER is not set
687CONFIG_HW_RANDOM=y 726CONFIG_HW_RANDOM=y
688# CONFIG_NVRAM is not set 727# CONFIG_NVRAM is not set
@@ -694,43 +733,70 @@ CONFIG_DEVPORT=y
694CONFIG_I2C=y 733CONFIG_I2C=y
695CONFIG_I2C_BOARDINFO=y 734CONFIG_I2C_BOARDINFO=y
696CONFIG_I2C_CHARDEV=y 735CONFIG_I2C_CHARDEV=y
736CONFIG_I2C_HELPER_AUTO=y
697 737
698# 738#
699# I2C Hardware Bus support 739# I2C Hardware Bus support
700# 740#
741
742#
743# PC SMBus host controller drivers
744#
701# CONFIG_I2C_ALI1535 is not set 745# CONFIG_I2C_ALI1535 is not set
702# CONFIG_I2C_ALI1563 is not set 746# CONFIG_I2C_ALI1563 is not set
703# CONFIG_I2C_ALI15X3 is not set 747# CONFIG_I2C_ALI15X3 is not set
704# CONFIG_I2C_AMD756 is not set 748# CONFIG_I2C_AMD756 is not set
705# CONFIG_I2C_AMD8111 is not set 749# CONFIG_I2C_AMD8111 is not set
706# CONFIG_I2C_I801 is not set 750# CONFIG_I2C_I801 is not set
707# CONFIG_I2C_I810 is not set 751# CONFIG_I2C_ISCH is not set
708# CONFIG_I2C_PIIX4 is not set 752# CONFIG_I2C_PIIX4 is not set
709CONFIG_I2C_MPC=y
710# CONFIG_I2C_NFORCE2 is not set 753# CONFIG_I2C_NFORCE2 is not set
711# CONFIG_I2C_OCORES is not set
712# CONFIG_I2C_PARPORT_LIGHT is not set
713# CONFIG_I2C_PROSAVAGE is not set
714# CONFIG_I2C_SAVAGE4 is not set
715# CONFIG_I2C_SIMTEC is not set
716# CONFIG_I2C_SIS5595 is not set 754# CONFIG_I2C_SIS5595 is not set
717# CONFIG_I2C_SIS630 is not set 755# CONFIG_I2C_SIS630 is not set
718# CONFIG_I2C_SIS96X is not set 756# CONFIG_I2C_SIS96X is not set
719# CONFIG_I2C_TAOS_EVM is not set
720# CONFIG_I2C_STUB is not set
721# CONFIG_I2C_TINY_USB is not set
722# CONFIG_I2C_VIA is not set 757# CONFIG_I2C_VIA is not set
723# CONFIG_I2C_VIAPRO is not set 758# CONFIG_I2C_VIAPRO is not set
759
760#
761# Mac SMBus host controller drivers
762#
763# CONFIG_I2C_HYDRA is not set
764CONFIG_I2C_POWERMAC=y
765
766#
767# I2C system bus drivers (mostly embedded / system-on-chip)
768#
769CONFIG_I2C_MPC=y
770# CONFIG_I2C_OCORES is not set
771# CONFIG_I2C_SIMTEC is not set
772
773#
774# External I2C/SMBus adapter drivers
775#
776# CONFIG_I2C_PARPORT_LIGHT is not set
777# CONFIG_I2C_TAOS_EVM is not set
778# CONFIG_I2C_TINY_USB is not set
779
780#
781# Graphics adapter I2C/DDC channel drivers
782#
724# CONFIG_I2C_VOODOO3 is not set 783# CONFIG_I2C_VOODOO3 is not set
784
785#
786# Other I2C/SMBus bus drivers
787#
725# CONFIG_I2C_PCA_PLATFORM is not set 788# CONFIG_I2C_PCA_PLATFORM is not set
789# CONFIG_I2C_STUB is not set
726 790
727# 791#
728# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
729# 793#
730# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
795# CONFIG_AT24 is not set
731# CONFIG_SENSORS_EEPROM is not set 796# CONFIG_SENSORS_EEPROM is not set
732CONFIG_SENSORS_PCF8574=y 797CONFIG_SENSORS_PCF8574=y
733# CONFIG_PCF8575 is not set 798# CONFIG_PCF8575 is not set
799# CONFIG_SENSORS_PCA9539 is not set
734# CONFIG_SENSORS_PCF8591 is not set 800# CONFIG_SENSORS_PCF8591 is not set
735# CONFIG_SENSORS_MAX6875 is not set 801# CONFIG_SENSORS_MAX6875 is not set
736# CONFIG_SENSORS_TSL2550 is not set 802# CONFIG_SENSORS_TSL2550 is not set
@@ -753,10 +819,13 @@ CONFIG_SPI_MPC83xx=y
753# CONFIG_SPI_AT25 is not set 819# CONFIG_SPI_AT25 is not set
754# CONFIG_SPI_SPIDEV is not set 820# CONFIG_SPI_SPIDEV is not set
755# CONFIG_SPI_TLE62X0 is not set 821# CONFIG_SPI_TLE62X0 is not set
822CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
823# CONFIG_GPIOLIB is not set
756# CONFIG_W1 is not set 824# CONFIG_W1 is not set
757# CONFIG_POWER_SUPPLY is not set 825# CONFIG_POWER_SUPPLY is not set
758# CONFIG_HWMON is not set 826# CONFIG_HWMON is not set
759# CONFIG_THERMAL is not set 827# CONFIG_THERMAL is not set
828# CONFIG_THERMAL_HWMON is not set
760CONFIG_WATCHDOG=y 829CONFIG_WATCHDOG=y
761# CONFIG_WATCHDOG_NOWAYOUT is not set 830# CONFIG_WATCHDOG_NOWAYOUT is not set
762 831
@@ -764,7 +833,9 @@ CONFIG_WATCHDOG=y
764# Watchdog Device Drivers 833# Watchdog Device Drivers
765# 834#
766# CONFIG_SOFT_WATCHDOG is not set 835# CONFIG_SOFT_WATCHDOG is not set
767CONFIG_83xx_WDT=y 836# CONFIG_ALIM7101_WDT is not set
837# CONFIG_8xxx_WDT is not set
838# CONFIG_WATCHDOG_RTAS is not set
768 839
769# 840#
770# PCI-based Watchdog Cards 841# PCI-based Watchdog Cards
@@ -786,8 +857,10 @@ CONFIG_SSB_POSSIBLE=y
786# 857#
787# Multifunction device drivers 858# Multifunction device drivers
788# 859#
860# CONFIG_MFD_CORE is not set
789# CONFIG_MFD_SM501 is not set 861# CONFIG_MFD_SM501 is not set
790# CONFIG_HTC_PASIC3 is not set 862# CONFIG_HTC_PASIC3 is not set
863# CONFIG_MFD_TMIO is not set
791 864
792# 865#
793# Multimedia devices 866# Multimedia devices
@@ -820,10 +893,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
820# Display device support 893# Display device support
821# 894#
822# CONFIG_DISPLAY_SUPPORT is not set 895# CONFIG_DISPLAY_SUPPORT is not set
823
824#
825# Sound
826#
827# CONFIG_SOUND is not set 896# CONFIG_SOUND is not set
828CONFIG_USB_SUPPORT=y 897CONFIG_USB_SUPPORT=y
829CONFIG_USB_ARCH_HAS_HCD=y 898CONFIG_USB_ARCH_HAS_HCD=y
@@ -842,6 +911,7 @@ CONFIG_USB_DEVICE_CLASS=y
842# CONFIG_USB_OTG is not set 911# CONFIG_USB_OTG is not set
843# CONFIG_USB_OTG_WHITELIST is not set 912# CONFIG_USB_OTG_WHITELIST is not set
844# CONFIG_USB_OTG_BLACKLIST_HUB is not set 913# CONFIG_USB_OTG_BLACKLIST_HUB is not set
914CONFIG_USB_MON=y
845 915
846# 916#
847# USB Host Controller Drivers 917# USB Host Controller Drivers
@@ -885,6 +955,7 @@ CONFIG_USB_STORAGE=y
885# CONFIG_USB_STORAGE_JUMPSHOT is not set 955# CONFIG_USB_STORAGE_JUMPSHOT is not set
886# CONFIG_USB_STORAGE_ALAUDA is not set 956# CONFIG_USB_STORAGE_ALAUDA is not set
887# CONFIG_USB_STORAGE_KARMA is not set 957# CONFIG_USB_STORAGE_KARMA is not set
958# CONFIG_USB_STORAGE_SIERRA is not set
888# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 959# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
889# CONFIG_USB_LIBUSUAL is not set 960# CONFIG_USB_LIBUSUAL is not set
890 961
@@ -893,7 +964,6 @@ CONFIG_USB_STORAGE=y
893# 964#
894# CONFIG_USB_MDC800 is not set 965# CONFIG_USB_MDC800 is not set
895# CONFIG_USB_MICROTEK is not set 966# CONFIG_USB_MICROTEK is not set
896CONFIG_USB_MON=y
897 967
898# 968#
899# USB port drivers 969# USB port drivers
@@ -906,7 +976,6 @@ CONFIG_USB_MON=y
906# CONFIG_USB_EMI62 is not set 976# CONFIG_USB_EMI62 is not set
907# CONFIG_USB_EMI26 is not set 977# CONFIG_USB_EMI26 is not set
908# CONFIG_USB_ADUTUX is not set 978# CONFIG_USB_ADUTUX is not set
909# CONFIG_USB_AUERSWALD is not set
910# CONFIG_USB_RIO500 is not set 979# CONFIG_USB_RIO500 is not set
911# CONFIG_USB_LEGOTOWER is not set 980# CONFIG_USB_LEGOTOWER is not set
912# CONFIG_USB_LCD is not set 981# CONFIG_USB_LCD is not set
@@ -959,10 +1028,13 @@ CONFIG_RTC_DRV_DS1307=y
959# CONFIG_RTC_DRV_PCF8583 is not set 1028# CONFIG_RTC_DRV_PCF8583 is not set
960# CONFIG_RTC_DRV_M41T80 is not set 1029# CONFIG_RTC_DRV_M41T80 is not set
961# CONFIG_RTC_DRV_S35390A is not set 1030# CONFIG_RTC_DRV_S35390A is not set
1031# CONFIG_RTC_DRV_FM3130 is not set
962 1032
963# 1033#
964# SPI RTC drivers 1034# SPI RTC drivers
965# 1035#
1036# CONFIG_RTC_DRV_M41T94 is not set
1037# CONFIG_RTC_DRV_DS1305 is not set
966# CONFIG_RTC_DRV_MAX6902 is not set 1038# CONFIG_RTC_DRV_MAX6902 is not set
967# CONFIG_RTC_DRV_R9701 is not set 1039# CONFIG_RTC_DRV_R9701 is not set
968# CONFIG_RTC_DRV_RS5C348 is not set 1040# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1054,6 +1126,7 @@ CONFIG_TMPFS=y
1054# CONFIG_CRAMFS is not set 1126# CONFIG_CRAMFS is not set
1055# CONFIG_VXFS_FS is not set 1127# CONFIG_VXFS_FS is not set
1056# CONFIG_MINIX_FS is not set 1128# CONFIG_MINIX_FS is not set
1129# CONFIG_OMFS_FS is not set
1057# CONFIG_HPFS_FS is not set 1130# CONFIG_HPFS_FS is not set
1058# CONFIG_QNX4FS_FS is not set 1131# CONFIG_QNX4FS_FS is not set
1059# CONFIG_ROMFS_FS is not set 1132# CONFIG_ROMFS_FS is not set
@@ -1064,14 +1137,13 @@ CONFIG_NFS_FS=y
1064CONFIG_NFS_V3=y 1137CONFIG_NFS_V3=y
1065# CONFIG_NFS_V3_ACL is not set 1138# CONFIG_NFS_V3_ACL is not set
1066CONFIG_NFS_V4=y 1139CONFIG_NFS_V4=y
1067# CONFIG_NFSD is not set
1068CONFIG_ROOT_NFS=y 1140CONFIG_ROOT_NFS=y
1141# CONFIG_NFSD is not set
1069CONFIG_LOCKD=y 1142CONFIG_LOCKD=y
1070CONFIG_LOCKD_V4=y 1143CONFIG_LOCKD_V4=y
1071CONFIG_NFS_COMMON=y 1144CONFIG_NFS_COMMON=y
1072CONFIG_SUNRPC=y 1145CONFIG_SUNRPC=y
1073CONFIG_SUNRPC_GSS=y 1146CONFIG_SUNRPC_GSS=y
1074# CONFIG_SUNRPC_BIND34 is not set
1075CONFIG_RPCSEC_GSS_KRB5=y 1147CONFIG_RPCSEC_GSS_KRB5=y
1076# CONFIG_RPCSEC_GSS_SPKM3 is not set 1148# CONFIG_RPCSEC_GSS_SPKM3 is not set
1077# CONFIG_SMB_FS is not set 1149# CONFIG_SMB_FS is not set
@@ -1150,6 +1222,7 @@ CONFIG_BITREVERSE=y
1150# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1222# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1151# CONFIG_CRC_CCITT is not set 1223# CONFIG_CRC_CCITT is not set
1152# CONFIG_CRC16 is not set 1224# CONFIG_CRC16 is not set
1225CONFIG_CRC_T10DIF=y
1153# CONFIG_CRC_ITU_T is not set 1226# CONFIG_CRC_ITU_T is not set
1154CONFIG_CRC32=y 1227CONFIG_CRC32=y
1155# CONFIG_CRC7 is not set 1228# CONFIG_CRC7 is not set
@@ -1175,8 +1248,18 @@ CONFIG_FRAME_WARN=1024
1175# CONFIG_SLUB_DEBUG_ON is not set 1248# CONFIG_SLUB_DEBUG_ON is not set
1176# CONFIG_SLUB_STATS is not set 1249# CONFIG_SLUB_STATS is not set
1177# CONFIG_DEBUG_BUGVERBOSE is not set 1250# CONFIG_DEBUG_BUGVERBOSE is not set
1251# CONFIG_DEBUG_MEMORY_INIT is not set
1252# CONFIG_LATENCYTOP is not set
1253CONFIG_SYSCTL_SYSCALL_CHECK=y
1254CONFIG_HAVE_FTRACE=y
1255CONFIG_HAVE_DYNAMIC_FTRACE=y
1256# CONFIG_FTRACE is not set
1257# CONFIG_SCHED_TRACER is not set
1258# CONFIG_CONTEXT_SWITCH_TRACER is not set
1178# CONFIG_SAMPLES is not set 1259# CONFIG_SAMPLES is not set
1260CONFIG_HAVE_ARCH_KGDB=y
1179# CONFIG_IRQSTACKS is not set 1261# CONFIG_IRQSTACKS is not set
1262# CONFIG_BOOTX_TEXT is not set
1180# CONFIG_PPC_EARLY_DEBUG is not set 1263# CONFIG_PPC_EARLY_DEBUG is not set
1181 1264
1182# 1265#
@@ -1230,6 +1313,10 @@ CONFIG_CRYPTO_PCBC=m
1230# CONFIG_CRYPTO_MD4 is not set 1313# CONFIG_CRYPTO_MD4 is not set
1231CONFIG_CRYPTO_MD5=y 1314CONFIG_CRYPTO_MD5=y
1232# CONFIG_CRYPTO_MICHAEL_MIC is not set 1315# CONFIG_CRYPTO_MICHAEL_MIC is not set
1316# CONFIG_CRYPTO_RMD128 is not set
1317# CONFIG_CRYPTO_RMD160 is not set
1318# CONFIG_CRYPTO_RMD256 is not set
1319# CONFIG_CRYPTO_RMD320 is not set
1233# CONFIG_CRYPTO_SHA1 is not set 1320# CONFIG_CRYPTO_SHA1 is not set
1234# CONFIG_CRYPTO_SHA256 is not set 1321# CONFIG_CRYPTO_SHA256 is not set
1235# CONFIG_CRYPTO_SHA512 is not set 1322# CONFIG_CRYPTO_SHA512 is not set
@@ -1262,5 +1349,6 @@ CONFIG_CRYPTO_DES=y
1262# CONFIG_CRYPTO_LZO is not set 1349# CONFIG_CRYPTO_LZO is not set
1263CONFIG_CRYPTO_HW=y 1350CONFIG_CRYPTO_HW=y
1264# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1351# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1352# CONFIG_CRYPTO_DEV_TALITOS is not set
1265# CONFIG_PPC_CLOCK is not set 1353# CONFIG_PPC_CLOCK is not set
1266# CONFIG_VIRTUALIZATION is not set 1354# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
index c82e96e984f..24c320a3667 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:26 2008 4# Thu Aug 21 00:52:21 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162# CONFIG_MPC831x_RDB is not set 176# CONFIG_MPC831x_RDB is not set
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165CONFIG_MPC834x_MDS=y 179CONFIG_MPC834x_MDS=y
166# CONFIG_MPC834x_ITX is not set 180# CONFIG_MPC834x_ITX is not set
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC834x=y 187CONFIG_PPC_MPC834x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
184 208
185# 209#
@@ -195,7 +219,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 221CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 222CONFIG_SCHED_HRTICK=y
199CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
@@ -205,6 +229,7 @@ CONFIG_BINFMT_ELF=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y 230CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
232# CONFIG_KEXEC is not set
208CONFIG_ARCH_FLATMEM_ENABLE=y 233CONFIG_ARCH_FLATMEM_ENABLE=y
209CONFIG_ARCH_POPULATES_NODE_MAP=y 234CONFIG_ARCH_POPULATES_NODE_MAP=y
210CONFIG_SELECT_MEMORY_MODEL=y 235CONFIG_SELECT_MEMORY_MODEL=y
@@ -217,6 +242,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -224,6 +250,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 254# CONFIG_PM is not set
228CONFIG_SECCOMP=y 255CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 256CONFIG_ISA_DMA_API=y
@@ -231,10 +258,13 @@ CONFIG_ISA_DMA_API=y
231# 258#
232# Bus options 259# Bus options
233# 260#
261# CONFIG_ISA is not set
234CONFIG_ZONE_DMA=y 262CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 263CONFIG_GENERIC_ISA_DMA=y
236CONFIG_PPC_INDIRECT_PCI=y 264CONFIG_PPC_INDIRECT_PCI=y
237CONFIG_FSL_SOC=y 265CONFIG_FSL_SOC=y
266CONFIG_FSL_PCI=y
267CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 268CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 269CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 270CONFIG_PCI_SYSCALL=y
@@ -259,10 +289,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
259CONFIG_KERNEL_START=0xc0000000 289CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000 290CONFIG_PHYSICAL_START=0x00000000
261CONFIG_TASK_SIZE=0xc0000000 291CONFIG_TASK_SIZE=0xc0000000
262
263#
264# Networking
265#
266CONFIG_NET=y 292CONFIG_NET=y
267 293
268# 294#
@@ -363,6 +389,7 @@ CONFIG_OF_I2C=y
363# CONFIG_PARPORT is not set 389# CONFIG_PARPORT is not set
364CONFIG_BLK_DEV=y 390CONFIG_BLK_DEV=y
365# CONFIG_BLK_DEV_FD is not set 391# CONFIG_BLK_DEV_FD is not set
392# CONFIG_MAC_FLOPPY is not set
366# CONFIG_BLK_CPQ_DA is not set 393# CONFIG_BLK_CPQ_DA is not set
367# CONFIG_BLK_CPQ_CISS_DA is not set 394# CONFIG_BLK_CPQ_CISS_DA is not set
368# CONFIG_BLK_DEV_DAC960 is not set 395# CONFIG_BLK_DEV_DAC960 is not set
@@ -378,12 +405,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
378# CONFIG_BLK_DEV_XIP is not set 405# CONFIG_BLK_DEV_XIP is not set
379# CONFIG_CDROM_PKTCDVD is not set 406# CONFIG_CDROM_PKTCDVD is not set
380# CONFIG_ATA_OVER_ETH is not set 407# CONFIG_ATA_OVER_ETH is not set
408# CONFIG_BLK_DEV_HD is not set
381CONFIG_MISC_DEVICES=y 409CONFIG_MISC_DEVICES=y
382# CONFIG_PHANTOM is not set 410# CONFIG_PHANTOM is not set
383# CONFIG_EEPROM_93CX6 is not set 411# CONFIG_EEPROM_93CX6 is not set
384# CONFIG_SGI_IOC4 is not set 412# CONFIG_SGI_IOC4 is not set
385# CONFIG_TIFM_CORE is not set 413# CONFIG_TIFM_CORE is not set
386# CONFIG_ENCLOSURE_SERVICES is not set 414# CONFIG_ENCLOSURE_SERVICES is not set
415# CONFIG_HP_ILO is not set
387CONFIG_HAVE_IDE=y 416CONFIG_HAVE_IDE=y
388# CONFIG_IDE is not set 417# CONFIG_IDE is not set
389 418
@@ -401,12 +430,15 @@ CONFIG_HAVE_IDE=y
401# 430#
402# IEEE 1394 (FireWire) support 431# IEEE 1394 (FireWire) support
403# 432#
433
434#
435# Enable only one of the two stacks, unless you know what you are doing
436#
404# CONFIG_FIREWIRE is not set 437# CONFIG_FIREWIRE is not set
405# CONFIG_IEEE1394 is not set 438# CONFIG_IEEE1394 is not set
406# CONFIG_I2O is not set 439# CONFIG_I2O is not set
407# CONFIG_MACINTOSH_DRIVERS is not set 440# CONFIG_MACINTOSH_DRIVERS is not set
408CONFIG_NETDEVICES=y 441CONFIG_NETDEVICES=y
409# CONFIG_NETDEVICES_MULTIQUEUE is not set
410# CONFIG_DUMMY is not set 442# CONFIG_DUMMY is not set
411# CONFIG_BONDING is not set 443# CONFIG_BONDING is not set
412# CONFIG_MACVLAN is not set 444# CONFIG_MACVLAN is not set
@@ -433,6 +465,8 @@ CONFIG_MARVELL_PHY=y
433# CONFIG_MDIO_BITBANG is not set 465# CONFIG_MDIO_BITBANG is not set
434CONFIG_NET_ETHERNET=y 466CONFIG_NET_ETHERNET=y
435CONFIG_MII=y 467CONFIG_MII=y
468# CONFIG_MACE is not set
469# CONFIG_BMAC is not set
436# CONFIG_HAPPYMEAL is not set 470# CONFIG_HAPPYMEAL is not set
437# CONFIG_SUNGEM is not set 471# CONFIG_SUNGEM is not set
438# CONFIG_CASSINI is not set 472# CONFIG_CASSINI is not set
@@ -468,7 +502,6 @@ CONFIG_NETDEV_1000=y
468# CONFIG_DL2K is not set 502# CONFIG_DL2K is not set
469# CONFIG_E1000 is not set 503# CONFIG_E1000 is not set
470# CONFIG_E1000E is not set 504# CONFIG_E1000E is not set
471# CONFIG_E1000E_ENABLED is not set
472# CONFIG_IP1000 is not set 505# CONFIG_IP1000 is not set
473# CONFIG_IGB is not set 506# CONFIG_IGB is not set
474# CONFIG_NS83820 is not set 507# CONFIG_NS83820 is not set
@@ -482,9 +515,10 @@ CONFIG_NETDEV_1000=y
482# CONFIG_TIGON3 is not set 515# CONFIG_TIGON3 is not set
483# CONFIG_BNX2 is not set 516# CONFIG_BNX2 is not set
484CONFIG_GIANFAR=y 517CONFIG_GIANFAR=y
485# CONFIG_GFAR_NAPI is not set 518# CONFIG_MV643XX_ETH is not set
486# CONFIG_QLA3XXX is not set 519# CONFIG_QLA3XXX is not set
487# CONFIG_ATL1 is not set 520# CONFIG_ATL1 is not set
521# CONFIG_ATL1E is not set
488CONFIG_NETDEV_10000=y 522CONFIG_NETDEV_10000=y
489# CONFIG_CHELSIO_T1 is not set 523# CONFIG_CHELSIO_T1 is not set
490# CONFIG_CHELSIO_T3 is not set 524# CONFIG_CHELSIO_T3 is not set
@@ -572,11 +606,14 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
572# CONFIG_SERIAL_UARTLITE is not set 606# CONFIG_SERIAL_UARTLITE is not set
573CONFIG_SERIAL_CORE=y 607CONFIG_SERIAL_CORE=y
574CONFIG_SERIAL_CORE_CONSOLE=y 608CONFIG_SERIAL_CORE_CONSOLE=y
609# CONFIG_SERIAL_PMACZILOG is not set
575# CONFIG_SERIAL_JSM is not set 610# CONFIG_SERIAL_JSM is not set
576# CONFIG_SERIAL_OF_PLATFORM is not set 611# CONFIG_SERIAL_OF_PLATFORM is not set
577CONFIG_UNIX98_PTYS=y 612CONFIG_UNIX98_PTYS=y
578CONFIG_LEGACY_PTYS=y 613CONFIG_LEGACY_PTYS=y
579CONFIG_LEGACY_PTY_COUNT=256 614CONFIG_LEGACY_PTY_COUNT=256
615# CONFIG_BRIQ_PANEL is not set
616# CONFIG_HVC_RTAS is not set
580# CONFIG_IPMI_HANDLER is not set 617# CONFIG_IPMI_HANDLER is not set
581# CONFIG_HW_RANDOM is not set 618# CONFIG_HW_RANDOM is not set
582# CONFIG_NVRAM is not set 619# CONFIG_NVRAM is not set
@@ -588,42 +625,69 @@ CONFIG_DEVPORT=y
588CONFIG_I2C=y 625CONFIG_I2C=y
589CONFIG_I2C_BOARDINFO=y 626CONFIG_I2C_BOARDINFO=y
590CONFIG_I2C_CHARDEV=y 627CONFIG_I2C_CHARDEV=y
628CONFIG_I2C_HELPER_AUTO=y
591 629
592# 630#
593# I2C Hardware Bus support 631# I2C Hardware Bus support
594# 632#
633
634#
635# PC SMBus host controller drivers
636#
595# CONFIG_I2C_ALI1535 is not set 637# CONFIG_I2C_ALI1535 is not set
596# CONFIG_I2C_ALI1563 is not set 638# CONFIG_I2C_ALI1563 is not set
597# CONFIG_I2C_ALI15X3 is not set 639# CONFIG_I2C_ALI15X3 is not set
598# CONFIG_I2C_AMD756 is not set 640# CONFIG_I2C_AMD756 is not set
599# CONFIG_I2C_AMD8111 is not set 641# CONFIG_I2C_AMD8111 is not set
600# CONFIG_I2C_I801 is not set 642# CONFIG_I2C_I801 is not set
601# CONFIG_I2C_I810 is not set 643# CONFIG_I2C_ISCH is not set
602# CONFIG_I2C_PIIX4 is not set 644# CONFIG_I2C_PIIX4 is not set
603CONFIG_I2C_MPC=y
604# CONFIG_I2C_NFORCE2 is not set 645# CONFIG_I2C_NFORCE2 is not set
605# CONFIG_I2C_OCORES is not set
606# CONFIG_I2C_PARPORT_LIGHT is not set
607# CONFIG_I2C_PROSAVAGE is not set
608# CONFIG_I2C_SAVAGE4 is not set
609# CONFIG_I2C_SIMTEC is not set
610# CONFIG_I2C_SIS5595 is not set 646# CONFIG_I2C_SIS5595 is not set
611# CONFIG_I2C_SIS630 is not set 647# CONFIG_I2C_SIS630 is not set
612# CONFIG_I2C_SIS96X is not set 648# CONFIG_I2C_SIS96X is not set
613# CONFIG_I2C_TAOS_EVM is not set
614# CONFIG_I2C_STUB is not set
615# CONFIG_I2C_VIA is not set 649# CONFIG_I2C_VIA is not set
616# CONFIG_I2C_VIAPRO is not set 650# CONFIG_I2C_VIAPRO is not set
651
652#
653# Mac SMBus host controller drivers
654#
655# CONFIG_I2C_HYDRA is not set
656CONFIG_I2C_POWERMAC=y
657
658#
659# I2C system bus drivers (mostly embedded / system-on-chip)
660#
661CONFIG_I2C_MPC=y
662# CONFIG_I2C_OCORES is not set
663# CONFIG_I2C_SIMTEC is not set
664
665#
666# External I2C/SMBus adapter drivers
667#
668# CONFIG_I2C_PARPORT_LIGHT is not set
669# CONFIG_I2C_TAOS_EVM is not set
670
671#
672# Graphics adapter I2C/DDC channel drivers
673#
617# CONFIG_I2C_VOODOO3 is not set 674# CONFIG_I2C_VOODOO3 is not set
675
676#
677# Other I2C/SMBus bus drivers
678#
618# CONFIG_I2C_PCA_PLATFORM is not set 679# CONFIG_I2C_PCA_PLATFORM is not set
680# CONFIG_I2C_STUB is not set
619 681
620# 682#
621# Miscellaneous I2C Chip support 683# Miscellaneous I2C Chip support
622# 684#
623# CONFIG_DS1682 is not set 685# CONFIG_DS1682 is not set
686# CONFIG_AT24 is not set
624# CONFIG_SENSORS_EEPROM is not set 687# CONFIG_SENSORS_EEPROM is not set
625# CONFIG_SENSORS_PCF8574 is not set 688# CONFIG_SENSORS_PCF8574 is not set
626# CONFIG_PCF8575 is not set 689# CONFIG_PCF8575 is not set
690# CONFIG_SENSORS_PCA9539 is not set
627# CONFIG_SENSORS_PCF8591 is not set 691# CONFIG_SENSORS_PCF8591 is not set
628# CONFIG_SENSORS_MAX6875 is not set 692# CONFIG_SENSORS_MAX6875 is not set
629# CONFIG_SENSORS_TSL2550 is not set 693# CONFIG_SENSORS_TSL2550 is not set
@@ -632,10 +696,13 @@ CONFIG_I2C_MPC=y
632# CONFIG_I2C_DEBUG_BUS is not set 696# CONFIG_I2C_DEBUG_BUS is not set
633# CONFIG_I2C_DEBUG_CHIP is not set 697# CONFIG_I2C_DEBUG_CHIP is not set
634# CONFIG_SPI is not set 698# CONFIG_SPI is not set
699CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
700# CONFIG_GPIOLIB is not set
635# CONFIG_W1 is not set 701# CONFIG_W1 is not set
636# CONFIG_POWER_SUPPLY is not set 702# CONFIG_POWER_SUPPLY is not set
637CONFIG_HWMON=y 703CONFIG_HWMON=y
638# CONFIG_HWMON_VID is not set 704# CONFIG_HWMON_VID is not set
705# CONFIG_SENSORS_AD7414 is not set
639# CONFIG_SENSORS_AD7418 is not set 706# CONFIG_SENSORS_AD7418 is not set
640# CONFIG_SENSORS_ADM1021 is not set 707# CONFIG_SENSORS_ADM1021 is not set
641# CONFIG_SENSORS_ADM1025 is not set 708# CONFIG_SENSORS_ADM1025 is not set
@@ -645,6 +712,7 @@ CONFIG_HWMON=y
645# CONFIG_SENSORS_ADM9240 is not set 712# CONFIG_SENSORS_ADM9240 is not set
646# CONFIG_SENSORS_ADT7470 is not set 713# CONFIG_SENSORS_ADT7470 is not set
647# CONFIG_SENSORS_ADT7473 is not set 714# CONFIG_SENSORS_ADT7473 is not set
715# CONFIG_SENSORS_AMS is not set
648# CONFIG_SENSORS_ATXP1 is not set 716# CONFIG_SENSORS_ATXP1 is not set
649# CONFIG_SENSORS_DS1621 is not set 717# CONFIG_SENSORS_DS1621 is not set
650# CONFIG_SENSORS_I5K_AMB is not set 718# CONFIG_SENSORS_I5K_AMB is not set
@@ -689,6 +757,7 @@ CONFIG_HWMON=y
689# CONFIG_SENSORS_W83627EHF is not set 757# CONFIG_SENSORS_W83627EHF is not set
690# CONFIG_HWMON_DEBUG_CHIP is not set 758# CONFIG_HWMON_DEBUG_CHIP is not set
691# CONFIG_THERMAL is not set 759# CONFIG_THERMAL is not set
760# CONFIG_THERMAL_HWMON is not set
692CONFIG_WATCHDOG=y 761CONFIG_WATCHDOG=y
693# CONFIG_WATCHDOG_NOWAYOUT is not set 762# CONFIG_WATCHDOG_NOWAYOUT is not set
694 763
@@ -696,7 +765,9 @@ CONFIG_WATCHDOG=y
696# Watchdog Device Drivers 765# Watchdog Device Drivers
697# 766#
698# CONFIG_SOFT_WATCHDOG is not set 767# CONFIG_SOFT_WATCHDOG is not set
699CONFIG_83xx_WDT=y 768# CONFIG_ALIM7101_WDT is not set
769# CONFIG_8xxx_WDT is not set
770# CONFIG_WATCHDOG_RTAS is not set
700 771
701# 772#
702# PCI-based Watchdog Cards 773# PCI-based Watchdog Cards
@@ -713,8 +784,10 @@ CONFIG_SSB_POSSIBLE=y
713# 784#
714# Multifunction device drivers 785# Multifunction device drivers
715# 786#
787# CONFIG_MFD_CORE is not set
716# CONFIG_MFD_SM501 is not set 788# CONFIG_MFD_SM501 is not set
717# CONFIG_HTC_PASIC3 is not set 789# CONFIG_HTC_PASIC3 is not set
790# CONFIG_MFD_TMIO is not set
718 791
719# 792#
720# Multimedia devices 793# Multimedia devices
@@ -746,10 +819,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
746# Display device support 819# Display device support
747# 820#
748# CONFIG_DISPLAY_SUPPORT is not set 821# CONFIG_DISPLAY_SUPPORT is not set
749
750#
751# Sound
752#
753# CONFIG_SOUND is not set 822# CONFIG_SOUND is not set
754CONFIG_HID_SUPPORT=y 823CONFIG_HID_SUPPORT=y
755CONFIG_HID=y 824CONFIG_HID=y
@@ -764,6 +833,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
764# CONFIG_USB_OTG_BLACKLIST_HUB is not set 833# CONFIG_USB_OTG_BLACKLIST_HUB is not set
765 834
766# 835#
836# Enable Host or Gadget support to see Inventra options
837#
838
839#
767# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 840# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
768# 841#
769# CONFIG_USB_GADGET is not set 842# CONFIG_USB_GADGET is not set
@@ -802,6 +875,7 @@ CONFIG_RTC_DRV_DS1374=y
802# CONFIG_RTC_DRV_PCF8583 is not set 875# CONFIG_RTC_DRV_PCF8583 is not set
803# CONFIG_RTC_DRV_M41T80 is not set 876# CONFIG_RTC_DRV_M41T80 is not set
804# CONFIG_RTC_DRV_S35390A is not set 877# CONFIG_RTC_DRV_S35390A is not set
878# CONFIG_RTC_DRV_FM3130 is not set
805 879
806# 880#
807# SPI RTC drivers 881# SPI RTC drivers
@@ -890,6 +964,7 @@ CONFIG_TMPFS=y
890# CONFIG_CRAMFS is not set 964# CONFIG_CRAMFS is not set
891# CONFIG_VXFS_FS is not set 965# CONFIG_VXFS_FS is not set
892# CONFIG_MINIX_FS is not set 966# CONFIG_MINIX_FS is not set
967# CONFIG_OMFS_FS is not set
893# CONFIG_HPFS_FS is not set 968# CONFIG_HPFS_FS is not set
894# CONFIG_QNX4FS_FS is not set 969# CONFIG_QNX4FS_FS is not set
895# CONFIG_ROMFS_FS is not set 970# CONFIG_ROMFS_FS is not set
@@ -900,14 +975,13 @@ CONFIG_NFS_FS=y
900CONFIG_NFS_V3=y 975CONFIG_NFS_V3=y
901# CONFIG_NFS_V3_ACL is not set 976# CONFIG_NFS_V3_ACL is not set
902CONFIG_NFS_V4=y 977CONFIG_NFS_V4=y
903# CONFIG_NFSD is not set
904CONFIG_ROOT_NFS=y 978CONFIG_ROOT_NFS=y
979# CONFIG_NFSD is not set
905CONFIG_LOCKD=y 980CONFIG_LOCKD=y
906CONFIG_LOCKD_V4=y 981CONFIG_LOCKD_V4=y
907CONFIG_NFS_COMMON=y 982CONFIG_NFS_COMMON=y
908CONFIG_SUNRPC=y 983CONFIG_SUNRPC=y
909CONFIG_SUNRPC_GSS=y 984CONFIG_SUNRPC_GSS=y
910# CONFIG_SUNRPC_BIND34 is not set
911CONFIG_RPCSEC_GSS_KRB5=y 985CONFIG_RPCSEC_GSS_KRB5=y
912# CONFIG_RPCSEC_GSS_SPKM3 is not set 986# CONFIG_RPCSEC_GSS_SPKM3 is not set
913# CONFIG_SMB_FS is not set 987# CONFIG_SMB_FS is not set
@@ -943,6 +1017,7 @@ CONFIG_BITREVERSE=y
943# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1017# CONFIG_GENERIC_FIND_FIRST_BIT is not set
944# CONFIG_CRC_CCITT is not set 1018# CONFIG_CRC_CCITT is not set
945# CONFIG_CRC16 is not set 1019# CONFIG_CRC16 is not set
1020# CONFIG_CRC_T10DIF is not set
946# CONFIG_CRC_ITU_T is not set 1021# CONFIG_CRC_ITU_T is not set
947CONFIG_CRC32=y 1022CONFIG_CRC32=y
948# CONFIG_CRC7 is not set 1023# CONFIG_CRC7 is not set
@@ -968,8 +1043,18 @@ CONFIG_FRAME_WARN=1024
968# CONFIG_SLUB_DEBUG_ON is not set 1043# CONFIG_SLUB_DEBUG_ON is not set
969# CONFIG_SLUB_STATS is not set 1044# CONFIG_SLUB_STATS is not set
970# CONFIG_DEBUG_BUGVERBOSE is not set 1045# CONFIG_DEBUG_BUGVERBOSE is not set
1046# CONFIG_DEBUG_MEMORY_INIT is not set
1047# CONFIG_LATENCYTOP is not set
1048CONFIG_SYSCTL_SYSCALL_CHECK=y
1049CONFIG_HAVE_FTRACE=y
1050CONFIG_HAVE_DYNAMIC_FTRACE=y
1051# CONFIG_FTRACE is not set
1052# CONFIG_SCHED_TRACER is not set
1053# CONFIG_CONTEXT_SWITCH_TRACER is not set
971# CONFIG_SAMPLES is not set 1054# CONFIG_SAMPLES is not set
1055CONFIG_HAVE_ARCH_KGDB=y
972# CONFIG_IRQSTACKS is not set 1056# CONFIG_IRQSTACKS is not set
1057# CONFIG_BOOTX_TEXT is not set
973# CONFIG_PPC_EARLY_DEBUG is not set 1058# CONFIG_PPC_EARLY_DEBUG is not set
974 1059
975# 1060#
@@ -1023,6 +1108,10 @@ CONFIG_CRYPTO_PCBC=m
1023# CONFIG_CRYPTO_MD4 is not set 1108# CONFIG_CRYPTO_MD4 is not set
1024CONFIG_CRYPTO_MD5=y 1109CONFIG_CRYPTO_MD5=y
1025# CONFIG_CRYPTO_MICHAEL_MIC is not set 1110# CONFIG_CRYPTO_MICHAEL_MIC is not set
1111# CONFIG_CRYPTO_RMD128 is not set
1112# CONFIG_CRYPTO_RMD160 is not set
1113# CONFIG_CRYPTO_RMD256 is not set
1114# CONFIG_CRYPTO_RMD320 is not set
1026# CONFIG_CRYPTO_SHA1 is not set 1115# CONFIG_CRYPTO_SHA1 is not set
1027# CONFIG_CRYPTO_SHA256 is not set 1116# CONFIG_CRYPTO_SHA256 is not set
1028# CONFIG_CRYPTO_SHA512 is not set 1117# CONFIG_CRYPTO_SHA512 is not set
@@ -1055,5 +1144,6 @@ CONFIG_CRYPTO_DES=y
1055# CONFIG_CRYPTO_LZO is not set 1144# CONFIG_CRYPTO_LZO is not set
1056CONFIG_CRYPTO_HW=y 1145CONFIG_CRYPTO_HW=y
1057# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1146# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1147# CONFIG_CRYPTO_DEV_TALITOS is not set
1058# CONFIG_PPC_CLOCK is not set 1148# CONFIG_PPC_CLOCK is not set
1059# CONFIG_VIRTUALIZATION is not set 1149# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
index 20fd9f58cf4..e029e9e1462 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:27 2008 4# Thu Aug 21 00:52:22 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,36 +161,48 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162# CONFIG_MPC831x_RDB is not set 176# CONFIG_MPC831x_RDB is not set
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166# CONFIG_MPC834x_ITX is not set 180# CONFIG_MPC834x_ITX is not set
167CONFIG_MPC836x_MDS=y 181CONFIG_MPC836x_MDS=y
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
187# CONFIG_PPC_86xx is not set
188# CONFIG_EMBEDDED6xx is not set
189CONFIG_PPC_NATIVE=y
190# CONFIG_UDBG_RTAS_CONSOLE is not set
171CONFIG_IPIC=y 191CONFIG_IPIC=y
172# CONFIG_MPIC is not set 192CONFIG_MPIC=y
173# CONFIG_MPIC_WEIRD is not set 193# CONFIG_MPIC_WEIRD is not set
174# CONFIG_PPC_I8259 is not set 194CONFIG_PPC_I8259=y
175# CONFIG_PPC_RTAS is not set 195CONFIG_PPC_RTAS=y
196# CONFIG_RTAS_ERROR_LOGGING is not set
197CONFIG_RTAS_PROC=y
176# CONFIG_MMIO_NVRAM is not set 198# CONFIG_MMIO_NVRAM is not set
177# CONFIG_PPC_MPC106 is not set 199CONFIG_PPC_MPC106=y
178# CONFIG_PPC_970_NAP is not set 200# CONFIG_PPC_970_NAP is not set
179# CONFIG_PPC_INDIRECT_IO is not set 201# CONFIG_PPC_INDIRECT_IO is not set
180# CONFIG_GENERIC_IOMAP is not set 202# CONFIG_GENERIC_IOMAP is not set
181# CONFIG_CPU_FREQ is not set 203# CONFIG_CPU_FREQ is not set
204# CONFIG_PPC601_SYNC_FIX is not set
205# CONFIG_TAU is not set
182CONFIG_QUICC_ENGINE=y 206CONFIG_QUICC_ENGINE=y
183# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
184 208
@@ -195,7 +219,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 221CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 222CONFIG_SCHED_HRTICK=y
199CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
@@ -205,6 +229,7 @@ CONFIG_BINFMT_ELF=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y 230CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
232# CONFIG_KEXEC is not set
208CONFIG_ARCH_FLATMEM_ENABLE=y 233CONFIG_ARCH_FLATMEM_ENABLE=y
209CONFIG_ARCH_POPULATES_NODE_MAP=y 234CONFIG_ARCH_POPULATES_NODE_MAP=y
210CONFIG_SELECT_MEMORY_MODEL=y 235CONFIG_SELECT_MEMORY_MODEL=y
@@ -217,6 +242,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -224,6 +250,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 254# CONFIG_PM is not set
228CONFIG_SECCOMP=y 255CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 256CONFIG_ISA_DMA_API=y
@@ -231,10 +258,13 @@ CONFIG_ISA_DMA_API=y
231# 258#
232# Bus options 259# Bus options
233# 260#
261# CONFIG_ISA is not set
234CONFIG_ZONE_DMA=y 262CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 263CONFIG_GENERIC_ISA_DMA=y
236CONFIG_PPC_INDIRECT_PCI=y 264CONFIG_PPC_INDIRECT_PCI=y
237CONFIG_FSL_SOC=y 265CONFIG_FSL_SOC=y
266CONFIG_FSL_PCI=y
267CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 268CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 269CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 270CONFIG_PCI_SYSCALL=y
@@ -259,10 +289,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
259CONFIG_KERNEL_START=0xc0000000 289CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000 290CONFIG_PHYSICAL_START=0x00000000
261CONFIG_TASK_SIZE=0xc0000000 291CONFIG_TASK_SIZE=0xc0000000
262
263#
264# Networking
265#
266CONFIG_NET=y 292CONFIG_NET=y
267 293
268# 294#
@@ -363,6 +389,7 @@ CONFIG_OF_I2C=y
363# CONFIG_PARPORT is not set 389# CONFIG_PARPORT is not set
364CONFIG_BLK_DEV=y 390CONFIG_BLK_DEV=y
365# CONFIG_BLK_DEV_FD is not set 391# CONFIG_BLK_DEV_FD is not set
392# CONFIG_MAC_FLOPPY is not set
366# CONFIG_BLK_CPQ_DA is not set 393# CONFIG_BLK_CPQ_DA is not set
367# CONFIG_BLK_CPQ_CISS_DA is not set 394# CONFIG_BLK_CPQ_CISS_DA is not set
368# CONFIG_BLK_DEV_DAC960 is not set 395# CONFIG_BLK_DEV_DAC960 is not set
@@ -378,12 +405,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
378# CONFIG_BLK_DEV_XIP is not set 405# CONFIG_BLK_DEV_XIP is not set
379# CONFIG_CDROM_PKTCDVD is not set 406# CONFIG_CDROM_PKTCDVD is not set
380# CONFIG_ATA_OVER_ETH is not set 407# CONFIG_ATA_OVER_ETH is not set
408# CONFIG_BLK_DEV_HD is not set
381CONFIG_MISC_DEVICES=y 409CONFIG_MISC_DEVICES=y
382# CONFIG_PHANTOM is not set 410# CONFIG_PHANTOM is not set
383# CONFIG_EEPROM_93CX6 is not set 411# CONFIG_EEPROM_93CX6 is not set
384# CONFIG_SGI_IOC4 is not set 412# CONFIG_SGI_IOC4 is not set
385# CONFIG_TIFM_CORE is not set 413# CONFIG_TIFM_CORE is not set
386# CONFIG_ENCLOSURE_SERVICES is not set 414# CONFIG_ENCLOSURE_SERVICES is not set
415# CONFIG_HP_ILO is not set
387CONFIG_HAVE_IDE=y 416CONFIG_HAVE_IDE=y
388# CONFIG_IDE is not set 417# CONFIG_IDE is not set
389 418
@@ -460,7 +489,10 @@ CONFIG_SCSI_LOWLEVEL=y
460# CONFIG_SCSI_DC390T is not set 489# CONFIG_SCSI_DC390T is not set
461# CONFIG_SCSI_NSP32 is not set 490# CONFIG_SCSI_NSP32 is not set
462# CONFIG_SCSI_DEBUG is not set 491# CONFIG_SCSI_DEBUG is not set
492# CONFIG_SCSI_MESH is not set
493# CONFIG_SCSI_MAC53C94 is not set
463# CONFIG_SCSI_SRP is not set 494# CONFIG_SCSI_SRP is not set
495# CONFIG_SCSI_DH is not set
464# CONFIG_ATA is not set 496# CONFIG_ATA is not set
465# CONFIG_MD is not set 497# CONFIG_MD is not set
466# CONFIG_FUSION is not set 498# CONFIG_FUSION is not set
@@ -468,12 +500,15 @@ CONFIG_SCSI_LOWLEVEL=y
468# 500#
469# IEEE 1394 (FireWire) support 501# IEEE 1394 (FireWire) support
470# 502#
503
504#
505# Enable only one of the two stacks, unless you know what you are doing
506#
471# CONFIG_FIREWIRE is not set 507# CONFIG_FIREWIRE is not set
472# CONFIG_IEEE1394 is not set 508# CONFIG_IEEE1394 is not set
473# CONFIG_I2O is not set 509# CONFIG_I2O is not set
474# CONFIG_MACINTOSH_DRIVERS is not set 510# CONFIG_MACINTOSH_DRIVERS is not set
475CONFIG_NETDEVICES=y 511CONFIG_NETDEVICES=y
476# CONFIG_NETDEVICES_MULTIQUEUE is not set
477# CONFIG_DUMMY is not set 512# CONFIG_DUMMY is not set
478# CONFIG_BONDING is not set 513# CONFIG_BONDING is not set
479# CONFIG_MACVLAN is not set 514# CONFIG_MACVLAN is not set
@@ -500,6 +535,8 @@ CONFIG_MARVELL_PHY=y
500# CONFIG_MDIO_BITBANG is not set 535# CONFIG_MDIO_BITBANG is not set
501CONFIG_NET_ETHERNET=y 536CONFIG_NET_ETHERNET=y
502CONFIG_MII=y 537CONFIG_MII=y
538# CONFIG_MACE is not set
539# CONFIG_BMAC is not set
503# CONFIG_HAPPYMEAL is not set 540# CONFIG_HAPPYMEAL is not set
504# CONFIG_SUNGEM is not set 541# CONFIG_SUNGEM is not set
505# CONFIG_CASSINI is not set 542# CONFIG_CASSINI is not set
@@ -517,7 +554,6 @@ CONFIG_NETDEV_1000=y
517# CONFIG_DL2K is not set 554# CONFIG_DL2K is not set
518# CONFIG_E1000 is not set 555# CONFIG_E1000 is not set
519# CONFIG_E1000E is not set 556# CONFIG_E1000E is not set
520# CONFIG_E1000E_ENABLED is not set
521# CONFIG_IP1000 is not set 557# CONFIG_IP1000 is not set
522# CONFIG_IGB is not set 558# CONFIG_IGB is not set
523# CONFIG_NS83820 is not set 559# CONFIG_NS83820 is not set
@@ -532,12 +568,13 @@ CONFIG_NETDEV_1000=y
532# CONFIG_BNX2 is not set 568# CONFIG_BNX2 is not set
533# CONFIG_GIANFAR is not set 569# CONFIG_GIANFAR is not set
534CONFIG_UCC_GETH=y 570CONFIG_UCC_GETH=y
535# CONFIG_UGETH_NAPI is not set
536# CONFIG_UGETH_MAGIC_PACKET is not set 571# CONFIG_UGETH_MAGIC_PACKET is not set
537# CONFIG_UGETH_FILTERING is not set 572# CONFIG_UGETH_FILTERING is not set
538# CONFIG_UGETH_TX_ON_DEMAND is not set 573# CONFIG_UGETH_TX_ON_DEMAND is not set
574# CONFIG_MV643XX_ETH is not set
539# CONFIG_QLA3XXX is not set 575# CONFIG_QLA3XXX is not set
540# CONFIG_ATL1 is not set 576# CONFIG_ATL1 is not set
577# CONFIG_ATL1E is not set
541CONFIG_NETDEV_10000=y 578CONFIG_NETDEV_10000=y
542# CONFIG_CHELSIO_T1 is not set 579# CONFIG_CHELSIO_T1 is not set
543# CONFIG_CHELSIO_T3 is not set 580# CONFIG_CHELSIO_T3 is not set
@@ -626,12 +663,15 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
626# CONFIG_SERIAL_UARTLITE is not set 663# CONFIG_SERIAL_UARTLITE is not set
627CONFIG_SERIAL_CORE=y 664CONFIG_SERIAL_CORE=y
628CONFIG_SERIAL_CORE_CONSOLE=y 665CONFIG_SERIAL_CORE_CONSOLE=y
666# CONFIG_SERIAL_PMACZILOG is not set
629# CONFIG_SERIAL_JSM is not set 667# CONFIG_SERIAL_JSM is not set
630# CONFIG_SERIAL_OF_PLATFORM is not set 668# CONFIG_SERIAL_OF_PLATFORM is not set
631# CONFIG_SERIAL_QE is not set 669# CONFIG_SERIAL_QE is not set
632CONFIG_UNIX98_PTYS=y 670CONFIG_UNIX98_PTYS=y
633CONFIG_LEGACY_PTYS=y 671CONFIG_LEGACY_PTYS=y
634CONFIG_LEGACY_PTY_COUNT=256 672CONFIG_LEGACY_PTY_COUNT=256
673# CONFIG_BRIQ_PANEL is not set
674# CONFIG_HVC_RTAS is not set
635# CONFIG_IPMI_HANDLER is not set 675# CONFIG_IPMI_HANDLER is not set
636CONFIG_HW_RANDOM=y 676CONFIG_HW_RANDOM=y
637# CONFIG_NVRAM is not set 677# CONFIG_NVRAM is not set
@@ -643,42 +683,69 @@ CONFIG_DEVPORT=y
643CONFIG_I2C=y 683CONFIG_I2C=y
644CONFIG_I2C_BOARDINFO=y 684CONFIG_I2C_BOARDINFO=y
645CONFIG_I2C_CHARDEV=y 685CONFIG_I2C_CHARDEV=y
686CONFIG_I2C_HELPER_AUTO=y
646 687
647# 688#
648# I2C Hardware Bus support 689# I2C Hardware Bus support
649# 690#
691
692#
693# PC SMBus host controller drivers
694#
650# CONFIG_I2C_ALI1535 is not set 695# CONFIG_I2C_ALI1535 is not set
651# CONFIG_I2C_ALI1563 is not set 696# CONFIG_I2C_ALI1563 is not set
652# CONFIG_I2C_ALI15X3 is not set 697# CONFIG_I2C_ALI15X3 is not set
653# CONFIG_I2C_AMD756 is not set 698# CONFIG_I2C_AMD756 is not set
654# CONFIG_I2C_AMD8111 is not set 699# CONFIG_I2C_AMD8111 is not set
655# CONFIG_I2C_I801 is not set 700# CONFIG_I2C_I801 is not set
656# CONFIG_I2C_I810 is not set 701# CONFIG_I2C_ISCH is not set
657# CONFIG_I2C_PIIX4 is not set 702# CONFIG_I2C_PIIX4 is not set
658CONFIG_I2C_MPC=y
659# CONFIG_I2C_NFORCE2 is not set 703# CONFIG_I2C_NFORCE2 is not set
660# CONFIG_I2C_OCORES is not set
661# CONFIG_I2C_PARPORT_LIGHT is not set
662# CONFIG_I2C_PROSAVAGE is not set
663# CONFIG_I2C_SAVAGE4 is not set
664# CONFIG_I2C_SIMTEC is not set
665# CONFIG_I2C_SIS5595 is not set 704# CONFIG_I2C_SIS5595 is not set
666# CONFIG_I2C_SIS630 is not set 705# CONFIG_I2C_SIS630 is not set
667# CONFIG_I2C_SIS96X is not set 706# CONFIG_I2C_SIS96X is not set
668# CONFIG_I2C_TAOS_EVM is not set
669# CONFIG_I2C_STUB is not set
670# CONFIG_I2C_VIA is not set 707# CONFIG_I2C_VIA is not set
671# CONFIG_I2C_VIAPRO is not set 708# CONFIG_I2C_VIAPRO is not set
709
710#
711# Mac SMBus host controller drivers
712#
713# CONFIG_I2C_HYDRA is not set
714CONFIG_I2C_POWERMAC=y
715
716#
717# I2C system bus drivers (mostly embedded / system-on-chip)
718#
719CONFIG_I2C_MPC=y
720# CONFIG_I2C_OCORES is not set
721# CONFIG_I2C_SIMTEC is not set
722
723#
724# External I2C/SMBus adapter drivers
725#
726# CONFIG_I2C_PARPORT_LIGHT is not set
727# CONFIG_I2C_TAOS_EVM is not set
728
729#
730# Graphics adapter I2C/DDC channel drivers
731#
672# CONFIG_I2C_VOODOO3 is not set 732# CONFIG_I2C_VOODOO3 is not set
733
734#
735# Other I2C/SMBus bus drivers
736#
673# CONFIG_I2C_PCA_PLATFORM is not set 737# CONFIG_I2C_PCA_PLATFORM is not set
738# CONFIG_I2C_STUB is not set
674 739
675# 740#
676# Miscellaneous I2C Chip support 741# Miscellaneous I2C Chip support
677# 742#
678# CONFIG_DS1682 is not set 743# CONFIG_DS1682 is not set
744# CONFIG_AT24 is not set
679# CONFIG_SENSORS_EEPROM is not set 745# CONFIG_SENSORS_EEPROM is not set
680# CONFIG_SENSORS_PCF8574 is not set 746# CONFIG_SENSORS_PCF8574 is not set
681# CONFIG_PCF8575 is not set 747# CONFIG_PCF8575 is not set
748# CONFIG_SENSORS_PCA9539 is not set
682# CONFIG_SENSORS_PCF8591 is not set 749# CONFIG_SENSORS_PCF8591 is not set
683# CONFIG_SENSORS_MAX6875 is not set 750# CONFIG_SENSORS_MAX6875 is not set
684# CONFIG_SENSORS_TSL2550 is not set 751# CONFIG_SENSORS_TSL2550 is not set
@@ -687,10 +754,13 @@ CONFIG_I2C_MPC=y
687# CONFIG_I2C_DEBUG_BUS is not set 754# CONFIG_I2C_DEBUG_BUS is not set
688# CONFIG_I2C_DEBUG_CHIP is not set 755# CONFIG_I2C_DEBUG_CHIP is not set
689# CONFIG_SPI is not set 756# CONFIG_SPI is not set
757CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
758# CONFIG_GPIOLIB is not set
690# CONFIG_W1 is not set 759# CONFIG_W1 is not set
691# CONFIG_POWER_SUPPLY is not set 760# CONFIG_POWER_SUPPLY is not set
692CONFIG_HWMON=y 761CONFIG_HWMON=y
693# CONFIG_HWMON_VID is not set 762# CONFIG_HWMON_VID is not set
763# CONFIG_SENSORS_AD7414 is not set
694# CONFIG_SENSORS_AD7418 is not set 764# CONFIG_SENSORS_AD7418 is not set
695# CONFIG_SENSORS_ADM1021 is not set 765# CONFIG_SENSORS_ADM1021 is not set
696# CONFIG_SENSORS_ADM1025 is not set 766# CONFIG_SENSORS_ADM1025 is not set
@@ -700,6 +770,7 @@ CONFIG_HWMON=y
700# CONFIG_SENSORS_ADM9240 is not set 770# CONFIG_SENSORS_ADM9240 is not set
701# CONFIG_SENSORS_ADT7470 is not set 771# CONFIG_SENSORS_ADT7470 is not set
702# CONFIG_SENSORS_ADT7473 is not set 772# CONFIG_SENSORS_ADT7473 is not set
773# CONFIG_SENSORS_AMS is not set
703# CONFIG_SENSORS_ATXP1 is not set 774# CONFIG_SENSORS_ATXP1 is not set
704# CONFIG_SENSORS_DS1621 is not set 775# CONFIG_SENSORS_DS1621 is not set
705# CONFIG_SENSORS_I5K_AMB is not set 776# CONFIG_SENSORS_I5K_AMB is not set
@@ -744,6 +815,7 @@ CONFIG_HWMON=y
744# CONFIG_SENSORS_W83627EHF is not set 815# CONFIG_SENSORS_W83627EHF is not set
745# CONFIG_HWMON_DEBUG_CHIP is not set 816# CONFIG_HWMON_DEBUG_CHIP is not set
746# CONFIG_THERMAL is not set 817# CONFIG_THERMAL is not set
818# CONFIG_THERMAL_HWMON is not set
747CONFIG_WATCHDOG=y 819CONFIG_WATCHDOG=y
748# CONFIG_WATCHDOG_NOWAYOUT is not set 820# CONFIG_WATCHDOG_NOWAYOUT is not set
749 821
@@ -751,7 +823,9 @@ CONFIG_WATCHDOG=y
751# Watchdog Device Drivers 823# Watchdog Device Drivers
752# 824#
753# CONFIG_SOFT_WATCHDOG is not set 825# CONFIG_SOFT_WATCHDOG is not set
754CONFIG_83xx_WDT=y 826# CONFIG_ALIM7101_WDT is not set
827# CONFIG_8xxx_WDT is not set
828# CONFIG_WATCHDOG_RTAS is not set
755 829
756# 830#
757# PCI-based Watchdog Cards 831# PCI-based Watchdog Cards
@@ -768,8 +842,10 @@ CONFIG_SSB_POSSIBLE=y
768# 842#
769# Multifunction device drivers 843# Multifunction device drivers
770# 844#
845# CONFIG_MFD_CORE is not set
771# CONFIG_MFD_SM501 is not set 846# CONFIG_MFD_SM501 is not set
772# CONFIG_HTC_PASIC3 is not set 847# CONFIG_HTC_PASIC3 is not set
848# CONFIG_MFD_TMIO is not set
773 849
774# 850#
775# Multimedia devices 851# Multimedia devices
@@ -801,10 +877,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
801# Display device support 877# Display device support
802# 878#
803# CONFIG_DISPLAY_SUPPORT is not set 879# CONFIG_DISPLAY_SUPPORT is not set
804
805#
806# Sound
807#
808# CONFIG_SOUND is not set 880# CONFIG_SOUND is not set
809CONFIG_HID_SUPPORT=y 881CONFIG_HID_SUPPORT=y
810CONFIG_HID=y 882CONFIG_HID=y
@@ -819,6 +891,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
819# CONFIG_USB_OTG_BLACKLIST_HUB is not set 891# CONFIG_USB_OTG_BLACKLIST_HUB is not set
820 892
821# 893#
894# Enable Host or Gadget support to see Inventra options
895#
896
897#
822# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 898# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
823# 899#
824# CONFIG_USB_GADGET is not set 900# CONFIG_USB_GADGET is not set
@@ -857,6 +933,7 @@ CONFIG_RTC_DRV_DS1374=y
857# CONFIG_RTC_DRV_PCF8583 is not set 933# CONFIG_RTC_DRV_PCF8583 is not set
858# CONFIG_RTC_DRV_M41T80 is not set 934# CONFIG_RTC_DRV_M41T80 is not set
859# CONFIG_RTC_DRV_S35390A is not set 935# CONFIG_RTC_DRV_S35390A is not set
936# CONFIG_RTC_DRV_FM3130 is not set
860 937
861# 938#
862# SPI RTC drivers 939# SPI RTC drivers
@@ -945,6 +1022,7 @@ CONFIG_TMPFS=y
945# CONFIG_CRAMFS is not set 1022# CONFIG_CRAMFS is not set
946# CONFIG_VXFS_FS is not set 1023# CONFIG_VXFS_FS is not set
947# CONFIG_MINIX_FS is not set 1024# CONFIG_MINIX_FS is not set
1025# CONFIG_OMFS_FS is not set
948# CONFIG_HPFS_FS is not set 1026# CONFIG_HPFS_FS is not set
949# CONFIG_QNX4FS_FS is not set 1027# CONFIG_QNX4FS_FS is not set
950# CONFIG_ROMFS_FS is not set 1028# CONFIG_ROMFS_FS is not set
@@ -955,14 +1033,13 @@ CONFIG_NFS_FS=y
955CONFIG_NFS_V3=y 1033CONFIG_NFS_V3=y
956# CONFIG_NFS_V3_ACL is not set 1034# CONFIG_NFS_V3_ACL is not set
957CONFIG_NFS_V4=y 1035CONFIG_NFS_V4=y
958# CONFIG_NFSD is not set
959CONFIG_ROOT_NFS=y 1036CONFIG_ROOT_NFS=y
1037# CONFIG_NFSD is not set
960CONFIG_LOCKD=y 1038CONFIG_LOCKD=y
961CONFIG_LOCKD_V4=y 1039CONFIG_LOCKD_V4=y
962CONFIG_NFS_COMMON=y 1040CONFIG_NFS_COMMON=y
963CONFIG_SUNRPC=y 1041CONFIG_SUNRPC=y
964CONFIG_SUNRPC_GSS=y 1042CONFIG_SUNRPC_GSS=y
965# CONFIG_SUNRPC_BIND34 is not set
966CONFIG_RPCSEC_GSS_KRB5=y 1043CONFIG_RPCSEC_GSS_KRB5=y
967# CONFIG_RPCSEC_GSS_SPKM3 is not set 1044# CONFIG_RPCSEC_GSS_SPKM3 is not set
968# CONFIG_SMB_FS is not set 1045# CONFIG_SMB_FS is not set
@@ -992,6 +1069,7 @@ CONFIG_PARTITION_ADVANCED=y
992# CONFIG_DLM is not set 1069# CONFIG_DLM is not set
993CONFIG_UCC_FAST=y 1070CONFIG_UCC_FAST=y
994CONFIG_UCC=y 1071CONFIG_UCC=y
1072# CONFIG_QE_GPIO is not set
995 1073
996# 1074#
997# Library routines 1075# Library routines
@@ -1000,6 +1078,7 @@ CONFIG_BITREVERSE=y
1000# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1078# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1001# CONFIG_CRC_CCITT is not set 1079# CONFIG_CRC_CCITT is not set
1002# CONFIG_CRC16 is not set 1080# CONFIG_CRC16 is not set
1081# CONFIG_CRC_T10DIF is not set
1003# CONFIG_CRC_ITU_T is not set 1082# CONFIG_CRC_ITU_T is not set
1004CONFIG_CRC32=y 1083CONFIG_CRC32=y
1005# CONFIG_CRC7 is not set 1084# CONFIG_CRC7 is not set
@@ -1025,8 +1104,18 @@ CONFIG_FRAME_WARN=1024
1025# CONFIG_SLUB_DEBUG_ON is not set 1104# CONFIG_SLUB_DEBUG_ON is not set
1026# CONFIG_SLUB_STATS is not set 1105# CONFIG_SLUB_STATS is not set
1027# CONFIG_DEBUG_BUGVERBOSE is not set 1106# CONFIG_DEBUG_BUGVERBOSE is not set
1107# CONFIG_DEBUG_MEMORY_INIT is not set
1108# CONFIG_LATENCYTOP is not set
1109CONFIG_SYSCTL_SYSCALL_CHECK=y
1110CONFIG_HAVE_FTRACE=y
1111CONFIG_HAVE_DYNAMIC_FTRACE=y
1112# CONFIG_FTRACE is not set
1113# CONFIG_SCHED_TRACER is not set
1114# CONFIG_CONTEXT_SWITCH_TRACER is not set
1028# CONFIG_SAMPLES is not set 1115# CONFIG_SAMPLES is not set
1116CONFIG_HAVE_ARCH_KGDB=y
1029# CONFIG_IRQSTACKS is not set 1117# CONFIG_IRQSTACKS is not set
1118# CONFIG_BOOTX_TEXT is not set
1030# CONFIG_PPC_EARLY_DEBUG is not set 1119# CONFIG_PPC_EARLY_DEBUG is not set
1031 1120
1032# 1121#
@@ -1080,6 +1169,10 @@ CONFIG_CRYPTO_PCBC=m
1080# CONFIG_CRYPTO_MD4 is not set 1169# CONFIG_CRYPTO_MD4 is not set
1081CONFIG_CRYPTO_MD5=y 1170CONFIG_CRYPTO_MD5=y
1082# CONFIG_CRYPTO_MICHAEL_MIC is not set 1171# CONFIG_CRYPTO_MICHAEL_MIC is not set
1172# CONFIG_CRYPTO_RMD128 is not set
1173# CONFIG_CRYPTO_RMD160 is not set
1174# CONFIG_CRYPTO_RMD256 is not set
1175# CONFIG_CRYPTO_RMD320 is not set
1083# CONFIG_CRYPTO_SHA1 is not set 1176# CONFIG_CRYPTO_SHA1 is not set
1084# CONFIG_CRYPTO_SHA256 is not set 1177# CONFIG_CRYPTO_SHA256 is not set
1085# CONFIG_CRYPTO_SHA512 is not set 1178# CONFIG_CRYPTO_SHA512 is not set
@@ -1112,6 +1205,7 @@ CONFIG_CRYPTO_DES=y
1112# CONFIG_CRYPTO_LZO is not set 1205# CONFIG_CRYPTO_LZO is not set
1113CONFIG_CRYPTO_HW=y 1206CONFIG_CRYPTO_HW=y
1114# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1207# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1208# CONFIG_CRYPTO_DEV_TALITOS is not set
1115# CONFIG_PPC_CLOCK is not set 1209# CONFIG_PPC_CLOCK is not set
1116CONFIG_PPC_LIB_RHEAP=y 1210CONFIG_PPC_LIB_RHEAP=y
1117# CONFIG_VIRTUALIZATION is not set 1211# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
index d2c435f0da4..7d674be702f 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.26-rc2 3# Linux kernel version: 2.6.27-rc4
4# Mon May 19 21:12:32 2008 4# Thu Aug 21 00:52:24 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -52,6 +54,9 @@ CONFIG_PPC_UDBG_16550=y
52CONFIG_AUDIT_ARCH=y 54CONFIG_AUDIT_ARCH=y
53CONFIG_GENERIC_BUG=y 55CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 56CONFIG_DEFAULT_UIMAGE=y
57CONFIG_HIBERNATE_32=y
58CONFIG_ARCH_HIBERNATION_POSSIBLE=y
59CONFIG_ARCH_SUSPEND_POSSIBLE=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
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -89,12 +94,12 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 95CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 97# CONFIG_KALLSYMS is not set
94CONFIG_HOTPLUG=y 98CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 99CONFIG_PRINTK=y
96CONFIG_BUG=y 100CONFIG_BUG=y
97CONFIG_ELF_CORE=y 101CONFIG_ELF_CORE=y
102CONFIG_PCSPKR_PLATFORM=y
98CONFIG_COMPAT_BRK=y 103CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 105CONFIG_FUTEX=y
@@ -112,10 +117,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 118# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 125# CONFIG_HAVE_DMA_ATTRS is not set
126# CONFIG_USE_GENERIC_SMP_HELPERS is not set
127# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -126,12 +137,13 @@ CONFIG_MODULE_UNLOAD=y
126# CONFIG_MODULE_FORCE_UNLOAD is not set 137# CONFIG_MODULE_FORCE_UNLOAD is not set
127# CONFIG_MODVERSIONS is not set 138# CONFIG_MODVERSIONS is not set
128# CONFIG_MODULE_SRCVERSION_ALL is not set 139# CONFIG_MODULE_SRCVERSION_ALL is not set
129# CONFIG_KMOD is not set 140CONFIG_KMOD=y
130CONFIG_BLOCK=y 141CONFIG_BLOCK=y
131# CONFIG_LBD is not set 142# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set 144# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set
135 147
136# 148#
137# IO Schedulers 149# IO Schedulers
@@ -150,16 +162,18 @@ CONFIG_CLASSIC_RCU=y
150# 162#
151# Platform support 163# Platform support
152# 164#
153# CONFIG_PPC_MULTIPLATFORM is not set 165CONFIG_PPC_MULTIPLATFORM=y
154# CONFIG_PPC_82xx is not set 166CONFIG_CLASSIC32=y
155CONFIG_PPC_83xx=y 167CONFIG_PPC_CHRP=y
156# CONFIG_PPC_86xx is not set 168# CONFIG_MPC5121_ADS is not set
157# CONFIG_PPC_MPC512x is not set 169# CONFIG_MPC5121_GENERIC is not set
158# CONFIG_PPC_MPC5121 is not set 170# CONFIG_PPC_MPC52xx is not set
171CONFIG_PPC_PMAC=y
159# CONFIG_PPC_CELL is not set 172# CONFIG_PPC_CELL is not set
160# CONFIG_PPC_CELL_NATIVE is not set 173# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set
161# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
162CONFIG_MPC83xx=y 176CONFIG_PPC_83xx=y
163# CONFIG_MPC831x_RDB is not set 177# CONFIG_MPC831x_RDB is not set
164# CONFIG_MPC832x_MDS is not set 178# CONFIG_MPC832x_MDS is not set
165# CONFIG_MPC832x_RDB is not set 179# CONFIG_MPC832x_RDB is not set
@@ -170,17 +184,26 @@ CONFIG_MPC836x_RDK=y
170# CONFIG_MPC837x_MDS is not set 184# CONFIG_MPC837x_MDS is not set
171# CONFIG_MPC837x_RDB is not set 185# CONFIG_MPC837x_RDB is not set
172# CONFIG_SBC834x is not set 186# CONFIG_SBC834x is not set
187# CONFIG_ASP834x is not set
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
173CONFIG_IPIC=y 192CONFIG_IPIC=y
174# CONFIG_MPIC is not set 193CONFIG_MPIC=y
175# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
176# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
177# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
178# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
179# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
180# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
181# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
182# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
184CONFIG_QUICC_ENGINE=y 207CONFIG_QUICC_ENGINE=y
185# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
186 209
@@ -207,6 +230,7 @@ CONFIG_BINFMT_ELF=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
208CONFIG_ARCH_HAS_WALK_MEMORY=y 231CONFIG_ARCH_HAS_WALK_MEMORY=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 232CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
233# CONFIG_KEXEC is not set
210CONFIG_ARCH_FLATMEM_ENABLE=y 234CONFIG_ARCH_FLATMEM_ENABLE=y
211CONFIG_ARCH_POPULATES_NODE_MAP=y 235CONFIG_ARCH_POPULATES_NODE_MAP=y
212CONFIG_SELECT_MEMORY_MODEL=y 236CONFIG_SELECT_MEMORY_MODEL=y
@@ -219,6 +243,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 243# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y 244CONFIG_PAGEFLAGS_EXTENDED=y
221CONFIG_SPLIT_PTLOCK_CPUS=4 245CONFIG_SPLIT_PTLOCK_CPUS=4
246CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set 247# CONFIG_RESOURCES_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
224CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
@@ -226,6 +251,7 @@ CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
227CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
228# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
254CONFIG_EXTRA_TARGETS=""
229# CONFIG_PM is not set 255# CONFIG_PM is not set
230CONFIG_SECCOMP=y 256CONFIG_SECCOMP=y
231CONFIG_ISA_DMA_API=y 257CONFIG_ISA_DMA_API=y
@@ -233,12 +259,15 @@ CONFIG_ISA_DMA_API=y
233# 259#
234# Bus options 260# Bus options
235# 261#
262# CONFIG_ISA is not set
236CONFIG_ZONE_DMA=y 263CONFIG_ZONE_DMA=y
237CONFIG_GENERIC_ISA_DMA=y 264CONFIG_GENERIC_ISA_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 265CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 266CONFIG_FSL_SOC=y
267CONFIG_FSL_PCI=y
240CONFIG_FSL_LBC=y 268CONFIG_FSL_LBC=y
241CONFIG_FSL_GTM=y 269CONFIG_FSL_GTM=y
270CONFIG_PPC_PCI_CHOICE=y
242CONFIG_PCI=y 271CONFIG_PCI=y
243CONFIG_PCI_DOMAINS=y 272CONFIG_PCI_DOMAINS=y
244CONFIG_PCI_SYSCALL=y 273CONFIG_PCI_SYSCALL=y
@@ -263,10 +292,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
263CONFIG_KERNEL_START=0xc0000000 292CONFIG_KERNEL_START=0xc0000000
264CONFIG_PHYSICAL_START=0x00000000 293CONFIG_PHYSICAL_START=0x00000000
265CONFIG_TASK_SIZE=0xc0000000 294CONFIG_TASK_SIZE=0xc0000000
266
267#
268# Networking
269#
270CONFIG_NET=y 295CONFIG_NET=y
271 296
272# 297#
@@ -359,6 +384,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
359CONFIG_STANDALONE=y 384CONFIG_STANDALONE=y
360CONFIG_PREVENT_FIRMWARE_BUILD=y 385CONFIG_PREVENT_FIRMWARE_BUILD=y
361CONFIG_FW_LOADER=y 386CONFIG_FW_LOADER=y
387CONFIG_FIRMWARE_IN_KERNEL=y
388CONFIG_EXTRA_FIRMWARE=""
362# CONFIG_SYS_HYPERVISOR is not set 389# CONFIG_SYS_HYPERVISOR is not set
363# CONFIG_CONNECTOR is not set 390# CONFIG_CONNECTOR is not set
364CONFIG_MTD=y 391CONFIG_MTD=y
@@ -449,9 +476,11 @@ CONFIG_MTD_PHYSMAP_OF=y
449CONFIG_OF_DEVICE=y 476CONFIG_OF_DEVICE=y
450CONFIG_OF_GPIO=y 477CONFIG_OF_GPIO=y
451CONFIG_OF_I2C=y 478CONFIG_OF_I2C=y
479CONFIG_OF_SPI=y
452# CONFIG_PARPORT is not set 480# CONFIG_PARPORT is not set
453CONFIG_BLK_DEV=y 481CONFIG_BLK_DEV=y
454# CONFIG_BLK_DEV_FD is not set 482# CONFIG_BLK_DEV_FD is not set
483# CONFIG_MAC_FLOPPY is not set
455# CONFIG_BLK_CPQ_DA is not set 484# CONFIG_BLK_CPQ_DA is not set
456# CONFIG_BLK_CPQ_CISS_DA is not set 485# CONFIG_BLK_CPQ_CISS_DA is not set
457# CONFIG_BLK_DEV_DAC960 is not set 486# CONFIG_BLK_DEV_DAC960 is not set
@@ -467,12 +496,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
467# CONFIG_BLK_DEV_XIP is not set 496# CONFIG_BLK_DEV_XIP is not set
468# CONFIG_CDROM_PKTCDVD is not set 497# CONFIG_CDROM_PKTCDVD is not set
469# CONFIG_ATA_OVER_ETH is not set 498# CONFIG_ATA_OVER_ETH is not set
499# CONFIG_BLK_DEV_HD is not set
470CONFIG_MISC_DEVICES=y 500CONFIG_MISC_DEVICES=y
471# CONFIG_PHANTOM is not set 501# CONFIG_PHANTOM is not set
472# CONFIG_EEPROM_93CX6 is not set 502# CONFIG_EEPROM_93CX6 is not set
473# CONFIG_SGI_IOC4 is not set 503# CONFIG_SGI_IOC4 is not set
474# CONFIG_TIFM_CORE is not set 504# CONFIG_TIFM_CORE is not set
475# CONFIG_ENCLOSURE_SERVICES is not set 505# CONFIG_ENCLOSURE_SERVICES is not set
506# CONFIG_HP_ILO is not set
476CONFIG_HAVE_IDE=y 507CONFIG_HAVE_IDE=y
477# CONFIG_IDE is not set 508# CONFIG_IDE is not set
478 509
@@ -490,12 +521,15 @@ CONFIG_HAVE_IDE=y
490# 521#
491# IEEE 1394 (FireWire) support 522# IEEE 1394 (FireWire) support
492# 523#
524
525#
526# Enable only one of the two stacks, unless you know what you are doing
527#
493# CONFIG_FIREWIRE is not set 528# CONFIG_FIREWIRE is not set
494# CONFIG_IEEE1394 is not set 529# CONFIG_IEEE1394 is not set
495# CONFIG_I2O is not set 530# CONFIG_I2O is not set
496# CONFIG_MACINTOSH_DRIVERS is not set 531# CONFIG_MACINTOSH_DRIVERS is not set
497CONFIG_NETDEVICES=y 532CONFIG_NETDEVICES=y
498# CONFIG_NETDEVICES_MULTIQUEUE is not set
499# CONFIG_DUMMY is not set 533# CONFIG_DUMMY is not set
500# CONFIG_BONDING is not set 534# CONFIG_BONDING is not set
501# CONFIG_MACVLAN is not set 535# CONFIG_MACVLAN is not set
@@ -526,7 +560,6 @@ CONFIG_NETDEV_1000=y
526# CONFIG_DL2K is not set 560# CONFIG_DL2K is not set
527# CONFIG_E1000 is not set 561# CONFIG_E1000 is not set
528# CONFIG_E1000E is not set 562# CONFIG_E1000E is not set
529# CONFIG_E1000E_ENABLED is not set
530# CONFIG_IP1000 is not set 563# CONFIG_IP1000 is not set
531# CONFIG_IGB is not set 564# CONFIG_IGB is not set
532# CONFIG_NS83820 is not set 565# CONFIG_NS83820 is not set
@@ -541,12 +574,13 @@ CONFIG_NETDEV_1000=y
541# CONFIG_BNX2 is not set 574# CONFIG_BNX2 is not set
542# CONFIG_GIANFAR is not set 575# CONFIG_GIANFAR is not set
543CONFIG_UCC_GETH=y 576CONFIG_UCC_GETH=y
544CONFIG_UGETH_NAPI=y
545# CONFIG_UGETH_MAGIC_PACKET is not set 577# CONFIG_UGETH_MAGIC_PACKET is not set
546# CONFIG_UGETH_FILTERING is not set 578# CONFIG_UGETH_FILTERING is not set
547# CONFIG_UGETH_TX_ON_DEMAND is not set 579# CONFIG_UGETH_TX_ON_DEMAND is not set
580# CONFIG_MV643XX_ETH is not set
548# CONFIG_QLA3XXX is not set 581# CONFIG_QLA3XXX is not set
549# CONFIG_ATL1 is not set 582# CONFIG_ATL1 is not set
583# CONFIG_ATL1E is not set
550# CONFIG_NETDEV_10000 is not set 584# CONFIG_NETDEV_10000 is not set
551# CONFIG_TR is not set 585# CONFIG_TR is not set
552 586
@@ -602,6 +636,7 @@ CONFIG_INPUT=y
602# Character devices 636# Character devices
603# 637#
604CONFIG_VT=y 638CONFIG_VT=y
639CONFIG_CONSOLE_TRANSLATIONS=y
605CONFIG_VT_CONSOLE=y 640CONFIG_VT_CONSOLE=y
606CONFIG_HW_CONSOLE=y 641CONFIG_HW_CONSOLE=y
607# CONFIG_VT_HW_CONSOLE_BINDING is not set 642# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -625,12 +660,15 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
625# CONFIG_SERIAL_UARTLITE is not set 660# CONFIG_SERIAL_UARTLITE is not set
626CONFIG_SERIAL_CORE=y 661CONFIG_SERIAL_CORE=y
627CONFIG_SERIAL_CORE_CONSOLE=y 662CONFIG_SERIAL_CORE_CONSOLE=y
663# CONFIG_SERIAL_PMACZILOG is not set
628# CONFIG_SERIAL_JSM is not set 664# CONFIG_SERIAL_JSM is not set
629# CONFIG_SERIAL_OF_PLATFORM is not set 665# CONFIG_SERIAL_OF_PLATFORM is not set
630CONFIG_SERIAL_QE=y 666CONFIG_SERIAL_QE=y
631CONFIG_UNIX98_PTYS=y 667CONFIG_UNIX98_PTYS=y
632CONFIG_LEGACY_PTYS=y 668CONFIG_LEGACY_PTYS=y
633CONFIG_LEGACY_PTY_COUNT=256 669CONFIG_LEGACY_PTY_COUNT=256
670# CONFIG_BRIQ_PANEL is not set
671# CONFIG_HVC_RTAS is not set
634# CONFIG_IPMI_HANDLER is not set 672# CONFIG_IPMI_HANDLER is not set
635CONFIG_HW_RANDOM=y 673CONFIG_HW_RANDOM=y
636# CONFIG_NVRAM is not set 674# CONFIG_NVRAM is not set
@@ -643,43 +681,70 @@ CONFIG_DEVPORT=y
643CONFIG_I2C=y 681CONFIG_I2C=y
644CONFIG_I2C_BOARDINFO=y 682CONFIG_I2C_BOARDINFO=y
645CONFIG_I2C_CHARDEV=y 683CONFIG_I2C_CHARDEV=y
684CONFIG_I2C_HELPER_AUTO=y
646 685
647# 686#
648# I2C Hardware Bus support 687# I2C Hardware Bus support
649# 688#
689
690#
691# PC SMBus host controller drivers
692#
650# CONFIG_I2C_ALI1535 is not set 693# CONFIG_I2C_ALI1535 is not set
651# CONFIG_I2C_ALI1563 is not set 694# CONFIG_I2C_ALI1563 is not set
652# CONFIG_I2C_ALI15X3 is not set 695# CONFIG_I2C_ALI15X3 is not set
653# CONFIG_I2C_AMD756 is not set 696# CONFIG_I2C_AMD756 is not set
654# CONFIG_I2C_AMD8111 is not set 697# CONFIG_I2C_AMD8111 is not set
655# CONFIG_I2C_GPIO is not set
656# CONFIG_I2C_I801 is not set 698# CONFIG_I2C_I801 is not set
657# CONFIG_I2C_I810 is not set 699# CONFIG_I2C_ISCH is not set
658# CONFIG_I2C_PIIX4 is not set 700# CONFIG_I2C_PIIX4 is not set
659CONFIG_I2C_MPC=y
660# CONFIG_I2C_NFORCE2 is not set 701# CONFIG_I2C_NFORCE2 is not set
661# CONFIG_I2C_OCORES is not set
662# CONFIG_I2C_PARPORT_LIGHT is not set
663# CONFIG_I2C_PROSAVAGE is not set
664# CONFIG_I2C_SAVAGE4 is not set
665# CONFIG_I2C_SIMTEC is not set
666# CONFIG_I2C_SIS5595 is not set 702# CONFIG_I2C_SIS5595 is not set
667# CONFIG_I2C_SIS630 is not set 703# CONFIG_I2C_SIS630 is not set
668# CONFIG_I2C_SIS96X is not set 704# CONFIG_I2C_SIS96X is not set
669# CONFIG_I2C_TAOS_EVM is not set
670# CONFIG_I2C_STUB is not set
671# CONFIG_I2C_VIA is not set 705# CONFIG_I2C_VIA is not set
672# CONFIG_I2C_VIAPRO is not set 706# CONFIG_I2C_VIAPRO is not set
707
708#
709# Mac SMBus host controller drivers
710#
711# CONFIG_I2C_HYDRA is not set
712CONFIG_I2C_POWERMAC=y
713
714#
715# I2C system bus drivers (mostly embedded / system-on-chip)
716#
717# CONFIG_I2C_GPIO is not set
718CONFIG_I2C_MPC=y
719# CONFIG_I2C_OCORES is not set
720# CONFIG_I2C_SIMTEC is not set
721
722#
723# External I2C/SMBus adapter drivers
724#
725# CONFIG_I2C_PARPORT_LIGHT is not set
726# CONFIG_I2C_TAOS_EVM is not set
727
728#
729# Graphics adapter I2C/DDC channel drivers
730#
673# CONFIG_I2C_VOODOO3 is not set 731# CONFIG_I2C_VOODOO3 is not set
732
733#
734# Other I2C/SMBus bus drivers
735#
674# CONFIG_I2C_PCA_PLATFORM is not set 736# CONFIG_I2C_PCA_PLATFORM is not set
737# CONFIG_I2C_STUB is not set
675 738
676# 739#
677# Miscellaneous I2C Chip support 740# Miscellaneous I2C Chip support
678# 741#
679# CONFIG_DS1682 is not set 742# CONFIG_DS1682 is not set
743# CONFIG_AT24 is not set
680# CONFIG_SENSORS_EEPROM is not set 744# CONFIG_SENSORS_EEPROM is not set
681# CONFIG_SENSORS_PCF8574 is not set 745# CONFIG_SENSORS_PCF8574 is not set
682# CONFIG_PCF8575 is not set 746# CONFIG_PCF8575 is not set
747# CONFIG_SENSORS_PCA9539 is not set
683# CONFIG_SENSORS_PCF8591 is not set 748# CONFIG_SENSORS_PCF8591 is not set
684# CONFIG_TPS65010 is not set 749# CONFIG_TPS65010 is not set
685# CONFIG_SENSORS_MAX6875 is not set 750# CONFIG_SENSORS_MAX6875 is not set
@@ -703,26 +768,33 @@ CONFIG_SPI_MPC83xx=y
703# CONFIG_SPI_AT25 is not set 768# CONFIG_SPI_AT25 is not set
704CONFIG_SPI_SPIDEV=y 769CONFIG_SPI_SPIDEV=y
705# CONFIG_SPI_TLE62X0 is not set 770# CONFIG_SPI_TLE62X0 is not set
706CONFIG_HAVE_GPIO_LIB=y 771CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
707 772CONFIG_ARCH_REQUIRE_GPIOLIB=y
708# 773CONFIG_GPIOLIB=y
709# GPIO Support 774# CONFIG_GPIO_SYSFS is not set
710#
711 775
712# 776#
713# I2C GPIO expanders: 777# I2C GPIO expanders:
714# 778#
779# CONFIG_GPIO_MAX732X is not set
715# CONFIG_GPIO_PCA953X is not set 780# CONFIG_GPIO_PCA953X is not set
716# CONFIG_GPIO_PCF857X is not set 781# CONFIG_GPIO_PCF857X is not set
717 782
718# 783#
784# PCI GPIO expanders:
785#
786# CONFIG_GPIO_BT8XX is not set
787
788#
719# SPI GPIO expanders: 789# SPI GPIO expanders:
720# 790#
791# CONFIG_GPIO_MAX7301 is not set
721# CONFIG_GPIO_MCP23S08 is not set 792# CONFIG_GPIO_MCP23S08 is not set
722# CONFIG_W1 is not set 793# CONFIG_W1 is not set
723# CONFIG_POWER_SUPPLY is not set 794# CONFIG_POWER_SUPPLY is not set
724# CONFIG_HWMON is not set 795# CONFIG_HWMON is not set
725# CONFIG_THERMAL is not set 796# CONFIG_THERMAL is not set
797# CONFIG_THERMAL_HWMON is not set
726CONFIG_WATCHDOG=y 798CONFIG_WATCHDOG=y
727# CONFIG_WATCHDOG_NOWAYOUT is not set 799# CONFIG_WATCHDOG_NOWAYOUT is not set
728 800
@@ -730,7 +802,9 @@ CONFIG_WATCHDOG=y
730# Watchdog Device Drivers 802# Watchdog Device Drivers
731# 803#
732# CONFIG_SOFT_WATCHDOG is not set 804# CONFIG_SOFT_WATCHDOG is not set
733CONFIG_83xx_WDT=y 805# CONFIG_ALIM7101_WDT is not set
806# CONFIG_8xxx_WDT is not set
807# CONFIG_WATCHDOG_RTAS is not set
734 808
735# 809#
736# PCI-based Watchdog Cards 810# PCI-based Watchdog Cards
@@ -747,9 +821,10 @@ CONFIG_SSB_POSSIBLE=y
747# 821#
748# Multifunction device drivers 822# Multifunction device drivers
749# 823#
824# CONFIG_MFD_CORE is not set
750# CONFIG_MFD_SM501 is not set 825# CONFIG_MFD_SM501 is not set
751# CONFIG_HTC_EGPIO is not set
752# CONFIG_HTC_PASIC3 is not set 826# CONFIG_HTC_PASIC3 is not set
827# CONFIG_MFD_TMIO is not set
753 828
754# 829#
755# Multimedia devices 830# Multimedia devices
@@ -799,6 +874,9 @@ CONFIG_FB_MACMODES=y
799# CONFIG_FB_PM2 is not set 874# CONFIG_FB_PM2 is not set
800# CONFIG_FB_CYBER2000 is not set 875# CONFIG_FB_CYBER2000 is not set
801CONFIG_FB_OF=y 876CONFIG_FB_OF=y
877# CONFIG_FB_CONTROL is not set
878# CONFIG_FB_PLATINUM is not set
879# CONFIG_FB_VALKYRIE is not set
802# CONFIG_FB_CT65550 is not set 880# CONFIG_FB_CT65550 is not set
803# CONFIG_FB_ASILIANT is not set 881# CONFIG_FB_ASILIANT is not set
804# CONFIG_FB_IMSTT is not set 882# CONFIG_FB_IMSTT is not set
@@ -821,6 +899,7 @@ CONFIG_FB_OF=y
821# CONFIG_FB_TRIDENT is not set 899# CONFIG_FB_TRIDENT is not set
822# CONFIG_FB_ARK is not set 900# CONFIG_FB_ARK is not set
823# CONFIG_FB_PM3 is not set 901# CONFIG_FB_PM3 is not set
902# CONFIG_FB_CARMINE is not set
824# CONFIG_FB_FSL_DIU is not set 903# CONFIG_FB_FSL_DIU is not set
825# CONFIG_FB_IBM_GXT4500 is not set 904# CONFIG_FB_IBM_GXT4500 is not set
826# CONFIG_FB_VIRTUAL is not set 905# CONFIG_FB_VIRTUAL is not set
@@ -846,10 +925,6 @@ CONFIG_LOGO=y
846# CONFIG_LOGO_LINUX_MONO is not set 925# CONFIG_LOGO_LINUX_MONO is not set
847CONFIG_LOGO_LINUX_VGA16=y 926CONFIG_LOGO_LINUX_VGA16=y
848CONFIG_LOGO_LINUX_CLUT224=y 927CONFIG_LOGO_LINUX_CLUT224=y
849
850#
851# Sound
852#
853# CONFIG_SOUND is not set 928# CONFIG_SOUND is not set
854CONFIG_HID_SUPPORT=y 929CONFIG_HID_SUPPORT=y
855CONFIG_HID=y 930CONFIG_HID=y
@@ -941,6 +1016,7 @@ CONFIG_JFFS2_RTIME=y
941# CONFIG_CRAMFS is not set 1016# CONFIG_CRAMFS is not set
942# CONFIG_VXFS_FS is not set 1017# CONFIG_VXFS_FS is not set
943# CONFIG_MINIX_FS is not set 1018# CONFIG_MINIX_FS is not set
1019# CONFIG_OMFS_FS is not set
944# CONFIG_HPFS_FS is not set 1020# CONFIG_HPFS_FS is not set
945# CONFIG_QNX4FS_FS is not set 1021# CONFIG_QNX4FS_FS is not set
946# CONFIG_ROMFS_FS is not set 1022# CONFIG_ROMFS_FS is not set
@@ -951,14 +1027,13 @@ CONFIG_NFS_FS=y
951CONFIG_NFS_V3=y 1027CONFIG_NFS_V3=y
952# CONFIG_NFS_V3_ACL is not set 1028# CONFIG_NFS_V3_ACL is not set
953CONFIG_NFS_V4=y 1029CONFIG_NFS_V4=y
954# CONFIG_NFSD is not set
955CONFIG_ROOT_NFS=y 1030CONFIG_ROOT_NFS=y
1031# CONFIG_NFSD is not set
956CONFIG_LOCKD=y 1032CONFIG_LOCKD=y
957CONFIG_LOCKD_V4=y 1033CONFIG_LOCKD_V4=y
958CONFIG_NFS_COMMON=y 1034CONFIG_NFS_COMMON=y
959CONFIG_SUNRPC=y 1035CONFIG_SUNRPC=y
960CONFIG_SUNRPC_GSS=y 1036CONFIG_SUNRPC_GSS=y
961# CONFIG_SUNRPC_BIND34 is not set
962CONFIG_RPCSEC_GSS_KRB5=y 1037CONFIG_RPCSEC_GSS_KRB5=y
963# CONFIG_RPCSEC_GSS_SPKM3 is not set 1038# CONFIG_RPCSEC_GSS_SPKM3 is not set
964# CONFIG_SMB_FS is not set 1039# CONFIG_SMB_FS is not set
@@ -998,6 +1073,7 @@ CONFIG_BITREVERSE=y
998# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1073# CONFIG_GENERIC_FIND_FIRST_BIT is not set
999# CONFIG_CRC_CCITT is not set 1074# CONFIG_CRC_CCITT is not set
1000# CONFIG_CRC16 is not set 1075# CONFIG_CRC16 is not set
1076# CONFIG_CRC_T10DIF is not set
1001# CONFIG_CRC_ITU_T is not set 1077# CONFIG_CRC_ITU_T is not set
1002CONFIG_CRC32=y 1078CONFIG_CRC32=y
1003# CONFIG_CRC7 is not set 1079# CONFIG_CRC7 is not set
@@ -1025,12 +1101,22 @@ CONFIG_FRAME_WARN=1024
1025# CONFIG_SLUB_DEBUG_ON is not set 1101# CONFIG_SLUB_DEBUG_ON is not set
1026# CONFIG_SLUB_STATS is not set 1102# CONFIG_SLUB_STATS is not set
1027# CONFIG_DEBUG_BUGVERBOSE is not set 1103# CONFIG_DEBUG_BUGVERBOSE is not set
1104# CONFIG_DEBUG_MEMORY_INIT is not set
1105# CONFIG_LATENCYTOP is not set
1106CONFIG_SYSCTL_SYSCALL_CHECK=y
1107CONFIG_HAVE_FTRACE=y
1108CONFIG_HAVE_DYNAMIC_FTRACE=y
1109# CONFIG_FTRACE is not set
1110# CONFIG_SCHED_TRACER is not set
1111# CONFIG_CONTEXT_SWITCH_TRACER is not set
1028# CONFIG_SAMPLES is not set 1112# CONFIG_SAMPLES is not set
1113CONFIG_HAVE_ARCH_KGDB=y
1029# CONFIG_IRQSTACKS is not set 1114# CONFIG_IRQSTACKS is not set
1115# CONFIG_BOOTX_TEXT is not set
1030CONFIG_PPC_EARLY_DEBUG=y 1116CONFIG_PPC_EARLY_DEBUG=y
1031# CONFIG_PPC_EARLY_DEBUG_LPAR is not set 1117# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
1032# CONFIG_PPC_EARLY_DEBUG_G5 is not set 1118# CONFIG_PPC_EARLY_DEBUG_G5 is not set
1033# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set 1119CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL=y
1034# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set 1120# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
1035# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set 1121# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
1036# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set 1122# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
@@ -1091,6 +1177,10 @@ CONFIG_CRYPTO_CBC=y
1091# CONFIG_CRYPTO_MD4 is not set 1177# CONFIG_CRYPTO_MD4 is not set
1092CONFIG_CRYPTO_MD5=y 1178CONFIG_CRYPTO_MD5=y
1093# CONFIG_CRYPTO_MICHAEL_MIC is not set 1179# CONFIG_CRYPTO_MICHAEL_MIC is not set
1180# CONFIG_CRYPTO_RMD128 is not set
1181# CONFIG_CRYPTO_RMD160 is not set
1182# CONFIG_CRYPTO_RMD256 is not set
1183# CONFIG_CRYPTO_RMD320 is not set
1094# CONFIG_CRYPTO_SHA1 is not set 1184# CONFIG_CRYPTO_SHA1 is not set
1095# CONFIG_CRYPTO_SHA256 is not set 1185# CONFIG_CRYPTO_SHA256 is not set
1096# CONFIG_CRYPTO_SHA512 is not set 1186# CONFIG_CRYPTO_SHA512 is not set
@@ -1123,6 +1213,7 @@ CONFIG_CRYPTO_DES=y
1123# CONFIG_CRYPTO_LZO is not set 1213# CONFIG_CRYPTO_LZO is not set
1124CONFIG_CRYPTO_HW=y 1214CONFIG_CRYPTO_HW=y
1125# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1215# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1216# CONFIG_CRYPTO_DEV_TALITOS is not set
1126# CONFIG_PPC_CLOCK is not set 1217# CONFIG_PPC_CLOCK is not set
1127CONFIG_PPC_LIB_RHEAP=y 1218CONFIG_PPC_LIB_RHEAP=y
1128# CONFIG_VIRTUALIZATION is not set 1219# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
index 0f94d9f56be..de472022aa8 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:28 2008 4# Thu Aug 21 00:52:23 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,13 +93,13 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
93# CONFIG_KALLSYMS_EXTRA_PASS is not set 97# CONFIG_KALLSYMS_EXTRA_PASS is not set
94CONFIG_HOTPLUG=y 98CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 99CONFIG_PRINTK=y
96CONFIG_BUG=y 100CONFIG_BUG=y
97CONFIG_ELF_CORE=y 101CONFIG_ELF_CORE=y
102CONFIG_PCSPKR_PLATFORM=y
98CONFIG_COMPAT_BRK=y 103CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 105CONFIG_FUTEX=y
@@ -112,10 +117,16 @@ CONFIG_SLAB=y
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
114# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 125# CONFIG_HAVE_DMA_ATTRS is not set
126# CONFIG_USE_GENERIC_SMP_HELPERS is not set
127# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -126,12 +137,13 @@ CONFIG_MODULE_UNLOAD=y
126# CONFIG_MODULE_FORCE_UNLOAD is not set 137# CONFIG_MODULE_FORCE_UNLOAD is not set
127# CONFIG_MODVERSIONS is not set 138# CONFIG_MODVERSIONS is not set
128# CONFIG_MODULE_SRCVERSION_ALL is not set 139# CONFIG_MODULE_SRCVERSION_ALL is not set
129# CONFIG_KMOD is not set 140CONFIG_KMOD=y
130CONFIG_BLOCK=y 141CONFIG_BLOCK=y
131# CONFIG_LBD is not set 142# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set 144# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set
135 147
136# 148#
137# IO Schedulers 149# IO Schedulers
@@ -150,37 +162,49 @@ CONFIG_CLASSIC_RCU=y
150# 162#
151# Platform support 163# Platform support
152# 164#
153# CONFIG_PPC_MULTIPLATFORM is not set 165CONFIG_PPC_MULTIPLATFORM=y
154# CONFIG_PPC_82xx is not set 166CONFIG_CLASSIC32=y
155CONFIG_PPC_83xx=y 167CONFIG_PPC_CHRP=y
156# CONFIG_PPC_86xx is not set 168# CONFIG_MPC5121_ADS is not set
157# CONFIG_PPC_MPC512x is not set 169# CONFIG_MPC5121_GENERIC is not set
158# CONFIG_PPC_MPC5121 is not set 170# CONFIG_PPC_MPC52xx is not set
171CONFIG_PPC_PMAC=y
159# CONFIG_PPC_CELL is not set 172# CONFIG_PPC_CELL is not set
160# CONFIG_PPC_CELL_NATIVE is not set 173# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set
161# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
162CONFIG_MPC83xx=y 176CONFIG_PPC_83xx=y
163# CONFIG_MPC831x_RDB is not set 177# CONFIG_MPC831x_RDB is not set
164# CONFIG_MPC832x_MDS is not set 178# CONFIG_MPC832x_MDS is not set
165# CONFIG_MPC832x_RDB is not set 179# CONFIG_MPC832x_RDB is not set
166# CONFIG_MPC834x_MDS is not set 180# CONFIG_MPC834x_MDS is not set
167# CONFIG_MPC834x_ITX is not set 181# CONFIG_MPC834x_ITX is not set
168# CONFIG_MPC836x_MDS is not set 182# CONFIG_MPC836x_MDS is not set
183# CONFIG_MPC836x_RDK is not set
169CONFIG_MPC837x_MDS=y 184CONFIG_MPC837x_MDS=y
170# CONFIG_MPC837x_RDB is not set 185# CONFIG_MPC837x_RDB is not set
171# CONFIG_SBC834x is not set 186# CONFIG_SBC834x is not set
187# CONFIG_ASP834x is not set
172CONFIG_PPC_MPC837x=y 188CONFIG_PPC_MPC837x=y
189# CONFIG_PPC_86xx is not set
190# CONFIG_EMBEDDED6xx is not set
191CONFIG_PPC_NATIVE=y
192# CONFIG_UDBG_RTAS_CONSOLE is not set
173CONFIG_IPIC=y 193CONFIG_IPIC=y
174# CONFIG_MPIC is not set 194CONFIG_MPIC=y
175# CONFIG_MPIC_WEIRD is not set 195# CONFIG_MPIC_WEIRD is not set
176# CONFIG_PPC_I8259 is not set 196CONFIG_PPC_I8259=y
177# CONFIG_PPC_RTAS is not set 197CONFIG_PPC_RTAS=y
198# CONFIG_RTAS_ERROR_LOGGING is not set
199CONFIG_RTAS_PROC=y
178# CONFIG_MMIO_NVRAM is not set 200# CONFIG_MMIO_NVRAM is not set
179# CONFIG_PPC_MPC106 is not set 201CONFIG_PPC_MPC106=y
180# CONFIG_PPC_970_NAP is not set 202# CONFIG_PPC_970_NAP is not set
181# CONFIG_PPC_INDIRECT_IO is not set 203# CONFIG_PPC_INDIRECT_IO is not set
182# CONFIG_GENERIC_IOMAP is not set 204# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 205# CONFIG_CPU_FREQ is not set
206# CONFIG_PPC601_SYNC_FIX is not set
207# CONFIG_TAU is not set
184# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
185 209
186# 210#
@@ -206,6 +230,7 @@ CONFIG_BINFMT_ELF=y
206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
207CONFIG_ARCH_HAS_WALK_MEMORY=y 231CONFIG_ARCH_HAS_WALK_MEMORY=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 232CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
233# CONFIG_KEXEC is not set
209CONFIG_ARCH_FLATMEM_ENABLE=y 234CONFIG_ARCH_FLATMEM_ENABLE=y
210CONFIG_ARCH_POPULATES_NODE_MAP=y 235CONFIG_ARCH_POPULATES_NODE_MAP=y
211CONFIG_SELECT_MEMORY_MODEL=y 236CONFIG_SELECT_MEMORY_MODEL=y
@@ -218,6 +243,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
218# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 243# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
219CONFIG_PAGEFLAGS_EXTENDED=y 244CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 245CONFIG_SPLIT_PTLOCK_CPUS=4
246CONFIG_MIGRATION=y
221# CONFIG_RESOURCES_64BIT is not set 247# CONFIG_RESOURCES_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
223CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
@@ -225,6 +251,7 @@ CONFIG_VIRT_TO_BUS=y
225CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
226CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
227# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
254CONFIG_EXTRA_TARGETS=""
228# CONFIG_PM is not set 255# CONFIG_PM is not set
229CONFIG_SECCOMP=y 256CONFIG_SECCOMP=y
230CONFIG_ISA_DMA_API=y 257CONFIG_ISA_DMA_API=y
@@ -232,15 +259,22 @@ CONFIG_ISA_DMA_API=y
232# 259#
233# Bus options 260# Bus options
234# 261#
262# CONFIG_ISA is not set
235CONFIG_ZONE_DMA=y 263CONFIG_ZONE_DMA=y
236CONFIG_GENERIC_ISA_DMA=y 264CONFIG_GENERIC_ISA_DMA=y
237CONFIG_PPC_INDIRECT_PCI=y 265CONFIG_PPC_INDIRECT_PCI=y
238CONFIG_FSL_SOC=y 266CONFIG_FSL_SOC=y
239# CONFIG_PCI is not set 267CONFIG_FSL_PCI=y
240# CONFIG_PCI_DOMAINS is not set 268CONFIG_PPC_PCI_CHOICE=y
241# CONFIG_PCI_SYSCALL is not set 269CONFIG_PCI=y
242# CONFIG_ARCH_SUPPORTS_MSI is not set 270CONFIG_PCI_DOMAINS=y
271CONFIG_PCI_SYSCALL=y
272# CONFIG_PCIEPORTBUS is not set
273CONFIG_ARCH_SUPPORTS_MSI=y
274# CONFIG_PCI_MSI is not set
275CONFIG_PCI_LEGACY=y
243# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set
244# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
245 279
246# 280#
@@ -256,10 +290,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
256CONFIG_KERNEL_START=0xc0000000 290CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000 291CONFIG_PHYSICAL_START=0x00000000
258CONFIG_TASK_SIZE=0xc0000000 292CONFIG_TASK_SIZE=0xc0000000
259
260#
261# Networking
262#
263CONFIG_NET=y 293CONFIG_NET=y
264 294
265# 295#
@@ -360,19 +390,30 @@ CONFIG_OF_I2C=y
360# CONFIG_PARPORT is not set 390# CONFIG_PARPORT is not set
361CONFIG_BLK_DEV=y 391CONFIG_BLK_DEV=y
362# CONFIG_BLK_DEV_FD is not set 392# CONFIG_BLK_DEV_FD is not set
393# CONFIG_MAC_FLOPPY is not set
394# CONFIG_BLK_CPQ_DA is not set
395# CONFIG_BLK_CPQ_CISS_DA is not set
396# CONFIG_BLK_DEV_DAC960 is not set
397# CONFIG_BLK_DEV_UMEM is not set
363# CONFIG_BLK_DEV_COW_COMMON is not set 398# CONFIG_BLK_DEV_COW_COMMON is not set
364CONFIG_BLK_DEV_LOOP=y 399CONFIG_BLK_DEV_LOOP=y
365# CONFIG_BLK_DEV_CRYPTOLOOP is not set 400# CONFIG_BLK_DEV_CRYPTOLOOP is not set
366# CONFIG_BLK_DEV_NBD is not set 401# CONFIG_BLK_DEV_NBD is not set
402# CONFIG_BLK_DEV_SX8 is not set
367CONFIG_BLK_DEV_RAM=y 403CONFIG_BLK_DEV_RAM=y
368CONFIG_BLK_DEV_RAM_COUNT=16 404CONFIG_BLK_DEV_RAM_COUNT=16
369CONFIG_BLK_DEV_RAM_SIZE=32768 405CONFIG_BLK_DEV_RAM_SIZE=32768
370# CONFIG_BLK_DEV_XIP is not set 406# CONFIG_BLK_DEV_XIP is not set
371# CONFIG_CDROM_PKTCDVD is not set 407# CONFIG_CDROM_PKTCDVD is not set
372# CONFIG_ATA_OVER_ETH is not set 408# CONFIG_ATA_OVER_ETH is not set
409# CONFIG_BLK_DEV_HD is not set
373CONFIG_MISC_DEVICES=y 410CONFIG_MISC_DEVICES=y
411# CONFIG_PHANTOM is not set
374# CONFIG_EEPROM_93CX6 is not set 412# CONFIG_EEPROM_93CX6 is not set
413# CONFIG_SGI_IOC4 is not set
414# CONFIG_TIFM_CORE is not set
375# CONFIG_ENCLOSURE_SERVICES is not set 415# CONFIG_ENCLOSURE_SERVICES is not set
416# CONFIG_HP_ILO is not set
376CONFIG_HAVE_IDE=y 417CONFIG_HAVE_IDE=y
377# CONFIG_IDE is not set 418# CONFIG_IDE is not set
378 419
@@ -415,24 +456,128 @@ CONFIG_SCSI_WAIT_SCAN=m
415# CONFIG_SCSI_SRP_ATTRS is not set 456# CONFIG_SCSI_SRP_ATTRS is not set
416CONFIG_SCSI_LOWLEVEL=y 457CONFIG_SCSI_LOWLEVEL=y
417# CONFIG_ISCSI_TCP is not set 458# CONFIG_ISCSI_TCP is not set
459# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
460# CONFIG_SCSI_3W_9XXX is not set
461# CONFIG_SCSI_ACARD is not set
462# CONFIG_SCSI_AACRAID is not set
463# CONFIG_SCSI_AIC7XXX is not set
464# CONFIG_SCSI_AIC7XXX_OLD is not set
465# CONFIG_SCSI_AIC79XX is not set
466# CONFIG_SCSI_AIC94XX is not set
467# CONFIG_SCSI_DPT_I2O is not set
468# CONFIG_SCSI_ADVANSYS is not set
469# CONFIG_SCSI_ARCMSR is not set
470# CONFIG_MEGARAID_NEWGEN is not set
471# CONFIG_MEGARAID_LEGACY is not set
472# CONFIG_MEGARAID_SAS is not set
473# CONFIG_SCSI_HPTIOP is not set
474# CONFIG_SCSI_BUSLOGIC is not set
475# CONFIG_SCSI_DMX3191D is not set
476# CONFIG_SCSI_EATA is not set
477# CONFIG_SCSI_FUTURE_DOMAIN is not set
478# CONFIG_SCSI_GDTH is not set
479# CONFIG_SCSI_IPS is not set
480# CONFIG_SCSI_INITIO is not set
481# CONFIG_SCSI_INIA100 is not set
482# CONFIG_SCSI_MVSAS is not set
483# CONFIG_SCSI_STEX is not set
484# CONFIG_SCSI_SYM53C8XX_2 is not set
485# CONFIG_SCSI_IPR is not set
486# CONFIG_SCSI_QLOGIC_1280 is not set
487# CONFIG_SCSI_QLA_FC is not set
488# CONFIG_SCSI_QLA_ISCSI is not set
489# CONFIG_SCSI_LPFC is not set
490# CONFIG_SCSI_DC395x is not set
491# CONFIG_SCSI_DC390T is not set
492# CONFIG_SCSI_NSP32 is not set
418# CONFIG_SCSI_DEBUG is not set 493# CONFIG_SCSI_DEBUG is not set
494# CONFIG_SCSI_MESH is not set
495# CONFIG_SCSI_MAC53C94 is not set
496# CONFIG_SCSI_SRP is not set
497# CONFIG_SCSI_DH is not set
419CONFIG_ATA=y 498CONFIG_ATA=y
420# CONFIG_ATA_NONSTANDARD is not set 499# CONFIG_ATA_NONSTANDARD is not set
421CONFIG_SATA_PMP=y 500CONFIG_SATA_PMP=y
501# CONFIG_SATA_AHCI is not set
502# CONFIG_SATA_SIL24 is not set
422CONFIG_SATA_FSL=y 503CONFIG_SATA_FSL=y
423CONFIG_ATA_SFF=y 504CONFIG_ATA_SFF=y
505# CONFIG_SATA_SVW is not set
506# CONFIG_ATA_PIIX is not set
424# CONFIG_SATA_MV is not set 507# CONFIG_SATA_MV is not set
508# CONFIG_SATA_NV is not set
509# CONFIG_PDC_ADMA is not set
510# CONFIG_SATA_QSTOR is not set
511# CONFIG_SATA_PROMISE is not set
512# CONFIG_SATA_SX4 is not set
513# CONFIG_SATA_SIL is not set
514# CONFIG_SATA_SIS is not set
515# CONFIG_SATA_ULI is not set
516# CONFIG_SATA_VIA is not set
517# CONFIG_SATA_VITESSE is not set
518# CONFIG_SATA_INIC162X is not set
519# CONFIG_PATA_ALI is not set
520# CONFIG_PATA_AMD is not set
521# CONFIG_PATA_ARTOP is not set
522# CONFIG_PATA_ATIIXP is not set
523# CONFIG_PATA_CMD640_PCI is not set
524# CONFIG_PATA_CMD64X is not set
525# CONFIG_PATA_CS5520 is not set
526# CONFIG_PATA_CS5530 is not set
527# CONFIG_PATA_CYPRESS is not set
528# CONFIG_PATA_EFAR is not set
529# CONFIG_ATA_GENERIC is not set
530# CONFIG_PATA_HPT366 is not set
531# CONFIG_PATA_HPT37X is not set
532# CONFIG_PATA_HPT3X2N is not set
533# CONFIG_PATA_HPT3X3 is not set
534# CONFIG_PATA_IT821X is not set
535# CONFIG_PATA_IT8213 is not set
536# CONFIG_PATA_JMICRON is not set
537# CONFIG_PATA_TRIFLEX is not set
538# CONFIG_PATA_MARVELL is not set
539# CONFIG_PATA_MPIIX is not set
540# CONFIG_PATA_OLDPIIX is not set
541# CONFIG_PATA_NETCELL is not set
542# CONFIG_PATA_NINJA32 is not set
543# CONFIG_PATA_NS87410 is not set
544# CONFIG_PATA_NS87415 is not set
545# CONFIG_PATA_OPTI is not set
546# CONFIG_PATA_OPTIDMA is not set
547# CONFIG_PATA_PDC_OLD is not set
548# CONFIG_PATA_RADISYS is not set
549# CONFIG_PATA_RZ1000 is not set
550# CONFIG_PATA_SC1200 is not set
551# CONFIG_PATA_SERVERWORKS is not set
552# CONFIG_PATA_PDC2027X is not set
553# CONFIG_PATA_SIL680 is not set
554# CONFIG_PATA_SIS is not set
555# CONFIG_PATA_VIA is not set
556# CONFIG_PATA_WINBOND is not set
425# CONFIG_PATA_PLATFORM is not set 557# CONFIG_PATA_PLATFORM is not set
558# CONFIG_PATA_SCH is not set
426# CONFIG_MD is not set 559# CONFIG_MD is not set
560# CONFIG_FUSION is not set
561
562#
563# IEEE 1394 (FireWire) support
564#
565
566#
567# Enable only one of the two stacks, unless you know what you are doing
568#
569# CONFIG_FIREWIRE is not set
570# CONFIG_IEEE1394 is not set
571# CONFIG_I2O is not set
427# CONFIG_MACINTOSH_DRIVERS is not set 572# CONFIG_MACINTOSH_DRIVERS is not set
428CONFIG_NETDEVICES=y 573CONFIG_NETDEVICES=y
429# CONFIG_NETDEVICES_MULTIQUEUE is not set
430# CONFIG_DUMMY is not set 574# CONFIG_DUMMY is not set
431# CONFIG_BONDING is not set 575# CONFIG_BONDING is not set
432# CONFIG_MACVLAN is not set 576# CONFIG_MACVLAN is not set
433# CONFIG_EQUALIZER is not set 577# CONFIG_EQUALIZER is not set
434# CONFIG_TUN is not set 578# CONFIG_TUN is not set
435# CONFIG_VETH is not set 579# CONFIG_VETH is not set
580# CONFIG_ARCNET is not set
436CONFIG_PHYLIB=y 581CONFIG_PHYLIB=y
437 582
438# 583#
@@ -452,16 +597,56 @@ CONFIG_MARVELL_PHY=y
452# CONFIG_MDIO_BITBANG is not set 597# CONFIG_MDIO_BITBANG is not set
453CONFIG_NET_ETHERNET=y 598CONFIG_NET_ETHERNET=y
454CONFIG_MII=y 599CONFIG_MII=y
600# CONFIG_MACE is not set
601# CONFIG_BMAC is not set
602# CONFIG_HAPPYMEAL is not set
603# CONFIG_SUNGEM is not set
604# CONFIG_CASSINI is not set
605# CONFIG_NET_VENDOR_3COM is not set
606# CONFIG_NET_TULIP is not set
607# CONFIG_HP100 is not set
455# CONFIG_IBM_NEW_EMAC_ZMII is not set 608# CONFIG_IBM_NEW_EMAC_ZMII is not set
456# CONFIG_IBM_NEW_EMAC_RGMII is not set 609# CONFIG_IBM_NEW_EMAC_RGMII is not set
457# CONFIG_IBM_NEW_EMAC_TAH is not set 610# CONFIG_IBM_NEW_EMAC_TAH is not set
458# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 611# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
612# CONFIG_NET_PCI is not set
459# CONFIG_B44 is not set 613# CONFIG_B44 is not set
460CONFIG_NETDEV_1000=y 614CONFIG_NETDEV_1000=y
461# CONFIG_E1000E_ENABLED is not set 615# CONFIG_ACENIC is not set
616# CONFIG_DL2K is not set
617# CONFIG_E1000 is not set
618# CONFIG_E1000E is not set
619# CONFIG_IP1000 is not set
620# CONFIG_IGB is not set
621# CONFIG_NS83820 is not set
622# CONFIG_HAMACHI is not set
623# CONFIG_YELLOWFIN is not set
624# CONFIG_R8169 is not set
625# CONFIG_SIS190 is not set
626# CONFIG_SKGE is not set
627# CONFIG_SKY2 is not set
628# CONFIG_VIA_VELOCITY is not set
629# CONFIG_TIGON3 is not set
630# CONFIG_BNX2 is not set
462CONFIG_GIANFAR=y 631CONFIG_GIANFAR=y
463# CONFIG_GFAR_NAPI is not set 632# CONFIG_MV643XX_ETH is not set
633# CONFIG_QLA3XXX is not set
634# CONFIG_ATL1 is not set
635# CONFIG_ATL1E is not set
464CONFIG_NETDEV_10000=y 636CONFIG_NETDEV_10000=y
637# CONFIG_CHELSIO_T1 is not set
638# CONFIG_CHELSIO_T3 is not set
639# CONFIG_IXGBE is not set
640# CONFIG_IXGB is not set
641# CONFIG_S2IO is not set
642# CONFIG_MYRI10GE is not set
643# CONFIG_NETXEN_NIC is not set
644# CONFIG_NIU is not set
645# CONFIG_MLX4_CORE is not set
646# CONFIG_TEHUTI is not set
647# CONFIG_BNX2X is not set
648# CONFIG_SFC is not set
649# CONFIG_TR is not set
465 650
466# 651#
467# Wireless LAN 652# Wireless LAN
@@ -470,8 +655,11 @@ CONFIG_NETDEV_10000=y
470# CONFIG_WLAN_80211 is not set 655# CONFIG_WLAN_80211 is not set
471# CONFIG_IWLWIFI_LEDS is not set 656# CONFIG_IWLWIFI_LEDS is not set
472# CONFIG_WAN is not set 657# CONFIG_WAN is not set
658# CONFIG_FDDI is not set
659# CONFIG_HIPPI is not set
473# CONFIG_PPP is not set 660# CONFIG_PPP is not set
474# CONFIG_SLIP is not set 661# CONFIG_SLIP is not set
662# CONFIG_NET_FC is not set
475# CONFIG_NETCONSOLE is not set 663# CONFIG_NETCONSOLE is not set
476# CONFIG_NETPOLL is not set 664# CONFIG_NETPOLL is not set
477# CONFIG_NET_POLL_CONTROLLER is not set 665# CONFIG_NET_POLL_CONTROLLER is not set
@@ -515,12 +703,14 @@ CONFIG_INPUT=y
515# CONFIG_VT is not set 703# CONFIG_VT is not set
516CONFIG_DEVKMEM=y 704CONFIG_DEVKMEM=y
517# CONFIG_SERIAL_NONSTANDARD is not set 705# CONFIG_SERIAL_NONSTANDARD is not set
706# CONFIG_NOZOMI is not set
518 707
519# 708#
520# Serial drivers 709# Serial drivers
521# 710#
522CONFIG_SERIAL_8250=y 711CONFIG_SERIAL_8250=y
523CONFIG_SERIAL_8250_CONSOLE=y 712CONFIG_SERIAL_8250_CONSOLE=y
713CONFIG_SERIAL_8250_PCI=y
524CONFIG_SERIAL_8250_NR_UARTS=4 714CONFIG_SERIAL_8250_NR_UARTS=4
525CONFIG_SERIAL_8250_RUNTIME_UARTS=4 715CONFIG_SERIAL_8250_RUNTIME_UARTS=4
526# CONFIG_SERIAL_8250_EXTENDED is not set 716# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -531,40 +721,90 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
531# CONFIG_SERIAL_UARTLITE is not set 721# CONFIG_SERIAL_UARTLITE is not set
532CONFIG_SERIAL_CORE=y 722CONFIG_SERIAL_CORE=y
533CONFIG_SERIAL_CORE_CONSOLE=y 723CONFIG_SERIAL_CORE_CONSOLE=y
724# CONFIG_SERIAL_PMACZILOG is not set
725# CONFIG_SERIAL_JSM is not set
534# CONFIG_SERIAL_OF_PLATFORM is not set 726# CONFIG_SERIAL_OF_PLATFORM is not set
535CONFIG_UNIX98_PTYS=y 727CONFIG_UNIX98_PTYS=y
536CONFIG_LEGACY_PTYS=y 728CONFIG_LEGACY_PTYS=y
537CONFIG_LEGACY_PTY_COUNT=256 729CONFIG_LEGACY_PTY_COUNT=256
730# CONFIG_BRIQ_PANEL is not set
731# CONFIG_HVC_RTAS is not set
538# CONFIG_IPMI_HANDLER is not set 732# CONFIG_IPMI_HANDLER is not set
539# CONFIG_HW_RANDOM is not set 733# CONFIG_HW_RANDOM is not set
540# CONFIG_NVRAM is not set 734# CONFIG_NVRAM is not set
541CONFIG_GEN_RTC=y 735CONFIG_GEN_RTC=y
542# CONFIG_GEN_RTC_X is not set 736# CONFIG_GEN_RTC_X is not set
543# CONFIG_R3964 is not set 737# CONFIG_R3964 is not set
738# CONFIG_APPLICOM is not set
544# CONFIG_RAW_DRIVER is not set 739# CONFIG_RAW_DRIVER is not set
545# CONFIG_TCG_TPM is not set 740# CONFIG_TCG_TPM is not set
741CONFIG_DEVPORT=y
546CONFIG_I2C=y 742CONFIG_I2C=y
547CONFIG_I2C_BOARDINFO=y 743CONFIG_I2C_BOARDINFO=y
548CONFIG_I2C_CHARDEV=y 744CONFIG_I2C_CHARDEV=y
745CONFIG_I2C_HELPER_AUTO=y
549 746
550# 747#
551# I2C Hardware Bus support 748# I2C Hardware Bus support
552# 749#
750
751#
752# PC SMBus host controller drivers
753#
754# CONFIG_I2C_ALI1535 is not set
755# CONFIG_I2C_ALI1563 is not set
756# CONFIG_I2C_ALI15X3 is not set
757# CONFIG_I2C_AMD756 is not set
758# CONFIG_I2C_AMD8111 is not set
759# CONFIG_I2C_I801 is not set
760# CONFIG_I2C_ISCH is not set
761# CONFIG_I2C_PIIX4 is not set
762# CONFIG_I2C_NFORCE2 is not set
763# CONFIG_I2C_SIS5595 is not set
764# CONFIG_I2C_SIS630 is not set
765# CONFIG_I2C_SIS96X is not set
766# CONFIG_I2C_VIA is not set
767# CONFIG_I2C_VIAPRO is not set
768
769#
770# Mac SMBus host controller drivers
771#
772# CONFIG_I2C_HYDRA is not set
773CONFIG_I2C_POWERMAC=y
774
775#
776# I2C system bus drivers (mostly embedded / system-on-chip)
777#
553CONFIG_I2C_MPC=y 778CONFIG_I2C_MPC=y
554# CONFIG_I2C_OCORES is not set 779# CONFIG_I2C_OCORES is not set
555# CONFIG_I2C_PARPORT_LIGHT is not set
556# CONFIG_I2C_SIMTEC is not set 780# CONFIG_I2C_SIMTEC is not set
781
782#
783# External I2C/SMBus adapter drivers
784#
785# CONFIG_I2C_PARPORT_LIGHT is not set
557# CONFIG_I2C_TAOS_EVM is not set 786# CONFIG_I2C_TAOS_EVM is not set
558# CONFIG_I2C_STUB is not set 787
788#
789# Graphics adapter I2C/DDC channel drivers
790#
791# CONFIG_I2C_VOODOO3 is not set
792
793#
794# Other I2C/SMBus bus drivers
795#
559# CONFIG_I2C_PCA_PLATFORM is not set 796# CONFIG_I2C_PCA_PLATFORM is not set
797# CONFIG_I2C_STUB is not set
560 798
561# 799#
562# Miscellaneous I2C Chip support 800# Miscellaneous I2C Chip support
563# 801#
564# CONFIG_DS1682 is not set 802# CONFIG_DS1682 is not set
803# CONFIG_AT24 is not set
565# CONFIG_SENSORS_EEPROM is not set 804# CONFIG_SENSORS_EEPROM is not set
566# CONFIG_SENSORS_PCF8574 is not set 805# CONFIG_SENSORS_PCF8574 is not set
567# CONFIG_PCF8575 is not set 806# CONFIG_PCF8575 is not set
807# CONFIG_SENSORS_PCA9539 is not set
568# CONFIG_SENSORS_PCF8591 is not set 808# CONFIG_SENSORS_PCF8591 is not set
569# CONFIG_SENSORS_MAX6875 is not set 809# CONFIG_SENSORS_MAX6875 is not set
570# CONFIG_SENSORS_TSL2550 is not set 810# CONFIG_SENSORS_TSL2550 is not set
@@ -573,10 +813,13 @@ CONFIG_I2C_MPC=y
573# CONFIG_I2C_DEBUG_BUS is not set 813# CONFIG_I2C_DEBUG_BUS is not set
574# CONFIG_I2C_DEBUG_CHIP is not set 814# CONFIG_I2C_DEBUG_CHIP is not set
575# CONFIG_SPI is not set 815# CONFIG_SPI is not set
816CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
817# CONFIG_GPIOLIB is not set
576# CONFIG_W1 is not set 818# CONFIG_W1 is not set
577# CONFIG_POWER_SUPPLY is not set 819# CONFIG_POWER_SUPPLY is not set
578CONFIG_HWMON=y 820CONFIG_HWMON=y
579# CONFIG_HWMON_VID is not set 821# CONFIG_HWMON_VID is not set
822# CONFIG_SENSORS_AD7414 is not set
580# CONFIG_SENSORS_AD7418 is not set 823# CONFIG_SENSORS_AD7418 is not set
581# CONFIG_SENSORS_ADM1021 is not set 824# CONFIG_SENSORS_ADM1021 is not set
582# CONFIG_SENSORS_ADM1025 is not set 825# CONFIG_SENSORS_ADM1025 is not set
@@ -586,8 +829,10 @@ CONFIG_HWMON=y
586# CONFIG_SENSORS_ADM9240 is not set 829# CONFIG_SENSORS_ADM9240 is not set
587# CONFIG_SENSORS_ADT7470 is not set 830# CONFIG_SENSORS_ADT7470 is not set
588# CONFIG_SENSORS_ADT7473 is not set 831# CONFIG_SENSORS_ADT7473 is not set
832# CONFIG_SENSORS_AMS is not set
589# CONFIG_SENSORS_ATXP1 is not set 833# CONFIG_SENSORS_ATXP1 is not set
590# CONFIG_SENSORS_DS1621 is not set 834# CONFIG_SENSORS_DS1621 is not set
835# CONFIG_SENSORS_I5K_AMB is not set
591# CONFIG_SENSORS_F71805F is not set 836# CONFIG_SENSORS_F71805F is not set
592# CONFIG_SENSORS_F71882FG is not set 837# CONFIG_SENSORS_F71882FG is not set
593# CONFIG_SENSORS_F75375S is not set 838# CONFIG_SENSORS_F75375S is not set
@@ -609,13 +854,16 @@ CONFIG_HWMON=y
609# CONFIG_SENSORS_MAX6650 is not set 854# CONFIG_SENSORS_MAX6650 is not set
610# CONFIG_SENSORS_PC87360 is not set 855# CONFIG_SENSORS_PC87360 is not set
611# CONFIG_SENSORS_PC87427 is not set 856# CONFIG_SENSORS_PC87427 is not set
857# CONFIG_SENSORS_SIS5595 is not set
612# CONFIG_SENSORS_DME1737 is not set 858# CONFIG_SENSORS_DME1737 is not set
613# CONFIG_SENSORS_SMSC47M1 is not set 859# CONFIG_SENSORS_SMSC47M1 is not set
614# CONFIG_SENSORS_SMSC47M192 is not set 860# CONFIG_SENSORS_SMSC47M192 is not set
615# CONFIG_SENSORS_SMSC47B397 is not set 861# CONFIG_SENSORS_SMSC47B397 is not set
616# CONFIG_SENSORS_ADS7828 is not set 862# CONFIG_SENSORS_ADS7828 is not set
617# CONFIG_SENSORS_THMC50 is not set 863# CONFIG_SENSORS_THMC50 is not set
864# CONFIG_SENSORS_VIA686A is not set
618# CONFIG_SENSORS_VT1211 is not set 865# CONFIG_SENSORS_VT1211 is not set
866# CONFIG_SENSORS_VT8231 is not set
619# CONFIG_SENSORS_W83781D is not set 867# CONFIG_SENSORS_W83781D is not set
620# CONFIG_SENSORS_W83791D is not set 868# CONFIG_SENSORS_W83791D is not set
621# CONFIG_SENSORS_W83792D is not set 869# CONFIG_SENSORS_W83792D is not set
@@ -626,6 +874,7 @@ CONFIG_HWMON=y
626# CONFIG_SENSORS_W83627EHF is not set 874# CONFIG_SENSORS_W83627EHF is not set
627# CONFIG_HWMON_DEBUG_CHIP is not set 875# CONFIG_HWMON_DEBUG_CHIP is not set
628# CONFIG_THERMAL is not set 876# CONFIG_THERMAL is not set
877# CONFIG_THERMAL_HWMON is not set
629CONFIG_WATCHDOG=y 878CONFIG_WATCHDOG=y
630# CONFIG_WATCHDOG_NOWAYOUT is not set 879# CONFIG_WATCHDOG_NOWAYOUT is not set
631 880
@@ -633,7 +882,15 @@ CONFIG_WATCHDOG=y
633# Watchdog Device Drivers 882# Watchdog Device Drivers
634# 883#
635# CONFIG_SOFT_WATCHDOG is not set 884# CONFIG_SOFT_WATCHDOG is not set
636CONFIG_83xx_WDT=y 885# CONFIG_ALIM7101_WDT is not set
886# CONFIG_8xxx_WDT is not set
887# CONFIG_WATCHDOG_RTAS is not set
888
889#
890# PCI-based Watchdog Cards
891#
892# CONFIG_PCIPCWATCHDOG is not set
893# CONFIG_WDTPCI is not set
637 894
638# 895#
639# Sonics Silicon Backplane 896# Sonics Silicon Backplane
@@ -644,8 +901,10 @@ CONFIG_SSB_POSSIBLE=y
644# 901#
645# Multifunction device drivers 902# Multifunction device drivers
646# 903#
904# CONFIG_MFD_CORE is not set
647# CONFIG_MFD_SM501 is not set 905# CONFIG_MFD_SM501 is not set
648# CONFIG_HTC_PASIC3 is not set 906# CONFIG_HTC_PASIC3 is not set
907# CONFIG_MFD_TMIO is not set
649 908
650# 909#
651# Multimedia devices 910# Multimedia devices
@@ -666,6 +925,8 @@ CONFIG_DAB=y
666# 925#
667# Graphics support 926# Graphics support
668# 927#
928# CONFIG_AGP is not set
929# CONFIG_DRM is not set
669# CONFIG_VGASTATE is not set 930# CONFIG_VGASTATE is not set
670CONFIG_VIDEO_OUTPUT_CONTROL=m 931CONFIG_VIDEO_OUTPUT_CONTROL=m
671# CONFIG_FB is not set 932# CONFIG_FB is not set
@@ -675,10 +936,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
675# Display device support 936# Display device support
676# 937#
677# CONFIG_DISPLAY_SUPPORT is not set 938# CONFIG_DISPLAY_SUPPORT is not set
678
679#
680# Sound
681#
682# CONFIG_SOUND is not set 939# CONFIG_SOUND is not set
683CONFIG_HID_SUPPORT=y 940CONFIG_HID_SUPPORT=y
684CONFIG_HID=y 941CONFIG_HID=y
@@ -686,13 +943,17 @@ CONFIG_HID=y
686# CONFIG_HIDRAW is not set 943# CONFIG_HIDRAW is not set
687CONFIG_USB_SUPPORT=y 944CONFIG_USB_SUPPORT=y
688CONFIG_USB_ARCH_HAS_HCD=y 945CONFIG_USB_ARCH_HAS_HCD=y
689# CONFIG_USB_ARCH_HAS_OHCI is not set 946CONFIG_USB_ARCH_HAS_OHCI=y
690CONFIG_USB_ARCH_HAS_EHCI=y 947CONFIG_USB_ARCH_HAS_EHCI=y
691# CONFIG_USB is not set 948# CONFIG_USB is not set
692# CONFIG_USB_OTG_WHITELIST is not set 949# CONFIG_USB_OTG_WHITELIST is not set
693# CONFIG_USB_OTG_BLACKLIST_HUB is not set 950# CONFIG_USB_OTG_BLACKLIST_HUB is not set
694 951
695# 952#
953# Enable Host or Gadget support to see Inventra options
954#
955
956#
696# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 957# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
697# 958#
698# CONFIG_USB_GADGET is not set 959# CONFIG_USB_GADGET is not set
@@ -700,6 +961,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
700# CONFIG_MEMSTICK is not set 961# CONFIG_MEMSTICK is not set
701# CONFIG_NEW_LEDS is not set 962# CONFIG_NEW_LEDS is not set
702# CONFIG_ACCESSIBILITY is not set 963# CONFIG_ACCESSIBILITY is not set
964# CONFIG_INFINIBAND is not set
703# CONFIG_EDAC is not set 965# CONFIG_EDAC is not set
704# CONFIG_RTC_CLASS is not set 966# CONFIG_RTC_CLASS is not set
705# CONFIG_DMADEVICES is not set 967# CONFIG_DMADEVICES is not set
@@ -769,6 +1031,7 @@ CONFIG_TMPFS=y
769# CONFIG_CRAMFS is not set 1031# CONFIG_CRAMFS is not set
770# CONFIG_VXFS_FS is not set 1032# CONFIG_VXFS_FS is not set
771# CONFIG_MINIX_FS is not set 1033# CONFIG_MINIX_FS is not set
1034# CONFIG_OMFS_FS is not set
772# CONFIG_HPFS_FS is not set 1035# CONFIG_HPFS_FS is not set
773# CONFIG_QNX4FS_FS is not set 1036# CONFIG_QNX4FS_FS is not set
774# CONFIG_ROMFS_FS is not set 1037# CONFIG_ROMFS_FS is not set
@@ -779,14 +1042,13 @@ CONFIG_NFS_FS=y
779CONFIG_NFS_V3=y 1042CONFIG_NFS_V3=y
780# CONFIG_NFS_V3_ACL is not set 1043# CONFIG_NFS_V3_ACL is not set
781CONFIG_NFS_V4=y 1044CONFIG_NFS_V4=y
782# CONFIG_NFSD is not set
783CONFIG_ROOT_NFS=y 1045CONFIG_ROOT_NFS=y
1046# CONFIG_NFSD is not set
784CONFIG_LOCKD=y 1047CONFIG_LOCKD=y
785CONFIG_LOCKD_V4=y 1048CONFIG_LOCKD_V4=y
786CONFIG_NFS_COMMON=y 1049CONFIG_NFS_COMMON=y
787CONFIG_SUNRPC=y 1050CONFIG_SUNRPC=y
788CONFIG_SUNRPC_GSS=y 1051CONFIG_SUNRPC_GSS=y
789# CONFIG_SUNRPC_BIND34 is not set
790CONFIG_RPCSEC_GSS_KRB5=y 1052CONFIG_RPCSEC_GSS_KRB5=y
791# CONFIG_RPCSEC_GSS_SPKM3 is not set 1053# CONFIG_RPCSEC_GSS_SPKM3 is not set
792# CONFIG_SMB_FS is not set 1054# CONFIG_SMB_FS is not set
@@ -826,6 +1088,7 @@ CONFIG_BITREVERSE=y
826# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1088# CONFIG_GENERIC_FIND_FIRST_BIT is not set
827# CONFIG_CRC_CCITT is not set 1089# CONFIG_CRC_CCITT is not set
828# CONFIG_CRC16 is not set 1090# CONFIG_CRC16 is not set
1091CONFIG_CRC_T10DIF=y
829# CONFIG_CRC_ITU_T is not set 1092# CONFIG_CRC_ITU_T is not set
830CONFIG_CRC32=y 1093CONFIG_CRC32=y
831# CONFIG_CRC7 is not set 1094# CONFIG_CRC7 is not set
@@ -849,8 +1112,18 @@ CONFIG_FRAME_WARN=1024
849# CONFIG_HEADERS_CHECK is not set 1112# CONFIG_HEADERS_CHECK is not set
850# CONFIG_DEBUG_KERNEL is not set 1113# CONFIG_DEBUG_KERNEL is not set
851# CONFIG_DEBUG_BUGVERBOSE is not set 1114# CONFIG_DEBUG_BUGVERBOSE is not set
1115# CONFIG_DEBUG_MEMORY_INIT is not set
1116# CONFIG_LATENCYTOP is not set
1117CONFIG_SYSCTL_SYSCALL_CHECK=y
1118CONFIG_HAVE_FTRACE=y
1119CONFIG_HAVE_DYNAMIC_FTRACE=y
1120# CONFIG_FTRACE is not set
1121# CONFIG_SCHED_TRACER is not set
1122# CONFIG_CONTEXT_SWITCH_TRACER is not set
852# CONFIG_SAMPLES is not set 1123# CONFIG_SAMPLES is not set
1124CONFIG_HAVE_ARCH_KGDB=y
853# CONFIG_IRQSTACKS is not set 1125# CONFIG_IRQSTACKS is not set
1126# CONFIG_BOOTX_TEXT is not set
854# CONFIG_PPC_EARLY_DEBUG is not set 1127# CONFIG_PPC_EARLY_DEBUG is not set
855 1128
856# 1129#
@@ -904,6 +1177,10 @@ CONFIG_CRYPTO_PCBC=m
904# CONFIG_CRYPTO_MD4 is not set 1177# CONFIG_CRYPTO_MD4 is not set
905CONFIG_CRYPTO_MD5=y 1178CONFIG_CRYPTO_MD5=y
906# CONFIG_CRYPTO_MICHAEL_MIC is not set 1179# CONFIG_CRYPTO_MICHAEL_MIC is not set
1180# CONFIG_CRYPTO_RMD128 is not set
1181# CONFIG_CRYPTO_RMD160 is not set
1182# CONFIG_CRYPTO_RMD256 is not set
1183# CONFIG_CRYPTO_RMD320 is not set
907# CONFIG_CRYPTO_SHA1 is not set 1184# CONFIG_CRYPTO_SHA1 is not set
908# CONFIG_CRYPTO_SHA256 is not set 1185# CONFIG_CRYPTO_SHA256 is not set
909# CONFIG_CRYPTO_SHA512 is not set 1186# CONFIG_CRYPTO_SHA512 is not set
@@ -935,5 +1212,7 @@ CONFIG_CRYPTO_DES=y
935# CONFIG_CRYPTO_DEFLATE is not set 1212# CONFIG_CRYPTO_DEFLATE is not set
936# CONFIG_CRYPTO_LZO is not set 1213# CONFIG_CRYPTO_LZO is not set
937CONFIG_CRYPTO_HW=y 1214CONFIG_CRYPTO_HW=y
1215# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1216# CONFIG_CRYPTO_DEV_TALITOS is not set
938# CONFIG_PPC_CLOCK is not set 1217# CONFIG_PPC_CLOCK is not set
939# CONFIG_VIRTUALIZATION is not set 1218# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
index 0d448556f53..e8d2d691d26 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Tue Jun 10 09:17:12 2008 4# Thu Aug 21 00:52:25 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,13 +93,13 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
93# CONFIG_KALLSYMS_EXTRA_PASS is not set 97# CONFIG_KALLSYMS_EXTRA_PASS is not set
94CONFIG_HOTPLUG=y 98CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 99CONFIG_PRINTK=y
96CONFIG_BUG=y 100CONFIG_BUG=y
97CONFIG_ELF_CORE=y 101CONFIG_ELF_CORE=y
102CONFIG_PCSPKR_PLATFORM=y
98CONFIG_COMPAT_BRK=y 103CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 105CONFIG_FUTEX=y
@@ -112,10 +117,16 @@ CONFIG_SLAB=y
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
114# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 125# CONFIG_HAVE_DMA_ATTRS is not set
126# CONFIG_USE_GENERIC_SMP_HELPERS is not set
127# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -126,12 +137,13 @@ CONFIG_MODULE_UNLOAD=y
126# CONFIG_MODULE_FORCE_UNLOAD is not set 137# CONFIG_MODULE_FORCE_UNLOAD is not set
127# CONFIG_MODVERSIONS is not set 138# CONFIG_MODVERSIONS is not set
128# CONFIG_MODULE_SRCVERSION_ALL is not set 139# CONFIG_MODULE_SRCVERSION_ALL is not set
129# CONFIG_KMOD is not set 140CONFIG_KMOD=y
130CONFIG_BLOCK=y 141CONFIG_BLOCK=y
131# CONFIG_LBD is not set 142# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set 144# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set
135 147
136# 148#
137# IO Schedulers 149# IO Schedulers
@@ -150,37 +162,49 @@ CONFIG_CLASSIC_RCU=y
150# 162#
151# Platform support 163# Platform support
152# 164#
153# CONFIG_PPC_MULTIPLATFORM is not set 165CONFIG_PPC_MULTIPLATFORM=y
154# CONFIG_PPC_82xx is not set 166CONFIG_CLASSIC32=y
155CONFIG_PPC_83xx=y 167CONFIG_PPC_CHRP=y
156# CONFIG_PPC_86xx is not set 168# CONFIG_MPC5121_ADS is not set
157# CONFIG_PPC_MPC512x is not set 169# CONFIG_MPC5121_GENERIC is not set
158# CONFIG_PPC_MPC5121 is not set 170# CONFIG_PPC_MPC52xx is not set
171CONFIG_PPC_PMAC=y
159# CONFIG_PPC_CELL is not set 172# CONFIG_PPC_CELL is not set
160# CONFIG_PPC_CELL_NATIVE is not set 173# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set
161# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
162CONFIG_MPC83xx=y 176CONFIG_PPC_83xx=y
163# CONFIG_MPC831x_RDB is not set 177# CONFIG_MPC831x_RDB is not set
164# CONFIG_MPC832x_MDS is not set 178# CONFIG_MPC832x_MDS is not set
165# CONFIG_MPC832x_RDB is not set 179# CONFIG_MPC832x_RDB is not set
166# CONFIG_MPC834x_MDS is not set 180# CONFIG_MPC834x_MDS is not set
167# CONFIG_MPC834x_ITX is not set 181# CONFIG_MPC834x_ITX is not set
168# CONFIG_MPC836x_MDS is not set 182# CONFIG_MPC836x_MDS is not set
183# CONFIG_MPC836x_RDK is not set
169# CONFIG_MPC837x_MDS is not set 184# CONFIG_MPC837x_MDS is not set
170CONFIG_MPC837x_RDB=y 185CONFIG_MPC837x_RDB=y
171# CONFIG_SBC834x is not set 186# CONFIG_SBC834x is not set
187# CONFIG_ASP834x is not set
172CONFIG_PPC_MPC837x=y 188CONFIG_PPC_MPC837x=y
189# CONFIG_PPC_86xx is not set
190# CONFIG_EMBEDDED6xx is not set
191CONFIG_PPC_NATIVE=y
192# CONFIG_UDBG_RTAS_CONSOLE is not set
173CONFIG_IPIC=y 193CONFIG_IPIC=y
174# CONFIG_MPIC is not set 194CONFIG_MPIC=y
175# CONFIG_MPIC_WEIRD is not set 195# CONFIG_MPIC_WEIRD is not set
176# CONFIG_PPC_I8259 is not set 196CONFIG_PPC_I8259=y
177# CONFIG_PPC_RTAS is not set 197CONFIG_PPC_RTAS=y
198# CONFIG_RTAS_ERROR_LOGGING is not set
199CONFIG_RTAS_PROC=y
178# CONFIG_MMIO_NVRAM is not set 200# CONFIG_MMIO_NVRAM is not set
179# CONFIG_PPC_MPC106 is not set 201CONFIG_PPC_MPC106=y
180# CONFIG_PPC_970_NAP is not set 202# CONFIG_PPC_970_NAP is not set
181# CONFIG_PPC_INDIRECT_IO is not set 203# CONFIG_PPC_INDIRECT_IO is not set
182# CONFIG_GENERIC_IOMAP is not set 204# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 205# CONFIG_CPU_FREQ is not set
206# CONFIG_PPC601_SYNC_FIX is not set
207# CONFIG_TAU is not set
184# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
185 209
186# 210#
@@ -206,6 +230,7 @@ CONFIG_BINFMT_ELF=y
206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
207CONFIG_ARCH_HAS_WALK_MEMORY=y 231CONFIG_ARCH_HAS_WALK_MEMORY=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 232CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
233# CONFIG_KEXEC is not set
209CONFIG_ARCH_FLATMEM_ENABLE=y 234CONFIG_ARCH_FLATMEM_ENABLE=y
210CONFIG_ARCH_POPULATES_NODE_MAP=y 235CONFIG_ARCH_POPULATES_NODE_MAP=y
211CONFIG_SELECT_MEMORY_MODEL=y 236CONFIG_SELECT_MEMORY_MODEL=y
@@ -218,6 +243,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
218# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 243# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
219CONFIG_PAGEFLAGS_EXTENDED=y 244CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 245CONFIG_SPLIT_PTLOCK_CPUS=4
246CONFIG_MIGRATION=y
221# CONFIG_RESOURCES_64BIT is not set 247# CONFIG_RESOURCES_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
223CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
@@ -225,6 +251,7 @@ CONFIG_VIRT_TO_BUS=y
225CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
226CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
227# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
254CONFIG_EXTRA_TARGETS=""
228# CONFIG_PM is not set 255# CONFIG_PM is not set
229CONFIG_SECCOMP=y 256CONFIG_SECCOMP=y
230CONFIG_ISA_DMA_API=y 257CONFIG_ISA_DMA_API=y
@@ -232,15 +259,22 @@ CONFIG_ISA_DMA_API=y
232# 259#
233# Bus options 260# Bus options
234# 261#
262# CONFIG_ISA is not set
235CONFIG_ZONE_DMA=y 263CONFIG_ZONE_DMA=y
236CONFIG_GENERIC_ISA_DMA=y 264CONFIG_GENERIC_ISA_DMA=y
237CONFIG_PPC_INDIRECT_PCI=y 265CONFIG_PPC_INDIRECT_PCI=y
238CONFIG_FSL_SOC=y 266CONFIG_FSL_SOC=y
239# CONFIG_PCI is not set 267CONFIG_FSL_PCI=y
240# CONFIG_PCI_DOMAINS is not set 268CONFIG_PPC_PCI_CHOICE=y
241# CONFIG_PCI_SYSCALL is not set 269CONFIG_PCI=y
242# CONFIG_ARCH_SUPPORTS_MSI is not set 270CONFIG_PCI_DOMAINS=y
271CONFIG_PCI_SYSCALL=y
272# CONFIG_PCIEPORTBUS is not set
273CONFIG_ARCH_SUPPORTS_MSI=y
274# CONFIG_PCI_MSI is not set
275CONFIG_PCI_LEGACY=y
243# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set
244# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
245 279
246# 280#
@@ -256,10 +290,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
256CONFIG_KERNEL_START=0xc0000000 290CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000 291CONFIG_PHYSICAL_START=0x00000000
258CONFIG_TASK_SIZE=0xc0000000 292CONFIG_TASK_SIZE=0xc0000000
259
260#
261# Networking
262#
263CONFIG_NET=y 293CONFIG_NET=y
264 294
265# 295#
@@ -355,10 +385,16 @@ CONFIG_OF_I2C=y
355# CONFIG_PARPORT is not set 385# CONFIG_PARPORT is not set
356CONFIG_BLK_DEV=y 386CONFIG_BLK_DEV=y
357# CONFIG_BLK_DEV_FD is not set 387# CONFIG_BLK_DEV_FD is not set
388# CONFIG_MAC_FLOPPY is not set
389# CONFIG_BLK_CPQ_DA is not set
390# CONFIG_BLK_CPQ_CISS_DA is not set
391# CONFIG_BLK_DEV_DAC960 is not set
392# CONFIG_BLK_DEV_UMEM is not set
358# CONFIG_BLK_DEV_COW_COMMON is not set 393# CONFIG_BLK_DEV_COW_COMMON is not set
359CONFIG_BLK_DEV_LOOP=y 394CONFIG_BLK_DEV_LOOP=y
360# CONFIG_BLK_DEV_CRYPTOLOOP is not set 395# CONFIG_BLK_DEV_CRYPTOLOOP is not set
361# CONFIG_BLK_DEV_NBD is not set 396# CONFIG_BLK_DEV_NBD is not set
397# CONFIG_BLK_DEV_SX8 is not set
362# CONFIG_BLK_DEV_UB is not set 398# CONFIG_BLK_DEV_UB is not set
363CONFIG_BLK_DEV_RAM=y 399CONFIG_BLK_DEV_RAM=y
364CONFIG_BLK_DEV_RAM_COUNT=16 400CONFIG_BLK_DEV_RAM_COUNT=16
@@ -366,9 +402,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
366# CONFIG_BLK_DEV_XIP is not set 402# CONFIG_BLK_DEV_XIP is not set
367# CONFIG_CDROM_PKTCDVD is not set 403# CONFIG_CDROM_PKTCDVD is not set
368# CONFIG_ATA_OVER_ETH is not set 404# CONFIG_ATA_OVER_ETH is not set
405# CONFIG_BLK_DEV_HD is not set
369CONFIG_MISC_DEVICES=y 406CONFIG_MISC_DEVICES=y
407# CONFIG_PHANTOM is not set
370# CONFIG_EEPROM_93CX6 is not set 408# CONFIG_EEPROM_93CX6 is not set
409# CONFIG_SGI_IOC4 is not set
410# CONFIG_TIFM_CORE is not set
371# CONFIG_ENCLOSURE_SERVICES is not set 411# CONFIG_ENCLOSURE_SERVICES is not set
412# CONFIG_HP_ILO is not set
372CONFIG_HAVE_IDE=y 413CONFIG_HAVE_IDE=y
373# CONFIG_IDE is not set 414# CONFIG_IDE is not set
374 415
@@ -411,14 +452,106 @@ CONFIG_SCSI_WAIT_SCAN=m
411# CONFIG_SCSI_SRP_ATTRS is not set 452# CONFIG_SCSI_SRP_ATTRS is not set
412CONFIG_SCSI_LOWLEVEL=y 453CONFIG_SCSI_LOWLEVEL=y
413# CONFIG_ISCSI_TCP is not set 454# CONFIG_ISCSI_TCP is not set
455# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
456# CONFIG_SCSI_3W_9XXX is not set
457# CONFIG_SCSI_ACARD is not set
458# CONFIG_SCSI_AACRAID is not set
459# CONFIG_SCSI_AIC7XXX is not set
460# CONFIG_SCSI_AIC7XXX_OLD is not set
461# CONFIG_SCSI_AIC79XX is not set
462# CONFIG_SCSI_AIC94XX is not set
463# CONFIG_SCSI_DPT_I2O is not set
464# CONFIG_SCSI_ADVANSYS is not set
465# CONFIG_SCSI_ARCMSR is not set
466# CONFIG_MEGARAID_NEWGEN is not set
467# CONFIG_MEGARAID_LEGACY is not set
468# CONFIG_MEGARAID_SAS is not set
469# CONFIG_SCSI_HPTIOP is not set
470# CONFIG_SCSI_BUSLOGIC is not set
471# CONFIG_SCSI_DMX3191D is not set
472# CONFIG_SCSI_EATA is not set
473# CONFIG_SCSI_FUTURE_DOMAIN is not set
474# CONFIG_SCSI_GDTH is not set
475# CONFIG_SCSI_IPS is not set
476# CONFIG_SCSI_INITIO is not set
477# CONFIG_SCSI_INIA100 is not set
478# CONFIG_SCSI_MVSAS is not set
479# CONFIG_SCSI_STEX is not set
480# CONFIG_SCSI_SYM53C8XX_2 is not set
481# CONFIG_SCSI_IPR is not set
482# CONFIG_SCSI_QLOGIC_1280 is not set
483# CONFIG_SCSI_QLA_FC is not set
484# CONFIG_SCSI_QLA_ISCSI is not set
485# CONFIG_SCSI_LPFC is not set
486# CONFIG_SCSI_DC395x is not set
487# CONFIG_SCSI_DC390T is not set
488# CONFIG_SCSI_NSP32 is not set
414# CONFIG_SCSI_DEBUG is not set 489# CONFIG_SCSI_DEBUG is not set
490# CONFIG_SCSI_MESH is not set
491# CONFIG_SCSI_MAC53C94 is not set
492# CONFIG_SCSI_SRP is not set
493# CONFIG_SCSI_DH is not set
415CONFIG_ATA=y 494CONFIG_ATA=y
416# CONFIG_ATA_NONSTANDARD is not set 495# CONFIG_ATA_NONSTANDARD is not set
417CONFIG_SATA_PMP=y 496CONFIG_SATA_PMP=y
497# CONFIG_SATA_AHCI is not set
498# CONFIG_SATA_SIL24 is not set
418CONFIG_SATA_FSL=y 499CONFIG_SATA_FSL=y
419CONFIG_ATA_SFF=y 500CONFIG_ATA_SFF=y
501# CONFIG_SATA_SVW is not set
502# CONFIG_ATA_PIIX is not set
420# CONFIG_SATA_MV is not set 503# CONFIG_SATA_MV is not set
504# CONFIG_SATA_NV is not set
505# CONFIG_PDC_ADMA is not set
506# CONFIG_SATA_QSTOR is not set
507# CONFIG_SATA_PROMISE is not set
508# CONFIG_SATA_SX4 is not set
509# CONFIG_SATA_SIL is not set
510# CONFIG_SATA_SIS is not set
511# CONFIG_SATA_ULI is not set
512# CONFIG_SATA_VIA is not set
513# CONFIG_SATA_VITESSE is not set
514# CONFIG_SATA_INIC162X is not set
515# CONFIG_PATA_ALI is not set
516# CONFIG_PATA_AMD is not set
517# CONFIG_PATA_ARTOP is not set
518# CONFIG_PATA_ATIIXP is not set
519# CONFIG_PATA_CMD640_PCI is not set
520# CONFIG_PATA_CMD64X is not set
521# CONFIG_PATA_CS5520 is not set
522# CONFIG_PATA_CS5530 is not set
523# CONFIG_PATA_CYPRESS is not set
524# CONFIG_PATA_EFAR is not set
525# CONFIG_ATA_GENERIC is not set
526# CONFIG_PATA_HPT366 is not set
527# CONFIG_PATA_HPT37X is not set
528# CONFIG_PATA_HPT3X2N is not set
529# CONFIG_PATA_HPT3X3 is not set
530# CONFIG_PATA_IT821X is not set
531# CONFIG_PATA_IT8213 is not set
532# CONFIG_PATA_JMICRON is not set
533# CONFIG_PATA_TRIFLEX is not set
534# CONFIG_PATA_MARVELL is not set
535# CONFIG_PATA_MPIIX is not set
536# CONFIG_PATA_OLDPIIX is not set
537# CONFIG_PATA_NETCELL is not set
538# CONFIG_PATA_NINJA32 is not set
539# CONFIG_PATA_NS87410 is not set
540# CONFIG_PATA_NS87415 is not set
541# CONFIG_PATA_OPTI is not set
542# CONFIG_PATA_OPTIDMA is not set
543# CONFIG_PATA_PDC_OLD is not set
544# CONFIG_PATA_RADISYS is not set
545# CONFIG_PATA_RZ1000 is not set
546# CONFIG_PATA_SC1200 is not set
547# CONFIG_PATA_SERVERWORKS is not set
548# CONFIG_PATA_PDC2027X is not set
549# CONFIG_PATA_SIL680 is not set
550# CONFIG_PATA_SIS is not set
551# CONFIG_PATA_VIA is not set
552# CONFIG_PATA_WINBOND is not set
421# CONFIG_PATA_PLATFORM is not set 553# CONFIG_PATA_PLATFORM is not set
554# CONFIG_PATA_SCH is not set
422CONFIG_MD=y 555CONFIG_MD=y
423CONFIG_BLK_DEV_MD=y 556CONFIG_BLK_DEV_MD=y
424# CONFIG_MD_LINEAR is not set 557# CONFIG_MD_LINEAR is not set
@@ -430,15 +563,27 @@ CONFIG_MD_RAID5_RESHAPE=y
430# CONFIG_MD_MULTIPATH is not set 563# CONFIG_MD_MULTIPATH is not set
431# CONFIG_MD_FAULTY is not set 564# CONFIG_MD_FAULTY is not set
432# CONFIG_BLK_DEV_DM is not set 565# CONFIG_BLK_DEV_DM is not set
566# CONFIG_FUSION is not set
567
568#
569# IEEE 1394 (FireWire) support
570#
571
572#
573# Enable only one of the two stacks, unless you know what you are doing
574#
575# CONFIG_FIREWIRE is not set
576# CONFIG_IEEE1394 is not set
577# CONFIG_I2O is not set
433# CONFIG_MACINTOSH_DRIVERS is not set 578# CONFIG_MACINTOSH_DRIVERS is not set
434CONFIG_NETDEVICES=y 579CONFIG_NETDEVICES=y
435# CONFIG_NETDEVICES_MULTIQUEUE is not set
436# CONFIG_DUMMY is not set 580# CONFIG_DUMMY is not set
437# CONFIG_BONDING is not set 581# CONFIG_BONDING is not set
438# CONFIG_MACVLAN is not set 582# CONFIG_MACVLAN is not set
439# CONFIG_EQUALIZER is not set 583# CONFIG_EQUALIZER is not set
440# CONFIG_TUN is not set 584# CONFIG_TUN is not set
441# CONFIG_VETH is not set 585# CONFIG_VETH is not set
586# CONFIG_ARCNET is not set
442CONFIG_PHYLIB=y 587CONFIG_PHYLIB=y
443 588
444# 589#
@@ -458,16 +603,44 @@ CONFIG_FIXED_PHY=y
458# CONFIG_MDIO_BITBANG is not set 603# CONFIG_MDIO_BITBANG is not set
459CONFIG_NET_ETHERNET=y 604CONFIG_NET_ETHERNET=y
460CONFIG_MII=y 605CONFIG_MII=y
606# CONFIG_MACE is not set
607# CONFIG_BMAC is not set
608# CONFIG_HAPPYMEAL is not set
609# CONFIG_SUNGEM is not set
610# CONFIG_CASSINI is not set
611# CONFIG_NET_VENDOR_3COM is not set
612# CONFIG_NET_TULIP is not set
613# CONFIG_HP100 is not set
461# CONFIG_IBM_NEW_EMAC_ZMII is not set 614# CONFIG_IBM_NEW_EMAC_ZMII is not set
462# CONFIG_IBM_NEW_EMAC_RGMII is not set 615# CONFIG_IBM_NEW_EMAC_RGMII is not set
463# CONFIG_IBM_NEW_EMAC_TAH is not set 616# CONFIG_IBM_NEW_EMAC_TAH is not set
464# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 617# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
618# CONFIG_NET_PCI is not set
465# CONFIG_B44 is not set 619# CONFIG_B44 is not set
466CONFIG_NETDEV_1000=y 620CONFIG_NETDEV_1000=y
467# CONFIG_E1000E_ENABLED is not set 621# CONFIG_ACENIC is not set
622# CONFIG_DL2K is not set
623# CONFIG_E1000 is not set
624# CONFIG_E1000E is not set
625# CONFIG_IP1000 is not set
626# CONFIG_IGB is not set
627# CONFIG_NS83820 is not set
628# CONFIG_HAMACHI is not set
629# CONFIG_YELLOWFIN is not set
630# CONFIG_R8169 is not set
631# CONFIG_SIS190 is not set
632# CONFIG_SKGE is not set
633# CONFIG_SKY2 is not set
634# CONFIG_VIA_VELOCITY is not set
635# CONFIG_TIGON3 is not set
636# CONFIG_BNX2 is not set
468CONFIG_GIANFAR=y 637CONFIG_GIANFAR=y
469CONFIG_GFAR_NAPI=y 638# CONFIG_MV643XX_ETH is not set
639# CONFIG_QLA3XXX is not set
640# CONFIG_ATL1 is not set
641# CONFIG_ATL1E is not set
470# CONFIG_NETDEV_10000 is not set 642# CONFIG_NETDEV_10000 is not set
643# CONFIG_TR is not set
471 644
472# 645#
473# Wireless LAN 646# Wireless LAN
@@ -485,8 +658,11 @@ CONFIG_GFAR_NAPI=y
485# CONFIG_USB_RTL8150 is not set 658# CONFIG_USB_RTL8150 is not set
486# CONFIG_USB_USBNET is not set 659# CONFIG_USB_USBNET is not set
487# CONFIG_WAN is not set 660# CONFIG_WAN is not set
661# CONFIG_FDDI is not set
662# CONFIG_HIPPI is not set
488# CONFIG_PPP is not set 663# CONFIG_PPP is not set
489# CONFIG_SLIP is not set 664# CONFIG_SLIP is not set
665# CONFIG_NET_FC is not set
490# CONFIG_NETCONSOLE is not set 666# CONFIG_NETCONSOLE is not set
491# CONFIG_NETPOLL is not set 667# CONFIG_NETPOLL is not set
492# CONFIG_NET_POLL_CONTROLLER is not set 668# CONFIG_NET_POLL_CONTROLLER is not set
@@ -530,12 +706,14 @@ CONFIG_INPUT=y
530# CONFIG_VT is not set 706# CONFIG_VT is not set
531CONFIG_DEVKMEM=y 707CONFIG_DEVKMEM=y
532# CONFIG_SERIAL_NONSTANDARD is not set 708# CONFIG_SERIAL_NONSTANDARD is not set
709# CONFIG_NOZOMI is not set
533 710
534# 711#
535# Serial drivers 712# Serial drivers
536# 713#
537CONFIG_SERIAL_8250=y 714CONFIG_SERIAL_8250=y
538CONFIG_SERIAL_8250_CONSOLE=y 715CONFIG_SERIAL_8250_CONSOLE=y
716CONFIG_SERIAL_8250_PCI=y
539CONFIG_SERIAL_8250_NR_UARTS=4 717CONFIG_SERIAL_8250_NR_UARTS=4
540CONFIG_SERIAL_8250_RUNTIME_UARTS=4 718CONFIG_SERIAL_8250_RUNTIME_UARTS=4
541# CONFIG_SERIAL_8250_EXTENDED is not set 719# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -546,41 +724,91 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
546# CONFIG_SERIAL_UARTLITE is not set 724# CONFIG_SERIAL_UARTLITE is not set
547CONFIG_SERIAL_CORE=y 725CONFIG_SERIAL_CORE=y
548CONFIG_SERIAL_CORE_CONSOLE=y 726CONFIG_SERIAL_CORE_CONSOLE=y
727# CONFIG_SERIAL_PMACZILOG is not set
728# CONFIG_SERIAL_JSM is not set
549# CONFIG_SERIAL_OF_PLATFORM is not set 729# CONFIG_SERIAL_OF_PLATFORM is not set
550CONFIG_UNIX98_PTYS=y 730CONFIG_UNIX98_PTYS=y
551CONFIG_LEGACY_PTYS=y 731CONFIG_LEGACY_PTYS=y
552CONFIG_LEGACY_PTY_COUNT=256 732CONFIG_LEGACY_PTY_COUNT=256
733# CONFIG_BRIQ_PANEL is not set
734# CONFIG_HVC_RTAS is not set
553# CONFIG_IPMI_HANDLER is not set 735# CONFIG_IPMI_HANDLER is not set
554# CONFIG_HW_RANDOM is not set 736# CONFIG_HW_RANDOM is not set
555# CONFIG_NVRAM is not set 737# CONFIG_NVRAM is not set
556CONFIG_GEN_RTC=y 738CONFIG_GEN_RTC=y
557# CONFIG_GEN_RTC_X is not set 739# CONFIG_GEN_RTC_X is not set
558# CONFIG_R3964 is not set 740# CONFIG_R3964 is not set
741# CONFIG_APPLICOM is not set
559# CONFIG_RAW_DRIVER is not set 742# CONFIG_RAW_DRIVER is not set
560# CONFIG_TCG_TPM is not set 743# CONFIG_TCG_TPM is not set
744CONFIG_DEVPORT=y
561CONFIG_I2C=y 745CONFIG_I2C=y
562CONFIG_I2C_BOARDINFO=y 746CONFIG_I2C_BOARDINFO=y
563CONFIG_I2C_CHARDEV=y 747CONFIG_I2C_CHARDEV=y
748CONFIG_I2C_HELPER_AUTO=y
564 749
565# 750#
566# I2C Hardware Bus support 751# I2C Hardware Bus support
567# 752#
753
754#
755# PC SMBus host controller drivers
756#
757# CONFIG_I2C_ALI1535 is not set
758# CONFIG_I2C_ALI1563 is not set
759# CONFIG_I2C_ALI15X3 is not set
760# CONFIG_I2C_AMD756 is not set
761# CONFIG_I2C_AMD8111 is not set
762# CONFIG_I2C_I801 is not set
763# CONFIG_I2C_ISCH is not set
764# CONFIG_I2C_PIIX4 is not set
765# CONFIG_I2C_NFORCE2 is not set
766# CONFIG_I2C_SIS5595 is not set
767# CONFIG_I2C_SIS630 is not set
768# CONFIG_I2C_SIS96X is not set
769# CONFIG_I2C_VIA is not set
770# CONFIG_I2C_VIAPRO is not set
771
772#
773# Mac SMBus host controller drivers
774#
775# CONFIG_I2C_HYDRA is not set
776CONFIG_I2C_POWERMAC=y
777
778#
779# I2C system bus drivers (mostly embedded / system-on-chip)
780#
568CONFIG_I2C_MPC=y 781CONFIG_I2C_MPC=y
569# CONFIG_I2C_OCORES is not set 782# CONFIG_I2C_OCORES is not set
570# CONFIG_I2C_PARPORT_LIGHT is not set
571# CONFIG_I2C_SIMTEC is not set 783# CONFIG_I2C_SIMTEC is not set
784
785#
786# External I2C/SMBus adapter drivers
787#
788# CONFIG_I2C_PARPORT_LIGHT is not set
572# CONFIG_I2C_TAOS_EVM is not set 789# CONFIG_I2C_TAOS_EVM is not set
573# CONFIG_I2C_STUB is not set
574# CONFIG_I2C_TINY_USB is not set 790# CONFIG_I2C_TINY_USB is not set
791
792#
793# Graphics adapter I2C/DDC channel drivers
794#
795# CONFIG_I2C_VOODOO3 is not set
796
797#
798# Other I2C/SMBus bus drivers
799#
575# CONFIG_I2C_PCA_PLATFORM is not set 800# CONFIG_I2C_PCA_PLATFORM is not set
801# CONFIG_I2C_STUB is not set
576 802
577# 803#
578# Miscellaneous I2C Chip support 804# Miscellaneous I2C Chip support
579# 805#
580# CONFIG_DS1682 is not set 806# CONFIG_DS1682 is not set
807# CONFIG_AT24 is not set
581# CONFIG_SENSORS_EEPROM is not set 808# CONFIG_SENSORS_EEPROM is not set
582# CONFIG_SENSORS_PCF8574 is not set 809# CONFIG_SENSORS_PCF8574 is not set
583# CONFIG_PCF8575 is not set 810# CONFIG_PCF8575 is not set
811# CONFIG_SENSORS_PCA9539 is not set
584# CONFIG_SENSORS_PCF8591 is not set 812# CONFIG_SENSORS_PCF8591 is not set
585# CONFIG_SENSORS_MAX6875 is not set 813# CONFIG_SENSORS_MAX6875 is not set
586# CONFIG_SENSORS_TSL2550 is not set 814# CONFIG_SENSORS_TSL2550 is not set
@@ -589,10 +817,13 @@ CONFIG_I2C_MPC=y
589# CONFIG_I2C_DEBUG_BUS is not set 817# CONFIG_I2C_DEBUG_BUS is not set
590# CONFIG_I2C_DEBUG_CHIP is not set 818# CONFIG_I2C_DEBUG_CHIP is not set
591# CONFIG_SPI is not set 819# CONFIG_SPI is not set
820CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
821# CONFIG_GPIOLIB is not set
592# CONFIG_W1 is not set 822# CONFIG_W1 is not set
593# CONFIG_POWER_SUPPLY is not set 823# CONFIG_POWER_SUPPLY is not set
594CONFIG_HWMON=y 824CONFIG_HWMON=y
595# CONFIG_HWMON_VID is not set 825# CONFIG_HWMON_VID is not set
826# CONFIG_SENSORS_AD7414 is not set
596# CONFIG_SENSORS_AD7418 is not set 827# CONFIG_SENSORS_AD7418 is not set
597# CONFIG_SENSORS_ADM1021 is not set 828# CONFIG_SENSORS_ADM1021 is not set
598# CONFIG_SENSORS_ADM1025 is not set 829# CONFIG_SENSORS_ADM1025 is not set
@@ -602,8 +833,10 @@ CONFIG_HWMON=y
602# CONFIG_SENSORS_ADM9240 is not set 833# CONFIG_SENSORS_ADM9240 is not set
603# CONFIG_SENSORS_ADT7470 is not set 834# CONFIG_SENSORS_ADT7470 is not set
604# CONFIG_SENSORS_ADT7473 is not set 835# CONFIG_SENSORS_ADT7473 is not set
836# CONFIG_SENSORS_AMS is not set
605# CONFIG_SENSORS_ATXP1 is not set 837# CONFIG_SENSORS_ATXP1 is not set
606# CONFIG_SENSORS_DS1621 is not set 838# CONFIG_SENSORS_DS1621 is not set
839# CONFIG_SENSORS_I5K_AMB is not set
607# CONFIG_SENSORS_F71805F is not set 840# CONFIG_SENSORS_F71805F is not set
608# CONFIG_SENSORS_F71882FG is not set 841# CONFIG_SENSORS_F71882FG is not set
609# CONFIG_SENSORS_F75375S is not set 842# CONFIG_SENSORS_F75375S is not set
@@ -625,13 +858,16 @@ CONFIG_HWMON=y
625# CONFIG_SENSORS_MAX6650 is not set 858# CONFIG_SENSORS_MAX6650 is not set
626# CONFIG_SENSORS_PC87360 is not set 859# CONFIG_SENSORS_PC87360 is not set
627# CONFIG_SENSORS_PC87427 is not set 860# CONFIG_SENSORS_PC87427 is not set
861# CONFIG_SENSORS_SIS5595 is not set
628# CONFIG_SENSORS_DME1737 is not set 862# CONFIG_SENSORS_DME1737 is not set
629# CONFIG_SENSORS_SMSC47M1 is not set 863# CONFIG_SENSORS_SMSC47M1 is not set
630# CONFIG_SENSORS_SMSC47M192 is not set 864# CONFIG_SENSORS_SMSC47M192 is not set
631# CONFIG_SENSORS_SMSC47B397 is not set 865# CONFIG_SENSORS_SMSC47B397 is not set
632# CONFIG_SENSORS_ADS7828 is not set 866# CONFIG_SENSORS_ADS7828 is not set
633# CONFIG_SENSORS_THMC50 is not set 867# CONFIG_SENSORS_THMC50 is not set
868# CONFIG_SENSORS_VIA686A is not set
634# CONFIG_SENSORS_VT1211 is not set 869# CONFIG_SENSORS_VT1211 is not set
870# CONFIG_SENSORS_VT8231 is not set
635# CONFIG_SENSORS_W83781D is not set 871# CONFIG_SENSORS_W83781D is not set
636# CONFIG_SENSORS_W83791D is not set 872# CONFIG_SENSORS_W83791D is not set
637# CONFIG_SENSORS_W83792D is not set 873# CONFIG_SENSORS_W83792D is not set
@@ -642,6 +878,7 @@ CONFIG_HWMON=y
642# CONFIG_SENSORS_W83627EHF is not set 878# CONFIG_SENSORS_W83627EHF is not set
643# CONFIG_HWMON_DEBUG_CHIP is not set 879# CONFIG_HWMON_DEBUG_CHIP is not set
644# CONFIG_THERMAL is not set 880# CONFIG_THERMAL is not set
881# CONFIG_THERMAL_HWMON is not set
645CONFIG_WATCHDOG=y 882CONFIG_WATCHDOG=y
646# CONFIG_WATCHDOG_NOWAYOUT is not set 883# CONFIG_WATCHDOG_NOWAYOUT is not set
647 884
@@ -649,7 +886,15 @@ CONFIG_WATCHDOG=y
649# Watchdog Device Drivers 886# Watchdog Device Drivers
650# 887#
651# CONFIG_SOFT_WATCHDOG is not set 888# CONFIG_SOFT_WATCHDOG is not set
652CONFIG_83xx_WDT=y 889# CONFIG_ALIM7101_WDT is not set
890# CONFIG_8xxx_WDT is not set
891# CONFIG_WATCHDOG_RTAS is not set
892
893#
894# PCI-based Watchdog Cards
895#
896# CONFIG_PCIPCWATCHDOG is not set
897# CONFIG_WDTPCI is not set
653 898
654# 899#
655# USB-based Watchdog Cards 900# USB-based Watchdog Cards
@@ -665,8 +910,10 @@ CONFIG_SSB_POSSIBLE=y
665# 910#
666# Multifunction device drivers 911# Multifunction device drivers
667# 912#
913# CONFIG_MFD_CORE is not set
668# CONFIG_MFD_SM501 is not set 914# CONFIG_MFD_SM501 is not set
669# CONFIG_HTC_PASIC3 is not set 915# CONFIG_HTC_PASIC3 is not set
916# CONFIG_MFD_TMIO is not set
670 917
671# 918#
672# Multimedia devices 919# Multimedia devices
@@ -688,6 +935,8 @@ CONFIG_DAB=y
688# 935#
689# Graphics support 936# Graphics support
690# 937#
938# CONFIG_AGP is not set
939# CONFIG_DRM is not set
691# CONFIG_VGASTATE is not set 940# CONFIG_VGASTATE is not set
692CONFIG_VIDEO_OUTPUT_CONTROL=m 941CONFIG_VIDEO_OUTPUT_CONTROL=m
693# CONFIG_FB is not set 942# CONFIG_FB is not set
@@ -697,10 +946,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
697# Display device support 946# Display device support
698# 947#
699# CONFIG_DISPLAY_SUPPORT is not set 948# CONFIG_DISPLAY_SUPPORT is not set
700
701#
702# Sound
703#
704# CONFIG_SOUND is not set 949# CONFIG_SOUND is not set
705CONFIG_HID_SUPPORT=y 950CONFIG_HID_SUPPORT=y
706CONFIG_HID=y 951CONFIG_HID=y
@@ -716,7 +961,7 @@ CONFIG_USB_HID=y
716# CONFIG_USB_HIDDEV is not set 961# CONFIG_USB_HIDDEV is not set
717CONFIG_USB_SUPPORT=y 962CONFIG_USB_SUPPORT=y
718CONFIG_USB_ARCH_HAS_HCD=y 963CONFIG_USB_ARCH_HAS_HCD=y
719# CONFIG_USB_ARCH_HAS_OHCI is not set 964CONFIG_USB_ARCH_HAS_OHCI=y
720CONFIG_USB_ARCH_HAS_EHCI=y 965CONFIG_USB_ARCH_HAS_EHCI=y
721CONFIG_USB=y 966CONFIG_USB=y
722# CONFIG_USB_DEBUG is not set 967# CONFIG_USB_DEBUG is not set
@@ -731,6 +976,7 @@ CONFIG_USB_DEVICE_CLASS=y
731# CONFIG_USB_OTG is not set 976# CONFIG_USB_OTG is not set
732# CONFIG_USB_OTG_WHITELIST is not set 977# CONFIG_USB_OTG_WHITELIST is not set
733# CONFIG_USB_OTG_BLACKLIST_HUB is not set 978# CONFIG_USB_OTG_BLACKLIST_HUB is not set
979CONFIG_USB_MON=y
734 980
735# 981#
736# USB Host Controller Drivers 982# USB Host Controller Drivers
@@ -743,6 +989,8 @@ CONFIG_USB_EHCI_FSL=y
743CONFIG_USB_EHCI_HCD_PPC_OF=y 989CONFIG_USB_EHCI_HCD_PPC_OF=y
744# CONFIG_USB_ISP116X_HCD is not set 990# CONFIG_USB_ISP116X_HCD is not set
745# CONFIG_USB_ISP1760_HCD is not set 991# CONFIG_USB_ISP1760_HCD is not set
992# CONFIG_USB_OHCI_HCD is not set
993# CONFIG_USB_UHCI_HCD is not set
746# CONFIG_USB_SL811_HCD is not set 994# CONFIG_USB_SL811_HCD is not set
747# CONFIG_USB_R8A66597_HCD is not set 995# CONFIG_USB_R8A66597_HCD is not set
748 996
@@ -768,7 +1016,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
768# 1016#
769# CONFIG_USB_MDC800 is not set 1017# CONFIG_USB_MDC800 is not set
770# CONFIG_USB_MICROTEK is not set 1018# CONFIG_USB_MICROTEK is not set
771CONFIG_USB_MON=y
772 1019
773# 1020#
774# USB port drivers 1021# USB port drivers
@@ -781,7 +1028,6 @@ CONFIG_USB_MON=y
781# CONFIG_USB_EMI62 is not set 1028# CONFIG_USB_EMI62 is not set
782# CONFIG_USB_EMI26 is not set 1029# CONFIG_USB_EMI26 is not set
783# CONFIG_USB_ADUTUX is not set 1030# CONFIG_USB_ADUTUX is not set
784# CONFIG_USB_AUERSWALD is not set
785# CONFIG_USB_RIO500 is not set 1031# CONFIG_USB_RIO500 is not set
786# CONFIG_USB_LEGOTOWER is not set 1032# CONFIG_USB_LEGOTOWER is not set
787# CONFIG_USB_LCD is not set 1033# CONFIG_USB_LCD is not set
@@ -803,6 +1049,7 @@ CONFIG_USB_MON=y
803# CONFIG_MEMSTICK is not set 1049# CONFIG_MEMSTICK is not set
804# CONFIG_NEW_LEDS is not set 1050# CONFIG_NEW_LEDS is not set
805# CONFIG_ACCESSIBILITY is not set 1051# CONFIG_ACCESSIBILITY is not set
1052# CONFIG_INFINIBAND is not set
806# CONFIG_EDAC is not set 1053# CONFIG_EDAC is not set
807# CONFIG_RTC_CLASS is not set 1054# CONFIG_RTC_CLASS is not set
808# CONFIG_DMADEVICES is not set 1055# CONFIG_DMADEVICES is not set
@@ -872,6 +1119,7 @@ CONFIG_TMPFS=y
872# CONFIG_CRAMFS is not set 1119# CONFIG_CRAMFS is not set
873# CONFIG_VXFS_FS is not set 1120# CONFIG_VXFS_FS is not set
874# CONFIG_MINIX_FS is not set 1121# CONFIG_MINIX_FS is not set
1122# CONFIG_OMFS_FS is not set
875# CONFIG_HPFS_FS is not set 1123# CONFIG_HPFS_FS is not set
876# CONFIG_QNX4FS_FS is not set 1124# CONFIG_QNX4FS_FS is not set
877# CONFIG_ROMFS_FS is not set 1125# CONFIG_ROMFS_FS is not set
@@ -882,14 +1130,13 @@ CONFIG_NFS_FS=y
882CONFIG_NFS_V3=y 1130CONFIG_NFS_V3=y
883# CONFIG_NFS_V3_ACL is not set 1131# CONFIG_NFS_V3_ACL is not set
884CONFIG_NFS_V4=y 1132CONFIG_NFS_V4=y
885# CONFIG_NFSD is not set
886CONFIG_ROOT_NFS=y 1133CONFIG_ROOT_NFS=y
1134# CONFIG_NFSD is not set
887CONFIG_LOCKD=y 1135CONFIG_LOCKD=y
888CONFIG_LOCKD_V4=y 1136CONFIG_LOCKD_V4=y
889CONFIG_NFS_COMMON=y 1137CONFIG_NFS_COMMON=y
890CONFIG_SUNRPC=y 1138CONFIG_SUNRPC=y
891CONFIG_SUNRPC_GSS=y 1139CONFIG_SUNRPC_GSS=y
892# CONFIG_SUNRPC_BIND34 is not set
893CONFIG_RPCSEC_GSS_KRB5=y 1140CONFIG_RPCSEC_GSS_KRB5=y
894# CONFIG_RPCSEC_GSS_SPKM3 is not set 1141# CONFIG_RPCSEC_GSS_SPKM3 is not set
895# CONFIG_SMB_FS is not set 1142# CONFIG_SMB_FS is not set
@@ -929,6 +1176,7 @@ CONFIG_BITREVERSE=y
929# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1176# CONFIG_GENERIC_FIND_FIRST_BIT is not set
930# CONFIG_CRC_CCITT is not set 1177# CONFIG_CRC_CCITT is not set
931# CONFIG_CRC16 is not set 1178# CONFIG_CRC16 is not set
1179CONFIG_CRC_T10DIF=y
932# CONFIG_CRC_ITU_T is not set 1180# CONFIG_CRC_ITU_T is not set
933CONFIG_CRC32=y 1181CONFIG_CRC32=y
934# CONFIG_CRC7 is not set 1182# CONFIG_CRC7 is not set
@@ -952,8 +1200,18 @@ CONFIG_FRAME_WARN=1024
952# CONFIG_HEADERS_CHECK is not set 1200# CONFIG_HEADERS_CHECK is not set
953# CONFIG_DEBUG_KERNEL is not set 1201# CONFIG_DEBUG_KERNEL is not set
954# CONFIG_DEBUG_BUGVERBOSE is not set 1202# CONFIG_DEBUG_BUGVERBOSE is not set
1203# CONFIG_DEBUG_MEMORY_INIT is not set
1204# CONFIG_LATENCYTOP is not set
1205CONFIG_SYSCTL_SYSCALL_CHECK=y
1206CONFIG_HAVE_FTRACE=y
1207CONFIG_HAVE_DYNAMIC_FTRACE=y
1208# CONFIG_FTRACE is not set
1209# CONFIG_SCHED_TRACER is not set
1210# CONFIG_CONTEXT_SWITCH_TRACER is not set
955# CONFIG_SAMPLES is not set 1211# CONFIG_SAMPLES is not set
1212CONFIG_HAVE_ARCH_KGDB=y
956# CONFIG_IRQSTACKS is not set 1213# CONFIG_IRQSTACKS is not set
1214# CONFIG_BOOTX_TEXT is not set
957# CONFIG_PPC_EARLY_DEBUG is not set 1215# CONFIG_PPC_EARLY_DEBUG is not set
958 1216
959# 1217#
@@ -1011,6 +1269,10 @@ CONFIG_CRYPTO_PCBC=m
1011# CONFIG_CRYPTO_MD4 is not set 1269# CONFIG_CRYPTO_MD4 is not set
1012CONFIG_CRYPTO_MD5=y 1270CONFIG_CRYPTO_MD5=y
1013# CONFIG_CRYPTO_MICHAEL_MIC is not set 1271# CONFIG_CRYPTO_MICHAEL_MIC is not set
1272# CONFIG_CRYPTO_RMD128 is not set
1273# CONFIG_CRYPTO_RMD160 is not set
1274# CONFIG_CRYPTO_RMD256 is not set
1275# CONFIG_CRYPTO_RMD320 is not set
1014# CONFIG_CRYPTO_SHA1 is not set 1276# CONFIG_CRYPTO_SHA1 is not set
1015# CONFIG_CRYPTO_SHA256 is not set 1277# CONFIG_CRYPTO_SHA256 is not set
1016# CONFIG_CRYPTO_SHA512 is not set 1278# CONFIG_CRYPTO_SHA512 is not set
@@ -1042,5 +1304,7 @@ CONFIG_CRYPTO_DES=y
1042# CONFIG_CRYPTO_DEFLATE is not set 1304# CONFIG_CRYPTO_DEFLATE is not set
1043# CONFIG_CRYPTO_LZO is not set 1305# CONFIG_CRYPTO_LZO is not set
1044CONFIG_CRYPTO_HW=y 1306CONFIG_CRYPTO_HW=y
1307# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1308# CONFIG_CRYPTO_DEV_TALITOS is not set
1045# CONFIG_PPC_CLOCK is not set 1309# CONFIG_PPC_CLOCK is not set
1046# CONFIG_VIRTUALIZATION is not set 1310# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig
index 1752918be2c..9245a67da20 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:30 2008 4# Thu Aug 21 00:52:27 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -110,10 +115,16 @@ CONFIG_SLAB=y
110# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set 116# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y
115# CONFIG_HAVE_DMA_ATTRS is not set 123# CONFIG_HAVE_DMA_ATTRS is not set
124# CONFIG_USE_GENERIC_SMP_HELPERS is not set
125# CONFIG_HAVE_CLK is not set
116CONFIG_PROC_PAGE_MONITOR=y 126CONFIG_PROC_PAGE_MONITOR=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
117CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
119# CONFIG_TINY_SHMEM is not set 130# CONFIG_TINY_SHMEM is not set
@@ -124,12 +135,13 @@ CONFIG_MODULE_UNLOAD=y
124# CONFIG_MODULE_FORCE_UNLOAD is not set 135# CONFIG_MODULE_FORCE_UNLOAD is not set
125# CONFIG_MODVERSIONS is not set 136# CONFIG_MODVERSIONS is not set
126# CONFIG_MODULE_SRCVERSION_ALL is not set 137# CONFIG_MODULE_SRCVERSION_ALL is not set
127# CONFIG_KMOD is not set 138CONFIG_KMOD=y
128CONFIG_BLOCK=y 139CONFIG_BLOCK=y
129# CONFIG_LBD is not set 140# CONFIG_LBD is not set
130# CONFIG_BLK_DEV_IO_TRACE is not set 141# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_LSF is not set 142# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_BSG is not set 143# CONFIG_BLK_DEV_BSG is not set
144# CONFIG_BLK_DEV_INTEGRITY is not set
133 145
134# 146#
135# IO Schedulers 147# IO Schedulers
@@ -148,37 +160,49 @@ CONFIG_CLASSIC_RCU=y
148# 160#
149# Platform support 161# Platform support
150# 162#
151# CONFIG_PPC_MULTIPLATFORM is not set 163CONFIG_PPC_MULTIPLATFORM=y
152# CONFIG_PPC_82xx is not set 164CONFIG_CLASSIC32=y
153CONFIG_PPC_83xx=y 165CONFIG_PPC_CHRP=y
154# CONFIG_PPC_86xx is not set 166# CONFIG_MPC5121_ADS is not set
155# CONFIG_PPC_MPC512x is not set 167# CONFIG_MPC5121_GENERIC is not set
156# CONFIG_PPC_MPC5121 is not set 168# CONFIG_PPC_MPC52xx is not set
169CONFIG_PPC_PMAC=y
157# CONFIG_PPC_CELL is not set 170# CONFIG_PPC_CELL is not set
158# CONFIG_PPC_CELL_NATIVE is not set 171# CONFIG_PPC_CELL_NATIVE is not set
172# CONFIG_PPC_82xx is not set
159# CONFIG_PQ2ADS is not set 173# CONFIG_PQ2ADS is not set
160CONFIG_MPC83xx=y 174CONFIG_PPC_83xx=y
161# CONFIG_MPC831x_RDB is not set 175# CONFIG_MPC831x_RDB is not set
162# CONFIG_MPC832x_MDS is not set 176# CONFIG_MPC832x_MDS is not set
163# CONFIG_MPC832x_RDB is not set 177# CONFIG_MPC832x_RDB is not set
164# CONFIG_MPC834x_MDS is not set 178# CONFIG_MPC834x_MDS is not set
165# CONFIG_MPC834x_ITX is not set 179# CONFIG_MPC834x_ITX is not set
166# CONFIG_MPC836x_MDS is not set 180# CONFIG_MPC836x_MDS is not set
181# CONFIG_MPC836x_RDK is not set
167# CONFIG_MPC837x_MDS is not set 182# CONFIG_MPC837x_MDS is not set
168# CONFIG_MPC837x_RDB is not set 183# CONFIG_MPC837x_RDB is not set
169CONFIG_SBC834x=y 184CONFIG_SBC834x=y
185# CONFIG_ASP834x is not set
170CONFIG_PPC_MPC834x=y 186CONFIG_PPC_MPC834x=y
187# CONFIG_PPC_86xx is not set
188# CONFIG_EMBEDDED6xx is not set
189CONFIG_PPC_NATIVE=y
190# CONFIG_UDBG_RTAS_CONSOLE is not set
171CONFIG_IPIC=y 191CONFIG_IPIC=y
172# CONFIG_MPIC is not set 192CONFIG_MPIC=y
173# CONFIG_MPIC_WEIRD is not set 193# CONFIG_MPIC_WEIRD is not set
174# CONFIG_PPC_I8259 is not set 194CONFIG_PPC_I8259=y
175# CONFIG_PPC_RTAS is not set 195CONFIG_PPC_RTAS=y
196# CONFIG_RTAS_ERROR_LOGGING is not set
197CONFIG_RTAS_PROC=y
176# CONFIG_MMIO_NVRAM is not set 198# CONFIG_MMIO_NVRAM is not set
177# CONFIG_PPC_MPC106 is not set 199CONFIG_PPC_MPC106=y
178# CONFIG_PPC_970_NAP is not set 200# CONFIG_PPC_970_NAP is not set
179# CONFIG_PPC_INDIRECT_IO is not set 201# CONFIG_PPC_INDIRECT_IO is not set
180# CONFIG_GENERIC_IOMAP is not set 202# CONFIG_GENERIC_IOMAP is not set
181# CONFIG_CPU_FREQ is not set 203# CONFIG_CPU_FREQ is not set
204# CONFIG_PPC601_SYNC_FIX is not set
205# CONFIG_TAU is not set
182# CONFIG_FSL_ULI1575 is not set 206# CONFIG_FSL_ULI1575 is not set
183 207
184# 208#
@@ -204,6 +228,7 @@ CONFIG_BINFMT_ELF=y
204CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
205CONFIG_ARCH_HAS_WALK_MEMORY=y 229CONFIG_ARCH_HAS_WALK_MEMORY=y
206CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
231# CONFIG_KEXEC is not set
207CONFIG_ARCH_FLATMEM_ENABLE=y 232CONFIG_ARCH_FLATMEM_ENABLE=y
208CONFIG_ARCH_POPULATES_NODE_MAP=y 233CONFIG_ARCH_POPULATES_NODE_MAP=y
209CONFIG_SELECT_MEMORY_MODEL=y 234CONFIG_SELECT_MEMORY_MODEL=y
@@ -216,6 +241,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 241# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_PAGEFLAGS_EXTENDED=y 242CONFIG_PAGEFLAGS_EXTENDED=y
218CONFIG_SPLIT_PTLOCK_CPUS=4 243CONFIG_SPLIT_PTLOCK_CPUS=4
244CONFIG_MIGRATION=y
219# CONFIG_RESOURCES_64BIT is not set 245# CONFIG_RESOURCES_64BIT is not set
220CONFIG_ZONE_DMA_FLAG=1 246CONFIG_ZONE_DMA_FLAG=1
221CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
@@ -223,6 +249,7 @@ CONFIG_VIRT_TO_BUS=y
223CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
224CONFIG_PROC_DEVICETREE=y 250CONFIG_PROC_DEVICETREE=y
225# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
252CONFIG_EXTRA_TARGETS=""
226# CONFIG_PM is not set 253# CONFIG_PM is not set
227CONFIG_SECCOMP=y 254CONFIG_SECCOMP=y
228CONFIG_ISA_DMA_API=y 255CONFIG_ISA_DMA_API=y
@@ -230,15 +257,22 @@ CONFIG_ISA_DMA_API=y
230# 257#
231# Bus options 258# Bus options
232# 259#
260# CONFIG_ISA is not set
233CONFIG_ZONE_DMA=y 261CONFIG_ZONE_DMA=y
234CONFIG_GENERIC_ISA_DMA=y 262CONFIG_GENERIC_ISA_DMA=y
235CONFIG_PPC_INDIRECT_PCI=y 263CONFIG_PPC_INDIRECT_PCI=y
236CONFIG_FSL_SOC=y 264CONFIG_FSL_SOC=y
237# CONFIG_PCI is not set 265CONFIG_FSL_PCI=y
238# CONFIG_PCI_DOMAINS is not set 266CONFIG_PPC_PCI_CHOICE=y
239# CONFIG_PCI_SYSCALL is not set 267CONFIG_PCI=y
240# CONFIG_ARCH_SUPPORTS_MSI is not set 268CONFIG_PCI_DOMAINS=y
269CONFIG_PCI_SYSCALL=y
270# CONFIG_PCIEPORTBUS is not set
271CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set
273CONFIG_PCI_LEGACY=y
241# CONFIG_PCCARD is not set 274# CONFIG_PCCARD is not set
275# CONFIG_HOTPLUG_PCI is not set
242# CONFIG_HAS_RAPIDIO is not set 276# CONFIG_HAS_RAPIDIO is not set
243 277
244# 278#
@@ -254,10 +288,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
254CONFIG_KERNEL_START=0xc0000000 288CONFIG_KERNEL_START=0xc0000000
255CONFIG_PHYSICAL_START=0x00000000 289CONFIG_PHYSICAL_START=0x00000000
256CONFIG_TASK_SIZE=0xc0000000 290CONFIG_TASK_SIZE=0xc0000000
257
258#
259# Networking
260#
261CONFIG_NET=y 291CONFIG_NET=y
262 292
263# 293#
@@ -358,19 +388,30 @@ CONFIG_OF_I2C=y
358# CONFIG_PARPORT is not set 388# CONFIG_PARPORT is not set
359CONFIG_BLK_DEV=y 389CONFIG_BLK_DEV=y
360# CONFIG_BLK_DEV_FD is not set 390# CONFIG_BLK_DEV_FD is not set
391# CONFIG_MAC_FLOPPY is not set
392# CONFIG_BLK_CPQ_DA is not set
393# CONFIG_BLK_CPQ_CISS_DA is not set
394# CONFIG_BLK_DEV_DAC960 is not set
395# CONFIG_BLK_DEV_UMEM is not set
361# CONFIG_BLK_DEV_COW_COMMON is not set 396# CONFIG_BLK_DEV_COW_COMMON is not set
362CONFIG_BLK_DEV_LOOP=y 397CONFIG_BLK_DEV_LOOP=y
363# CONFIG_BLK_DEV_CRYPTOLOOP is not set 398# CONFIG_BLK_DEV_CRYPTOLOOP is not set
364# CONFIG_BLK_DEV_NBD is not set 399# CONFIG_BLK_DEV_NBD is not set
400# CONFIG_BLK_DEV_SX8 is not set
365CONFIG_BLK_DEV_RAM=y 401CONFIG_BLK_DEV_RAM=y
366CONFIG_BLK_DEV_RAM_COUNT=16 402CONFIG_BLK_DEV_RAM_COUNT=16
367CONFIG_BLK_DEV_RAM_SIZE=32768 403CONFIG_BLK_DEV_RAM_SIZE=32768
368# CONFIG_BLK_DEV_XIP is not set 404# CONFIG_BLK_DEV_XIP is not set
369# CONFIG_CDROM_PKTCDVD is not set 405# CONFIG_CDROM_PKTCDVD is not set
370# CONFIG_ATA_OVER_ETH is not set 406# CONFIG_ATA_OVER_ETH is not set
407# CONFIG_BLK_DEV_HD is not set
371CONFIG_MISC_DEVICES=y 408CONFIG_MISC_DEVICES=y
409# CONFIG_PHANTOM is not set
372# CONFIG_EEPROM_93CX6 is not set 410# CONFIG_EEPROM_93CX6 is not set
411# CONFIG_SGI_IOC4 is not set
412# CONFIG_TIFM_CORE is not set
373# CONFIG_ENCLOSURE_SERVICES is not set 413# CONFIG_ENCLOSURE_SERVICES is not set
414# CONFIG_HP_ILO is not set
374CONFIG_HAVE_IDE=y 415CONFIG_HAVE_IDE=y
375# CONFIG_IDE is not set 416# CONFIG_IDE is not set
376 417
@@ -383,15 +424,27 @@ CONFIG_HAVE_IDE=y
383# CONFIG_SCSI_NETLINK is not set 424# CONFIG_SCSI_NETLINK is not set
384# CONFIG_ATA is not set 425# CONFIG_ATA is not set
385# CONFIG_MD is not set 426# CONFIG_MD is not set
427# CONFIG_FUSION is not set
428
429#
430# IEEE 1394 (FireWire) support
431#
432
433#
434# Enable only one of the two stacks, unless you know what you are doing
435#
436# CONFIG_FIREWIRE is not set
437# CONFIG_IEEE1394 is not set
438# CONFIG_I2O is not set
386# CONFIG_MACINTOSH_DRIVERS is not set 439# CONFIG_MACINTOSH_DRIVERS is not set
387CONFIG_NETDEVICES=y 440CONFIG_NETDEVICES=y
388# CONFIG_NETDEVICES_MULTIQUEUE is not set
389# CONFIG_DUMMY is not set 441# CONFIG_DUMMY is not set
390# CONFIG_BONDING is not set 442# CONFIG_BONDING is not set
391# CONFIG_MACVLAN is not set 443# CONFIG_MACVLAN is not set
392# CONFIG_EQUALIZER is not set 444# CONFIG_EQUALIZER is not set
393# CONFIG_TUN is not set 445# CONFIG_TUN is not set
394# CONFIG_VETH is not set 446# CONFIG_VETH is not set
447# CONFIG_ARCNET is not set
395CONFIG_PHYLIB=y 448CONFIG_PHYLIB=y
396 449
397# 450#
@@ -411,16 +464,44 @@ CONFIG_BROADCOM_PHY=y
411# CONFIG_MDIO_BITBANG is not set 464# CONFIG_MDIO_BITBANG is not set
412CONFIG_NET_ETHERNET=y 465CONFIG_NET_ETHERNET=y
413CONFIG_MII=y 466CONFIG_MII=y
467# CONFIG_MACE is not set
468# CONFIG_BMAC is not set
469# CONFIG_HAPPYMEAL is not set
470# CONFIG_SUNGEM is not set
471# CONFIG_CASSINI is not set
472# CONFIG_NET_VENDOR_3COM is not set
473# CONFIG_NET_TULIP is not set
474# CONFIG_HP100 is not set
414# CONFIG_IBM_NEW_EMAC_ZMII is not set 475# CONFIG_IBM_NEW_EMAC_ZMII is not set
415# CONFIG_IBM_NEW_EMAC_RGMII is not set 476# CONFIG_IBM_NEW_EMAC_RGMII is not set
416# CONFIG_IBM_NEW_EMAC_TAH is not set 477# CONFIG_IBM_NEW_EMAC_TAH is not set
417# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 478# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
479# CONFIG_NET_PCI is not set
418# CONFIG_B44 is not set 480# CONFIG_B44 is not set
419CONFIG_NETDEV_1000=y 481CONFIG_NETDEV_1000=y
420# CONFIG_E1000E_ENABLED is not set 482# CONFIG_ACENIC is not set
483# CONFIG_DL2K is not set
484# CONFIG_E1000 is not set
485# CONFIG_E1000E is not set
486# CONFIG_IP1000 is not set
487# CONFIG_IGB is not set
488# CONFIG_NS83820 is not set
489# CONFIG_HAMACHI is not set
490# CONFIG_YELLOWFIN is not set
491# CONFIG_R8169 is not set
492# CONFIG_SIS190 is not set
493# CONFIG_SKGE is not set
494# CONFIG_SKY2 is not set
495# CONFIG_VIA_VELOCITY is not set
496# CONFIG_TIGON3 is not set
497# CONFIG_BNX2 is not set
421CONFIG_GIANFAR=y 498CONFIG_GIANFAR=y
422# CONFIG_GFAR_NAPI is not set 499# CONFIG_MV643XX_ETH is not set
500# CONFIG_QLA3XXX is not set
501# CONFIG_ATL1 is not set
502# CONFIG_ATL1E is not set
423# CONFIG_NETDEV_10000 is not set 503# CONFIG_NETDEV_10000 is not set
504# CONFIG_TR is not set
424 505
425# 506#
426# Wireless LAN 507# Wireless LAN
@@ -429,6 +510,8 @@ CONFIG_GIANFAR=y
429# CONFIG_WLAN_80211 is not set 510# CONFIG_WLAN_80211 is not set
430# CONFIG_IWLWIFI_LEDS is not set 511# CONFIG_IWLWIFI_LEDS is not set
431# CONFIG_WAN is not set 512# CONFIG_WAN is not set
513# CONFIG_FDDI is not set
514# CONFIG_HIPPI is not set
432# CONFIG_PPP is not set 515# CONFIG_PPP is not set
433# CONFIG_SLIP is not set 516# CONFIG_SLIP is not set
434# CONFIG_NETCONSOLE is not set 517# CONFIG_NETCONSOLE is not set
@@ -474,12 +557,14 @@ CONFIG_INPUT=y
474# CONFIG_VT is not set 557# CONFIG_VT is not set
475CONFIG_DEVKMEM=y 558CONFIG_DEVKMEM=y
476# CONFIG_SERIAL_NONSTANDARD is not set 559# CONFIG_SERIAL_NONSTANDARD is not set
560# CONFIG_NOZOMI is not set
477 561
478# 562#
479# Serial drivers 563# Serial drivers
480# 564#
481CONFIG_SERIAL_8250=y 565CONFIG_SERIAL_8250=y
482CONFIG_SERIAL_8250_CONSOLE=y 566CONFIG_SERIAL_8250_CONSOLE=y
567CONFIG_SERIAL_8250_PCI=y
483CONFIG_SERIAL_8250_NR_UARTS=4 568CONFIG_SERIAL_8250_NR_UARTS=4
484CONFIG_SERIAL_8250_RUNTIME_UARTS=4 569CONFIG_SERIAL_8250_RUNTIME_UARTS=4
485# CONFIG_SERIAL_8250_EXTENDED is not set 570# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -490,40 +575,90 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
490# CONFIG_SERIAL_UARTLITE is not set 575# CONFIG_SERIAL_UARTLITE is not set
491CONFIG_SERIAL_CORE=y 576CONFIG_SERIAL_CORE=y
492CONFIG_SERIAL_CORE_CONSOLE=y 577CONFIG_SERIAL_CORE_CONSOLE=y
578# CONFIG_SERIAL_PMACZILOG is not set
579# CONFIG_SERIAL_JSM is not set
493# CONFIG_SERIAL_OF_PLATFORM is not set 580# CONFIG_SERIAL_OF_PLATFORM is not set
494CONFIG_UNIX98_PTYS=y 581CONFIG_UNIX98_PTYS=y
495CONFIG_LEGACY_PTYS=y 582CONFIG_LEGACY_PTYS=y
496CONFIG_LEGACY_PTY_COUNT=256 583CONFIG_LEGACY_PTY_COUNT=256
584# CONFIG_BRIQ_PANEL is not set
585# CONFIG_HVC_RTAS is not set
497# CONFIG_IPMI_HANDLER is not set 586# CONFIG_IPMI_HANDLER is not set
498# CONFIG_HW_RANDOM is not set 587# CONFIG_HW_RANDOM is not set
499# CONFIG_NVRAM is not set 588# CONFIG_NVRAM is not set
500CONFIG_GEN_RTC=y 589CONFIG_GEN_RTC=y
501# CONFIG_GEN_RTC_X is not set 590# CONFIG_GEN_RTC_X is not set
502# CONFIG_R3964 is not set 591# CONFIG_R3964 is not set
592# CONFIG_APPLICOM is not set
503# CONFIG_RAW_DRIVER is not set 593# CONFIG_RAW_DRIVER is not set
504# CONFIG_TCG_TPM is not set 594# CONFIG_TCG_TPM is not set
595CONFIG_DEVPORT=y
505CONFIG_I2C=y 596CONFIG_I2C=y
506CONFIG_I2C_BOARDINFO=y 597CONFIG_I2C_BOARDINFO=y
507CONFIG_I2C_CHARDEV=y 598CONFIG_I2C_CHARDEV=y
599CONFIG_I2C_HELPER_AUTO=y
508 600
509# 601#
510# I2C Hardware Bus support 602# I2C Hardware Bus support
511# 603#
604
605#
606# PC SMBus host controller drivers
607#
608# CONFIG_I2C_ALI1535 is not set
609# CONFIG_I2C_ALI1563 is not set
610# CONFIG_I2C_ALI15X3 is not set
611# CONFIG_I2C_AMD756 is not set
612# CONFIG_I2C_AMD8111 is not set
613# CONFIG_I2C_I801 is not set
614# CONFIG_I2C_ISCH is not set
615# CONFIG_I2C_PIIX4 is not set
616# CONFIG_I2C_NFORCE2 is not set
617# CONFIG_I2C_SIS5595 is not set
618# CONFIG_I2C_SIS630 is not set
619# CONFIG_I2C_SIS96X is not set
620# CONFIG_I2C_VIA is not set
621# CONFIG_I2C_VIAPRO is not set
622
623#
624# Mac SMBus host controller drivers
625#
626# CONFIG_I2C_HYDRA is not set
627CONFIG_I2C_POWERMAC=y
628
629#
630# I2C system bus drivers (mostly embedded / system-on-chip)
631#
512CONFIG_I2C_MPC=y 632CONFIG_I2C_MPC=y
513# CONFIG_I2C_OCORES is not set 633# CONFIG_I2C_OCORES is not set
514# CONFIG_I2C_PARPORT_LIGHT is not set
515# CONFIG_I2C_SIMTEC is not set 634# CONFIG_I2C_SIMTEC is not set
635
636#
637# External I2C/SMBus adapter drivers
638#
639# CONFIG_I2C_PARPORT_LIGHT is not set
516# CONFIG_I2C_TAOS_EVM is not set 640# CONFIG_I2C_TAOS_EVM is not set
517# CONFIG_I2C_STUB is not set 641
642#
643# Graphics adapter I2C/DDC channel drivers
644#
645# CONFIG_I2C_VOODOO3 is not set
646
647#
648# Other I2C/SMBus bus drivers
649#
518# CONFIG_I2C_PCA_PLATFORM is not set 650# CONFIG_I2C_PCA_PLATFORM is not set
651# CONFIG_I2C_STUB is not set
519 652
520# 653#
521# Miscellaneous I2C Chip support 654# Miscellaneous I2C Chip support
522# 655#
523# CONFIG_DS1682 is not set 656# CONFIG_DS1682 is not set
657# CONFIG_AT24 is not set
524# CONFIG_SENSORS_EEPROM is not set 658# CONFIG_SENSORS_EEPROM is not set
525# CONFIG_SENSORS_PCF8574 is not set 659# CONFIG_SENSORS_PCF8574 is not set
526# CONFIG_PCF8575 is not set 660# CONFIG_PCF8575 is not set
661# CONFIG_SENSORS_PCA9539 is not set
527# CONFIG_SENSORS_PCF8591 is not set 662# CONFIG_SENSORS_PCF8591 is not set
528# CONFIG_SENSORS_MAX6875 is not set 663# CONFIG_SENSORS_MAX6875 is not set
529# CONFIG_SENSORS_TSL2550 is not set 664# CONFIG_SENSORS_TSL2550 is not set
@@ -532,10 +667,13 @@ CONFIG_I2C_MPC=y
532# CONFIG_I2C_DEBUG_BUS is not set 667# CONFIG_I2C_DEBUG_BUS is not set
533# CONFIG_I2C_DEBUG_CHIP is not set 668# CONFIG_I2C_DEBUG_CHIP is not set
534# CONFIG_SPI is not set 669# CONFIG_SPI is not set
670CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
671# CONFIG_GPIOLIB is not set
535# CONFIG_W1 is not set 672# CONFIG_W1 is not set
536# CONFIG_POWER_SUPPLY is not set 673# CONFIG_POWER_SUPPLY is not set
537CONFIG_HWMON=y 674CONFIG_HWMON=y
538# CONFIG_HWMON_VID is not set 675# CONFIG_HWMON_VID is not set
676# CONFIG_SENSORS_AD7414 is not set
539# CONFIG_SENSORS_AD7418 is not set 677# CONFIG_SENSORS_AD7418 is not set
540# CONFIG_SENSORS_ADM1021 is not set 678# CONFIG_SENSORS_ADM1021 is not set
541# CONFIG_SENSORS_ADM1025 is not set 679# CONFIG_SENSORS_ADM1025 is not set
@@ -545,8 +683,10 @@ CONFIG_HWMON=y
545# CONFIG_SENSORS_ADM9240 is not set 683# CONFIG_SENSORS_ADM9240 is not set
546# CONFIG_SENSORS_ADT7470 is not set 684# CONFIG_SENSORS_ADT7470 is not set
547# CONFIG_SENSORS_ADT7473 is not set 685# CONFIG_SENSORS_ADT7473 is not set
686# CONFIG_SENSORS_AMS is not set
548# CONFIG_SENSORS_ATXP1 is not set 687# CONFIG_SENSORS_ATXP1 is not set
549# CONFIG_SENSORS_DS1621 is not set 688# CONFIG_SENSORS_DS1621 is not set
689# CONFIG_SENSORS_I5K_AMB is not set
550# CONFIG_SENSORS_F71805F is not set 690# CONFIG_SENSORS_F71805F is not set
551# CONFIG_SENSORS_F71882FG is not set 691# CONFIG_SENSORS_F71882FG is not set
552# CONFIG_SENSORS_F75375S is not set 692# CONFIG_SENSORS_F75375S is not set
@@ -568,13 +708,16 @@ CONFIG_HWMON=y
568# CONFIG_SENSORS_MAX6650 is not set 708# CONFIG_SENSORS_MAX6650 is not set
569# CONFIG_SENSORS_PC87360 is not set 709# CONFIG_SENSORS_PC87360 is not set
570# CONFIG_SENSORS_PC87427 is not set 710# CONFIG_SENSORS_PC87427 is not set
711# CONFIG_SENSORS_SIS5595 is not set
571# CONFIG_SENSORS_DME1737 is not set 712# CONFIG_SENSORS_DME1737 is not set
572# CONFIG_SENSORS_SMSC47M1 is not set 713# CONFIG_SENSORS_SMSC47M1 is not set
573# CONFIG_SENSORS_SMSC47M192 is not set 714# CONFIG_SENSORS_SMSC47M192 is not set
574# CONFIG_SENSORS_SMSC47B397 is not set 715# CONFIG_SENSORS_SMSC47B397 is not set
575# CONFIG_SENSORS_ADS7828 is not set 716# CONFIG_SENSORS_ADS7828 is not set
576# CONFIG_SENSORS_THMC50 is not set 717# CONFIG_SENSORS_THMC50 is not set
718# CONFIG_SENSORS_VIA686A is not set
577# CONFIG_SENSORS_VT1211 is not set 719# CONFIG_SENSORS_VT1211 is not set
720# CONFIG_SENSORS_VT8231 is not set
578# CONFIG_SENSORS_W83781D is not set 721# CONFIG_SENSORS_W83781D is not set
579# CONFIG_SENSORS_W83791D is not set 722# CONFIG_SENSORS_W83791D is not set
580# CONFIG_SENSORS_W83792D is not set 723# CONFIG_SENSORS_W83792D is not set
@@ -585,6 +728,7 @@ CONFIG_HWMON=y
585# CONFIG_SENSORS_W83627EHF is not set 728# CONFIG_SENSORS_W83627EHF is not set
586# CONFIG_HWMON_DEBUG_CHIP is not set 729# CONFIG_HWMON_DEBUG_CHIP is not set
587# CONFIG_THERMAL is not set 730# CONFIG_THERMAL is not set
731# CONFIG_THERMAL_HWMON is not set
588CONFIG_WATCHDOG=y 732CONFIG_WATCHDOG=y
589# CONFIG_WATCHDOG_NOWAYOUT is not set 733# CONFIG_WATCHDOG_NOWAYOUT is not set
590 734
@@ -592,7 +736,15 @@ CONFIG_WATCHDOG=y
592# Watchdog Device Drivers 736# Watchdog Device Drivers
593# 737#
594# CONFIG_SOFT_WATCHDOG is not set 738# CONFIG_SOFT_WATCHDOG is not set
595CONFIG_83xx_WDT=y 739# CONFIG_ALIM7101_WDT is not set
740# CONFIG_8xxx_WDT is not set
741# CONFIG_WATCHDOG_RTAS is not set
742
743#
744# PCI-based Watchdog Cards
745#
746# CONFIG_PCIPCWATCHDOG is not set
747# CONFIG_WDTPCI is not set
596 748
597# 749#
598# Sonics Silicon Backplane 750# Sonics Silicon Backplane
@@ -603,8 +755,10 @@ CONFIG_SSB_POSSIBLE=y
603# 755#
604# Multifunction device drivers 756# Multifunction device drivers
605# 757#
758# CONFIG_MFD_CORE is not set
606# CONFIG_MFD_SM501 is not set 759# CONFIG_MFD_SM501 is not set
607# CONFIG_HTC_PASIC3 is not set 760# CONFIG_HTC_PASIC3 is not set
761# CONFIG_MFD_TMIO is not set
608 762
609# 763#
610# Multimedia devices 764# Multimedia devices
@@ -625,6 +779,8 @@ CONFIG_SSB_POSSIBLE=y
625# 779#
626# Graphics support 780# Graphics support
627# 781#
782# CONFIG_AGP is not set
783# CONFIG_DRM is not set
628# CONFIG_VGASTATE is not set 784# CONFIG_VGASTATE is not set
629# CONFIG_VIDEO_OUTPUT_CONTROL is not set 785# CONFIG_VIDEO_OUTPUT_CONTROL is not set
630# CONFIG_FB is not set 786# CONFIG_FB is not set
@@ -634,10 +790,6 @@ CONFIG_SSB_POSSIBLE=y
634# Display device support 790# Display device support
635# 791#
636# CONFIG_DISPLAY_SUPPORT is not set 792# CONFIG_DISPLAY_SUPPORT is not set
637
638#
639# Sound
640#
641# CONFIG_SOUND is not set 793# CONFIG_SOUND is not set
642CONFIG_HID_SUPPORT=y 794CONFIG_HID_SUPPORT=y
643CONFIG_HID=y 795CONFIG_HID=y
@@ -648,6 +800,7 @@ CONFIG_HID=y
648# CONFIG_MEMSTICK is not set 800# CONFIG_MEMSTICK is not set
649# CONFIG_NEW_LEDS is not set 801# CONFIG_NEW_LEDS is not set
650# CONFIG_ACCESSIBILITY is not set 802# CONFIG_ACCESSIBILITY is not set
803# CONFIG_INFINIBAND is not set
651# CONFIG_EDAC is not set 804# CONFIG_EDAC is not set
652# CONFIG_RTC_CLASS is not set 805# CONFIG_RTC_CLASS is not set
653# CONFIG_DMADEVICES is not set 806# CONFIG_DMADEVICES is not set
@@ -710,6 +863,7 @@ CONFIG_TMPFS=y
710# CONFIG_CRAMFS is not set 863# CONFIG_CRAMFS is not set
711# CONFIG_VXFS_FS is not set 864# CONFIG_VXFS_FS is not set
712# CONFIG_MINIX_FS is not set 865# CONFIG_MINIX_FS is not set
866# CONFIG_OMFS_FS is not set
713# CONFIG_HPFS_FS is not set 867# CONFIG_HPFS_FS is not set
714# CONFIG_QNX4FS_FS is not set 868# CONFIG_QNX4FS_FS is not set
715# CONFIG_ROMFS_FS is not set 869# CONFIG_ROMFS_FS is not set
@@ -720,14 +874,13 @@ CONFIG_NFS_FS=y
720CONFIG_NFS_V3=y 874CONFIG_NFS_V3=y
721# CONFIG_NFS_V3_ACL is not set 875# CONFIG_NFS_V3_ACL is not set
722CONFIG_NFS_V4=y 876CONFIG_NFS_V4=y
723# CONFIG_NFSD is not set
724CONFIG_ROOT_NFS=y 877CONFIG_ROOT_NFS=y
878# CONFIG_NFSD is not set
725CONFIG_LOCKD=y 879CONFIG_LOCKD=y
726CONFIG_LOCKD_V4=y 880CONFIG_LOCKD_V4=y
727CONFIG_NFS_COMMON=y 881CONFIG_NFS_COMMON=y
728CONFIG_SUNRPC=y 882CONFIG_SUNRPC=y
729CONFIG_SUNRPC_GSS=y 883CONFIG_SUNRPC_GSS=y
730# CONFIG_SUNRPC_BIND34 is not set
731CONFIG_RPCSEC_GSS_KRB5=y 884CONFIG_RPCSEC_GSS_KRB5=y
732# CONFIG_RPCSEC_GSS_SPKM3 is not set 885# CONFIG_RPCSEC_GSS_SPKM3 is not set
733# CONFIG_SMB_FS is not set 886# CONFIG_SMB_FS is not set
@@ -740,6 +893,7 @@ CONFIG_RPCSEC_GSS_KRB5=y
740# Partition Types 893# Partition Types
741# 894#
742# CONFIG_PARTITION_ADVANCED is not set 895# CONFIG_PARTITION_ADVANCED is not set
896CONFIG_MAC_PARTITION=y
743CONFIG_MSDOS_PARTITION=y 897CONFIG_MSDOS_PARTITION=y
744# CONFIG_NLS is not set 898# CONFIG_NLS is not set
745# CONFIG_DLM is not set 899# CONFIG_DLM is not set
@@ -751,6 +905,7 @@ CONFIG_BITREVERSE=y
751# CONFIG_GENERIC_FIND_FIRST_BIT is not set 905# CONFIG_GENERIC_FIND_FIRST_BIT is not set
752# CONFIG_CRC_CCITT is not set 906# CONFIG_CRC_CCITT is not set
753# CONFIG_CRC16 is not set 907# CONFIG_CRC16 is not set
908# CONFIG_CRC_T10DIF is not set
754# CONFIG_CRC_ITU_T is not set 909# CONFIG_CRC_ITU_T is not set
755CONFIG_CRC32=y 910CONFIG_CRC32=y
756# CONFIG_CRC7 is not set 911# CONFIG_CRC7 is not set
@@ -774,8 +929,18 @@ CONFIG_FRAME_WARN=1024
774# CONFIG_HEADERS_CHECK is not set 929# CONFIG_HEADERS_CHECK is not set
775# CONFIG_DEBUG_KERNEL is not set 930# CONFIG_DEBUG_KERNEL is not set
776# CONFIG_DEBUG_BUGVERBOSE is not set 931# CONFIG_DEBUG_BUGVERBOSE is not set
932# CONFIG_DEBUG_MEMORY_INIT is not set
933# CONFIG_LATENCYTOP is not set
934CONFIG_SYSCTL_SYSCALL_CHECK=y
935CONFIG_HAVE_FTRACE=y
936CONFIG_HAVE_DYNAMIC_FTRACE=y
937# CONFIG_FTRACE is not set
938# CONFIG_SCHED_TRACER is not set
939# CONFIG_CONTEXT_SWITCH_TRACER is not set
777# CONFIG_SAMPLES is not set 940# CONFIG_SAMPLES is not set
941CONFIG_HAVE_ARCH_KGDB=y
778# CONFIG_IRQSTACKS is not set 942# CONFIG_IRQSTACKS is not set
943# CONFIG_BOOTX_TEXT is not set
779# CONFIG_PPC_EARLY_DEBUG is not set 944# CONFIG_PPC_EARLY_DEBUG is not set
780 945
781# 946#
@@ -829,6 +994,10 @@ CONFIG_CRYPTO_PCBC=m
829# CONFIG_CRYPTO_MD4 is not set 994# CONFIG_CRYPTO_MD4 is not set
830CONFIG_CRYPTO_MD5=y 995CONFIG_CRYPTO_MD5=y
831# CONFIG_CRYPTO_MICHAEL_MIC is not set 996# CONFIG_CRYPTO_MICHAEL_MIC is not set
997# CONFIG_CRYPTO_RMD128 is not set
998# CONFIG_CRYPTO_RMD160 is not set
999# CONFIG_CRYPTO_RMD256 is not set
1000# CONFIG_CRYPTO_RMD320 is not set
832# CONFIG_CRYPTO_SHA1 is not set 1001# CONFIG_CRYPTO_SHA1 is not set
833# CONFIG_CRYPTO_SHA256 is not set 1002# CONFIG_CRYPTO_SHA256 is not set
834# CONFIG_CRYPTO_SHA512 is not set 1003# CONFIG_CRYPTO_SHA512 is not set
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig
index b82bb042308..8bb89f26a20 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:30 2008 4# Thu Aug 21 00:52:28 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -85,7 +88,6 @@ CONFIG_INITRAMFS_SOURCE=""
85CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
86CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
87CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
88CONFIG_SYSCTL_SYSCALL_CHECK=y
89CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_ALL is not set 92# CONFIG_KALLSYMS_ALL is not set
91# CONFIG_KALLSYMS_EXTRA_PASS is not set 93# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -110,10 +112,16 @@ CONFIG_SLUB=y
110# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set 113# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y
115# CONFIG_HAVE_DMA_ATTRS is not set 120# CONFIG_HAVE_DMA_ATTRS is not set
121# CONFIG_USE_GENERIC_SMP_HELPERS is not set
122CONFIG_HAVE_CLK=y
116CONFIG_PROC_PAGE_MONITOR=y 123CONFIG_PROC_PAGE_MONITOR=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
117CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
119# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
@@ -124,6 +132,7 @@ CONFIG_BLOCK=y
124# CONFIG_BLK_DEV_IO_TRACE is not set 132# CONFIG_BLK_DEV_IO_TRACE is not set
125# CONFIG_LSF is not set 133# CONFIG_LSF is not set
126# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set
127 136
128# 137#
129# IO Schedulers 138# IO Schedulers
@@ -142,8 +151,6 @@ CONFIG_CLASSIC_RCU=y
142# 151#
143# Platform support 152# Platform support
144# 153#
145# CONFIG_PPC_MPC512x is not set
146# CONFIG_PPC_MPC5121 is not set
147# CONFIG_PPC_CELL is not set 154# CONFIG_PPC_CELL is not set
148# CONFIG_PPC_CELL_NATIVE is not set 155# CONFIG_PPC_CELL_NATIVE is not set
149# CONFIG_PQ2ADS is not set 156# CONFIG_PQ2ADS is not set
@@ -152,11 +159,13 @@ CONFIG_MPC85xx=y
152# CONFIG_MPC8560_ADS is not set 159# CONFIG_MPC8560_ADS is not set
153# CONFIG_MPC85xx_CDS is not set 160# CONFIG_MPC85xx_CDS is not set
154# CONFIG_MPC85xx_MDS is not set 161# CONFIG_MPC85xx_MDS is not set
162# CONFIG_MPC8536_DS is not set
155# CONFIG_MPC85xx_DS is not set 163# CONFIG_MPC85xx_DS is not set
156CONFIG_KSI8560=y 164CONFIG_KSI8560=y
157# CONFIG_STX_GP3 is not set 165# CONFIG_STX_GP3 is not set
158# CONFIG_TQM8540 is not set 166# CONFIG_TQM8540 is not set
159# CONFIG_TQM8541 is not set 167# CONFIG_TQM8541 is not set
168# CONFIG_TQM8548 is not set
160# CONFIG_TQM8555 is not set 169# CONFIG_TQM8555 is not set
161# CONFIG_TQM8560 is not set 170# CONFIG_TQM8560 is not set
162# CONFIG_SBC8548 is not set 171# CONFIG_SBC8548 is not set
@@ -173,7 +182,6 @@ CONFIG_MPIC=y
173# CONFIG_GENERIC_IOMAP is not set 182# CONFIG_GENERIC_IOMAP is not set
174# CONFIG_CPU_FREQ is not set 183# CONFIG_CPU_FREQ is not set
175CONFIG_CPM2=y 184CONFIG_CPM2=y
176CONFIG_PPC_CPM_NEW_BINDING=y
177# CONFIG_FSL_ULI1575 is not set 185# CONFIG_FSL_ULI1575 is not set
178CONFIG_CPM=y 186CONFIG_CPM=y
179 187
@@ -213,6 +221,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
213# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
214CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
215CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
216# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
217CONFIG_ZONE_DMA_FLAG=1 226CONFIG_ZONE_DMA_FLAG=1
218CONFIG_BOUNCE=y 227CONFIG_BOUNCE=y
@@ -220,6 +229,7 @@ CONFIG_VIRT_TO_BUS=y
220CONFIG_FORCE_MAX_ZONEORDER=11 229CONFIG_FORCE_MAX_ZONEORDER=11
221# CONFIG_PROC_DEVICETREE is not set 230# CONFIG_PROC_DEVICETREE is not set
222# CONFIG_CMDLINE_BOOL is not set 231# CONFIG_CMDLINE_BOOL is not set
232CONFIG_EXTRA_TARGETS=""
223# CONFIG_PM is not set 233# CONFIG_PM is not set
224# CONFIG_SECCOMP is not set 234# CONFIG_SECCOMP is not set
225CONFIG_ISA_DMA_API=y 235CONFIG_ISA_DMA_API=y
@@ -229,6 +239,7 @@ CONFIG_ISA_DMA_API=y
229# 239#
230CONFIG_ZONE_DMA=y 240CONFIG_ZONE_DMA=y
231CONFIG_FSL_SOC=y 241CONFIG_FSL_SOC=y
242CONFIG_PPC_PCI_CHOICE=y
232# CONFIG_PCI is not set 243# CONFIG_PCI is not set
233# CONFIG_PCI_DOMAINS is not set 244# CONFIG_PCI_DOMAINS is not set
234# CONFIG_PCI_SYSCALL is not set 245# CONFIG_PCI_SYSCALL is not set
@@ -250,10 +261,6 @@ CONFIG_KERNEL_START=0xc0000000
250CONFIG_PHYSICAL_START=0x00000000 261CONFIG_PHYSICAL_START=0x00000000
251CONFIG_PHYSICAL_ALIGN=0x10000000 262CONFIG_PHYSICAL_ALIGN=0x10000000
252CONFIG_TASK_SIZE=0xc0000000 263CONFIG_TASK_SIZE=0xc0000000
253
254#
255# Networking
256#
257CONFIG_NET=y 264CONFIG_NET=y
258 265
259# 266#
@@ -427,6 +434,7 @@ CONFIG_MTD_PHYSMAP_OF=y
427# 434#
428# CONFIG_MTD_UBI is not set 435# CONFIG_MTD_UBI is not set
429CONFIG_OF_DEVICE=y 436CONFIG_OF_DEVICE=y
437CONFIG_OF_GPIO=y
430# CONFIG_PARPORT is not set 438# CONFIG_PARPORT is not set
431CONFIG_BLK_DEV=y 439CONFIG_BLK_DEV=y
432# CONFIG_BLK_DEV_FD is not set 440# CONFIG_BLK_DEV_FD is not set
@@ -440,12 +448,12 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
440# CONFIG_BLK_DEV_XIP is not set 448# CONFIG_BLK_DEV_XIP is not set
441# CONFIG_CDROM_PKTCDVD is not set 449# CONFIG_CDROM_PKTCDVD is not set
442# CONFIG_ATA_OVER_ETH is not set 450# CONFIG_ATA_OVER_ETH is not set
451# CONFIG_BLK_DEV_HD is not set
443CONFIG_MISC_DEVICES=y 452CONFIG_MISC_DEVICES=y
444# CONFIG_EEPROM_93CX6 is not set 453# CONFIG_EEPROM_93CX6 is not set
445# CONFIG_ENCLOSURE_SERVICES is not set 454# CONFIG_ENCLOSURE_SERVICES is not set
446CONFIG_HAVE_IDE=y 455CONFIG_HAVE_IDE=y
447CONFIG_IDE=y 456CONFIG_IDE=y
448CONFIG_IDE_MAX_HWIFS=4
449CONFIG_BLK_DEV_IDE=y 457CONFIG_BLK_DEV_IDE=y
450 458
451# 459#
@@ -463,11 +471,8 @@ CONFIG_IDE_PROC_FS=y
463# 471#
464# IDE chipset support/bugfixes 472# IDE chipset support/bugfixes
465# 473#
466CONFIG_IDE_GENERIC=y
467# CONFIG_BLK_DEV_PLATFORM is not set 474# CONFIG_BLK_DEV_PLATFORM is not set
468# CONFIG_BLK_DEV_IDEDMA is not set 475# CONFIG_BLK_DEV_IDEDMA is not set
469# CONFIG_BLK_DEV_HD_ONLY is not set
470# CONFIG_BLK_DEV_HD is not set
471 476
472# 477#
473# SCSI device support 478# SCSI device support
@@ -480,7 +485,6 @@ CONFIG_IDE_GENERIC=y
480# CONFIG_MD is not set 485# CONFIG_MD is not set
481# CONFIG_MACINTOSH_DRIVERS is not set 486# CONFIG_MACINTOSH_DRIVERS is not set
482CONFIG_NETDEVICES=y 487CONFIG_NETDEVICES=y
483# CONFIG_NETDEVICES_MULTIQUEUE is not set
484# CONFIG_DUMMY is not set 488# CONFIG_DUMMY is not set
485# CONFIG_BONDING is not set 489# CONFIG_BONDING is not set
486# CONFIG_MACVLAN is not set 490# CONFIG_MACVLAN is not set
@@ -504,6 +508,7 @@ CONFIG_MARVELL_PHY=y
504# CONFIG_REALTEK_PHY is not set 508# CONFIG_REALTEK_PHY is not set
505# CONFIG_FIXED_PHY is not set 509# CONFIG_FIXED_PHY is not set
506CONFIG_MDIO_BITBANG=y 510CONFIG_MDIO_BITBANG=y
511# CONFIG_MDIO_OF_GPIO is not set
507CONFIG_NET_ETHERNET=y 512CONFIG_NET_ETHERNET=y
508CONFIG_MII=y 513CONFIG_MII=y
509# CONFIG_IBM_NEW_EMAC_ZMII is not set 514# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -516,9 +521,7 @@ CONFIG_FS_ENET=y
516CONFIG_FS_ENET_HAS_FCC=y 521CONFIG_FS_ENET_HAS_FCC=y
517CONFIG_FS_ENET_MDIO_FCC=y 522CONFIG_FS_ENET_MDIO_FCC=y
518CONFIG_NETDEV_1000=y 523CONFIG_NETDEV_1000=y
519# CONFIG_E1000E_ENABLED is not set
520CONFIG_GIANFAR=y 524CONFIG_GIANFAR=y
521CONFIG_GFAR_NAPI=y
522CONFIG_NETDEV_10000=y 525CONFIG_NETDEV_10000=y
523 526
524# 527#
@@ -606,6 +609,23 @@ CONFIG_GEN_RTC=y
606# CONFIG_TCG_TPM is not set 609# CONFIG_TCG_TPM is not set
607# CONFIG_I2C is not set 610# CONFIG_I2C is not set
608# CONFIG_SPI is not set 611# CONFIG_SPI is not set
612CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
613CONFIG_ARCH_REQUIRE_GPIOLIB=y
614CONFIG_GPIOLIB=y
615# CONFIG_DEBUG_GPIO is not set
616# CONFIG_GPIO_SYSFS is not set
617
618#
619# I2C GPIO expanders:
620#
621
622#
623# PCI GPIO expanders:
624#
625
626#
627# SPI GPIO expanders:
628#
609# CONFIG_W1 is not set 629# CONFIG_W1 is not set
610# CONFIG_POWER_SUPPLY is not set 630# CONFIG_POWER_SUPPLY is not set
611CONFIG_HWMON=y 631CONFIG_HWMON=y
@@ -622,6 +642,7 @@ CONFIG_HWMON=y
622# CONFIG_SENSORS_W83627EHF is not set 642# CONFIG_SENSORS_W83627EHF is not set
623# CONFIG_HWMON_DEBUG_CHIP is not set 643# CONFIG_HWMON_DEBUG_CHIP is not set
624# CONFIG_THERMAL is not set 644# CONFIG_THERMAL is not set
645# CONFIG_THERMAL_HWMON is not set
625# CONFIG_WATCHDOG is not set 646# CONFIG_WATCHDOG is not set
626 647
627# 648#
@@ -633,8 +654,10 @@ CONFIG_SSB_POSSIBLE=y
633# 654#
634# Multifunction device drivers 655# Multifunction device drivers
635# 656#
657# CONFIG_MFD_CORE is not set
636# CONFIG_MFD_SM501 is not set 658# CONFIG_MFD_SM501 is not set
637# CONFIG_HTC_PASIC3 is not set 659# CONFIG_HTC_PASIC3 is not set
660# CONFIG_MFD_TMIO is not set
638 661
639# 662#
640# Multimedia devices 663# Multimedia devices
@@ -664,10 +687,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
664# Display device support 687# Display device support
665# 688#
666# CONFIG_DISPLAY_SUPPORT is not set 689# CONFIG_DISPLAY_SUPPORT is not set
667
668#
669# Sound
670#
671# CONFIG_SOUND is not set 690# CONFIG_SOUND is not set
672CONFIG_HID_SUPPORT=y 691CONFIG_HID_SUPPORT=y
673CONFIG_HID=y 692CONFIG_HID=y
@@ -681,6 +700,10 @@ CONFIG_USB_SUPPORT=y
681# CONFIG_USB_OTG_BLACKLIST_HUB is not set 700# CONFIG_USB_OTG_BLACKLIST_HUB is not set
682 701
683# 702#
703# Enable Host or Gadget support to see Inventra options
704#
705
706#
684# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 707# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
685# 708#
686# CONFIG_USB_GADGET is not set 709# CONFIG_USB_GADGET is not set
@@ -759,6 +782,7 @@ CONFIG_TMPFS=y
759# CONFIG_CRAMFS is not set 782# CONFIG_CRAMFS is not set
760# CONFIG_VXFS_FS is not set 783# CONFIG_VXFS_FS is not set
761# CONFIG_MINIX_FS is not set 784# CONFIG_MINIX_FS is not set
785# CONFIG_OMFS_FS is not set
762# CONFIG_HPFS_FS is not set 786# CONFIG_HPFS_FS is not set
763# CONFIG_QNX4FS_FS is not set 787# CONFIG_QNX4FS_FS is not set
764# CONFIG_ROMFS_FS is not set 788# CONFIG_ROMFS_FS is not set
@@ -768,12 +792,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
768CONFIG_NFS_FS=y 792CONFIG_NFS_FS=y
769# CONFIG_NFS_V3 is not set 793# CONFIG_NFS_V3 is not set
770# CONFIG_NFS_V4 is not set 794# CONFIG_NFS_V4 is not set
771# CONFIG_NFSD is not set
772CONFIG_ROOT_NFS=y 795CONFIG_ROOT_NFS=y
796# CONFIG_NFSD is not set
773CONFIG_LOCKD=y 797CONFIG_LOCKD=y
774CONFIG_NFS_COMMON=y 798CONFIG_NFS_COMMON=y
775CONFIG_SUNRPC=y 799CONFIG_SUNRPC=y
776# CONFIG_SUNRPC_BIND34 is not set
777# CONFIG_RPCSEC_GSS_KRB5 is not set 800# CONFIG_RPCSEC_GSS_KRB5 is not set
778# CONFIG_RPCSEC_GSS_SPKM3 is not set 801# CONFIG_RPCSEC_GSS_SPKM3 is not set
779# CONFIG_SMB_FS is not set 802# CONFIG_SMB_FS is not set
@@ -809,6 +832,7 @@ CONFIG_BITREVERSE=y
809# CONFIG_GENERIC_FIND_FIRST_BIT is not set 832# CONFIG_GENERIC_FIND_FIRST_BIT is not set
810# CONFIG_CRC_CCITT is not set 833# CONFIG_CRC_CCITT is not set
811# CONFIG_CRC16 is not set 834# CONFIG_CRC16 is not set
835# CONFIG_CRC_T10DIF is not set
812# CONFIG_CRC_ITU_T is not set 836# CONFIG_CRC_ITU_T is not set
813CONFIG_CRC32=y 837CONFIG_CRC32=y
814# CONFIG_CRC7 is not set 838# CONFIG_CRC7 is not set
@@ -833,6 +857,8 @@ CONFIG_DEBUG_FS=y
833CONFIG_DEBUG_KERNEL=y 857CONFIG_DEBUG_KERNEL=y
834# CONFIG_DEBUG_SHIRQ is not set 858# CONFIG_DEBUG_SHIRQ is not set
835CONFIG_DETECT_SOFTLOCKUP=y 859CONFIG_DETECT_SOFTLOCKUP=y
860# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
861CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
836CONFIG_SCHED_DEBUG=y 862CONFIG_SCHED_DEBUG=y
837# CONFIG_SCHEDSTATS is not set 863# CONFIG_SCHEDSTATS is not set
838# CONFIG_TIMER_STATS is not set 864# CONFIG_TIMER_STATS is not set
@@ -851,17 +877,29 @@ CONFIG_DEBUG_MUTEXES=y
851# CONFIG_DEBUG_INFO is not set 877# CONFIG_DEBUG_INFO is not set
852# CONFIG_DEBUG_VM is not set 878# CONFIG_DEBUG_VM is not set
853# CONFIG_DEBUG_WRITECOUNT is not set 879# CONFIG_DEBUG_WRITECOUNT is not set
880# CONFIG_DEBUG_MEMORY_INIT is not set
854# CONFIG_DEBUG_LIST is not set 881# CONFIG_DEBUG_LIST is not set
855# CONFIG_DEBUG_SG is not set 882# CONFIG_DEBUG_SG is not set
856# CONFIG_BOOT_PRINTK_DELAY is not set 883# CONFIG_BOOT_PRINTK_DELAY is not set
884# CONFIG_RCU_TORTURE_TEST is not set
857# CONFIG_BACKTRACE_SELF_TEST is not set 885# CONFIG_BACKTRACE_SELF_TEST is not set
858# CONFIG_FAULT_INJECTION is not set 886# CONFIG_FAULT_INJECTION is not set
887# CONFIG_LATENCYTOP is not set
888CONFIG_SYSCTL_SYSCALL_CHECK=y
889CONFIG_HAVE_FTRACE=y
890CONFIG_HAVE_DYNAMIC_FTRACE=y
891# CONFIG_FTRACE is not set
892# CONFIG_SCHED_TRACER is not set
893# CONFIG_CONTEXT_SWITCH_TRACER is not set
859# CONFIG_SAMPLES is not set 894# CONFIG_SAMPLES is not set
895CONFIG_HAVE_ARCH_KGDB=y
896# CONFIG_KGDB is not set
860# CONFIG_DEBUG_STACKOVERFLOW is not set 897# CONFIG_DEBUG_STACKOVERFLOW is not set
861# CONFIG_DEBUG_STACK_USAGE is not set 898# CONFIG_DEBUG_STACK_USAGE is not set
862# CONFIG_DEBUG_PAGEALLOC is not set 899# CONFIG_DEBUG_PAGEALLOC is not set
863# CONFIG_DEBUGGER is not set 900# CONFIG_CODE_PATCHING_SELFTEST is not set
864# CONFIG_KGDB_CONSOLE is not set 901# CONFIG_FTR_FIXUP_SELFTEST is not set
902# CONFIG_XMON is not set
865# CONFIG_IRQSTACKS is not set 903# CONFIG_IRQSTACKS is not set
866# CONFIG_VIRQ_DEBUG is not set 904# CONFIG_VIRQ_DEBUG is not set
867# CONFIG_BDI_SWITCH is not set 905# CONFIG_BDI_SWITCH is not set
@@ -915,6 +953,10 @@ CONFIG_CRYPTO=y
915# CONFIG_CRYPTO_MD4 is not set 953# CONFIG_CRYPTO_MD4 is not set
916# CONFIG_CRYPTO_MD5 is not set 954# CONFIG_CRYPTO_MD5 is not set
917# CONFIG_CRYPTO_MICHAEL_MIC is not set 955# CONFIG_CRYPTO_MICHAEL_MIC is not set
956# CONFIG_CRYPTO_RMD128 is not set
957# CONFIG_CRYPTO_RMD160 is not set
958# CONFIG_CRYPTO_RMD256 is not set
959# CONFIG_CRYPTO_RMD320 is not set
918# CONFIG_CRYPTO_SHA1 is not set 960# CONFIG_CRYPTO_SHA1 is not set
919# CONFIG_CRYPTO_SHA256 is not set 961# CONFIG_CRYPTO_SHA256 is not set
920# CONFIG_CRYPTO_SHA512 is not set 962# CONFIG_CRYPTO_SHA512 is not set
@@ -946,6 +988,7 @@ CONFIG_CRYPTO=y
946# CONFIG_CRYPTO_DEFLATE is not set 988# CONFIG_CRYPTO_DEFLATE is not set
947# CONFIG_CRYPTO_LZO is not set 989# CONFIG_CRYPTO_LZO is not set
948CONFIG_CRYPTO_HW=y 990CONFIG_CRYPTO_HW=y
949# CONFIG_PPC_CLOCK is not set 991# CONFIG_CRYPTO_DEV_TALITOS is not set
992CONFIG_PPC_CLOCK=y
950CONFIG_PPC_LIB_RHEAP=y 993CONFIG_PPC_LIB_RHEAP=y
951# CONFIG_VIRTUALIZATION is not set 994# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc8536_ds_defconfig b/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
index f1e2931de5d..6b516bea6e7 100644
--- a/arch/powerpc/configs/mpc8536_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc8 3# Linux kernel version: 2.6.27-rc4
4# Wed Jul 2 01:34:26 2008 4# Thu Aug 21 07:18:18 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -34,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
35CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
36CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -93,7 +94,6 @@ CONFIG_INITRAMFS_SOURCE=""
93CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
94CONFIG_EMBEDDED=y 95CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
96CONFIG_SYSCTL_SYSCALL_CHECK=y
97CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 98CONFIG_KALLSYMS_ALL=y
99CONFIG_KALLSYMS_EXTRA_PASS=y 99CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -119,10 +119,16 @@ CONFIG_SLUB=y
119# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set 127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
125CONFIG_PROC_PAGE_MONITOR=y 130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set 134# CONFIG_TINY_SHMEM is not set
@@ -139,6 +145,7 @@ CONFIG_LBD=y
139# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set 146# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set
142 149
143# 150#
144# IO Schedulers 151# IO Schedulers
@@ -157,8 +164,6 @@ CONFIG_CLASSIC_RCU=y
157# 164#
158# Platform support 165# Platform support
159# 166#
160# CONFIG_PPC_MPC512x is not set
161# CONFIG_PPC_MPC5121 is not set
162# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
163# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
164# CONFIG_PQ2ADS is not set 169# CONFIG_PQ2ADS is not set
@@ -205,7 +210,7 @@ CONFIG_HZ_250=y
205# CONFIG_HZ_300 is not set 210# CONFIG_HZ_300 is not set
206# CONFIG_HZ_1000 is not set 211# CONFIG_HZ_1000 is not set
207CONFIG_HZ=250 212CONFIG_HZ=250
208# CONFIG_SCHED_HRTICK is not set 213CONFIG_SCHED_HRTICK=y
209CONFIG_PREEMPT_NONE=y 214CONFIG_PREEMPT_NONE=y
210# CONFIG_PREEMPT_VOLUNTARY is not set 215# CONFIG_PREEMPT_VOLUNTARY is not set
211# CONFIG_PREEMPT is not set 216# CONFIG_PREEMPT is not set
@@ -228,6 +233,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
228# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 233# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
229CONFIG_PAGEFLAGS_EXTENDED=y 234CONFIG_PAGEFLAGS_EXTENDED=y
230CONFIG_SPLIT_PTLOCK_CPUS=4 235CONFIG_SPLIT_PTLOCK_CPUS=4
236CONFIG_MIGRATION=y
231# CONFIG_RESOURCES_64BIT is not set 237# CONFIG_RESOURCES_64BIT is not set
232CONFIG_ZONE_DMA_FLAG=1 238CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
@@ -235,6 +241,7 @@ CONFIG_VIRT_TO_BUS=y
235CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
236CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
237# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
244CONFIG_EXTRA_TARGETS=""
238# CONFIG_PM is not set 245# CONFIG_PM is not set
239CONFIG_SECCOMP=y 246CONFIG_SECCOMP=y
240CONFIG_ISA_DMA_API=y 247CONFIG_ISA_DMA_API=y
@@ -246,6 +253,7 @@ CONFIG_ZONE_DMA=y
246CONFIG_PPC_INDIRECT_PCI=y 253CONFIG_PPC_INDIRECT_PCI=y
247CONFIG_FSL_SOC=y 254CONFIG_FSL_SOC=y
248CONFIG_FSL_PCI=y 255CONFIG_FSL_PCI=y
256CONFIG_PPC_PCI_CHOICE=y
249CONFIG_PCI=y 257CONFIG_PCI=y
250CONFIG_PCI_DOMAINS=y 258CONFIG_PCI_DOMAINS=y
251CONFIG_PCI_SYSCALL=y 259CONFIG_PCI_SYSCALL=y
@@ -272,10 +280,6 @@ CONFIG_KERNEL_START=0xc0000000
272CONFIG_PHYSICAL_START=0x00000000 280CONFIG_PHYSICAL_START=0x00000000
273CONFIG_PHYSICAL_ALIGN=0x10000000 281CONFIG_PHYSICAL_ALIGN=0x10000000
274CONFIG_TASK_SIZE=0xc0000000 282CONFIG_TASK_SIZE=0xc0000000
275
276#
277# Networking
278#
279CONFIG_NET=y 283CONFIG_NET=y
280 284
281# 285#
@@ -401,6 +405,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
401CONFIG_STANDALONE=y 405CONFIG_STANDALONE=y
402CONFIG_PREVENT_FIRMWARE_BUILD=y 406CONFIG_PREVENT_FIRMWARE_BUILD=y
403CONFIG_FW_LOADER=y 407CONFIG_FW_LOADER=y
408CONFIG_FIRMWARE_IN_KERNEL=y
409CONFIG_EXTRA_FIRMWARE=""
404# CONFIG_DEBUG_DRIVER is not set 410# CONFIG_DEBUG_DRIVER is not set
405# CONFIG_DEBUG_DEVRES is not set 411# CONFIG_DEBUG_DEVRES is not set
406# CONFIG_SYS_HYPERVISOR is not set 412# CONFIG_SYS_HYPERVISOR is not set
@@ -427,12 +433,14 @@ CONFIG_BLK_DEV_RAM_SIZE=524288
427# CONFIG_BLK_DEV_XIP is not set 433# CONFIG_BLK_DEV_XIP is not set
428# CONFIG_CDROM_PKTCDVD is not set 434# CONFIG_CDROM_PKTCDVD is not set
429# CONFIG_ATA_OVER_ETH is not set 435# CONFIG_ATA_OVER_ETH is not set
436# CONFIG_BLK_DEV_HD is not set
430CONFIG_MISC_DEVICES=y 437CONFIG_MISC_DEVICES=y
431# CONFIG_PHANTOM is not set 438# CONFIG_PHANTOM is not set
432# CONFIG_EEPROM_93CX6 is not set 439# CONFIG_EEPROM_93CX6 is not set
433# CONFIG_SGI_IOC4 is not set 440# CONFIG_SGI_IOC4 is not set
434# CONFIG_TIFM_CORE is not set 441# CONFIG_TIFM_CORE is not set
435# CONFIG_ENCLOSURE_SERVICES is not set 442# CONFIG_ENCLOSURE_SERVICES is not set
443# CONFIG_HP_ILO is not set
436CONFIG_HAVE_IDE=y 444CONFIG_HAVE_IDE=y
437# CONFIG_IDE is not set 445# CONFIG_IDE is not set
438 446
@@ -512,6 +520,7 @@ CONFIG_SCSI_LOWLEVEL=y
512# CONFIG_SCSI_NSP32 is not set 520# CONFIG_SCSI_NSP32 is not set
513# CONFIG_SCSI_DEBUG is not set 521# CONFIG_SCSI_DEBUG is not set
514# CONFIG_SCSI_SRP is not set 522# CONFIG_SCSI_SRP is not set
523# CONFIG_SCSI_DH is not set
515CONFIG_ATA=y 524CONFIG_ATA=y
516# CONFIG_ATA_NONSTANDARD is not set 525# CONFIG_ATA_NONSTANDARD is not set
517CONFIG_SATA_PMP=y 526CONFIG_SATA_PMP=y
@@ -588,7 +597,6 @@ CONFIG_SATA_SIL=y
588# CONFIG_I2O is not set 597# CONFIG_I2O is not set
589# CONFIG_MACINTOSH_DRIVERS is not set 598# CONFIG_MACINTOSH_DRIVERS is not set
590CONFIG_NETDEVICES=y 599CONFIG_NETDEVICES=y
591# CONFIG_NETDEVICES_MULTIQUEUE is not set
592CONFIG_DUMMY=y 600CONFIG_DUMMY=y
593# CONFIG_BONDING is not set 601# CONFIG_BONDING is not set
594# CONFIG_MACVLAN is not set 602# CONFIG_MACVLAN is not set
@@ -632,7 +640,6 @@ CONFIG_NETDEV_1000=y
632# CONFIG_DL2K is not set 640# CONFIG_DL2K is not set
633# CONFIG_E1000 is not set 641# CONFIG_E1000 is not set
634# CONFIG_E1000E is not set 642# CONFIG_E1000E is not set
635# CONFIG_E1000E_ENABLED is not set
636# CONFIG_IP1000 is not set 643# CONFIG_IP1000 is not set
637# CONFIG_IGB is not set 644# CONFIG_IGB is not set
638# CONFIG_NS83820 is not set 645# CONFIG_NS83820 is not set
@@ -648,9 +655,9 @@ CONFIG_SKY2=y
648# CONFIG_TIGON3 is not set 655# CONFIG_TIGON3 is not set
649# CONFIG_BNX2 is not set 656# CONFIG_BNX2 is not set
650CONFIG_GIANFAR=y 657CONFIG_GIANFAR=y
651CONFIG_GFAR_NAPI=y
652# CONFIG_QLA3XXX is not set 658# CONFIG_QLA3XXX is not set
653# CONFIG_ATL1 is not set 659# CONFIG_ATL1 is not set
660# CONFIG_ATL1E is not set
654CONFIG_NETDEV_10000=y 661CONFIG_NETDEV_10000=y
655# CONFIG_CHELSIO_T1 is not set 662# CONFIG_CHELSIO_T1 is not set
656# CONFIG_CHELSIO_T3 is not set 663# CONFIG_CHELSIO_T3 is not set
@@ -727,12 +734,14 @@ CONFIG_SERIO_SERPORT=y
727# CONFIG_SERIO_PCIPS2 is not set 734# CONFIG_SERIO_PCIPS2 is not set
728CONFIG_SERIO_LIBPS2=y 735CONFIG_SERIO_LIBPS2=y
729# CONFIG_SERIO_RAW is not set 736# CONFIG_SERIO_RAW is not set
737# CONFIG_SERIO_XILINX_XPS_PS2 is not set
730# CONFIG_GAMEPORT is not set 738# CONFIG_GAMEPORT is not set
731 739
732# 740#
733# Character devices 741# Character devices
734# 742#
735CONFIG_VT=y 743CONFIG_VT=y
744CONFIG_CONSOLE_TRANSLATIONS=y
736CONFIG_VT_CONSOLE=y 745CONFIG_VT_CONSOLE=y
737CONFIG_HW_CONSOLE=y 746CONFIG_HW_CONSOLE=y
738# CONFIG_VT_HW_CONSOLE_BINDING is not set 747# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -766,7 +775,7 @@ CONFIG_UNIX98_PTYS=y
766CONFIG_LEGACY_PTYS=y 775CONFIG_LEGACY_PTYS=y
767CONFIG_LEGACY_PTY_COUNT=256 776CONFIG_LEGACY_PTY_COUNT=256
768# CONFIG_IPMI_HANDLER is not set 777# CONFIG_IPMI_HANDLER is not set
769# CONFIG_HW_RANDOM is not set 778CONFIG_HW_RANDOM=y
770# CONFIG_NVRAM is not set 779# CONFIG_NVRAM is not set
771# CONFIG_R3964 is not set 780# CONFIG_R3964 is not set
772# CONFIG_APPLICOM is not set 781# CONFIG_APPLICOM is not set
@@ -776,43 +785,64 @@ CONFIG_DEVPORT=y
776CONFIG_I2C=y 785CONFIG_I2C=y
777CONFIG_I2C_BOARDINFO=y 786CONFIG_I2C_BOARDINFO=y
778# CONFIG_I2C_CHARDEV is not set 787# CONFIG_I2C_CHARDEV is not set
788CONFIG_I2C_HELPER_AUTO=y
779 789
780# 790#
781# I2C Hardware Bus support 791# I2C Hardware Bus support
782# 792#
793
794#
795# PC SMBus host controller drivers
796#
783# CONFIG_I2C_ALI1535 is not set 797# CONFIG_I2C_ALI1535 is not set
784# CONFIG_I2C_ALI1563 is not set 798# CONFIG_I2C_ALI1563 is not set
785# CONFIG_I2C_ALI15X3 is not set 799# CONFIG_I2C_ALI15X3 is not set
786# CONFIG_I2C_AMD756 is not set 800# CONFIG_I2C_AMD756 is not set
787# CONFIG_I2C_AMD8111 is not set 801# CONFIG_I2C_AMD8111 is not set
788# CONFIG_I2C_I801 is not set 802# CONFIG_I2C_I801 is not set
789# CONFIG_I2C_I810 is not set 803# CONFIG_I2C_ISCH is not set
790# CONFIG_I2C_PIIX4 is not set 804# CONFIG_I2C_PIIX4 is not set
791CONFIG_I2C_MPC=y
792# CONFIG_I2C_NFORCE2 is not set 805# CONFIG_I2C_NFORCE2 is not set
793# CONFIG_I2C_OCORES is not set
794# CONFIG_I2C_PARPORT_LIGHT is not set
795# CONFIG_I2C_PROSAVAGE is not set
796# CONFIG_I2C_SAVAGE4 is not set
797# CONFIG_I2C_SIMTEC is not set
798# CONFIG_I2C_SIS5595 is not set 806# CONFIG_I2C_SIS5595 is not set
799# CONFIG_I2C_SIS630 is not set 807# CONFIG_I2C_SIS630 is not set
800# CONFIG_I2C_SIS96X is not set 808# CONFIG_I2C_SIS96X is not set
801# CONFIG_I2C_TAOS_EVM is not set
802# CONFIG_I2C_STUB is not set
803# CONFIG_I2C_TINY_USB is not set
804# CONFIG_I2C_VIA is not set 809# CONFIG_I2C_VIA is not set
805# CONFIG_I2C_VIAPRO is not set 810# CONFIG_I2C_VIAPRO is not set
811
812#
813# I2C system bus drivers (mostly embedded / system-on-chip)
814#
815CONFIG_I2C_MPC=y
816# CONFIG_I2C_OCORES is not set
817# CONFIG_I2C_SIMTEC is not set
818
819#
820# External I2C/SMBus adapter drivers
821#
822# CONFIG_I2C_PARPORT_LIGHT is not set
823# CONFIG_I2C_TAOS_EVM is not set
824# CONFIG_I2C_TINY_USB is not set
825
826#
827# Graphics adapter I2C/DDC channel drivers
828#
806# CONFIG_I2C_VOODOO3 is not set 829# CONFIG_I2C_VOODOO3 is not set
830
831#
832# Other I2C/SMBus bus drivers
833#
807# CONFIG_I2C_PCA_PLATFORM is not set 834# CONFIG_I2C_PCA_PLATFORM is not set
835# CONFIG_I2C_STUB is not set
808 836
809# 837#
810# Miscellaneous I2C Chip support 838# Miscellaneous I2C Chip support
811# 839#
812# CONFIG_DS1682 is not set 840# CONFIG_DS1682 is not set
841# CONFIG_AT24 is not set
813CONFIG_SENSORS_EEPROM=y 842CONFIG_SENSORS_EEPROM=y
814# CONFIG_SENSORS_PCF8574 is not set 843# CONFIG_SENSORS_PCF8574 is not set
815# CONFIG_PCF8575 is not set 844# CONFIG_PCF8575 is not set
845# CONFIG_SENSORS_PCA9539 is not set
816# CONFIG_SENSORS_PCF8591 is not set 846# CONFIG_SENSORS_PCF8591 is not set
817# CONFIG_SENSORS_MAX6875 is not set 847# CONFIG_SENSORS_MAX6875 is not set
818# CONFIG_SENSORS_TSL2550 is not set 848# CONFIG_SENSORS_TSL2550 is not set
@@ -821,6 +851,8 @@ CONFIG_SENSORS_EEPROM=y
821# CONFIG_I2C_DEBUG_BUS is not set 851# CONFIG_I2C_DEBUG_BUS is not set
822# CONFIG_I2C_DEBUG_CHIP is not set 852# CONFIG_I2C_DEBUG_CHIP is not set
823# CONFIG_SPI is not set 853# CONFIG_SPI is not set
854CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
855# CONFIG_GPIOLIB is not set
824# CONFIG_W1 is not set 856# CONFIG_W1 is not set
825# CONFIG_POWER_SUPPLY is not set 857# CONFIG_POWER_SUPPLY is not set
826# CONFIG_HWMON is not set 858# CONFIG_HWMON is not set
@@ -836,8 +868,10 @@ CONFIG_SSB_POSSIBLE=y
836# 868#
837# Multifunction device drivers 869# Multifunction device drivers
838# 870#
871# CONFIG_MFD_CORE is not set
839# CONFIG_MFD_SM501 is not set 872# CONFIG_MFD_SM501 is not set
840# CONFIG_HTC_PASIC3 is not set 873# CONFIG_HTC_PASIC3 is not set
874# CONFIG_MFD_TMIO is not set
841 875
842# 876#
843# Multimedia devices 877# Multimedia devices
@@ -879,6 +913,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
879# CONFIG_DVB_TTUSB_BUDGET is not set 913# CONFIG_DVB_TTUSB_BUDGET is not set
880# CONFIG_DVB_TTUSB_DEC is not set 914# CONFIG_DVB_TTUSB_DEC is not set
881# CONFIG_DVB_CINERGYT2 is not set 915# CONFIG_DVB_CINERGYT2 is not set
916# CONFIG_DVB_SIANO_SMS1XXX is not set
882 917
883# 918#
884# Supported FlexCopII (B2C2) Adapters 919# Supported FlexCopII (B2C2) Adapters
@@ -925,6 +960,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
925# CONFIG_DVB_SP887X is not set 960# CONFIG_DVB_SP887X is not set
926# CONFIG_DVB_CX22700 is not set 961# CONFIG_DVB_CX22700 is not set
927# CONFIG_DVB_CX22702 is not set 962# CONFIG_DVB_CX22702 is not set
963# CONFIG_DVB_DRX397XD is not set
928# CONFIG_DVB_L64781 is not set 964# CONFIG_DVB_L64781 is not set
929# CONFIG_DVB_TDA1004X is not set 965# CONFIG_DVB_TDA1004X is not set
930# CONFIG_DVB_NXT6000 is not set 966# CONFIG_DVB_NXT6000 is not set
@@ -992,15 +1028,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
992CONFIG_VGA_CONSOLE=y 1028CONFIG_VGA_CONSOLE=y
993# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1029# CONFIG_VGACON_SOFT_SCROLLBACK is not set
994CONFIG_DUMMY_CONSOLE=y 1030CONFIG_DUMMY_CONSOLE=y
995
996#
997# Sound
998#
999CONFIG_SOUND=y 1031CONFIG_SOUND=y
1000
1001#
1002# Advanced Linux Sound Architecture
1003#
1004CONFIG_SND=y 1032CONFIG_SND=y
1005CONFIG_SND_TIMER=y 1033CONFIG_SND_TIMER=y
1006CONFIG_SND_PCM=y 1034CONFIG_SND_PCM=y
@@ -1012,19 +1040,15 @@ CONFIG_SND_SUPPORT_OLD_API=y
1012CONFIG_SND_VERBOSE_PROCFS=y 1040CONFIG_SND_VERBOSE_PROCFS=y
1013# CONFIG_SND_VERBOSE_PRINTK is not set 1041# CONFIG_SND_VERBOSE_PRINTK is not set
1014# CONFIG_SND_DEBUG is not set 1042# CONFIG_SND_DEBUG is not set
1015 1043CONFIG_SND_VMASTER=y
1016#
1017# Generic devices
1018#
1019CONFIG_SND_AC97_CODEC=y 1044CONFIG_SND_AC97_CODEC=y
1045CONFIG_SND_DRIVERS=y
1020# CONFIG_SND_DUMMY is not set 1046# CONFIG_SND_DUMMY is not set
1021# CONFIG_SND_MTPAV is not set 1047# CONFIG_SND_MTPAV is not set
1022# CONFIG_SND_SERIAL_U16550 is not set 1048# CONFIG_SND_SERIAL_U16550 is not set
1023# CONFIG_SND_MPU401 is not set 1049# CONFIG_SND_MPU401 is not set
1024 1050# CONFIG_SND_AC97_POWER_SAVE is not set
1025# 1051CONFIG_SND_PCI=y
1026# PCI devices
1027#
1028# CONFIG_SND_AD1889 is not set 1052# CONFIG_SND_AD1889 is not set
1029# CONFIG_SND_ALS300 is not set 1053# CONFIG_SND_ALS300 is not set
1030# CONFIG_SND_ALS4000 is not set 1054# CONFIG_SND_ALS4000 is not set
@@ -1086,39 +1110,12 @@ CONFIG_SND_INTEL8X0=y
1086# CONFIG_SND_VIRTUOSO is not set 1110# CONFIG_SND_VIRTUOSO is not set
1087# CONFIG_SND_VX222 is not set 1111# CONFIG_SND_VX222 is not set
1088# CONFIG_SND_YMFPCI is not set 1112# CONFIG_SND_YMFPCI is not set
1089# CONFIG_SND_AC97_POWER_SAVE is not set 1113CONFIG_SND_PPC=y
1090 1114CONFIG_SND_USB=y
1091#
1092# ALSA PowerMac devices
1093#
1094
1095#
1096# ALSA PowerPC devices
1097#
1098
1099#
1100# USB devices
1101#
1102# CONFIG_SND_USB_AUDIO is not set 1115# CONFIG_SND_USB_AUDIO is not set
1103# CONFIG_SND_USB_USX2Y is not set 1116# CONFIG_SND_USB_USX2Y is not set
1104# CONFIG_SND_USB_CAIAQ is not set 1117# CONFIG_SND_USB_CAIAQ is not set
1105
1106#
1107# System on Chip audio support
1108#
1109# CONFIG_SND_SOC is not set 1118# CONFIG_SND_SOC is not set
1110
1111#
1112# ALSA SoC audio for Freescale SOCs
1113#
1114
1115#
1116# SoC Audio for the Texas Instruments OMAP
1117#
1118
1119#
1120# Open Sound System
1121#
1122# CONFIG_SOUND_PRIME is not set 1119# CONFIG_SOUND_PRIME is not set
1123CONFIG_AC97_BUS=y 1120CONFIG_AC97_BUS=y
1124CONFIG_HID_SUPPORT=y 1121CONFIG_HID_SUPPORT=y
@@ -1150,6 +1147,7 @@ CONFIG_USB_DEVICE_CLASS=y
1150# CONFIG_USB_OTG is not set 1147# CONFIG_USB_OTG is not set
1151# CONFIG_USB_OTG_WHITELIST is not set 1148# CONFIG_USB_OTG_WHITELIST is not set
1152# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1149# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1150CONFIG_USB_MON=y
1153 1151
1154# 1152#
1155# USB Host Controller Drivers 1153# USB Host Controller Drivers
@@ -1201,6 +1199,7 @@ CONFIG_USB_STORAGE=y
1201# CONFIG_USB_STORAGE_ALAUDA is not set 1199# CONFIG_USB_STORAGE_ALAUDA is not set
1202# CONFIG_USB_STORAGE_ONETOUCH is not set 1200# CONFIG_USB_STORAGE_ONETOUCH is not set
1203# CONFIG_USB_STORAGE_KARMA is not set 1201# CONFIG_USB_STORAGE_KARMA is not set
1202# CONFIG_USB_STORAGE_SIERRA is not set
1204# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1203# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1205# CONFIG_USB_LIBUSUAL is not set 1204# CONFIG_USB_LIBUSUAL is not set
1206 1205
@@ -1209,7 +1208,6 @@ CONFIG_USB_STORAGE=y
1209# 1208#
1210# CONFIG_USB_MDC800 is not set 1209# CONFIG_USB_MDC800 is not set
1211# CONFIG_USB_MICROTEK is not set 1210# CONFIG_USB_MICROTEK is not set
1212CONFIG_USB_MON=y
1213 1211
1214# 1212#
1215# USB port drivers 1213# USB port drivers
@@ -1222,7 +1220,6 @@ CONFIG_USB_MON=y
1222# CONFIG_USB_EMI62 is not set 1220# CONFIG_USB_EMI62 is not set
1223# CONFIG_USB_EMI26 is not set 1221# CONFIG_USB_EMI26 is not set
1224# CONFIG_USB_ADUTUX is not set 1222# CONFIG_USB_ADUTUX is not set
1225# CONFIG_USB_AUERSWALD is not set
1226# CONFIG_USB_RIO500 is not set 1223# CONFIG_USB_RIO500 is not set
1227# CONFIG_USB_LEGOTOWER is not set 1224# CONFIG_USB_LEGOTOWER is not set
1228# CONFIG_USB_LCD is not set 1225# CONFIG_USB_LCD is not set
@@ -1310,6 +1307,7 @@ CONFIG_DMA_ENGINE=y
1310# DMA Clients 1307# DMA Clients
1311# 1308#
1312# CONFIG_NET_DMA is not set 1309# CONFIG_NET_DMA is not set
1310# CONFIG_DMATEST is not set
1313# CONFIG_UIO is not set 1311# CONFIG_UIO is not set
1314 1312
1315# 1313#
@@ -1387,6 +1385,7 @@ CONFIG_EFS_FS=m
1387CONFIG_CRAMFS=y 1385CONFIG_CRAMFS=y
1388CONFIG_VXFS_FS=m 1386CONFIG_VXFS_FS=m
1389# CONFIG_MINIX_FS is not set 1387# CONFIG_MINIX_FS is not set
1388# CONFIG_OMFS_FS is not set
1390CONFIG_HPFS_FS=m 1389CONFIG_HPFS_FS=m
1391CONFIG_QNX4FS_FS=m 1390CONFIG_QNX4FS_FS=m
1392# CONFIG_ROMFS_FS is not set 1391# CONFIG_ROMFS_FS is not set
@@ -1399,17 +1398,16 @@ CONFIG_NFS_FS=y
1399CONFIG_NFS_V3=y 1398CONFIG_NFS_V3=y
1400# CONFIG_NFS_V3_ACL is not set 1399# CONFIG_NFS_V3_ACL is not set
1401CONFIG_NFS_V4=y 1400CONFIG_NFS_V4=y
1401CONFIG_ROOT_NFS=y
1402CONFIG_NFSD=y 1402CONFIG_NFSD=y
1403# CONFIG_NFSD_V3 is not set 1403# CONFIG_NFSD_V3 is not set
1404# CONFIG_NFSD_V4 is not set 1404# CONFIG_NFSD_V4 is not set
1405CONFIG_ROOT_NFS=y
1406CONFIG_LOCKD=y 1405CONFIG_LOCKD=y
1407CONFIG_LOCKD_V4=y 1406CONFIG_LOCKD_V4=y
1408CONFIG_EXPORTFS=y 1407CONFIG_EXPORTFS=y
1409CONFIG_NFS_COMMON=y 1408CONFIG_NFS_COMMON=y
1410CONFIG_SUNRPC=y 1409CONFIG_SUNRPC=y
1411CONFIG_SUNRPC_GSS=y 1410CONFIG_SUNRPC_GSS=y
1412# CONFIG_SUNRPC_BIND34 is not set
1413CONFIG_RPCSEC_GSS_KRB5=y 1411CONFIG_RPCSEC_GSS_KRB5=y
1414# CONFIG_RPCSEC_GSS_SPKM3 is not set 1412# CONFIG_RPCSEC_GSS_SPKM3 is not set
1415# CONFIG_SMB_FS is not set 1413# CONFIG_SMB_FS is not set
@@ -1488,6 +1486,7 @@ CONFIG_BITREVERSE=y
1488# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1486# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1489# CONFIG_CRC_CCITT is not set 1487# CONFIG_CRC_CCITT is not set
1490# CONFIG_CRC16 is not set 1488# CONFIG_CRC16 is not set
1489CONFIG_CRC_T10DIF=y
1491CONFIG_CRC_ITU_T=m 1490CONFIG_CRC_ITU_T=m
1492CONFIG_CRC32=y 1491CONFIG_CRC32=y
1493# CONFIG_CRC7 is not set 1492# CONFIG_CRC7 is not set
@@ -1513,6 +1512,8 @@ CONFIG_DEBUG_FS=y
1513CONFIG_DEBUG_KERNEL=y 1512CONFIG_DEBUG_KERNEL=y
1514# CONFIG_DEBUG_SHIRQ is not set 1513# CONFIG_DEBUG_SHIRQ is not set
1515CONFIG_DETECT_SOFTLOCKUP=y 1514CONFIG_DETECT_SOFTLOCKUP=y
1515# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1516CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1516CONFIG_SCHED_DEBUG=y 1517CONFIG_SCHED_DEBUG=y
1517# CONFIG_SCHEDSTATS is not set 1518# CONFIG_SCHEDSTATS is not set
1518# CONFIG_TIMER_STATS is not set 1519# CONFIG_TIMER_STATS is not set
@@ -1531,19 +1532,29 @@ CONFIG_SCHED_DEBUG=y
1531CONFIG_DEBUG_INFO=y 1532CONFIG_DEBUG_INFO=y
1532# CONFIG_DEBUG_VM is not set 1533# CONFIG_DEBUG_VM is not set
1533# CONFIG_DEBUG_WRITECOUNT is not set 1534# CONFIG_DEBUG_WRITECOUNT is not set
1535# CONFIG_DEBUG_MEMORY_INIT is not set
1534# CONFIG_DEBUG_LIST is not set 1536# CONFIG_DEBUG_LIST is not set
1535# CONFIG_DEBUG_SG is not set 1537# CONFIG_DEBUG_SG is not set
1536# CONFIG_BOOT_PRINTK_DELAY is not set 1538# CONFIG_BOOT_PRINTK_DELAY is not set
1537# CONFIG_RCU_TORTURE_TEST is not set 1539# CONFIG_RCU_TORTURE_TEST is not set
1538# CONFIG_BACKTRACE_SELF_TEST is not set 1540# CONFIG_BACKTRACE_SELF_TEST is not set
1539# CONFIG_FAULT_INJECTION is not set 1541# CONFIG_FAULT_INJECTION is not set
1542# CONFIG_LATENCYTOP is not set
1543CONFIG_SYSCTL_SYSCALL_CHECK=y
1544CONFIG_HAVE_FTRACE=y
1545CONFIG_HAVE_DYNAMIC_FTRACE=y
1546# CONFIG_FTRACE is not set
1547# CONFIG_SCHED_TRACER is not set
1548# CONFIG_CONTEXT_SWITCH_TRACER is not set
1540# CONFIG_SAMPLES is not set 1549# CONFIG_SAMPLES is not set
1550CONFIG_HAVE_ARCH_KGDB=y
1551# CONFIG_KGDB is not set
1541# CONFIG_DEBUG_STACKOVERFLOW is not set 1552# CONFIG_DEBUG_STACKOVERFLOW is not set
1542# CONFIG_DEBUG_STACK_USAGE is not set 1553# CONFIG_DEBUG_STACK_USAGE is not set
1543# CONFIG_DEBUG_PAGEALLOC is not set 1554# CONFIG_DEBUG_PAGEALLOC is not set
1544# CONFIG_DEBUGGER is not set
1545# CONFIG_CODE_PATCHING_SELFTEST is not set 1555# CONFIG_CODE_PATCHING_SELFTEST is not set
1546# CONFIG_FTR_FIXUP_SELFTEST is not set 1556# CONFIG_FTR_FIXUP_SELFTEST is not set
1557# CONFIG_XMON is not set
1547# CONFIG_IRQSTACKS is not set 1558# CONFIG_IRQSTACKS is not set
1548# CONFIG_VIRQ_DEBUG is not set 1559# CONFIG_VIRQ_DEBUG is not set
1549# CONFIG_BDI_SWITCH is not set 1560# CONFIG_BDI_SWITCH is not set
@@ -1561,13 +1572,14 @@ CONFIG_CRYPTO=y
1561# Crypto core or helper 1572# Crypto core or helper
1562# 1573#
1563CONFIG_CRYPTO_ALGAPI=y 1574CONFIG_CRYPTO_ALGAPI=y
1575CONFIG_CRYPTO_AEAD=y
1564CONFIG_CRYPTO_BLKCIPHER=y 1576CONFIG_CRYPTO_BLKCIPHER=y
1565CONFIG_CRYPTO_HASH=y 1577CONFIG_CRYPTO_HASH=y
1566CONFIG_CRYPTO_MANAGER=y 1578CONFIG_CRYPTO_MANAGER=y
1567# CONFIG_CRYPTO_GF128MUL is not set 1579# CONFIG_CRYPTO_GF128MUL is not set
1568# CONFIG_CRYPTO_NULL is not set 1580# CONFIG_CRYPTO_NULL is not set
1569# CONFIG_CRYPTO_CRYPTD is not set 1581# CONFIG_CRYPTO_CRYPTD is not set
1570# CONFIG_CRYPTO_AUTHENC is not set 1582CONFIG_CRYPTO_AUTHENC=y
1571# CONFIG_CRYPTO_TEST is not set 1583# CONFIG_CRYPTO_TEST is not set
1572 1584
1573# 1585#
@@ -1601,6 +1613,10 @@ CONFIG_CRYPTO_HMAC=y
1601# CONFIG_CRYPTO_MD4 is not set 1613# CONFIG_CRYPTO_MD4 is not set
1602CONFIG_CRYPTO_MD5=y 1614CONFIG_CRYPTO_MD5=y
1603# CONFIG_CRYPTO_MICHAEL_MIC is not set 1615# CONFIG_CRYPTO_MICHAEL_MIC is not set
1616# CONFIG_CRYPTO_RMD128 is not set
1617# CONFIG_CRYPTO_RMD160 is not set
1618# CONFIG_CRYPTO_RMD256 is not set
1619# CONFIG_CRYPTO_RMD320 is not set
1604CONFIG_CRYPTO_SHA1=m 1620CONFIG_CRYPTO_SHA1=m
1605# CONFIG_CRYPTO_SHA256 is not set 1621# CONFIG_CRYPTO_SHA256 is not set
1606# CONFIG_CRYPTO_SHA512 is not set 1622# CONFIG_CRYPTO_SHA512 is not set
@@ -1633,5 +1649,6 @@ CONFIG_CRYPTO_DES=y
1633# CONFIG_CRYPTO_LZO is not set 1649# CONFIG_CRYPTO_LZO is not set
1634CONFIG_CRYPTO_HW=y 1650CONFIG_CRYPTO_HW=y
1635# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1651# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1652CONFIG_CRYPTO_DEV_TALITOS=y
1636# CONFIG_PPC_CLOCK is not set 1653# CONFIG_PPC_CLOCK is not set
1637# CONFIG_VIRTUALIZATION is not set 1654# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
index f33fd516fd5..1ea181f826f 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:31 2008 4# Thu Aug 21 00:52:30 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -89,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 95# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 96# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -114,10 +115,16 @@ CONFIG_SLUB=y
114# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set 116# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y
119# CONFIG_HAVE_DMA_ATTRS is not set 123# CONFIG_HAVE_DMA_ATTRS is not set
124# CONFIG_USE_GENERIC_SMP_HELPERS is not set
125# CONFIG_HAVE_CLK is not set
120CONFIG_PROC_PAGE_MONITOR=y 126CONFIG_PROC_PAGE_MONITOR=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set 130# CONFIG_TINY_SHMEM is not set
@@ -128,6 +135,7 @@ CONFIG_BLOCK=y
128# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_LSF is not set 136# CONFIG_LSF is not set
130# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set
131 139
132# 140#
133# IO Schedulers 141# IO Schedulers
@@ -146,8 +154,6 @@ CONFIG_CLASSIC_RCU=y
146# 154#
147# Platform support 155# Platform support
148# 156#
149# CONFIG_PPC_MPC512x is not set
150# CONFIG_PPC_MPC5121 is not set
151# CONFIG_PPC_CELL is not set 157# CONFIG_PPC_CELL is not set
152# CONFIG_PPC_CELL_NATIVE is not set 158# CONFIG_PPC_CELL_NATIVE is not set
153# CONFIG_PQ2ADS is not set 159# CONFIG_PQ2ADS is not set
@@ -156,11 +162,13 @@ CONFIG_MPC8540_ADS=y
156# CONFIG_MPC8560_ADS is not set 162# CONFIG_MPC8560_ADS is not set
157# CONFIG_MPC85xx_CDS is not set 163# CONFIG_MPC85xx_CDS is not set
158# CONFIG_MPC85xx_MDS is not set 164# CONFIG_MPC85xx_MDS is not set
165# CONFIG_MPC8536_DS is not set
159# CONFIG_MPC85xx_DS is not set 166# CONFIG_MPC85xx_DS is not set
160# CONFIG_KSI8560 is not set 167# CONFIG_KSI8560 is not set
161# CONFIG_STX_GP3 is not set 168# CONFIG_STX_GP3 is not set
162# CONFIG_TQM8540 is not set 169# CONFIG_TQM8540 is not set
163# CONFIG_TQM8541 is not set 170# CONFIG_TQM8541 is not set
171# CONFIG_TQM8548 is not set
164# CONFIG_TQM8555 is not set 172# CONFIG_TQM8555 is not set
165# CONFIG_TQM8560 is not set 173# CONFIG_TQM8560 is not set
166# CONFIG_SBC8548 is not set 174# CONFIG_SBC8548 is not set
@@ -192,7 +200,7 @@ CONFIG_HZ_250=y
192# CONFIG_HZ_300 is not set 200# CONFIG_HZ_300 is not set
193# CONFIG_HZ_1000 is not set 201# CONFIG_HZ_1000 is not set
194CONFIG_HZ=250 202CONFIG_HZ=250
195# CONFIG_SCHED_HRTICK is not set 203CONFIG_SCHED_HRTICK=y
196CONFIG_PREEMPT_NONE=y 204CONFIG_PREEMPT_NONE=y
197# CONFIG_PREEMPT_VOLUNTARY is not set 205# CONFIG_PREEMPT_VOLUNTARY is not set
198# CONFIG_PREEMPT is not set 206# CONFIG_PREEMPT is not set
@@ -215,6 +223,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y 224CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 225CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y
218# CONFIG_RESOURCES_64BIT is not set 227# CONFIG_RESOURCES_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=1 228CONFIG_ZONE_DMA_FLAG=1
220CONFIG_BOUNCE=y 229CONFIG_BOUNCE=y
@@ -222,6 +231,7 @@ CONFIG_VIRT_TO_BUS=y
222CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
223CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
224# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
234CONFIG_EXTRA_TARGETS=""
225# CONFIG_PM is not set 235# CONFIG_PM is not set
226# CONFIG_SECCOMP is not set 236# CONFIG_SECCOMP is not set
227CONFIG_ISA_DMA_API=y 237CONFIG_ISA_DMA_API=y
@@ -231,6 +241,7 @@ CONFIG_ISA_DMA_API=y
231# 241#
232CONFIG_ZONE_DMA=y 242CONFIG_ZONE_DMA=y
233CONFIG_FSL_SOC=y 243CONFIG_FSL_SOC=y
244CONFIG_PPC_PCI_CHOICE=y
234# CONFIG_PCI is not set 245# CONFIG_PCI is not set
235# CONFIG_PCI_DOMAINS is not set 246# CONFIG_PCI_DOMAINS is not set
236# CONFIG_PCI_SYSCALL is not set 247# CONFIG_PCI_SYSCALL is not set
@@ -252,10 +263,6 @@ CONFIG_KERNEL_START=0xc0000000
252CONFIG_PHYSICAL_START=0x00000000 263CONFIG_PHYSICAL_START=0x00000000
253CONFIG_PHYSICAL_ALIGN=0x10000000 264CONFIG_PHYSICAL_ALIGN=0x10000000
254CONFIG_TASK_SIZE=0xc0000000 265CONFIG_TASK_SIZE=0xc0000000
255
256#
257# Networking
258#
259CONFIG_NET=y 266CONFIG_NET=y
260 267
261# 268#
@@ -367,6 +374,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
367# CONFIG_BLK_DEV_XIP is not set 374# CONFIG_BLK_DEV_XIP is not set
368# CONFIG_CDROM_PKTCDVD is not set 375# CONFIG_CDROM_PKTCDVD is not set
369# CONFIG_ATA_OVER_ETH is not set 376# CONFIG_ATA_OVER_ETH is not set
377# CONFIG_BLK_DEV_HD is not set
370CONFIG_MISC_DEVICES=y 378CONFIG_MISC_DEVICES=y
371# CONFIG_EEPROM_93CX6 is not set 379# CONFIG_EEPROM_93CX6 is not set
372# CONFIG_ENCLOSURE_SERVICES is not set 380# CONFIG_ENCLOSURE_SERVICES is not set
@@ -384,7 +392,6 @@ CONFIG_HAVE_IDE=y
384# CONFIG_MD is not set 392# CONFIG_MD is not set
385# CONFIG_MACINTOSH_DRIVERS is not set 393# CONFIG_MACINTOSH_DRIVERS is not set
386CONFIG_NETDEVICES=y 394CONFIG_NETDEVICES=y
387# CONFIG_NETDEVICES_MULTIQUEUE is not set
388# CONFIG_DUMMY is not set 395# CONFIG_DUMMY is not set
389# CONFIG_BONDING is not set 396# CONFIG_BONDING is not set
390# CONFIG_MACVLAN is not set 397# CONFIG_MACVLAN is not set
@@ -416,9 +423,7 @@ CONFIG_MII=y
416# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 423# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
417# CONFIG_B44 is not set 424# CONFIG_B44 is not set
418CONFIG_NETDEV_1000=y 425CONFIG_NETDEV_1000=y
419# CONFIG_E1000E_ENABLED is not set
420CONFIG_GIANFAR=y 426CONFIG_GIANFAR=y
421CONFIG_GFAR_NAPI=y
422CONFIG_NETDEV_10000=y 427CONFIG_NETDEV_10000=y
423 428
424# 429#
@@ -504,6 +509,8 @@ CONFIG_GEN_RTC=y
504# CONFIG_TCG_TPM is not set 509# CONFIG_TCG_TPM is not set
505# CONFIG_I2C is not set 510# CONFIG_I2C is not set
506# CONFIG_SPI is not set 511# CONFIG_SPI is not set
512CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
513# CONFIG_GPIOLIB is not set
507# CONFIG_W1 is not set 514# CONFIG_W1 is not set
508# CONFIG_POWER_SUPPLY is not set 515# CONFIG_POWER_SUPPLY is not set
509CONFIG_HWMON=y 516CONFIG_HWMON=y
@@ -520,6 +527,7 @@ CONFIG_HWMON=y
520# CONFIG_SENSORS_W83627EHF is not set 527# CONFIG_SENSORS_W83627EHF is not set
521# CONFIG_HWMON_DEBUG_CHIP is not set 528# CONFIG_HWMON_DEBUG_CHIP is not set
522# CONFIG_THERMAL is not set 529# CONFIG_THERMAL is not set
530# CONFIG_THERMAL_HWMON is not set
523# CONFIG_WATCHDOG is not set 531# CONFIG_WATCHDOG is not set
524 532
525# 533#
@@ -531,8 +539,10 @@ CONFIG_SSB_POSSIBLE=y
531# 539#
532# Multifunction device drivers 540# Multifunction device drivers
533# 541#
542# CONFIG_MFD_CORE is not set
534# CONFIG_MFD_SM501 is not set 543# CONFIG_MFD_SM501 is not set
535# CONFIG_HTC_PASIC3 is not set 544# CONFIG_HTC_PASIC3 is not set
545# CONFIG_MFD_TMIO is not set
536 546
537# 547#
538# Multimedia devices 548# Multimedia devices
@@ -562,10 +572,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
562# Display device support 572# Display device support
563# 573#
564# CONFIG_DISPLAY_SUPPORT is not set 574# CONFIG_DISPLAY_SUPPORT is not set
565
566#
567# Sound
568#
569# CONFIG_SOUND is not set 575# CONFIG_SOUND is not set
570CONFIG_HID_SUPPORT=y 576CONFIG_HID_SUPPORT=y
571CONFIG_HID=y 577CONFIG_HID=y
@@ -579,6 +585,10 @@ CONFIG_USB_SUPPORT=y
579# CONFIG_USB_OTG_BLACKLIST_HUB is not set 585# CONFIG_USB_OTG_BLACKLIST_HUB is not set
580 586
581# 587#
588# Enable Host or Gadget support to see Inventra options
589#
590
591#
582# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 592# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
583# 593#
584# CONFIG_USB_GADGET is not set 594# CONFIG_USB_GADGET is not set
@@ -655,6 +665,7 @@ CONFIG_TMPFS=y
655# CONFIG_CRAMFS is not set 665# CONFIG_CRAMFS is not set
656# CONFIG_VXFS_FS is not set 666# CONFIG_VXFS_FS is not set
657# CONFIG_MINIX_FS is not set 667# CONFIG_MINIX_FS is not set
668# CONFIG_OMFS_FS is not set
658# CONFIG_HPFS_FS is not set 669# CONFIG_HPFS_FS is not set
659# CONFIG_QNX4FS_FS is not set 670# CONFIG_QNX4FS_FS is not set
660# CONFIG_ROMFS_FS is not set 671# CONFIG_ROMFS_FS is not set
@@ -664,12 +675,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
664CONFIG_NFS_FS=y 675CONFIG_NFS_FS=y
665# CONFIG_NFS_V3 is not set 676# CONFIG_NFS_V3 is not set
666# CONFIG_NFS_V4 is not set 677# CONFIG_NFS_V4 is not set
667# CONFIG_NFSD is not set
668CONFIG_ROOT_NFS=y 678CONFIG_ROOT_NFS=y
679# CONFIG_NFSD is not set
669CONFIG_LOCKD=y 680CONFIG_LOCKD=y
670CONFIG_NFS_COMMON=y 681CONFIG_NFS_COMMON=y
671CONFIG_SUNRPC=y 682CONFIG_SUNRPC=y
672# CONFIG_SUNRPC_BIND34 is not set
673# CONFIG_RPCSEC_GSS_KRB5 is not set 683# CONFIG_RPCSEC_GSS_KRB5 is not set
674# CONFIG_RPCSEC_GSS_SPKM3 is not set 684# CONFIG_RPCSEC_GSS_SPKM3 is not set
675# CONFIG_SMB_FS is not set 685# CONFIG_SMB_FS is not set
@@ -705,6 +715,7 @@ CONFIG_BITREVERSE=y
705# CONFIG_GENERIC_FIND_FIRST_BIT is not set 715# CONFIG_GENERIC_FIND_FIRST_BIT is not set
706# CONFIG_CRC_CCITT is not set 716# CONFIG_CRC_CCITT is not set
707# CONFIG_CRC16 is not set 717# CONFIG_CRC16 is not set
718# CONFIG_CRC_T10DIF is not set
708# CONFIG_CRC_ITU_T is not set 719# CONFIG_CRC_ITU_T is not set
709CONFIG_CRC32=y 720CONFIG_CRC32=y
710# CONFIG_CRC7 is not set 721# CONFIG_CRC7 is not set
@@ -729,6 +740,8 @@ CONFIG_FRAME_WARN=1024
729CONFIG_DEBUG_KERNEL=y 740CONFIG_DEBUG_KERNEL=y
730# CONFIG_DEBUG_SHIRQ is not set 741# CONFIG_DEBUG_SHIRQ is not set
731CONFIG_DETECT_SOFTLOCKUP=y 742CONFIG_DETECT_SOFTLOCKUP=y
743# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
744CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
732CONFIG_SCHED_DEBUG=y 745CONFIG_SCHED_DEBUG=y
733# CONFIG_SCHEDSTATS is not set 746# CONFIG_SCHEDSTATS is not set
734# CONFIG_TIMER_STATS is not set 747# CONFIG_TIMER_STATS is not set
@@ -746,16 +759,29 @@ CONFIG_DEBUG_MUTEXES=y
746# CONFIG_DEBUG_INFO is not set 759# CONFIG_DEBUG_INFO is not set
747# CONFIG_DEBUG_VM is not set 760# CONFIG_DEBUG_VM is not set
748# CONFIG_DEBUG_WRITECOUNT is not set 761# CONFIG_DEBUG_WRITECOUNT is not set
762# CONFIG_DEBUG_MEMORY_INIT is not set
749# CONFIG_DEBUG_LIST is not set 763# CONFIG_DEBUG_LIST is not set
750# CONFIG_DEBUG_SG is not set 764# CONFIG_DEBUG_SG is not set
751# CONFIG_BOOT_PRINTK_DELAY is not set 765# CONFIG_BOOT_PRINTK_DELAY is not set
766# CONFIG_RCU_TORTURE_TEST is not set
752# CONFIG_BACKTRACE_SELF_TEST is not set 767# CONFIG_BACKTRACE_SELF_TEST is not set
753# CONFIG_FAULT_INJECTION is not set 768# CONFIG_FAULT_INJECTION is not set
769# CONFIG_LATENCYTOP is not set
770CONFIG_SYSCTL_SYSCALL_CHECK=y
771CONFIG_HAVE_FTRACE=y
772CONFIG_HAVE_DYNAMIC_FTRACE=y
773# CONFIG_FTRACE is not set
774# CONFIG_SCHED_TRACER is not set
775# CONFIG_CONTEXT_SWITCH_TRACER is not set
754# CONFIG_SAMPLES is not set 776# CONFIG_SAMPLES is not set
777CONFIG_HAVE_ARCH_KGDB=y
778# CONFIG_KGDB is not set
755# CONFIG_DEBUG_STACKOVERFLOW is not set 779# CONFIG_DEBUG_STACKOVERFLOW is not set
756# CONFIG_DEBUG_STACK_USAGE is not set 780# CONFIG_DEBUG_STACK_USAGE is not set
757# CONFIG_DEBUG_PAGEALLOC is not set 781# CONFIG_DEBUG_PAGEALLOC is not set
758# CONFIG_DEBUGGER is not set 782# CONFIG_CODE_PATCHING_SELFTEST is not set
783# CONFIG_FTR_FIXUP_SELFTEST is not set
784# CONFIG_XMON is not set
759# CONFIG_IRQSTACKS is not set 785# CONFIG_IRQSTACKS is not set
760# CONFIG_BDI_SWITCH is not set 786# CONFIG_BDI_SWITCH is not set
761# CONFIG_PPC_EARLY_DEBUG is not set 787# CONFIG_PPC_EARLY_DEBUG is not set
@@ -808,6 +834,10 @@ CONFIG_CRYPTO=y
808# CONFIG_CRYPTO_MD4 is not set 834# CONFIG_CRYPTO_MD4 is not set
809# CONFIG_CRYPTO_MD5 is not set 835# CONFIG_CRYPTO_MD5 is not set
810# CONFIG_CRYPTO_MICHAEL_MIC is not set 836# CONFIG_CRYPTO_MICHAEL_MIC is not set
837# CONFIG_CRYPTO_RMD128 is not set
838# CONFIG_CRYPTO_RMD160 is not set
839# CONFIG_CRYPTO_RMD256 is not set
840# CONFIG_CRYPTO_RMD320 is not set
811# CONFIG_CRYPTO_SHA1 is not set 841# CONFIG_CRYPTO_SHA1 is not set
812# CONFIG_CRYPTO_SHA256 is not set 842# CONFIG_CRYPTO_SHA256 is not set
813# CONFIG_CRYPTO_SHA512 is not set 843# CONFIG_CRYPTO_SHA512 is not set
@@ -839,5 +869,6 @@ CONFIG_CRYPTO=y
839# CONFIG_CRYPTO_DEFLATE is not set 869# CONFIG_CRYPTO_DEFLATE is not set
840# CONFIG_CRYPTO_LZO is not set 870# CONFIG_CRYPTO_LZO is not set
841CONFIG_CRYPTO_HW=y 871CONFIG_CRYPTO_HW=y
872# CONFIG_CRYPTO_DEV_TALITOS is not set
842# CONFIG_PPC_CLOCK is not set 873# CONFIG_PPC_CLOCK is not set
843# CONFIG_VIRTUALIZATION is not set 874# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
index a0583e5119f..1aecdeab984 100644
--- a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:32 2008 4# Thu Aug 21 07:20:43 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -92,7 +94,6 @@ CONFIG_INITRAMFS_SOURCE=""
92CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
93CONFIG_EMBEDDED=y 95CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
97CONFIG_KALLSYMS_ALL=y 98CONFIG_KALLSYMS_ALL=y
98CONFIG_KALLSYMS_EXTRA_PASS=y 99CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -118,10 +119,16 @@ CONFIG_SLUB=y
118# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set 127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y 130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set 134# CONFIG_TINY_SHMEM is not set
@@ -138,6 +145,7 @@ CONFIG_LBD=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 146# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set
141 149
142# 150#
143# IO Schedulers 151# IO Schedulers
@@ -156,8 +164,6 @@ CONFIG_CLASSIC_RCU=y
156# 164#
157# Platform support 165# Platform support
158# 166#
159# CONFIG_PPC_MPC512x is not set
160# CONFIG_PPC_MPC5121 is not set
161# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
162# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
163# CONFIG_PQ2ADS is not set 169# CONFIG_PQ2ADS is not set
@@ -166,11 +172,13 @@ CONFIG_MPC85xx=y
166# CONFIG_MPC8560_ADS is not set 172# CONFIG_MPC8560_ADS is not set
167# CONFIG_MPC85xx_CDS is not set 173# CONFIG_MPC85xx_CDS is not set
168# CONFIG_MPC85xx_MDS is not set 174# CONFIG_MPC85xx_MDS is not set
175# CONFIG_MPC8536_DS is not set
169CONFIG_MPC85xx_DS=y 176CONFIG_MPC85xx_DS=y
170# CONFIG_KSI8560 is not set 177# CONFIG_KSI8560 is not set
171# CONFIG_STX_GP3 is not set 178# CONFIG_STX_GP3 is not set
172# CONFIG_TQM8540 is not set 179# CONFIG_TQM8540 is not set
173# CONFIG_TQM8541 is not set 180# CONFIG_TQM8541 is not set
181# CONFIG_TQM8548 is not set
174# CONFIG_TQM8555 is not set 182# CONFIG_TQM8555 is not set
175# CONFIG_TQM8560 is not set 183# CONFIG_TQM8560 is not set
176# CONFIG_SBC8548 is not set 184# CONFIG_SBC8548 is not set
@@ -202,7 +210,7 @@ CONFIG_HZ_250=y
202# CONFIG_HZ_300 is not set 210# CONFIG_HZ_300 is not set
203# CONFIG_HZ_1000 is not set 211# CONFIG_HZ_1000 is not set
204CONFIG_HZ=250 212CONFIG_HZ=250
205# CONFIG_SCHED_HRTICK is not set 213CONFIG_SCHED_HRTICK=y
206CONFIG_PREEMPT_NONE=y 214CONFIG_PREEMPT_NONE=y
207# CONFIG_PREEMPT_VOLUNTARY is not set 215# CONFIG_PREEMPT_VOLUNTARY is not set
208# CONFIG_PREEMPT is not set 216# CONFIG_PREEMPT is not set
@@ -225,6 +233,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 233# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
226CONFIG_PAGEFLAGS_EXTENDED=y 234CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 235CONFIG_SPLIT_PTLOCK_CPUS=4
236CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set 237# CONFIG_RESOURCES_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1 238CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
@@ -232,6 +241,7 @@ CONFIG_VIRT_TO_BUS=y
232CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
233CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
234# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
244CONFIG_EXTRA_TARGETS=""
235# CONFIG_PM is not set 245# CONFIG_PM is not set
236CONFIG_SECCOMP=y 246CONFIG_SECCOMP=y
237CONFIG_ISA_DMA_API=y 247CONFIG_ISA_DMA_API=y
@@ -244,6 +254,7 @@ CONFIG_GENERIC_ISA_DMA=y
244CONFIG_PPC_INDIRECT_PCI=y 254CONFIG_PPC_INDIRECT_PCI=y
245CONFIG_FSL_SOC=y 255CONFIG_FSL_SOC=y
246CONFIG_FSL_PCI=y 256CONFIG_FSL_PCI=y
257CONFIG_PPC_PCI_CHOICE=y
247CONFIG_PCI=y 258CONFIG_PCI=y
248CONFIG_PCI_DOMAINS=y 259CONFIG_PCI_DOMAINS=y
249CONFIG_PCI_SYSCALL=y 260CONFIG_PCI_SYSCALL=y
@@ -270,10 +281,6 @@ CONFIG_KERNEL_START=0xc0000000
270CONFIG_PHYSICAL_START=0x00000000 281CONFIG_PHYSICAL_START=0x00000000
271CONFIG_PHYSICAL_ALIGN=0x10000000 282CONFIG_PHYSICAL_ALIGN=0x10000000
272CONFIG_TASK_SIZE=0xc0000000 283CONFIG_TASK_SIZE=0xc0000000
273
274#
275# Networking
276#
277CONFIG_NET=y 284CONFIG_NET=y
278 285
279# 286#
@@ -399,6 +406,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
399CONFIG_STANDALONE=y 406CONFIG_STANDALONE=y
400CONFIG_PREVENT_FIRMWARE_BUILD=y 407CONFIG_PREVENT_FIRMWARE_BUILD=y
401CONFIG_FW_LOADER=y 408CONFIG_FW_LOADER=y
409CONFIG_FIRMWARE_IN_KERNEL=y
410CONFIG_EXTRA_FIRMWARE=""
402# CONFIG_DEBUG_DRIVER is not set 411# CONFIG_DEBUG_DRIVER is not set
403# CONFIG_DEBUG_DEVRES is not set 412# CONFIG_DEBUG_DEVRES is not set
404# CONFIG_SYS_HYPERVISOR is not set 413# CONFIG_SYS_HYPERVISOR is not set
@@ -425,12 +434,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
425# CONFIG_BLK_DEV_XIP is not set 434# CONFIG_BLK_DEV_XIP is not set
426# CONFIG_CDROM_PKTCDVD is not set 435# CONFIG_CDROM_PKTCDVD is not set
427# CONFIG_ATA_OVER_ETH is not set 436# CONFIG_ATA_OVER_ETH is not set
437# CONFIG_BLK_DEV_HD is not set
428CONFIG_MISC_DEVICES=y 438CONFIG_MISC_DEVICES=y
429# CONFIG_PHANTOM is not set 439# CONFIG_PHANTOM is not set
430# CONFIG_EEPROM_93CX6 is not set 440# CONFIG_EEPROM_93CX6 is not set
431# CONFIG_SGI_IOC4 is not set 441# CONFIG_SGI_IOC4 is not set
432# CONFIG_TIFM_CORE is not set 442# CONFIG_TIFM_CORE is not set
433# CONFIG_ENCLOSURE_SERVICES is not set 443# CONFIG_ENCLOSURE_SERVICES is not set
444# CONFIG_HP_ILO is not set
434CONFIG_HAVE_IDE=y 445CONFIG_HAVE_IDE=y
435# CONFIG_IDE is not set 446# CONFIG_IDE is not set
436 447
@@ -510,6 +521,7 @@ CONFIG_SCSI_LOWLEVEL=y
510# CONFIG_SCSI_NSP32 is not set 521# CONFIG_SCSI_NSP32 is not set
511# CONFIG_SCSI_DEBUG is not set 522# CONFIG_SCSI_DEBUG is not set
512# CONFIG_SCSI_SRP is not set 523# CONFIG_SCSI_SRP is not set
524# CONFIG_SCSI_DH is not set
513CONFIG_ATA=y 525CONFIG_ATA=y
514# CONFIG_ATA_NONSTANDARD is not set 526# CONFIG_ATA_NONSTANDARD is not set
515CONFIG_SATA_PMP=y 527CONFIG_SATA_PMP=y
@@ -577,12 +589,15 @@ CONFIG_PATA_ALI=y
577# 589#
578# IEEE 1394 (FireWire) support 590# IEEE 1394 (FireWire) support
579# 591#
592
593#
594# Enable only one of the two stacks, unless you know what you are doing
595#
580# CONFIG_FIREWIRE is not set 596# CONFIG_FIREWIRE is not set
581# CONFIG_IEEE1394 is not set 597# CONFIG_IEEE1394 is not set
582# CONFIG_I2O is not set 598# CONFIG_I2O is not set
583# CONFIG_MACINTOSH_DRIVERS is not set 599# CONFIG_MACINTOSH_DRIVERS is not set
584CONFIG_NETDEVICES=y 600CONFIG_NETDEVICES=y
585# CONFIG_NETDEVICES_MULTIQUEUE is not set
586CONFIG_DUMMY=y 601CONFIG_DUMMY=y
587# CONFIG_BONDING is not set 602# CONFIG_BONDING is not set
588# CONFIG_MACVLAN is not set 603# CONFIG_MACVLAN is not set
@@ -626,7 +641,6 @@ CONFIG_NETDEV_1000=y
626# CONFIG_DL2K is not set 641# CONFIG_DL2K is not set
627# CONFIG_E1000 is not set 642# CONFIG_E1000 is not set
628# CONFIG_E1000E is not set 643# CONFIG_E1000E is not set
629# CONFIG_E1000E_ENABLED is not set
630# CONFIG_IP1000 is not set 644# CONFIG_IP1000 is not set
631# CONFIG_IGB is not set 645# CONFIG_IGB is not set
632# CONFIG_NS83820 is not set 646# CONFIG_NS83820 is not set
@@ -640,9 +654,9 @@ CONFIG_NETDEV_1000=y
640# CONFIG_TIGON3 is not set 654# CONFIG_TIGON3 is not set
641# CONFIG_BNX2 is not set 655# CONFIG_BNX2 is not set
642CONFIG_GIANFAR=y 656CONFIG_GIANFAR=y
643CONFIG_GFAR_NAPI=y
644# CONFIG_QLA3XXX is not set 657# CONFIG_QLA3XXX is not set
645# CONFIG_ATL1 is not set 658# CONFIG_ATL1 is not set
659# CONFIG_ATL1E is not set
646CONFIG_NETDEV_10000=y 660CONFIG_NETDEV_10000=y
647# CONFIG_CHELSIO_T1 is not set 661# CONFIG_CHELSIO_T1 is not set
648# CONFIG_CHELSIO_T3 is not set 662# CONFIG_CHELSIO_T3 is not set
@@ -719,12 +733,14 @@ CONFIG_SERIO_SERPORT=y
719# CONFIG_SERIO_PCIPS2 is not set 733# CONFIG_SERIO_PCIPS2 is not set
720CONFIG_SERIO_LIBPS2=y 734CONFIG_SERIO_LIBPS2=y
721# CONFIG_SERIO_RAW is not set 735# CONFIG_SERIO_RAW is not set
736# CONFIG_SERIO_XILINX_XPS_PS2 is not set
722# CONFIG_GAMEPORT is not set 737# CONFIG_GAMEPORT is not set
723 738
724# 739#
725# Character devices 740# Character devices
726# 741#
727CONFIG_VT=y 742CONFIG_VT=y
743CONFIG_CONSOLE_TRANSLATIONS=y
728CONFIG_VT_CONSOLE=y 744CONFIG_VT_CONSOLE=y
729CONFIG_HW_CONSOLE=y 745CONFIG_HW_CONSOLE=y
730# CONFIG_VT_HW_CONSOLE_BINDING is not set 746# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -758,7 +774,7 @@ CONFIG_UNIX98_PTYS=y
758CONFIG_LEGACY_PTYS=y 774CONFIG_LEGACY_PTYS=y
759CONFIG_LEGACY_PTY_COUNT=256 775CONFIG_LEGACY_PTY_COUNT=256
760# CONFIG_IPMI_HANDLER is not set 776# CONFIG_IPMI_HANDLER is not set
761# CONFIG_HW_RANDOM is not set 777CONFIG_HW_RANDOM=y
762CONFIG_NVRAM=y 778CONFIG_NVRAM=y
763# CONFIG_R3964 is not set 779# CONFIG_R3964 is not set
764# CONFIG_APPLICOM is not set 780# CONFIG_APPLICOM is not set
@@ -768,43 +784,64 @@ CONFIG_DEVPORT=y
768CONFIG_I2C=y 784CONFIG_I2C=y
769CONFIG_I2C_BOARDINFO=y 785CONFIG_I2C_BOARDINFO=y
770# CONFIG_I2C_CHARDEV is not set 786# CONFIG_I2C_CHARDEV is not set
787CONFIG_I2C_HELPER_AUTO=y
771 788
772# 789#
773# I2C Hardware Bus support 790# I2C Hardware Bus support
774# 791#
792
793#
794# PC SMBus host controller drivers
795#
775# CONFIG_I2C_ALI1535 is not set 796# CONFIG_I2C_ALI1535 is not set
776# CONFIG_I2C_ALI1563 is not set 797# CONFIG_I2C_ALI1563 is not set
777# CONFIG_I2C_ALI15X3 is not set 798# CONFIG_I2C_ALI15X3 is not set
778# CONFIG_I2C_AMD756 is not set 799# CONFIG_I2C_AMD756 is not set
779# CONFIG_I2C_AMD8111 is not set 800# CONFIG_I2C_AMD8111 is not set
780# CONFIG_I2C_I801 is not set 801# CONFIG_I2C_I801 is not set
781# CONFIG_I2C_I810 is not set 802# CONFIG_I2C_ISCH is not set
782# CONFIG_I2C_PIIX4 is not set 803# CONFIG_I2C_PIIX4 is not set
783CONFIG_I2C_MPC=y
784# CONFIG_I2C_NFORCE2 is not set 804# CONFIG_I2C_NFORCE2 is not set
785# CONFIG_I2C_OCORES is not set
786# CONFIG_I2C_PARPORT_LIGHT is not set
787# CONFIG_I2C_PROSAVAGE is not set
788# CONFIG_I2C_SAVAGE4 is not set
789# CONFIG_I2C_SIMTEC is not set
790# CONFIG_I2C_SIS5595 is not set 805# CONFIG_I2C_SIS5595 is not set
791# CONFIG_I2C_SIS630 is not set 806# CONFIG_I2C_SIS630 is not set
792# CONFIG_I2C_SIS96X is not set 807# CONFIG_I2C_SIS96X is not set
793# CONFIG_I2C_TAOS_EVM is not set
794# CONFIG_I2C_STUB is not set
795# CONFIG_I2C_TINY_USB is not set
796# CONFIG_I2C_VIA is not set 808# CONFIG_I2C_VIA is not set
797# CONFIG_I2C_VIAPRO is not set 809# CONFIG_I2C_VIAPRO is not set
810
811#
812# I2C system bus drivers (mostly embedded / system-on-chip)
813#
814CONFIG_I2C_MPC=y
815# CONFIG_I2C_OCORES is not set
816# CONFIG_I2C_SIMTEC is not set
817
818#
819# External I2C/SMBus adapter drivers
820#
821# CONFIG_I2C_PARPORT_LIGHT is not set
822# CONFIG_I2C_TAOS_EVM is not set
823# CONFIG_I2C_TINY_USB is not set
824
825#
826# Graphics adapter I2C/DDC channel drivers
827#
798# CONFIG_I2C_VOODOO3 is not set 828# CONFIG_I2C_VOODOO3 is not set
829
830#
831# Other I2C/SMBus bus drivers
832#
799# CONFIG_I2C_PCA_PLATFORM is not set 833# CONFIG_I2C_PCA_PLATFORM is not set
834# CONFIG_I2C_STUB is not set
800 835
801# 836#
802# Miscellaneous I2C Chip support 837# Miscellaneous I2C Chip support
803# 838#
804# CONFIG_DS1682 is not set 839# CONFIG_DS1682 is not set
840# CONFIG_AT24 is not set
805CONFIG_SENSORS_EEPROM=y 841CONFIG_SENSORS_EEPROM=y
806# CONFIG_SENSORS_PCF8574 is not set 842# CONFIG_SENSORS_PCF8574 is not set
807# CONFIG_PCF8575 is not set 843# CONFIG_PCF8575 is not set
844# CONFIG_SENSORS_PCA9539 is not set
808# CONFIG_SENSORS_PCF8591 is not set 845# CONFIG_SENSORS_PCF8591 is not set
809# CONFIG_SENSORS_MAX6875 is not set 846# CONFIG_SENSORS_MAX6875 is not set
810# CONFIG_SENSORS_TSL2550 is not set 847# CONFIG_SENSORS_TSL2550 is not set
@@ -813,10 +850,13 @@ CONFIG_SENSORS_EEPROM=y
813# CONFIG_I2C_DEBUG_BUS is not set 850# CONFIG_I2C_DEBUG_BUS is not set
814# CONFIG_I2C_DEBUG_CHIP is not set 851# CONFIG_I2C_DEBUG_CHIP is not set
815# CONFIG_SPI is not set 852# CONFIG_SPI is not set
853CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
854# CONFIG_GPIOLIB is not set
816# CONFIG_W1 is not set 855# CONFIG_W1 is not set
817# CONFIG_POWER_SUPPLY is not set 856# CONFIG_POWER_SUPPLY is not set
818# CONFIG_HWMON is not set 857# CONFIG_HWMON is not set
819# CONFIG_THERMAL is not set 858# CONFIG_THERMAL is not set
859# CONFIG_THERMAL_HWMON is not set
820# CONFIG_WATCHDOG is not set 860# CONFIG_WATCHDOG is not set
821 861
822# 862#
@@ -828,8 +868,10 @@ CONFIG_SSB_POSSIBLE=y
828# 868#
829# Multifunction device drivers 869# Multifunction device drivers
830# 870#
871# CONFIG_MFD_CORE is not set
831# CONFIG_MFD_SM501 is not set 872# CONFIG_MFD_SM501 is not set
832# CONFIG_HTC_PASIC3 is not set 873# CONFIG_HTC_PASIC3 is not set
874# CONFIG_MFD_TMIO is not set
833 875
834# 876#
835# Multimedia devices 877# Multimedia devices
@@ -871,6 +913,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
871# CONFIG_DVB_TTUSB_BUDGET is not set 913# CONFIG_DVB_TTUSB_BUDGET is not set
872# CONFIG_DVB_TTUSB_DEC is not set 914# CONFIG_DVB_TTUSB_DEC is not set
873# CONFIG_DVB_CINERGYT2 is not set 915# CONFIG_DVB_CINERGYT2 is not set
916# CONFIG_DVB_SIANO_SMS1XXX is not set
874 917
875# 918#
876# Supported FlexCopII (B2C2) Adapters 919# Supported FlexCopII (B2C2) Adapters
@@ -917,6 +960,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
917# CONFIG_DVB_SP887X is not set 960# CONFIG_DVB_SP887X is not set
918# CONFIG_DVB_CX22700 is not set 961# CONFIG_DVB_CX22700 is not set
919# CONFIG_DVB_CX22702 is not set 962# CONFIG_DVB_CX22702 is not set
963# CONFIG_DVB_DRX397XD is not set
920# CONFIG_DVB_L64781 is not set 964# CONFIG_DVB_L64781 is not set
921# CONFIG_DVB_TDA1004X is not set 965# CONFIG_DVB_TDA1004X is not set
922# CONFIG_DVB_NXT6000 is not set 966# CONFIG_DVB_NXT6000 is not set
@@ -984,15 +1028,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
984CONFIG_VGA_CONSOLE=y 1028CONFIG_VGA_CONSOLE=y
985# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1029# CONFIG_VGACON_SOFT_SCROLLBACK is not set
986CONFIG_DUMMY_CONSOLE=y 1030CONFIG_DUMMY_CONSOLE=y
987
988#
989# Sound
990#
991CONFIG_SOUND=y 1031CONFIG_SOUND=y
992
993#
994# Advanced Linux Sound Architecture
995#
996CONFIG_SND=y 1032CONFIG_SND=y
997CONFIG_SND_TIMER=y 1033CONFIG_SND_TIMER=y
998CONFIG_SND_PCM=y 1034CONFIG_SND_PCM=y
@@ -1006,19 +1042,15 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
1006CONFIG_SND_VERBOSE_PROCFS=y 1042CONFIG_SND_VERBOSE_PROCFS=y
1007# CONFIG_SND_VERBOSE_PRINTK is not set 1043# CONFIG_SND_VERBOSE_PRINTK is not set
1008# CONFIG_SND_DEBUG is not set 1044# CONFIG_SND_DEBUG is not set
1009 1045CONFIG_SND_VMASTER=y
1010#
1011# Generic devices
1012#
1013CONFIG_SND_AC97_CODEC=y 1046CONFIG_SND_AC97_CODEC=y
1047CONFIG_SND_DRIVERS=y
1014# CONFIG_SND_DUMMY is not set 1048# CONFIG_SND_DUMMY is not set
1015# CONFIG_SND_MTPAV is not set 1049# CONFIG_SND_MTPAV is not set
1016# CONFIG_SND_SERIAL_U16550 is not set 1050# CONFIG_SND_SERIAL_U16550 is not set
1017# CONFIG_SND_MPU401 is not set 1051# CONFIG_SND_MPU401 is not set
1018 1052# CONFIG_SND_AC97_POWER_SAVE is not set
1019# 1053CONFIG_SND_PCI=y
1020# PCI devices
1021#
1022# CONFIG_SND_AD1889 is not set 1054# CONFIG_SND_AD1889 is not set
1023# CONFIG_SND_ALS300 is not set 1055# CONFIG_SND_ALS300 is not set
1024# CONFIG_SND_ALS4000 is not set 1056# CONFIG_SND_ALS4000 is not set
@@ -1080,39 +1112,12 @@ CONFIG_SND_INTEL8X0=y
1080# CONFIG_SND_VIRTUOSO is not set 1112# CONFIG_SND_VIRTUOSO is not set
1081# CONFIG_SND_VX222 is not set 1113# CONFIG_SND_VX222 is not set
1082# CONFIG_SND_YMFPCI is not set 1114# CONFIG_SND_YMFPCI is not set
1083# CONFIG_SND_AC97_POWER_SAVE is not set 1115CONFIG_SND_PPC=y
1084 1116CONFIG_SND_USB=y
1085#
1086# ALSA PowerMac devices
1087#
1088
1089#
1090# ALSA PowerPC devices
1091#
1092
1093#
1094# USB devices
1095#
1096# CONFIG_SND_USB_AUDIO is not set 1117# CONFIG_SND_USB_AUDIO is not set
1097# CONFIG_SND_USB_USX2Y is not set 1118# CONFIG_SND_USB_USX2Y is not set
1098# CONFIG_SND_USB_CAIAQ is not set 1119# CONFIG_SND_USB_CAIAQ is not set
1099
1100#
1101# System on Chip audio support
1102#
1103# CONFIG_SND_SOC is not set 1120# CONFIG_SND_SOC is not set
1104
1105#
1106# ALSA SoC audio for Freescale SOCs
1107#
1108
1109#
1110# SoC Audio for the Texas Instruments OMAP
1111#
1112
1113#
1114# Open Sound System
1115#
1116# CONFIG_SOUND_PRIME is not set 1121# CONFIG_SOUND_PRIME is not set
1117CONFIG_AC97_BUS=y 1122CONFIG_AC97_BUS=y
1118CONFIG_HID_SUPPORT=y 1123CONFIG_HID_SUPPORT=y
@@ -1144,6 +1149,7 @@ CONFIG_USB_DEVICE_CLASS=y
1144# CONFIG_USB_OTG is not set 1149# CONFIG_USB_OTG is not set
1145# CONFIG_USB_OTG_WHITELIST is not set 1150# CONFIG_USB_OTG_WHITELIST is not set
1146# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1151# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1152CONFIG_USB_MON=y
1147 1153
1148# 1154#
1149# USB Host Controller Drivers 1155# USB Host Controller Drivers
@@ -1195,6 +1201,7 @@ CONFIG_USB_STORAGE=y
1195# CONFIG_USB_STORAGE_ALAUDA is not set 1201# CONFIG_USB_STORAGE_ALAUDA is not set
1196# CONFIG_USB_STORAGE_ONETOUCH is not set 1202# CONFIG_USB_STORAGE_ONETOUCH is not set
1197# CONFIG_USB_STORAGE_KARMA is not set 1203# CONFIG_USB_STORAGE_KARMA is not set
1204# CONFIG_USB_STORAGE_SIERRA is not set
1198# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1205# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1199# CONFIG_USB_LIBUSUAL is not set 1206# CONFIG_USB_LIBUSUAL is not set
1200 1207
@@ -1203,7 +1210,6 @@ CONFIG_USB_STORAGE=y
1203# 1210#
1204# CONFIG_USB_MDC800 is not set 1211# CONFIG_USB_MDC800 is not set
1205# CONFIG_USB_MICROTEK is not set 1212# CONFIG_USB_MICROTEK is not set
1206CONFIG_USB_MON=y
1207 1213
1208# 1214#
1209# USB port drivers 1215# USB port drivers
@@ -1216,7 +1222,6 @@ CONFIG_USB_MON=y
1216# CONFIG_USB_EMI62 is not set 1222# CONFIG_USB_EMI62 is not set
1217# CONFIG_USB_EMI26 is not set 1223# CONFIG_USB_EMI26 is not set
1218# CONFIG_USB_ADUTUX is not set 1224# CONFIG_USB_ADUTUX is not set
1219# CONFIG_USB_AUERSWALD is not set
1220# CONFIG_USB_RIO500 is not set 1225# CONFIG_USB_RIO500 is not set
1221# CONFIG_USB_LEGOTOWER is not set 1226# CONFIG_USB_LEGOTOWER is not set
1222# CONFIG_USB_LCD is not set 1227# CONFIG_USB_LCD is not set
@@ -1270,6 +1275,7 @@ CONFIG_RTC_INTF_DEV=y
1270# CONFIG_RTC_DRV_PCF8583 is not set 1275# CONFIG_RTC_DRV_PCF8583 is not set
1271# CONFIG_RTC_DRV_M41T80 is not set 1276# CONFIG_RTC_DRV_M41T80 is not set
1272# CONFIG_RTC_DRV_S35390A is not set 1277# CONFIG_RTC_DRV_S35390A is not set
1278# CONFIG_RTC_DRV_FM3130 is not set
1273 1279
1274# 1280#
1275# SPI RTC drivers 1281# SPI RTC drivers
@@ -1303,6 +1309,7 @@ CONFIG_DMA_ENGINE=y
1303# DMA Clients 1309# DMA Clients
1304# 1310#
1305# CONFIG_NET_DMA is not set 1311# CONFIG_NET_DMA is not set
1312# CONFIG_DMATEST is not set
1306# CONFIG_UIO is not set 1313# CONFIG_UIO is not set
1307 1314
1308# 1315#
@@ -1379,6 +1386,7 @@ CONFIG_EFS_FS=m
1379CONFIG_CRAMFS=y 1386CONFIG_CRAMFS=y
1380CONFIG_VXFS_FS=m 1387CONFIG_VXFS_FS=m
1381# CONFIG_MINIX_FS is not set 1388# CONFIG_MINIX_FS is not set
1389# CONFIG_OMFS_FS is not set
1382CONFIG_HPFS_FS=m 1390CONFIG_HPFS_FS=m
1383CONFIG_QNX4FS_FS=m 1391CONFIG_QNX4FS_FS=m
1384# CONFIG_ROMFS_FS is not set 1392# CONFIG_ROMFS_FS is not set
@@ -1391,17 +1399,16 @@ CONFIG_NFS_FS=y
1391CONFIG_NFS_V3=y 1399CONFIG_NFS_V3=y
1392# CONFIG_NFS_V3_ACL is not set 1400# CONFIG_NFS_V3_ACL is not set
1393CONFIG_NFS_V4=y 1401CONFIG_NFS_V4=y
1402CONFIG_ROOT_NFS=y
1394CONFIG_NFSD=y 1403CONFIG_NFSD=y
1395# CONFIG_NFSD_V3 is not set 1404# CONFIG_NFSD_V3 is not set
1396# CONFIG_NFSD_V4 is not set 1405# CONFIG_NFSD_V4 is not set
1397CONFIG_ROOT_NFS=y
1398CONFIG_LOCKD=y 1406CONFIG_LOCKD=y
1399CONFIG_LOCKD_V4=y 1407CONFIG_LOCKD_V4=y
1400CONFIG_EXPORTFS=y 1408CONFIG_EXPORTFS=y
1401CONFIG_NFS_COMMON=y 1409CONFIG_NFS_COMMON=y
1402CONFIG_SUNRPC=y 1410CONFIG_SUNRPC=y
1403CONFIG_SUNRPC_GSS=y 1411CONFIG_SUNRPC_GSS=y
1404# CONFIG_SUNRPC_BIND34 is not set
1405CONFIG_RPCSEC_GSS_KRB5=y 1412CONFIG_RPCSEC_GSS_KRB5=y
1406# CONFIG_RPCSEC_GSS_SPKM3 is not set 1413# CONFIG_RPCSEC_GSS_SPKM3 is not set
1407# CONFIG_SMB_FS is not set 1414# CONFIG_SMB_FS is not set
@@ -1480,6 +1487,7 @@ CONFIG_BITREVERSE=y
1480# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1487# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1481# CONFIG_CRC_CCITT is not set 1488# CONFIG_CRC_CCITT is not set
1482# CONFIG_CRC16 is not set 1489# CONFIG_CRC16 is not set
1490CONFIG_CRC_T10DIF=y
1483CONFIG_CRC_ITU_T=m 1491CONFIG_CRC_ITU_T=m
1484CONFIG_CRC32=y 1492CONFIG_CRC32=y
1485# CONFIG_CRC7 is not set 1493# CONFIG_CRC7 is not set
@@ -1505,6 +1513,8 @@ CONFIG_FRAME_WARN=1024
1505CONFIG_DEBUG_KERNEL=y 1513CONFIG_DEBUG_KERNEL=y
1506# CONFIG_DEBUG_SHIRQ is not set 1514# CONFIG_DEBUG_SHIRQ is not set
1507CONFIG_DETECT_SOFTLOCKUP=y 1515CONFIG_DETECT_SOFTLOCKUP=y
1516# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1517CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1508CONFIG_SCHED_DEBUG=y 1518CONFIG_SCHED_DEBUG=y
1509# CONFIG_SCHEDSTATS is not set 1519# CONFIG_SCHEDSTATS is not set
1510# CONFIG_TIMER_STATS is not set 1520# CONFIG_TIMER_STATS is not set
@@ -1523,17 +1533,29 @@ CONFIG_SCHED_DEBUG=y
1523CONFIG_DEBUG_INFO=y 1533CONFIG_DEBUG_INFO=y
1524# CONFIG_DEBUG_VM is not set 1534# CONFIG_DEBUG_VM is not set
1525# CONFIG_DEBUG_WRITECOUNT is not set 1535# CONFIG_DEBUG_WRITECOUNT is not set
1536# CONFIG_DEBUG_MEMORY_INIT is not set
1526# CONFIG_DEBUG_LIST is not set 1537# CONFIG_DEBUG_LIST is not set
1527# CONFIG_DEBUG_SG is not set 1538# CONFIG_DEBUG_SG is not set
1528# CONFIG_BOOT_PRINTK_DELAY is not set 1539# CONFIG_BOOT_PRINTK_DELAY is not set
1529# CONFIG_RCU_TORTURE_TEST is not set 1540# CONFIG_RCU_TORTURE_TEST is not set
1530# CONFIG_BACKTRACE_SELF_TEST is not set 1541# CONFIG_BACKTRACE_SELF_TEST is not set
1531# CONFIG_FAULT_INJECTION is not set 1542# CONFIG_FAULT_INJECTION is not set
1543# CONFIG_LATENCYTOP is not set
1544CONFIG_SYSCTL_SYSCALL_CHECK=y
1545CONFIG_HAVE_FTRACE=y
1546CONFIG_HAVE_DYNAMIC_FTRACE=y
1547# CONFIG_FTRACE is not set
1548# CONFIG_SCHED_TRACER is not set
1549# CONFIG_CONTEXT_SWITCH_TRACER is not set
1532# CONFIG_SAMPLES is not set 1550# CONFIG_SAMPLES is not set
1551CONFIG_HAVE_ARCH_KGDB=y
1552# CONFIG_KGDB is not set
1533# CONFIG_DEBUG_STACKOVERFLOW is not set 1553# CONFIG_DEBUG_STACKOVERFLOW is not set
1534# CONFIG_DEBUG_STACK_USAGE is not set 1554# CONFIG_DEBUG_STACK_USAGE is not set
1535# CONFIG_DEBUG_PAGEALLOC is not set 1555# CONFIG_DEBUG_PAGEALLOC is not set
1536# CONFIG_DEBUGGER is not set 1556# CONFIG_CODE_PATCHING_SELFTEST is not set
1557# CONFIG_FTR_FIXUP_SELFTEST is not set
1558# CONFIG_XMON is not set
1537# CONFIG_IRQSTACKS is not set 1559# CONFIG_IRQSTACKS is not set
1538# CONFIG_BDI_SWITCH is not set 1560# CONFIG_BDI_SWITCH is not set
1539# CONFIG_PPC_EARLY_DEBUG is not set 1561# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1550,13 +1572,14 @@ CONFIG_CRYPTO=y
1550# Crypto core or helper 1572# Crypto core or helper
1551# 1573#
1552CONFIG_CRYPTO_ALGAPI=y 1574CONFIG_CRYPTO_ALGAPI=y
1575CONFIG_CRYPTO_AEAD=y
1553CONFIG_CRYPTO_BLKCIPHER=y 1576CONFIG_CRYPTO_BLKCIPHER=y
1554CONFIG_CRYPTO_HASH=y 1577CONFIG_CRYPTO_HASH=y
1555CONFIG_CRYPTO_MANAGER=y 1578CONFIG_CRYPTO_MANAGER=y
1556# CONFIG_CRYPTO_GF128MUL is not set 1579# CONFIG_CRYPTO_GF128MUL is not set
1557# CONFIG_CRYPTO_NULL is not set 1580# CONFIG_CRYPTO_NULL is not set
1558# CONFIG_CRYPTO_CRYPTD is not set 1581# CONFIG_CRYPTO_CRYPTD is not set
1559# CONFIG_CRYPTO_AUTHENC is not set 1582CONFIG_CRYPTO_AUTHENC=y
1560# CONFIG_CRYPTO_TEST is not set 1583# CONFIG_CRYPTO_TEST is not set
1561 1584
1562# 1585#
@@ -1590,6 +1613,10 @@ CONFIG_CRYPTO_HMAC=y
1590# CONFIG_CRYPTO_MD4 is not set 1613# CONFIG_CRYPTO_MD4 is not set
1591CONFIG_CRYPTO_MD5=y 1614CONFIG_CRYPTO_MD5=y
1592# CONFIG_CRYPTO_MICHAEL_MIC is not set 1615# CONFIG_CRYPTO_MICHAEL_MIC is not set
1616# CONFIG_CRYPTO_RMD128 is not set
1617# CONFIG_CRYPTO_RMD160 is not set
1618# CONFIG_CRYPTO_RMD256 is not set
1619# CONFIG_CRYPTO_RMD320 is not set
1593CONFIG_CRYPTO_SHA1=m 1620CONFIG_CRYPTO_SHA1=m
1594# CONFIG_CRYPTO_SHA256 is not set 1621# CONFIG_CRYPTO_SHA256 is not set
1595# CONFIG_CRYPTO_SHA512 is not set 1622# CONFIG_CRYPTO_SHA512 is not set
@@ -1622,5 +1649,6 @@ CONFIG_CRYPTO_DES=y
1622# CONFIG_CRYPTO_LZO is not set 1649# CONFIG_CRYPTO_LZO is not set
1623CONFIG_CRYPTO_HW=y 1650CONFIG_CRYPTO_HW=y
1624# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1651# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1652CONFIG_CRYPTO_DEV_TALITOS=y
1625# CONFIG_PPC_CLOCK is not set 1653# CONFIG_PPC_CLOCK is not set
1626# CONFIG_VIRTUALIZATION is not set 1654# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
index e19592b4204..06e26d906f6 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:33 2008 4# Thu Aug 21 00:52:32 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -89,7 +92,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 95CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 96# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 97# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -114,10 +116,16 @@ CONFIG_SLUB=y
114# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
119# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126CONFIG_HAVE_CLK=y
120CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -128,6 +136,7 @@ CONFIG_BLOCK=y
128# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_LSF is not set 137# CONFIG_LSF is not set
130# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set
131 140
132# 141#
133# IO Schedulers 142# IO Schedulers
@@ -146,8 +155,6 @@ CONFIG_CLASSIC_RCU=y
146# 155#
147# Platform support 156# Platform support
148# 157#
149# CONFIG_PPC_MPC512x is not set
150# CONFIG_PPC_MPC5121 is not set
151# CONFIG_PPC_CELL is not set 158# CONFIG_PPC_CELL is not set
152# CONFIG_PPC_CELL_NATIVE is not set 159# CONFIG_PPC_CELL_NATIVE is not set
153# CONFIG_PQ2ADS is not set 160# CONFIG_PQ2ADS is not set
@@ -156,11 +163,13 @@ CONFIG_MPC85xx=y
156CONFIG_MPC8560_ADS=y 163CONFIG_MPC8560_ADS=y
157# CONFIG_MPC85xx_CDS is not set 164# CONFIG_MPC85xx_CDS is not set
158# CONFIG_MPC85xx_MDS is not set 165# CONFIG_MPC85xx_MDS is not set
166# CONFIG_MPC8536_DS is not set
159# CONFIG_MPC85xx_DS is not set 167# CONFIG_MPC85xx_DS is not set
160# CONFIG_KSI8560 is not set 168# CONFIG_KSI8560 is not set
161# CONFIG_STX_GP3 is not set 169# CONFIG_STX_GP3 is not set
162# CONFIG_TQM8540 is not set 170# CONFIG_TQM8540 is not set
163# CONFIG_TQM8541 is not set 171# CONFIG_TQM8541 is not set
172# CONFIG_TQM8548 is not set
164# CONFIG_TQM8555 is not set 173# CONFIG_TQM8555 is not set
165# CONFIG_TQM8560 is not set 174# CONFIG_TQM8560 is not set
166# CONFIG_SBC8548 is not set 175# CONFIG_SBC8548 is not set
@@ -177,7 +186,6 @@ CONFIG_MPIC=y
177# CONFIG_GENERIC_IOMAP is not set 186# CONFIG_GENERIC_IOMAP is not set
178# CONFIG_CPU_FREQ is not set 187# CONFIG_CPU_FREQ is not set
179CONFIG_CPM2=y 188CONFIG_CPM2=y
180CONFIG_PPC_CPM_NEW_BINDING=y
181# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
182CONFIG_CPM=y 190CONFIG_CPM=y
183 191
@@ -217,6 +225,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 229# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
@@ -224,6 +233,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 233CONFIG_FORCE_MAX_ZONEORDER=11
225# CONFIG_PROC_DEVICETREE is not set 234# CONFIG_PROC_DEVICETREE is not set
226# CONFIG_CMDLINE_BOOL is not set 235# CONFIG_CMDLINE_BOOL is not set
236CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 237# CONFIG_PM is not set
228# CONFIG_SECCOMP is not set 238# CONFIG_SECCOMP is not set
229CONFIG_ISA_DMA_API=y 239CONFIG_ISA_DMA_API=y
@@ -235,6 +245,7 @@ CONFIG_ZONE_DMA=y
235CONFIG_PPC_INDIRECT_PCI=y 245CONFIG_PPC_INDIRECT_PCI=y
236CONFIG_FSL_SOC=y 246CONFIG_FSL_SOC=y
237CONFIG_FSL_PCI=y 247CONFIG_FSL_PCI=y
248CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 249CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 250CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 251CONFIG_PCI_SYSCALL=y
@@ -261,10 +272,6 @@ CONFIG_KERNEL_START=0xc0000000
261CONFIG_PHYSICAL_START=0x00000000 272CONFIG_PHYSICAL_START=0x00000000
262CONFIG_PHYSICAL_ALIGN=0x10000000 273CONFIG_PHYSICAL_ALIGN=0x10000000
263CONFIG_TASK_SIZE=0xc0000000 274CONFIG_TASK_SIZE=0xc0000000
264
265#
266# Networking
267#
268CONFIG_NET=y 275CONFIG_NET=y
269 276
270# 277#
@@ -363,6 +370,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
363# CONFIG_CONNECTOR is not set 370# CONFIG_CONNECTOR is not set
364# CONFIG_MTD is not set 371# CONFIG_MTD is not set
365CONFIG_OF_DEVICE=y 372CONFIG_OF_DEVICE=y
373CONFIG_OF_GPIO=y
366# CONFIG_PARPORT is not set 374# CONFIG_PARPORT is not set
367CONFIG_BLK_DEV=y 375CONFIG_BLK_DEV=y
368# CONFIG_BLK_DEV_FD is not set 376# CONFIG_BLK_DEV_FD is not set
@@ -381,12 +389,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
381# CONFIG_BLK_DEV_XIP is not set 389# CONFIG_BLK_DEV_XIP is not set
382# CONFIG_CDROM_PKTCDVD is not set 390# CONFIG_CDROM_PKTCDVD is not set
383# CONFIG_ATA_OVER_ETH is not set 391# CONFIG_ATA_OVER_ETH is not set
392# CONFIG_BLK_DEV_HD is not set
384CONFIG_MISC_DEVICES=y 393CONFIG_MISC_DEVICES=y
385# CONFIG_PHANTOM is not set 394# CONFIG_PHANTOM is not set
386# CONFIG_EEPROM_93CX6 is not set 395# CONFIG_EEPROM_93CX6 is not set
387# CONFIG_SGI_IOC4 is not set 396# CONFIG_SGI_IOC4 is not set
388# CONFIG_TIFM_CORE is not set 397# CONFIG_TIFM_CORE is not set
389# CONFIG_ENCLOSURE_SERVICES is not set 398# CONFIG_ENCLOSURE_SERVICES is not set
399# CONFIG_HP_ILO is not set
390CONFIG_HAVE_IDE=y 400CONFIG_HAVE_IDE=y
391# CONFIG_IDE is not set 401# CONFIG_IDE is not set
392 402
@@ -404,12 +414,15 @@ CONFIG_HAVE_IDE=y
404# 414#
405# IEEE 1394 (FireWire) support 415# IEEE 1394 (FireWire) support
406# 416#
417
418#
419# Enable only one of the two stacks, unless you know what you are doing
420#
407# CONFIG_FIREWIRE is not set 421# CONFIG_FIREWIRE is not set
408# CONFIG_IEEE1394 is not set 422# CONFIG_IEEE1394 is not set
409# CONFIG_I2O is not set 423# CONFIG_I2O is not set
410# CONFIG_MACINTOSH_DRIVERS is not set 424# CONFIG_MACINTOSH_DRIVERS is not set
411CONFIG_NETDEVICES=y 425CONFIG_NETDEVICES=y
412# CONFIG_NETDEVICES_MULTIQUEUE is not set
413# CONFIG_DUMMY is not set 426# CONFIG_DUMMY is not set
414# CONFIG_BONDING is not set 427# CONFIG_BONDING is not set
415# CONFIG_MACVLAN is not set 428# CONFIG_MACVLAN is not set
@@ -456,10 +469,8 @@ CONFIG_NETDEV_1000=y
456# CONFIG_ACENIC is not set 469# CONFIG_ACENIC is not set
457# CONFIG_DL2K is not set 470# CONFIG_DL2K is not set
458CONFIG_E1000=y 471CONFIG_E1000=y
459CONFIG_E1000_NAPI=y
460# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 472# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
461# CONFIG_E1000E is not set 473# CONFIG_E1000E is not set
462# CONFIG_E1000E_ENABLED is not set
463# CONFIG_IP1000 is not set 474# CONFIG_IP1000 is not set
464# CONFIG_IGB is not set 475# CONFIG_IGB is not set
465# CONFIG_NS83820 is not set 476# CONFIG_NS83820 is not set
@@ -473,9 +484,9 @@ CONFIG_E1000_NAPI=y
473# CONFIG_TIGON3 is not set 484# CONFIG_TIGON3 is not set
474# CONFIG_BNX2 is not set 485# CONFIG_BNX2 is not set
475CONFIG_GIANFAR=y 486CONFIG_GIANFAR=y
476CONFIG_GFAR_NAPI=y
477# CONFIG_QLA3XXX is not set 487# CONFIG_QLA3XXX is not set
478# CONFIG_ATL1 is not set 488# CONFIG_ATL1 is not set
489# CONFIG_ATL1E is not set
479CONFIG_NETDEV_10000=y 490CONFIG_NETDEV_10000=y
480# CONFIG_CHELSIO_T1 is not set 491# CONFIG_CHELSIO_T1 is not set
481# CONFIG_CHELSIO_T3 is not set 492# CONFIG_CHELSIO_T3 is not set
@@ -582,6 +593,24 @@ CONFIG_GEN_RTC=y
582CONFIG_DEVPORT=y 593CONFIG_DEVPORT=y
583# CONFIG_I2C is not set 594# CONFIG_I2C is not set
584# CONFIG_SPI is not set 595# CONFIG_SPI is not set
596CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
597CONFIG_ARCH_REQUIRE_GPIOLIB=y
598CONFIG_GPIOLIB=y
599# CONFIG_DEBUG_GPIO is not set
600# CONFIG_GPIO_SYSFS is not set
601
602#
603# I2C GPIO expanders:
604#
605
606#
607# PCI GPIO expanders:
608#
609# CONFIG_GPIO_BT8XX is not set
610
611#
612# SPI GPIO expanders:
613#
585# CONFIG_W1 is not set 614# CONFIG_W1 is not set
586# CONFIG_POWER_SUPPLY is not set 615# CONFIG_POWER_SUPPLY is not set
587CONFIG_HWMON=y 616CONFIG_HWMON=y
@@ -602,6 +631,7 @@ CONFIG_HWMON=y
602# CONFIG_SENSORS_W83627EHF is not set 631# CONFIG_SENSORS_W83627EHF is not set
603# CONFIG_HWMON_DEBUG_CHIP is not set 632# CONFIG_HWMON_DEBUG_CHIP is not set
604# CONFIG_THERMAL is not set 633# CONFIG_THERMAL is not set
634# CONFIG_THERMAL_HWMON is not set
605# CONFIG_WATCHDOG is not set 635# CONFIG_WATCHDOG is not set
606 636
607# 637#
@@ -613,8 +643,10 @@ CONFIG_SSB_POSSIBLE=y
613# 643#
614# Multifunction device drivers 644# Multifunction device drivers
615# 645#
646# CONFIG_MFD_CORE is not set
616# CONFIG_MFD_SM501 is not set 647# CONFIG_MFD_SM501 is not set
617# CONFIG_HTC_PASIC3 is not set 648# CONFIG_HTC_PASIC3 is not set
649# CONFIG_MFD_TMIO is not set
618 650
619# 651#
620# Multimedia devices 652# Multimedia devices
@@ -646,10 +678,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
646# Display device support 678# Display device support
647# 679#
648# CONFIG_DISPLAY_SUPPORT is not set 680# CONFIG_DISPLAY_SUPPORT is not set
649
650#
651# Sound
652#
653# CONFIG_SOUND is not set 681# CONFIG_SOUND is not set
654CONFIG_HID_SUPPORT=y 682CONFIG_HID_SUPPORT=y
655CONFIG_HID=y 683CONFIG_HID=y
@@ -664,6 +692,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
664# CONFIG_USB_OTG_BLACKLIST_HUB is not set 692# CONFIG_USB_OTG_BLACKLIST_HUB is not set
665 693
666# 694#
695# Enable Host or Gadget support to see Inventra options
696#
697
698#
667# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 699# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
668# 700#
669# CONFIG_USB_GADGET is not set 701# CONFIG_USB_GADGET is not set
@@ -741,6 +773,7 @@ CONFIG_TMPFS=y
741# CONFIG_CRAMFS is not set 773# CONFIG_CRAMFS is not set
742# CONFIG_VXFS_FS is not set 774# CONFIG_VXFS_FS is not set
743# CONFIG_MINIX_FS is not set 775# CONFIG_MINIX_FS is not set
776# CONFIG_OMFS_FS is not set
744# CONFIG_HPFS_FS is not set 777# CONFIG_HPFS_FS is not set
745# CONFIG_QNX4FS_FS is not set 778# CONFIG_QNX4FS_FS is not set
746# CONFIG_ROMFS_FS is not set 779# CONFIG_ROMFS_FS is not set
@@ -750,12 +783,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
750CONFIG_NFS_FS=y 783CONFIG_NFS_FS=y
751# CONFIG_NFS_V3 is not set 784# CONFIG_NFS_V3 is not set
752# CONFIG_NFS_V4 is not set 785# CONFIG_NFS_V4 is not set
753# CONFIG_NFSD is not set
754CONFIG_ROOT_NFS=y 786CONFIG_ROOT_NFS=y
787# CONFIG_NFSD is not set
755CONFIG_LOCKD=y 788CONFIG_LOCKD=y
756CONFIG_NFS_COMMON=y 789CONFIG_NFS_COMMON=y
757CONFIG_SUNRPC=y 790CONFIG_SUNRPC=y
758# CONFIG_SUNRPC_BIND34 is not set
759# CONFIG_RPCSEC_GSS_KRB5 is not set 791# CONFIG_RPCSEC_GSS_KRB5 is not set
760# CONFIG_RPCSEC_GSS_SPKM3 is not set 792# CONFIG_RPCSEC_GSS_SPKM3 is not set
761# CONFIG_SMB_FS is not set 793# CONFIG_SMB_FS is not set
@@ -791,6 +823,7 @@ CONFIG_BITREVERSE=y
791# CONFIG_GENERIC_FIND_FIRST_BIT is not set 823# CONFIG_GENERIC_FIND_FIRST_BIT is not set
792# CONFIG_CRC_CCITT is not set 824# CONFIG_CRC_CCITT is not set
793# CONFIG_CRC16 is not set 825# CONFIG_CRC16 is not set
826# CONFIG_CRC_T10DIF is not set
794# CONFIG_CRC_ITU_T is not set 827# CONFIG_CRC_ITU_T is not set
795CONFIG_CRC32=y 828CONFIG_CRC32=y
796# CONFIG_CRC7 is not set 829# CONFIG_CRC7 is not set
@@ -815,6 +848,8 @@ CONFIG_FRAME_WARN=1024
815CONFIG_DEBUG_KERNEL=y 848CONFIG_DEBUG_KERNEL=y
816# CONFIG_DEBUG_SHIRQ is not set 849# CONFIG_DEBUG_SHIRQ is not set
817CONFIG_DETECT_SOFTLOCKUP=y 850CONFIG_DETECT_SOFTLOCKUP=y
851# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
852CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
818CONFIG_SCHED_DEBUG=y 853CONFIG_SCHED_DEBUG=y
819# CONFIG_SCHEDSTATS is not set 854# CONFIG_SCHEDSTATS is not set
820# CONFIG_TIMER_STATS is not set 855# CONFIG_TIMER_STATS is not set
@@ -832,17 +867,29 @@ CONFIG_DEBUG_MUTEXES=y
832# CONFIG_DEBUG_INFO is not set 867# CONFIG_DEBUG_INFO is not set
833# CONFIG_DEBUG_VM is not set 868# CONFIG_DEBUG_VM is not set
834# CONFIG_DEBUG_WRITECOUNT is not set 869# CONFIG_DEBUG_WRITECOUNT is not set
870# CONFIG_DEBUG_MEMORY_INIT is not set
835# CONFIG_DEBUG_LIST is not set 871# CONFIG_DEBUG_LIST is not set
836# CONFIG_DEBUG_SG is not set 872# CONFIG_DEBUG_SG is not set
837# CONFIG_BOOT_PRINTK_DELAY is not set 873# CONFIG_BOOT_PRINTK_DELAY is not set
874# CONFIG_RCU_TORTURE_TEST is not set
838# CONFIG_BACKTRACE_SELF_TEST is not set 875# CONFIG_BACKTRACE_SELF_TEST is not set
839# CONFIG_FAULT_INJECTION is not set 876# CONFIG_FAULT_INJECTION is not set
877# CONFIG_LATENCYTOP is not set
878CONFIG_SYSCTL_SYSCALL_CHECK=y
879CONFIG_HAVE_FTRACE=y
880CONFIG_HAVE_DYNAMIC_FTRACE=y
881# CONFIG_FTRACE is not set
882# CONFIG_SCHED_TRACER is not set
883# CONFIG_CONTEXT_SWITCH_TRACER is not set
840# CONFIG_SAMPLES is not set 884# CONFIG_SAMPLES is not set
885CONFIG_HAVE_ARCH_KGDB=y
886# CONFIG_KGDB is not set
841# CONFIG_DEBUG_STACKOVERFLOW is not set 887# CONFIG_DEBUG_STACKOVERFLOW is not set
842# CONFIG_DEBUG_STACK_USAGE is not set 888# CONFIG_DEBUG_STACK_USAGE is not set
843# CONFIG_DEBUG_PAGEALLOC is not set 889# CONFIG_DEBUG_PAGEALLOC is not set
844# CONFIG_DEBUGGER is not set 890# CONFIG_CODE_PATCHING_SELFTEST is not set
845# CONFIG_KGDB_CONSOLE is not set 891# CONFIG_FTR_FIXUP_SELFTEST is not set
892# CONFIG_XMON is not set
846# CONFIG_IRQSTACKS is not set 893# CONFIG_IRQSTACKS is not set
847# CONFIG_BDI_SWITCH is not set 894# CONFIG_BDI_SWITCH is not set
848# CONFIG_PPC_EARLY_DEBUG is not set 895# CONFIG_PPC_EARLY_DEBUG is not set
@@ -895,6 +942,10 @@ CONFIG_CRYPTO=y
895# CONFIG_CRYPTO_MD4 is not set 942# CONFIG_CRYPTO_MD4 is not set
896# CONFIG_CRYPTO_MD5 is not set 943# CONFIG_CRYPTO_MD5 is not set
897# CONFIG_CRYPTO_MICHAEL_MIC is not set 944# CONFIG_CRYPTO_MICHAEL_MIC is not set
945# CONFIG_CRYPTO_RMD128 is not set
946# CONFIG_CRYPTO_RMD160 is not set
947# CONFIG_CRYPTO_RMD256 is not set
948# CONFIG_CRYPTO_RMD320 is not set
898# CONFIG_CRYPTO_SHA1 is not set 949# CONFIG_CRYPTO_SHA1 is not set
899# CONFIG_CRYPTO_SHA256 is not set 950# CONFIG_CRYPTO_SHA256 is not set
900# CONFIG_CRYPTO_SHA512 is not set 951# CONFIG_CRYPTO_SHA512 is not set
@@ -927,6 +978,7 @@ CONFIG_CRYPTO=y
927# CONFIG_CRYPTO_LZO is not set 978# CONFIG_CRYPTO_LZO is not set
928CONFIG_CRYPTO_HW=y 979CONFIG_CRYPTO_HW=y
929# CONFIG_CRYPTO_DEV_HIFN_795X is not set 980# CONFIG_CRYPTO_DEV_HIFN_795X is not set
930# CONFIG_PPC_CLOCK is not set 981# CONFIG_CRYPTO_DEV_TALITOS is not set
982CONFIG_PPC_CLOCK=y
931CONFIG_PPC_LIB_RHEAP=y 983CONFIG_PPC_LIB_RHEAP=y
932# CONFIG_VIRTUALIZATION is not set 984# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8568mds_defconfig b/arch/powerpc/configs/85xx/mpc8568mds_defconfig
index 28004e93aee..dc27c74955f 100644
--- a/arch/powerpc/configs/85xx/mpc8568mds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8568mds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:34 2008 4# Thu Aug 21 00:52:33 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -89,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 94# CONFIG_KALLSYMS is not set
94CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -112,10 +113,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 113# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 114# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 118CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 119CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 121# CONFIG_HAVE_DMA_ATTRS is not set
122# CONFIG_USE_GENERIC_SMP_HELPERS is not set
123# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 124CONFIG_PROC_PAGE_MONITOR=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 128# CONFIG_TINY_SHMEM is not set
@@ -126,12 +133,13 @@ CONFIG_MODULE_UNLOAD=y
126# CONFIG_MODULE_FORCE_UNLOAD is not set 133# CONFIG_MODULE_FORCE_UNLOAD is not set
127# CONFIG_MODVERSIONS is not set 134# CONFIG_MODVERSIONS is not set
128# CONFIG_MODULE_SRCVERSION_ALL is not set 135# CONFIG_MODULE_SRCVERSION_ALL is not set
129# CONFIG_KMOD is not set 136CONFIG_KMOD=y
130CONFIG_BLOCK=y 137CONFIG_BLOCK=y
131# CONFIG_LBD is not set 138# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set 139# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set 140# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 141# CONFIG_BLK_DEV_BSG is not set
142# CONFIG_BLK_DEV_INTEGRITY is not set
135 143
136# 144#
137# IO Schedulers 145# IO Schedulers
@@ -150,8 +158,6 @@ CONFIG_CLASSIC_RCU=y
150# 158#
151# Platform support 159# Platform support
152# 160#
153# CONFIG_PPC_MPC512x is not set
154# CONFIG_PPC_MPC5121 is not set
155# CONFIG_PPC_CELL is not set 161# CONFIG_PPC_CELL is not set
156# CONFIG_PPC_CELL_NATIVE is not set 162# CONFIG_PPC_CELL_NATIVE is not set
157# CONFIG_PQ2ADS is not set 163# CONFIG_PQ2ADS is not set
@@ -160,11 +166,13 @@ CONFIG_MPC85xx=y
160# CONFIG_MPC8560_ADS is not set 166# CONFIG_MPC8560_ADS is not set
161# CONFIG_MPC85xx_CDS is not set 167# CONFIG_MPC85xx_CDS is not set
162CONFIG_MPC85xx_MDS=y 168CONFIG_MPC85xx_MDS=y
169# CONFIG_MPC8536_DS is not set
163# CONFIG_MPC85xx_DS is not set 170# CONFIG_MPC85xx_DS is not set
164# CONFIG_KSI8560 is not set 171# CONFIG_KSI8560 is not set
165# CONFIG_STX_GP3 is not set 172# CONFIG_STX_GP3 is not set
166# CONFIG_TQM8540 is not set 173# CONFIG_TQM8540 is not set
167# CONFIG_TQM8541 is not set 174# CONFIG_TQM8541 is not set
175# CONFIG_TQM8548 is not set
168# CONFIG_TQM8555 is not set 176# CONFIG_TQM8555 is not set
169# CONFIG_TQM8560 is not set 177# CONFIG_TQM8560 is not set
170# CONFIG_SBC8548 is not set 178# CONFIG_SBC8548 is not set
@@ -197,7 +205,7 @@ CONFIG_HZ_250=y
197# CONFIG_HZ_300 is not set 205# CONFIG_HZ_300 is not set
198# CONFIG_HZ_1000 is not set 206# CONFIG_HZ_1000 is not set
199CONFIG_HZ=250 207CONFIG_HZ=250
200# CONFIG_SCHED_HRTICK is not set 208CONFIG_SCHED_HRTICK=y
201CONFIG_PREEMPT_NONE=y 209CONFIG_PREEMPT_NONE=y
202# CONFIG_PREEMPT_VOLUNTARY is not set 210# CONFIG_PREEMPT_VOLUNTARY is not set
203# CONFIG_PREEMPT is not set 211# CONFIG_PREEMPT is not set
@@ -220,6 +228,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
220# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 228# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
221CONFIG_PAGEFLAGS_EXTENDED=y 229CONFIG_PAGEFLAGS_EXTENDED=y
222CONFIG_SPLIT_PTLOCK_CPUS=4 230CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y
223# CONFIG_RESOURCES_64BIT is not set 232# CONFIG_RESOURCES_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
@@ -227,6 +236,7 @@ CONFIG_VIRT_TO_BUS=y
227CONFIG_FORCE_MAX_ZONEORDER=11 236CONFIG_FORCE_MAX_ZONEORDER=11
228CONFIG_PROC_DEVICETREE=y 237CONFIG_PROC_DEVICETREE=y
229# CONFIG_CMDLINE_BOOL is not set 238# CONFIG_CMDLINE_BOOL is not set
239CONFIG_EXTRA_TARGETS=""
230# CONFIG_PM is not set 240# CONFIG_PM is not set
231CONFIG_SECCOMP=y 241CONFIG_SECCOMP=y
232CONFIG_ISA_DMA_API=y 242CONFIG_ISA_DMA_API=y
@@ -238,6 +248,7 @@ CONFIG_ZONE_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 248CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 249CONFIG_FSL_SOC=y
240CONFIG_FSL_PCI=y 250CONFIG_FSL_PCI=y
251CONFIG_PPC_PCI_CHOICE=y
241CONFIG_PCI=y 252CONFIG_PCI=y
242CONFIG_PCI_DOMAINS=y 253CONFIG_PCI_DOMAINS=y
243CONFIG_PCI_SYSCALL=y 254CONFIG_PCI_SYSCALL=y
@@ -264,10 +275,6 @@ CONFIG_KERNEL_START=0xc0000000
264CONFIG_PHYSICAL_START=0x00000000 275CONFIG_PHYSICAL_START=0x00000000
265CONFIG_PHYSICAL_ALIGN=0x10000000 276CONFIG_PHYSICAL_ALIGN=0x10000000
266CONFIG_TASK_SIZE=0xc0000000 277CONFIG_TASK_SIZE=0xc0000000
267
268#
269# Networking
270#
271CONFIG_NET=y 278CONFIG_NET=y
272 279
273# 280#
@@ -385,12 +392,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
385# CONFIG_BLK_DEV_XIP is not set 392# CONFIG_BLK_DEV_XIP is not set
386# CONFIG_CDROM_PKTCDVD is not set 393# CONFIG_CDROM_PKTCDVD is not set
387# CONFIG_ATA_OVER_ETH is not set 394# CONFIG_ATA_OVER_ETH is not set
395# CONFIG_BLK_DEV_HD is not set
388CONFIG_MISC_DEVICES=y 396CONFIG_MISC_DEVICES=y
389# CONFIG_PHANTOM is not set 397# CONFIG_PHANTOM is not set
390# CONFIG_EEPROM_93CX6 is not set 398# CONFIG_EEPROM_93CX6 is not set
391# CONFIG_SGI_IOC4 is not set 399# CONFIG_SGI_IOC4 is not set
392# CONFIG_TIFM_CORE is not set 400# CONFIG_TIFM_CORE is not set
393# CONFIG_ENCLOSURE_SERVICES is not set 401# CONFIG_ENCLOSURE_SERVICES is not set
402# CONFIG_HP_ILO is not set
394CONFIG_HAVE_IDE=y 403CONFIG_HAVE_IDE=y
395# CONFIG_IDE is not set 404# CONFIG_IDE is not set
396 405
@@ -468,6 +477,7 @@ CONFIG_SCSI_LOWLEVEL=y
468# CONFIG_SCSI_NSP32 is not set 477# CONFIG_SCSI_NSP32 is not set
469# CONFIG_SCSI_DEBUG is not set 478# CONFIG_SCSI_DEBUG is not set
470# CONFIG_SCSI_SRP is not set 479# CONFIG_SCSI_SRP is not set
480# CONFIG_SCSI_DH is not set
471# CONFIG_ATA is not set 481# CONFIG_ATA is not set
472# CONFIG_MD is not set 482# CONFIG_MD is not set
473# CONFIG_FUSION is not set 483# CONFIG_FUSION is not set
@@ -475,12 +485,15 @@ CONFIG_SCSI_LOWLEVEL=y
475# 485#
476# IEEE 1394 (FireWire) support 486# IEEE 1394 (FireWire) support
477# 487#
488
489#
490# Enable only one of the two stacks, unless you know what you are doing
491#
478# CONFIG_FIREWIRE is not set 492# CONFIG_FIREWIRE is not set
479# CONFIG_IEEE1394 is not set 493# CONFIG_IEEE1394 is not set
480# CONFIG_I2O is not set 494# CONFIG_I2O is not set
481# CONFIG_MACINTOSH_DRIVERS is not set 495# CONFIG_MACINTOSH_DRIVERS is not set
482CONFIG_NETDEVICES=y 496CONFIG_NETDEVICES=y
483# CONFIG_NETDEVICES_MULTIQUEUE is not set
484# CONFIG_DUMMY is not set 497# CONFIG_DUMMY is not set
485# CONFIG_BONDING is not set 498# CONFIG_BONDING is not set
486# CONFIG_MACVLAN is not set 499# CONFIG_MACVLAN is not set
@@ -524,7 +537,6 @@ CONFIG_NETDEV_1000=y
524# CONFIG_DL2K is not set 537# CONFIG_DL2K is not set
525# CONFIG_E1000 is not set 538# CONFIG_E1000 is not set
526# CONFIG_E1000E is not set 539# CONFIG_E1000E is not set
527# CONFIG_E1000E_ENABLED is not set
528# CONFIG_IP1000 is not set 540# CONFIG_IP1000 is not set
529# CONFIG_IGB is not set 541# CONFIG_IGB is not set
530# CONFIG_NS83820 is not set 542# CONFIG_NS83820 is not set
@@ -538,10 +550,10 @@ CONFIG_NETDEV_1000=y
538# CONFIG_TIGON3 is not set 550# CONFIG_TIGON3 is not set
539# CONFIG_BNX2 is not set 551# CONFIG_BNX2 is not set
540CONFIG_GIANFAR=y 552CONFIG_GIANFAR=y
541CONFIG_GFAR_NAPI=y
542# CONFIG_UCC_GETH is not set 553# CONFIG_UCC_GETH is not set
543# CONFIG_QLA3XXX is not set 554# CONFIG_QLA3XXX is not set
544# CONFIG_ATL1 is not set 555# CONFIG_ATL1 is not set
556# CONFIG_ATL1E is not set
545CONFIG_NETDEV_10000=y 557CONFIG_NETDEV_10000=y
546# CONFIG_CHELSIO_T1 is not set 558# CONFIG_CHELSIO_T1 is not set
547# CONFIG_CHELSIO_T3 is not set 559# CONFIG_CHELSIO_T3 is not set
@@ -648,42 +660,63 @@ CONFIG_DEVPORT=y
648CONFIG_I2C=y 660CONFIG_I2C=y
649CONFIG_I2C_BOARDINFO=y 661CONFIG_I2C_BOARDINFO=y
650CONFIG_I2C_CHARDEV=y 662CONFIG_I2C_CHARDEV=y
663CONFIG_I2C_HELPER_AUTO=y
651 664
652# 665#
653# I2C Hardware Bus support 666# I2C Hardware Bus support
654# 667#
668
669#
670# PC SMBus host controller drivers
671#
655# CONFIG_I2C_ALI1535 is not set 672# CONFIG_I2C_ALI1535 is not set
656# CONFIG_I2C_ALI1563 is not set 673# CONFIG_I2C_ALI1563 is not set
657# CONFIG_I2C_ALI15X3 is not set 674# CONFIG_I2C_ALI15X3 is not set
658# CONFIG_I2C_AMD756 is not set 675# CONFIG_I2C_AMD756 is not set
659# CONFIG_I2C_AMD8111 is not set 676# CONFIG_I2C_AMD8111 is not set
660# CONFIG_I2C_I801 is not set 677# CONFIG_I2C_I801 is not set
661# CONFIG_I2C_I810 is not set 678# CONFIG_I2C_ISCH is not set
662# CONFIG_I2C_PIIX4 is not set 679# CONFIG_I2C_PIIX4 is not set
663CONFIG_I2C_MPC=y
664# CONFIG_I2C_NFORCE2 is not set 680# CONFIG_I2C_NFORCE2 is not set
665# CONFIG_I2C_OCORES is not set
666# CONFIG_I2C_PARPORT_LIGHT is not set
667# CONFIG_I2C_PROSAVAGE is not set
668# CONFIG_I2C_SAVAGE4 is not set
669# CONFIG_I2C_SIMTEC is not set
670# CONFIG_I2C_SIS5595 is not set 681# CONFIG_I2C_SIS5595 is not set
671# CONFIG_I2C_SIS630 is not set 682# CONFIG_I2C_SIS630 is not set
672# CONFIG_I2C_SIS96X is not set 683# CONFIG_I2C_SIS96X is not set
673# CONFIG_I2C_TAOS_EVM is not set
674# CONFIG_I2C_STUB is not set
675# CONFIG_I2C_VIA is not set 684# CONFIG_I2C_VIA is not set
676# CONFIG_I2C_VIAPRO is not set 685# CONFIG_I2C_VIAPRO is not set
686
687#
688# I2C system bus drivers (mostly embedded / system-on-chip)
689#
690CONFIG_I2C_MPC=y
691# CONFIG_I2C_OCORES is not set
692# CONFIG_I2C_SIMTEC is not set
693
694#
695# External I2C/SMBus adapter drivers
696#
697# CONFIG_I2C_PARPORT_LIGHT is not set
698# CONFIG_I2C_TAOS_EVM is not set
699
700#
701# Graphics adapter I2C/DDC channel drivers
702#
677# CONFIG_I2C_VOODOO3 is not set 703# CONFIG_I2C_VOODOO3 is not set
704
705#
706# Other I2C/SMBus bus drivers
707#
678# CONFIG_I2C_PCA_PLATFORM is not set 708# CONFIG_I2C_PCA_PLATFORM is not set
709# CONFIG_I2C_STUB is not set
679 710
680# 711#
681# Miscellaneous I2C Chip support 712# Miscellaneous I2C Chip support
682# 713#
683# CONFIG_DS1682 is not set 714# CONFIG_DS1682 is not set
715# CONFIG_AT24 is not set
684# CONFIG_SENSORS_EEPROM is not set 716# CONFIG_SENSORS_EEPROM is not set
685# CONFIG_SENSORS_PCF8574 is not set 717# CONFIG_SENSORS_PCF8574 is not set
686# CONFIG_PCF8575 is not set 718# CONFIG_PCF8575 is not set
719# CONFIG_SENSORS_PCA9539 is not set
687# CONFIG_SENSORS_PCF8591 is not set 720# CONFIG_SENSORS_PCF8591 is not set
688# CONFIG_SENSORS_MAX6875 is not set 721# CONFIG_SENSORS_MAX6875 is not set
689# CONFIG_SENSORS_TSL2550 is not set 722# CONFIG_SENSORS_TSL2550 is not set
@@ -692,10 +725,13 @@ CONFIG_I2C_MPC=y
692# CONFIG_I2C_DEBUG_BUS is not set 725# CONFIG_I2C_DEBUG_BUS is not set
693# CONFIG_I2C_DEBUG_CHIP is not set 726# CONFIG_I2C_DEBUG_CHIP is not set
694# CONFIG_SPI is not set 727# CONFIG_SPI is not set
728CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
729# CONFIG_GPIOLIB is not set
695# CONFIG_W1 is not set 730# CONFIG_W1 is not set
696# CONFIG_POWER_SUPPLY is not set 731# CONFIG_POWER_SUPPLY is not set
697CONFIG_HWMON=y 732CONFIG_HWMON=y
698# CONFIG_HWMON_VID is not set 733# CONFIG_HWMON_VID is not set
734# CONFIG_SENSORS_AD7414 is not set
699# CONFIG_SENSORS_AD7418 is not set 735# CONFIG_SENSORS_AD7418 is not set
700# CONFIG_SENSORS_ADM1021 is not set 736# CONFIG_SENSORS_ADM1021 is not set
701# CONFIG_SENSORS_ADM1025 is not set 737# CONFIG_SENSORS_ADM1025 is not set
@@ -749,6 +785,7 @@ CONFIG_HWMON=y
749# CONFIG_SENSORS_W83627EHF is not set 785# CONFIG_SENSORS_W83627EHF is not set
750# CONFIG_HWMON_DEBUG_CHIP is not set 786# CONFIG_HWMON_DEBUG_CHIP is not set
751# CONFIG_THERMAL is not set 787# CONFIG_THERMAL is not set
788# CONFIG_THERMAL_HWMON is not set
752CONFIG_WATCHDOG=y 789CONFIG_WATCHDOG=y
753# CONFIG_WATCHDOG_NOWAYOUT is not set 790# CONFIG_WATCHDOG_NOWAYOUT is not set
754 791
@@ -756,6 +793,7 @@ CONFIG_WATCHDOG=y
756# Watchdog Device Drivers 793# Watchdog Device Drivers
757# 794#
758# CONFIG_SOFT_WATCHDOG is not set 795# CONFIG_SOFT_WATCHDOG is not set
796# CONFIG_ALIM7101_WDT is not set
759# CONFIG_BOOKE_WDT is not set 797# CONFIG_BOOKE_WDT is not set
760 798
761# 799#
@@ -773,8 +811,10 @@ CONFIG_SSB_POSSIBLE=y
773# 811#
774# Multifunction device drivers 812# Multifunction device drivers
775# 813#
814# CONFIG_MFD_CORE is not set
776# CONFIG_MFD_SM501 is not set 815# CONFIG_MFD_SM501 is not set
777# CONFIG_HTC_PASIC3 is not set 816# CONFIG_HTC_PASIC3 is not set
817# CONFIG_MFD_TMIO is not set
778 818
779# 819#
780# Multimedia devices 820# Multimedia devices
@@ -806,10 +846,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
806# Display device support 846# Display device support
807# 847#
808# CONFIG_DISPLAY_SUPPORT is not set 848# CONFIG_DISPLAY_SUPPORT is not set
809
810#
811# Sound
812#
813# CONFIG_SOUND is not set 849# CONFIG_SOUND is not set
814CONFIG_HID_SUPPORT=y 850CONFIG_HID_SUPPORT=y
815CONFIG_HID=y 851CONFIG_HID=y
@@ -824,6 +860,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
824# CONFIG_USB_OTG_BLACKLIST_HUB is not set 860# CONFIG_USB_OTG_BLACKLIST_HUB is not set
825 861
826# 862#
863# Enable Host or Gadget support to see Inventra options
864#
865
866#
827# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 867# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
828# 868#
829# CONFIG_USB_GADGET is not set 869# CONFIG_USB_GADGET is not set
@@ -862,6 +902,7 @@ CONFIG_RTC_DRV_DS1374=y
862# CONFIG_RTC_DRV_PCF8583 is not set 902# CONFIG_RTC_DRV_PCF8583 is not set
863# CONFIG_RTC_DRV_M41T80 is not set 903# CONFIG_RTC_DRV_M41T80 is not set
864# CONFIG_RTC_DRV_S35390A is not set 904# CONFIG_RTC_DRV_S35390A is not set
905# CONFIG_RTC_DRV_FM3130 is not set
865 906
866# 907#
867# SPI RTC drivers 908# SPI RTC drivers
@@ -950,6 +991,7 @@ CONFIG_TMPFS=y
950# CONFIG_CRAMFS is not set 991# CONFIG_CRAMFS is not set
951# CONFIG_VXFS_FS is not set 992# CONFIG_VXFS_FS is not set
952# CONFIG_MINIX_FS is not set 993# CONFIG_MINIX_FS is not set
994# CONFIG_OMFS_FS is not set
953# CONFIG_HPFS_FS is not set 995# CONFIG_HPFS_FS is not set
954# CONFIG_QNX4FS_FS is not set 996# CONFIG_QNX4FS_FS is not set
955# CONFIG_ROMFS_FS is not set 997# CONFIG_ROMFS_FS is not set
@@ -960,14 +1002,13 @@ CONFIG_NFS_FS=y
960CONFIG_NFS_V3=y 1002CONFIG_NFS_V3=y
961# CONFIG_NFS_V3_ACL is not set 1003# CONFIG_NFS_V3_ACL is not set
962CONFIG_NFS_V4=y 1004CONFIG_NFS_V4=y
963# CONFIG_NFSD is not set
964CONFIG_ROOT_NFS=y 1005CONFIG_ROOT_NFS=y
1006# CONFIG_NFSD is not set
965CONFIG_LOCKD=y 1007CONFIG_LOCKD=y
966CONFIG_LOCKD_V4=y 1008CONFIG_LOCKD_V4=y
967CONFIG_NFS_COMMON=y 1009CONFIG_NFS_COMMON=y
968CONFIG_SUNRPC=y 1010CONFIG_SUNRPC=y
969CONFIG_SUNRPC_GSS=y 1011CONFIG_SUNRPC_GSS=y
970# CONFIG_SUNRPC_BIND34 is not set
971CONFIG_RPCSEC_GSS_KRB5=y 1012CONFIG_RPCSEC_GSS_KRB5=y
972# CONFIG_RPCSEC_GSS_SPKM3 is not set 1013# CONFIG_RPCSEC_GSS_SPKM3 is not set
973# CONFIG_SMB_FS is not set 1014# CONFIG_SMB_FS is not set
@@ -995,6 +1036,7 @@ CONFIG_PARTITION_ADVANCED=y
995# CONFIG_SYSV68_PARTITION is not set 1036# CONFIG_SYSV68_PARTITION is not set
996# CONFIG_NLS is not set 1037# CONFIG_NLS is not set
997# CONFIG_DLM is not set 1038# CONFIG_DLM is not set
1039# CONFIG_QE_GPIO is not set
998 1040
999# 1041#
1000# Library routines 1042# Library routines
@@ -1003,6 +1045,7 @@ CONFIG_BITREVERSE=y
1003# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1045# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1004# CONFIG_CRC_CCITT is not set 1046# CONFIG_CRC_CCITT is not set
1005# CONFIG_CRC16 is not set 1047# CONFIG_CRC16 is not set
1048# CONFIG_CRC_T10DIF is not set
1006# CONFIG_CRC_ITU_T is not set 1049# CONFIG_CRC_ITU_T is not set
1007CONFIG_CRC32=y 1050CONFIG_CRC32=y
1008# CONFIG_CRC7 is not set 1051# CONFIG_CRC7 is not set
@@ -1027,6 +1070,8 @@ CONFIG_FRAME_WARN=1024
1027CONFIG_DEBUG_KERNEL=y 1070CONFIG_DEBUG_KERNEL=y
1028# CONFIG_DEBUG_SHIRQ is not set 1071# CONFIG_DEBUG_SHIRQ is not set
1029CONFIG_DETECT_SOFTLOCKUP=y 1072CONFIG_DETECT_SOFTLOCKUP=y
1073# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1074CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1030CONFIG_SCHED_DEBUG=y 1075CONFIG_SCHED_DEBUG=y
1031# CONFIG_SCHEDSTATS is not set 1076# CONFIG_SCHEDSTATS is not set
1032# CONFIG_TIMER_STATS is not set 1077# CONFIG_TIMER_STATS is not set
@@ -1044,17 +1089,28 @@ CONFIG_SCHED_DEBUG=y
1044# CONFIG_DEBUG_INFO is not set 1089# CONFIG_DEBUG_INFO is not set
1045# CONFIG_DEBUG_VM is not set 1090# CONFIG_DEBUG_VM is not set
1046# CONFIG_DEBUG_WRITECOUNT is not set 1091# CONFIG_DEBUG_WRITECOUNT is not set
1092# CONFIG_DEBUG_MEMORY_INIT is not set
1047# CONFIG_DEBUG_LIST is not set 1093# CONFIG_DEBUG_LIST is not set
1048# CONFIG_DEBUG_SG is not set 1094# CONFIG_DEBUG_SG is not set
1049# CONFIG_BOOT_PRINTK_DELAY is not set 1095# CONFIG_BOOT_PRINTK_DELAY is not set
1050# CONFIG_RCU_TORTURE_TEST is not set 1096# CONFIG_RCU_TORTURE_TEST is not set
1051# CONFIG_BACKTRACE_SELF_TEST is not set 1097# CONFIG_BACKTRACE_SELF_TEST is not set
1052# CONFIG_FAULT_INJECTION is not set 1098# CONFIG_FAULT_INJECTION is not set
1099# CONFIG_LATENCYTOP is not set
1100CONFIG_SYSCTL_SYSCALL_CHECK=y
1101CONFIG_HAVE_FTRACE=y
1102CONFIG_HAVE_DYNAMIC_FTRACE=y
1103# CONFIG_FTRACE is not set
1104# CONFIG_SCHED_TRACER is not set
1105# CONFIG_CONTEXT_SWITCH_TRACER is not set
1053# CONFIG_SAMPLES is not set 1106# CONFIG_SAMPLES is not set
1107CONFIG_HAVE_ARCH_KGDB=y
1108# CONFIG_KGDB is not set
1054# CONFIG_DEBUG_STACKOVERFLOW is not set 1109# CONFIG_DEBUG_STACKOVERFLOW is not set
1055# CONFIG_DEBUG_STACK_USAGE is not set 1110# CONFIG_DEBUG_STACK_USAGE is not set
1056# CONFIG_DEBUG_PAGEALLOC is not set 1111# CONFIG_DEBUG_PAGEALLOC is not set
1057CONFIG_DEBUGGER=y 1112# CONFIG_CODE_PATCHING_SELFTEST is not set
1113# CONFIG_FTR_FIXUP_SELFTEST is not set
1058# CONFIG_XMON is not set 1114# CONFIG_XMON is not set
1059# CONFIG_IRQSTACKS is not set 1115# CONFIG_IRQSTACKS is not set
1060# CONFIG_BDI_SWITCH is not set 1116# CONFIG_BDI_SWITCH is not set
@@ -1122,6 +1178,10 @@ CONFIG_CRYPTO_PCBC=m
1122# CONFIG_CRYPTO_MD4 is not set 1178# CONFIG_CRYPTO_MD4 is not set
1123CONFIG_CRYPTO_MD5=y 1179CONFIG_CRYPTO_MD5=y
1124# CONFIG_CRYPTO_MICHAEL_MIC is not set 1180# CONFIG_CRYPTO_MICHAEL_MIC is not set
1181# CONFIG_CRYPTO_RMD128 is not set
1182# CONFIG_CRYPTO_RMD160 is not set
1183# CONFIG_CRYPTO_RMD256 is not set
1184# CONFIG_CRYPTO_RMD320 is not set
1125# CONFIG_CRYPTO_SHA1 is not set 1185# CONFIG_CRYPTO_SHA1 is not set
1126# CONFIG_CRYPTO_SHA256 is not set 1186# CONFIG_CRYPTO_SHA256 is not set
1127# CONFIG_CRYPTO_SHA512 is not set 1187# CONFIG_CRYPTO_SHA512 is not set
@@ -1154,6 +1214,7 @@ CONFIG_CRYPTO_DES=y
1154# CONFIG_CRYPTO_LZO is not set 1214# CONFIG_CRYPTO_LZO is not set
1155CONFIG_CRYPTO_HW=y 1215CONFIG_CRYPTO_HW=y
1156# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1216# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1217# CONFIG_CRYPTO_DEV_TALITOS is not set
1157# CONFIG_PPC_CLOCK is not set 1218# CONFIG_PPC_CLOCK is not set
1158CONFIG_PPC_LIB_RHEAP=y 1219CONFIG_PPC_LIB_RHEAP=y
1159# CONFIG_VIRTUALIZATION is not set 1220# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig b/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
index 164fd9606ee..eda45bb8a13 100644
--- a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:35 2008 4# Thu Aug 21 07:21:42 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -92,7 +94,6 @@ CONFIG_INITRAMFS_SOURCE=""
92CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
93CONFIG_EMBEDDED=y 95CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
97CONFIG_KALLSYMS_ALL=y 98CONFIG_KALLSYMS_ALL=y
98CONFIG_KALLSYMS_EXTRA_PASS=y 99CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -118,10 +119,16 @@ CONFIG_SLUB=y
118# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set 127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y 130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set 134# CONFIG_TINY_SHMEM is not set
@@ -138,6 +145,7 @@ CONFIG_LBD=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 146# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set
141 149
142# 150#
143# IO Schedulers 151# IO Schedulers
@@ -156,8 +164,6 @@ CONFIG_CLASSIC_RCU=y
156# 164#
157# Platform support 165# Platform support
158# 166#
159# CONFIG_PPC_MPC512x is not set
160# CONFIG_PPC_MPC5121 is not set
161# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
162# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
163# CONFIG_PQ2ADS is not set 169# CONFIG_PQ2ADS is not set
@@ -166,11 +172,13 @@ CONFIG_MPC85xx=y
166# CONFIG_MPC8560_ADS is not set 172# CONFIG_MPC8560_ADS is not set
167# CONFIG_MPC85xx_CDS is not set 173# CONFIG_MPC85xx_CDS is not set
168# CONFIG_MPC85xx_MDS is not set 174# CONFIG_MPC85xx_MDS is not set
175# CONFIG_MPC8536_DS is not set
169CONFIG_MPC85xx_DS=y 176CONFIG_MPC85xx_DS=y
170# CONFIG_KSI8560 is not set 177# CONFIG_KSI8560 is not set
171# CONFIG_STX_GP3 is not set 178# CONFIG_STX_GP3 is not set
172# CONFIG_TQM8540 is not set 179# CONFIG_TQM8540 is not set
173# CONFIG_TQM8541 is not set 180# CONFIG_TQM8541 is not set
181# CONFIG_TQM8548 is not set
174# CONFIG_TQM8555 is not set 182# CONFIG_TQM8555 is not set
175# CONFIG_TQM8560 is not set 183# CONFIG_TQM8560 is not set
176# CONFIG_SBC8548 is not set 184# CONFIG_SBC8548 is not set
@@ -202,7 +210,7 @@ CONFIG_HZ_250=y
202# CONFIG_HZ_300 is not set 210# CONFIG_HZ_300 is not set
203# CONFIG_HZ_1000 is not set 211# CONFIG_HZ_1000 is not set
204CONFIG_HZ=250 212CONFIG_HZ=250
205# CONFIG_SCHED_HRTICK is not set 213CONFIG_SCHED_HRTICK=y
206CONFIG_PREEMPT_NONE=y 214CONFIG_PREEMPT_NONE=y
207# CONFIG_PREEMPT_VOLUNTARY is not set 215# CONFIG_PREEMPT_VOLUNTARY is not set
208# CONFIG_PREEMPT is not set 216# CONFIG_PREEMPT is not set
@@ -225,6 +233,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 233# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
226CONFIG_PAGEFLAGS_EXTENDED=y 234CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 235CONFIG_SPLIT_PTLOCK_CPUS=4
236CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set 237# CONFIG_RESOURCES_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1 238CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
@@ -232,6 +241,7 @@ CONFIG_VIRT_TO_BUS=y
232CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
233CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
234# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
244CONFIG_EXTRA_TARGETS=""
235# CONFIG_PM is not set 245# CONFIG_PM is not set
236CONFIG_SECCOMP=y 246CONFIG_SECCOMP=y
237CONFIG_ISA_DMA_API=y 247CONFIG_ISA_DMA_API=y
@@ -244,6 +254,7 @@ CONFIG_GENERIC_ISA_DMA=y
244CONFIG_PPC_INDIRECT_PCI=y 254CONFIG_PPC_INDIRECT_PCI=y
245CONFIG_FSL_SOC=y 255CONFIG_FSL_SOC=y
246CONFIG_FSL_PCI=y 256CONFIG_FSL_PCI=y
257CONFIG_PPC_PCI_CHOICE=y
247CONFIG_PCI=y 258CONFIG_PCI=y
248CONFIG_PCI_DOMAINS=y 259CONFIG_PCI_DOMAINS=y
249CONFIG_PCI_SYSCALL=y 260CONFIG_PCI_SYSCALL=y
@@ -270,10 +281,6 @@ CONFIG_KERNEL_START=0xc0000000
270CONFIG_PHYSICAL_START=0x00000000 281CONFIG_PHYSICAL_START=0x00000000
271CONFIG_PHYSICAL_ALIGN=0x10000000 282CONFIG_PHYSICAL_ALIGN=0x10000000
272CONFIG_TASK_SIZE=0xc0000000 283CONFIG_TASK_SIZE=0xc0000000
273
274#
275# Networking
276#
277CONFIG_NET=y 284CONFIG_NET=y
278 285
279# 286#
@@ -399,6 +406,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
399CONFIG_STANDALONE=y 406CONFIG_STANDALONE=y
400CONFIG_PREVENT_FIRMWARE_BUILD=y 407CONFIG_PREVENT_FIRMWARE_BUILD=y
401CONFIG_FW_LOADER=y 408CONFIG_FW_LOADER=y
409CONFIG_FIRMWARE_IN_KERNEL=y
410CONFIG_EXTRA_FIRMWARE=""
402# CONFIG_DEBUG_DRIVER is not set 411# CONFIG_DEBUG_DRIVER is not set
403# CONFIG_DEBUG_DEVRES is not set 412# CONFIG_DEBUG_DEVRES is not set
404# CONFIG_SYS_HYPERVISOR is not set 413# CONFIG_SYS_HYPERVISOR is not set
@@ -425,12 +434,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
425# CONFIG_BLK_DEV_XIP is not set 434# CONFIG_BLK_DEV_XIP is not set
426# CONFIG_CDROM_PKTCDVD is not set 435# CONFIG_CDROM_PKTCDVD is not set
427# CONFIG_ATA_OVER_ETH is not set 436# CONFIG_ATA_OVER_ETH is not set
437# CONFIG_BLK_DEV_HD is not set
428CONFIG_MISC_DEVICES=y 438CONFIG_MISC_DEVICES=y
429# CONFIG_PHANTOM is not set 439# CONFIG_PHANTOM is not set
430# CONFIG_EEPROM_93CX6 is not set 440# CONFIG_EEPROM_93CX6 is not set
431# CONFIG_SGI_IOC4 is not set 441# CONFIG_SGI_IOC4 is not set
432# CONFIG_TIFM_CORE is not set 442# CONFIG_TIFM_CORE is not set
433# CONFIG_ENCLOSURE_SERVICES is not set 443# CONFIG_ENCLOSURE_SERVICES is not set
444# CONFIG_HP_ILO is not set
434CONFIG_HAVE_IDE=y 445CONFIG_HAVE_IDE=y
435# CONFIG_IDE is not set 446# CONFIG_IDE is not set
436 447
@@ -510,6 +521,7 @@ CONFIG_SCSI_LOWLEVEL=y
510# CONFIG_SCSI_NSP32 is not set 521# CONFIG_SCSI_NSP32 is not set
511# CONFIG_SCSI_DEBUG is not set 522# CONFIG_SCSI_DEBUG is not set
512# CONFIG_SCSI_SRP is not set 523# CONFIG_SCSI_SRP is not set
524# CONFIG_SCSI_DH is not set
513CONFIG_ATA=y 525CONFIG_ATA=y
514# CONFIG_ATA_NONSTANDARD is not set 526# CONFIG_ATA_NONSTANDARD is not set
515CONFIG_SATA_PMP=y 527CONFIG_SATA_PMP=y
@@ -577,12 +589,15 @@ CONFIG_PATA_ALI=y
577# 589#
578# IEEE 1394 (FireWire) support 590# IEEE 1394 (FireWire) support
579# 591#
592
593#
594# Enable only one of the two stacks, unless you know what you are doing
595#
580# CONFIG_FIREWIRE is not set 596# CONFIG_FIREWIRE is not set
581# CONFIG_IEEE1394 is not set 597# CONFIG_IEEE1394 is not set
582# CONFIG_I2O is not set 598# CONFIG_I2O is not set
583# CONFIG_MACINTOSH_DRIVERS is not set 599# CONFIG_MACINTOSH_DRIVERS is not set
584CONFIG_NETDEVICES=y 600CONFIG_NETDEVICES=y
585# CONFIG_NETDEVICES_MULTIQUEUE is not set
586CONFIG_DUMMY=y 601CONFIG_DUMMY=y
587# CONFIG_BONDING is not set 602# CONFIG_BONDING is not set
588# CONFIG_MACVLAN is not set 603# CONFIG_MACVLAN is not set
@@ -626,7 +641,6 @@ CONFIG_NETDEV_1000=y
626# CONFIG_DL2K is not set 641# CONFIG_DL2K is not set
627# CONFIG_E1000 is not set 642# CONFIG_E1000 is not set
628# CONFIG_E1000E is not set 643# CONFIG_E1000E is not set
629# CONFIG_E1000E_ENABLED is not set
630# CONFIG_IP1000 is not set 644# CONFIG_IP1000 is not set
631# CONFIG_IGB is not set 645# CONFIG_IGB is not set
632# CONFIG_NS83820 is not set 646# CONFIG_NS83820 is not set
@@ -640,9 +654,9 @@ CONFIG_NETDEV_1000=y
640# CONFIG_TIGON3 is not set 654# CONFIG_TIGON3 is not set
641# CONFIG_BNX2 is not set 655# CONFIG_BNX2 is not set
642CONFIG_GIANFAR=y 656CONFIG_GIANFAR=y
643CONFIG_GFAR_NAPI=y
644# CONFIG_QLA3XXX is not set 657# CONFIG_QLA3XXX is not set
645# CONFIG_ATL1 is not set 658# CONFIG_ATL1 is not set
659# CONFIG_ATL1E is not set
646CONFIG_NETDEV_10000=y 660CONFIG_NETDEV_10000=y
647# CONFIG_CHELSIO_T1 is not set 661# CONFIG_CHELSIO_T1 is not set
648# CONFIG_CHELSIO_T3 is not set 662# CONFIG_CHELSIO_T3 is not set
@@ -719,12 +733,14 @@ CONFIG_SERIO_SERPORT=y
719# CONFIG_SERIO_PCIPS2 is not set 733# CONFIG_SERIO_PCIPS2 is not set
720CONFIG_SERIO_LIBPS2=y 734CONFIG_SERIO_LIBPS2=y
721# CONFIG_SERIO_RAW is not set 735# CONFIG_SERIO_RAW is not set
736# CONFIG_SERIO_XILINX_XPS_PS2 is not set
722# CONFIG_GAMEPORT is not set 737# CONFIG_GAMEPORT is not set
723 738
724# 739#
725# Character devices 740# Character devices
726# 741#
727CONFIG_VT=y 742CONFIG_VT=y
743CONFIG_CONSOLE_TRANSLATIONS=y
728CONFIG_VT_CONSOLE=y 744CONFIG_VT_CONSOLE=y
729CONFIG_HW_CONSOLE=y 745CONFIG_HW_CONSOLE=y
730# CONFIG_VT_HW_CONSOLE_BINDING is not set 746# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -758,7 +774,7 @@ CONFIG_UNIX98_PTYS=y
758CONFIG_LEGACY_PTYS=y 774CONFIG_LEGACY_PTYS=y
759CONFIG_LEGACY_PTY_COUNT=256 775CONFIG_LEGACY_PTY_COUNT=256
760# CONFIG_IPMI_HANDLER is not set 776# CONFIG_IPMI_HANDLER is not set
761# CONFIG_HW_RANDOM is not set 777CONFIG_HW_RANDOM=y
762CONFIG_NVRAM=y 778CONFIG_NVRAM=y
763# CONFIG_R3964 is not set 779# CONFIG_R3964 is not set
764# CONFIG_APPLICOM is not set 780# CONFIG_APPLICOM is not set
@@ -768,43 +784,64 @@ CONFIG_DEVPORT=y
768CONFIG_I2C=y 784CONFIG_I2C=y
769CONFIG_I2C_BOARDINFO=y 785CONFIG_I2C_BOARDINFO=y
770# CONFIG_I2C_CHARDEV is not set 786# CONFIG_I2C_CHARDEV is not set
787CONFIG_I2C_HELPER_AUTO=y
771 788
772# 789#
773# I2C Hardware Bus support 790# I2C Hardware Bus support
774# 791#
792
793#
794# PC SMBus host controller drivers
795#
775# CONFIG_I2C_ALI1535 is not set 796# CONFIG_I2C_ALI1535 is not set
776# CONFIG_I2C_ALI1563 is not set 797# CONFIG_I2C_ALI1563 is not set
777# CONFIG_I2C_ALI15X3 is not set 798# CONFIG_I2C_ALI15X3 is not set
778# CONFIG_I2C_AMD756 is not set 799# CONFIG_I2C_AMD756 is not set
779# CONFIG_I2C_AMD8111 is not set 800# CONFIG_I2C_AMD8111 is not set
780# CONFIG_I2C_I801 is not set 801# CONFIG_I2C_I801 is not set
781# CONFIG_I2C_I810 is not set 802# CONFIG_I2C_ISCH is not set
782# CONFIG_I2C_PIIX4 is not set 803# CONFIG_I2C_PIIX4 is not set
783CONFIG_I2C_MPC=y
784# CONFIG_I2C_NFORCE2 is not set 804# CONFIG_I2C_NFORCE2 is not set
785# CONFIG_I2C_OCORES is not set
786# CONFIG_I2C_PARPORT_LIGHT is not set
787# CONFIG_I2C_PROSAVAGE is not set
788# CONFIG_I2C_SAVAGE4 is not set
789# CONFIG_I2C_SIMTEC is not set
790# CONFIG_I2C_SIS5595 is not set 805# CONFIG_I2C_SIS5595 is not set
791# CONFIG_I2C_SIS630 is not set 806# CONFIG_I2C_SIS630 is not set
792# CONFIG_I2C_SIS96X is not set 807# CONFIG_I2C_SIS96X is not set
793# CONFIG_I2C_TAOS_EVM is not set
794# CONFIG_I2C_STUB is not set
795# CONFIG_I2C_TINY_USB is not set
796# CONFIG_I2C_VIA is not set 808# CONFIG_I2C_VIA is not set
797# CONFIG_I2C_VIAPRO is not set 809# CONFIG_I2C_VIAPRO is not set
810
811#
812# I2C system bus drivers (mostly embedded / system-on-chip)
813#
814CONFIG_I2C_MPC=y
815# CONFIG_I2C_OCORES is not set
816# CONFIG_I2C_SIMTEC is not set
817
818#
819# External I2C/SMBus adapter drivers
820#
821# CONFIG_I2C_PARPORT_LIGHT is not set
822# CONFIG_I2C_TAOS_EVM is not set
823# CONFIG_I2C_TINY_USB is not set
824
825#
826# Graphics adapter I2C/DDC channel drivers
827#
798# CONFIG_I2C_VOODOO3 is not set 828# CONFIG_I2C_VOODOO3 is not set
829
830#
831# Other I2C/SMBus bus drivers
832#
799# CONFIG_I2C_PCA_PLATFORM is not set 833# CONFIG_I2C_PCA_PLATFORM is not set
834# CONFIG_I2C_STUB is not set
800 835
801# 836#
802# Miscellaneous I2C Chip support 837# Miscellaneous I2C Chip support
803# 838#
804# CONFIG_DS1682 is not set 839# CONFIG_DS1682 is not set
840# CONFIG_AT24 is not set
805CONFIG_SENSORS_EEPROM=y 841CONFIG_SENSORS_EEPROM=y
806# CONFIG_SENSORS_PCF8574 is not set 842# CONFIG_SENSORS_PCF8574 is not set
807# CONFIG_PCF8575 is not set 843# CONFIG_PCF8575 is not set
844# CONFIG_SENSORS_PCA9539 is not set
808# CONFIG_SENSORS_PCF8591 is not set 845# CONFIG_SENSORS_PCF8591 is not set
809# CONFIG_SENSORS_MAX6875 is not set 846# CONFIG_SENSORS_MAX6875 is not set
810# CONFIG_SENSORS_TSL2550 is not set 847# CONFIG_SENSORS_TSL2550 is not set
@@ -813,10 +850,13 @@ CONFIG_SENSORS_EEPROM=y
813# CONFIG_I2C_DEBUG_BUS is not set 850# CONFIG_I2C_DEBUG_BUS is not set
814# CONFIG_I2C_DEBUG_CHIP is not set 851# CONFIG_I2C_DEBUG_CHIP is not set
815# CONFIG_SPI is not set 852# CONFIG_SPI is not set
853CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
854# CONFIG_GPIOLIB is not set
816# CONFIG_W1 is not set 855# CONFIG_W1 is not set
817# CONFIG_POWER_SUPPLY is not set 856# CONFIG_POWER_SUPPLY is not set
818# CONFIG_HWMON is not set 857# CONFIG_HWMON is not set
819# CONFIG_THERMAL is not set 858# CONFIG_THERMAL is not set
859# CONFIG_THERMAL_HWMON is not set
820# CONFIG_WATCHDOG is not set 860# CONFIG_WATCHDOG is not set
821 861
822# 862#
@@ -828,8 +868,10 @@ CONFIG_SSB_POSSIBLE=y
828# 868#
829# Multifunction device drivers 869# Multifunction device drivers
830# 870#
871# CONFIG_MFD_CORE is not set
831# CONFIG_MFD_SM501 is not set 872# CONFIG_MFD_SM501 is not set
832# CONFIG_HTC_PASIC3 is not set 873# CONFIG_HTC_PASIC3 is not set
874# CONFIG_MFD_TMIO is not set
833 875
834# 876#
835# Multimedia devices 877# Multimedia devices
@@ -871,6 +913,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
871# CONFIG_DVB_TTUSB_BUDGET is not set 913# CONFIG_DVB_TTUSB_BUDGET is not set
872# CONFIG_DVB_TTUSB_DEC is not set 914# CONFIG_DVB_TTUSB_DEC is not set
873# CONFIG_DVB_CINERGYT2 is not set 915# CONFIG_DVB_CINERGYT2 is not set
916# CONFIG_DVB_SIANO_SMS1XXX is not set
874 917
875# 918#
876# Supported FlexCopII (B2C2) Adapters 919# Supported FlexCopII (B2C2) Adapters
@@ -917,6 +960,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
917# CONFIG_DVB_SP887X is not set 960# CONFIG_DVB_SP887X is not set
918# CONFIG_DVB_CX22700 is not set 961# CONFIG_DVB_CX22700 is not set
919# CONFIG_DVB_CX22702 is not set 962# CONFIG_DVB_CX22702 is not set
963# CONFIG_DVB_DRX397XD is not set
920# CONFIG_DVB_L64781 is not set 964# CONFIG_DVB_L64781 is not set
921# CONFIG_DVB_TDA1004X is not set 965# CONFIG_DVB_TDA1004X is not set
922# CONFIG_DVB_NXT6000 is not set 966# CONFIG_DVB_NXT6000 is not set
@@ -984,15 +1028,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
984CONFIG_VGA_CONSOLE=y 1028CONFIG_VGA_CONSOLE=y
985# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1029# CONFIG_VGACON_SOFT_SCROLLBACK is not set
986CONFIG_DUMMY_CONSOLE=y 1030CONFIG_DUMMY_CONSOLE=y
987
988#
989# Sound
990#
991CONFIG_SOUND=y 1031CONFIG_SOUND=y
992
993#
994# Advanced Linux Sound Architecture
995#
996CONFIG_SND=y 1032CONFIG_SND=y
997CONFIG_SND_TIMER=y 1033CONFIG_SND_TIMER=y
998CONFIG_SND_PCM=y 1034CONFIG_SND_PCM=y
@@ -1006,19 +1042,15 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
1006CONFIG_SND_VERBOSE_PROCFS=y 1042CONFIG_SND_VERBOSE_PROCFS=y
1007# CONFIG_SND_VERBOSE_PRINTK is not set 1043# CONFIG_SND_VERBOSE_PRINTK is not set
1008# CONFIG_SND_DEBUG is not set 1044# CONFIG_SND_DEBUG is not set
1009 1045CONFIG_SND_VMASTER=y
1010#
1011# Generic devices
1012#
1013CONFIG_SND_AC97_CODEC=y 1046CONFIG_SND_AC97_CODEC=y
1047CONFIG_SND_DRIVERS=y
1014# CONFIG_SND_DUMMY is not set 1048# CONFIG_SND_DUMMY is not set
1015# CONFIG_SND_MTPAV is not set 1049# CONFIG_SND_MTPAV is not set
1016# CONFIG_SND_SERIAL_U16550 is not set 1050# CONFIG_SND_SERIAL_U16550 is not set
1017# CONFIG_SND_MPU401 is not set 1051# CONFIG_SND_MPU401 is not set
1018 1052# CONFIG_SND_AC97_POWER_SAVE is not set
1019# 1053CONFIG_SND_PCI=y
1020# PCI devices
1021#
1022# CONFIG_SND_AD1889 is not set 1054# CONFIG_SND_AD1889 is not set
1023# CONFIG_SND_ALS300 is not set 1055# CONFIG_SND_ALS300 is not set
1024# CONFIG_SND_ALS4000 is not set 1056# CONFIG_SND_ALS4000 is not set
@@ -1080,39 +1112,12 @@ CONFIG_SND_INTEL8X0=y
1080# CONFIG_SND_VIRTUOSO is not set 1112# CONFIG_SND_VIRTUOSO is not set
1081# CONFIG_SND_VX222 is not set 1113# CONFIG_SND_VX222 is not set
1082# CONFIG_SND_YMFPCI is not set 1114# CONFIG_SND_YMFPCI is not set
1083# CONFIG_SND_AC97_POWER_SAVE is not set 1115CONFIG_SND_PPC=y
1084 1116CONFIG_SND_USB=y
1085#
1086# ALSA PowerMac devices
1087#
1088
1089#
1090# ALSA PowerPC devices
1091#
1092
1093#
1094# USB devices
1095#
1096# CONFIG_SND_USB_AUDIO is not set 1117# CONFIG_SND_USB_AUDIO is not set
1097# CONFIG_SND_USB_USX2Y is not set 1118# CONFIG_SND_USB_USX2Y is not set
1098# CONFIG_SND_USB_CAIAQ is not set 1119# CONFIG_SND_USB_CAIAQ is not set
1099
1100#
1101# System on Chip audio support
1102#
1103# CONFIG_SND_SOC is not set 1120# CONFIG_SND_SOC is not set
1104
1105#
1106# ALSA SoC audio for Freescale SOCs
1107#
1108
1109#
1110# SoC Audio for the Texas Instruments OMAP
1111#
1112
1113#
1114# Open Sound System
1115#
1116# CONFIG_SOUND_PRIME is not set 1121# CONFIG_SOUND_PRIME is not set
1117CONFIG_AC97_BUS=y 1122CONFIG_AC97_BUS=y
1118CONFIG_HID_SUPPORT=y 1123CONFIG_HID_SUPPORT=y
@@ -1144,6 +1149,7 @@ CONFIG_USB_DEVICE_CLASS=y
1144# CONFIG_USB_OTG is not set 1149# CONFIG_USB_OTG is not set
1145# CONFIG_USB_OTG_WHITELIST is not set 1150# CONFIG_USB_OTG_WHITELIST is not set
1146# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1151# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1152CONFIG_USB_MON=y
1147 1153
1148# 1154#
1149# USB Host Controller Drivers 1155# USB Host Controller Drivers
@@ -1195,6 +1201,7 @@ CONFIG_USB_STORAGE=y
1195# CONFIG_USB_STORAGE_ALAUDA is not set 1201# CONFIG_USB_STORAGE_ALAUDA is not set
1196# CONFIG_USB_STORAGE_ONETOUCH is not set 1202# CONFIG_USB_STORAGE_ONETOUCH is not set
1197# CONFIG_USB_STORAGE_KARMA is not set 1203# CONFIG_USB_STORAGE_KARMA is not set
1204# CONFIG_USB_STORAGE_SIERRA is not set
1198# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1205# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1199# CONFIG_USB_LIBUSUAL is not set 1206# CONFIG_USB_LIBUSUAL is not set
1200 1207
@@ -1203,7 +1210,6 @@ CONFIG_USB_STORAGE=y
1203# 1210#
1204# CONFIG_USB_MDC800 is not set 1211# CONFIG_USB_MDC800 is not set
1205# CONFIG_USB_MICROTEK is not set 1212# CONFIG_USB_MICROTEK is not set
1206CONFIG_USB_MON=y
1207 1213
1208# 1214#
1209# USB port drivers 1215# USB port drivers
@@ -1216,7 +1222,6 @@ CONFIG_USB_MON=y
1216# CONFIG_USB_EMI62 is not set 1222# CONFIG_USB_EMI62 is not set
1217# CONFIG_USB_EMI26 is not set 1223# CONFIG_USB_EMI26 is not set
1218# CONFIG_USB_ADUTUX is not set 1224# CONFIG_USB_ADUTUX is not set
1219# CONFIG_USB_AUERSWALD is not set
1220# CONFIG_USB_RIO500 is not set 1225# CONFIG_USB_RIO500 is not set
1221# CONFIG_USB_LEGOTOWER is not set 1226# CONFIG_USB_LEGOTOWER is not set
1222# CONFIG_USB_LCD is not set 1227# CONFIG_USB_LCD is not set
@@ -1270,6 +1275,7 @@ CONFIG_RTC_INTF_DEV=y
1270# CONFIG_RTC_DRV_PCF8583 is not set 1275# CONFIG_RTC_DRV_PCF8583 is not set
1271# CONFIG_RTC_DRV_M41T80 is not set 1276# CONFIG_RTC_DRV_M41T80 is not set
1272# CONFIG_RTC_DRV_S35390A is not set 1277# CONFIG_RTC_DRV_S35390A is not set
1278# CONFIG_RTC_DRV_FM3130 is not set
1273 1279
1274# 1280#
1275# SPI RTC drivers 1281# SPI RTC drivers
@@ -1368,6 +1374,7 @@ CONFIG_EFS_FS=m
1368CONFIG_CRAMFS=y 1374CONFIG_CRAMFS=y
1369CONFIG_VXFS_FS=m 1375CONFIG_VXFS_FS=m
1370# CONFIG_MINIX_FS is not set 1376# CONFIG_MINIX_FS is not set
1377# CONFIG_OMFS_FS is not set
1371CONFIG_HPFS_FS=m 1378CONFIG_HPFS_FS=m
1372CONFIG_QNX4FS_FS=m 1379CONFIG_QNX4FS_FS=m
1373# CONFIG_ROMFS_FS is not set 1380# CONFIG_ROMFS_FS is not set
@@ -1380,17 +1387,16 @@ CONFIG_NFS_FS=y
1380CONFIG_NFS_V3=y 1387CONFIG_NFS_V3=y
1381# CONFIG_NFS_V3_ACL is not set 1388# CONFIG_NFS_V3_ACL is not set
1382CONFIG_NFS_V4=y 1389CONFIG_NFS_V4=y
1390CONFIG_ROOT_NFS=y
1383CONFIG_NFSD=y 1391CONFIG_NFSD=y
1384# CONFIG_NFSD_V3 is not set 1392# CONFIG_NFSD_V3 is not set
1385# CONFIG_NFSD_V4 is not set 1393# CONFIG_NFSD_V4 is not set
1386CONFIG_ROOT_NFS=y
1387CONFIG_LOCKD=y 1394CONFIG_LOCKD=y
1388CONFIG_LOCKD_V4=y 1395CONFIG_LOCKD_V4=y
1389CONFIG_EXPORTFS=y 1396CONFIG_EXPORTFS=y
1390CONFIG_NFS_COMMON=y 1397CONFIG_NFS_COMMON=y
1391CONFIG_SUNRPC=y 1398CONFIG_SUNRPC=y
1392CONFIG_SUNRPC_GSS=y 1399CONFIG_SUNRPC_GSS=y
1393# CONFIG_SUNRPC_BIND34 is not set
1394CONFIG_RPCSEC_GSS_KRB5=y 1400CONFIG_RPCSEC_GSS_KRB5=y
1395# CONFIG_RPCSEC_GSS_SPKM3 is not set 1401# CONFIG_RPCSEC_GSS_SPKM3 is not set
1396# CONFIG_SMB_FS is not set 1402# CONFIG_SMB_FS is not set
@@ -1469,6 +1475,7 @@ CONFIG_BITREVERSE=y
1469# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1475# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1470# CONFIG_CRC_CCITT is not set 1476# CONFIG_CRC_CCITT is not set
1471# CONFIG_CRC16 is not set 1477# CONFIG_CRC16 is not set
1478CONFIG_CRC_T10DIF=y
1472CONFIG_CRC_ITU_T=m 1479CONFIG_CRC_ITU_T=m
1473CONFIG_CRC32=y 1480CONFIG_CRC32=y
1474# CONFIG_CRC7 is not set 1481# CONFIG_CRC7 is not set
@@ -1494,6 +1501,8 @@ CONFIG_FRAME_WARN=1024
1494CONFIG_DEBUG_KERNEL=y 1501CONFIG_DEBUG_KERNEL=y
1495# CONFIG_DEBUG_SHIRQ is not set 1502# CONFIG_DEBUG_SHIRQ is not set
1496CONFIG_DETECT_SOFTLOCKUP=y 1503CONFIG_DETECT_SOFTLOCKUP=y
1504# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1505CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1497CONFIG_SCHED_DEBUG=y 1506CONFIG_SCHED_DEBUG=y
1498# CONFIG_SCHEDSTATS is not set 1507# CONFIG_SCHEDSTATS is not set
1499# CONFIG_TIMER_STATS is not set 1508# CONFIG_TIMER_STATS is not set
@@ -1512,17 +1521,29 @@ CONFIG_SCHED_DEBUG=y
1512CONFIG_DEBUG_INFO=y 1521CONFIG_DEBUG_INFO=y
1513# CONFIG_DEBUG_VM is not set 1522# CONFIG_DEBUG_VM is not set
1514# CONFIG_DEBUG_WRITECOUNT is not set 1523# CONFIG_DEBUG_WRITECOUNT is not set
1524# CONFIG_DEBUG_MEMORY_INIT is not set
1515# CONFIG_DEBUG_LIST is not set 1525# CONFIG_DEBUG_LIST is not set
1516# CONFIG_DEBUG_SG is not set 1526# CONFIG_DEBUG_SG is not set
1517# CONFIG_BOOT_PRINTK_DELAY is not set 1527# CONFIG_BOOT_PRINTK_DELAY is not set
1518# CONFIG_RCU_TORTURE_TEST is not set 1528# CONFIG_RCU_TORTURE_TEST is not set
1519# CONFIG_BACKTRACE_SELF_TEST is not set 1529# CONFIG_BACKTRACE_SELF_TEST is not set
1520# CONFIG_FAULT_INJECTION is not set 1530# CONFIG_FAULT_INJECTION is not set
1531# CONFIG_LATENCYTOP is not set
1532CONFIG_SYSCTL_SYSCALL_CHECK=y
1533CONFIG_HAVE_FTRACE=y
1534CONFIG_HAVE_DYNAMIC_FTRACE=y
1535# CONFIG_FTRACE is not set
1536# CONFIG_SCHED_TRACER is not set
1537# CONFIG_CONTEXT_SWITCH_TRACER is not set
1521# CONFIG_SAMPLES is not set 1538# CONFIG_SAMPLES is not set
1539CONFIG_HAVE_ARCH_KGDB=y
1540# CONFIG_KGDB is not set
1522# CONFIG_DEBUG_STACKOVERFLOW is not set 1541# CONFIG_DEBUG_STACKOVERFLOW is not set
1523# CONFIG_DEBUG_STACK_USAGE is not set 1542# CONFIG_DEBUG_STACK_USAGE is not set
1524# CONFIG_DEBUG_PAGEALLOC is not set 1543# CONFIG_DEBUG_PAGEALLOC is not set
1525# CONFIG_DEBUGGER is not set 1544# CONFIG_CODE_PATCHING_SELFTEST is not set
1545# CONFIG_FTR_FIXUP_SELFTEST is not set
1546# CONFIG_XMON is not set
1526# CONFIG_IRQSTACKS is not set 1547# CONFIG_IRQSTACKS is not set
1527# CONFIG_BDI_SWITCH is not set 1548# CONFIG_BDI_SWITCH is not set
1528# CONFIG_PPC_EARLY_DEBUG is not set 1549# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1539,13 +1560,14 @@ CONFIG_CRYPTO=y
1539# Crypto core or helper 1560# Crypto core or helper
1540# 1561#
1541CONFIG_CRYPTO_ALGAPI=y 1562CONFIG_CRYPTO_ALGAPI=y
1563CONFIG_CRYPTO_AEAD=y
1542CONFIG_CRYPTO_BLKCIPHER=y 1564CONFIG_CRYPTO_BLKCIPHER=y
1543CONFIG_CRYPTO_HASH=y 1565CONFIG_CRYPTO_HASH=y
1544CONFIG_CRYPTO_MANAGER=y 1566CONFIG_CRYPTO_MANAGER=y
1545# CONFIG_CRYPTO_GF128MUL is not set 1567# CONFIG_CRYPTO_GF128MUL is not set
1546# CONFIG_CRYPTO_NULL is not set 1568# CONFIG_CRYPTO_NULL is not set
1547# CONFIG_CRYPTO_CRYPTD is not set 1569# CONFIG_CRYPTO_CRYPTD is not set
1548# CONFIG_CRYPTO_AUTHENC is not set 1570CONFIG_CRYPTO_AUTHENC=y
1549# CONFIG_CRYPTO_TEST is not set 1571# CONFIG_CRYPTO_TEST is not set
1550 1572
1551# 1573#
@@ -1579,6 +1601,10 @@ CONFIG_CRYPTO_HMAC=y
1579# CONFIG_CRYPTO_MD4 is not set 1601# CONFIG_CRYPTO_MD4 is not set
1580CONFIG_CRYPTO_MD5=y 1602CONFIG_CRYPTO_MD5=y
1581# CONFIG_CRYPTO_MICHAEL_MIC is not set 1603# CONFIG_CRYPTO_MICHAEL_MIC is not set
1604# CONFIG_CRYPTO_RMD128 is not set
1605# CONFIG_CRYPTO_RMD160 is not set
1606# CONFIG_CRYPTO_RMD256 is not set
1607# CONFIG_CRYPTO_RMD320 is not set
1582CONFIG_CRYPTO_SHA1=m 1608CONFIG_CRYPTO_SHA1=m
1583# CONFIG_CRYPTO_SHA256 is not set 1609# CONFIG_CRYPTO_SHA256 is not set
1584# CONFIG_CRYPTO_SHA512 is not set 1610# CONFIG_CRYPTO_SHA512 is not set
@@ -1611,5 +1637,6 @@ CONFIG_CRYPTO_DES=y
1611# CONFIG_CRYPTO_LZO is not set 1637# CONFIG_CRYPTO_LZO is not set
1612CONFIG_CRYPTO_HW=y 1638CONFIG_CRYPTO_HW=y
1613# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1639# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1640CONFIG_CRYPTO_DEV_TALITOS=y
1614# CONFIG_PPC_CLOCK is not set 1641# CONFIG_PPC_CLOCK is not set
1615# CONFIG_VIRTUALIZATION is not set 1642# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
index b09f0032a10..97f3c4fe440 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:36 2008 4# Thu Aug 21 00:52:34 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -89,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 95# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 96# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -114,10 +115,16 @@ CONFIG_SLUB=y
114# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set 116# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y
119# CONFIG_HAVE_DMA_ATTRS is not set 123# CONFIG_HAVE_DMA_ATTRS is not set
124# CONFIG_USE_GENERIC_SMP_HELPERS is not set
125# CONFIG_HAVE_CLK is not set
120CONFIG_PROC_PAGE_MONITOR=y 126CONFIG_PROC_PAGE_MONITOR=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set 130# CONFIG_TINY_SHMEM is not set
@@ -128,6 +135,7 @@ CONFIG_BLOCK=y
128# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_LSF is not set 136# CONFIG_LSF is not set
130# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set
131 139
132# 140#
133# IO Schedulers 141# IO Schedulers
@@ -146,8 +154,6 @@ CONFIG_CLASSIC_RCU=y
146# 154#
147# Platform support 155# Platform support
148# 156#
149# CONFIG_PPC_MPC512x is not set
150# CONFIG_PPC_MPC5121 is not set
151# CONFIG_PPC_CELL is not set 157# CONFIG_PPC_CELL is not set
152# CONFIG_PPC_CELL_NATIVE is not set 158# CONFIG_PPC_CELL_NATIVE is not set
153# CONFIG_PQ2ADS is not set 159# CONFIG_PQ2ADS is not set
@@ -156,11 +162,13 @@ CONFIG_MPC85xx=y
156# CONFIG_MPC8560_ADS is not set 162# CONFIG_MPC8560_ADS is not set
157CONFIG_MPC85xx_CDS=y 163CONFIG_MPC85xx_CDS=y
158# CONFIG_MPC85xx_MDS is not set 164# CONFIG_MPC85xx_MDS is not set
165# CONFIG_MPC8536_DS is not set
159# CONFIG_MPC85xx_DS is not set 166# CONFIG_MPC85xx_DS is not set
160# CONFIG_KSI8560 is not set 167# CONFIG_KSI8560 is not set
161# CONFIG_STX_GP3 is not set 168# CONFIG_STX_GP3 is not set
162# CONFIG_TQM8540 is not set 169# CONFIG_TQM8540 is not set
163# CONFIG_TQM8541 is not set 170# CONFIG_TQM8541 is not set
171# CONFIG_TQM8548 is not set
164# CONFIG_TQM8555 is not set 172# CONFIG_TQM8555 is not set
165# CONFIG_TQM8560 is not set 173# CONFIG_TQM8560 is not set
166# CONFIG_SBC8548 is not set 174# CONFIG_SBC8548 is not set
@@ -192,7 +200,7 @@ CONFIG_HZ_250=y
192# CONFIG_HZ_300 is not set 200# CONFIG_HZ_300 is not set
193# CONFIG_HZ_1000 is not set 201# CONFIG_HZ_1000 is not set
194CONFIG_HZ=250 202CONFIG_HZ=250
195# CONFIG_SCHED_HRTICK is not set 203CONFIG_SCHED_HRTICK=y
196CONFIG_PREEMPT_NONE=y 204CONFIG_PREEMPT_NONE=y
197# CONFIG_PREEMPT_VOLUNTARY is not set 205# CONFIG_PREEMPT_VOLUNTARY is not set
198# CONFIG_PREEMPT is not set 206# CONFIG_PREEMPT is not set
@@ -215,6 +223,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y 224CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 225CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y
218# CONFIG_RESOURCES_64BIT is not set 227# CONFIG_RESOURCES_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=1 228CONFIG_ZONE_DMA_FLAG=1
220CONFIG_BOUNCE=y 229CONFIG_BOUNCE=y
@@ -222,6 +231,7 @@ CONFIG_VIRT_TO_BUS=y
222CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
223CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
224# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
234CONFIG_EXTRA_TARGETS=""
225# CONFIG_PM is not set 235# CONFIG_PM is not set
226# CONFIG_SECCOMP is not set 236# CONFIG_SECCOMP is not set
227CONFIG_ISA_DMA_API=y 237CONFIG_ISA_DMA_API=y
@@ -233,6 +243,7 @@ CONFIG_ZONE_DMA=y
233CONFIG_PPC_INDIRECT_PCI=y 243CONFIG_PPC_INDIRECT_PCI=y
234CONFIG_FSL_SOC=y 244CONFIG_FSL_SOC=y
235CONFIG_FSL_PCI=y 245CONFIG_FSL_PCI=y
246CONFIG_PPC_PCI_CHOICE=y
236CONFIG_PCI=y 247CONFIG_PCI=y
237CONFIG_PCI_DOMAINS=y 248CONFIG_PCI_DOMAINS=y
238CONFIG_PCI_SYSCALL=y 249CONFIG_PCI_SYSCALL=y
@@ -259,10 +270,6 @@ CONFIG_KERNEL_START=0xc0000000
259CONFIG_PHYSICAL_START=0x00000000 270CONFIG_PHYSICAL_START=0x00000000
260CONFIG_PHYSICAL_ALIGN=0x10000000 271CONFIG_PHYSICAL_ALIGN=0x10000000
261CONFIG_TASK_SIZE=0xc0000000 272CONFIG_TASK_SIZE=0xc0000000
262
263#
264# Networking
265#
266CONFIG_NET=y 273CONFIG_NET=y
267 274
268# 275#
@@ -379,20 +386,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
379# CONFIG_BLK_DEV_XIP is not set 386# CONFIG_BLK_DEV_XIP is not set
380# CONFIG_CDROM_PKTCDVD is not set 387# CONFIG_CDROM_PKTCDVD is not set
381# CONFIG_ATA_OVER_ETH is not set 388# CONFIG_ATA_OVER_ETH is not set
389# CONFIG_BLK_DEV_HD is not set
382CONFIG_MISC_DEVICES=y 390CONFIG_MISC_DEVICES=y
383# CONFIG_PHANTOM is not set 391# CONFIG_PHANTOM is not set
384# CONFIG_EEPROM_93CX6 is not set 392# CONFIG_EEPROM_93CX6 is not set
385# CONFIG_SGI_IOC4 is not set 393# CONFIG_SGI_IOC4 is not set
386# CONFIG_TIFM_CORE is not set 394# CONFIG_TIFM_CORE is not set
387# CONFIG_ENCLOSURE_SERVICES is not set 395# CONFIG_ENCLOSURE_SERVICES is not set
396# CONFIG_HP_ILO is not set
388CONFIG_HAVE_IDE=y 397CONFIG_HAVE_IDE=y
389CONFIG_IDE=y 398CONFIG_IDE=y
390CONFIG_IDE_MAX_HWIFS=4
391CONFIG_BLK_DEV_IDE=y 399CONFIG_BLK_DEV_IDE=y
392 400
393# 401#
394# Please see Documentation/ide/ide.txt for help/info on IDE drives 402# Please see Documentation/ide/ide.txt for help/info on IDE drives
395# 403#
404CONFIG_IDE_TIMINGS=y
396# CONFIG_BLK_DEV_IDE_SATA is not set 405# CONFIG_BLK_DEV_IDE_SATA is not set
397# CONFIG_BLK_DEV_IDEDISK is not set 406# CONFIG_BLK_DEV_IDEDISK is not set
398# CONFIG_IDEDISK_MULTI_MODE is not set 407# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -405,7 +414,6 @@ CONFIG_IDE_PROC_FS=y
405# 414#
406# IDE chipset support/bugfixes 415# IDE chipset support/bugfixes
407# 416#
408CONFIG_IDE_GENERIC=y
409# CONFIG_BLK_DEV_PLATFORM is not set 417# CONFIG_BLK_DEV_PLATFORM is not set
410CONFIG_BLK_DEV_IDEDMA_SFF=y 418CONFIG_BLK_DEV_IDEDMA_SFF=y
411 419
@@ -423,10 +431,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
423# CONFIG_BLK_DEV_AMD74XX is not set 431# CONFIG_BLK_DEV_AMD74XX is not set
424# CONFIG_BLK_DEV_CMD64X is not set 432# CONFIG_BLK_DEV_CMD64X is not set
425# CONFIG_BLK_DEV_TRIFLEX is not set 433# CONFIG_BLK_DEV_TRIFLEX is not set
426# CONFIG_BLK_DEV_CY82C693 is not set
427# CONFIG_BLK_DEV_CS5520 is not set 434# CONFIG_BLK_DEV_CS5520 is not set
428# CONFIG_BLK_DEV_CS5530 is not set 435# CONFIG_BLK_DEV_CS5530 is not set
429# CONFIG_BLK_DEV_HPT34X is not set
430# CONFIG_BLK_DEV_HPT366 is not set 436# CONFIG_BLK_DEV_HPT366 is not set
431# CONFIG_BLK_DEV_JMICRON is not set 437# CONFIG_BLK_DEV_JMICRON is not set
432# CONFIG_BLK_DEV_SC1200 is not set 438# CONFIG_BLK_DEV_SC1200 is not set
@@ -444,8 +450,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
444CONFIG_BLK_DEV_VIA82CXXX=y 450CONFIG_BLK_DEV_VIA82CXXX=y
445# CONFIG_BLK_DEV_TC86C001 is not set 451# CONFIG_BLK_DEV_TC86C001 is not set
446CONFIG_BLK_DEV_IDEDMA=y 452CONFIG_BLK_DEV_IDEDMA=y
447# CONFIG_BLK_DEV_HD_ONLY is not set
448# CONFIG_BLK_DEV_HD is not set
449 453
450# 454#
451# SCSI device support 455# SCSI device support
@@ -461,12 +465,15 @@ CONFIG_BLK_DEV_IDEDMA=y
461# 465#
462# IEEE 1394 (FireWire) support 466# IEEE 1394 (FireWire) support
463# 467#
468
469#
470# Enable only one of the two stacks, unless you know what you are doing
471#
464# CONFIG_FIREWIRE is not set 472# CONFIG_FIREWIRE is not set
465# CONFIG_IEEE1394 is not set 473# CONFIG_IEEE1394 is not set
466# CONFIG_I2O is not set 474# CONFIG_I2O is not set
467# CONFIG_MACINTOSH_DRIVERS is not set 475# CONFIG_MACINTOSH_DRIVERS is not set
468CONFIG_NETDEVICES=y 476CONFIG_NETDEVICES=y
469# CONFIG_NETDEVICES_MULTIQUEUE is not set
470# CONFIG_DUMMY is not set 477# CONFIG_DUMMY is not set
471# CONFIG_BONDING is not set 478# CONFIG_BONDING is not set
472# CONFIG_MACVLAN is not set 479# CONFIG_MACVLAN is not set
@@ -509,10 +516,8 @@ CONFIG_NETDEV_1000=y
509# CONFIG_ACENIC is not set 516# CONFIG_ACENIC is not set
510# CONFIG_DL2K is not set 517# CONFIG_DL2K is not set
511CONFIG_E1000=y 518CONFIG_E1000=y
512CONFIG_E1000_NAPI=y
513# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 519# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
514# CONFIG_E1000E is not set 520# CONFIG_E1000E is not set
515# CONFIG_E1000E_ENABLED is not set
516# CONFIG_IP1000 is not set 521# CONFIG_IP1000 is not set
517# CONFIG_IGB is not set 522# CONFIG_IGB is not set
518# CONFIG_NS83820 is not set 523# CONFIG_NS83820 is not set
@@ -526,9 +531,9 @@ CONFIG_E1000_NAPI=y
526# CONFIG_TIGON3 is not set 531# CONFIG_TIGON3 is not set
527# CONFIG_BNX2 is not set 532# CONFIG_BNX2 is not set
528CONFIG_GIANFAR=y 533CONFIG_GIANFAR=y
529CONFIG_GFAR_NAPI=y
530# CONFIG_QLA3XXX is not set 534# CONFIG_QLA3XXX is not set
531# CONFIG_ATL1 is not set 535# CONFIG_ATL1 is not set
536# CONFIG_ATL1E is not set
532CONFIG_NETDEV_10000=y 537CONFIG_NETDEV_10000=y
533# CONFIG_CHELSIO_T1 is not set 538# CONFIG_CHELSIO_T1 is not set
534# CONFIG_CHELSIO_T3 is not set 539# CONFIG_CHELSIO_T3 is not set
@@ -634,6 +639,8 @@ CONFIG_GEN_RTC=y
634CONFIG_DEVPORT=y 639CONFIG_DEVPORT=y
635# CONFIG_I2C is not set 640# CONFIG_I2C is not set
636# CONFIG_SPI is not set 641# CONFIG_SPI is not set
642CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
643# CONFIG_GPIOLIB is not set
637# CONFIG_W1 is not set 644# CONFIG_W1 is not set
638# CONFIG_POWER_SUPPLY is not set 645# CONFIG_POWER_SUPPLY is not set
639CONFIG_HWMON=y 646CONFIG_HWMON=y
@@ -654,6 +661,7 @@ CONFIG_HWMON=y
654# CONFIG_SENSORS_W83627EHF is not set 661# CONFIG_SENSORS_W83627EHF is not set
655# CONFIG_HWMON_DEBUG_CHIP is not set 662# CONFIG_HWMON_DEBUG_CHIP is not set
656# CONFIG_THERMAL is not set 663# CONFIG_THERMAL is not set
664# CONFIG_THERMAL_HWMON is not set
657# CONFIG_WATCHDOG is not set 665# CONFIG_WATCHDOG is not set
658 666
659# 667#
@@ -665,8 +673,10 @@ CONFIG_SSB_POSSIBLE=y
665# 673#
666# Multifunction device drivers 674# Multifunction device drivers
667# 675#
676# CONFIG_MFD_CORE is not set
668# CONFIG_MFD_SM501 is not set 677# CONFIG_MFD_SM501 is not set
669# CONFIG_HTC_PASIC3 is not set 678# CONFIG_HTC_PASIC3 is not set
679# CONFIG_MFD_TMIO is not set
670 680
671# 681#
672# Multimedia devices 682# Multimedia devices
@@ -698,10 +708,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
698# Display device support 708# Display device support
699# 709#
700# CONFIG_DISPLAY_SUPPORT is not set 710# CONFIG_DISPLAY_SUPPORT is not set
701
702#
703# Sound
704#
705# CONFIG_SOUND is not set 711# CONFIG_SOUND is not set
706CONFIG_HID_SUPPORT=y 712CONFIG_HID_SUPPORT=y
707CONFIG_HID=y 713CONFIG_HID=y
@@ -716,6 +722,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
716# CONFIG_USB_OTG_BLACKLIST_HUB is not set 722# CONFIG_USB_OTG_BLACKLIST_HUB is not set
717 723
718# 724#
725# Enable Host or Gadget support to see Inventra options
726#
727
728#
719# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 729# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
720# 730#
721# CONFIG_USB_GADGET is not set 731# CONFIG_USB_GADGET is not set
@@ -793,6 +803,7 @@ CONFIG_TMPFS=y
793# CONFIG_CRAMFS is not set 803# CONFIG_CRAMFS is not set
794# CONFIG_VXFS_FS is not set 804# CONFIG_VXFS_FS is not set
795# CONFIG_MINIX_FS is not set 805# CONFIG_MINIX_FS is not set
806# CONFIG_OMFS_FS is not set
796# CONFIG_HPFS_FS is not set 807# CONFIG_HPFS_FS is not set
797# CONFIG_QNX4FS_FS is not set 808# CONFIG_QNX4FS_FS is not set
798# CONFIG_ROMFS_FS is not set 809# CONFIG_ROMFS_FS is not set
@@ -802,12 +813,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
802CONFIG_NFS_FS=y 813CONFIG_NFS_FS=y
803# CONFIG_NFS_V3 is not set 814# CONFIG_NFS_V3 is not set
804# CONFIG_NFS_V4 is not set 815# CONFIG_NFS_V4 is not set
805# CONFIG_NFSD is not set
806CONFIG_ROOT_NFS=y 816CONFIG_ROOT_NFS=y
817# CONFIG_NFSD is not set
807CONFIG_LOCKD=y 818CONFIG_LOCKD=y
808CONFIG_NFS_COMMON=y 819CONFIG_NFS_COMMON=y
809CONFIG_SUNRPC=y 820CONFIG_SUNRPC=y
810# CONFIG_SUNRPC_BIND34 is not set
811# CONFIG_RPCSEC_GSS_KRB5 is not set 821# CONFIG_RPCSEC_GSS_KRB5 is not set
812# CONFIG_RPCSEC_GSS_SPKM3 is not set 822# CONFIG_RPCSEC_GSS_SPKM3 is not set
813# CONFIG_SMB_FS is not set 823# CONFIG_SMB_FS is not set
@@ -843,6 +853,7 @@ CONFIG_BITREVERSE=y
843# CONFIG_GENERIC_FIND_FIRST_BIT is not set 853# CONFIG_GENERIC_FIND_FIRST_BIT is not set
844# CONFIG_CRC_CCITT is not set 854# CONFIG_CRC_CCITT is not set
845# CONFIG_CRC16 is not set 855# CONFIG_CRC16 is not set
856# CONFIG_CRC_T10DIF is not set
846# CONFIG_CRC_ITU_T is not set 857# CONFIG_CRC_ITU_T is not set
847CONFIG_CRC32=y 858CONFIG_CRC32=y
848# CONFIG_CRC7 is not set 859# CONFIG_CRC7 is not set
@@ -867,6 +878,8 @@ CONFIG_FRAME_WARN=1024
867CONFIG_DEBUG_KERNEL=y 878CONFIG_DEBUG_KERNEL=y
868# CONFIG_DEBUG_SHIRQ is not set 879# CONFIG_DEBUG_SHIRQ is not set
869CONFIG_DETECT_SOFTLOCKUP=y 880CONFIG_DETECT_SOFTLOCKUP=y
881# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
882CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
870CONFIG_SCHED_DEBUG=y 883CONFIG_SCHED_DEBUG=y
871# CONFIG_SCHEDSTATS is not set 884# CONFIG_SCHEDSTATS is not set
872# CONFIG_TIMER_STATS is not set 885# CONFIG_TIMER_STATS is not set
@@ -884,16 +897,29 @@ CONFIG_DEBUG_MUTEXES=y
884# CONFIG_DEBUG_INFO is not set 897# CONFIG_DEBUG_INFO is not set
885# CONFIG_DEBUG_VM is not set 898# CONFIG_DEBUG_VM is not set
886# CONFIG_DEBUG_WRITECOUNT is not set 899# CONFIG_DEBUG_WRITECOUNT is not set
900# CONFIG_DEBUG_MEMORY_INIT is not set
887# CONFIG_DEBUG_LIST is not set 901# CONFIG_DEBUG_LIST is not set
888# CONFIG_DEBUG_SG is not set 902# CONFIG_DEBUG_SG is not set
889# CONFIG_BOOT_PRINTK_DELAY is not set 903# CONFIG_BOOT_PRINTK_DELAY is not set
904# CONFIG_RCU_TORTURE_TEST is not set
890# CONFIG_BACKTRACE_SELF_TEST is not set 905# CONFIG_BACKTRACE_SELF_TEST is not set
891# CONFIG_FAULT_INJECTION is not set 906# CONFIG_FAULT_INJECTION is not set
907# CONFIG_LATENCYTOP is not set
908CONFIG_SYSCTL_SYSCALL_CHECK=y
909CONFIG_HAVE_FTRACE=y
910CONFIG_HAVE_DYNAMIC_FTRACE=y
911# CONFIG_FTRACE is not set
912# CONFIG_SCHED_TRACER is not set
913# CONFIG_CONTEXT_SWITCH_TRACER is not set
892# CONFIG_SAMPLES is not set 914# CONFIG_SAMPLES is not set
915CONFIG_HAVE_ARCH_KGDB=y
916# CONFIG_KGDB is not set
893# CONFIG_DEBUG_STACKOVERFLOW is not set 917# CONFIG_DEBUG_STACKOVERFLOW is not set
894# CONFIG_DEBUG_STACK_USAGE is not set 918# CONFIG_DEBUG_STACK_USAGE is not set
895# CONFIG_DEBUG_PAGEALLOC is not set 919# CONFIG_DEBUG_PAGEALLOC is not set
896# CONFIG_DEBUGGER is not set 920# CONFIG_CODE_PATCHING_SELFTEST is not set
921# CONFIG_FTR_FIXUP_SELFTEST is not set
922# CONFIG_XMON is not set
897# CONFIG_IRQSTACKS is not set 923# CONFIG_IRQSTACKS is not set
898# CONFIG_BDI_SWITCH is not set 924# CONFIG_BDI_SWITCH is not set
899# CONFIG_PPC_EARLY_DEBUG is not set 925# CONFIG_PPC_EARLY_DEBUG is not set
@@ -946,6 +972,10 @@ CONFIG_CRYPTO=y
946# CONFIG_CRYPTO_MD4 is not set 972# CONFIG_CRYPTO_MD4 is not set
947# CONFIG_CRYPTO_MD5 is not set 973# CONFIG_CRYPTO_MD5 is not set
948# CONFIG_CRYPTO_MICHAEL_MIC is not set 974# CONFIG_CRYPTO_MICHAEL_MIC is not set
975# CONFIG_CRYPTO_RMD128 is not set
976# CONFIG_CRYPTO_RMD160 is not set
977# CONFIG_CRYPTO_RMD256 is not set
978# CONFIG_CRYPTO_RMD320 is not set
949# CONFIG_CRYPTO_SHA1 is not set 979# CONFIG_CRYPTO_SHA1 is not set
950# CONFIG_CRYPTO_SHA256 is not set 980# CONFIG_CRYPTO_SHA256 is not set
951# CONFIG_CRYPTO_SHA512 is not set 981# CONFIG_CRYPTO_SHA512 is not set
@@ -978,5 +1008,6 @@ CONFIG_CRYPTO=y
978# CONFIG_CRYPTO_LZO is not set 1008# CONFIG_CRYPTO_LZO is not set
979CONFIG_CRYPTO_HW=y 1009CONFIG_CRYPTO_HW=y
980# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1010# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1011# CONFIG_CRYPTO_DEV_TALITOS is not set
981# CONFIG_PPC_CLOCK is not set 1012# CONFIG_PPC_CLOCK is not set
982# CONFIG_VIRTUALIZATION is not set 1013# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig
index 24f7f44b482..41cedc4b63f 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:37 2008 4# Thu Aug 21 00:52:35 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -89,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_EXTRA_PASS is not set 95# CONFIG_KALLSYMS_EXTRA_PASS is not set
95CONFIG_HOTPLUG=y 96CONFIG_HOTPLUG=y
@@ -112,10 +113,16 @@ CONFIG_SLAB=y
112# CONFIG_PROFILING is not set 113# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 114# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 118CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 119CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 121# CONFIG_HAVE_DMA_ATTRS is not set
122# CONFIG_USE_GENERIC_SMP_HELPERS is not set
123# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 124CONFIG_PROC_PAGE_MONITOR=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 128# CONFIG_TINY_SHMEM is not set
@@ -126,6 +133,7 @@ CONFIG_BLOCK=y
126# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set 134# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set
129 137
130# 138#
131# IO Schedulers 139# IO Schedulers
@@ -144,8 +152,6 @@ CONFIG_CLASSIC_RCU=y
144# 152#
145# Platform support 153# Platform support
146# 154#
147# CONFIG_PPC_MPC512x is not set
148# CONFIG_PPC_MPC5121 is not set
149# CONFIG_PPC_CELL is not set 155# CONFIG_PPC_CELL is not set
150# CONFIG_PPC_CELL_NATIVE is not set 156# CONFIG_PPC_CELL_NATIVE is not set
151# CONFIG_PQ2ADS is not set 157# CONFIG_PQ2ADS is not set
@@ -154,11 +160,13 @@ CONFIG_MPC85xx=y
154# CONFIG_MPC8560_ADS is not set 160# CONFIG_MPC8560_ADS is not set
155# CONFIG_MPC85xx_CDS is not set 161# CONFIG_MPC85xx_CDS is not set
156# CONFIG_MPC85xx_MDS is not set 162# CONFIG_MPC85xx_MDS is not set
163# CONFIG_MPC8536_DS is not set
157# CONFIG_MPC85xx_DS is not set 164# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set 165# CONFIG_KSI8560 is not set
159# CONFIG_STX_GP3 is not set 166# CONFIG_STX_GP3 is not set
160# CONFIG_TQM8540 is not set 167# CONFIG_TQM8540 is not set
161# CONFIG_TQM8541 is not set 168# CONFIG_TQM8541 is not set
169# CONFIG_TQM8548 is not set
162# CONFIG_TQM8555 is not set 170# CONFIG_TQM8555 is not set
163# CONFIG_TQM8560 is not set 171# CONFIG_TQM8560 is not set
164CONFIG_SBC8548=y 172CONFIG_SBC8548=y
@@ -213,6 +221,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
213# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
214CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
215CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
216# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
217CONFIG_ZONE_DMA_FLAG=1 226CONFIG_ZONE_DMA_FLAG=1
218CONFIG_BOUNCE=y 227CONFIG_BOUNCE=y
@@ -220,6 +229,7 @@ CONFIG_VIRT_TO_BUS=y
220CONFIG_FORCE_MAX_ZONEORDER=11 229CONFIG_FORCE_MAX_ZONEORDER=11
221CONFIG_PROC_DEVICETREE=y 230CONFIG_PROC_DEVICETREE=y
222# CONFIG_CMDLINE_BOOL is not set 231# CONFIG_CMDLINE_BOOL is not set
232CONFIG_EXTRA_TARGETS=""
223# CONFIG_PM is not set 233# CONFIG_PM is not set
224# CONFIG_SECCOMP is not set 234# CONFIG_SECCOMP is not set
225CONFIG_ISA_DMA_API=y 235CONFIG_ISA_DMA_API=y
@@ -231,6 +241,7 @@ CONFIG_ZONE_DMA=y
231CONFIG_PPC_INDIRECT_PCI=y 241CONFIG_PPC_INDIRECT_PCI=y
232CONFIG_FSL_SOC=y 242CONFIG_FSL_SOC=y
233CONFIG_FSL_PCI=y 243CONFIG_FSL_PCI=y
244CONFIG_PPC_PCI_CHOICE=y
234CONFIG_PCI=y 245CONFIG_PCI=y
235CONFIG_PCI_DOMAINS=y 246CONFIG_PCI_DOMAINS=y
236CONFIG_PCI_SYSCALL=y 247CONFIG_PCI_SYSCALL=y
@@ -256,10 +267,6 @@ CONFIG_KERNEL_START=0xc0000000
256CONFIG_PHYSICAL_START=0x00000000 267CONFIG_PHYSICAL_START=0x00000000
257CONFIG_PHYSICAL_ALIGN=0x10000000 268CONFIG_PHYSICAL_ALIGN=0x10000000
258CONFIG_TASK_SIZE=0xc0000000 269CONFIG_TASK_SIZE=0xc0000000
259
260#
261# Networking
262#
263CONFIG_NET=y 270CONFIG_NET=y
264 271
265# 272#
@@ -374,12 +381,14 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
374# CONFIG_BLK_DEV_XIP is not set 381# CONFIG_BLK_DEV_XIP is not set
375# CONFIG_CDROM_PKTCDVD is not set 382# CONFIG_CDROM_PKTCDVD is not set
376# CONFIG_ATA_OVER_ETH is not set 383# CONFIG_ATA_OVER_ETH is not set
384# CONFIG_BLK_DEV_HD is not set
377CONFIG_MISC_DEVICES=y 385CONFIG_MISC_DEVICES=y
378# CONFIG_PHANTOM is not set 386# CONFIG_PHANTOM is not set
379# CONFIG_EEPROM_93CX6 is not set 387# CONFIG_EEPROM_93CX6 is not set
380# CONFIG_SGI_IOC4 is not set 388# CONFIG_SGI_IOC4 is not set
381# CONFIG_TIFM_CORE is not set 389# CONFIG_TIFM_CORE is not set
382# CONFIG_ENCLOSURE_SERVICES is not set 390# CONFIG_ENCLOSURE_SERVICES is not set
391# CONFIG_HP_ILO is not set
383CONFIG_HAVE_IDE=y 392CONFIG_HAVE_IDE=y
384# CONFIG_IDE is not set 393# CONFIG_IDE is not set
385 394
@@ -397,12 +406,15 @@ CONFIG_HAVE_IDE=y
397# 406#
398# IEEE 1394 (FireWire) support 407# IEEE 1394 (FireWire) support
399# 408#
409
410#
411# Enable only one of the two stacks, unless you know what you are doing
412#
400# CONFIG_FIREWIRE is not set 413# CONFIG_FIREWIRE is not set
401# CONFIG_IEEE1394 is not set 414# CONFIG_IEEE1394 is not set
402# CONFIG_I2O is not set 415# CONFIG_I2O is not set
403# CONFIG_MACINTOSH_DRIVERS is not set 416# CONFIG_MACINTOSH_DRIVERS is not set
404CONFIG_NETDEVICES=y 417CONFIG_NETDEVICES=y
405# CONFIG_NETDEVICES_MULTIQUEUE is not set
406# CONFIG_DUMMY is not set 418# CONFIG_DUMMY is not set
407# CONFIG_BONDING is not set 419# CONFIG_BONDING is not set
408# CONFIG_MACVLAN is not set 420# CONFIG_MACVLAN is not set
@@ -446,7 +458,6 @@ CONFIG_NETDEV_1000=y
446# CONFIG_DL2K is not set 458# CONFIG_DL2K is not set
447# CONFIG_E1000 is not set 459# CONFIG_E1000 is not set
448# CONFIG_E1000E is not set 460# CONFIG_E1000E is not set
449# CONFIG_E1000E_ENABLED is not set
450# CONFIG_IP1000 is not set 461# CONFIG_IP1000 is not set
451# CONFIG_IGB is not set 462# CONFIG_IGB is not set
452# CONFIG_NS83820 is not set 463# CONFIG_NS83820 is not set
@@ -460,9 +471,9 @@ CONFIG_NETDEV_1000=y
460# CONFIG_TIGON3 is not set 471# CONFIG_TIGON3 is not set
461# CONFIG_BNX2 is not set 472# CONFIG_BNX2 is not set
462CONFIG_GIANFAR=y 473CONFIG_GIANFAR=y
463CONFIG_GFAR_NAPI=y
464# CONFIG_QLA3XXX is not set 474# CONFIG_QLA3XXX is not set
465# CONFIG_ATL1 is not set 475# CONFIG_ATL1 is not set
476# CONFIG_ATL1E is not set
466CONFIG_NETDEV_10000=y 477CONFIG_NETDEV_10000=y
467# CONFIG_CHELSIO_T1 is not set 478# CONFIG_CHELSIO_T1 is not set
468# CONFIG_CHELSIO_T3 is not set 479# CONFIG_CHELSIO_T3 is not set
@@ -568,6 +579,8 @@ CONFIG_GEN_RTC=y
568CONFIG_DEVPORT=y 579CONFIG_DEVPORT=y
569# CONFIG_I2C is not set 580# CONFIG_I2C is not set
570# CONFIG_SPI is not set 581# CONFIG_SPI is not set
582CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
583# CONFIG_GPIOLIB is not set
571# CONFIG_W1 is not set 584# CONFIG_W1 is not set
572# CONFIG_POWER_SUPPLY is not set 585# CONFIG_POWER_SUPPLY is not set
573CONFIG_HWMON=y 586CONFIG_HWMON=y
@@ -588,6 +601,7 @@ CONFIG_HWMON=y
588# CONFIG_SENSORS_W83627EHF is not set 601# CONFIG_SENSORS_W83627EHF is not set
589# CONFIG_HWMON_DEBUG_CHIP is not set 602# CONFIG_HWMON_DEBUG_CHIP is not set
590# CONFIG_THERMAL is not set 603# CONFIG_THERMAL is not set
604# CONFIG_THERMAL_HWMON is not set
591# CONFIG_WATCHDOG is not set 605# CONFIG_WATCHDOG is not set
592 606
593# 607#
@@ -599,8 +613,10 @@ CONFIG_SSB_POSSIBLE=y
599# 613#
600# Multifunction device drivers 614# Multifunction device drivers
601# 615#
616# CONFIG_MFD_CORE is not set
602# CONFIG_MFD_SM501 is not set 617# CONFIG_MFD_SM501 is not set
603# CONFIG_HTC_PASIC3 is not set 618# CONFIG_HTC_PASIC3 is not set
619# CONFIG_MFD_TMIO is not set
604 620
605# 621#
606# Multimedia devices 622# Multimedia devices
@@ -632,10 +648,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
632# Display device support 648# Display device support
633# 649#
634# CONFIG_DISPLAY_SUPPORT is not set 650# CONFIG_DISPLAY_SUPPORT is not set
635
636#
637# Sound
638#
639# CONFIG_SOUND is not set 651# CONFIG_SOUND is not set
640# CONFIG_HID_SUPPORT is not set 652# CONFIG_HID_SUPPORT is not set
641# CONFIG_USB_SUPPORT is not set 653# CONFIG_USB_SUPPORT is not set
@@ -706,6 +718,7 @@ CONFIG_TMPFS=y
706# CONFIG_CRAMFS is not set 718# CONFIG_CRAMFS is not set
707# CONFIG_VXFS_FS is not set 719# CONFIG_VXFS_FS is not set
708# CONFIG_MINIX_FS is not set 720# CONFIG_MINIX_FS is not set
721# CONFIG_OMFS_FS is not set
709# CONFIG_HPFS_FS is not set 722# CONFIG_HPFS_FS is not set
710# CONFIG_QNX4FS_FS is not set 723# CONFIG_QNX4FS_FS is not set
711# CONFIG_ROMFS_FS is not set 724# CONFIG_ROMFS_FS is not set
@@ -715,12 +728,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
715CONFIG_NFS_FS=y 728CONFIG_NFS_FS=y
716# CONFIG_NFS_V3 is not set 729# CONFIG_NFS_V3 is not set
717# CONFIG_NFS_V4 is not set 730# CONFIG_NFS_V4 is not set
718# CONFIG_NFSD is not set
719CONFIG_ROOT_NFS=y 731CONFIG_ROOT_NFS=y
732# CONFIG_NFSD is not set
720CONFIG_LOCKD=y 733CONFIG_LOCKD=y
721CONFIG_NFS_COMMON=y 734CONFIG_NFS_COMMON=y
722CONFIG_SUNRPC=y 735CONFIG_SUNRPC=y
723# CONFIG_SUNRPC_BIND34 is not set
724# CONFIG_RPCSEC_GSS_KRB5 is not set 736# CONFIG_RPCSEC_GSS_KRB5 is not set
725# CONFIG_RPCSEC_GSS_SPKM3 is not set 737# CONFIG_RPCSEC_GSS_SPKM3 is not set
726# CONFIG_SMB_FS is not set 738# CONFIG_SMB_FS is not set
@@ -744,6 +756,7 @@ CONFIG_BITREVERSE=y
744# CONFIG_GENERIC_FIND_FIRST_BIT is not set 756# CONFIG_GENERIC_FIND_FIRST_BIT is not set
745# CONFIG_CRC_CCITT is not set 757# CONFIG_CRC_CCITT is not set
746# CONFIG_CRC16 is not set 758# CONFIG_CRC16 is not set
759# CONFIG_CRC_T10DIF is not set
747# CONFIG_CRC_ITU_T is not set 760# CONFIG_CRC_ITU_T is not set
748CONFIG_CRC32=y 761CONFIG_CRC32=y
749# CONFIG_CRC7 is not set 762# CONFIG_CRC7 is not set
@@ -767,7 +780,16 @@ CONFIG_FRAME_WARN=1024
767# CONFIG_HEADERS_CHECK is not set 780# CONFIG_HEADERS_CHECK is not set
768# CONFIG_DEBUG_KERNEL is not set 781# CONFIG_DEBUG_KERNEL is not set
769# CONFIG_DEBUG_BUGVERBOSE is not set 782# CONFIG_DEBUG_BUGVERBOSE is not set
783# CONFIG_DEBUG_MEMORY_INIT is not set
784# CONFIG_LATENCYTOP is not set
785CONFIG_SYSCTL_SYSCALL_CHECK=y
786CONFIG_HAVE_FTRACE=y
787CONFIG_HAVE_DYNAMIC_FTRACE=y
788# CONFIG_FTRACE is not set
789# CONFIG_SCHED_TRACER is not set
790# CONFIG_CONTEXT_SWITCH_TRACER is not set
770# CONFIG_SAMPLES is not set 791# CONFIG_SAMPLES is not set
792CONFIG_HAVE_ARCH_KGDB=y
771# CONFIG_IRQSTACKS is not set 793# CONFIG_IRQSTACKS is not set
772# CONFIG_PPC_EARLY_DEBUG is not set 794# CONFIG_PPC_EARLY_DEBUG is not set
773 795
@@ -819,6 +841,10 @@ CONFIG_CRYPTO=y
819# CONFIG_CRYPTO_MD4 is not set 841# CONFIG_CRYPTO_MD4 is not set
820# CONFIG_CRYPTO_MD5 is not set 842# CONFIG_CRYPTO_MD5 is not set
821# CONFIG_CRYPTO_MICHAEL_MIC is not set 843# CONFIG_CRYPTO_MICHAEL_MIC is not set
844# CONFIG_CRYPTO_RMD128 is not set
845# CONFIG_CRYPTO_RMD160 is not set
846# CONFIG_CRYPTO_RMD256 is not set
847# CONFIG_CRYPTO_RMD320 is not set
822# CONFIG_CRYPTO_SHA1 is not set 848# CONFIG_CRYPTO_SHA1 is not set
823# CONFIG_CRYPTO_SHA256 is not set 849# CONFIG_CRYPTO_SHA256 is not set
824# CONFIG_CRYPTO_SHA512 is not set 850# CONFIG_CRYPTO_SHA512 is not set
@@ -851,5 +877,6 @@ CONFIG_CRYPTO=y
851# CONFIG_CRYPTO_LZO is not set 877# CONFIG_CRYPTO_LZO is not set
852CONFIG_CRYPTO_HW=y 878CONFIG_CRYPTO_HW=y
853# CONFIG_CRYPTO_DEV_HIFN_795X is not set 879# CONFIG_CRYPTO_DEV_HIFN_795X is not set
880# CONFIG_CRYPTO_DEV_TALITOS is not set
854# CONFIG_PPC_CLOCK is not set 881# CONFIG_PPC_CLOCK is not set
855# CONFIG_VIRTUALIZATION is not set 882# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig
index 655518dcd73..daef36f41b4 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:38 2008 4# Thu Aug 21 00:52:36 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -89,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 95# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 96# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -113,10 +114,16 @@ CONFIG_SLAB=y
113# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set 115# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y
116CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y
118# CONFIG_HAVE_DMA_ATTRS is not set 122# CONFIG_HAVE_DMA_ATTRS is not set
123# CONFIG_USE_GENERIC_SMP_HELPERS is not set
124# CONFIG_HAVE_CLK is not set
119CONFIG_PROC_PAGE_MONITOR=y 125CONFIG_PROC_PAGE_MONITOR=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
121CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
122# CONFIG_TINY_SHMEM is not set 129# CONFIG_TINY_SHMEM is not set
@@ -127,6 +134,7 @@ CONFIG_BLOCK=y
127# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
128# CONFIG_LSF is not set 135# CONFIG_LSF is not set
129# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set
130 138
131# 139#
132# IO Schedulers 140# IO Schedulers
@@ -145,8 +153,6 @@ CONFIG_CLASSIC_RCU=y
145# 153#
146# Platform support 154# Platform support
147# 155#
148# CONFIG_PPC_MPC512x is not set
149# CONFIG_PPC_MPC5121 is not set
150# CONFIG_PPC_CELL is not set 156# CONFIG_PPC_CELL is not set
151# CONFIG_PPC_CELL_NATIVE is not set 157# CONFIG_PPC_CELL_NATIVE is not set
152# CONFIG_PQ2ADS is not set 158# CONFIG_PQ2ADS is not set
@@ -155,11 +161,13 @@ CONFIG_MPC85xx=y
155# CONFIG_MPC8560_ADS is not set 161# CONFIG_MPC8560_ADS is not set
156# CONFIG_MPC85xx_CDS is not set 162# CONFIG_MPC85xx_CDS is not set
157# CONFIG_MPC85xx_MDS is not set 163# CONFIG_MPC85xx_MDS is not set
164# CONFIG_MPC8536_DS is not set
158# CONFIG_MPC85xx_DS is not set 165# CONFIG_MPC85xx_DS is not set
159# CONFIG_KSI8560 is not set 166# CONFIG_KSI8560 is not set
160# CONFIG_STX_GP3 is not set 167# CONFIG_STX_GP3 is not set
161# CONFIG_TQM8540 is not set 168# CONFIG_TQM8540 is not set
162# CONFIG_TQM8541 is not set 169# CONFIG_TQM8541 is not set
170# CONFIG_TQM8548 is not set
163# CONFIG_TQM8555 is not set 171# CONFIG_TQM8555 is not set
164# CONFIG_TQM8560 is not set 172# CONFIG_TQM8560 is not set
165# CONFIG_SBC8548 is not set 173# CONFIG_SBC8548 is not set
@@ -214,6 +222,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 222# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
215CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
216CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y
217# CONFIG_RESOURCES_64BIT is not set 226# CONFIG_RESOURCES_64BIT is not set
218CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
219CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
@@ -221,6 +230,7 @@ CONFIG_VIRT_TO_BUS=y
221CONFIG_FORCE_MAX_ZONEORDER=11 230CONFIG_FORCE_MAX_ZONEORDER=11
222CONFIG_PROC_DEVICETREE=y 231CONFIG_PROC_DEVICETREE=y
223# CONFIG_CMDLINE_BOOL is not set 232# CONFIG_CMDLINE_BOOL is not set
233CONFIG_EXTRA_TARGETS=""
224# CONFIG_PM is not set 234# CONFIG_PM is not set
225# CONFIG_SECCOMP is not set 235# CONFIG_SECCOMP is not set
226CONFIG_ISA_DMA_API=y 236CONFIG_ISA_DMA_API=y
@@ -230,6 +240,7 @@ CONFIG_ISA_DMA_API=y
230# 240#
231CONFIG_ZONE_DMA=y 241CONFIG_ZONE_DMA=y
232CONFIG_FSL_SOC=y 242CONFIG_FSL_SOC=y
243CONFIG_PPC_PCI_CHOICE=y
233# CONFIG_PCI is not set 244# CONFIG_PCI is not set
234# CONFIG_PCI_DOMAINS is not set 245# CONFIG_PCI_DOMAINS is not set
235# CONFIG_PCI_SYSCALL is not set 246# CONFIG_PCI_SYSCALL is not set
@@ -251,10 +262,6 @@ CONFIG_KERNEL_START=0xc0000000
251CONFIG_PHYSICAL_START=0x00000000 262CONFIG_PHYSICAL_START=0x00000000
252CONFIG_PHYSICAL_ALIGN=0x10000000 263CONFIG_PHYSICAL_ALIGN=0x10000000
253CONFIG_TASK_SIZE=0xc0000000 264CONFIG_TASK_SIZE=0xc0000000
254
255#
256# Networking
257#
258CONFIG_NET=y 265CONFIG_NET=y
259 266
260# 267#
@@ -366,6 +373,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
366# CONFIG_BLK_DEV_XIP is not set 373# CONFIG_BLK_DEV_XIP is not set
367# CONFIG_CDROM_PKTCDVD is not set 374# CONFIG_CDROM_PKTCDVD is not set
368# CONFIG_ATA_OVER_ETH is not set 375# CONFIG_ATA_OVER_ETH is not set
376# CONFIG_BLK_DEV_HD is not set
369CONFIG_MISC_DEVICES=y 377CONFIG_MISC_DEVICES=y
370# CONFIG_EEPROM_93CX6 is not set 378# CONFIG_EEPROM_93CX6 is not set
371# CONFIG_ENCLOSURE_SERVICES is not set 379# CONFIG_ENCLOSURE_SERVICES is not set
@@ -383,7 +391,6 @@ CONFIG_HAVE_IDE=y
383# CONFIG_MD is not set 391# CONFIG_MD is not set
384# CONFIG_MACINTOSH_DRIVERS is not set 392# CONFIG_MACINTOSH_DRIVERS is not set
385CONFIG_NETDEVICES=y 393CONFIG_NETDEVICES=y
386# CONFIG_NETDEVICES_MULTIQUEUE is not set
387# CONFIG_DUMMY is not set 394# CONFIG_DUMMY is not set
388# CONFIG_BONDING is not set 395# CONFIG_BONDING is not set
389# CONFIG_MACVLAN is not set 396# CONFIG_MACVLAN is not set
@@ -415,9 +422,7 @@ CONFIG_MII=y
415# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 422# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
416# CONFIG_B44 is not set 423# CONFIG_B44 is not set
417CONFIG_NETDEV_1000=y 424CONFIG_NETDEV_1000=y
418# CONFIG_E1000E_ENABLED is not set
419CONFIG_GIANFAR=y 425CONFIG_GIANFAR=y
420CONFIG_GFAR_NAPI=y
421CONFIG_NETDEV_10000=y 426CONFIG_NETDEV_10000=y
422 427
423# 428#
@@ -501,6 +506,8 @@ CONFIG_LEGACY_PTY_COUNT=256
501# CONFIG_TCG_TPM is not set 506# CONFIG_TCG_TPM is not set
502# CONFIG_I2C is not set 507# CONFIG_I2C is not set
503# CONFIG_SPI is not set 508# CONFIG_SPI is not set
509CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
510# CONFIG_GPIOLIB is not set
504# CONFIG_W1 is not set 511# CONFIG_W1 is not set
505# CONFIG_POWER_SUPPLY is not set 512# CONFIG_POWER_SUPPLY is not set
506CONFIG_HWMON=y 513CONFIG_HWMON=y
@@ -517,6 +524,7 @@ CONFIG_HWMON=y
517# CONFIG_SENSORS_W83627EHF is not set 524# CONFIG_SENSORS_W83627EHF is not set
518# CONFIG_HWMON_DEBUG_CHIP is not set 525# CONFIG_HWMON_DEBUG_CHIP is not set
519# CONFIG_THERMAL is not set 526# CONFIG_THERMAL is not set
527# CONFIG_THERMAL_HWMON is not set
520# CONFIG_WATCHDOG is not set 528# CONFIG_WATCHDOG is not set
521 529
522# 530#
@@ -528,8 +536,10 @@ CONFIG_SSB_POSSIBLE=y
528# 536#
529# Multifunction device drivers 537# Multifunction device drivers
530# 538#
539# CONFIG_MFD_CORE is not set
531# CONFIG_MFD_SM501 is not set 540# CONFIG_MFD_SM501 is not set
532# CONFIG_HTC_PASIC3 is not set 541# CONFIG_HTC_PASIC3 is not set
542# CONFIG_MFD_TMIO is not set
533 543
534# 544#
535# Multimedia devices 545# Multimedia devices
@@ -559,10 +569,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
559# Display device support 569# Display device support
560# 570#
561# CONFIG_DISPLAY_SUPPORT is not set 571# CONFIG_DISPLAY_SUPPORT is not set
562
563#
564# Sound
565#
566# CONFIG_SOUND is not set 572# CONFIG_SOUND is not set
567CONFIG_HID_SUPPORT=y 573CONFIG_HID_SUPPORT=y
568CONFIG_HID=y 574CONFIG_HID=y
@@ -576,6 +582,10 @@ CONFIG_USB_SUPPORT=y
576# CONFIG_USB_OTG_BLACKLIST_HUB is not set 582# CONFIG_USB_OTG_BLACKLIST_HUB is not set
577 583
578# 584#
585# Enable Host or Gadget support to see Inventra options
586#
587
588#
579# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 589# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
580# 590#
581# CONFIG_USB_GADGET is not set 591# CONFIG_USB_GADGET is not set
@@ -679,6 +689,7 @@ CONFIG_TMPFS=y
679# CONFIG_CRAMFS is not set 689# CONFIG_CRAMFS is not set
680# CONFIG_VXFS_FS is not set 690# CONFIG_VXFS_FS is not set
681# CONFIG_MINIX_FS is not set 691# CONFIG_MINIX_FS is not set
692# CONFIG_OMFS_FS is not set
682# CONFIG_HPFS_FS is not set 693# CONFIG_HPFS_FS is not set
683# CONFIG_QNX4FS_FS is not set 694# CONFIG_QNX4FS_FS is not set
684# CONFIG_ROMFS_FS is not set 695# CONFIG_ROMFS_FS is not set
@@ -688,12 +699,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
688CONFIG_NFS_FS=y 699CONFIG_NFS_FS=y
689# CONFIG_NFS_V3 is not set 700# CONFIG_NFS_V3 is not set
690# CONFIG_NFS_V4 is not set 701# CONFIG_NFS_V4 is not set
691# CONFIG_NFSD is not set
692CONFIG_ROOT_NFS=y 702CONFIG_ROOT_NFS=y
703# CONFIG_NFSD is not set
693CONFIG_LOCKD=y 704CONFIG_LOCKD=y
694CONFIG_NFS_COMMON=y 705CONFIG_NFS_COMMON=y
695CONFIG_SUNRPC=y 706CONFIG_SUNRPC=y
696# CONFIG_SUNRPC_BIND34 is not set
697# CONFIG_RPCSEC_GSS_KRB5 is not set 707# CONFIG_RPCSEC_GSS_KRB5 is not set
698# CONFIG_RPCSEC_GSS_SPKM3 is not set 708# CONFIG_RPCSEC_GSS_SPKM3 is not set
699# CONFIG_SMB_FS is not set 709# CONFIG_SMB_FS is not set
@@ -729,6 +739,7 @@ CONFIG_BITREVERSE=y
729# CONFIG_GENERIC_FIND_FIRST_BIT is not set 739# CONFIG_GENERIC_FIND_FIRST_BIT is not set
730# CONFIG_CRC_CCITT is not set 740# CONFIG_CRC_CCITT is not set
731# CONFIG_CRC16 is not set 741# CONFIG_CRC16 is not set
742# CONFIG_CRC_T10DIF is not set
732# CONFIG_CRC_ITU_T is not set 743# CONFIG_CRC_ITU_T is not set
733CONFIG_CRC32=y 744CONFIG_CRC32=y
734# CONFIG_CRC7 is not set 745# CONFIG_CRC7 is not set
@@ -753,6 +764,8 @@ CONFIG_MAGIC_SYSRQ=y
753CONFIG_DEBUG_KERNEL=y 764CONFIG_DEBUG_KERNEL=y
754# CONFIG_DEBUG_SHIRQ is not set 765# CONFIG_DEBUG_SHIRQ is not set
755CONFIG_DETECT_SOFTLOCKUP=y 766CONFIG_DETECT_SOFTLOCKUP=y
767# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
768CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
756CONFIG_SCHED_DEBUG=y 769CONFIG_SCHED_DEBUG=y
757# CONFIG_SCHEDSTATS is not set 770# CONFIG_SCHEDSTATS is not set
758# CONFIG_TIMER_STATS is not set 771# CONFIG_TIMER_STATS is not set
@@ -769,16 +782,29 @@ CONFIG_DEBUG_MUTEXES=y
769# CONFIG_DEBUG_INFO is not set 782# CONFIG_DEBUG_INFO is not set
770# CONFIG_DEBUG_VM is not set 783# CONFIG_DEBUG_VM is not set
771# CONFIG_DEBUG_WRITECOUNT is not set 784# CONFIG_DEBUG_WRITECOUNT is not set
785# CONFIG_DEBUG_MEMORY_INIT is not set
772# CONFIG_DEBUG_LIST is not set 786# CONFIG_DEBUG_LIST is not set
773# CONFIG_DEBUG_SG is not set 787# CONFIG_DEBUG_SG is not set
774# CONFIG_BOOT_PRINTK_DELAY is not set 788# CONFIG_BOOT_PRINTK_DELAY is not set
789# CONFIG_RCU_TORTURE_TEST is not set
775# CONFIG_BACKTRACE_SELF_TEST is not set 790# CONFIG_BACKTRACE_SELF_TEST is not set
776# CONFIG_FAULT_INJECTION is not set 791# CONFIG_FAULT_INJECTION is not set
792# CONFIG_LATENCYTOP is not set
793CONFIG_SYSCTL_SYSCALL_CHECK=y
794CONFIG_HAVE_FTRACE=y
795CONFIG_HAVE_DYNAMIC_FTRACE=y
796# CONFIG_FTRACE is not set
797# CONFIG_SCHED_TRACER is not set
798# CONFIG_CONTEXT_SWITCH_TRACER is not set
777# CONFIG_SAMPLES is not set 799# CONFIG_SAMPLES is not set
800CONFIG_HAVE_ARCH_KGDB=y
801# CONFIG_KGDB is not set
778# CONFIG_DEBUG_STACKOVERFLOW is not set 802# CONFIG_DEBUG_STACKOVERFLOW is not set
779# CONFIG_DEBUG_STACK_USAGE is not set 803# CONFIG_DEBUG_STACK_USAGE is not set
780# CONFIG_DEBUG_PAGEALLOC is not set 804# CONFIG_DEBUG_PAGEALLOC is not set
781# CONFIG_DEBUGGER is not set 805# CONFIG_CODE_PATCHING_SELFTEST is not set
806# CONFIG_FTR_FIXUP_SELFTEST is not set
807# CONFIG_XMON is not set
782# CONFIG_IRQSTACKS is not set 808# CONFIG_IRQSTACKS is not set
783# CONFIG_BDI_SWITCH is not set 809# CONFIG_BDI_SWITCH is not set
784CONFIG_PPC_EARLY_DEBUG=y 810CONFIG_PPC_EARLY_DEBUG=y
@@ -842,6 +868,10 @@ CONFIG_CRYPTO=y
842# CONFIG_CRYPTO_MD4 is not set 868# CONFIG_CRYPTO_MD4 is not set
843# CONFIG_CRYPTO_MD5 is not set 869# CONFIG_CRYPTO_MD5 is not set
844# CONFIG_CRYPTO_MICHAEL_MIC is not set 870# CONFIG_CRYPTO_MICHAEL_MIC is not set
871# CONFIG_CRYPTO_RMD128 is not set
872# CONFIG_CRYPTO_RMD160 is not set
873# CONFIG_CRYPTO_RMD256 is not set
874# CONFIG_CRYPTO_RMD320 is not set
845# CONFIG_CRYPTO_SHA1 is not set 875# CONFIG_CRYPTO_SHA1 is not set
846# CONFIG_CRYPTO_SHA256 is not set 876# CONFIG_CRYPTO_SHA256 is not set
847# CONFIG_CRYPTO_SHA512 is not set 877# CONFIG_CRYPTO_SHA512 is not set
@@ -873,5 +903,6 @@ CONFIG_CRYPTO=y
873# CONFIG_CRYPTO_DEFLATE is not set 903# CONFIG_CRYPTO_DEFLATE is not set
874# CONFIG_CRYPTO_LZO is not set 904# CONFIG_CRYPTO_LZO is not set
875CONFIG_CRYPTO_HW=y 905CONFIG_CRYPTO_HW=y
906# CONFIG_CRYPTO_DEV_TALITOS is not set
876# CONFIG_PPC_CLOCK is not set 907# CONFIG_PPC_CLOCK is not set
877# CONFIG_VIRTUALIZATION is not set 908# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig
index 7804ca1ecc9..2b05d43f8f7 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:38 2008 4# Thu Aug 21 00:52:37 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -89,7 +92,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 95CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 96# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 97# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -115,10 +117,16 @@ CONFIG_SLUB=y
115# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
118CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
120# CONFIG_HAVE_DMA_ATTRS is not set 125# CONFIG_HAVE_DMA_ATTRS is not set
126# CONFIG_USE_GENERIC_SMP_HELPERS is not set
127CONFIG_HAVE_CLK=y
121CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
124# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -134,6 +142,7 @@ CONFIG_BLOCK=y
134# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_LSF is not set 143# CONFIG_LSF is not set
136# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
137 146
138# 147#
139# IO Schedulers 148# IO Schedulers
@@ -152,8 +161,6 @@ CONFIG_CLASSIC_RCU=y
152# 161#
153# Platform support 162# Platform support
154# 163#
155# CONFIG_PPC_MPC512x is not set
156# CONFIG_PPC_MPC5121 is not set
157# CONFIG_PPC_CELL is not set 164# CONFIG_PPC_CELL is not set
158# CONFIG_PPC_CELL_NATIVE is not set 165# CONFIG_PPC_CELL_NATIVE is not set
159# CONFIG_PQ2ADS is not set 166# CONFIG_PQ2ADS is not set
@@ -162,11 +169,13 @@ CONFIG_MPC85xx=y
162# CONFIG_MPC8560_ADS is not set 169# CONFIG_MPC8560_ADS is not set
163# CONFIG_MPC85xx_CDS is not set 170# CONFIG_MPC85xx_CDS is not set
164# CONFIG_MPC85xx_MDS is not set 171# CONFIG_MPC85xx_MDS is not set
172# CONFIG_MPC8536_DS is not set
165# CONFIG_MPC85xx_DS is not set 173# CONFIG_MPC85xx_DS is not set
166# CONFIG_KSI8560 is not set 174# CONFIG_KSI8560 is not set
167CONFIG_STX_GP3=y 175CONFIG_STX_GP3=y
168# CONFIG_TQM8540 is not set 176# CONFIG_TQM8540 is not set
169# CONFIG_TQM8541 is not set 177# CONFIG_TQM8541 is not set
178# CONFIG_TQM8548 is not set
170# CONFIG_TQM8555 is not set 179# CONFIG_TQM8555 is not set
171# CONFIG_TQM8560 is not set 180# CONFIG_TQM8560 is not set
172# CONFIG_SBC8548 is not set 181# CONFIG_SBC8548 is not set
@@ -183,7 +192,6 @@ CONFIG_MPIC=y
183# CONFIG_GENERIC_IOMAP is not set 192# CONFIG_GENERIC_IOMAP is not set
184# CONFIG_CPU_FREQ is not set 193# CONFIG_CPU_FREQ is not set
185CONFIG_CPM2=y 194CONFIG_CPM2=y
186CONFIG_PPC_CPM_NEW_BINDING=y
187# CONFIG_FSL_ULI1575 is not set 195# CONFIG_FSL_ULI1575 is not set
188CONFIG_CPM=y 196CONFIG_CPM=y
189 197
@@ -223,6 +231,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 231# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
224CONFIG_PAGEFLAGS_EXTENDED=y 232CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
234CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set 235# CONFIG_RESOURCES_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 236CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 237CONFIG_BOUNCE=y
@@ -230,6 +239,7 @@ CONFIG_VIRT_TO_BUS=y
230CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
231CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
232# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
242CONFIG_EXTRA_TARGETS=""
233# CONFIG_PM is not set 243# CONFIG_PM is not set
234CONFIG_SECCOMP=y 244CONFIG_SECCOMP=y
235CONFIG_ISA_DMA_API=y 245CONFIG_ISA_DMA_API=y
@@ -241,6 +251,7 @@ CONFIG_ZONE_DMA=y
241CONFIG_PPC_INDIRECT_PCI=y 251CONFIG_PPC_INDIRECT_PCI=y
242CONFIG_FSL_SOC=y 252CONFIG_FSL_SOC=y
243CONFIG_FSL_PCI=y 253CONFIG_FSL_PCI=y
254CONFIG_PPC_PCI_CHOICE=y
244CONFIG_PCI=y 255CONFIG_PCI=y
245CONFIG_PCI_DOMAINS=y 256CONFIG_PCI_DOMAINS=y
246CONFIG_PCI_SYSCALL=y 257CONFIG_PCI_SYSCALL=y
@@ -267,10 +278,6 @@ CONFIG_KERNEL_START=0xc0000000
267CONFIG_PHYSICAL_START=0x00000000 278CONFIG_PHYSICAL_START=0x00000000
268CONFIG_PHYSICAL_ALIGN=0x10000000 279CONFIG_PHYSICAL_ALIGN=0x10000000
269CONFIG_TASK_SIZE=0xc0000000 280CONFIG_TASK_SIZE=0xc0000000
270
271#
272# Networking
273#
274CONFIG_NET=y 281CONFIG_NET=y
275 282
276# 283#
@@ -426,6 +433,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
426# CONFIG_CONNECTOR is not set 433# CONFIG_CONNECTOR is not set
427# CONFIG_MTD is not set 434# CONFIG_MTD is not set
428CONFIG_OF_DEVICE=y 435CONFIG_OF_DEVICE=y
436CONFIG_OF_GPIO=y
429CONFIG_OF_I2C=m 437CONFIG_OF_I2C=m
430CONFIG_PARPORT=m 438CONFIG_PARPORT=m
431CONFIG_PARPORT_PC=m 439CONFIG_PARPORT_PC=m
@@ -452,15 +460,16 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
452# CONFIG_BLK_DEV_XIP is not set 460# CONFIG_BLK_DEV_XIP is not set
453# CONFIG_CDROM_PKTCDVD is not set 461# CONFIG_CDROM_PKTCDVD is not set
454# CONFIG_ATA_OVER_ETH is not set 462# CONFIG_ATA_OVER_ETH is not set
463# CONFIG_BLK_DEV_HD is not set
455CONFIG_MISC_DEVICES=y 464CONFIG_MISC_DEVICES=y
456# CONFIG_PHANTOM is not set 465# CONFIG_PHANTOM is not set
457# CONFIG_EEPROM_93CX6 is not set 466# CONFIG_EEPROM_93CX6 is not set
458# CONFIG_SGI_IOC4 is not set 467# CONFIG_SGI_IOC4 is not set
459# CONFIG_TIFM_CORE is not set 468# CONFIG_TIFM_CORE is not set
460# CONFIG_ENCLOSURE_SERVICES is not set 469# CONFIG_ENCLOSURE_SERVICES is not set
470# CONFIG_HP_ILO is not set
461CONFIG_HAVE_IDE=y 471CONFIG_HAVE_IDE=y
462CONFIG_IDE=y 472CONFIG_IDE=y
463CONFIG_IDE_MAX_HWIFS=4
464CONFIG_BLK_DEV_IDE=y 473CONFIG_BLK_DEV_IDE=y
465 474
466# 475#
@@ -480,7 +489,6 @@ CONFIG_IDE_PROC_FS=y
480# 489#
481# IDE chipset support/bugfixes 490# IDE chipset support/bugfixes
482# 491#
483CONFIG_IDE_GENERIC=y
484# CONFIG_BLK_DEV_PLATFORM is not set 492# CONFIG_BLK_DEV_PLATFORM is not set
485 493
486# 494#
@@ -493,10 +501,8 @@ CONFIG_IDE_GENERIC=y
493# CONFIG_BLK_DEV_AMD74XX is not set 501# CONFIG_BLK_DEV_AMD74XX is not set
494# CONFIG_BLK_DEV_CMD64X is not set 502# CONFIG_BLK_DEV_CMD64X is not set
495# CONFIG_BLK_DEV_TRIFLEX is not set 503# CONFIG_BLK_DEV_TRIFLEX is not set
496# CONFIG_BLK_DEV_CY82C693 is not set
497# CONFIG_BLK_DEV_CS5520 is not set 504# CONFIG_BLK_DEV_CS5520 is not set
498# CONFIG_BLK_DEV_CS5530 is not set 505# CONFIG_BLK_DEV_CS5530 is not set
499# CONFIG_BLK_DEV_HPT34X is not set
500# CONFIG_BLK_DEV_HPT366 is not set 506# CONFIG_BLK_DEV_HPT366 is not set
501# CONFIG_BLK_DEV_JMICRON is not set 507# CONFIG_BLK_DEV_JMICRON is not set
502# CONFIG_BLK_DEV_SC1200 is not set 508# CONFIG_BLK_DEV_SC1200 is not set
@@ -514,8 +520,6 @@ CONFIG_IDE_GENERIC=y
514# CONFIG_BLK_DEV_VIA82CXXX is not set 520# CONFIG_BLK_DEV_VIA82CXXX is not set
515# CONFIG_BLK_DEV_TC86C001 is not set 521# CONFIG_BLK_DEV_TC86C001 is not set
516# CONFIG_BLK_DEV_IDEDMA is not set 522# CONFIG_BLK_DEV_IDEDMA is not set
517# CONFIG_BLK_DEV_HD_ONLY is not set
518# CONFIG_BLK_DEV_HD is not set
519 523
520# 524#
521# SCSI device support 525# SCSI device support
@@ -594,6 +598,7 @@ CONFIG_SCSI_LOWLEVEL=y
594# CONFIG_SCSI_NSP32 is not set 598# CONFIG_SCSI_NSP32 is not set
595# CONFIG_SCSI_DEBUG is not set 599# CONFIG_SCSI_DEBUG is not set
596# CONFIG_SCSI_SRP is not set 600# CONFIG_SCSI_SRP is not set
601# CONFIG_SCSI_DH is not set
597# CONFIG_ATA is not set 602# CONFIG_ATA is not set
598# CONFIG_MD is not set 603# CONFIG_MD is not set
599# CONFIG_FUSION is not set 604# CONFIG_FUSION is not set
@@ -601,12 +606,15 @@ CONFIG_SCSI_LOWLEVEL=y
601# 606#
602# IEEE 1394 (FireWire) support 607# IEEE 1394 (FireWire) support
603# 608#
609
610#
611# Enable only one of the two stacks, unless you know what you are doing
612#
604# CONFIG_FIREWIRE is not set 613# CONFIG_FIREWIRE is not set
605# CONFIG_IEEE1394 is not set 614# CONFIG_IEEE1394 is not set
606# CONFIG_I2O is not set 615# CONFIG_I2O is not set
607# CONFIG_MACINTOSH_DRIVERS is not set 616# CONFIG_MACINTOSH_DRIVERS is not set
608CONFIG_NETDEVICES=y 617CONFIG_NETDEVICES=y
609# CONFIG_NETDEVICES_MULTIQUEUE is not set
610# CONFIG_DUMMY is not set 618# CONFIG_DUMMY is not set
611# CONFIG_BONDING is not set 619# CONFIG_BONDING is not set
612# CONFIG_MACVLAN is not set 620# CONFIG_MACVLAN is not set
@@ -652,7 +660,6 @@ CONFIG_NETDEV_1000=y
652# CONFIG_DL2K is not set 660# CONFIG_DL2K is not set
653# CONFIG_E1000 is not set 661# CONFIG_E1000 is not set
654# CONFIG_E1000E is not set 662# CONFIG_E1000E is not set
655# CONFIG_E1000E_ENABLED is not set
656# CONFIG_IP1000 is not set 663# CONFIG_IP1000 is not set
657# CONFIG_IGB is not set 664# CONFIG_IGB is not set
658# CONFIG_NS83820 is not set 665# CONFIG_NS83820 is not set
@@ -666,9 +673,9 @@ CONFIG_NETDEV_1000=y
666# CONFIG_TIGON3 is not set 673# CONFIG_TIGON3 is not set
667# CONFIG_BNX2 is not set 674# CONFIG_BNX2 is not set
668CONFIG_GIANFAR=y 675CONFIG_GIANFAR=y
669CONFIG_GFAR_NAPI=y
670# CONFIG_QLA3XXX is not set 676# CONFIG_QLA3XXX is not set
671# CONFIG_ATL1 is not set 677# CONFIG_ATL1 is not set
678# CONFIG_ATL1E is not set
672CONFIG_NETDEV_10000=y 679CONFIG_NETDEV_10000=y
673# CONFIG_CHELSIO_T1 is not set 680# CONFIG_CHELSIO_T1 is not set
674# CONFIG_CHELSIO_T3 is not set 681# CONFIG_CHELSIO_T3 is not set
@@ -731,6 +738,7 @@ CONFIG_KEYBOARD_ATKBD=y
731# CONFIG_KEYBOARD_XTKBD is not set 738# CONFIG_KEYBOARD_XTKBD is not set
732# CONFIG_KEYBOARD_NEWTON is not set 739# CONFIG_KEYBOARD_NEWTON is not set
733# CONFIG_KEYBOARD_STOWAWAY is not set 740# CONFIG_KEYBOARD_STOWAWAY is not set
741# CONFIG_KEYBOARD_GPIO is not set
734CONFIG_INPUT_MOUSE=y 742CONFIG_INPUT_MOUSE=y
735CONFIG_MOUSE_PS2=y 743CONFIG_MOUSE_PS2=y
736CONFIG_MOUSE_PS2_ALPS=y 744CONFIG_MOUSE_PS2_ALPS=y
@@ -741,7 +749,9 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
741# CONFIG_MOUSE_PS2_TOUCHKIT is not set 749# CONFIG_MOUSE_PS2_TOUCHKIT is not set
742# CONFIG_MOUSE_SERIAL is not set 750# CONFIG_MOUSE_SERIAL is not set
743# CONFIG_MOUSE_APPLETOUCH is not set 751# CONFIG_MOUSE_APPLETOUCH is not set
752# CONFIG_MOUSE_BCM5974 is not set
744# CONFIG_MOUSE_VSXXXAA is not set 753# CONFIG_MOUSE_VSXXXAA is not set
754# CONFIG_MOUSE_GPIO is not set
745# CONFIG_INPUT_JOYSTICK is not set 755# CONFIG_INPUT_JOYSTICK is not set
746# CONFIG_INPUT_TABLET is not set 756# CONFIG_INPUT_TABLET is not set
747# CONFIG_INPUT_TOUCHSCREEN is not set 757# CONFIG_INPUT_TOUCHSCREEN is not set
@@ -757,6 +767,7 @@ CONFIG_SERIO_SERPORT=y
757# CONFIG_SERIO_PCIPS2 is not set 767# CONFIG_SERIO_PCIPS2 is not set
758CONFIG_SERIO_LIBPS2=y 768CONFIG_SERIO_LIBPS2=y
759# CONFIG_SERIO_RAW is not set 769# CONFIG_SERIO_RAW is not set
770# CONFIG_SERIO_XILINX_XPS_PS2 is not set
760# CONFIG_GAMEPORT is not set 771# CONFIG_GAMEPORT is not set
761 772
762# 773#
@@ -805,44 +816,68 @@ CONFIG_DEVPORT=y
805CONFIG_I2C=m 816CONFIG_I2C=m
806CONFIG_I2C_BOARDINFO=y 817CONFIG_I2C_BOARDINFO=y
807CONFIG_I2C_CHARDEV=m 818CONFIG_I2C_CHARDEV=m
819CONFIG_I2C_HELPER_AUTO=y
808 820
809# 821#
810# I2C Hardware Bus support 822# I2C Hardware Bus support
811# 823#
824
825#
826# PC SMBus host controller drivers
827#
812# CONFIG_I2C_ALI1535 is not set 828# CONFIG_I2C_ALI1535 is not set
813# CONFIG_I2C_ALI1563 is not set 829# CONFIG_I2C_ALI1563 is not set
814# CONFIG_I2C_ALI15X3 is not set 830# CONFIG_I2C_ALI15X3 is not set
815# CONFIG_I2C_AMD756 is not set 831# CONFIG_I2C_AMD756 is not set
816# CONFIG_I2C_AMD8111 is not set 832# CONFIG_I2C_AMD8111 is not set
817# CONFIG_I2C_I801 is not set 833# CONFIG_I2C_I801 is not set
818# CONFIG_I2C_I810 is not set 834# CONFIG_I2C_ISCH is not set
819# CONFIG_I2C_PIIX4 is not set 835# CONFIG_I2C_PIIX4 is not set
820# CONFIG_I2C_MPC is not set
821# CONFIG_I2C_NFORCE2 is not set 836# CONFIG_I2C_NFORCE2 is not set
822# CONFIG_I2C_OCORES is not set
823# CONFIG_I2C_PARPORT is not set
824# CONFIG_I2C_PARPORT_LIGHT is not set
825# CONFIG_I2C_PROSAVAGE is not set
826# CONFIG_I2C_SAVAGE4 is not set
827# CONFIG_I2C_SIMTEC is not set
828# CONFIG_I2C_SIS5595 is not set 837# CONFIG_I2C_SIS5595 is not set
829# CONFIG_I2C_SIS630 is not set 838# CONFIG_I2C_SIS630 is not set
830# CONFIG_I2C_SIS96X is not set 839# CONFIG_I2C_SIS96X is not set
831# CONFIG_I2C_TAOS_EVM is not set
832# CONFIG_I2C_STUB is not set
833# CONFIG_I2C_VIA is not set 840# CONFIG_I2C_VIA is not set
834# CONFIG_I2C_VIAPRO is not set 841# CONFIG_I2C_VIAPRO is not set
842
843#
844# I2C system bus drivers (mostly embedded / system-on-chip)
845#
846# CONFIG_I2C_CPM is not set
847# CONFIG_I2C_GPIO is not set
848# CONFIG_I2C_MPC is not set
849# CONFIG_I2C_OCORES is not set
850# CONFIG_I2C_SIMTEC is not set
851
852#
853# External I2C/SMBus adapter drivers
854#
855# CONFIG_I2C_PARPORT is not set
856# CONFIG_I2C_PARPORT_LIGHT is not set
857# CONFIG_I2C_TAOS_EVM is not set
858
859#
860# Graphics adapter I2C/DDC channel drivers
861#
835# CONFIG_I2C_VOODOO3 is not set 862# CONFIG_I2C_VOODOO3 is not set
863
864#
865# Other I2C/SMBus bus drivers
866#
836# CONFIG_I2C_PCA_PLATFORM is not set 867# CONFIG_I2C_PCA_PLATFORM is not set
868# CONFIG_I2C_STUB is not set
837 869
838# 870#
839# Miscellaneous I2C Chip support 871# Miscellaneous I2C Chip support
840# 872#
841# CONFIG_DS1682 is not set 873# CONFIG_DS1682 is not set
874# CONFIG_AT24 is not set
842# CONFIG_SENSORS_EEPROM is not set 875# CONFIG_SENSORS_EEPROM is not set
843# CONFIG_SENSORS_PCF8574 is not set 876# CONFIG_SENSORS_PCF8574 is not set
844# CONFIG_PCF8575 is not set 877# CONFIG_PCF8575 is not set
878# CONFIG_SENSORS_PCA9539 is not set
845# CONFIG_SENSORS_PCF8591 is not set 879# CONFIG_SENSORS_PCF8591 is not set
880# CONFIG_TPS65010 is not set
846# CONFIG_SENSORS_MAX6875 is not set 881# CONFIG_SENSORS_MAX6875 is not set
847# CONFIG_SENSORS_TSL2550 is not set 882# CONFIG_SENSORS_TSL2550 is not set
848# CONFIG_I2C_DEBUG_CORE is not set 883# CONFIG_I2C_DEBUG_CORE is not set
@@ -850,10 +885,32 @@ CONFIG_I2C_CHARDEV=m
850# CONFIG_I2C_DEBUG_BUS is not set 885# CONFIG_I2C_DEBUG_BUS is not set
851# CONFIG_I2C_DEBUG_CHIP is not set 886# CONFIG_I2C_DEBUG_CHIP is not set
852# CONFIG_SPI is not set 887# CONFIG_SPI is not set
888CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
889CONFIG_ARCH_REQUIRE_GPIOLIB=y
890CONFIG_GPIOLIB=y
891# CONFIG_DEBUG_GPIO is not set
892# CONFIG_GPIO_SYSFS is not set
893
894#
895# I2C GPIO expanders:
896#
897# CONFIG_GPIO_MAX732X is not set
898# CONFIG_GPIO_PCA953X is not set
899# CONFIG_GPIO_PCF857X is not set
900
901#
902# PCI GPIO expanders:
903#
904# CONFIG_GPIO_BT8XX is not set
905
906#
907# SPI GPIO expanders:
908#
853# CONFIG_W1 is not set 909# CONFIG_W1 is not set
854# CONFIG_POWER_SUPPLY is not set 910# CONFIG_POWER_SUPPLY is not set
855CONFIG_HWMON=y 911CONFIG_HWMON=y
856# CONFIG_HWMON_VID is not set 912# CONFIG_HWMON_VID is not set
913# CONFIG_SENSORS_AD7414 is not set
857# CONFIG_SENSORS_AD7418 is not set 914# CONFIG_SENSORS_AD7418 is not set
858# CONFIG_SENSORS_ADM1021 is not set 915# CONFIG_SENSORS_ADM1021 is not set
859# CONFIG_SENSORS_ADM1025 is not set 916# CONFIG_SENSORS_ADM1025 is not set
@@ -907,6 +964,7 @@ CONFIG_HWMON=y
907# CONFIG_SENSORS_W83627EHF is not set 964# CONFIG_SENSORS_W83627EHF is not set
908# CONFIG_HWMON_DEBUG_CHIP is not set 965# CONFIG_HWMON_DEBUG_CHIP is not set
909# CONFIG_THERMAL is not set 966# CONFIG_THERMAL is not set
967# CONFIG_THERMAL_HWMON is not set
910# CONFIG_WATCHDOG is not set 968# CONFIG_WATCHDOG is not set
911 969
912# 970#
@@ -918,8 +976,10 @@ CONFIG_SSB_POSSIBLE=y
918# 976#
919# Multifunction device drivers 977# Multifunction device drivers
920# 978#
979# CONFIG_MFD_CORE is not set
921# CONFIG_MFD_SM501 is not set 980# CONFIG_MFD_SM501 is not set
922# CONFIG_HTC_PASIC3 is not set 981# CONFIG_HTC_PASIC3 is not set
982# CONFIG_MFD_TMIO is not set
923 983
924# 984#
925# Multimedia devices 985# Multimedia devices
@@ -958,20 +1018,8 @@ CONFIG_DRM=m
958# Display device support 1018# Display device support
959# 1019#
960# CONFIG_DISPLAY_SUPPORT is not set 1020# CONFIG_DISPLAY_SUPPORT is not set
961
962#
963# Sound
964#
965CONFIG_SOUND=m 1021CONFIG_SOUND=m
966
967#
968# Advanced Linux Sound Architecture
969#
970# CONFIG_SND is not set 1022# CONFIG_SND is not set
971
972#
973# Open Sound System
974#
975# CONFIG_SOUND_PRIME is not set 1023# CONFIG_SOUND_PRIME is not set
976CONFIG_HID_SUPPORT=y 1024CONFIG_HID_SUPPORT=y
977CONFIG_HID=y 1025CONFIG_HID=y
@@ -986,6 +1034,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
986# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1034# CONFIG_USB_OTG_BLACKLIST_HUB is not set
987 1035
988# 1036#
1037# Enable Host or Gadget support to see Inventra options
1038#
1039
1040#
989# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1041# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
990# 1042#
991# CONFIG_USB_GADGET is not set 1043# CONFIG_USB_GADGET is not set
@@ -1070,6 +1122,7 @@ CONFIG_TMPFS=y
1070CONFIG_CRAMFS=m 1122CONFIG_CRAMFS=m
1071# CONFIG_VXFS_FS is not set 1123# CONFIG_VXFS_FS is not set
1072# CONFIG_MINIX_FS is not set 1124# CONFIG_MINIX_FS is not set
1125# CONFIG_OMFS_FS is not set
1073# CONFIG_HPFS_FS is not set 1126# CONFIG_HPFS_FS is not set
1074# CONFIG_QNX4FS_FS is not set 1127# CONFIG_QNX4FS_FS is not set
1075# CONFIG_ROMFS_FS is not set 1128# CONFIG_ROMFS_FS is not set
@@ -1080,13 +1133,12 @@ CONFIG_NFS_FS=y
1080CONFIG_NFS_V3=y 1133CONFIG_NFS_V3=y
1081# CONFIG_NFS_V3_ACL is not set 1134# CONFIG_NFS_V3_ACL is not set
1082# CONFIG_NFS_V4 is not set 1135# CONFIG_NFS_V4 is not set
1083# CONFIG_NFSD is not set
1084CONFIG_ROOT_NFS=y 1136CONFIG_ROOT_NFS=y
1137# CONFIG_NFSD is not set
1085CONFIG_LOCKD=y 1138CONFIG_LOCKD=y
1086CONFIG_LOCKD_V4=y 1139CONFIG_LOCKD_V4=y
1087CONFIG_NFS_COMMON=y 1140CONFIG_NFS_COMMON=y
1088CONFIG_SUNRPC=y 1141CONFIG_SUNRPC=y
1089# CONFIG_SUNRPC_BIND34 is not set
1090# CONFIG_RPCSEC_GSS_KRB5 is not set 1142# CONFIG_RPCSEC_GSS_KRB5 is not set
1091# CONFIG_RPCSEC_GSS_SPKM3 is not set 1143# CONFIG_RPCSEC_GSS_SPKM3 is not set
1092CONFIG_SMB_FS=m 1144CONFIG_SMB_FS=m
@@ -1150,6 +1202,7 @@ CONFIG_BITREVERSE=y
1150# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1202# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1151CONFIG_CRC_CCITT=y 1203CONFIG_CRC_CCITT=y
1152# CONFIG_CRC16 is not set 1204# CONFIG_CRC16 is not set
1205CONFIG_CRC_T10DIF=m
1153CONFIG_CRC_ITU_T=m 1206CONFIG_CRC_ITU_T=m
1154CONFIG_CRC32=y 1207CONFIG_CRC32=y
1155# CONFIG_CRC7 is not set 1208# CONFIG_CRC7 is not set
@@ -1175,6 +1228,8 @@ CONFIG_FRAME_WARN=1024
1175CONFIG_DEBUG_KERNEL=y 1228CONFIG_DEBUG_KERNEL=y
1176# CONFIG_DEBUG_SHIRQ is not set 1229# CONFIG_DEBUG_SHIRQ is not set
1177CONFIG_DETECT_SOFTLOCKUP=y 1230CONFIG_DETECT_SOFTLOCKUP=y
1231# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1232CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1178CONFIG_SCHED_DEBUG=y 1233CONFIG_SCHED_DEBUG=y
1179# CONFIG_SCHEDSTATS is not set 1234# CONFIG_SCHEDSTATS is not set
1180# CONFIG_TIMER_STATS is not set 1235# CONFIG_TIMER_STATS is not set
@@ -1193,18 +1248,29 @@ CONFIG_SCHED_DEBUG=y
1193# CONFIG_DEBUG_INFO is not set 1248# CONFIG_DEBUG_INFO is not set
1194# CONFIG_DEBUG_VM is not set 1249# CONFIG_DEBUG_VM is not set
1195# CONFIG_DEBUG_WRITECOUNT is not set 1250# CONFIG_DEBUG_WRITECOUNT is not set
1251# CONFIG_DEBUG_MEMORY_INIT is not set
1196# CONFIG_DEBUG_LIST is not set 1252# CONFIG_DEBUG_LIST is not set
1197# CONFIG_DEBUG_SG is not set 1253# CONFIG_DEBUG_SG is not set
1198# CONFIG_BOOT_PRINTK_DELAY is not set 1254# CONFIG_BOOT_PRINTK_DELAY is not set
1199# CONFIG_RCU_TORTURE_TEST is not set 1255# CONFIG_RCU_TORTURE_TEST is not set
1200# CONFIG_BACKTRACE_SELF_TEST is not set 1256# CONFIG_BACKTRACE_SELF_TEST is not set
1201# CONFIG_FAULT_INJECTION is not set 1257# CONFIG_FAULT_INJECTION is not set
1258# CONFIG_LATENCYTOP is not set
1259CONFIG_SYSCTL_SYSCALL_CHECK=y
1260CONFIG_HAVE_FTRACE=y
1261CONFIG_HAVE_DYNAMIC_FTRACE=y
1262# CONFIG_FTRACE is not set
1263# CONFIG_SCHED_TRACER is not set
1264# CONFIG_CONTEXT_SWITCH_TRACER is not set
1202# CONFIG_SAMPLES is not set 1265# CONFIG_SAMPLES is not set
1266CONFIG_HAVE_ARCH_KGDB=y
1267# CONFIG_KGDB is not set
1203# CONFIG_DEBUG_STACKOVERFLOW is not set 1268# CONFIG_DEBUG_STACKOVERFLOW is not set
1204# CONFIG_DEBUG_STACK_USAGE is not set 1269# CONFIG_DEBUG_STACK_USAGE is not set
1205# CONFIG_DEBUG_PAGEALLOC is not set 1270# CONFIG_DEBUG_PAGEALLOC is not set
1206# CONFIG_DEBUGGER is not set 1271# CONFIG_CODE_PATCHING_SELFTEST is not set
1207# CONFIG_KGDB_CONSOLE is not set 1272# CONFIG_FTR_FIXUP_SELFTEST is not set
1273# CONFIG_XMON is not set
1208# CONFIG_IRQSTACKS is not set 1274# CONFIG_IRQSTACKS is not set
1209CONFIG_BDI_SWITCH=y 1275CONFIG_BDI_SWITCH=y
1210# CONFIG_PPC_EARLY_DEBUG is not set 1276# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1258,6 +1324,10 @@ CONFIG_CRYPTO=y
1258# CONFIG_CRYPTO_MD4 is not set 1324# CONFIG_CRYPTO_MD4 is not set
1259# CONFIG_CRYPTO_MD5 is not set 1325# CONFIG_CRYPTO_MD5 is not set
1260# CONFIG_CRYPTO_MICHAEL_MIC is not set 1326# CONFIG_CRYPTO_MICHAEL_MIC is not set
1327# CONFIG_CRYPTO_RMD128 is not set
1328# CONFIG_CRYPTO_RMD160 is not set
1329# CONFIG_CRYPTO_RMD256 is not set
1330# CONFIG_CRYPTO_RMD320 is not set
1261# CONFIG_CRYPTO_SHA1 is not set 1331# CONFIG_CRYPTO_SHA1 is not set
1262# CONFIG_CRYPTO_SHA256 is not set 1332# CONFIG_CRYPTO_SHA256 is not set
1263# CONFIG_CRYPTO_SHA512 is not set 1333# CONFIG_CRYPTO_SHA512 is not set
@@ -1290,6 +1360,7 @@ CONFIG_CRYPTO=y
1290# CONFIG_CRYPTO_LZO is not set 1360# CONFIG_CRYPTO_LZO is not set
1291CONFIG_CRYPTO_HW=y 1361CONFIG_CRYPTO_HW=y
1292# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1362# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1293# CONFIG_PPC_CLOCK is not set 1363# CONFIG_CRYPTO_DEV_TALITOS is not set
1364CONFIG_PPC_CLOCK=y
1294CONFIG_PPC_LIB_RHEAP=y 1365CONFIG_PPC_LIB_RHEAP=y
1295# CONFIG_VIRTUALIZATION is not set 1366# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig
index e0b5559e84a..1b2d5d57791 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:39 2008 4# Thu Aug 21 00:52:37 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -89,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 94# CONFIG_KALLSYMS is not set
94# CONFIG_HOTPLUG is not set 95# CONFIG_HOTPLUG is not set
95CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -112,10 +113,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 113# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 114# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 118CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 119CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 121# CONFIG_HAVE_DMA_ATTRS is not set
122# CONFIG_USE_GENERIC_SMP_HELPERS is not set
123# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 124CONFIG_PROC_PAGE_MONITOR=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 128# CONFIG_TINY_SHMEM is not set
@@ -126,6 +133,7 @@ CONFIG_BLOCK=y
126# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set 134# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set
129 137
130# 138#
131# IO Schedulers 139# IO Schedulers
@@ -144,8 +152,6 @@ CONFIG_CLASSIC_RCU=y
144# 152#
145# Platform support 153# Platform support
146# 154#
147# CONFIG_PPC_MPC512x is not set
148# CONFIG_PPC_MPC5121 is not set
149# CONFIG_PPC_CELL is not set 155# CONFIG_PPC_CELL is not set
150# CONFIG_PPC_CELL_NATIVE is not set 156# CONFIG_PPC_CELL_NATIVE is not set
151# CONFIG_PQ2ADS is not set 157# CONFIG_PQ2ADS is not set
@@ -154,11 +160,13 @@ CONFIG_MPC85xx=y
154# CONFIG_MPC8560_ADS is not set 160# CONFIG_MPC8560_ADS is not set
155# CONFIG_MPC85xx_CDS is not set 161# CONFIG_MPC85xx_CDS is not set
156# CONFIG_MPC85xx_MDS is not set 162# CONFIG_MPC85xx_MDS is not set
163# CONFIG_MPC8536_DS is not set
157# CONFIG_MPC85xx_DS is not set 164# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set 165# CONFIG_KSI8560 is not set
159# CONFIG_STX_GP3 is not set 166# CONFIG_STX_GP3 is not set
160CONFIG_TQM8540=y 167CONFIG_TQM8540=y
161# CONFIG_TQM8541 is not set 168# CONFIG_TQM8541 is not set
169# CONFIG_TQM8548 is not set
162# CONFIG_TQM8555 is not set 170# CONFIG_TQM8555 is not set
163# CONFIG_TQM8560 is not set 171# CONFIG_TQM8560 is not set
164# CONFIG_SBC8548 is not set 172# CONFIG_SBC8548 is not set
@@ -214,6 +222,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 222# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
215CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
216CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y
217# CONFIG_RESOURCES_64BIT is not set 226# CONFIG_RESOURCES_64BIT is not set
218CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
219CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
@@ -221,6 +230,7 @@ CONFIG_VIRT_TO_BUS=y
221CONFIG_FORCE_MAX_ZONEORDER=11 230CONFIG_FORCE_MAX_ZONEORDER=11
222# CONFIG_PROC_DEVICETREE is not set 231# CONFIG_PROC_DEVICETREE is not set
223# CONFIG_CMDLINE_BOOL is not set 232# CONFIG_CMDLINE_BOOL is not set
233CONFIG_EXTRA_TARGETS=""
224# CONFIG_PM is not set 234# CONFIG_PM is not set
225CONFIG_SECCOMP=y 235CONFIG_SECCOMP=y
226CONFIG_ISA_DMA_API=y 236CONFIG_ISA_DMA_API=y
@@ -232,6 +242,7 @@ CONFIG_ZONE_DMA=y
232CONFIG_PPC_INDIRECT_PCI=y 242CONFIG_PPC_INDIRECT_PCI=y
233CONFIG_FSL_SOC=y 243CONFIG_FSL_SOC=y
234CONFIG_FSL_PCI=y 244CONFIG_FSL_PCI=y
245CONFIG_PPC_PCI_CHOICE=y
235CONFIG_PCI=y 246CONFIG_PCI=y
236CONFIG_PCI_DOMAINS=y 247CONFIG_PCI_DOMAINS=y
237CONFIG_PCI_SYSCALL=y 248CONFIG_PCI_SYSCALL=y
@@ -255,10 +266,6 @@ CONFIG_KERNEL_START=0xc0000000
255CONFIG_PHYSICAL_START=0x00000000 266CONFIG_PHYSICAL_START=0x00000000
256CONFIG_PHYSICAL_ALIGN=0x10000000 267CONFIG_PHYSICAL_ALIGN=0x10000000
257CONFIG_TASK_SIZE=0xc0000000 268CONFIG_TASK_SIZE=0xc0000000
258
259#
260# Networking
261#
262CONFIG_NET=y 269CONFIG_NET=y
263 270
264# 271#
@@ -449,20 +456,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
449# CONFIG_BLK_DEV_XIP is not set 456# CONFIG_BLK_DEV_XIP is not set
450# CONFIG_CDROM_PKTCDVD is not set 457# CONFIG_CDROM_PKTCDVD is not set
451# CONFIG_ATA_OVER_ETH is not set 458# CONFIG_ATA_OVER_ETH is not set
459# CONFIG_BLK_DEV_HD is not set
452CONFIG_MISC_DEVICES=y 460CONFIG_MISC_DEVICES=y
453# CONFIG_PHANTOM is not set 461# CONFIG_PHANTOM is not set
454# CONFIG_EEPROM_93CX6 is not set 462# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_SGI_IOC4 is not set 463# CONFIG_SGI_IOC4 is not set
456# CONFIG_TIFM_CORE is not set 464# CONFIG_TIFM_CORE is not set
457# CONFIG_ENCLOSURE_SERVICES is not set 465# CONFIG_ENCLOSURE_SERVICES is not set
466# CONFIG_HP_ILO is not set
458CONFIG_HAVE_IDE=y 467CONFIG_HAVE_IDE=y
459CONFIG_IDE=y 468CONFIG_IDE=y
460CONFIG_IDE_MAX_HWIFS=4
461CONFIG_BLK_DEV_IDE=y 469CONFIG_BLK_DEV_IDE=y
462 470
463# 471#
464# Please see Documentation/ide/ide.txt for help/info on IDE drives 472# Please see Documentation/ide/ide.txt for help/info on IDE drives
465# 473#
474CONFIG_IDE_TIMINGS=y
466# CONFIG_BLK_DEV_IDE_SATA is not set 475# CONFIG_BLK_DEV_IDE_SATA is not set
467CONFIG_BLK_DEV_IDEDISK=y 476CONFIG_BLK_DEV_IDEDISK=y
468# CONFIG_IDEDISK_MULTI_MODE is not set 477# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -475,7 +484,6 @@ CONFIG_IDE_PROC_FS=y
475# 484#
476# IDE chipset support/bugfixes 485# IDE chipset support/bugfixes
477# 486#
478CONFIG_IDE_GENERIC=y
479# CONFIG_BLK_DEV_PLATFORM is not set 487# CONFIG_BLK_DEV_PLATFORM is not set
480CONFIG_BLK_DEV_IDEDMA_SFF=y 488CONFIG_BLK_DEV_IDEDMA_SFF=y
481 489
@@ -493,10 +501,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
493# CONFIG_BLK_DEV_AMD74XX is not set 501# CONFIG_BLK_DEV_AMD74XX is not set
494# CONFIG_BLK_DEV_CMD64X is not set 502# CONFIG_BLK_DEV_CMD64X is not set
495# CONFIG_BLK_DEV_TRIFLEX is not set 503# CONFIG_BLK_DEV_TRIFLEX is not set
496# CONFIG_BLK_DEV_CY82C693 is not set
497# CONFIG_BLK_DEV_CS5520 is not set 504# CONFIG_BLK_DEV_CS5520 is not set
498# CONFIG_BLK_DEV_CS5530 is not set 505# CONFIG_BLK_DEV_CS5530 is not set
499# CONFIG_BLK_DEV_HPT34X is not set
500# CONFIG_BLK_DEV_HPT366 is not set 506# CONFIG_BLK_DEV_HPT366 is not set
501# CONFIG_BLK_DEV_JMICRON is not set 507# CONFIG_BLK_DEV_JMICRON is not set
502# CONFIG_BLK_DEV_SC1200 is not set 508# CONFIG_BLK_DEV_SC1200 is not set
@@ -514,8 +520,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
514CONFIG_BLK_DEV_VIA82CXXX=y 520CONFIG_BLK_DEV_VIA82CXXX=y
515# CONFIG_BLK_DEV_TC86C001 is not set 521# CONFIG_BLK_DEV_TC86C001 is not set
516CONFIG_BLK_DEV_IDEDMA=y 522CONFIG_BLK_DEV_IDEDMA=y
517# CONFIG_BLK_DEV_HD_ONLY is not set
518# CONFIG_BLK_DEV_HD is not set
519 523
520# 524#
521# SCSI device support 525# SCSI device support
@@ -531,12 +535,15 @@ CONFIG_BLK_DEV_IDEDMA=y
531# 535#
532# IEEE 1394 (FireWire) support 536# IEEE 1394 (FireWire) support
533# 537#
538
539#
540# Enable only one of the two stacks, unless you know what you are doing
541#
534# CONFIG_FIREWIRE is not set 542# CONFIG_FIREWIRE is not set
535# CONFIG_IEEE1394 is not set 543# CONFIG_IEEE1394 is not set
536# CONFIG_I2O is not set 544# CONFIG_I2O is not set
537# CONFIG_MACINTOSH_DRIVERS is not set 545# CONFIG_MACINTOSH_DRIVERS is not set
538CONFIG_NETDEVICES=y 546CONFIG_NETDEVICES=y
539# CONFIG_NETDEVICES_MULTIQUEUE is not set
540# CONFIG_DUMMY is not set 547# CONFIG_DUMMY is not set
541# CONFIG_BONDING is not set 548# CONFIG_BONDING is not set
542# CONFIG_MACVLAN is not set 549# CONFIG_MACVLAN is not set
@@ -598,7 +605,6 @@ CONFIG_NETDEV_1000=y
598# CONFIG_DL2K is not set 605# CONFIG_DL2K is not set
599# CONFIG_E1000 is not set 606# CONFIG_E1000 is not set
600# CONFIG_E1000E is not set 607# CONFIG_E1000E is not set
601# CONFIG_E1000E_ENABLED is not set
602# CONFIG_IP1000 is not set 608# CONFIG_IP1000 is not set
603# CONFIG_IGB is not set 609# CONFIG_IGB is not set
604# CONFIG_NS83820 is not set 610# CONFIG_NS83820 is not set
@@ -612,9 +618,9 @@ CONFIG_NETDEV_1000=y
612# CONFIG_TIGON3 is not set 618# CONFIG_TIGON3 is not set
613# CONFIG_BNX2 is not set 619# CONFIG_BNX2 is not set
614CONFIG_GIANFAR=y 620CONFIG_GIANFAR=y
615CONFIG_GFAR_NAPI=y
616# CONFIG_QLA3XXX is not set 621# CONFIG_QLA3XXX is not set
617# CONFIG_ATL1 is not set 622# CONFIG_ATL1 is not set
623# CONFIG_ATL1E is not set
618CONFIG_NETDEV_10000=y 624CONFIG_NETDEV_10000=y
619# CONFIG_CHELSIO_T1 is not set 625# CONFIG_CHELSIO_T1 is not set
620# CONFIG_CHELSIO_T3 is not set 626# CONFIG_CHELSIO_T3 is not set
@@ -721,41 +727,62 @@ CONFIG_DEVPORT=y
721CONFIG_I2C=y 727CONFIG_I2C=y
722CONFIG_I2C_BOARDINFO=y 728CONFIG_I2C_BOARDINFO=y
723CONFIG_I2C_CHARDEV=y 729CONFIG_I2C_CHARDEV=y
730CONFIG_I2C_HELPER_AUTO=y
724 731
725# 732#
726# I2C Hardware Bus support 733# I2C Hardware Bus support
727# 734#
735
736#
737# PC SMBus host controller drivers
738#
728# CONFIG_I2C_ALI1535 is not set 739# CONFIG_I2C_ALI1535 is not set
729# CONFIG_I2C_ALI1563 is not set 740# CONFIG_I2C_ALI1563 is not set
730# CONFIG_I2C_ALI15X3 is not set 741# CONFIG_I2C_ALI15X3 is not set
731# CONFIG_I2C_AMD756 is not set 742# CONFIG_I2C_AMD756 is not set
732# CONFIG_I2C_AMD8111 is not set 743# CONFIG_I2C_AMD8111 is not set
733# CONFIG_I2C_I801 is not set 744# CONFIG_I2C_I801 is not set
734# CONFIG_I2C_I810 is not set 745# CONFIG_I2C_ISCH is not set
735# CONFIG_I2C_PIIX4 is not set 746# CONFIG_I2C_PIIX4 is not set
736CONFIG_I2C_MPC=y
737# CONFIG_I2C_NFORCE2 is not set 747# CONFIG_I2C_NFORCE2 is not set
738# CONFIG_I2C_OCORES is not set
739# CONFIG_I2C_PARPORT_LIGHT is not set
740# CONFIG_I2C_PROSAVAGE is not set
741# CONFIG_I2C_SAVAGE4 is not set
742# CONFIG_I2C_SIMTEC is not set
743# CONFIG_I2C_SIS5595 is not set 748# CONFIG_I2C_SIS5595 is not set
744# CONFIG_I2C_SIS630 is not set 749# CONFIG_I2C_SIS630 is not set
745# CONFIG_I2C_SIS96X is not set 750# CONFIG_I2C_SIS96X is not set
746# CONFIG_I2C_TAOS_EVM is not set
747# CONFIG_I2C_VIA is not set 751# CONFIG_I2C_VIA is not set
748# CONFIG_I2C_VIAPRO is not set 752# CONFIG_I2C_VIAPRO is not set
753
754#
755# I2C system bus drivers (mostly embedded / system-on-chip)
756#
757CONFIG_I2C_MPC=y
758# CONFIG_I2C_OCORES is not set
759# CONFIG_I2C_SIMTEC is not set
760
761#
762# External I2C/SMBus adapter drivers
763#
764# CONFIG_I2C_PARPORT_LIGHT is not set
765# CONFIG_I2C_TAOS_EVM is not set
766
767#
768# Graphics adapter I2C/DDC channel drivers
769#
749# CONFIG_I2C_VOODOO3 is not set 770# CONFIG_I2C_VOODOO3 is not set
771
772#
773# Other I2C/SMBus bus drivers
774#
750# CONFIG_I2C_PCA_PLATFORM is not set 775# CONFIG_I2C_PCA_PLATFORM is not set
751 776
752# 777#
753# Miscellaneous I2C Chip support 778# Miscellaneous I2C Chip support
754# 779#
755# CONFIG_DS1682 is not set 780# CONFIG_DS1682 is not set
781# CONFIG_AT24 is not set
756# CONFIG_SENSORS_EEPROM is not set 782# CONFIG_SENSORS_EEPROM is not set
757# CONFIG_SENSORS_PCF8574 is not set 783# CONFIG_SENSORS_PCF8574 is not set
758# CONFIG_PCF8575 is not set 784# CONFIG_PCF8575 is not set
785# CONFIG_SENSORS_PCA9539 is not set
759# CONFIG_SENSORS_PCF8591 is not set 786# CONFIG_SENSORS_PCF8591 is not set
760# CONFIG_SENSORS_MAX6875 is not set 787# CONFIG_SENSORS_MAX6875 is not set
761# CONFIG_SENSORS_TSL2550 is not set 788# CONFIG_SENSORS_TSL2550 is not set
@@ -764,10 +791,13 @@ CONFIG_I2C_MPC=y
764# CONFIG_I2C_DEBUG_BUS is not set 791# CONFIG_I2C_DEBUG_BUS is not set
765# CONFIG_I2C_DEBUG_CHIP is not set 792# CONFIG_I2C_DEBUG_CHIP is not set
766# CONFIG_SPI is not set 793# CONFIG_SPI is not set
794CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
795# CONFIG_GPIOLIB is not set
767# CONFIG_W1 is not set 796# CONFIG_W1 is not set
768# CONFIG_POWER_SUPPLY is not set 797# CONFIG_POWER_SUPPLY is not set
769CONFIG_HWMON=y 798CONFIG_HWMON=y
770# CONFIG_HWMON_VID is not set 799# CONFIG_HWMON_VID is not set
800# CONFIG_SENSORS_AD7414 is not set
771# CONFIG_SENSORS_AD7418 is not set 801# CONFIG_SENSORS_AD7418 is not set
772# CONFIG_SENSORS_ADM1021 is not set 802# CONFIG_SENSORS_ADM1021 is not set
773# CONFIG_SENSORS_ADM1025 is not set 803# CONFIG_SENSORS_ADM1025 is not set
@@ -821,6 +851,7 @@ CONFIG_SENSORS_LM75=y
821# CONFIG_SENSORS_W83627EHF is not set 851# CONFIG_SENSORS_W83627EHF is not set
822CONFIG_HWMON_DEBUG_CHIP=y 852CONFIG_HWMON_DEBUG_CHIP=y
823# CONFIG_THERMAL is not set 853# CONFIG_THERMAL is not set
854# CONFIG_THERMAL_HWMON is not set
824# CONFIG_WATCHDOG is not set 855# CONFIG_WATCHDOG is not set
825 856
826# 857#
@@ -832,8 +863,10 @@ CONFIG_SSB_POSSIBLE=y
832# 863#
833# Multifunction device drivers 864# Multifunction device drivers
834# 865#
866# CONFIG_MFD_CORE is not set
835# CONFIG_MFD_SM501 is not set 867# CONFIG_MFD_SM501 is not set
836# CONFIG_HTC_PASIC3 is not set 868# CONFIG_HTC_PASIC3 is not set
869# CONFIG_MFD_TMIO is not set
837 870
838# 871#
839# Multimedia devices 872# Multimedia devices
@@ -865,10 +898,6 @@ CONFIG_DAB=y
865# Display device support 898# Display device support
866# 899#
867# CONFIG_DISPLAY_SUPPORT is not set 900# CONFIG_DISPLAY_SUPPORT is not set
868
869#
870# Sound
871#
872# CONFIG_SOUND is not set 901# CONFIG_SOUND is not set
873CONFIG_HID_SUPPORT=y 902CONFIG_HID_SUPPORT=y
874CONFIG_HID=y 903CONFIG_HID=y
@@ -883,6 +912,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
883# CONFIG_USB_OTG_BLACKLIST_HUB is not set 912# CONFIG_USB_OTG_BLACKLIST_HUB is not set
884 913
885# 914#
915# Enable Host or Gadget support to see Inventra options
916#
917
918#
886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 919# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
887# 920#
888# CONFIG_USB_GADGET is not set 921# CONFIG_USB_GADGET is not set
@@ -971,6 +1004,7 @@ CONFIG_JFFS2_RTIME=y
971CONFIG_CRAMFS=y 1004CONFIG_CRAMFS=y
972# CONFIG_VXFS_FS is not set 1005# CONFIG_VXFS_FS is not set
973# CONFIG_MINIX_FS is not set 1006# CONFIG_MINIX_FS is not set
1007# CONFIG_OMFS_FS is not set
974# CONFIG_HPFS_FS is not set 1008# CONFIG_HPFS_FS is not set
975# CONFIG_QNX4FS_FS is not set 1009# CONFIG_QNX4FS_FS is not set
976# CONFIG_ROMFS_FS is not set 1010# CONFIG_ROMFS_FS is not set
@@ -980,12 +1014,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
980CONFIG_NFS_FS=y 1014CONFIG_NFS_FS=y
981# CONFIG_NFS_V3 is not set 1015# CONFIG_NFS_V3 is not set
982# CONFIG_NFS_V4 is not set 1016# CONFIG_NFS_V4 is not set
983# CONFIG_NFSD is not set
984CONFIG_ROOT_NFS=y 1017CONFIG_ROOT_NFS=y
1018# CONFIG_NFSD is not set
985CONFIG_LOCKD=y 1019CONFIG_LOCKD=y
986CONFIG_NFS_COMMON=y 1020CONFIG_NFS_COMMON=y
987CONFIG_SUNRPC=y 1021CONFIG_SUNRPC=y
988# CONFIG_SUNRPC_BIND34 is not set
989# CONFIG_RPCSEC_GSS_KRB5 is not set 1022# CONFIG_RPCSEC_GSS_KRB5 is not set
990# CONFIG_RPCSEC_GSS_SPKM3 is not set 1023# CONFIG_RPCSEC_GSS_SPKM3 is not set
991# CONFIG_SMB_FS is not set 1024# CONFIG_SMB_FS is not set
@@ -1021,6 +1054,7 @@ CONFIG_BITREVERSE=y
1021# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1054# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1022# CONFIG_CRC_CCITT is not set 1055# CONFIG_CRC_CCITT is not set
1023# CONFIG_CRC16 is not set 1056# CONFIG_CRC16 is not set
1057# CONFIG_CRC_T10DIF is not set
1024# CONFIG_CRC_ITU_T is not set 1058# CONFIG_CRC_ITU_T is not set
1025CONFIG_CRC32=y 1059CONFIG_CRC32=y
1026# CONFIG_CRC7 is not set 1060# CONFIG_CRC7 is not set
@@ -1048,7 +1082,16 @@ CONFIG_FRAME_WARN=1024
1048# CONFIG_SLUB_DEBUG_ON is not set 1082# CONFIG_SLUB_DEBUG_ON is not set
1049# CONFIG_SLUB_STATS is not set 1083# CONFIG_SLUB_STATS is not set
1050# CONFIG_DEBUG_BUGVERBOSE is not set 1084# CONFIG_DEBUG_BUGVERBOSE is not set
1085# CONFIG_DEBUG_MEMORY_INIT is not set
1086# CONFIG_LATENCYTOP is not set
1087CONFIG_SYSCTL_SYSCALL_CHECK=y
1088CONFIG_HAVE_FTRACE=y
1089CONFIG_HAVE_DYNAMIC_FTRACE=y
1090# CONFIG_FTRACE is not set
1091# CONFIG_SCHED_TRACER is not set
1092# CONFIG_CONTEXT_SWITCH_TRACER is not set
1051# CONFIG_SAMPLES is not set 1093# CONFIG_SAMPLES is not set
1094CONFIG_HAVE_ARCH_KGDB=y
1052# CONFIG_IRQSTACKS is not set 1095# CONFIG_IRQSTACKS is not set
1053# CONFIG_PPC_EARLY_DEBUG is not set 1096# CONFIG_PPC_EARLY_DEBUG is not set
1054 1097
@@ -1100,6 +1143,10 @@ CONFIG_CRYPTO=y
1100# CONFIG_CRYPTO_MD4 is not set 1143# CONFIG_CRYPTO_MD4 is not set
1101# CONFIG_CRYPTO_MD5 is not set 1144# CONFIG_CRYPTO_MD5 is not set
1102# CONFIG_CRYPTO_MICHAEL_MIC is not set 1145# CONFIG_CRYPTO_MICHAEL_MIC is not set
1146# CONFIG_CRYPTO_RMD128 is not set
1147# CONFIG_CRYPTO_RMD160 is not set
1148# CONFIG_CRYPTO_RMD256 is not set
1149# CONFIG_CRYPTO_RMD320 is not set
1103# CONFIG_CRYPTO_SHA1 is not set 1150# CONFIG_CRYPTO_SHA1 is not set
1104# CONFIG_CRYPTO_SHA256 is not set 1151# CONFIG_CRYPTO_SHA256 is not set
1105# CONFIG_CRYPTO_SHA512 is not set 1152# CONFIG_CRYPTO_SHA512 is not set
@@ -1132,5 +1179,6 @@ CONFIG_CRYPTO=y
1132# CONFIG_CRYPTO_LZO is not set 1179# CONFIG_CRYPTO_LZO is not set
1133CONFIG_CRYPTO_HW=y 1180CONFIG_CRYPTO_HW=y
1134# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1181# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1182# CONFIG_CRYPTO_DEV_TALITOS is not set
1135# CONFIG_PPC_CLOCK is not set 1183# CONFIG_PPC_CLOCK is not set
1136# CONFIG_VIRTUALIZATION is not set 1184# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig
index 6f9067b49e0..da841a09755 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:40 2008 4# Thu Aug 21 00:52:39 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -89,7 +92,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 95# CONFIG_KALLSYMS is not set
94# CONFIG_HOTPLUG is not set 96# CONFIG_HOTPLUG is not set
95CONFIG_PRINTK=y 97CONFIG_PRINTK=y
@@ -112,10 +114,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 115# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 122# CONFIG_HAVE_DMA_ATTRS is not set
123# CONFIG_USE_GENERIC_SMP_HELPERS is not set
124CONFIG_HAVE_CLK=y
118CONFIG_PROC_PAGE_MONITOR=y 125CONFIG_PROC_PAGE_MONITOR=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 129# CONFIG_TINY_SHMEM is not set
@@ -126,6 +134,7 @@ CONFIG_BLOCK=y
126# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set 135# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set
129 138
130# 139#
131# IO Schedulers 140# IO Schedulers
@@ -144,8 +153,6 @@ CONFIG_CLASSIC_RCU=y
144# 153#
145# Platform support 154# Platform support
146# 155#
147# CONFIG_PPC_MPC512x is not set
148# CONFIG_PPC_MPC5121 is not set
149# CONFIG_PPC_CELL is not set 156# CONFIG_PPC_CELL is not set
150# CONFIG_PPC_CELL_NATIVE is not set 157# CONFIG_PPC_CELL_NATIVE is not set
151# CONFIG_PQ2ADS is not set 158# CONFIG_PQ2ADS is not set
@@ -154,11 +161,13 @@ CONFIG_MPC85xx=y
154# CONFIG_MPC8560_ADS is not set 161# CONFIG_MPC8560_ADS is not set
155# CONFIG_MPC85xx_CDS is not set 162# CONFIG_MPC85xx_CDS is not set
156# CONFIG_MPC85xx_MDS is not set 163# CONFIG_MPC85xx_MDS is not set
164# CONFIG_MPC8536_DS is not set
157# CONFIG_MPC85xx_DS is not set 165# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set 166# CONFIG_KSI8560 is not set
159# CONFIG_STX_GP3 is not set 167# CONFIG_STX_GP3 is not set
160# CONFIG_TQM8540 is not set 168# CONFIG_TQM8540 is not set
161CONFIG_TQM8541=y 169CONFIG_TQM8541=y
170# CONFIG_TQM8548 is not set
162# CONFIG_TQM8555 is not set 171# CONFIG_TQM8555 is not set
163# CONFIG_TQM8560 is not set 172# CONFIG_TQM8560 is not set
164# CONFIG_SBC8548 is not set 173# CONFIG_SBC8548 is not set
@@ -176,7 +185,6 @@ CONFIG_MPIC=y
176# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
177# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
178CONFIG_CPM2=y 187CONFIG_CPM2=y
179CONFIG_PPC_CPM_NEW_BINDING=y
180# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
181CONFIG_CPM=y 189CONFIG_CPM=y
182 190
@@ -216,6 +224,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
218CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y
219# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
220CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
221CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
@@ -223,6 +232,7 @@ CONFIG_VIRT_TO_BUS=y
223CONFIG_FORCE_MAX_ZONEORDER=11 232CONFIG_FORCE_MAX_ZONEORDER=11
224# CONFIG_PROC_DEVICETREE is not set 233# CONFIG_PROC_DEVICETREE is not set
225# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
235CONFIG_EXTRA_TARGETS=""
226# CONFIG_PM is not set 236# CONFIG_PM is not set
227CONFIG_SECCOMP=y 237CONFIG_SECCOMP=y
228CONFIG_ISA_DMA_API=y 238CONFIG_ISA_DMA_API=y
@@ -234,6 +244,7 @@ CONFIG_ZONE_DMA=y
234CONFIG_PPC_INDIRECT_PCI=y 244CONFIG_PPC_INDIRECT_PCI=y
235CONFIG_FSL_SOC=y 245CONFIG_FSL_SOC=y
236CONFIG_FSL_PCI=y 246CONFIG_FSL_PCI=y
247CONFIG_PPC_PCI_CHOICE=y
237CONFIG_PCI=y 248CONFIG_PCI=y
238CONFIG_PCI_DOMAINS=y 249CONFIG_PCI_DOMAINS=y
239CONFIG_PCI_SYSCALL=y 250CONFIG_PCI_SYSCALL=y
@@ -257,10 +268,6 @@ CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000 268CONFIG_PHYSICAL_START=0x00000000
258CONFIG_PHYSICAL_ALIGN=0x10000000 269CONFIG_PHYSICAL_ALIGN=0x10000000
259CONFIG_TASK_SIZE=0xc0000000 270CONFIG_TASK_SIZE=0xc0000000
260
261#
262# Networking
263#
264CONFIG_NET=y 271CONFIG_NET=y
265 272
266# 273#
@@ -432,6 +439,7 @@ CONFIG_MTD_CFI_UTIL=y
432# 439#
433# CONFIG_MTD_UBI is not set 440# CONFIG_MTD_UBI is not set
434CONFIG_OF_DEVICE=y 441CONFIG_OF_DEVICE=y
442CONFIG_OF_GPIO=y
435CONFIG_OF_I2C=y 443CONFIG_OF_I2C=y
436# CONFIG_PARPORT is not set 444# CONFIG_PARPORT is not set
437CONFIG_BLK_DEV=y 445CONFIG_BLK_DEV=y
@@ -451,20 +459,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
451# CONFIG_BLK_DEV_XIP is not set 459# CONFIG_BLK_DEV_XIP is not set
452# CONFIG_CDROM_PKTCDVD is not set 460# CONFIG_CDROM_PKTCDVD is not set
453# CONFIG_ATA_OVER_ETH is not set 461# CONFIG_ATA_OVER_ETH is not set
462# CONFIG_BLK_DEV_HD is not set
454CONFIG_MISC_DEVICES=y 463CONFIG_MISC_DEVICES=y
455# CONFIG_PHANTOM is not set 464# CONFIG_PHANTOM is not set
456# CONFIG_EEPROM_93CX6 is not set 465# CONFIG_EEPROM_93CX6 is not set
457# CONFIG_SGI_IOC4 is not set 466# CONFIG_SGI_IOC4 is not set
458# CONFIG_TIFM_CORE is not set 467# CONFIG_TIFM_CORE is not set
459# CONFIG_ENCLOSURE_SERVICES is not set 468# CONFIG_ENCLOSURE_SERVICES is not set
469# CONFIG_HP_ILO is not set
460CONFIG_HAVE_IDE=y 470CONFIG_HAVE_IDE=y
461CONFIG_IDE=y 471CONFIG_IDE=y
462CONFIG_IDE_MAX_HWIFS=4
463CONFIG_BLK_DEV_IDE=y 472CONFIG_BLK_DEV_IDE=y
464 473
465# 474#
466# Please see Documentation/ide/ide.txt for help/info on IDE drives 475# Please see Documentation/ide/ide.txt for help/info on IDE drives
467# 476#
477CONFIG_IDE_TIMINGS=y
468# CONFIG_BLK_DEV_IDE_SATA is not set 478# CONFIG_BLK_DEV_IDE_SATA is not set
469CONFIG_BLK_DEV_IDEDISK=y 479CONFIG_BLK_DEV_IDEDISK=y
470# CONFIG_IDEDISK_MULTI_MODE is not set 480# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -477,7 +487,6 @@ CONFIG_IDE_PROC_FS=y
477# 487#
478# IDE chipset support/bugfixes 488# IDE chipset support/bugfixes
479# 489#
480CONFIG_IDE_GENERIC=y
481# CONFIG_BLK_DEV_PLATFORM is not set 490# CONFIG_BLK_DEV_PLATFORM is not set
482CONFIG_BLK_DEV_IDEDMA_SFF=y 491CONFIG_BLK_DEV_IDEDMA_SFF=y
483 492
@@ -495,10 +504,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
495# CONFIG_BLK_DEV_AMD74XX is not set 504# CONFIG_BLK_DEV_AMD74XX is not set
496# CONFIG_BLK_DEV_CMD64X is not set 505# CONFIG_BLK_DEV_CMD64X is not set
497# CONFIG_BLK_DEV_TRIFLEX is not set 506# CONFIG_BLK_DEV_TRIFLEX is not set
498# CONFIG_BLK_DEV_CY82C693 is not set
499# CONFIG_BLK_DEV_CS5520 is not set 507# CONFIG_BLK_DEV_CS5520 is not set
500# CONFIG_BLK_DEV_CS5530 is not set 508# CONFIG_BLK_DEV_CS5530 is not set
501# CONFIG_BLK_DEV_HPT34X is not set
502# CONFIG_BLK_DEV_HPT366 is not set 509# CONFIG_BLK_DEV_HPT366 is not set
503# CONFIG_BLK_DEV_JMICRON is not set 510# CONFIG_BLK_DEV_JMICRON is not set
504# CONFIG_BLK_DEV_SC1200 is not set 511# CONFIG_BLK_DEV_SC1200 is not set
@@ -516,8 +523,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
516CONFIG_BLK_DEV_VIA82CXXX=y 523CONFIG_BLK_DEV_VIA82CXXX=y
517# CONFIG_BLK_DEV_TC86C001 is not set 524# CONFIG_BLK_DEV_TC86C001 is not set
518CONFIG_BLK_DEV_IDEDMA=y 525CONFIG_BLK_DEV_IDEDMA=y
519# CONFIG_BLK_DEV_HD_ONLY is not set
520# CONFIG_BLK_DEV_HD is not set
521 526
522# 527#
523# SCSI device support 528# SCSI device support
@@ -533,12 +538,15 @@ CONFIG_BLK_DEV_IDEDMA=y
533# 538#
534# IEEE 1394 (FireWire) support 539# IEEE 1394 (FireWire) support
535# 540#
541
542#
543# Enable only one of the two stacks, unless you know what you are doing
544#
536# CONFIG_FIREWIRE is not set 545# CONFIG_FIREWIRE is not set
537# CONFIG_IEEE1394 is not set 546# CONFIG_IEEE1394 is not set
538# CONFIG_I2O is not set 547# CONFIG_I2O is not set
539# CONFIG_MACINTOSH_DRIVERS is not set 548# CONFIG_MACINTOSH_DRIVERS is not set
540CONFIG_NETDEVICES=y 549CONFIG_NETDEVICES=y
541# CONFIG_NETDEVICES_MULTIQUEUE is not set
542# CONFIG_DUMMY is not set 550# CONFIG_DUMMY is not set
543# CONFIG_BONDING is not set 551# CONFIG_BONDING is not set
544# CONFIG_MACVLAN is not set 552# CONFIG_MACVLAN is not set
@@ -601,7 +609,6 @@ CONFIG_NETDEV_1000=y
601# CONFIG_DL2K is not set 609# CONFIG_DL2K is not set
602# CONFIG_E1000 is not set 610# CONFIG_E1000 is not set
603# CONFIG_E1000E is not set 611# CONFIG_E1000E is not set
604# CONFIG_E1000E_ENABLED is not set
605# CONFIG_IP1000 is not set 612# CONFIG_IP1000 is not set
606# CONFIG_IGB is not set 613# CONFIG_IGB is not set
607# CONFIG_NS83820 is not set 614# CONFIG_NS83820 is not set
@@ -615,9 +622,9 @@ CONFIG_NETDEV_1000=y
615# CONFIG_TIGON3 is not set 622# CONFIG_TIGON3 is not set
616# CONFIG_BNX2 is not set 623# CONFIG_BNX2 is not set
617CONFIG_GIANFAR=y 624CONFIG_GIANFAR=y
618CONFIG_GFAR_NAPI=y
619# CONFIG_QLA3XXX is not set 625# CONFIG_QLA3XXX is not set
620# CONFIG_ATL1 is not set 626# CONFIG_ATL1 is not set
627# CONFIG_ATL1E is not set
621CONFIG_NETDEV_10000=y 628CONFIG_NETDEV_10000=y
622# CONFIG_CHELSIO_T1 is not set 629# CONFIG_CHELSIO_T1 is not set
623# CONFIG_CHELSIO_T3 is not set 630# CONFIG_CHELSIO_T3 is not set
@@ -732,42 +739,66 @@ CONFIG_DEVPORT=y
732CONFIG_I2C=y 739CONFIG_I2C=y
733CONFIG_I2C_BOARDINFO=y 740CONFIG_I2C_BOARDINFO=y
734CONFIG_I2C_CHARDEV=y 741CONFIG_I2C_CHARDEV=y
742CONFIG_I2C_HELPER_AUTO=y
735 743
736# 744#
737# I2C Hardware Bus support 745# I2C Hardware Bus support
738# 746#
747
748#
749# PC SMBus host controller drivers
750#
739# CONFIG_I2C_ALI1535 is not set 751# CONFIG_I2C_ALI1535 is not set
740# CONFIG_I2C_ALI1563 is not set 752# CONFIG_I2C_ALI1563 is not set
741# CONFIG_I2C_ALI15X3 is not set 753# CONFIG_I2C_ALI15X3 is not set
742# CONFIG_I2C_AMD756 is not set 754# CONFIG_I2C_AMD756 is not set
743# CONFIG_I2C_AMD8111 is not set 755# CONFIG_I2C_AMD8111 is not set
744# CONFIG_I2C_I801 is not set 756# CONFIG_I2C_I801 is not set
745# CONFIG_I2C_I810 is not set 757# CONFIG_I2C_ISCH is not set
746# CONFIG_I2C_PIIX4 is not set 758# CONFIG_I2C_PIIX4 is not set
747CONFIG_I2C_MPC=y
748# CONFIG_I2C_NFORCE2 is not set 759# CONFIG_I2C_NFORCE2 is not set
749# CONFIG_I2C_OCORES is not set
750# CONFIG_I2C_PARPORT_LIGHT is not set
751# CONFIG_I2C_PROSAVAGE is not set
752# CONFIG_I2C_SAVAGE4 is not set
753# CONFIG_I2C_SIMTEC is not set
754# CONFIG_I2C_SIS5595 is not set 760# CONFIG_I2C_SIS5595 is not set
755# CONFIG_I2C_SIS630 is not set 761# CONFIG_I2C_SIS630 is not set
756# CONFIG_I2C_SIS96X is not set 762# CONFIG_I2C_SIS96X is not set
757# CONFIG_I2C_TAOS_EVM is not set
758# CONFIG_I2C_VIA is not set 763# CONFIG_I2C_VIA is not set
759# CONFIG_I2C_VIAPRO is not set 764# CONFIG_I2C_VIAPRO is not set
765
766#
767# I2C system bus drivers (mostly embedded / system-on-chip)
768#
769# CONFIG_I2C_CPM is not set
770# CONFIG_I2C_GPIO is not set
771CONFIG_I2C_MPC=y
772# CONFIG_I2C_OCORES is not set
773# CONFIG_I2C_SIMTEC is not set
774
775#
776# External I2C/SMBus adapter drivers
777#
778# CONFIG_I2C_PARPORT_LIGHT is not set
779# CONFIG_I2C_TAOS_EVM is not set
780
781#
782# Graphics adapter I2C/DDC channel drivers
783#
760# CONFIG_I2C_VOODOO3 is not set 784# CONFIG_I2C_VOODOO3 is not set
785
786#
787# Other I2C/SMBus bus drivers
788#
761# CONFIG_I2C_PCA_PLATFORM is not set 789# CONFIG_I2C_PCA_PLATFORM is not set
762 790
763# 791#
764# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
765# 793#
766# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
795# CONFIG_AT24 is not set
767# CONFIG_SENSORS_EEPROM is not set 796# CONFIG_SENSORS_EEPROM is not set
768# CONFIG_SENSORS_PCF8574 is not set 797# CONFIG_SENSORS_PCF8574 is not set
769# CONFIG_PCF8575 is not set 798# CONFIG_PCF8575 is not set
799# CONFIG_SENSORS_PCA9539 is not set
770# CONFIG_SENSORS_PCF8591 is not set 800# CONFIG_SENSORS_PCF8591 is not set
801# CONFIG_TPS65010 is not set
771# CONFIG_SENSORS_MAX6875 is not set 802# CONFIG_SENSORS_MAX6875 is not set
772# CONFIG_SENSORS_TSL2550 is not set 803# CONFIG_SENSORS_TSL2550 is not set
773# CONFIG_I2C_DEBUG_CORE is not set 804# CONFIG_I2C_DEBUG_CORE is not set
@@ -775,10 +806,31 @@ CONFIG_I2C_MPC=y
775# CONFIG_I2C_DEBUG_BUS is not set 806# CONFIG_I2C_DEBUG_BUS is not set
776# CONFIG_I2C_DEBUG_CHIP is not set 807# CONFIG_I2C_DEBUG_CHIP is not set
777# CONFIG_SPI is not set 808# CONFIG_SPI is not set
809CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
810CONFIG_ARCH_REQUIRE_GPIOLIB=y
811CONFIG_GPIOLIB=y
812# CONFIG_GPIO_SYSFS is not set
813
814#
815# I2C GPIO expanders:
816#
817# CONFIG_GPIO_MAX732X is not set
818# CONFIG_GPIO_PCA953X is not set
819# CONFIG_GPIO_PCF857X is not set
820
821#
822# PCI GPIO expanders:
823#
824# CONFIG_GPIO_BT8XX is not set
825
826#
827# SPI GPIO expanders:
828#
778# CONFIG_W1 is not set 829# CONFIG_W1 is not set
779# CONFIG_POWER_SUPPLY is not set 830# CONFIG_POWER_SUPPLY is not set
780CONFIG_HWMON=y 831CONFIG_HWMON=y
781# CONFIG_HWMON_VID is not set 832# CONFIG_HWMON_VID is not set
833# CONFIG_SENSORS_AD7414 is not set
782# CONFIG_SENSORS_AD7418 is not set 834# CONFIG_SENSORS_AD7418 is not set
783# CONFIG_SENSORS_ADM1021 is not set 835# CONFIG_SENSORS_ADM1021 is not set
784# CONFIG_SENSORS_ADM1025 is not set 836# CONFIG_SENSORS_ADM1025 is not set
@@ -832,6 +884,7 @@ CONFIG_SENSORS_LM75=y
832# CONFIG_SENSORS_W83627EHF is not set 884# CONFIG_SENSORS_W83627EHF is not set
833CONFIG_HWMON_DEBUG_CHIP=y 885CONFIG_HWMON_DEBUG_CHIP=y
834# CONFIG_THERMAL is not set 886# CONFIG_THERMAL is not set
887# CONFIG_THERMAL_HWMON is not set
835# CONFIG_WATCHDOG is not set 888# CONFIG_WATCHDOG is not set
836 889
837# 890#
@@ -843,8 +896,10 @@ CONFIG_SSB_POSSIBLE=y
843# 896#
844# Multifunction device drivers 897# Multifunction device drivers
845# 898#
899# CONFIG_MFD_CORE is not set
846# CONFIG_MFD_SM501 is not set 900# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set 901# CONFIG_HTC_PASIC3 is not set
902# CONFIG_MFD_TMIO is not set
848 903
849# 904#
850# Multimedia devices 905# Multimedia devices
@@ -876,10 +931,6 @@ CONFIG_DAB=y
876# Display device support 931# Display device support
877# 932#
878# CONFIG_DISPLAY_SUPPORT is not set 933# CONFIG_DISPLAY_SUPPORT is not set
879
880#
881# Sound
882#
883# CONFIG_SOUND is not set 934# CONFIG_SOUND is not set
884CONFIG_HID_SUPPORT=y 935CONFIG_HID_SUPPORT=y
885CONFIG_HID=y 936CONFIG_HID=y
@@ -894,6 +945,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
894# CONFIG_USB_OTG_BLACKLIST_HUB is not set 945# CONFIG_USB_OTG_BLACKLIST_HUB is not set
895 946
896# 947#
948# Enable Host or Gadget support to see Inventra options
949#
950
951#
897# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 952# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
898# 953#
899# CONFIG_USB_GADGET is not set 954# CONFIG_USB_GADGET is not set
@@ -982,6 +1037,7 @@ CONFIG_JFFS2_RTIME=y
982CONFIG_CRAMFS=y 1037CONFIG_CRAMFS=y
983# CONFIG_VXFS_FS is not set 1038# CONFIG_VXFS_FS is not set
984# CONFIG_MINIX_FS is not set 1039# CONFIG_MINIX_FS is not set
1040# CONFIG_OMFS_FS is not set
985# CONFIG_HPFS_FS is not set 1041# CONFIG_HPFS_FS is not set
986# CONFIG_QNX4FS_FS is not set 1042# CONFIG_QNX4FS_FS is not set
987# CONFIG_ROMFS_FS is not set 1043# CONFIG_ROMFS_FS is not set
@@ -991,12 +1047,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
991CONFIG_NFS_FS=y 1047CONFIG_NFS_FS=y
992# CONFIG_NFS_V3 is not set 1048# CONFIG_NFS_V3 is not set
993# CONFIG_NFS_V4 is not set 1049# CONFIG_NFS_V4 is not set
994# CONFIG_NFSD is not set
995CONFIG_ROOT_NFS=y 1050CONFIG_ROOT_NFS=y
1051# CONFIG_NFSD is not set
996CONFIG_LOCKD=y 1052CONFIG_LOCKD=y
997CONFIG_NFS_COMMON=y 1053CONFIG_NFS_COMMON=y
998CONFIG_SUNRPC=y 1054CONFIG_SUNRPC=y
999# CONFIG_SUNRPC_BIND34 is not set
1000# CONFIG_RPCSEC_GSS_KRB5 is not set 1055# CONFIG_RPCSEC_GSS_KRB5 is not set
1001# CONFIG_RPCSEC_GSS_SPKM3 is not set 1056# CONFIG_RPCSEC_GSS_SPKM3 is not set
1002# CONFIG_SMB_FS is not set 1057# CONFIG_SMB_FS is not set
@@ -1032,6 +1087,7 @@ CONFIG_BITREVERSE=y
1032# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1087# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1033# CONFIG_CRC_CCITT is not set 1088# CONFIG_CRC_CCITT is not set
1034# CONFIG_CRC16 is not set 1089# CONFIG_CRC16 is not set
1090# CONFIG_CRC_T10DIF is not set
1035# CONFIG_CRC_ITU_T is not set 1091# CONFIG_CRC_ITU_T is not set
1036CONFIG_CRC32=y 1092CONFIG_CRC32=y
1037# CONFIG_CRC7 is not set 1093# CONFIG_CRC7 is not set
@@ -1059,8 +1115,16 @@ CONFIG_FRAME_WARN=1024
1059# CONFIG_SLUB_DEBUG_ON is not set 1115# CONFIG_SLUB_DEBUG_ON is not set
1060# CONFIG_SLUB_STATS is not set 1116# CONFIG_SLUB_STATS is not set
1061# CONFIG_DEBUG_BUGVERBOSE is not set 1117# CONFIG_DEBUG_BUGVERBOSE is not set
1118# CONFIG_DEBUG_MEMORY_INIT is not set
1119# CONFIG_LATENCYTOP is not set
1120CONFIG_SYSCTL_SYSCALL_CHECK=y
1121CONFIG_HAVE_FTRACE=y
1122CONFIG_HAVE_DYNAMIC_FTRACE=y
1123# CONFIG_FTRACE is not set
1124# CONFIG_SCHED_TRACER is not set
1125# CONFIG_CONTEXT_SWITCH_TRACER is not set
1062# CONFIG_SAMPLES is not set 1126# CONFIG_SAMPLES is not set
1063# CONFIG_KGDB_CONSOLE is not set 1127CONFIG_HAVE_ARCH_KGDB=y
1064# CONFIG_IRQSTACKS is not set 1128# CONFIG_IRQSTACKS is not set
1065# CONFIG_PPC_EARLY_DEBUG is not set 1129# CONFIG_PPC_EARLY_DEBUG is not set
1066 1130
@@ -1112,6 +1176,10 @@ CONFIG_CRYPTO=y
1112# CONFIG_CRYPTO_MD4 is not set 1176# CONFIG_CRYPTO_MD4 is not set
1113# CONFIG_CRYPTO_MD5 is not set 1177# CONFIG_CRYPTO_MD5 is not set
1114# CONFIG_CRYPTO_MICHAEL_MIC is not set 1178# CONFIG_CRYPTO_MICHAEL_MIC is not set
1179# CONFIG_CRYPTO_RMD128 is not set
1180# CONFIG_CRYPTO_RMD160 is not set
1181# CONFIG_CRYPTO_RMD256 is not set
1182# CONFIG_CRYPTO_RMD320 is not set
1115# CONFIG_CRYPTO_SHA1 is not set 1183# CONFIG_CRYPTO_SHA1 is not set
1116# CONFIG_CRYPTO_SHA256 is not set 1184# CONFIG_CRYPTO_SHA256 is not set
1117# CONFIG_CRYPTO_SHA512 is not set 1185# CONFIG_CRYPTO_SHA512 is not set
@@ -1144,6 +1212,7 @@ CONFIG_CRYPTO=y
1144# CONFIG_CRYPTO_LZO is not set 1212# CONFIG_CRYPTO_LZO is not set
1145CONFIG_CRYPTO_HW=y 1213CONFIG_CRYPTO_HW=y
1146# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1214# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1147# CONFIG_PPC_CLOCK is not set 1215# CONFIG_CRYPTO_DEV_TALITOS is not set
1216CONFIG_PPC_CLOCK=y
1148CONFIG_PPC_LIB_RHEAP=y 1217CONFIG_PPC_LIB_RHEAP=y
1149# CONFIG_VIRTUALIZATION is not set 1218# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig
index b3b770be3cc..ca1234d2685 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Thu Jun 26 14:40:02 2008 4# Thu Aug 21 00:52:40 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -34,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
35CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
36CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -90,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
90CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
91CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
92CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
93CONFIG_SYSCTL_SYSCALL_CHECK=y
94CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
95# CONFIG_KALLSYMS_ALL is not set 95# CONFIG_KALLSYMS_ALL is not set
96# CONFIG_KALLSYMS_EXTRA_PASS is not set 96# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -116,10 +116,16 @@ CONFIG_SLUB=y
116# CONFIG_MARKERS is not set 116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set 118# CONFIG_KPROBES is not set
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
121# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
122CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -130,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
133# CONFIG_KMOD is not set 139CONFIG_KMOD=y
134CONFIG_BLOCK=y 140CONFIG_BLOCK=y
135# CONFIG_LBD is not set 141# CONFIG_LBD is not set
136# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set 143# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
139 146
140# 147#
141# IO Schedulers 148# IO Schedulers
@@ -154,8 +161,6 @@ CONFIG_CLASSIC_RCU=y
154# 161#
155# Platform support 162# Platform support
156# 163#
157# CONFIG_PPC_MPC512x is not set
158# CONFIG_PPC_MPC5121 is not set
159# CONFIG_PPC_CELL is not set 164# CONFIG_PPC_CELL is not set
160# CONFIG_PPC_CELL_NATIVE is not set 165# CONFIG_PPC_CELL_NATIVE is not set
161# CONFIG_PQ2ADS is not set 166# CONFIG_PQ2ADS is not set
@@ -164,6 +169,7 @@ CONFIG_MPC85xx=y
164# CONFIG_MPC8560_ADS is not set 169# CONFIG_MPC8560_ADS is not set
165# CONFIG_MPC85xx_CDS is not set 170# CONFIG_MPC85xx_CDS is not set
166# CONFIG_MPC85xx_MDS is not set 171# CONFIG_MPC85xx_MDS is not set
172# CONFIG_MPC8536_DS is not set
167# CONFIG_MPC85xx_DS is not set 173# CONFIG_MPC85xx_DS is not set
168# CONFIG_KSI8560 is not set 174# CONFIG_KSI8560 is not set
169# CONFIG_STX_GP3 is not set 175# CONFIG_STX_GP3 is not set
@@ -187,7 +193,6 @@ CONFIG_MPIC=y
187# CONFIG_GENERIC_IOMAP is not set 193# CONFIG_GENERIC_IOMAP is not set
188# CONFIG_CPU_FREQ is not set 194# CONFIG_CPU_FREQ is not set
189# CONFIG_CPM2 is not set 195# CONFIG_CPM2 is not set
190CONFIG_PPC_CPM_NEW_BINDING=y
191# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
192 197
193# 198#
@@ -203,7 +208,7 @@ CONFIG_HZ_250=y
203# CONFIG_HZ_300 is not set 208# CONFIG_HZ_300 is not set
204# CONFIG_HZ_1000 is not set 209# CONFIG_HZ_1000 is not set
205CONFIG_HZ=250 210CONFIG_HZ=250
206# CONFIG_SCHED_HRTICK is not set 211CONFIG_SCHED_HRTICK=y
207CONFIG_PREEMPT_NONE=y 212CONFIG_PREEMPT_NONE=y
208# CONFIG_PREEMPT_VOLUNTARY is not set 213# CONFIG_PREEMPT_VOLUNTARY is not set
209# CONFIG_PREEMPT is not set 214# CONFIG_PREEMPT is not set
@@ -226,6 +231,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 231# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
227CONFIG_PAGEFLAGS_EXTENDED=y 232CONFIG_PAGEFLAGS_EXTENDED=y
228CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
234CONFIG_MIGRATION=y
229# CONFIG_RESOURCES_64BIT is not set 235# CONFIG_RESOURCES_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=1 236CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 237CONFIG_BOUNCE=y
@@ -233,6 +239,7 @@ CONFIG_VIRT_TO_BUS=y
233CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
234CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
235# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
242CONFIG_EXTRA_TARGETS=""
236# CONFIG_PM is not set 243# CONFIG_PM is not set
237# CONFIG_SECCOMP is not set 244# CONFIG_SECCOMP is not set
238CONFIG_ISA_DMA_API=y 245CONFIG_ISA_DMA_API=y
@@ -244,7 +251,7 @@ CONFIG_ZONE_DMA=y
244CONFIG_PPC_INDIRECT_PCI=y 251CONFIG_PPC_INDIRECT_PCI=y
245CONFIG_FSL_SOC=y 252CONFIG_FSL_SOC=y
246CONFIG_FSL_PCI=y 253CONFIG_FSL_PCI=y
247CONFIG_FSL_LBC=y 254CONFIG_PPC_PCI_CHOICE=y
248CONFIG_PCI=y 255CONFIG_PCI=y
249CONFIG_PCI_DOMAINS=y 256CONFIG_PCI_DOMAINS=y
250CONFIG_PCI_SYSCALL=y 257CONFIG_PCI_SYSCALL=y
@@ -273,10 +280,6 @@ CONFIG_KERNEL_START=0xc0000000
273CONFIG_PHYSICAL_START=0x00000000 280CONFIG_PHYSICAL_START=0x00000000
274CONFIG_PHYSICAL_ALIGN=0x10000000 281CONFIG_PHYSICAL_ALIGN=0x10000000
275CONFIG_TASK_SIZE=0xc0000000 282CONFIG_TASK_SIZE=0xc0000000
276
277#
278# Networking
279#
280CONFIG_NET=y 283CONFIG_NET=y
281 284
282# 285#
@@ -455,7 +458,6 @@ CONFIG_MTD_NAND_IDS=y
455# CONFIG_MTD_NAND_NANDSIM is not set 458# CONFIG_MTD_NAND_NANDSIM is not set
456# CONFIG_MTD_NAND_PLATFORM is not set 459# CONFIG_MTD_NAND_PLATFORM is not set
457# CONFIG_MTD_NAND_FSL_ELBC is not set 460# CONFIG_MTD_NAND_FSL_ELBC is not set
458CONFIG_MTD_NAND_FSL_UPM=y
459# CONFIG_MTD_ONENAND is not set 461# CONFIG_MTD_ONENAND is not set
460 462
461# 463#
@@ -490,20 +492,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
490# CONFIG_BLK_DEV_XIP is not set 492# CONFIG_BLK_DEV_XIP is not set
491# CONFIG_CDROM_PKTCDVD is not set 493# CONFIG_CDROM_PKTCDVD is not set
492# CONFIG_ATA_OVER_ETH is not set 494# CONFIG_ATA_OVER_ETH is not set
495# CONFIG_BLK_DEV_HD is not set
493CONFIG_MISC_DEVICES=y 496CONFIG_MISC_DEVICES=y
494# CONFIG_PHANTOM is not set 497# CONFIG_PHANTOM is not set
495# CONFIG_EEPROM_93CX6 is not set 498# CONFIG_EEPROM_93CX6 is not set
496# CONFIG_SGI_IOC4 is not set 499# CONFIG_SGI_IOC4 is not set
497# CONFIG_TIFM_CORE is not set 500# CONFIG_TIFM_CORE is not set
498# CONFIG_ENCLOSURE_SERVICES is not set 501# CONFIG_ENCLOSURE_SERVICES is not set
502# CONFIG_HP_ILO is not set
499CONFIG_HAVE_IDE=y 503CONFIG_HAVE_IDE=y
500CONFIG_IDE=y 504CONFIG_IDE=y
501CONFIG_IDE_MAX_HWIFS=4
502CONFIG_BLK_DEV_IDE=y 505CONFIG_BLK_DEV_IDE=y
503 506
504# 507#
505# Please see Documentation/ide/ide.txt for help/info on IDE drives 508# Please see Documentation/ide/ide.txt for help/info on IDE drives
506# 509#
510CONFIG_IDE_TIMINGS=y
507# CONFIG_BLK_DEV_IDE_SATA is not set 511# CONFIG_BLK_DEV_IDE_SATA is not set
508# CONFIG_BLK_DEV_IDEDISK is not set 512# CONFIG_BLK_DEV_IDEDISK is not set
509# CONFIG_IDEDISK_MULTI_MODE is not set 513# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -516,7 +520,6 @@ CONFIG_IDE_PROC_FS=y
516# 520#
517# IDE chipset support/bugfixes 521# IDE chipset support/bugfixes
518# 522#
519CONFIG_IDE_GENERIC=y
520# CONFIG_BLK_DEV_PLATFORM is not set 523# CONFIG_BLK_DEV_PLATFORM is not set
521CONFIG_BLK_DEV_IDEDMA_SFF=y 524CONFIG_BLK_DEV_IDEDMA_SFF=y
522 525
@@ -534,10 +537,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
534# CONFIG_BLK_DEV_AMD74XX is not set 537# CONFIG_BLK_DEV_AMD74XX is not set
535# CONFIG_BLK_DEV_CMD64X is not set 538# CONFIG_BLK_DEV_CMD64X is not set
536# CONFIG_BLK_DEV_TRIFLEX is not set 539# CONFIG_BLK_DEV_TRIFLEX is not set
537# CONFIG_BLK_DEV_CY82C693 is not set
538# CONFIG_BLK_DEV_CS5520 is not set 540# CONFIG_BLK_DEV_CS5520 is not set
539# CONFIG_BLK_DEV_CS5530 is not set 541# CONFIG_BLK_DEV_CS5530 is not set
540# CONFIG_BLK_DEV_HPT34X is not set
541# CONFIG_BLK_DEV_HPT366 is not set 542# CONFIG_BLK_DEV_HPT366 is not set
542# CONFIG_BLK_DEV_JMICRON is not set 543# CONFIG_BLK_DEV_JMICRON is not set
543# CONFIG_BLK_DEV_SC1200 is not set 544# CONFIG_BLK_DEV_SC1200 is not set
@@ -555,8 +556,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
555CONFIG_BLK_DEV_VIA82CXXX=y 556CONFIG_BLK_DEV_VIA82CXXX=y
556# CONFIG_BLK_DEV_TC86C001 is not set 557# CONFIG_BLK_DEV_TC86C001 is not set
557CONFIG_BLK_DEV_IDEDMA=y 558CONFIG_BLK_DEV_IDEDMA=y
558# CONFIG_BLK_DEV_HD_ONLY is not set
559# CONFIG_BLK_DEV_HD is not set
560 559
561# 560#
562# SCSI device support 561# SCSI device support
@@ -572,12 +571,15 @@ CONFIG_BLK_DEV_IDEDMA=y
572# 571#
573# IEEE 1394 (FireWire) support 572# IEEE 1394 (FireWire) support
574# 573#
574
575#
576# Enable only one of the two stacks, unless you know what you are doing
577#
575# CONFIG_FIREWIRE is not set 578# CONFIG_FIREWIRE is not set
576# CONFIG_IEEE1394 is not set 579# CONFIG_IEEE1394 is not set
577# CONFIG_I2O is not set 580# CONFIG_I2O is not set
578# CONFIG_MACINTOSH_DRIVERS is not set 581# CONFIG_MACINTOSH_DRIVERS is not set
579CONFIG_NETDEVICES=y 582CONFIG_NETDEVICES=y
580# CONFIG_NETDEVICES_MULTIQUEUE is not set
581# CONFIG_DUMMY is not set 583# CONFIG_DUMMY is not set
582# CONFIG_BONDING is not set 584# CONFIG_BONDING is not set
583# CONFIG_MACVLAN is not set 585# CONFIG_MACVLAN is not set
@@ -620,10 +622,8 @@ CONFIG_NETDEV_1000=y
620# CONFIG_ACENIC is not set 622# CONFIG_ACENIC is not set
621# CONFIG_DL2K is not set 623# CONFIG_DL2K is not set
622CONFIG_E1000=y 624CONFIG_E1000=y
623CONFIG_E1000_NAPI=y
624# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 625# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
625# CONFIG_E1000E is not set 626# CONFIG_E1000E is not set
626# CONFIG_E1000E_ENABLED is not set
627# CONFIG_IP1000 is not set 627# CONFIG_IP1000 is not set
628# CONFIG_IGB is not set 628# CONFIG_IGB is not set
629# CONFIG_NS83820 is not set 629# CONFIG_NS83820 is not set
@@ -637,9 +637,9 @@ CONFIG_E1000_NAPI=y
637# CONFIG_TIGON3 is not set 637# CONFIG_TIGON3 is not set
638# CONFIG_BNX2 is not set 638# CONFIG_BNX2 is not set
639CONFIG_GIANFAR=y 639CONFIG_GIANFAR=y
640CONFIG_GFAR_NAPI=y
641# CONFIG_QLA3XXX is not set 640# CONFIG_QLA3XXX is not set
642# CONFIG_ATL1 is not set 641# CONFIG_ATL1 is not set
642# CONFIG_ATL1E is not set
643CONFIG_NETDEV_10000=y 643CONFIG_NETDEV_10000=y
644# CONFIG_CHELSIO_T1 is not set 644# CONFIG_CHELSIO_T1 is not set
645# CONFIG_CHELSIO_T3 is not set 645# CONFIG_CHELSIO_T3 is not set
@@ -744,42 +744,63 @@ CONFIG_DEVPORT=y
744CONFIG_I2C=y 744CONFIG_I2C=y
745CONFIG_I2C_BOARDINFO=y 745CONFIG_I2C_BOARDINFO=y
746CONFIG_I2C_CHARDEV=y 746CONFIG_I2C_CHARDEV=y
747CONFIG_I2C_HELPER_AUTO=y
747 748
748# 749#
749# I2C Hardware Bus support 750# I2C Hardware Bus support
750# 751#
752
753#
754# PC SMBus host controller drivers
755#
751# CONFIG_I2C_ALI1535 is not set 756# CONFIG_I2C_ALI1535 is not set
752# CONFIG_I2C_ALI1563 is not set 757# CONFIG_I2C_ALI1563 is not set
753# CONFIG_I2C_ALI15X3 is not set 758# CONFIG_I2C_ALI15X3 is not set
754# CONFIG_I2C_AMD756 is not set 759# CONFIG_I2C_AMD756 is not set
755# CONFIG_I2C_AMD8111 is not set 760# CONFIG_I2C_AMD8111 is not set
756# CONFIG_I2C_I801 is not set 761# CONFIG_I2C_I801 is not set
757# CONFIG_I2C_I810 is not set 762# CONFIG_I2C_ISCH is not set
758# CONFIG_I2C_PIIX4 is not set 763# CONFIG_I2C_PIIX4 is not set
759CONFIG_I2C_MPC=y
760# CONFIG_I2C_NFORCE2 is not set 764# CONFIG_I2C_NFORCE2 is not set
761# CONFIG_I2C_OCORES is not set
762# CONFIG_I2C_PARPORT_LIGHT is not set
763# CONFIG_I2C_PROSAVAGE is not set
764# CONFIG_I2C_SAVAGE4 is not set
765# CONFIG_I2C_SIMTEC is not set
766# CONFIG_I2C_SIS5595 is not set 765# CONFIG_I2C_SIS5595 is not set
767# CONFIG_I2C_SIS630 is not set 766# CONFIG_I2C_SIS630 is not set
768# CONFIG_I2C_SIS96X is not set 767# CONFIG_I2C_SIS96X is not set
769# CONFIG_I2C_TAOS_EVM is not set
770# CONFIG_I2C_STUB is not set
771# CONFIG_I2C_VIA is not set 768# CONFIG_I2C_VIA is not set
772# CONFIG_I2C_VIAPRO is not set 769# CONFIG_I2C_VIAPRO is not set
770
771#
772# I2C system bus drivers (mostly embedded / system-on-chip)
773#
774CONFIG_I2C_MPC=y
775# CONFIG_I2C_OCORES is not set
776# CONFIG_I2C_SIMTEC is not set
777
778#
779# External I2C/SMBus adapter drivers
780#
781# CONFIG_I2C_PARPORT_LIGHT is not set
782# CONFIG_I2C_TAOS_EVM is not set
783
784#
785# Graphics adapter I2C/DDC channel drivers
786#
773# CONFIG_I2C_VOODOO3 is not set 787# CONFIG_I2C_VOODOO3 is not set
788
789#
790# Other I2C/SMBus bus drivers
791#
774# CONFIG_I2C_PCA_PLATFORM is not set 792# CONFIG_I2C_PCA_PLATFORM is not set
793# CONFIG_I2C_STUB is not set
775 794
776# 795#
777# Miscellaneous I2C Chip support 796# Miscellaneous I2C Chip support
778# 797#
779# CONFIG_DS1682 is not set 798# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set
780# CONFIG_SENSORS_EEPROM is not set 800# CONFIG_SENSORS_EEPROM is not set
781# CONFIG_SENSORS_PCF8574 is not set 801# CONFIG_SENSORS_PCF8574 is not set
782# CONFIG_PCF8575 is not set 802# CONFIG_PCF8575 is not set
803# CONFIG_SENSORS_PCA9539 is not set
783# CONFIG_SENSORS_PCF8591 is not set 804# CONFIG_SENSORS_PCF8591 is not set
784# CONFIG_SENSORS_MAX6875 is not set 805# CONFIG_SENSORS_MAX6875 is not set
785# CONFIG_SENSORS_TSL2550 is not set 806# CONFIG_SENSORS_TSL2550 is not set
@@ -788,10 +809,13 @@ CONFIG_I2C_MPC=y
788# CONFIG_I2C_DEBUG_BUS is not set 809# CONFIG_I2C_DEBUG_BUS is not set
789# CONFIG_I2C_DEBUG_CHIP is not set 810# CONFIG_I2C_DEBUG_CHIP is not set
790# CONFIG_SPI is not set 811# CONFIG_SPI is not set
812CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
813# CONFIG_GPIOLIB is not set
791# CONFIG_W1 is not set 814# CONFIG_W1 is not set
792# CONFIG_POWER_SUPPLY is not set 815# CONFIG_POWER_SUPPLY is not set
793CONFIG_HWMON=y 816CONFIG_HWMON=y
794# CONFIG_HWMON_VID is not set 817# CONFIG_HWMON_VID is not set
818# CONFIG_SENSORS_AD7414 is not set
795# CONFIG_SENSORS_AD7418 is not set 819# CONFIG_SENSORS_AD7418 is not set
796# CONFIG_SENSORS_ADM1021 is not set 820# CONFIG_SENSORS_ADM1021 is not set
797# CONFIG_SENSORS_ADM1025 is not set 821# CONFIG_SENSORS_ADM1025 is not set
@@ -845,6 +869,7 @@ CONFIG_SENSORS_LM75=y
845# CONFIG_SENSORS_W83627EHF is not set 869# CONFIG_SENSORS_W83627EHF is not set
846# CONFIG_HWMON_DEBUG_CHIP is not set 870# CONFIG_HWMON_DEBUG_CHIP is not set
847# CONFIG_THERMAL is not set 871# CONFIG_THERMAL is not set
872# CONFIG_THERMAL_HWMON is not set
848# CONFIG_WATCHDOG is not set 873# CONFIG_WATCHDOG is not set
849 874
850# 875#
@@ -856,8 +881,10 @@ CONFIG_SSB_POSSIBLE=y
856# 881#
857# Multifunction device drivers 882# Multifunction device drivers
858# 883#
884# CONFIG_MFD_CORE is not set
859# CONFIG_MFD_SM501 is not set 885# CONFIG_MFD_SM501 is not set
860# CONFIG_HTC_PASIC3 is not set 886# CONFIG_HTC_PASIC3 is not set
887# CONFIG_MFD_TMIO is not set
861 888
862# 889#
863# Multimedia devices 890# Multimedia devices
@@ -889,10 +916,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
889# Display device support 916# Display device support
890# 917#
891# CONFIG_DISPLAY_SUPPORT is not set 918# CONFIG_DISPLAY_SUPPORT is not set
892
893#
894# Sound
895#
896# CONFIG_SOUND is not set 919# CONFIG_SOUND is not set
897CONFIG_HID_SUPPORT=y 920CONFIG_HID_SUPPORT=y
898CONFIG_HID=y 921CONFIG_HID=y
@@ -907,6 +930,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
907# CONFIG_USB_OTG_BLACKLIST_HUB is not set 930# CONFIG_USB_OTG_BLACKLIST_HUB is not set
908 931
909# 932#
933# Enable Host or Gadget support to see Inventra options
934#
935
936#
910# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 937# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
911# 938#
912# CONFIG_USB_GADGET is not set 939# CONFIG_USB_GADGET is not set
@@ -945,6 +972,7 @@ CONFIG_RTC_DRV_DS1307=y
945# CONFIG_RTC_DRV_PCF8583 is not set 972# CONFIG_RTC_DRV_PCF8583 is not set
946# CONFIG_RTC_DRV_M41T80 is not set 973# CONFIG_RTC_DRV_M41T80 is not set
947# CONFIG_RTC_DRV_S35390A is not set 974# CONFIG_RTC_DRV_S35390A is not set
975# CONFIG_RTC_DRV_FM3130 is not set
948 976
949# 977#
950# SPI RTC drivers 978# SPI RTC drivers
@@ -1031,9 +1059,11 @@ CONFIG_TMPFS=y
1031# CONFIG_BFS_FS is not set 1059# CONFIG_BFS_FS is not set
1032# CONFIG_EFS_FS is not set 1060# CONFIG_EFS_FS is not set
1033# CONFIG_JFFS2_FS is not set 1061# CONFIG_JFFS2_FS is not set
1062# CONFIG_UBIFS_FS is not set
1034# CONFIG_CRAMFS is not set 1063# CONFIG_CRAMFS is not set
1035# CONFIG_VXFS_FS is not set 1064# CONFIG_VXFS_FS is not set
1036# CONFIG_MINIX_FS is not set 1065# CONFIG_MINIX_FS is not set
1066# CONFIG_OMFS_FS is not set
1037# CONFIG_HPFS_FS is not set 1067# CONFIG_HPFS_FS is not set
1038# CONFIG_QNX4FS_FS is not set 1068# CONFIG_QNX4FS_FS is not set
1039# CONFIG_ROMFS_FS is not set 1069# CONFIG_ROMFS_FS is not set
@@ -1043,12 +1073,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
1043CONFIG_NFS_FS=y 1073CONFIG_NFS_FS=y
1044# CONFIG_NFS_V3 is not set 1074# CONFIG_NFS_V3 is not set
1045# CONFIG_NFS_V4 is not set 1075# CONFIG_NFS_V4 is not set
1046# CONFIG_NFSD is not set
1047CONFIG_ROOT_NFS=y 1076CONFIG_ROOT_NFS=y
1077# CONFIG_NFSD is not set
1048CONFIG_LOCKD=y 1078CONFIG_LOCKD=y
1049CONFIG_NFS_COMMON=y 1079CONFIG_NFS_COMMON=y
1050CONFIG_SUNRPC=y 1080CONFIG_SUNRPC=y
1051# CONFIG_SUNRPC_BIND34 is not set
1052# CONFIG_RPCSEC_GSS_KRB5 is not set 1081# CONFIG_RPCSEC_GSS_KRB5 is not set
1053# CONFIG_RPCSEC_GSS_SPKM3 is not set 1082# CONFIG_RPCSEC_GSS_SPKM3 is not set
1054# CONFIG_SMB_FS is not set 1083# CONFIG_SMB_FS is not set
@@ -1084,6 +1113,7 @@ CONFIG_BITREVERSE=y
1084# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1113# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1085# CONFIG_CRC_CCITT is not set 1114# CONFIG_CRC_CCITT is not set
1086# CONFIG_CRC16 is not set 1115# CONFIG_CRC16 is not set
1116# CONFIG_CRC_T10DIF is not set
1087# CONFIG_CRC_ITU_T is not set 1117# CONFIG_CRC_ITU_T is not set
1088CONFIG_CRC32=y 1118CONFIG_CRC32=y
1089# CONFIG_CRC7 is not set 1119# CONFIG_CRC7 is not set
@@ -1108,6 +1138,8 @@ CONFIG_FRAME_WARN=1024
1108CONFIG_DEBUG_KERNEL=y 1138CONFIG_DEBUG_KERNEL=y
1109# CONFIG_DEBUG_SHIRQ is not set 1139# CONFIG_DEBUG_SHIRQ is not set
1110CONFIG_DETECT_SOFTLOCKUP=y 1140CONFIG_DETECT_SOFTLOCKUP=y
1141# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1142CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1111CONFIG_SCHED_DEBUG=y 1143CONFIG_SCHED_DEBUG=y
1112# CONFIG_SCHEDSTATS is not set 1144# CONFIG_SCHEDSTATS is not set
1113# CONFIG_TIMER_STATS is not set 1145# CONFIG_TIMER_STATS is not set
@@ -1125,17 +1157,29 @@ CONFIG_DEBUG_MUTEXES=y
1125# CONFIG_DEBUG_INFO is not set 1157# CONFIG_DEBUG_INFO is not set
1126# CONFIG_DEBUG_VM is not set 1158# CONFIG_DEBUG_VM is not set
1127# CONFIG_DEBUG_WRITECOUNT is not set 1159# CONFIG_DEBUG_WRITECOUNT is not set
1160# CONFIG_DEBUG_MEMORY_INIT is not set
1128# CONFIG_DEBUG_LIST is not set 1161# CONFIG_DEBUG_LIST is not set
1129# CONFIG_DEBUG_SG is not set 1162# CONFIG_DEBUG_SG is not set
1130# CONFIG_BOOT_PRINTK_DELAY is not set 1163# CONFIG_BOOT_PRINTK_DELAY is not set
1131# CONFIG_RCU_TORTURE_TEST is not set 1164# CONFIG_RCU_TORTURE_TEST is not set
1132# CONFIG_BACKTRACE_SELF_TEST is not set 1165# CONFIG_BACKTRACE_SELF_TEST is not set
1133# CONFIG_FAULT_INJECTION is not set 1166# CONFIG_FAULT_INJECTION is not set
1167# CONFIG_LATENCYTOP is not set
1168CONFIG_SYSCTL_SYSCALL_CHECK=y
1169CONFIG_HAVE_FTRACE=y
1170CONFIG_HAVE_DYNAMIC_FTRACE=y
1171# CONFIG_FTRACE is not set
1172# CONFIG_SCHED_TRACER is not set
1173# CONFIG_CONTEXT_SWITCH_TRACER is not set
1134# CONFIG_SAMPLES is not set 1174# CONFIG_SAMPLES is not set
1175CONFIG_HAVE_ARCH_KGDB=y
1176# CONFIG_KGDB is not set
1135# CONFIG_DEBUG_STACKOVERFLOW is not set 1177# CONFIG_DEBUG_STACKOVERFLOW is not set
1136# CONFIG_DEBUG_STACK_USAGE is not set 1178# CONFIG_DEBUG_STACK_USAGE is not set
1137# CONFIG_DEBUG_PAGEALLOC is not set 1179# CONFIG_DEBUG_PAGEALLOC is not set
1138# CONFIG_DEBUGGER is not set 1180# CONFIG_CODE_PATCHING_SELFTEST is not set
1181# CONFIG_FTR_FIXUP_SELFTEST is not set
1182# CONFIG_XMON is not set
1139# CONFIG_IRQSTACKS is not set 1183# CONFIG_IRQSTACKS is not set
1140# CONFIG_BDI_SWITCH is not set 1184# CONFIG_BDI_SWITCH is not set
1141# CONFIG_PPC_EARLY_DEBUG is not set 1185# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1189,6 +1233,10 @@ CONFIG_CRYPTO=y
1189# CONFIG_CRYPTO_MD4 is not set 1233# CONFIG_CRYPTO_MD4 is not set
1190# CONFIG_CRYPTO_MD5 is not set 1234# CONFIG_CRYPTO_MD5 is not set
1191# CONFIG_CRYPTO_MICHAEL_MIC is not set 1235# CONFIG_CRYPTO_MICHAEL_MIC is not set
1236# CONFIG_CRYPTO_RMD128 is not set
1237# CONFIG_CRYPTO_RMD160 is not set
1238# CONFIG_CRYPTO_RMD256 is not set
1239# CONFIG_CRYPTO_RMD320 is not set
1192# CONFIG_CRYPTO_SHA1 is not set 1240# CONFIG_CRYPTO_SHA1 is not set
1193# CONFIG_CRYPTO_SHA256 is not set 1241# CONFIG_CRYPTO_SHA256 is not set
1194# CONFIG_CRYPTO_SHA512 is not set 1242# CONFIG_CRYPTO_SHA512 is not set
@@ -1221,5 +1269,6 @@ CONFIG_CRYPTO=y
1221# CONFIG_CRYPTO_LZO is not set 1269# CONFIG_CRYPTO_LZO is not set
1222CONFIG_CRYPTO_HW=y 1270CONFIG_CRYPTO_HW=y
1223# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1271# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1272# CONFIG_CRYPTO_DEV_TALITOS is not set
1224# CONFIG_PPC_CLOCK is not set 1273# CONFIG_PPC_CLOCK is not set
1225# CONFIG_VIRTUALIZATION is not set 1274# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig
index 03120b5b52f..dcf9cfe28b5 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:41 2008 4# Thu Aug 21 00:52:42 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -89,7 +92,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 95# CONFIG_KALLSYMS is not set
94# CONFIG_HOTPLUG is not set 96# CONFIG_HOTPLUG is not set
95CONFIG_PRINTK=y 97CONFIG_PRINTK=y
@@ -112,10 +114,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 115# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 122# CONFIG_HAVE_DMA_ATTRS is not set
123# CONFIG_USE_GENERIC_SMP_HELPERS is not set
124CONFIG_HAVE_CLK=y
118CONFIG_PROC_PAGE_MONITOR=y 125CONFIG_PROC_PAGE_MONITOR=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 129# CONFIG_TINY_SHMEM is not set
@@ -126,6 +134,7 @@ CONFIG_BLOCK=y
126# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set 135# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set
129 138
130# 139#
131# IO Schedulers 140# IO Schedulers
@@ -144,8 +153,6 @@ CONFIG_CLASSIC_RCU=y
144# 153#
145# Platform support 154# Platform support
146# 155#
147# CONFIG_PPC_MPC512x is not set
148# CONFIG_PPC_MPC5121 is not set
149# CONFIG_PPC_CELL is not set 156# CONFIG_PPC_CELL is not set
150# CONFIG_PPC_CELL_NATIVE is not set 157# CONFIG_PPC_CELL_NATIVE is not set
151# CONFIG_PQ2ADS is not set 158# CONFIG_PQ2ADS is not set
@@ -154,11 +161,13 @@ CONFIG_MPC85xx=y
154# CONFIG_MPC8560_ADS is not set 161# CONFIG_MPC8560_ADS is not set
155# CONFIG_MPC85xx_CDS is not set 162# CONFIG_MPC85xx_CDS is not set
156# CONFIG_MPC85xx_MDS is not set 163# CONFIG_MPC85xx_MDS is not set
164# CONFIG_MPC8536_DS is not set
157# CONFIG_MPC85xx_DS is not set 165# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set 166# CONFIG_KSI8560 is not set
159# CONFIG_STX_GP3 is not set 167# CONFIG_STX_GP3 is not set
160# CONFIG_TQM8540 is not set 168# CONFIG_TQM8540 is not set
161# CONFIG_TQM8541 is not set 169# CONFIG_TQM8541 is not set
170# CONFIG_TQM8548 is not set
162CONFIG_TQM8555=y 171CONFIG_TQM8555=y
163# CONFIG_TQM8560 is not set 172# CONFIG_TQM8560 is not set
164# CONFIG_SBC8548 is not set 173# CONFIG_SBC8548 is not set
@@ -176,7 +185,6 @@ CONFIG_MPIC=y
176# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
177# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
178CONFIG_CPM2=y 187CONFIG_CPM2=y
179CONFIG_PPC_CPM_NEW_BINDING=y
180# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
181CONFIG_CPM=y 189CONFIG_CPM=y
182 190
@@ -216,6 +224,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
218CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y
219# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
220CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
221CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
@@ -223,6 +232,7 @@ CONFIG_VIRT_TO_BUS=y
223CONFIG_FORCE_MAX_ZONEORDER=11 232CONFIG_FORCE_MAX_ZONEORDER=11
224# CONFIG_PROC_DEVICETREE is not set 233# CONFIG_PROC_DEVICETREE is not set
225# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
235CONFIG_EXTRA_TARGETS=""
226# CONFIG_PM is not set 236# CONFIG_PM is not set
227CONFIG_SECCOMP=y 237CONFIG_SECCOMP=y
228CONFIG_ISA_DMA_API=y 238CONFIG_ISA_DMA_API=y
@@ -234,6 +244,7 @@ CONFIG_ZONE_DMA=y
234CONFIG_PPC_INDIRECT_PCI=y 244CONFIG_PPC_INDIRECT_PCI=y
235CONFIG_FSL_SOC=y 245CONFIG_FSL_SOC=y
236CONFIG_FSL_PCI=y 246CONFIG_FSL_PCI=y
247CONFIG_PPC_PCI_CHOICE=y
237CONFIG_PCI=y 248CONFIG_PCI=y
238CONFIG_PCI_DOMAINS=y 249CONFIG_PCI_DOMAINS=y
239CONFIG_PCI_SYSCALL=y 250CONFIG_PCI_SYSCALL=y
@@ -257,10 +268,6 @@ CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000 268CONFIG_PHYSICAL_START=0x00000000
258CONFIG_PHYSICAL_ALIGN=0x10000000 269CONFIG_PHYSICAL_ALIGN=0x10000000
259CONFIG_TASK_SIZE=0xc0000000 270CONFIG_TASK_SIZE=0xc0000000
260
261#
262# Networking
263#
264CONFIG_NET=y 271CONFIG_NET=y
265 272
266# 273#
@@ -432,6 +439,7 @@ CONFIG_MTD_CFI_UTIL=y
432# 439#
433# CONFIG_MTD_UBI is not set 440# CONFIG_MTD_UBI is not set
434CONFIG_OF_DEVICE=y 441CONFIG_OF_DEVICE=y
442CONFIG_OF_GPIO=y
435CONFIG_OF_I2C=y 443CONFIG_OF_I2C=y
436# CONFIG_PARPORT is not set 444# CONFIG_PARPORT is not set
437CONFIG_BLK_DEV=y 445CONFIG_BLK_DEV=y
@@ -451,20 +459,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
451# CONFIG_BLK_DEV_XIP is not set 459# CONFIG_BLK_DEV_XIP is not set
452# CONFIG_CDROM_PKTCDVD is not set 460# CONFIG_CDROM_PKTCDVD is not set
453# CONFIG_ATA_OVER_ETH is not set 461# CONFIG_ATA_OVER_ETH is not set
462# CONFIG_BLK_DEV_HD is not set
454CONFIG_MISC_DEVICES=y 463CONFIG_MISC_DEVICES=y
455# CONFIG_PHANTOM is not set 464# CONFIG_PHANTOM is not set
456# CONFIG_EEPROM_93CX6 is not set 465# CONFIG_EEPROM_93CX6 is not set
457# CONFIG_SGI_IOC4 is not set 466# CONFIG_SGI_IOC4 is not set
458# CONFIG_TIFM_CORE is not set 467# CONFIG_TIFM_CORE is not set
459# CONFIG_ENCLOSURE_SERVICES is not set 468# CONFIG_ENCLOSURE_SERVICES is not set
469# CONFIG_HP_ILO is not set
460CONFIG_HAVE_IDE=y 470CONFIG_HAVE_IDE=y
461CONFIG_IDE=y 471CONFIG_IDE=y
462CONFIG_IDE_MAX_HWIFS=4
463CONFIG_BLK_DEV_IDE=y 472CONFIG_BLK_DEV_IDE=y
464 473
465# 474#
466# Please see Documentation/ide/ide.txt for help/info on IDE drives 475# Please see Documentation/ide/ide.txt for help/info on IDE drives
467# 476#
477CONFIG_IDE_TIMINGS=y
468# CONFIG_BLK_DEV_IDE_SATA is not set 478# CONFIG_BLK_DEV_IDE_SATA is not set
469CONFIG_BLK_DEV_IDEDISK=y 479CONFIG_BLK_DEV_IDEDISK=y
470# CONFIG_IDEDISK_MULTI_MODE is not set 480# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -477,7 +487,6 @@ CONFIG_IDE_PROC_FS=y
477# 487#
478# IDE chipset support/bugfixes 488# IDE chipset support/bugfixes
479# 489#
480CONFIG_IDE_GENERIC=y
481# CONFIG_BLK_DEV_PLATFORM is not set 490# CONFIG_BLK_DEV_PLATFORM is not set
482CONFIG_BLK_DEV_IDEDMA_SFF=y 491CONFIG_BLK_DEV_IDEDMA_SFF=y
483 492
@@ -495,10 +504,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
495# CONFIG_BLK_DEV_AMD74XX is not set 504# CONFIG_BLK_DEV_AMD74XX is not set
496# CONFIG_BLK_DEV_CMD64X is not set 505# CONFIG_BLK_DEV_CMD64X is not set
497# CONFIG_BLK_DEV_TRIFLEX is not set 506# CONFIG_BLK_DEV_TRIFLEX is not set
498# CONFIG_BLK_DEV_CY82C693 is not set
499# CONFIG_BLK_DEV_CS5520 is not set 507# CONFIG_BLK_DEV_CS5520 is not set
500# CONFIG_BLK_DEV_CS5530 is not set 508# CONFIG_BLK_DEV_CS5530 is not set
501# CONFIG_BLK_DEV_HPT34X is not set
502# CONFIG_BLK_DEV_HPT366 is not set 509# CONFIG_BLK_DEV_HPT366 is not set
503# CONFIG_BLK_DEV_JMICRON is not set 510# CONFIG_BLK_DEV_JMICRON is not set
504# CONFIG_BLK_DEV_SC1200 is not set 511# CONFIG_BLK_DEV_SC1200 is not set
@@ -516,8 +523,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
516CONFIG_BLK_DEV_VIA82CXXX=y 523CONFIG_BLK_DEV_VIA82CXXX=y
517# CONFIG_BLK_DEV_TC86C001 is not set 524# CONFIG_BLK_DEV_TC86C001 is not set
518CONFIG_BLK_DEV_IDEDMA=y 525CONFIG_BLK_DEV_IDEDMA=y
519# CONFIG_BLK_DEV_HD_ONLY is not set
520# CONFIG_BLK_DEV_HD is not set
521 526
522# 527#
523# SCSI device support 528# SCSI device support
@@ -533,12 +538,15 @@ CONFIG_BLK_DEV_IDEDMA=y
533# 538#
534# IEEE 1394 (FireWire) support 539# IEEE 1394 (FireWire) support
535# 540#
541
542#
543# Enable only one of the two stacks, unless you know what you are doing
544#
536# CONFIG_FIREWIRE is not set 545# CONFIG_FIREWIRE is not set
537# CONFIG_IEEE1394 is not set 546# CONFIG_IEEE1394 is not set
538# CONFIG_I2O is not set 547# CONFIG_I2O is not set
539# CONFIG_MACINTOSH_DRIVERS is not set 548# CONFIG_MACINTOSH_DRIVERS is not set
540CONFIG_NETDEVICES=y 549CONFIG_NETDEVICES=y
541# CONFIG_NETDEVICES_MULTIQUEUE is not set
542# CONFIG_DUMMY is not set 550# CONFIG_DUMMY is not set
543# CONFIG_BONDING is not set 551# CONFIG_BONDING is not set
544# CONFIG_MACVLAN is not set 552# CONFIG_MACVLAN is not set
@@ -601,7 +609,6 @@ CONFIG_NETDEV_1000=y
601# CONFIG_DL2K is not set 609# CONFIG_DL2K is not set
602# CONFIG_E1000 is not set 610# CONFIG_E1000 is not set
603# CONFIG_E1000E is not set 611# CONFIG_E1000E is not set
604# CONFIG_E1000E_ENABLED is not set
605# CONFIG_IP1000 is not set 612# CONFIG_IP1000 is not set
606# CONFIG_IGB is not set 613# CONFIG_IGB is not set
607# CONFIG_NS83820 is not set 614# CONFIG_NS83820 is not set
@@ -615,9 +622,9 @@ CONFIG_NETDEV_1000=y
615# CONFIG_TIGON3 is not set 622# CONFIG_TIGON3 is not set
616# CONFIG_BNX2 is not set 623# CONFIG_BNX2 is not set
617CONFIG_GIANFAR=y 624CONFIG_GIANFAR=y
618CONFIG_GFAR_NAPI=y
619# CONFIG_QLA3XXX is not set 625# CONFIG_QLA3XXX is not set
620# CONFIG_ATL1 is not set 626# CONFIG_ATL1 is not set
627# CONFIG_ATL1E is not set
621CONFIG_NETDEV_10000=y 628CONFIG_NETDEV_10000=y
622# CONFIG_CHELSIO_T1 is not set 629# CONFIG_CHELSIO_T1 is not set
623# CONFIG_CHELSIO_T3 is not set 630# CONFIG_CHELSIO_T3 is not set
@@ -732,42 +739,66 @@ CONFIG_DEVPORT=y
732CONFIG_I2C=y 739CONFIG_I2C=y
733CONFIG_I2C_BOARDINFO=y 740CONFIG_I2C_BOARDINFO=y
734CONFIG_I2C_CHARDEV=y 741CONFIG_I2C_CHARDEV=y
742CONFIG_I2C_HELPER_AUTO=y
735 743
736# 744#
737# I2C Hardware Bus support 745# I2C Hardware Bus support
738# 746#
747
748#
749# PC SMBus host controller drivers
750#
739# CONFIG_I2C_ALI1535 is not set 751# CONFIG_I2C_ALI1535 is not set
740# CONFIG_I2C_ALI1563 is not set 752# CONFIG_I2C_ALI1563 is not set
741# CONFIG_I2C_ALI15X3 is not set 753# CONFIG_I2C_ALI15X3 is not set
742# CONFIG_I2C_AMD756 is not set 754# CONFIG_I2C_AMD756 is not set
743# CONFIG_I2C_AMD8111 is not set 755# CONFIG_I2C_AMD8111 is not set
744# CONFIG_I2C_I801 is not set 756# CONFIG_I2C_I801 is not set
745# CONFIG_I2C_I810 is not set 757# CONFIG_I2C_ISCH is not set
746# CONFIG_I2C_PIIX4 is not set 758# CONFIG_I2C_PIIX4 is not set
747CONFIG_I2C_MPC=y
748# CONFIG_I2C_NFORCE2 is not set 759# CONFIG_I2C_NFORCE2 is not set
749# CONFIG_I2C_OCORES is not set
750# CONFIG_I2C_PARPORT_LIGHT is not set
751# CONFIG_I2C_PROSAVAGE is not set
752# CONFIG_I2C_SAVAGE4 is not set
753# CONFIG_I2C_SIMTEC is not set
754# CONFIG_I2C_SIS5595 is not set 760# CONFIG_I2C_SIS5595 is not set
755# CONFIG_I2C_SIS630 is not set 761# CONFIG_I2C_SIS630 is not set
756# CONFIG_I2C_SIS96X is not set 762# CONFIG_I2C_SIS96X is not set
757# CONFIG_I2C_TAOS_EVM is not set
758# CONFIG_I2C_VIA is not set 763# CONFIG_I2C_VIA is not set
759# CONFIG_I2C_VIAPRO is not set 764# CONFIG_I2C_VIAPRO is not set
765
766#
767# I2C system bus drivers (mostly embedded / system-on-chip)
768#
769# CONFIG_I2C_CPM is not set
770# CONFIG_I2C_GPIO is not set
771CONFIG_I2C_MPC=y
772# CONFIG_I2C_OCORES is not set
773# CONFIG_I2C_SIMTEC is not set
774
775#
776# External I2C/SMBus adapter drivers
777#
778# CONFIG_I2C_PARPORT_LIGHT is not set
779# CONFIG_I2C_TAOS_EVM is not set
780
781#
782# Graphics adapter I2C/DDC channel drivers
783#
760# CONFIG_I2C_VOODOO3 is not set 784# CONFIG_I2C_VOODOO3 is not set
785
786#
787# Other I2C/SMBus bus drivers
788#
761# CONFIG_I2C_PCA_PLATFORM is not set 789# CONFIG_I2C_PCA_PLATFORM is not set
762 790
763# 791#
764# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
765# 793#
766# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
795# CONFIG_AT24 is not set
767# CONFIG_SENSORS_EEPROM is not set 796# CONFIG_SENSORS_EEPROM is not set
768# CONFIG_SENSORS_PCF8574 is not set 797# CONFIG_SENSORS_PCF8574 is not set
769# CONFIG_PCF8575 is not set 798# CONFIG_PCF8575 is not set
799# CONFIG_SENSORS_PCA9539 is not set
770# CONFIG_SENSORS_PCF8591 is not set 800# CONFIG_SENSORS_PCF8591 is not set
801# CONFIG_TPS65010 is not set
771# CONFIG_SENSORS_MAX6875 is not set 802# CONFIG_SENSORS_MAX6875 is not set
772# CONFIG_SENSORS_TSL2550 is not set 803# CONFIG_SENSORS_TSL2550 is not set
773# CONFIG_I2C_DEBUG_CORE is not set 804# CONFIG_I2C_DEBUG_CORE is not set
@@ -775,10 +806,31 @@ CONFIG_I2C_MPC=y
775# CONFIG_I2C_DEBUG_BUS is not set 806# CONFIG_I2C_DEBUG_BUS is not set
776# CONFIG_I2C_DEBUG_CHIP is not set 807# CONFIG_I2C_DEBUG_CHIP is not set
777# CONFIG_SPI is not set 808# CONFIG_SPI is not set
809CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
810CONFIG_ARCH_REQUIRE_GPIOLIB=y
811CONFIG_GPIOLIB=y
812# CONFIG_GPIO_SYSFS is not set
813
814#
815# I2C GPIO expanders:
816#
817# CONFIG_GPIO_MAX732X is not set
818# CONFIG_GPIO_PCA953X is not set
819# CONFIG_GPIO_PCF857X is not set
820
821#
822# PCI GPIO expanders:
823#
824# CONFIG_GPIO_BT8XX is not set
825
826#
827# SPI GPIO expanders:
828#
778# CONFIG_W1 is not set 829# CONFIG_W1 is not set
779# CONFIG_POWER_SUPPLY is not set 830# CONFIG_POWER_SUPPLY is not set
780CONFIG_HWMON=y 831CONFIG_HWMON=y
781# CONFIG_HWMON_VID is not set 832# CONFIG_HWMON_VID is not set
833# CONFIG_SENSORS_AD7414 is not set
782# CONFIG_SENSORS_AD7418 is not set 834# CONFIG_SENSORS_AD7418 is not set
783# CONFIG_SENSORS_ADM1021 is not set 835# CONFIG_SENSORS_ADM1021 is not set
784# CONFIG_SENSORS_ADM1025 is not set 836# CONFIG_SENSORS_ADM1025 is not set
@@ -832,6 +884,7 @@ CONFIG_SENSORS_LM75=y
832# CONFIG_SENSORS_W83627EHF is not set 884# CONFIG_SENSORS_W83627EHF is not set
833CONFIG_HWMON_DEBUG_CHIP=y 885CONFIG_HWMON_DEBUG_CHIP=y
834# CONFIG_THERMAL is not set 886# CONFIG_THERMAL is not set
887# CONFIG_THERMAL_HWMON is not set
835# CONFIG_WATCHDOG is not set 888# CONFIG_WATCHDOG is not set
836 889
837# 890#
@@ -843,8 +896,10 @@ CONFIG_SSB_POSSIBLE=y
843# 896#
844# Multifunction device drivers 897# Multifunction device drivers
845# 898#
899# CONFIG_MFD_CORE is not set
846# CONFIG_MFD_SM501 is not set 900# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set 901# CONFIG_HTC_PASIC3 is not set
902# CONFIG_MFD_TMIO is not set
848 903
849# 904#
850# Multimedia devices 905# Multimedia devices
@@ -876,10 +931,6 @@ CONFIG_DAB=y
876# Display device support 931# Display device support
877# 932#
878# CONFIG_DISPLAY_SUPPORT is not set 933# CONFIG_DISPLAY_SUPPORT is not set
879
880#
881# Sound
882#
883# CONFIG_SOUND is not set 934# CONFIG_SOUND is not set
884CONFIG_HID_SUPPORT=y 935CONFIG_HID_SUPPORT=y
885CONFIG_HID=y 936CONFIG_HID=y
@@ -894,6 +945,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
894# CONFIG_USB_OTG_BLACKLIST_HUB is not set 945# CONFIG_USB_OTG_BLACKLIST_HUB is not set
895 946
896# 947#
948# Enable Host or Gadget support to see Inventra options
949#
950
951#
897# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 952# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
898# 953#
899# CONFIG_USB_GADGET is not set 954# CONFIG_USB_GADGET is not set
@@ -982,6 +1037,7 @@ CONFIG_JFFS2_RTIME=y
982CONFIG_CRAMFS=y 1037CONFIG_CRAMFS=y
983# CONFIG_VXFS_FS is not set 1038# CONFIG_VXFS_FS is not set
984# CONFIG_MINIX_FS is not set 1039# CONFIG_MINIX_FS is not set
1040# CONFIG_OMFS_FS is not set
985# CONFIG_HPFS_FS is not set 1041# CONFIG_HPFS_FS is not set
986# CONFIG_QNX4FS_FS is not set 1042# CONFIG_QNX4FS_FS is not set
987# CONFIG_ROMFS_FS is not set 1043# CONFIG_ROMFS_FS is not set
@@ -991,12 +1047,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
991CONFIG_NFS_FS=y 1047CONFIG_NFS_FS=y
992# CONFIG_NFS_V3 is not set 1048# CONFIG_NFS_V3 is not set
993# CONFIG_NFS_V4 is not set 1049# CONFIG_NFS_V4 is not set
994# CONFIG_NFSD is not set
995CONFIG_ROOT_NFS=y 1050CONFIG_ROOT_NFS=y
1051# CONFIG_NFSD is not set
996CONFIG_LOCKD=y 1052CONFIG_LOCKD=y
997CONFIG_NFS_COMMON=y 1053CONFIG_NFS_COMMON=y
998CONFIG_SUNRPC=y 1054CONFIG_SUNRPC=y
999# CONFIG_SUNRPC_BIND34 is not set
1000# CONFIG_RPCSEC_GSS_KRB5 is not set 1055# CONFIG_RPCSEC_GSS_KRB5 is not set
1001# CONFIG_RPCSEC_GSS_SPKM3 is not set 1056# CONFIG_RPCSEC_GSS_SPKM3 is not set
1002# CONFIG_SMB_FS is not set 1057# CONFIG_SMB_FS is not set
@@ -1032,6 +1087,7 @@ CONFIG_BITREVERSE=y
1032# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1087# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1033# CONFIG_CRC_CCITT is not set 1088# CONFIG_CRC_CCITT is not set
1034# CONFIG_CRC16 is not set 1089# CONFIG_CRC16 is not set
1090# CONFIG_CRC_T10DIF is not set
1035# CONFIG_CRC_ITU_T is not set 1091# CONFIG_CRC_ITU_T is not set
1036CONFIG_CRC32=y 1092CONFIG_CRC32=y
1037# CONFIG_CRC7 is not set 1093# CONFIG_CRC7 is not set
@@ -1059,8 +1115,16 @@ CONFIG_FRAME_WARN=1024
1059# CONFIG_SLUB_DEBUG_ON is not set 1115# CONFIG_SLUB_DEBUG_ON is not set
1060# CONFIG_SLUB_STATS is not set 1116# CONFIG_SLUB_STATS is not set
1061# CONFIG_DEBUG_BUGVERBOSE is not set 1117# CONFIG_DEBUG_BUGVERBOSE is not set
1118# CONFIG_DEBUG_MEMORY_INIT is not set
1119# CONFIG_LATENCYTOP is not set
1120CONFIG_SYSCTL_SYSCALL_CHECK=y
1121CONFIG_HAVE_FTRACE=y
1122CONFIG_HAVE_DYNAMIC_FTRACE=y
1123# CONFIG_FTRACE is not set
1124# CONFIG_SCHED_TRACER is not set
1125# CONFIG_CONTEXT_SWITCH_TRACER is not set
1062# CONFIG_SAMPLES is not set 1126# CONFIG_SAMPLES is not set
1063# CONFIG_KGDB_CONSOLE is not set 1127CONFIG_HAVE_ARCH_KGDB=y
1064# CONFIG_IRQSTACKS is not set 1128# CONFIG_IRQSTACKS is not set
1065# CONFIG_PPC_EARLY_DEBUG is not set 1129# CONFIG_PPC_EARLY_DEBUG is not set
1066 1130
@@ -1112,6 +1176,10 @@ CONFIG_CRYPTO=y
1112# CONFIG_CRYPTO_MD4 is not set 1176# CONFIG_CRYPTO_MD4 is not set
1113# CONFIG_CRYPTO_MD5 is not set 1177# CONFIG_CRYPTO_MD5 is not set
1114# CONFIG_CRYPTO_MICHAEL_MIC is not set 1178# CONFIG_CRYPTO_MICHAEL_MIC is not set
1179# CONFIG_CRYPTO_RMD128 is not set
1180# CONFIG_CRYPTO_RMD160 is not set
1181# CONFIG_CRYPTO_RMD256 is not set
1182# CONFIG_CRYPTO_RMD320 is not set
1115# CONFIG_CRYPTO_SHA1 is not set 1183# CONFIG_CRYPTO_SHA1 is not set
1116# CONFIG_CRYPTO_SHA256 is not set 1184# CONFIG_CRYPTO_SHA256 is not set
1117# CONFIG_CRYPTO_SHA512 is not set 1185# CONFIG_CRYPTO_SHA512 is not set
@@ -1144,6 +1212,7 @@ CONFIG_CRYPTO=y
1144# CONFIG_CRYPTO_LZO is not set 1212# CONFIG_CRYPTO_LZO is not set
1145CONFIG_CRYPTO_HW=y 1213CONFIG_CRYPTO_HW=y
1146# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1214# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1147# CONFIG_PPC_CLOCK is not set 1215# CONFIG_CRYPTO_DEV_TALITOS is not set
1216CONFIG_PPC_CLOCK=y
1148CONFIG_PPC_LIB_RHEAP=y 1217CONFIG_PPC_LIB_RHEAP=y
1149# CONFIG_VIRTUALIZATION is not set 1218# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig
index 3113257edf5..8d676629cdb 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:42 2008 4# Thu Aug 21 00:52:43 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -89,7 +92,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 95# CONFIG_KALLSYMS is not set
94# CONFIG_HOTPLUG is not set 96# CONFIG_HOTPLUG is not set
95CONFIG_PRINTK=y 97CONFIG_PRINTK=y
@@ -112,10 +114,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 115# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 122# CONFIG_HAVE_DMA_ATTRS is not set
123# CONFIG_USE_GENERIC_SMP_HELPERS is not set
124CONFIG_HAVE_CLK=y
118CONFIG_PROC_PAGE_MONITOR=y 125CONFIG_PROC_PAGE_MONITOR=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 129# CONFIG_TINY_SHMEM is not set
@@ -126,6 +134,7 @@ CONFIG_BLOCK=y
126# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set 135# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set
129 138
130# 139#
131# IO Schedulers 140# IO Schedulers
@@ -144,8 +153,6 @@ CONFIG_CLASSIC_RCU=y
144# 153#
145# Platform support 154# Platform support
146# 155#
147# CONFIG_PPC_MPC512x is not set
148# CONFIG_PPC_MPC5121 is not set
149# CONFIG_PPC_CELL is not set 156# CONFIG_PPC_CELL is not set
150# CONFIG_PPC_CELL_NATIVE is not set 157# CONFIG_PPC_CELL_NATIVE is not set
151# CONFIG_PQ2ADS is not set 158# CONFIG_PQ2ADS is not set
@@ -154,11 +161,13 @@ CONFIG_MPC85xx=y
154# CONFIG_MPC8560_ADS is not set 161# CONFIG_MPC8560_ADS is not set
155# CONFIG_MPC85xx_CDS is not set 162# CONFIG_MPC85xx_CDS is not set
156# CONFIG_MPC85xx_MDS is not set 163# CONFIG_MPC85xx_MDS is not set
164# CONFIG_MPC8536_DS is not set
157# CONFIG_MPC85xx_DS is not set 165# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set 166# CONFIG_KSI8560 is not set
159# CONFIG_STX_GP3 is not set 167# CONFIG_STX_GP3 is not set
160# CONFIG_TQM8540 is not set 168# CONFIG_TQM8540 is not set
161# CONFIG_TQM8541 is not set 169# CONFIG_TQM8541 is not set
170# CONFIG_TQM8548 is not set
162# CONFIG_TQM8555 is not set 171# CONFIG_TQM8555 is not set
163CONFIG_TQM8560=y 172CONFIG_TQM8560=y
164# CONFIG_SBC8548 is not set 173# CONFIG_SBC8548 is not set
@@ -176,7 +185,6 @@ CONFIG_MPIC=y
176# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
177# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
178CONFIG_CPM2=y 187CONFIG_CPM2=y
179CONFIG_PPC_CPM_NEW_BINDING=y
180# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
181CONFIG_CPM=y 189CONFIG_CPM=y
182 190
@@ -216,6 +224,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
218CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y
219# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
220CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
221CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
@@ -223,6 +232,7 @@ CONFIG_VIRT_TO_BUS=y
223CONFIG_FORCE_MAX_ZONEORDER=11 232CONFIG_FORCE_MAX_ZONEORDER=11
224# CONFIG_PROC_DEVICETREE is not set 233# CONFIG_PROC_DEVICETREE is not set
225# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
235CONFIG_EXTRA_TARGETS=""
226# CONFIG_PM is not set 236# CONFIG_PM is not set
227CONFIG_SECCOMP=y 237CONFIG_SECCOMP=y
228CONFIG_ISA_DMA_API=y 238CONFIG_ISA_DMA_API=y
@@ -234,6 +244,7 @@ CONFIG_ZONE_DMA=y
234CONFIG_PPC_INDIRECT_PCI=y 244CONFIG_PPC_INDIRECT_PCI=y
235CONFIG_FSL_SOC=y 245CONFIG_FSL_SOC=y
236CONFIG_FSL_PCI=y 246CONFIG_FSL_PCI=y
247CONFIG_PPC_PCI_CHOICE=y
237CONFIG_PCI=y 248CONFIG_PCI=y
238CONFIG_PCI_DOMAINS=y 249CONFIG_PCI_DOMAINS=y
239CONFIG_PCI_SYSCALL=y 250CONFIG_PCI_SYSCALL=y
@@ -257,10 +268,6 @@ CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000 268CONFIG_PHYSICAL_START=0x00000000
258CONFIG_PHYSICAL_ALIGN=0x10000000 269CONFIG_PHYSICAL_ALIGN=0x10000000
259CONFIG_TASK_SIZE=0xc0000000 270CONFIG_TASK_SIZE=0xc0000000
260
261#
262# Networking
263#
264CONFIG_NET=y 271CONFIG_NET=y
265 272
266# 273#
@@ -432,6 +439,7 @@ CONFIG_MTD_CFI_UTIL=y
432# 439#
433# CONFIG_MTD_UBI is not set 440# CONFIG_MTD_UBI is not set
434CONFIG_OF_DEVICE=y 441CONFIG_OF_DEVICE=y
442CONFIG_OF_GPIO=y
435CONFIG_OF_I2C=y 443CONFIG_OF_I2C=y
436# CONFIG_PARPORT is not set 444# CONFIG_PARPORT is not set
437CONFIG_BLK_DEV=y 445CONFIG_BLK_DEV=y
@@ -451,20 +459,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
451# CONFIG_BLK_DEV_XIP is not set 459# CONFIG_BLK_DEV_XIP is not set
452# CONFIG_CDROM_PKTCDVD is not set 460# CONFIG_CDROM_PKTCDVD is not set
453# CONFIG_ATA_OVER_ETH is not set 461# CONFIG_ATA_OVER_ETH is not set
462# CONFIG_BLK_DEV_HD is not set
454CONFIG_MISC_DEVICES=y 463CONFIG_MISC_DEVICES=y
455# CONFIG_PHANTOM is not set 464# CONFIG_PHANTOM is not set
456# CONFIG_EEPROM_93CX6 is not set 465# CONFIG_EEPROM_93CX6 is not set
457# CONFIG_SGI_IOC4 is not set 466# CONFIG_SGI_IOC4 is not set
458# CONFIG_TIFM_CORE is not set 467# CONFIG_TIFM_CORE is not set
459# CONFIG_ENCLOSURE_SERVICES is not set 468# CONFIG_ENCLOSURE_SERVICES is not set
469# CONFIG_HP_ILO is not set
460CONFIG_HAVE_IDE=y 470CONFIG_HAVE_IDE=y
461CONFIG_IDE=y 471CONFIG_IDE=y
462CONFIG_IDE_MAX_HWIFS=4
463CONFIG_BLK_DEV_IDE=y 472CONFIG_BLK_DEV_IDE=y
464 473
465# 474#
466# Please see Documentation/ide/ide.txt for help/info on IDE drives 475# Please see Documentation/ide/ide.txt for help/info on IDE drives
467# 476#
477CONFIG_IDE_TIMINGS=y
468# CONFIG_BLK_DEV_IDE_SATA is not set 478# CONFIG_BLK_DEV_IDE_SATA is not set
469CONFIG_BLK_DEV_IDEDISK=y 479CONFIG_BLK_DEV_IDEDISK=y
470# CONFIG_IDEDISK_MULTI_MODE is not set 480# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -477,7 +487,6 @@ CONFIG_IDE_PROC_FS=y
477# 487#
478# IDE chipset support/bugfixes 488# IDE chipset support/bugfixes
479# 489#
480CONFIG_IDE_GENERIC=y
481# CONFIG_BLK_DEV_PLATFORM is not set 490# CONFIG_BLK_DEV_PLATFORM is not set
482CONFIG_BLK_DEV_IDEDMA_SFF=y 491CONFIG_BLK_DEV_IDEDMA_SFF=y
483 492
@@ -495,10 +504,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
495# CONFIG_BLK_DEV_AMD74XX is not set 504# CONFIG_BLK_DEV_AMD74XX is not set
496# CONFIG_BLK_DEV_CMD64X is not set 505# CONFIG_BLK_DEV_CMD64X is not set
497# CONFIG_BLK_DEV_TRIFLEX is not set 506# CONFIG_BLK_DEV_TRIFLEX is not set
498# CONFIG_BLK_DEV_CY82C693 is not set
499# CONFIG_BLK_DEV_CS5520 is not set 507# CONFIG_BLK_DEV_CS5520 is not set
500# CONFIG_BLK_DEV_CS5530 is not set 508# CONFIG_BLK_DEV_CS5530 is not set
501# CONFIG_BLK_DEV_HPT34X is not set
502# CONFIG_BLK_DEV_HPT366 is not set 509# CONFIG_BLK_DEV_HPT366 is not set
503# CONFIG_BLK_DEV_JMICRON is not set 510# CONFIG_BLK_DEV_JMICRON is not set
504# CONFIG_BLK_DEV_SC1200 is not set 511# CONFIG_BLK_DEV_SC1200 is not set
@@ -516,8 +523,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
516CONFIG_BLK_DEV_VIA82CXXX=y 523CONFIG_BLK_DEV_VIA82CXXX=y
517# CONFIG_BLK_DEV_TC86C001 is not set 524# CONFIG_BLK_DEV_TC86C001 is not set
518CONFIG_BLK_DEV_IDEDMA=y 525CONFIG_BLK_DEV_IDEDMA=y
519# CONFIG_BLK_DEV_HD_ONLY is not set
520# CONFIG_BLK_DEV_HD is not set
521 526
522# 527#
523# SCSI device support 528# SCSI device support
@@ -533,12 +538,15 @@ CONFIG_BLK_DEV_IDEDMA=y
533# 538#
534# IEEE 1394 (FireWire) support 539# IEEE 1394 (FireWire) support
535# 540#
541
542#
543# Enable only one of the two stacks, unless you know what you are doing
544#
536# CONFIG_FIREWIRE is not set 545# CONFIG_FIREWIRE is not set
537# CONFIG_IEEE1394 is not set 546# CONFIG_IEEE1394 is not set
538# CONFIG_I2O is not set 547# CONFIG_I2O is not set
539# CONFIG_MACINTOSH_DRIVERS is not set 548# CONFIG_MACINTOSH_DRIVERS is not set
540CONFIG_NETDEVICES=y 549CONFIG_NETDEVICES=y
541# CONFIG_NETDEVICES_MULTIQUEUE is not set
542# CONFIG_DUMMY is not set 550# CONFIG_DUMMY is not set
543# CONFIG_BONDING is not set 551# CONFIG_BONDING is not set
544# CONFIG_MACVLAN is not set 552# CONFIG_MACVLAN is not set
@@ -601,7 +609,6 @@ CONFIG_NETDEV_1000=y
601# CONFIG_DL2K is not set 609# CONFIG_DL2K is not set
602# CONFIG_E1000 is not set 610# CONFIG_E1000 is not set
603# CONFIG_E1000E is not set 611# CONFIG_E1000E is not set
604# CONFIG_E1000E_ENABLED is not set
605# CONFIG_IP1000 is not set 612# CONFIG_IP1000 is not set
606# CONFIG_IGB is not set 613# CONFIG_IGB is not set
607# CONFIG_NS83820 is not set 614# CONFIG_NS83820 is not set
@@ -615,9 +622,9 @@ CONFIG_NETDEV_1000=y
615# CONFIG_TIGON3 is not set 622# CONFIG_TIGON3 is not set
616# CONFIG_BNX2 is not set 623# CONFIG_BNX2 is not set
617CONFIG_GIANFAR=y 624CONFIG_GIANFAR=y
618CONFIG_GFAR_NAPI=y
619# CONFIG_QLA3XXX is not set 625# CONFIG_QLA3XXX is not set
620# CONFIG_ATL1 is not set 626# CONFIG_ATL1 is not set
627# CONFIG_ATL1E is not set
621CONFIG_NETDEV_10000=y 628CONFIG_NETDEV_10000=y
622# CONFIG_CHELSIO_T1 is not set 629# CONFIG_CHELSIO_T1 is not set
623# CONFIG_CHELSIO_T3 is not set 630# CONFIG_CHELSIO_T3 is not set
@@ -732,42 +739,66 @@ CONFIG_DEVPORT=y
732CONFIG_I2C=y 739CONFIG_I2C=y
733CONFIG_I2C_BOARDINFO=y 740CONFIG_I2C_BOARDINFO=y
734CONFIG_I2C_CHARDEV=y 741CONFIG_I2C_CHARDEV=y
742CONFIG_I2C_HELPER_AUTO=y
735 743
736# 744#
737# I2C Hardware Bus support 745# I2C Hardware Bus support
738# 746#
747
748#
749# PC SMBus host controller drivers
750#
739# CONFIG_I2C_ALI1535 is not set 751# CONFIG_I2C_ALI1535 is not set
740# CONFIG_I2C_ALI1563 is not set 752# CONFIG_I2C_ALI1563 is not set
741# CONFIG_I2C_ALI15X3 is not set 753# CONFIG_I2C_ALI15X3 is not set
742# CONFIG_I2C_AMD756 is not set 754# CONFIG_I2C_AMD756 is not set
743# CONFIG_I2C_AMD8111 is not set 755# CONFIG_I2C_AMD8111 is not set
744# CONFIG_I2C_I801 is not set 756# CONFIG_I2C_I801 is not set
745# CONFIG_I2C_I810 is not set 757# CONFIG_I2C_ISCH is not set
746# CONFIG_I2C_PIIX4 is not set 758# CONFIG_I2C_PIIX4 is not set
747CONFIG_I2C_MPC=y
748# CONFIG_I2C_NFORCE2 is not set 759# CONFIG_I2C_NFORCE2 is not set
749# CONFIG_I2C_OCORES is not set
750# CONFIG_I2C_PARPORT_LIGHT is not set
751# CONFIG_I2C_PROSAVAGE is not set
752# CONFIG_I2C_SAVAGE4 is not set
753# CONFIG_I2C_SIMTEC is not set
754# CONFIG_I2C_SIS5595 is not set 760# CONFIG_I2C_SIS5595 is not set
755# CONFIG_I2C_SIS630 is not set 761# CONFIG_I2C_SIS630 is not set
756# CONFIG_I2C_SIS96X is not set 762# CONFIG_I2C_SIS96X is not set
757# CONFIG_I2C_TAOS_EVM is not set
758# CONFIG_I2C_VIA is not set 763# CONFIG_I2C_VIA is not set
759# CONFIG_I2C_VIAPRO is not set 764# CONFIG_I2C_VIAPRO is not set
765
766#
767# I2C system bus drivers (mostly embedded / system-on-chip)
768#
769# CONFIG_I2C_CPM is not set
770# CONFIG_I2C_GPIO is not set
771CONFIG_I2C_MPC=y
772# CONFIG_I2C_OCORES is not set
773# CONFIG_I2C_SIMTEC is not set
774
775#
776# External I2C/SMBus adapter drivers
777#
778# CONFIG_I2C_PARPORT_LIGHT is not set
779# CONFIG_I2C_TAOS_EVM is not set
780
781#
782# Graphics adapter I2C/DDC channel drivers
783#
760# CONFIG_I2C_VOODOO3 is not set 784# CONFIG_I2C_VOODOO3 is not set
785
786#
787# Other I2C/SMBus bus drivers
788#
761# CONFIG_I2C_PCA_PLATFORM is not set 789# CONFIG_I2C_PCA_PLATFORM is not set
762 790
763# 791#
764# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
765# 793#
766# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
795# CONFIG_AT24 is not set
767# CONFIG_SENSORS_EEPROM is not set 796# CONFIG_SENSORS_EEPROM is not set
768# CONFIG_SENSORS_PCF8574 is not set 797# CONFIG_SENSORS_PCF8574 is not set
769# CONFIG_PCF8575 is not set 798# CONFIG_PCF8575 is not set
799# CONFIG_SENSORS_PCA9539 is not set
770# CONFIG_SENSORS_PCF8591 is not set 800# CONFIG_SENSORS_PCF8591 is not set
801# CONFIG_TPS65010 is not set
771# CONFIG_SENSORS_MAX6875 is not set 802# CONFIG_SENSORS_MAX6875 is not set
772# CONFIG_SENSORS_TSL2550 is not set 803# CONFIG_SENSORS_TSL2550 is not set
773# CONFIG_I2C_DEBUG_CORE is not set 804# CONFIG_I2C_DEBUG_CORE is not set
@@ -775,10 +806,31 @@ CONFIG_I2C_MPC=y
775# CONFIG_I2C_DEBUG_BUS is not set 806# CONFIG_I2C_DEBUG_BUS is not set
776# CONFIG_I2C_DEBUG_CHIP is not set 807# CONFIG_I2C_DEBUG_CHIP is not set
777# CONFIG_SPI is not set 808# CONFIG_SPI is not set
809CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
810CONFIG_ARCH_REQUIRE_GPIOLIB=y
811CONFIG_GPIOLIB=y
812# CONFIG_GPIO_SYSFS is not set
813
814#
815# I2C GPIO expanders:
816#
817# CONFIG_GPIO_MAX732X is not set
818# CONFIG_GPIO_PCA953X is not set
819# CONFIG_GPIO_PCF857X is not set
820
821#
822# PCI GPIO expanders:
823#
824# CONFIG_GPIO_BT8XX is not set
825
826#
827# SPI GPIO expanders:
828#
778# CONFIG_W1 is not set 829# CONFIG_W1 is not set
779# CONFIG_POWER_SUPPLY is not set 830# CONFIG_POWER_SUPPLY is not set
780CONFIG_HWMON=y 831CONFIG_HWMON=y
781# CONFIG_HWMON_VID is not set 832# CONFIG_HWMON_VID is not set
833# CONFIG_SENSORS_AD7414 is not set
782# CONFIG_SENSORS_AD7418 is not set 834# CONFIG_SENSORS_AD7418 is not set
783# CONFIG_SENSORS_ADM1021 is not set 835# CONFIG_SENSORS_ADM1021 is not set
784# CONFIG_SENSORS_ADM1025 is not set 836# CONFIG_SENSORS_ADM1025 is not set
@@ -832,6 +884,7 @@ CONFIG_SENSORS_LM75=y
832# CONFIG_SENSORS_W83627EHF is not set 884# CONFIG_SENSORS_W83627EHF is not set
833CONFIG_HWMON_DEBUG_CHIP=y 885CONFIG_HWMON_DEBUG_CHIP=y
834# CONFIG_THERMAL is not set 886# CONFIG_THERMAL is not set
887# CONFIG_THERMAL_HWMON is not set
835# CONFIG_WATCHDOG is not set 888# CONFIG_WATCHDOG is not set
836 889
837# 890#
@@ -843,8 +896,10 @@ CONFIG_SSB_POSSIBLE=y
843# 896#
844# Multifunction device drivers 897# Multifunction device drivers
845# 898#
899# CONFIG_MFD_CORE is not set
846# CONFIG_MFD_SM501 is not set 900# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set 901# CONFIG_HTC_PASIC3 is not set
902# CONFIG_MFD_TMIO is not set
848 903
849# 904#
850# Multimedia devices 905# Multimedia devices
@@ -876,10 +931,6 @@ CONFIG_DAB=y
876# Display device support 931# Display device support
877# 932#
878# CONFIG_DISPLAY_SUPPORT is not set 933# CONFIG_DISPLAY_SUPPORT is not set
879
880#
881# Sound
882#
883# CONFIG_SOUND is not set 934# CONFIG_SOUND is not set
884CONFIG_HID_SUPPORT=y 935CONFIG_HID_SUPPORT=y
885CONFIG_HID=y 936CONFIG_HID=y
@@ -894,6 +945,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
894# CONFIG_USB_OTG_BLACKLIST_HUB is not set 945# CONFIG_USB_OTG_BLACKLIST_HUB is not set
895 946
896# 947#
948# Enable Host or Gadget support to see Inventra options
949#
950
951#
897# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 952# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
898# 953#
899# CONFIG_USB_GADGET is not set 954# CONFIG_USB_GADGET is not set
@@ -982,6 +1037,7 @@ CONFIG_JFFS2_RTIME=y
982CONFIG_CRAMFS=y 1037CONFIG_CRAMFS=y
983# CONFIG_VXFS_FS is not set 1038# CONFIG_VXFS_FS is not set
984# CONFIG_MINIX_FS is not set 1039# CONFIG_MINIX_FS is not set
1040# CONFIG_OMFS_FS is not set
985# CONFIG_HPFS_FS is not set 1041# CONFIG_HPFS_FS is not set
986# CONFIG_QNX4FS_FS is not set 1042# CONFIG_QNX4FS_FS is not set
987# CONFIG_ROMFS_FS is not set 1043# CONFIG_ROMFS_FS is not set
@@ -991,12 +1047,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
991CONFIG_NFS_FS=y 1047CONFIG_NFS_FS=y
992# CONFIG_NFS_V3 is not set 1048# CONFIG_NFS_V3 is not set
993# CONFIG_NFS_V4 is not set 1049# CONFIG_NFS_V4 is not set
994# CONFIG_NFSD is not set
995CONFIG_ROOT_NFS=y 1050CONFIG_ROOT_NFS=y
1051# CONFIG_NFSD is not set
996CONFIG_LOCKD=y 1052CONFIG_LOCKD=y
997CONFIG_NFS_COMMON=y 1053CONFIG_NFS_COMMON=y
998CONFIG_SUNRPC=y 1054CONFIG_SUNRPC=y
999# CONFIG_SUNRPC_BIND34 is not set
1000# CONFIG_RPCSEC_GSS_KRB5 is not set 1055# CONFIG_RPCSEC_GSS_KRB5 is not set
1001# CONFIG_RPCSEC_GSS_SPKM3 is not set 1056# CONFIG_RPCSEC_GSS_SPKM3 is not set
1002# CONFIG_SMB_FS is not set 1057# CONFIG_SMB_FS is not set
@@ -1032,6 +1087,7 @@ CONFIG_BITREVERSE=y
1032# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1087# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1033# CONFIG_CRC_CCITT is not set 1088# CONFIG_CRC_CCITT is not set
1034# CONFIG_CRC16 is not set 1089# CONFIG_CRC16 is not set
1090# CONFIG_CRC_T10DIF is not set
1035# CONFIG_CRC_ITU_T is not set 1091# CONFIG_CRC_ITU_T is not set
1036CONFIG_CRC32=y 1092CONFIG_CRC32=y
1037# CONFIG_CRC7 is not set 1093# CONFIG_CRC7 is not set
@@ -1059,8 +1115,16 @@ CONFIG_FRAME_WARN=1024
1059# CONFIG_SLUB_DEBUG_ON is not set 1115# CONFIG_SLUB_DEBUG_ON is not set
1060# CONFIG_SLUB_STATS is not set 1116# CONFIG_SLUB_STATS is not set
1061# CONFIG_DEBUG_BUGVERBOSE is not set 1117# CONFIG_DEBUG_BUGVERBOSE is not set
1118# CONFIG_DEBUG_MEMORY_INIT is not set
1119# CONFIG_LATENCYTOP is not set
1120CONFIG_SYSCTL_SYSCALL_CHECK=y
1121CONFIG_HAVE_FTRACE=y
1122CONFIG_HAVE_DYNAMIC_FTRACE=y
1123# CONFIG_FTRACE is not set
1124# CONFIG_SCHED_TRACER is not set
1125# CONFIG_CONTEXT_SWITCH_TRACER is not set
1062# CONFIG_SAMPLES is not set 1126# CONFIG_SAMPLES is not set
1063# CONFIG_KGDB_CONSOLE is not set 1127CONFIG_HAVE_ARCH_KGDB=y
1064# CONFIG_IRQSTACKS is not set 1128# CONFIG_IRQSTACKS is not set
1065# CONFIG_PPC_EARLY_DEBUG is not set 1129# CONFIG_PPC_EARLY_DEBUG is not set
1066 1130
@@ -1112,6 +1176,10 @@ CONFIG_CRYPTO=y
1112# CONFIG_CRYPTO_MD4 is not set 1176# CONFIG_CRYPTO_MD4 is not set
1113# CONFIG_CRYPTO_MD5 is not set 1177# CONFIG_CRYPTO_MD5 is not set
1114# CONFIG_CRYPTO_MICHAEL_MIC is not set 1178# CONFIG_CRYPTO_MICHAEL_MIC is not set
1179# CONFIG_CRYPTO_RMD128 is not set
1180# CONFIG_CRYPTO_RMD160 is not set
1181# CONFIG_CRYPTO_RMD256 is not set
1182# CONFIG_CRYPTO_RMD320 is not set
1115# CONFIG_CRYPTO_SHA1 is not set 1183# CONFIG_CRYPTO_SHA1 is not set
1116# CONFIG_CRYPTO_SHA256 is not set 1184# CONFIG_CRYPTO_SHA256 is not set
1117# CONFIG_CRYPTO_SHA512 is not set 1185# CONFIG_CRYPTO_SHA512 is not set
@@ -1144,6 +1212,7 @@ CONFIG_CRYPTO=y
1144# CONFIG_CRYPTO_LZO is not set 1212# CONFIG_CRYPTO_LZO is not set
1145CONFIG_CRYPTO_HW=y 1213CONFIG_CRYPTO_HW=y
1146# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1214# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1147# CONFIG_PPC_CLOCK is not set 1215# CONFIG_CRYPTO_DEV_TALITOS is not set
1216CONFIG_PPC_CLOCK=y
1148CONFIG_PPC_LIB_RHEAP=y 1217CONFIG_PPC_LIB_RHEAP=y
1149# CONFIG_VIRTUALIZATION is not set 1218# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig
index 6740f2a3aa3..63cd51fbb4b 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:08 2008 4# Thu Aug 21 00:52:00 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y 31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_HAVE_LATENCYTOP_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y 33CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -109,10 +110,16 @@ CONFIG_SLUB=y
109# CONFIG_PROFILING is not set 110# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set 111# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y
112CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y
114# CONFIG_HAVE_DMA_ATTRS is not set 118# CONFIG_HAVE_DMA_ATTRS is not set
119# CONFIG_USE_GENERIC_SMP_HELPERS is not set
120CONFIG_HAVE_CLK=y
115CONFIG_PROC_PAGE_MONITOR=y 121CONFIG_PROC_PAGE_MONITOR=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
116CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
117# CONFIG_TINY_SHMEM is not set 124# CONFIG_TINY_SHMEM is not set
118CONFIG_BASE_SMALL=1 125CONFIG_BASE_SMALL=1
@@ -122,6 +129,7 @@ CONFIG_BLOCK=y
122# CONFIG_BLK_DEV_IO_TRACE is not set 129# CONFIG_BLK_DEV_IO_TRACE is not set
123# CONFIG_LSF is not set 130# CONFIG_LSF is not set
124# CONFIG_BLK_DEV_BSG is not set 131# CONFIG_BLK_DEV_BSG is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set
125 133
126# 134#
127# IO Schedulers 135# IO Schedulers
@@ -140,8 +148,6 @@ CONFIG_CLASSIC_RCU=y
140# 148#
141# Platform support 149# Platform support
142# 150#
143# CONFIG_PPC_MPC512x is not set
144# CONFIG_PPC_MPC5121 is not set
145# CONFIG_PPC_CELL is not set 151# CONFIG_PPC_CELL is not set
146# CONFIG_PPC_CELL_NATIVE is not set 152# CONFIG_PPC_CELL_NATIVE is not set
147CONFIG_CPM1=y 153CONFIG_CPM1=y
@@ -159,6 +165,7 @@ CONFIG_PPC_ADDER875=y
159# Generic MPC8xx Options 165# Generic MPC8xx Options
160# 166#
161CONFIG_8xx_COPYBACK=y 167CONFIG_8xx_COPYBACK=y
168# CONFIG_8xx_GPIO is not set
162# CONFIG_8xx_CPU6 is not set 169# CONFIG_8xx_CPU6 is not set
163CONFIG_8xx_CPU15=y 170CONFIG_8xx_CPU15=y
164CONFIG_NO_UCODE_PATCH=y 171CONFIG_NO_UCODE_PATCH=y
@@ -177,7 +184,6 @@ CONFIG_NO_UCODE_PATCH=y
177# CONFIG_PPC_INDIRECT_IO is not set 184# CONFIG_PPC_INDIRECT_IO is not set
178# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
179# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
180CONFIG_PPC_CPM_NEW_BINDING=y
181# CONFIG_FSL_ULI1575 is not set 187# CONFIG_FSL_ULI1575 is not set
182CONFIG_CPM=y 188CONFIG_CPM=y
183 189
@@ -218,6 +224,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
218# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
219CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y
221# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
223CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
@@ -225,6 +232,7 @@ CONFIG_VIRT_TO_BUS=y
225CONFIG_FORCE_MAX_ZONEORDER=11 232CONFIG_FORCE_MAX_ZONEORDER=11
226# CONFIG_PROC_DEVICETREE is not set 233# CONFIG_PROC_DEVICETREE is not set
227# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
235CONFIG_EXTRA_TARGETS=""
228# CONFIG_PM is not set 236# CONFIG_PM is not set
229# CONFIG_SECCOMP is not set 237# CONFIG_SECCOMP is not set
230CONFIG_ISA_DMA_API=y 238CONFIG_ISA_DMA_API=y
@@ -257,10 +265,6 @@ CONFIG_PHYSICAL_START=0x00000000
257CONFIG_TASK_SIZE=0x80000000 265CONFIG_TASK_SIZE=0x80000000
258CONFIG_CONSISTENT_START=0xfd000000 266CONFIG_CONSISTENT_START=0xfd000000
259CONFIG_CONSISTENT_SIZE=0x00200000 267CONFIG_CONSISTENT_SIZE=0x00200000
260
261#
262# Networking
263#
264CONFIG_NET=y 268CONFIG_NET=y
265 269
266# 270#
@@ -443,7 +447,6 @@ CONFIG_HAVE_IDE=y
443# CONFIG_MD is not set 447# CONFIG_MD is not set
444# CONFIG_MACINTOSH_DRIVERS is not set 448# CONFIG_MACINTOSH_DRIVERS is not set
445CONFIG_NETDEVICES=y 449CONFIG_NETDEVICES=y
446# CONFIG_NETDEVICES_MULTIQUEUE is not set
447# CONFIG_DUMMY is not set 450# CONFIG_DUMMY is not set
448# CONFIG_BONDING is not set 451# CONFIG_BONDING is not set
449# CONFIG_MACVLAN is not set 452# CONFIG_MACVLAN is not set
@@ -547,6 +550,7 @@ CONFIG_SERIO_I8042=y
547CONFIG_SERIO_SERPORT=y 550CONFIG_SERIO_SERPORT=y
548CONFIG_SERIO_LIBPS2=y 551CONFIG_SERIO_LIBPS2=y
549# CONFIG_SERIO_RAW is not set 552# CONFIG_SERIO_RAW is not set
553# CONFIG_SERIO_XILINX_XPS_PS2 is not set
550# CONFIG_GAMEPORT is not set 554# CONFIG_GAMEPORT is not set
551 555
552# 556#
@@ -587,6 +591,8 @@ CONFIG_GEN_RTC=y
587# CONFIG_TCG_TPM is not set 591# CONFIG_TCG_TPM is not set
588# CONFIG_I2C is not set 592# CONFIG_I2C is not set
589# CONFIG_SPI is not set 593# CONFIG_SPI is not set
594CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
595# CONFIG_GPIOLIB is not set
590# CONFIG_W1 is not set 596# CONFIG_W1 is not set
591# CONFIG_POWER_SUPPLY is not set 597# CONFIG_POWER_SUPPLY is not set
592# CONFIG_HWMON is not set 598# CONFIG_HWMON is not set
@@ -602,8 +608,10 @@ CONFIG_SSB_POSSIBLE=y
602# 608#
603# Multifunction device drivers 609# Multifunction device drivers
604# 610#
611# CONFIG_MFD_CORE is not set
605# CONFIG_MFD_SM501 is not set 612# CONFIG_MFD_SM501 is not set
606# CONFIG_HTC_PASIC3 is not set 613# CONFIG_HTC_PASIC3 is not set
614# CONFIG_MFD_TMIO is not set
607 615
608# 616#
609# Multimedia devices 617# Multimedia devices
@@ -633,10 +641,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
633# Display device support 641# Display device support
634# 642#
635# CONFIG_DISPLAY_SUPPORT is not set 643# CONFIG_DISPLAY_SUPPORT is not set
636
637#
638# Sound
639#
640# CONFIG_SOUND is not set 644# CONFIG_SOUND is not set
641# CONFIG_HID_SUPPORT is not set 645# CONFIG_HID_SUPPORT is not set
642# CONFIG_USB_SUPPORT is not set 646# CONFIG_USB_SUPPORT is not set
@@ -706,6 +710,7 @@ CONFIG_TMPFS=y
706CONFIG_CRAMFS=y 710CONFIG_CRAMFS=y
707# CONFIG_VXFS_FS is not set 711# CONFIG_VXFS_FS is not set
708# CONFIG_MINIX_FS is not set 712# CONFIG_MINIX_FS is not set
713# CONFIG_OMFS_FS is not set
709# CONFIG_HPFS_FS is not set 714# CONFIG_HPFS_FS is not set
710# CONFIG_QNX4FS_FS is not set 715# CONFIG_QNX4FS_FS is not set
711# CONFIG_ROMFS_FS is not set 716# CONFIG_ROMFS_FS is not set
@@ -716,13 +721,12 @@ CONFIG_NFS_FS=y
716CONFIG_NFS_V3=y 721CONFIG_NFS_V3=y
717# CONFIG_NFS_V3_ACL is not set 722# CONFIG_NFS_V3_ACL is not set
718# CONFIG_NFS_V4 is not set 723# CONFIG_NFS_V4 is not set
719# CONFIG_NFSD is not set
720CONFIG_ROOT_NFS=y 724CONFIG_ROOT_NFS=y
725# CONFIG_NFSD is not set
721CONFIG_LOCKD=y 726CONFIG_LOCKD=y
722CONFIG_LOCKD_V4=y 727CONFIG_LOCKD_V4=y
723CONFIG_NFS_COMMON=y 728CONFIG_NFS_COMMON=y
724CONFIG_SUNRPC=y 729CONFIG_SUNRPC=y
725# CONFIG_SUNRPC_BIND34 is not set
726# CONFIG_RPCSEC_GSS_KRB5 is not set 730# CONFIG_RPCSEC_GSS_KRB5 is not set
727# CONFIG_RPCSEC_GSS_SPKM3 is not set 731# CONFIG_RPCSEC_GSS_SPKM3 is not set
728# CONFIG_SMB_FS is not set 732# CONFIG_SMB_FS is not set
@@ -761,6 +765,7 @@ CONFIG_MSDOS_PARTITION=y
761# CONFIG_GENERIC_FIND_FIRST_BIT is not set 765# CONFIG_GENERIC_FIND_FIRST_BIT is not set
762# CONFIG_CRC_CCITT is not set 766# CONFIG_CRC_CCITT is not set
763# CONFIG_CRC16 is not set 767# CONFIG_CRC16 is not set
768# CONFIG_CRC_T10DIF is not set
764# CONFIG_CRC_ITU_T is not set 769# CONFIG_CRC_ITU_T is not set
765# CONFIG_CRC32 is not set 770# CONFIG_CRC32 is not set
766# CONFIG_CRC7 is not set 771# CONFIG_CRC7 is not set
@@ -785,6 +790,8 @@ CONFIG_DEBUG_FS=y
785CONFIG_DEBUG_KERNEL=y 790CONFIG_DEBUG_KERNEL=y
786# CONFIG_DEBUG_SHIRQ is not set 791# CONFIG_DEBUG_SHIRQ is not set
787CONFIG_DETECT_SOFTLOCKUP=y 792CONFIG_DETECT_SOFTLOCKUP=y
793# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
794CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
788CONFIG_SCHED_DEBUG=y 795CONFIG_SCHED_DEBUG=y
789# CONFIG_SCHEDSTATS is not set 796# CONFIG_SCHEDSTATS is not set
790# CONFIG_TIMER_STATS is not set 797# CONFIG_TIMER_STATS is not set
@@ -800,16 +807,28 @@ CONFIG_DEBUG_BUGVERBOSE=y
800CONFIG_DEBUG_INFO=y 807CONFIG_DEBUG_INFO=y
801# CONFIG_DEBUG_VM is not set 808# CONFIG_DEBUG_VM is not set
802# CONFIG_DEBUG_WRITECOUNT is not set 809# CONFIG_DEBUG_WRITECOUNT is not set
810# CONFIG_DEBUG_MEMORY_INIT is not set
803# CONFIG_DEBUG_LIST is not set 811# CONFIG_DEBUG_LIST is not set
804# CONFIG_DEBUG_SG is not set 812# CONFIG_DEBUG_SG is not set
805# CONFIG_BOOT_PRINTK_DELAY is not set 813# CONFIG_BOOT_PRINTK_DELAY is not set
814# CONFIG_RCU_TORTURE_TEST is not set
806# CONFIG_BACKTRACE_SELF_TEST is not set 815# CONFIG_BACKTRACE_SELF_TEST is not set
807# CONFIG_FAULT_INJECTION is not set 816# CONFIG_FAULT_INJECTION is not set
817# CONFIG_LATENCYTOP is not set
818CONFIG_HAVE_FTRACE=y
819CONFIG_HAVE_DYNAMIC_FTRACE=y
820# CONFIG_FTRACE is not set
821# CONFIG_SCHED_TRACER is not set
822# CONFIG_CONTEXT_SWITCH_TRACER is not set
808# CONFIG_SAMPLES is not set 823# CONFIG_SAMPLES is not set
824CONFIG_HAVE_ARCH_KGDB=y
825# CONFIG_KGDB is not set
809# CONFIG_DEBUG_STACKOVERFLOW is not set 826# CONFIG_DEBUG_STACKOVERFLOW is not set
810# CONFIG_DEBUG_STACK_USAGE is not set 827# CONFIG_DEBUG_STACK_USAGE is not set
811# CONFIG_DEBUG_PAGEALLOC is not set 828# CONFIG_DEBUG_PAGEALLOC is not set
812# CONFIG_DEBUGGER is not set 829# CONFIG_CODE_PATCHING_SELFTEST is not set
830# CONFIG_FTR_FIXUP_SELFTEST is not set
831# CONFIG_XMON is not set
813# CONFIG_IRQSTACKS is not set 832# CONFIG_IRQSTACKS is not set
814# CONFIG_VIRQ_DEBUG is not set 833# CONFIG_VIRQ_DEBUG is not set
815# CONFIG_BDI_SWITCH is not set 834# CONFIG_BDI_SWITCH is not set
@@ -822,6 +841,6 @@ CONFIG_DEBUG_INFO=y
822# CONFIG_SECURITY is not set 841# CONFIG_SECURITY is not set
823# CONFIG_SECURITY_FILE_CAPABILITIES is not set 842# CONFIG_SECURITY_FILE_CAPABILITIES is not set
824# CONFIG_CRYPTO is not set 843# CONFIG_CRYPTO is not set
825# CONFIG_PPC_CLOCK is not set 844CONFIG_PPC_CLOCK=y
826CONFIG_PPC_LIB_RHEAP=y 845CONFIG_PPC_LIB_RHEAP=y
827# CONFIG_VIRTUALIZATION is not set 846# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
index dc599c7e97d..c16521ffb47 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.26-rc2 3# Linux kernel version: 2.6.27-rc4
4# Thu May 15 11:00:14 2008 4# Thu Aug 21 00:52:02 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -34,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
35CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
36CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -97,7 +98,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
97CONFIG_SYSCTL=y 98CONFIG_SYSCTL=y
98# CONFIG_EMBEDDED is not set 99# CONFIG_EMBEDDED is not set
99CONFIG_SYSCTL_SYSCALL=y 100CONFIG_SYSCTL_SYSCALL=y
100CONFIG_SYSCTL_SYSCALL_CHECK=y
101CONFIG_KALLSYMS=y 101CONFIG_KALLSYMS=y
102# CONFIG_KALLSYMS_ALL is not set 102# CONFIG_KALLSYMS_ALL is not set
103CONFIG_KALLSYMS_EXTRA_PASS=y 103CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -124,11 +124,17 @@ CONFIG_PROFILING=y
124CONFIG_OPROFILE=m 124CONFIG_OPROFILE=m
125CONFIG_HAVE_OPROFILE=y 125CONFIG_HAVE_OPROFILE=y
126CONFIG_KPROBES=y 126CONFIG_KPROBES=y
127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
127CONFIG_KRETPROBES=y 128CONFIG_KRETPROBES=y
129CONFIG_HAVE_IOREMAP_PROT=y
128CONFIG_HAVE_KPROBES=y 130CONFIG_HAVE_KPROBES=y
129CONFIG_HAVE_KRETPROBES=y 131CONFIG_HAVE_KRETPROBES=y
132CONFIG_HAVE_ARCH_TRACEHOOK=y
130# CONFIG_HAVE_DMA_ATTRS is not set 133# CONFIG_HAVE_DMA_ATTRS is not set
134# CONFIG_USE_GENERIC_SMP_HELPERS is not set
135# CONFIG_HAVE_CLK is not set
131CONFIG_PROC_PAGE_MONITOR=y 136CONFIG_PROC_PAGE_MONITOR=y
137# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 138CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 139CONFIG_RT_MUTEXES=y
134# CONFIG_TINY_SHMEM is not set 140# CONFIG_TINY_SHMEM is not set
@@ -145,6 +151,7 @@ CONFIG_LBD=y
145# CONFIG_BLK_DEV_IO_TRACE is not set 151# CONFIG_BLK_DEV_IO_TRACE is not set
146# CONFIG_LSF is not set 152# CONFIG_LSF is not set
147# CONFIG_BLK_DEV_BSG is not set 153# CONFIG_BLK_DEV_BSG is not set
154# CONFIG_BLK_DEV_INTEGRITY is not set
148 155
149# 156#
150# IO Schedulers 157# IO Schedulers
@@ -164,19 +171,18 @@ CONFIG_CLASSIC_RCU=y
164# Platform support 171# Platform support
165# 172#
166CONFIG_PPC_MULTIPLATFORM=y 173CONFIG_PPC_MULTIPLATFORM=y
167# CONFIG_PPC_82xx is not set
168# CONFIG_PPC_83xx is not set
169# CONFIG_PPC_86xx is not set
170CONFIG_CLASSIC32=y 174CONFIG_CLASSIC32=y
171# CONFIG_PPC_CHRP is not set 175# CONFIG_PPC_CHRP is not set
172# CONFIG_PPC_MPC512x is not set
173# CONFIG_PPC_MPC5121 is not set
174# CONFIG_MPC5121_ADS is not set 176# CONFIG_MPC5121_ADS is not set
177# CONFIG_MPC5121_GENERIC is not set
175# CONFIG_PPC_MPC52xx is not set 178# CONFIG_PPC_MPC52xx is not set
176# CONFIG_PPC_PMAC is not set 179# CONFIG_PPC_PMAC is not set
177# CONFIG_PPC_CELL is not set 180# CONFIG_PPC_CELL is not set
178# CONFIG_PPC_CELL_NATIVE is not set 181# CONFIG_PPC_CELL_NATIVE is not set
182# CONFIG_PPC_82xx is not set
179# CONFIG_PQ2ADS is not set 183# CONFIG_PQ2ADS is not set
184# CONFIG_PPC_83xx is not set
185# CONFIG_PPC_86xx is not set
180CONFIG_EMBEDDED6xx=y 186CONFIG_EMBEDDED6xx=y
181# CONFIG_LINKSTATION is not set 187# CONFIG_LINKSTATION is not set
182# CONFIG_STORCENTER is not set 188# CONFIG_STORCENTER is not set
@@ -253,6 +259,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
253# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 259# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
254CONFIG_PAGEFLAGS_EXTENDED=y 260CONFIG_PAGEFLAGS_EXTENDED=y
255CONFIG_SPLIT_PTLOCK_CPUS=4 261CONFIG_SPLIT_PTLOCK_CPUS=4
262CONFIG_MIGRATION=y
256# CONFIG_RESOURCES_64BIT is not set 263# CONFIG_RESOURCES_64BIT is not set
257CONFIG_ZONE_DMA_FLAG=1 264CONFIG_ZONE_DMA_FLAG=1
258CONFIG_BOUNCE=y 265CONFIG_BOUNCE=y
@@ -260,6 +267,7 @@ CONFIG_VIRT_TO_BUS=y
260CONFIG_FORCE_MAX_ZONEORDER=11 267CONFIG_FORCE_MAX_ZONEORDER=11
261# CONFIG_PROC_DEVICETREE is not set 268# CONFIG_PROC_DEVICETREE is not set
262# CONFIG_CMDLINE_BOOL is not set 269# CONFIG_CMDLINE_BOOL is not set
270CONFIG_EXTRA_TARGETS=""
263CONFIG_PM=y 271CONFIG_PM=y
264# CONFIG_PM_DEBUG is not set 272# CONFIG_PM_DEBUG is not set
265CONFIG_SECCOMP=y 273CONFIG_SECCOMP=y
@@ -301,10 +309,6 @@ CONFIG_PHYSICAL_START=0x00000000
301CONFIG_TASK_SIZE=0xc0000000 309CONFIG_TASK_SIZE=0xc0000000
302CONFIG_CONSISTENT_START=0xff100000 310CONFIG_CONSISTENT_START=0xff100000
303CONFIG_CONSISTENT_SIZE=0x00200000 311CONFIG_CONSISTENT_SIZE=0x00200000
304
305#
306# Networking
307#
308CONFIG_NET=y 312CONFIG_NET=y
309 313
310# 314#
@@ -318,6 +322,7 @@ CONFIG_XFRM_USER=y
318# CONFIG_XFRM_SUB_POLICY is not set 322# CONFIG_XFRM_SUB_POLICY is not set
319# CONFIG_XFRM_MIGRATE is not set 323# CONFIG_XFRM_MIGRATE is not set
320# CONFIG_XFRM_STATISTICS is not set 324# CONFIG_XFRM_STATISTICS is not set
325CONFIG_XFRM_IPCOMP=m
321CONFIG_NET_KEY=m 326CONFIG_NET_KEY=m
322# CONFIG_NET_KEY_MIGRATE is not set 327# CONFIG_NET_KEY_MIGRATE is not set
323CONFIG_INET=y 328CONFIG_INET=y
@@ -349,7 +354,7 @@ CONFIG_INET_TUNNEL=m
349CONFIG_INET_XFRM_MODE_TRANSPORT=y 354CONFIG_INET_XFRM_MODE_TRANSPORT=y
350CONFIG_INET_XFRM_MODE_TUNNEL=y 355CONFIG_INET_XFRM_MODE_TUNNEL=y
351CONFIG_INET_XFRM_MODE_BEET=y 356CONFIG_INET_XFRM_MODE_BEET=y
352# CONFIG_INET_LRO is not set 357CONFIG_INET_LRO=m
353CONFIG_INET_DIAG=y 358CONFIG_INET_DIAG=y
354CONFIG_INET_TCP_DIAG=y 359CONFIG_INET_TCP_DIAG=y
355# CONFIG_TCP_CONG_ADVANCED is not set 360# CONFIG_TCP_CONG_ADVANCED is not set
@@ -472,6 +477,7 @@ CONFIG_IP_NF_MANGLE=m
472CONFIG_IP_NF_TARGET_ECN=m 477CONFIG_IP_NF_TARGET_ECN=m
473# CONFIG_IP_NF_TARGET_TTL is not set 478# CONFIG_IP_NF_TARGET_TTL is not set
474CONFIG_IP_NF_RAW=m 479CONFIG_IP_NF_RAW=m
480# CONFIG_IP_NF_SECURITY is not set
475CONFIG_IP_NF_ARPTABLES=m 481CONFIG_IP_NF_ARPTABLES=m
476CONFIG_IP_NF_ARPFILTER=m 482CONFIG_IP_NF_ARPFILTER=m
477CONFIG_IP_NF_ARP_MANGLE=m 483CONFIG_IP_NF_ARP_MANGLE=m
@@ -495,6 +501,7 @@ CONFIG_IP6_NF_TARGET_LOG=m
495CONFIG_IP6_NF_MANGLE=m 501CONFIG_IP6_NF_MANGLE=m
496# CONFIG_IP6_NF_TARGET_HL is not set 502# CONFIG_IP6_NF_TARGET_HL is not set
497CONFIG_IP6_NF_RAW=m 503CONFIG_IP6_NF_RAW=m
504# CONFIG_IP6_NF_SECURITY is not set
498 505
499# 506#
500# Bridge: Netfilter Configuration 507# Bridge: Netfilter Configuration
@@ -507,6 +514,7 @@ CONFIG_BRIDGE_EBT_802_3=m
507CONFIG_BRIDGE_EBT_AMONG=m 514CONFIG_BRIDGE_EBT_AMONG=m
508CONFIG_BRIDGE_EBT_ARP=m 515CONFIG_BRIDGE_EBT_ARP=m
509CONFIG_BRIDGE_EBT_IP=m 516CONFIG_BRIDGE_EBT_IP=m
517# CONFIG_BRIDGE_EBT_IP6 is not set
510CONFIG_BRIDGE_EBT_LIMIT=m 518CONFIG_BRIDGE_EBT_LIMIT=m
511CONFIG_BRIDGE_EBT_MARK=m 519CONFIG_BRIDGE_EBT_MARK=m
512CONFIG_BRIDGE_EBT_PKTTYPE=m 520CONFIG_BRIDGE_EBT_PKTTYPE=m
@@ -535,8 +543,10 @@ CONFIG_ATM_LANE=m
535# CONFIG_ATM_MPOA is not set 543# CONFIG_ATM_MPOA is not set
536CONFIG_ATM_BR2684=m 544CONFIG_ATM_BR2684=m
537# CONFIG_ATM_BR2684_IPFILTER is not set 545# CONFIG_ATM_BR2684_IPFILTER is not set
546CONFIG_STP=m
538CONFIG_BRIDGE=m 547CONFIG_BRIDGE=m
539CONFIG_VLAN_8021Q=m 548CONFIG_VLAN_8021Q=m
549# CONFIG_VLAN_8021Q_GVRP is not set
540# CONFIG_DECNET is not set 550# CONFIG_DECNET is not set
541CONFIG_LLC=m 551CONFIG_LLC=m
542# CONFIG_LLC2 is not set 552# CONFIG_LLC2 is not set
@@ -556,7 +566,6 @@ CONFIG_NET_SCH_HTB=m
556CONFIG_NET_SCH_HFSC=m 566CONFIG_NET_SCH_HFSC=m
557CONFIG_NET_SCH_ATM=m 567CONFIG_NET_SCH_ATM=m
558CONFIG_NET_SCH_PRIO=m 568CONFIG_NET_SCH_PRIO=m
559# CONFIG_NET_SCH_RR is not set
560CONFIG_NET_SCH_RED=m 569CONFIG_NET_SCH_RED=m
561CONFIG_NET_SCH_SFQ=m 570CONFIG_NET_SCH_SFQ=m
562CONFIG_NET_SCH_TEQL=m 571CONFIG_NET_SCH_TEQL=m
@@ -601,7 +610,6 @@ CONFIG_BT_RFCOMM_TTY=y
601CONFIG_BT_BNEP=m 610CONFIG_BT_BNEP=m
602CONFIG_BT_BNEP_MC_FILTER=y 611CONFIG_BT_BNEP_MC_FILTER=y
603CONFIG_BT_BNEP_PROTO_FILTER=y 612CONFIG_BT_BNEP_PROTO_FILTER=y
604CONFIG_BT_CMTP=m
605CONFIG_BT_HIDP=m 613CONFIG_BT_HIDP=m
606 614
607# 615#
@@ -609,6 +617,7 @@ CONFIG_BT_HIDP=m
609# 617#
610CONFIG_BT_HCIUSB=m 618CONFIG_BT_HCIUSB=m
611CONFIG_BT_HCIUSB_SCO=y 619CONFIG_BT_HCIUSB_SCO=y
620# CONFIG_BT_HCIBTUSB is not set
612CONFIG_BT_HCIUART=m 621CONFIG_BT_HCIUART=m
613CONFIG_BT_HCIUART_H4=y 622CONFIG_BT_HCIUART_H4=y
614CONFIG_BT_HCIUART_BCSP=y 623CONFIG_BT_HCIUART_BCSP=y
@@ -625,6 +634,7 @@ CONFIG_FIB_RULES=y
625# 634#
626# CONFIG_CFG80211 is not set 635# CONFIG_CFG80211 is not set
627CONFIG_WIRELESS_EXT=y 636CONFIG_WIRELESS_EXT=y
637CONFIG_WIRELESS_EXT_SYSFS=y
628# CONFIG_MAC80211 is not set 638# CONFIG_MAC80211 is not set
629CONFIG_IEEE80211=m 639CONFIG_IEEE80211=m
630# CONFIG_IEEE80211_DEBUG is not set 640# CONFIG_IEEE80211_DEBUG is not set
@@ -645,6 +655,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
645CONFIG_STANDALONE=y 655CONFIG_STANDALONE=y
646CONFIG_PREVENT_FIRMWARE_BUILD=y 656CONFIG_PREVENT_FIRMWARE_BUILD=y
647CONFIG_FW_LOADER=y 657CONFIG_FW_LOADER=y
658CONFIG_FIRMWARE_IN_KERNEL=y
659CONFIG_EXTRA_FIRMWARE=""
648# CONFIG_DEBUG_DRIVER is not set 660# CONFIG_DEBUG_DRIVER is not set
649# CONFIG_DEBUG_DEVRES is not set 661# CONFIG_DEBUG_DEVRES is not set
650# CONFIG_SYS_HYPERVISOR is not set 662# CONFIG_SYS_HYPERVISOR is not set
@@ -749,6 +761,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
749# CONFIG_BLK_DEV_XIP is not set 761# CONFIG_BLK_DEV_XIP is not set
750# CONFIG_CDROM_PKTCDVD is not set 762# CONFIG_CDROM_PKTCDVD is not set
751# CONFIG_ATA_OVER_ETH is not set 763# CONFIG_ATA_OVER_ETH is not set
764# CONFIG_BLK_DEV_HD is not set
752# CONFIG_MISC_DEVICES is not set 765# CONFIG_MISC_DEVICES is not set
753CONFIG_HAVE_IDE=y 766CONFIG_HAVE_IDE=y
754# CONFIG_IDE is not set 767# CONFIG_IDE is not set
@@ -844,6 +857,7 @@ CONFIG_SCSI_LPFC=m
844# CONFIG_SCSI_NSP32 is not set 857# CONFIG_SCSI_NSP32 is not set
845# CONFIG_SCSI_DEBUG is not set 858# CONFIG_SCSI_DEBUG is not set
846# CONFIG_SCSI_SRP is not set 859# CONFIG_SCSI_SRP is not set
860# CONFIG_SCSI_DH is not set
847# CONFIG_ATA is not set 861# CONFIG_ATA is not set
848# CONFIG_MD is not set 862# CONFIG_MD is not set
849# CONFIG_FUSION is not set 863# CONFIG_FUSION is not set
@@ -851,12 +865,15 @@ CONFIG_SCSI_LPFC=m
851# 865#
852# IEEE 1394 (FireWire) support 866# IEEE 1394 (FireWire) support
853# 867#
868
869#
870# Enable only one of the two stacks, unless you know what you are doing
871#
854# CONFIG_FIREWIRE is not set 872# CONFIG_FIREWIRE is not set
855# CONFIG_IEEE1394 is not set 873# CONFIG_IEEE1394 is not set
856# CONFIG_I2O is not set 874# CONFIG_I2O is not set
857# CONFIG_MACINTOSH_DRIVERS is not set 875# CONFIG_MACINTOSH_DRIVERS is not set
858CONFIG_NETDEVICES=y 876CONFIG_NETDEVICES=y
859# CONFIG_NETDEVICES_MULTIQUEUE is not set
860CONFIG_DUMMY=m 877CONFIG_DUMMY=m
861CONFIG_BONDING=m 878CONFIG_BONDING=m
862# CONFIG_MACVLAN is not set 879# CONFIG_MACVLAN is not set
@@ -900,7 +917,6 @@ CONFIG_NETDEV_1000=y
900# CONFIG_DL2K is not set 917# CONFIG_DL2K is not set
901# CONFIG_E1000 is not set 918# CONFIG_E1000 is not set
902# CONFIG_E1000E is not set 919# CONFIG_E1000E is not set
903# CONFIG_E1000E_ENABLED is not set
904# CONFIG_IP1000 is not set 920# CONFIG_IP1000 is not set
905# CONFIG_IGB is not set 921# CONFIG_IGB is not set
906# CONFIG_NS83820 is not set 922# CONFIG_NS83820 is not set
@@ -916,6 +932,7 @@ CONFIG_NETDEV_1000=y
916CONFIG_MV643XX_ETH=y 932CONFIG_MV643XX_ETH=y
917# CONFIG_QLA3XXX is not set 933# CONFIG_QLA3XXX is not set
918# CONFIG_ATL1 is not set 934# CONFIG_ATL1 is not set
935# CONFIG_ATL1E is not set
919# CONFIG_NETDEV_10000 is not set 936# CONFIG_NETDEV_10000 is not set
920# CONFIG_TR is not set 937# CONFIG_TR is not set
921 938
@@ -940,112 +957,13 @@ CONFIG_MV643XX_ETH=y
940# CONFIG_HIPPI is not set 957# CONFIG_HIPPI is not set
941# CONFIG_PPP is not set 958# CONFIG_PPP is not set
942# CONFIG_SLIP is not set 959# CONFIG_SLIP is not set
943CONFIG_SLHC=m
944# CONFIG_NET_FC is not set 960# CONFIG_NET_FC is not set
945CONFIG_NETCONSOLE=m 961CONFIG_NETCONSOLE=m
946# CONFIG_NETCONSOLE_DYNAMIC is not set 962# CONFIG_NETCONSOLE_DYNAMIC is not set
947CONFIG_NETPOLL=y 963CONFIG_NETPOLL=y
948CONFIG_NETPOLL_TRAP=y 964CONFIG_NETPOLL_TRAP=y
949CONFIG_NET_POLL_CONTROLLER=y 965CONFIG_NET_POLL_CONTROLLER=y
950CONFIG_ISDN=m 966# CONFIG_ISDN is not set
951CONFIG_ISDN_I4L=m
952CONFIG_ISDN_PPP=y
953CONFIG_ISDN_PPP_VJ=y
954CONFIG_ISDN_MPP=y
955CONFIG_IPPP_FILTER=y
956# CONFIG_ISDN_PPP_BSDCOMP is not set
957CONFIG_ISDN_AUDIO=y
958CONFIG_ISDN_TTY_FAX=y
959
960#
961# ISDN feature submodules
962#
963CONFIG_ISDN_DRV_LOOP=m
964# CONFIG_ISDN_DIVERSION is not set
965
966#
967# ISDN4Linux hardware drivers
968#
969
970#
971# Passive cards
972#
973CONFIG_ISDN_DRV_HISAX=m
974
975#
976# D-channel protocol features
977#
978CONFIG_HISAX_EURO=y
979CONFIG_DE_AOC=y
980CONFIG_HISAX_NO_SENDCOMPLETE=y
981CONFIG_HISAX_NO_LLC=y
982CONFIG_HISAX_NO_KEYPAD=y
983CONFIG_HISAX_1TR6=y
984CONFIG_HISAX_NI1=y
985CONFIG_HISAX_MAX_CARDS=8
986
987#
988# HiSax supported cards
989#
990CONFIG_HISAX_16_3=y
991CONFIG_HISAX_S0BOX=y
992CONFIG_HISAX_FRITZPCI=y
993CONFIG_HISAX_AVM_A1_PCMCIA=y
994CONFIG_HISAX_ELSA=y
995CONFIG_HISAX_DIEHLDIVA=y
996CONFIG_HISAX_SEDLBAUER=y
997CONFIG_HISAX_NICCY=y
998CONFIG_HISAX_BKM_A4T=y
999CONFIG_HISAX_SCT_QUADRO=y
1000CONFIG_HISAX_GAZEL=y
1001CONFIG_HISAX_W6692=y
1002CONFIG_HISAX_HFC_SX=y
1003# CONFIG_HISAX_DEBUG is not set
1004
1005#
1006# HiSax PCMCIA card service modules
1007#
1008
1009#
1010# HiSax sub driver modules
1011#
1012CONFIG_HISAX_ST5481=m
1013CONFIG_HISAX_HFCUSB=m
1014# CONFIG_HISAX_HFC4S8S is not set
1015CONFIG_HISAX_FRITZ_PCIPNP=m
1016CONFIG_HISAX_HDLC=y
1017
1018#
1019# Active cards
1020#
1021CONFIG_HYSDN=m
1022CONFIG_HYSDN_CAPI=y
1023# CONFIG_ISDN_DRV_GIGASET is not set
1024CONFIG_ISDN_CAPI=m
1025CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
1026CONFIG_CAPI_TRACE=y
1027CONFIG_ISDN_CAPI_MIDDLEWARE=y
1028CONFIG_ISDN_CAPI_CAPI20=m
1029CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
1030CONFIG_ISDN_CAPI_CAPIFS=m
1031CONFIG_ISDN_CAPI_CAPIDRV=m
1032
1033#
1034# CAPI hardware drivers
1035#
1036CONFIG_CAPI_AVM=y
1037CONFIG_ISDN_DRV_AVMB1_B1PCI=m
1038CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
1039CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
1040CONFIG_ISDN_DRV_AVMB1_T1PCI=m
1041CONFIG_ISDN_DRV_AVMB1_C4=m
1042CONFIG_CAPI_EICON=y
1043CONFIG_ISDN_DIVAS=m
1044CONFIG_ISDN_DIVAS_BRIPCI=y
1045CONFIG_ISDN_DIVAS_PRIPCI=y
1046CONFIG_ISDN_DIVAS_DIVACAPI=m
1047CONFIG_ISDN_DIVAS_USERIDI=m
1048CONFIG_ISDN_DIVAS_MAINT=m
1049# CONFIG_PHONE is not set 967# CONFIG_PHONE is not set
1050 968
1051# 969#
@@ -1092,6 +1010,7 @@ CONFIG_INPUT_UINPUT=m
1092# Character devices 1010# Character devices
1093# 1011#
1094CONFIG_VT=y 1012CONFIG_VT=y
1013CONFIG_CONSOLE_TRANSLATIONS=y
1095CONFIG_VT_CONSOLE=y 1014CONFIG_VT_CONSOLE=y
1096CONFIG_HW_CONSOLE=y 1015CONFIG_HW_CONSOLE=y
1097# CONFIG_VT_HW_CONSOLE_BINDING is not set 1016# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -1145,44 +1064,65 @@ CONFIG_DEVPORT=y
1145CONFIG_I2C=m 1064CONFIG_I2C=m
1146CONFIG_I2C_BOARDINFO=y 1065CONFIG_I2C_BOARDINFO=y
1147CONFIG_I2C_CHARDEV=m 1066CONFIG_I2C_CHARDEV=m
1067CONFIG_I2C_HELPER_AUTO=y
1148 1068
1149# 1069#
1150# I2C Hardware Bus support 1070# I2C Hardware Bus support
1151# 1071#
1072
1073#
1074# PC SMBus host controller drivers
1075#
1152# CONFIG_I2C_ALI1535 is not set 1076# CONFIG_I2C_ALI1535 is not set
1153# CONFIG_I2C_ALI1563 is not set 1077# CONFIG_I2C_ALI1563 is not set
1154# CONFIG_I2C_ALI15X3 is not set 1078# CONFIG_I2C_ALI15X3 is not set
1155# CONFIG_I2C_AMD756 is not set 1079# CONFIG_I2C_AMD756 is not set
1156# CONFIG_I2C_AMD8111 is not set 1080# CONFIG_I2C_AMD8111 is not set
1157# CONFIG_I2C_I801 is not set 1081# CONFIG_I2C_I801 is not set
1158# CONFIG_I2C_I810 is not set 1082# CONFIG_I2C_ISCH is not set
1159# CONFIG_I2C_PIIX4 is not set 1083# CONFIG_I2C_PIIX4 is not set
1160# CONFIG_I2C_MPC is not set
1161# CONFIG_I2C_NFORCE2 is not set 1084# CONFIG_I2C_NFORCE2 is not set
1162# CONFIG_I2C_OCORES is not set
1163# CONFIG_I2C_PARPORT_LIGHT is not set
1164# CONFIG_I2C_PROSAVAGE is not set
1165# CONFIG_I2C_SAVAGE4 is not set
1166# CONFIG_I2C_SIMTEC is not set
1167# CONFIG_I2C_SIS5595 is not set 1085# CONFIG_I2C_SIS5595 is not set
1168# CONFIG_I2C_SIS630 is not set 1086# CONFIG_I2C_SIS630 is not set
1169# CONFIG_I2C_SIS96X is not set 1087# CONFIG_I2C_SIS96X is not set
1170# CONFIG_I2C_TAOS_EVM is not set
1171# CONFIG_I2C_STUB is not set
1172# CONFIG_I2C_TINY_USB is not set
1173# CONFIG_I2C_VIA is not set 1088# CONFIG_I2C_VIA is not set
1174# CONFIG_I2C_VIAPRO is not set 1089# CONFIG_I2C_VIAPRO is not set
1090
1091#
1092# I2C system bus drivers (mostly embedded / system-on-chip)
1093#
1094# CONFIG_I2C_MPC is not set
1095CONFIG_I2C_MV64XXX=m
1096# CONFIG_I2C_OCORES is not set
1097# CONFIG_I2C_SIMTEC is not set
1098
1099#
1100# External I2C/SMBus adapter drivers
1101#
1102# CONFIG_I2C_PARPORT_LIGHT is not set
1103# CONFIG_I2C_TAOS_EVM is not set
1104# CONFIG_I2C_TINY_USB is not set
1105
1106#
1107# Graphics adapter I2C/DDC channel drivers
1108#
1175# CONFIG_I2C_VOODOO3 is not set 1109# CONFIG_I2C_VOODOO3 is not set
1110
1111#
1112# Other I2C/SMBus bus drivers
1113#
1176# CONFIG_I2C_PCA_PLATFORM is not set 1114# CONFIG_I2C_PCA_PLATFORM is not set
1177CONFIG_I2C_MV64XXX=m 1115# CONFIG_I2C_STUB is not set
1178 1116
1179# 1117#
1180# Miscellaneous I2C Chip support 1118# Miscellaneous I2C Chip support
1181# 1119#
1182# CONFIG_DS1682 is not set 1120# CONFIG_DS1682 is not set
1121# CONFIG_AT24 is not set
1183CONFIG_SENSORS_EEPROM=m 1122CONFIG_SENSORS_EEPROM=m
1184CONFIG_SENSORS_PCF8574=m 1123CONFIG_SENSORS_PCF8574=m
1185# CONFIG_PCF8575 is not set 1124# CONFIG_PCF8575 is not set
1125# CONFIG_SENSORS_PCA9539 is not set
1186CONFIG_SENSORS_PCF8591=m 1126CONFIG_SENSORS_PCF8591=m
1187# CONFIG_SENSORS_MAX6875 is not set 1127# CONFIG_SENSORS_MAX6875 is not set
1188# CONFIG_SENSORS_TSL2550 is not set 1128# CONFIG_SENSORS_TSL2550 is not set
@@ -1191,10 +1131,13 @@ CONFIG_SENSORS_PCF8591=m
1191# CONFIG_I2C_DEBUG_BUS is not set 1131# CONFIG_I2C_DEBUG_BUS is not set
1192# CONFIG_I2C_DEBUG_CHIP is not set 1132# CONFIG_I2C_DEBUG_CHIP is not set
1193# CONFIG_SPI is not set 1133# CONFIG_SPI is not set
1134CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1135# CONFIG_GPIOLIB is not set
1194# CONFIG_W1 is not set 1136# CONFIG_W1 is not set
1195# CONFIG_POWER_SUPPLY is not set 1137# CONFIG_POWER_SUPPLY is not set
1196CONFIG_HWMON=m 1138CONFIG_HWMON=m
1197CONFIG_HWMON_VID=m 1139CONFIG_HWMON_VID=m
1140# CONFIG_SENSORS_AD7414 is not set
1198# CONFIG_SENSORS_AD7418 is not set 1141# CONFIG_SENSORS_AD7418 is not set
1199CONFIG_SENSORS_ADM1021=m 1142CONFIG_SENSORS_ADM1021=m
1200CONFIG_SENSORS_ADM1025=m 1143CONFIG_SENSORS_ADM1025=m
@@ -1255,6 +1198,7 @@ CONFIG_WATCHDOG=y
1255# Watchdog Device Drivers 1198# Watchdog Device Drivers
1256# 1199#
1257CONFIG_SOFT_WATCHDOG=m 1200CONFIG_SOFT_WATCHDOG=m
1201# CONFIG_ALIM7101_WDT is not set
1258# CONFIG_MV64X60_WDT is not set 1202# CONFIG_MV64X60_WDT is not set
1259 1203
1260# 1204#
@@ -1278,8 +1222,10 @@ CONFIG_SSB_POSSIBLE=y
1278# 1222#
1279# Multifunction device drivers 1223# Multifunction device drivers
1280# 1224#
1225# CONFIG_MFD_CORE is not set
1281# CONFIG_MFD_SM501 is not set 1226# CONFIG_MFD_SM501 is not set
1282# CONFIG_HTC_PASIC3 is not set 1227# CONFIG_HTC_PASIC3 is not set
1228# CONFIG_MFD_TMIO is not set
1283 1229
1284# 1230#
1285# Multimedia devices 1231# Multimedia devices
@@ -1290,6 +1236,7 @@ CONFIG_SSB_POSSIBLE=y
1290# 1236#
1291# CONFIG_VIDEO_DEV is not set 1237# CONFIG_VIDEO_DEV is not set
1292# CONFIG_DVB_CORE is not set 1238# CONFIG_DVB_CORE is not set
1239# CONFIG_VIDEO_MEDIA is not set
1293 1240
1294# 1241#
1295# Multimedia drivers 1242# Multimedia drivers
@@ -1316,10 +1263,6 @@ CONFIG_SSB_POSSIBLE=y
1316# 1263#
1317# CONFIG_VGA_CONSOLE is not set 1264# CONFIG_VGA_CONSOLE is not set
1318CONFIG_DUMMY_CONSOLE=y 1265CONFIG_DUMMY_CONSOLE=y
1319
1320#
1321# Sound
1322#
1323# CONFIG_SOUND is not set 1266# CONFIG_SOUND is not set
1324# CONFIG_HID_SUPPORT is not set 1267# CONFIG_HID_SUPPORT is not set
1325CONFIG_HID=m 1268CONFIG_HID=m
@@ -1339,6 +1282,7 @@ CONFIG_USB_DEVICEFS=y
1339# CONFIG_USB_DYNAMIC_MINORS is not set 1282# CONFIG_USB_DYNAMIC_MINORS is not set
1340CONFIG_USB_SUSPEND=y 1283CONFIG_USB_SUSPEND=y
1341# CONFIG_USB_OTG is not set 1284# CONFIG_USB_OTG is not set
1285CONFIG_USB_MON=y
1342 1286
1343# 1287#
1344# USB Host Controller Drivers 1288# USB Host Controller Drivers
@@ -1363,10 +1307,15 @@ CONFIG_USB_UHCI_HCD=m
1363# CONFIG_USB_R8A66597_HCD is not set 1307# CONFIG_USB_R8A66597_HCD is not set
1364 1308
1365# 1309#
1310# Enable Host or Gadget support to see Inventra options
1311#
1312
1313#
1366# USB Device Class drivers 1314# USB Device Class drivers
1367# 1315#
1368CONFIG_USB_ACM=m 1316CONFIG_USB_ACM=m
1369CONFIG_USB_PRINTER=m 1317CONFIG_USB_PRINTER=m
1318# CONFIG_USB_WDM is not set
1370 1319
1371# 1320#
1372# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1321# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1388,6 +1337,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1388# CONFIG_USB_STORAGE_ALAUDA is not set 1337# CONFIG_USB_STORAGE_ALAUDA is not set
1389# CONFIG_USB_STORAGE_ONETOUCH is not set 1338# CONFIG_USB_STORAGE_ONETOUCH is not set
1390# CONFIG_USB_STORAGE_KARMA is not set 1339# CONFIG_USB_STORAGE_KARMA is not set
1340# CONFIG_USB_STORAGE_SIERRA is not set
1391# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1341# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1392# CONFIG_USB_LIBUSUAL is not set 1342# CONFIG_USB_LIBUSUAL is not set
1393 1343
@@ -1396,7 +1346,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1396# 1346#
1397CONFIG_USB_MDC800=m 1347CONFIG_USB_MDC800=m
1398CONFIG_USB_MICROTEK=m 1348CONFIG_USB_MICROTEK=m
1399CONFIG_USB_MON=y
1400 1349
1401# 1350#
1402# USB port drivers 1351# USB port drivers
@@ -1405,7 +1354,6 @@ CONFIG_USB_SERIAL=m
1405CONFIG_USB_EZUSB=y 1354CONFIG_USB_EZUSB=y
1406CONFIG_USB_SERIAL_GENERIC=y 1355CONFIG_USB_SERIAL_GENERIC=y
1407# CONFIG_USB_SERIAL_AIRCABLE is not set 1356# CONFIG_USB_SERIAL_AIRCABLE is not set
1408# CONFIG_USB_SERIAL_AIRPRIME is not set
1409# CONFIG_USB_SERIAL_ARK3116 is not set 1357# CONFIG_USB_SERIAL_ARK3116 is not set
1410CONFIG_USB_SERIAL_BELKIN=m 1358CONFIG_USB_SERIAL_BELKIN=m
1411# CONFIG_USB_SERIAL_CH341 is not set 1359# CONFIG_USB_SERIAL_CH341 is not set
@@ -1443,6 +1391,7 @@ CONFIG_USB_SERIAL_KOBIL_SCT=m
1443CONFIG_USB_SERIAL_MCT_U232=m 1391CONFIG_USB_SERIAL_MCT_U232=m
1444# CONFIG_USB_SERIAL_MOS7720 is not set 1392# CONFIG_USB_SERIAL_MOS7720 is not set
1445# CONFIG_USB_SERIAL_MOS7840 is not set 1393# CONFIG_USB_SERIAL_MOS7840 is not set
1394# CONFIG_USB_SERIAL_MOTOROLA is not set
1446# CONFIG_USB_SERIAL_NAVMAN is not set 1395# CONFIG_USB_SERIAL_NAVMAN is not set
1447CONFIG_USB_SERIAL_PL2303=m 1396CONFIG_USB_SERIAL_PL2303=m
1448# CONFIG_USB_SERIAL_OTI6858 is not set 1397# CONFIG_USB_SERIAL_OTI6858 is not set
@@ -1464,7 +1413,6 @@ CONFIG_USB_SERIAL_OMNINET=m
1464CONFIG_USB_EMI62=m 1413CONFIG_USB_EMI62=m
1465# CONFIG_USB_EMI26 is not set 1414# CONFIG_USB_EMI26 is not set
1466# CONFIG_USB_ADUTUX is not set 1415# CONFIG_USB_ADUTUX is not set
1467CONFIG_USB_AUERSWALD=m
1468CONFIG_USB_RIO500=m 1416CONFIG_USB_RIO500=m
1469CONFIG_USB_LEGOTOWER=m 1417CONFIG_USB_LEGOTOWER=m
1470CONFIG_USB_LCD=m 1418CONFIG_USB_LCD=m
@@ -1481,6 +1429,7 @@ CONFIG_USB_LED=m
1481# CONFIG_USB_TRANCEVIBRATOR is not set 1429# CONFIG_USB_TRANCEVIBRATOR is not set
1482# CONFIG_USB_IOWARRIOR is not set 1430# CONFIG_USB_IOWARRIOR is not set
1483CONFIG_USB_TEST=m 1431CONFIG_USB_TEST=m
1432# CONFIG_USB_ISIGHTFW is not set
1484CONFIG_USB_ATM=m 1433CONFIG_USB_ATM=m
1485CONFIG_USB_SPEEDTOUCH=m 1434CONFIG_USB_SPEEDTOUCH=m
1486# CONFIG_USB_CXACRU is not set 1435# CONFIG_USB_CXACRU is not set
@@ -1601,6 +1550,7 @@ CONFIG_JFFS2_RTIME=y
1601CONFIG_CRAMFS=m 1550CONFIG_CRAMFS=m
1602CONFIG_VXFS_FS=m 1551CONFIG_VXFS_FS=m
1603# CONFIG_MINIX_FS is not set 1552# CONFIG_MINIX_FS is not set
1553# CONFIG_OMFS_FS is not set
1604# CONFIG_HPFS_FS is not set 1554# CONFIG_HPFS_FS is not set
1605# CONFIG_QNX4FS_FS is not set 1555# CONFIG_QNX4FS_FS is not set
1606# CONFIG_ROMFS_FS is not set 1556# CONFIG_ROMFS_FS is not set
@@ -1611,8 +1561,8 @@ CONFIG_NFS_FS=y
1611CONFIG_NFS_V3=y 1561CONFIG_NFS_V3=y
1612CONFIG_NFS_V3_ACL=y 1562CONFIG_NFS_V3_ACL=y
1613CONFIG_NFS_V4=y 1563CONFIG_NFS_V4=y
1614# CONFIG_NFSD is not set
1615CONFIG_ROOT_NFS=y 1564CONFIG_ROOT_NFS=y
1565# CONFIG_NFSD is not set
1616CONFIG_LOCKD=y 1566CONFIG_LOCKD=y
1617CONFIG_LOCKD_V4=y 1567CONFIG_LOCKD_V4=y
1618CONFIG_NFS_ACL_SUPPORT=y 1568CONFIG_NFS_ACL_SUPPORT=y
@@ -1620,7 +1570,6 @@ CONFIG_NFS_COMMON=y
1620CONFIG_SUNRPC=y 1570CONFIG_SUNRPC=y
1621CONFIG_SUNRPC_GSS=y 1571CONFIG_SUNRPC_GSS=y
1622CONFIG_SUNRPC_XPRT_RDMA=m 1572CONFIG_SUNRPC_XPRT_RDMA=m
1623# CONFIG_SUNRPC_BIND34 is not set
1624CONFIG_RPCSEC_GSS_KRB5=y 1573CONFIG_RPCSEC_GSS_KRB5=y
1625CONFIG_RPCSEC_GSS_SPKM3=m 1574CONFIG_RPCSEC_GSS_SPKM3=m
1626# CONFIG_SMB_FS is not set 1575# CONFIG_SMB_FS is not set
@@ -1705,6 +1654,7 @@ CONFIG_BITREVERSE=y
1705# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1654# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1706CONFIG_CRC_CCITT=m 1655CONFIG_CRC_CCITT=m
1707# CONFIG_CRC16 is not set 1656# CONFIG_CRC16 is not set
1657CONFIG_CRC_T10DIF=m
1708CONFIG_CRC_ITU_T=m 1658CONFIG_CRC_ITU_T=m
1709CONFIG_CRC32=y 1659CONFIG_CRC32=y
1710# CONFIG_CRC7 is not set 1660# CONFIG_CRC7 is not set
@@ -1732,6 +1682,8 @@ CONFIG_MAGIC_SYSRQ=y
1732CONFIG_DEBUG_KERNEL=y 1682CONFIG_DEBUG_KERNEL=y
1733# CONFIG_DEBUG_SHIRQ is not set 1683# CONFIG_DEBUG_SHIRQ is not set
1734CONFIG_DETECT_SOFTLOCKUP=y 1684CONFIG_DETECT_SOFTLOCKUP=y
1685# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1686CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1735CONFIG_SCHED_DEBUG=y 1687CONFIG_SCHED_DEBUG=y
1736# CONFIG_SCHEDSTATS is not set 1688# CONFIG_SCHEDSTATS is not set
1737# CONFIG_TIMER_STATS is not set 1689# CONFIG_TIMER_STATS is not set
@@ -1750,6 +1702,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1750CONFIG_DEBUG_INFO=y 1702CONFIG_DEBUG_INFO=y
1751# CONFIG_DEBUG_VM is not set 1703# CONFIG_DEBUG_VM is not set
1752# CONFIG_DEBUG_WRITECOUNT is not set 1704# CONFIG_DEBUG_WRITECOUNT is not set
1705CONFIG_DEBUG_MEMORY_INIT=y
1753# CONFIG_DEBUG_LIST is not set 1706# CONFIG_DEBUG_LIST is not set
1754# CONFIG_DEBUG_SG is not set 1707# CONFIG_DEBUG_SG is not set
1755# CONFIG_BOOT_PRINTK_DELAY is not set 1708# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1758,11 +1711,22 @@ CONFIG_DEBUG_INFO=y
1758# CONFIG_BACKTRACE_SELF_TEST is not set 1711# CONFIG_BACKTRACE_SELF_TEST is not set
1759# CONFIG_LKDTM is not set 1712# CONFIG_LKDTM is not set
1760# CONFIG_FAULT_INJECTION is not set 1713# CONFIG_FAULT_INJECTION is not set
1714# CONFIG_LATENCYTOP is not set
1715CONFIG_SYSCTL_SYSCALL_CHECK=y
1716CONFIG_HAVE_FTRACE=y
1717CONFIG_HAVE_DYNAMIC_FTRACE=y
1718# CONFIG_FTRACE is not set
1719# CONFIG_SCHED_TRACER is not set
1720# CONFIG_CONTEXT_SWITCH_TRACER is not set
1761# CONFIG_SAMPLES is not set 1721# CONFIG_SAMPLES is not set
1722CONFIG_HAVE_ARCH_KGDB=y
1723# CONFIG_KGDB is not set
1762CONFIG_DEBUG_STACKOVERFLOW=y 1724CONFIG_DEBUG_STACKOVERFLOW=y
1763CONFIG_DEBUG_STACK_USAGE=y 1725CONFIG_DEBUG_STACK_USAGE=y
1764# CONFIG_DEBUG_PAGEALLOC is not set 1726# CONFIG_DEBUG_PAGEALLOC is not set
1765# CONFIG_DEBUGGER is not set 1727# CONFIG_CODE_PATCHING_SELFTEST is not set
1728# CONFIG_FTR_FIXUP_SELFTEST is not set
1729# CONFIG_XMON is not set
1766# CONFIG_IRQSTACKS is not set 1730# CONFIG_IRQSTACKS is not set
1767# CONFIG_BDI_SWITCH is not set 1731# CONFIG_BDI_SWITCH is not set
1768CONFIG_BOOTX_TEXT=y 1732CONFIG_BOOTX_TEXT=y
@@ -1776,7 +1740,6 @@ CONFIG_KEYS_DEBUG_PROC_KEYS=y
1776CONFIG_SECURITY=y 1740CONFIG_SECURITY=y
1777CONFIG_SECURITY_NETWORK=y 1741CONFIG_SECURITY_NETWORK=y
1778# CONFIG_SECURITY_NETWORK_XFRM is not set 1742# CONFIG_SECURITY_NETWORK_XFRM is not set
1779CONFIG_SECURITY_CAPABILITIES=y
1780# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1743# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1781CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1744CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1782CONFIG_SECURITY_SELINUX=y 1745CONFIG_SECURITY_SELINUX=y
@@ -1835,6 +1798,10 @@ CONFIG_CRYPTO_CRC32C=m
1835CONFIG_CRYPTO_MD4=m 1798CONFIG_CRYPTO_MD4=m
1836CONFIG_CRYPTO_MD5=y 1799CONFIG_CRYPTO_MD5=y
1837CONFIG_CRYPTO_MICHAEL_MIC=m 1800CONFIG_CRYPTO_MICHAEL_MIC=m
1801# CONFIG_CRYPTO_RMD128 is not set
1802# CONFIG_CRYPTO_RMD160 is not set
1803# CONFIG_CRYPTO_RMD256 is not set
1804# CONFIG_CRYPTO_RMD320 is not set
1838CONFIG_CRYPTO_SHA1=y 1805CONFIG_CRYPTO_SHA1=y
1839CONFIG_CRYPTO_SHA256=m 1806CONFIG_CRYPTO_SHA256=m
1840CONFIG_CRYPTO_SHA512=m 1807CONFIG_CRYPTO_SHA512=m
diff --git a/arch/powerpc/configs/chrp32_defconfig b/arch/powerpc/configs/chrp32_defconfig
index 05360d4ef1b..2e0ef8c1822 100644
--- a/arch/powerpc/configs/chrp32_defconfig
+++ b/arch/powerpc/configs/chrp32_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc3 3# Linux kernel version: 2.6.27-rc4
4# Tue May 20 20:00:44 2008 4# Tue Aug 26 13:12:40 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -33,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -90,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
90CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
91# CONFIG_EMBEDDED is not set 92# CONFIG_EMBEDDED is not set
92CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
93CONFIG_SYSCTL_SYSCALL_CHECK=y
94CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
95# CONFIG_KALLSYMS_ALL is not set 95# CONFIG_KALLSYMS_ALL is not set
96# CONFIG_KALLSYMS_EXTRA_PASS is not set 96# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -117,10 +117,16 @@ CONFIG_SLUB=y
117# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_DMA_ATTRS is not set 125# CONFIG_HAVE_DMA_ATTRS is not set
126CONFIG_USE_GENERIC_SMP_HELPERS=y
127# CONFIG_HAVE_CLK is not set
123CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -138,6 +144,7 @@ CONFIG_LBD=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 144# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 145# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 146# CONFIG_BLK_DEV_BSG is not set
147# CONFIG_BLK_DEV_INTEGRITY is not set
141 148
142# 149#
143# IO Schedulers 150# IO Schedulers
@@ -157,19 +164,18 @@ CONFIG_CLASSIC_RCU=y
157# Platform support 164# Platform support
158# 165#
159CONFIG_PPC_MULTIPLATFORM=y 166CONFIG_PPC_MULTIPLATFORM=y
160# CONFIG_PPC_82xx is not set
161# CONFIG_PPC_83xx is not set
162# CONFIG_PPC_86xx is not set
163CONFIG_CLASSIC32=y 167CONFIG_CLASSIC32=y
164CONFIG_PPC_CHRP=y 168CONFIG_PPC_CHRP=y
165# CONFIG_PPC_MPC512x is not set
166# CONFIG_PPC_MPC5121 is not set
167# CONFIG_MPC5121_ADS is not set 169# CONFIG_MPC5121_ADS is not set
170# CONFIG_MPC5121_GENERIC is not set
168# CONFIG_PPC_MPC52xx is not set 171# CONFIG_PPC_MPC52xx is not set
169# CONFIG_PPC_PMAC is not set 172# CONFIG_PPC_PMAC is not set
170# CONFIG_PPC_CELL is not set 173# CONFIG_PPC_CELL is not set
171# CONFIG_PPC_CELL_NATIVE is not set 174# CONFIG_PPC_CELL_NATIVE is not set
175# CONFIG_PPC_82xx is not set
172# CONFIG_PQ2ADS is not set 176# CONFIG_PQ2ADS is not set
177# CONFIG_PPC_83xx is not set
178# CONFIG_PPC_86xx is not set
173CONFIG_PPC_NATIVE=y 179CONFIG_PPC_NATIVE=y
174# CONFIG_UDBG_RTAS_CONSOLE is not set 180# CONFIG_UDBG_RTAS_CONSOLE is not set
175# CONFIG_IPIC is not set 181# CONFIG_IPIC is not set
@@ -201,7 +207,7 @@ CONFIG_HZ_250=y
201# CONFIG_HZ_300 is not set 207# CONFIG_HZ_300 is not set
202# CONFIG_HZ_1000 is not set 208# CONFIG_HZ_1000 is not set
203CONFIG_HZ=250 209CONFIG_HZ=250
204# CONFIG_SCHED_HRTICK is not set 210CONFIG_SCHED_HRTICK=y
205CONFIG_PREEMPT_NONE=y 211CONFIG_PREEMPT_NONE=y
206# CONFIG_PREEMPT_VOLUNTARY is not set 212# CONFIG_PREEMPT_VOLUNTARY is not set
207# CONFIG_PREEMPT is not set 213# CONFIG_PREEMPT is not set
@@ -225,6 +231,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 231# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
226CONFIG_PAGEFLAGS_EXTENDED=y 232CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
234# CONFIG_MIGRATION is not set
228# CONFIG_RESOURCES_64BIT is not set 235# CONFIG_RESOURCES_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1 236CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 237CONFIG_BOUNCE=y
@@ -232,6 +239,7 @@ CONFIG_VIRT_TO_BUS=y
232CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
233CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
234# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
242CONFIG_EXTRA_TARGETS=""
235# CONFIG_PM is not set 243# CONFIG_PM is not set
236CONFIG_SECCOMP=y 244CONFIG_SECCOMP=y
237CONFIG_ISA_DMA_API=y 245CONFIG_ISA_DMA_API=y
@@ -268,10 +276,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
268CONFIG_KERNEL_START=0xc0000000 276CONFIG_KERNEL_START=0xc0000000
269CONFIG_PHYSICAL_START=0x00000000 277CONFIG_PHYSICAL_START=0x00000000
270CONFIG_TASK_SIZE=0xc0000000 278CONFIG_TASK_SIZE=0xc0000000
271
272#
273# Networking
274#
275CONFIG_NET=y 279CONFIG_NET=y
276 280
277# 281#
@@ -398,7 +402,9 @@ CONFIG_NF_NAT_SIP=m
398CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 402CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
399# CONFIG_STANDALONE is not set 403# CONFIG_STANDALONE is not set
400CONFIG_PREVENT_FIRMWARE_BUILD=y 404CONFIG_PREVENT_FIRMWARE_BUILD=y
401# CONFIG_FW_LOADER is not set 405CONFIG_FW_LOADER=y
406CONFIG_FIRMWARE_IN_KERNEL=y
407CONFIG_EXTRA_FIRMWARE=""
402# CONFIG_DEBUG_DRIVER is not set 408# CONFIG_DEBUG_DRIVER is not set
403# CONFIG_DEBUG_DEVRES is not set 409# CONFIG_DEBUG_DEVRES is not set
404# CONFIG_SYS_HYPERVISOR is not set 410# CONFIG_SYS_HYPERVISOR is not set
@@ -427,12 +433,14 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
427# CONFIG_BLK_DEV_XIP is not set 433# CONFIG_BLK_DEV_XIP is not set
428# CONFIG_CDROM_PKTCDVD is not set 434# CONFIG_CDROM_PKTCDVD is not set
429# CONFIG_ATA_OVER_ETH is not set 435# CONFIG_ATA_OVER_ETH is not set
436# CONFIG_BLK_DEV_HD is not set
430CONFIG_MISC_DEVICES=y 437CONFIG_MISC_DEVICES=y
431# CONFIG_PHANTOM is not set 438# CONFIG_PHANTOM is not set
432# CONFIG_EEPROM_93CX6 is not set 439# CONFIG_EEPROM_93CX6 is not set
433# CONFIG_SGI_IOC4 is not set 440# CONFIG_SGI_IOC4 is not set
434# CONFIG_TIFM_CORE is not set 441# CONFIG_TIFM_CORE is not set
435# CONFIG_ENCLOSURE_SERVICES is not set 442# CONFIG_ENCLOSURE_SERVICES is not set
443# CONFIG_HP_ILO is not set
436CONFIG_HAVE_IDE=y 444CONFIG_HAVE_IDE=y
437CONFIG_IDE=y 445CONFIG_IDE=y
438CONFIG_BLK_DEV_IDE=y 446CONFIG_BLK_DEV_IDE=y
@@ -440,6 +448,7 @@ CONFIG_BLK_DEV_IDE=y
440# 448#
441# Please see Documentation/ide/ide.txt for help/info on IDE drives 449# Please see Documentation/ide/ide.txt for help/info on IDE drives
442# 450#
451CONFIG_IDE_TIMINGS=y
443# CONFIG_BLK_DEV_IDE_SATA is not set 452# CONFIG_BLK_DEV_IDE_SATA is not set
444CONFIG_BLK_DEV_IDEDISK=y 453CONFIG_BLK_DEV_IDEDISK=y
445CONFIG_IDEDISK_MULTI_MODE=y 454CONFIG_IDEDISK_MULTI_MODE=y
@@ -454,7 +463,6 @@ CONFIG_IDE_PROC_FS=y
454# 463#
455# IDE chipset support/bugfixes 464# IDE chipset support/bugfixes
456# 465#
457CONFIG_IDE_GENERIC=y
458# CONFIG_BLK_DEV_PLATFORM is not set 466# CONFIG_BLK_DEV_PLATFORM is not set
459CONFIG_BLK_DEV_IDEDMA_SFF=y 467CONFIG_BLK_DEV_IDEDMA_SFF=y
460 468
@@ -472,10 +480,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
472# CONFIG_BLK_DEV_AMD74XX is not set 480# CONFIG_BLK_DEV_AMD74XX is not set
473# CONFIG_BLK_DEV_CMD64X is not set 481# CONFIG_BLK_DEV_CMD64X is not set
474# CONFIG_BLK_DEV_TRIFLEX is not set 482# CONFIG_BLK_DEV_TRIFLEX is not set
475# CONFIG_BLK_DEV_CY82C693 is not set
476# CONFIG_BLK_DEV_CS5520 is not set 483# CONFIG_BLK_DEV_CS5520 is not set
477# CONFIG_BLK_DEV_CS5530 is not set 484# CONFIG_BLK_DEV_CS5530 is not set
478# CONFIG_BLK_DEV_HPT34X is not set
479# CONFIG_BLK_DEV_HPT366 is not set 485# CONFIG_BLK_DEV_HPT366 is not set
480# CONFIG_BLK_DEV_JMICRON is not set 486# CONFIG_BLK_DEV_JMICRON is not set
481# CONFIG_BLK_DEV_SC1200 is not set 487# CONFIG_BLK_DEV_SC1200 is not set
@@ -493,8 +499,6 @@ CONFIG_BLK_DEV_SL82C105=y
493CONFIG_BLK_DEV_VIA82CXXX=y 499CONFIG_BLK_DEV_VIA82CXXX=y
494# CONFIG_BLK_DEV_TC86C001 is not set 500# CONFIG_BLK_DEV_TC86C001 is not set
495CONFIG_BLK_DEV_IDEDMA=y 501CONFIG_BLK_DEV_IDEDMA=y
496# CONFIG_BLK_DEV_HD_ONLY is not set
497# CONFIG_BLK_DEV_HD is not set
498 502
499# 503#
500# SCSI device support 504# SCSI device support
@@ -588,6 +592,7 @@ CONFIG_SCSI_SYM53C8XX_MMIO=y
588# CONFIG_SCSI_NSP32 is not set 592# CONFIG_SCSI_NSP32 is not set
589# CONFIG_SCSI_DEBUG is not set 593# CONFIG_SCSI_DEBUG is not set
590# CONFIG_SCSI_SRP is not set 594# CONFIG_SCSI_SRP is not set
595# CONFIG_SCSI_DH is not set
591# CONFIG_ATA is not set 596# CONFIG_ATA is not set
592# CONFIG_MD is not set 597# CONFIG_MD is not set
593# CONFIG_FUSION is not set 598# CONFIG_FUSION is not set
@@ -595,12 +600,15 @@ CONFIG_SCSI_SYM53C8XX_MMIO=y
595# 600#
596# IEEE 1394 (FireWire) support 601# IEEE 1394 (FireWire) support
597# 602#
603
604#
605# Enable only one of the two stacks, unless you know what you are doing
606#
598# CONFIG_FIREWIRE is not set 607# CONFIG_FIREWIRE is not set
599# CONFIG_IEEE1394 is not set 608# CONFIG_IEEE1394 is not set
600# CONFIG_I2O is not set 609# CONFIG_I2O is not set
601# CONFIG_MACINTOSH_DRIVERS is not set 610# CONFIG_MACINTOSH_DRIVERS is not set
602CONFIG_NETDEVICES=y 611CONFIG_NETDEVICES=y
603# CONFIG_NETDEVICES_MULTIQUEUE is not set
604# CONFIG_DUMMY is not set 612# CONFIG_DUMMY is not set
605# CONFIG_BONDING is not set 613# CONFIG_BONDING is not set
606# CONFIG_MACVLAN is not set 614# CONFIG_MACVLAN is not set
@@ -660,14 +668,12 @@ CONFIG_8139TOO=y
660# CONFIG_TLAN is not set 668# CONFIG_TLAN is not set
661CONFIG_VIA_RHINE=y 669CONFIG_VIA_RHINE=y
662# CONFIG_VIA_RHINE_MMIO is not set 670# CONFIG_VIA_RHINE_MMIO is not set
663# CONFIG_VIA_RHINE_NAPI is not set
664# CONFIG_SC92031 is not set 671# CONFIG_SC92031 is not set
665CONFIG_NETDEV_1000=y 672CONFIG_NETDEV_1000=y
666# CONFIG_ACENIC is not set 673# CONFIG_ACENIC is not set
667# CONFIG_DL2K is not set 674# CONFIG_DL2K is not set
668# CONFIG_E1000 is not set 675# CONFIG_E1000 is not set
669# CONFIG_E1000E is not set 676# CONFIG_E1000E is not set
670# CONFIG_E1000E_ENABLED is not set
671# CONFIG_IP1000 is not set 677# CONFIG_IP1000 is not set
672# CONFIG_IGB is not set 678# CONFIG_IGB is not set
673# CONFIG_NS83820 is not set 679# CONFIG_NS83820 is not set
@@ -683,6 +689,7 @@ CONFIG_NETDEV_1000=y
683CONFIG_MV643XX_ETH=y 689CONFIG_MV643XX_ETH=y
684# CONFIG_QLA3XXX is not set 690# CONFIG_QLA3XXX is not set
685# CONFIG_ATL1 is not set 691# CONFIG_ATL1 is not set
692# CONFIG_ATL1E is not set
686CONFIG_NETDEV_10000=y 693CONFIG_NETDEV_10000=y
687# CONFIG_CHELSIO_T1 is not set 694# CONFIG_CHELSIO_T1 is not set
688# CONFIG_CHELSIO_T3 is not set 695# CONFIG_CHELSIO_T3 is not set
@@ -773,6 +780,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
773# CONFIG_MOUSE_PS2_TOUCHKIT is not set 780# CONFIG_MOUSE_PS2_TOUCHKIT is not set
774# CONFIG_MOUSE_SERIAL is not set 781# CONFIG_MOUSE_SERIAL is not set
775# CONFIG_MOUSE_APPLETOUCH is not set 782# CONFIG_MOUSE_APPLETOUCH is not set
783# CONFIG_MOUSE_BCM5974 is not set
776# CONFIG_MOUSE_INPORT is not set 784# CONFIG_MOUSE_INPORT is not set
777# CONFIG_MOUSE_LOGIBM is not set 785# CONFIG_MOUSE_LOGIBM is not set
778# CONFIG_MOUSE_PC110PAD is not set 786# CONFIG_MOUSE_PC110PAD is not set
@@ -798,12 +806,14 @@ CONFIG_SERIO_SERPORT=y
798# CONFIG_SERIO_PCIPS2 is not set 806# CONFIG_SERIO_PCIPS2 is not set
799CONFIG_SERIO_LIBPS2=y 807CONFIG_SERIO_LIBPS2=y
800# CONFIG_SERIO_RAW is not set 808# CONFIG_SERIO_RAW is not set
809# CONFIG_SERIO_XILINX_XPS_PS2 is not set
801# CONFIG_GAMEPORT is not set 810# CONFIG_GAMEPORT is not set
802 811
803# 812#
804# Character devices 813# Character devices
805# 814#
806CONFIG_VT=y 815CONFIG_VT=y
816CONFIG_CONSOLE_TRANSLATIONS=y
807CONFIG_VT_CONSOLE=y 817CONFIG_VT_CONSOLE=y
808CONFIG_HW_CONSOLE=y 818CONFIG_HW_CONSOLE=y
809# CONFIG_VT_HW_CONSOLE_BINDING is not set 819# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -848,46 +858,71 @@ CONFIG_DEVPORT=y
848CONFIG_I2C=y 858CONFIG_I2C=y
849CONFIG_I2C_BOARDINFO=y 859CONFIG_I2C_BOARDINFO=y
850# CONFIG_I2C_CHARDEV is not set 860# CONFIG_I2C_CHARDEV is not set
861CONFIG_I2C_HELPER_AUTO=y
851CONFIG_I2C_ALGOBIT=y 862CONFIG_I2C_ALGOBIT=y
852 863
853# 864#
854# I2C Hardware Bus support 865# I2C Hardware Bus support
855# 866#
867
868#
869# PC SMBus host controller drivers
870#
856# CONFIG_I2C_ALI1535 is not set 871# CONFIG_I2C_ALI1535 is not set
857# CONFIG_I2C_ALI1563 is not set 872# CONFIG_I2C_ALI1563 is not set
858# CONFIG_I2C_ALI15X3 is not set 873# CONFIG_I2C_ALI15X3 is not set
859# CONFIG_I2C_AMD756 is not set 874# CONFIG_I2C_AMD756 is not set
860# CONFIG_I2C_AMD8111 is not set 875# CONFIG_I2C_AMD8111 is not set
861# CONFIG_I2C_HYDRA is not set
862# CONFIG_I2C_I801 is not set 876# CONFIG_I2C_I801 is not set
863# CONFIG_I2C_I810 is not set 877# CONFIG_I2C_ISCH is not set
864# CONFIG_I2C_PIIX4 is not set 878# CONFIG_I2C_PIIX4 is not set
865# CONFIG_I2C_MPC is not set
866# CONFIG_I2C_NFORCE2 is not set 879# CONFIG_I2C_NFORCE2 is not set
867# CONFIG_I2C_OCORES is not set
868# CONFIG_I2C_PARPORT_LIGHT is not set
869# CONFIG_I2C_PROSAVAGE is not set
870# CONFIG_I2C_SAVAGE4 is not set
871# CONFIG_I2C_SIMTEC is not set
872# CONFIG_I2C_SIS5595 is not set 880# CONFIG_I2C_SIS5595 is not set
873# CONFIG_I2C_SIS630 is not set 881# CONFIG_I2C_SIS630 is not set
874# CONFIG_I2C_SIS96X is not set 882# CONFIG_I2C_SIS96X is not set
875# CONFIG_I2C_TAOS_EVM is not set
876# CONFIG_I2C_STUB is not set
877# CONFIG_I2C_TINY_USB is not set
878# CONFIG_I2C_VIA is not set 883# CONFIG_I2C_VIA is not set
879# CONFIG_I2C_VIAPRO is not set 884# CONFIG_I2C_VIAPRO is not set
885
886#
887# Mac SMBus host controller drivers
888#
889# CONFIG_I2C_HYDRA is not set
890
891#
892# I2C system bus drivers (mostly embedded / system-on-chip)
893#
894# CONFIG_I2C_MPC is not set
895# CONFIG_I2C_OCORES is not set
896# CONFIG_I2C_SIMTEC is not set
897
898#
899# External I2C/SMBus adapter drivers
900#
901# CONFIG_I2C_PARPORT_LIGHT is not set
902# CONFIG_I2C_TAOS_EVM is not set
903# CONFIG_I2C_TINY_USB is not set
904
905#
906# Graphics adapter I2C/DDC channel drivers
907#
880# CONFIG_I2C_VOODOO3 is not set 908# CONFIG_I2C_VOODOO3 is not set
909
910#
911# Other I2C/SMBus bus drivers
912#
881# CONFIG_I2C_PCA_ISA is not set 913# CONFIG_I2C_PCA_ISA is not set
882# CONFIG_I2C_PCA_PLATFORM is not set 914# CONFIG_I2C_PCA_PLATFORM is not set
915# CONFIG_I2C_STUB is not set
883 916
884# 917#
885# Miscellaneous I2C Chip support 918# Miscellaneous I2C Chip support
886# 919#
887# CONFIG_DS1682 is not set 920# CONFIG_DS1682 is not set
921# CONFIG_AT24 is not set
888# CONFIG_SENSORS_EEPROM is not set 922# CONFIG_SENSORS_EEPROM is not set
889# CONFIG_SENSORS_PCF8574 is not set 923# CONFIG_SENSORS_PCF8574 is not set
890# CONFIG_PCF8575 is not set 924# CONFIG_PCF8575 is not set
925# CONFIG_SENSORS_PCA9539 is not set
891# CONFIG_SENSORS_PCF8591 is not set 926# CONFIG_SENSORS_PCF8591 is not set
892# CONFIG_SENSORS_MAX6875 is not set 927# CONFIG_SENSORS_MAX6875 is not set
893# CONFIG_SENSORS_TSL2550 is not set 928# CONFIG_SENSORS_TSL2550 is not set
@@ -896,10 +931,13 @@ CONFIG_I2C_ALGOBIT=y
896# CONFIG_I2C_DEBUG_BUS is not set 931# CONFIG_I2C_DEBUG_BUS is not set
897# CONFIG_I2C_DEBUG_CHIP is not set 932# CONFIG_I2C_DEBUG_CHIP is not set
898# CONFIG_SPI is not set 933# CONFIG_SPI is not set
934CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
935# CONFIG_GPIOLIB is not set
899# CONFIG_W1 is not set 936# CONFIG_W1 is not set
900# CONFIG_POWER_SUPPLY is not set 937# CONFIG_POWER_SUPPLY is not set
901# CONFIG_HWMON is not set 938# CONFIG_HWMON is not set
902# CONFIG_THERMAL is not set 939# CONFIG_THERMAL is not set
940# CONFIG_THERMAL_HWMON is not set
903# CONFIG_WATCHDOG is not set 941# CONFIG_WATCHDOG is not set
904 942
905# 943#
@@ -911,8 +949,10 @@ CONFIG_SSB_POSSIBLE=y
911# 949#
912# Multifunction device drivers 950# Multifunction device drivers
913# 951#
952# CONFIG_MFD_CORE is not set
914# CONFIG_MFD_SM501 is not set 953# CONFIG_MFD_SM501 is not set
915# CONFIG_HTC_PASIC3 is not set 954# CONFIG_HTC_PASIC3 is not set
955# CONFIG_MFD_TMIO is not set
916 956
917# 957#
918# Multimedia devices 958# Multimedia devices
@@ -997,10 +1037,13 @@ CONFIG_FB_3DFX=y
997# CONFIG_FB_TRIDENT is not set 1037# CONFIG_FB_TRIDENT is not set
998# CONFIG_FB_ARK is not set 1038# CONFIG_FB_ARK is not set
999# CONFIG_FB_PM3 is not set 1039# CONFIG_FB_PM3 is not set
1040# CONFIG_FB_CARMINE is not set
1000# CONFIG_FB_IBM_GXT4500 is not set 1041# CONFIG_FB_IBM_GXT4500 is not set
1001# CONFIG_FB_VIRTUAL is not set 1042# CONFIG_FB_VIRTUAL is not set
1002CONFIG_BACKLIGHT_LCD_SUPPORT=y 1043CONFIG_BACKLIGHT_LCD_SUPPORT=y
1003CONFIG_LCD_CLASS_DEVICE=m 1044CONFIG_LCD_CLASS_DEVICE=m
1045# CONFIG_LCD_ILI9320 is not set
1046# CONFIG_LCD_PLATFORM is not set
1004CONFIG_BACKLIGHT_CLASS_DEVICE=y 1047CONFIG_BACKLIGHT_CLASS_DEVICE=y
1005# CONFIG_BACKLIGHT_CORGI is not set 1048# CONFIG_BACKLIGHT_CORGI is not set
1006 1049
@@ -1030,10 +1073,6 @@ CONFIG_LOGO=y
1030CONFIG_LOGO_LINUX_MONO=y 1073CONFIG_LOGO_LINUX_MONO=y
1031CONFIG_LOGO_LINUX_VGA16=y 1074CONFIG_LOGO_LINUX_VGA16=y
1032CONFIG_LOGO_LINUX_CLUT224=y 1075CONFIG_LOGO_LINUX_CLUT224=y
1033
1034#
1035# Sound
1036#
1037# CONFIG_SOUND is not set 1076# CONFIG_SOUND is not set
1038CONFIG_HID_SUPPORT=y 1077CONFIG_HID_SUPPORT=y
1039CONFIG_HID=y 1078CONFIG_HID=y
@@ -1062,6 +1101,7 @@ CONFIG_USB_DEVICEFS=y
1062CONFIG_USB_DEVICE_CLASS=y 1101CONFIG_USB_DEVICE_CLASS=y
1063# CONFIG_USB_DYNAMIC_MINORS is not set 1102# CONFIG_USB_DYNAMIC_MINORS is not set
1064# CONFIG_USB_OTG is not set 1103# CONFIG_USB_OTG is not set
1104CONFIG_USB_MON=y
1065 1105
1066# 1106#
1067# USB Host Controller Drivers 1107# USB Host Controller Drivers
@@ -1087,6 +1127,7 @@ CONFIG_USB_UHCI_HCD=y
1087# 1127#
1088# CONFIG_USB_ACM is not set 1128# CONFIG_USB_ACM is not set
1089# CONFIG_USB_PRINTER is not set 1129# CONFIG_USB_PRINTER is not set
1130# CONFIG_USB_WDM is not set
1090 1131
1091# 1132#
1092# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1133# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1108,6 +1149,7 @@ CONFIG_USB_STORAGE=m
1108# CONFIG_USB_STORAGE_ALAUDA is not set 1149# CONFIG_USB_STORAGE_ALAUDA is not set
1109# CONFIG_USB_STORAGE_ONETOUCH is not set 1150# CONFIG_USB_STORAGE_ONETOUCH is not set
1110# CONFIG_USB_STORAGE_KARMA is not set 1151# CONFIG_USB_STORAGE_KARMA is not set
1152# CONFIG_USB_STORAGE_SIERRA is not set
1111# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1153# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1112# CONFIG_USB_LIBUSUAL is not set 1154# CONFIG_USB_LIBUSUAL is not set
1113 1155
@@ -1116,7 +1158,6 @@ CONFIG_USB_STORAGE=m
1116# 1158#
1117# CONFIG_USB_MDC800 is not set 1159# CONFIG_USB_MDC800 is not set
1118# CONFIG_USB_MICROTEK is not set 1160# CONFIG_USB_MICROTEK is not set
1119CONFIG_USB_MON=y
1120 1161
1121# 1162#
1122# USB port drivers 1163# USB port drivers
@@ -1129,7 +1170,6 @@ CONFIG_USB_MON=y
1129# CONFIG_USB_EMI62 is not set 1170# CONFIG_USB_EMI62 is not set
1130# CONFIG_USB_EMI26 is not set 1171# CONFIG_USB_EMI26 is not set
1131# CONFIG_USB_ADUTUX is not set 1172# CONFIG_USB_ADUTUX is not set
1132# CONFIG_USB_AUERSWALD is not set
1133# CONFIG_USB_RIO500 is not set 1173# CONFIG_USB_RIO500 is not set
1134# CONFIG_USB_LEGOTOWER is not set 1174# CONFIG_USB_LEGOTOWER is not set
1135# CONFIG_USB_LCD is not set 1175# CONFIG_USB_LCD is not set
@@ -1146,6 +1186,7 @@ CONFIG_USB_MON=y
1146# CONFIG_USB_TRANCEVIBRATOR is not set 1186# CONFIG_USB_TRANCEVIBRATOR is not set
1147# CONFIG_USB_IOWARRIOR is not set 1187# CONFIG_USB_IOWARRIOR is not set
1148# CONFIG_USB_TEST is not set 1188# CONFIG_USB_TEST is not set
1189# CONFIG_USB_ISIGHTFW is not set
1149# CONFIG_USB_GADGET is not set 1190# CONFIG_USB_GADGET is not set
1150# CONFIG_MMC is not set 1191# CONFIG_MMC is not set
1151# CONFIG_MEMSTICK is not set 1192# CONFIG_MEMSTICK is not set
@@ -1226,6 +1267,7 @@ CONFIG_TMPFS=y
1226# CONFIG_CRAMFS is not set 1267# CONFIG_CRAMFS is not set
1227# CONFIG_VXFS_FS is not set 1268# CONFIG_VXFS_FS is not set
1228# CONFIG_MINIX_FS is not set 1269# CONFIG_MINIX_FS is not set
1270# CONFIG_OMFS_FS is not set
1229# CONFIG_HPFS_FS is not set 1271# CONFIG_HPFS_FS is not set
1230# CONFIG_QNX4FS_FS is not set 1272# CONFIG_QNX4FS_FS is not set
1231# CONFIG_ROMFS_FS is not set 1273# CONFIG_ROMFS_FS is not set
@@ -1310,6 +1352,7 @@ CONFIG_BITREVERSE=y
1310# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1352# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1311CONFIG_CRC_CCITT=m 1353CONFIG_CRC_CCITT=m
1312# CONFIG_CRC16 is not set 1354# CONFIG_CRC16 is not set
1355CONFIG_CRC_T10DIF=y
1313# CONFIG_CRC_ITU_T is not set 1356# CONFIG_CRC_ITU_T is not set
1314CONFIG_CRC32=y 1357CONFIG_CRC32=y
1315# CONFIG_CRC7 is not set 1358# CONFIG_CRC7 is not set
@@ -1336,6 +1379,8 @@ CONFIG_MAGIC_SYSRQ=y
1336CONFIG_DEBUG_KERNEL=y 1379CONFIG_DEBUG_KERNEL=y
1337# CONFIG_DEBUG_SHIRQ is not set 1380# CONFIG_DEBUG_SHIRQ is not set
1338CONFIG_DETECT_SOFTLOCKUP=y 1381CONFIG_DETECT_SOFTLOCKUP=y
1382# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1383CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1339CONFIG_SCHED_DEBUG=y 1384CONFIG_SCHED_DEBUG=y
1340# CONFIG_SCHEDSTATS is not set 1385# CONFIG_SCHEDSTATS is not set
1341# CONFIG_TIMER_STATS is not set 1386# CONFIG_TIMER_STATS is not set
@@ -1354,20 +1399,32 @@ CONFIG_DEBUG_BUGVERBOSE=y
1354# CONFIG_DEBUG_INFO is not set 1399# CONFIG_DEBUG_INFO is not set
1355# CONFIG_DEBUG_VM is not set 1400# CONFIG_DEBUG_VM is not set
1356# CONFIG_DEBUG_WRITECOUNT is not set 1401# CONFIG_DEBUG_WRITECOUNT is not set
1402CONFIG_DEBUG_MEMORY_INIT=y
1357# CONFIG_DEBUG_LIST is not set 1403# CONFIG_DEBUG_LIST is not set
1358# CONFIG_DEBUG_SG is not set 1404# CONFIG_DEBUG_SG is not set
1359# CONFIG_BOOT_PRINTK_DELAY is not set 1405# CONFIG_BOOT_PRINTK_DELAY is not set
1360# CONFIG_RCU_TORTURE_TEST is not set 1406# CONFIG_RCU_TORTURE_TEST is not set
1361# CONFIG_BACKTRACE_SELF_TEST is not set 1407# CONFIG_BACKTRACE_SELF_TEST is not set
1362# CONFIG_FAULT_INJECTION is not set 1408# CONFIG_FAULT_INJECTION is not set
1409# CONFIG_LATENCYTOP is not set
1410CONFIG_SYSCTL_SYSCALL_CHECK=y
1411CONFIG_HAVE_FTRACE=y
1412CONFIG_HAVE_DYNAMIC_FTRACE=y
1413# CONFIG_FTRACE is not set
1414# CONFIG_SCHED_TRACER is not set
1415# CONFIG_CONTEXT_SWITCH_TRACER is not set
1363# CONFIG_SAMPLES is not set 1416# CONFIG_SAMPLES is not set
1417CONFIG_HAVE_ARCH_KGDB=y
1418# CONFIG_KGDB is not set
1364# CONFIG_DEBUG_STACKOVERFLOW is not set 1419# CONFIG_DEBUG_STACKOVERFLOW is not set
1365# CONFIG_DEBUG_STACK_USAGE is not set 1420# CONFIG_DEBUG_STACK_USAGE is not set
1366# CONFIG_DEBUG_PAGEALLOC is not set 1421# CONFIG_DEBUG_PAGEALLOC is not set
1367CONFIG_DEBUGGER=y 1422# CONFIG_CODE_PATCHING_SELFTEST is not set
1423# CONFIG_FTR_FIXUP_SELFTEST is not set
1368CONFIG_XMON=y 1424CONFIG_XMON=y
1369CONFIG_XMON_DEFAULT=y 1425CONFIG_XMON_DEFAULT=y
1370CONFIG_XMON_DISASSEMBLY=y 1426CONFIG_XMON_DISASSEMBLY=y
1427CONFIG_DEBUGGER=y
1371CONFIG_IRQSTACKS=y 1428CONFIG_IRQSTACKS=y
1372# CONFIG_BDI_SWITCH is not set 1429# CONFIG_BDI_SWITCH is not set
1373# CONFIG_BOOTX_TEXT is not set 1430# CONFIG_BOOTX_TEXT is not set
@@ -1424,6 +1481,10 @@ CONFIG_CRYPTO_PCBC=m
1424# CONFIG_CRYPTO_MD4 is not set 1481# CONFIG_CRYPTO_MD4 is not set
1425# CONFIG_CRYPTO_MD5 is not set 1482# CONFIG_CRYPTO_MD5 is not set
1426# CONFIG_CRYPTO_MICHAEL_MIC is not set 1483# CONFIG_CRYPTO_MICHAEL_MIC is not set
1484# CONFIG_CRYPTO_RMD128 is not set
1485# CONFIG_CRYPTO_RMD160 is not set
1486# CONFIG_CRYPTO_RMD256 is not set
1487# CONFIG_CRYPTO_RMD320 is not set
1427CONFIG_CRYPTO_SHA1=m 1488CONFIG_CRYPTO_SHA1=m
1428# CONFIG_CRYPTO_SHA256 is not set 1489# CONFIG_CRYPTO_SHA256 is not set
1429# CONFIG_CRYPTO_SHA512 is not set 1490# CONFIG_CRYPTO_SHA512 is not set
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig
index ba2a463b930..ef0c6e80050 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:09 2008 4# Thu Aug 21 00:52:03 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set
18CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
19CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
20# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -31,12 +32,14 @@ CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
38CONFIG_GENERIC_CALIBRATE_DELAY=y 40CONFIG_GENERIC_CALIBRATE_DELAY=y
39CONFIG_GENERIC_FIND_NEXT_BIT=y 41CONFIG_GENERIC_FIND_NEXT_BIT=y
42CONFIG_GENERIC_GPIO=y
40# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
41CONFIG_PPC=y 44CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
@@ -45,11 +48,13 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
47CONFIG_OF=y 50CONFIG_OF=y
48# CONFIG_PPC_UDBG_16550 is not set 51CONFIG_PPC_UDBG_16550=y
49# CONFIG_GENERIC_TBSYNC is not set 52# CONFIG_GENERIC_TBSYNC is not set
50CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
51CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
52# CONFIG_DEFAULT_UIMAGE is not set 55# CONFIG_DEFAULT_UIMAGE is not set
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
53# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -81,7 +86,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
81CONFIG_SYSCTL=y 86CONFIG_SYSCTL=y
82CONFIG_EMBEDDED=y 87CONFIG_EMBEDDED=y
83CONFIG_SYSCTL_SYSCALL=y 88CONFIG_SYSCTL_SYSCALL=y
84CONFIG_SYSCTL_SYSCALL_CHECK=y
85CONFIG_KALLSYMS=y 89CONFIG_KALLSYMS=y
86CONFIG_KALLSYMS_ALL=y 90CONFIG_KALLSYMS_ALL=y
87# CONFIG_KALLSYMS_EXTRA_PASS is not set 91# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -89,6 +93,7 @@ CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y 93CONFIG_PRINTK=y
90CONFIG_BUG=y 94CONFIG_BUG=y
91CONFIG_ELF_CORE=y 95CONFIG_ELF_CORE=y
96CONFIG_PCSPKR_PLATFORM=y
92CONFIG_COMPAT_BRK=y 97CONFIG_COMPAT_BRK=y
93CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
94CONFIG_FUTEX=y 99CONFIG_FUTEX=y
@@ -105,10 +110,16 @@ CONFIG_SLAB=y
105# CONFIG_PROFILING is not set 110# CONFIG_PROFILING is not set
106# CONFIG_MARKERS is not set 111# CONFIG_MARKERS is not set
107CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y
108CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
109CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y
110# CONFIG_HAVE_DMA_ATTRS is not set 118# CONFIG_HAVE_DMA_ATTRS is not set
119# CONFIG_USE_GENERIC_SMP_HELPERS is not set
120CONFIG_HAVE_CLK=y
111CONFIG_PROC_PAGE_MONITOR=y 121CONFIG_PROC_PAGE_MONITOR=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
112CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
113CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
114# CONFIG_TINY_SHMEM is not set 125# CONFIG_TINY_SHMEM is not set
@@ -118,6 +129,7 @@ CONFIG_BLOCK=y
118# CONFIG_LBD is not set 129# CONFIG_LBD is not set
119# CONFIG_BLK_DEV_IO_TRACE is not set 130# CONFIG_BLK_DEV_IO_TRACE is not set
120# CONFIG_LSF is not set 131# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set
121 133
122# 134#
123# IO Schedulers 135# IO Schedulers
@@ -136,33 +148,43 @@ CONFIG_CLASSIC_RCU=y
136# 148#
137# Platform support 149# Platform support
138# 150#
139# CONFIG_PPC_MULTIPLATFORM is not set 151CONFIG_PPC_MULTIPLATFORM=y
140CONFIG_PPC_82xx=y 152CONFIG_CLASSIC32=y
141# CONFIG_PPC_83xx is not set 153CONFIG_PPC_CHRP=y
142# CONFIG_PPC_86xx is not set 154# CONFIG_MPC5121_ADS is not set
143# CONFIG_PPC_MPC512x is not set 155# CONFIG_MPC5121_GENERIC is not set
144# CONFIG_PPC_MPC5121 is not set 156# CONFIG_PPC_MPC52xx is not set
157CONFIG_PPC_PMAC=y
145# CONFIG_PPC_CELL is not set 158# CONFIG_PPC_CELL is not set
146# CONFIG_PPC_CELL_NATIVE is not set 159# CONFIG_PPC_CELL_NATIVE is not set
160CONFIG_PPC_82xx=y
147# CONFIG_MPC8272_ADS is not set 161# CONFIG_MPC8272_ADS is not set
148# CONFIG_PQ2FADS is not set 162# CONFIG_PQ2FADS is not set
149CONFIG_EP8248E=y 163CONFIG_EP8248E=y
150# CONFIG_PQ2ADS is not set 164# CONFIG_PQ2ADS is not set
151CONFIG_8260=y 165CONFIG_8260=y
152CONFIG_8272=y 166CONFIG_8272=y
167# CONFIG_PPC_83xx is not set
168# CONFIG_PPC_86xx is not set
169# CONFIG_EMBEDDED6xx is not set
170CONFIG_PPC_NATIVE=y
171# CONFIG_UDBG_RTAS_CONSOLE is not set
153# CONFIG_IPIC is not set 172# CONFIG_IPIC is not set
154# CONFIG_MPIC is not set 173CONFIG_MPIC=y
155# CONFIG_MPIC_WEIRD is not set 174# CONFIG_MPIC_WEIRD is not set
156# CONFIG_PPC_I8259 is not set 175CONFIG_PPC_I8259=y
157# CONFIG_PPC_RTAS is not set 176CONFIG_PPC_RTAS=y
177# CONFIG_RTAS_ERROR_LOGGING is not set
178CONFIG_RTAS_PROC=y
158# CONFIG_MMIO_NVRAM is not set 179# CONFIG_MMIO_NVRAM is not set
159# CONFIG_PPC_MPC106 is not set 180CONFIG_PPC_MPC106=y
160# CONFIG_PPC_970_NAP is not set 181# CONFIG_PPC_970_NAP is not set
161# CONFIG_PPC_INDIRECT_IO is not set 182# CONFIG_PPC_INDIRECT_IO is not set
162# CONFIG_GENERIC_IOMAP is not set 183# CONFIG_GENERIC_IOMAP is not set
163# CONFIG_CPU_FREQ is not set 184# CONFIG_CPU_FREQ is not set
185# CONFIG_PPC601_SYNC_FIX is not set
186# CONFIG_TAU is not set
164CONFIG_CPM2=y 187CONFIG_CPM2=y
165CONFIG_PPC_CPM_NEW_BINDING=y
166# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
167CONFIG_CPM=y 189CONFIG_CPM=y
168 190
@@ -197,6 +219,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
197# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
198CONFIG_PAGEFLAGS_EXTENDED=y 220CONFIG_PAGEFLAGS_EXTENDED=y
199CONFIG_SPLIT_PTLOCK_CPUS=4 221CONFIG_SPLIT_PTLOCK_CPUS=4
222CONFIG_MIGRATION=y
200# CONFIG_RESOURCES_64BIT is not set 223# CONFIG_RESOURCES_64BIT is not set
201CONFIG_ZONE_DMA_FLAG=1 224CONFIG_ZONE_DMA_FLAG=1
202CONFIG_BOUNCE=y 225CONFIG_BOUNCE=y
@@ -204,6 +227,7 @@ CONFIG_VIRT_TO_BUS=y
204CONFIG_FORCE_MAX_ZONEORDER=11 227CONFIG_FORCE_MAX_ZONEORDER=11
205CONFIG_PROC_DEVICETREE=y 228CONFIG_PROC_DEVICETREE=y
206# CONFIG_CMDLINE_BOOL is not set 229# CONFIG_CMDLINE_BOOL is not set
230CONFIG_EXTRA_TARGETS=""
207# CONFIG_PM is not set 231# CONFIG_PM is not set
208# CONFIG_SECCOMP is not set 232# CONFIG_SECCOMP is not set
209CONFIG_ISA_DMA_API=y 233CONFIG_ISA_DMA_API=y
@@ -211,13 +235,22 @@ CONFIG_ISA_DMA_API=y
211# 235#
212# Bus options 236# Bus options
213# 237#
238# CONFIG_ISA is not set
214CONFIG_ZONE_DMA=y 239CONFIG_ZONE_DMA=y
240CONFIG_PPC_INDIRECT_PCI=y
215CONFIG_FSL_SOC=y 241CONFIG_FSL_SOC=y
216# CONFIG_PCI is not set 242CONFIG_PPC_PCI_CHOICE=y
217# CONFIG_PCI_DOMAINS is not set 243CONFIG_PCI=y
218# CONFIG_PCI_SYSCALL is not set 244CONFIG_PCI_DOMAINS=y
219# CONFIG_ARCH_SUPPORTS_MSI is not set 245CONFIG_PCI_SYSCALL=y
246CONFIG_PCI_8260=y
247# CONFIG_PCIEPORTBUS is not set
248CONFIG_ARCH_SUPPORTS_MSI=y
249# CONFIG_PCI_MSI is not set
250CONFIG_PCI_LEGACY=y
251# CONFIG_PCI_DEBUG is not set
220# CONFIG_PCCARD is not set 252# CONFIG_PCCARD is not set
253# CONFIG_HOTPLUG_PCI is not set
221# CONFIG_HAS_RAPIDIO is not set 254# CONFIG_HAS_RAPIDIO is not set
222 255
223# 256#
@@ -233,10 +266,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
233CONFIG_KERNEL_START=0xc0000000 266CONFIG_KERNEL_START=0xc0000000
234CONFIG_PHYSICAL_START=0x00000000 267CONFIG_PHYSICAL_START=0x00000000
235CONFIG_TASK_SIZE=0xc0000000 268CONFIG_TASK_SIZE=0xc0000000
236
237#
238# Networking
239#
240CONFIG_NET=y 269CONFIG_NET=y
241 270
242# 271#
@@ -410,11 +439,13 @@ CONFIG_MTD_CFI_UTIL=y
410# CONFIG_MTD_COMPLEX_MAPPINGS is not set 439# CONFIG_MTD_COMPLEX_MAPPINGS is not set
411# CONFIG_MTD_PHYSMAP is not set 440# CONFIG_MTD_PHYSMAP is not set
412CONFIG_MTD_PHYSMAP_OF=y 441CONFIG_MTD_PHYSMAP_OF=y
442# CONFIG_MTD_INTEL_VR_NOR is not set
413# CONFIG_MTD_PLATRAM is not set 443# CONFIG_MTD_PLATRAM is not set
414 444
415# 445#
416# Self-contained MTD device drivers 446# Self-contained MTD device drivers
417# 447#
448# CONFIG_MTD_PMC551 is not set
418# CONFIG_MTD_SLRAM is not set 449# CONFIG_MTD_SLRAM is not set
419# CONFIG_MTD_PHRAM is not set 450# CONFIG_MTD_PHRAM is not set
420# CONFIG_MTD_MTDRAM is not set 451# CONFIG_MTD_MTDRAM is not set
@@ -434,16 +465,23 @@ CONFIG_MTD_PHYSMAP_OF=y
434# 465#
435# CONFIG_MTD_UBI is not set 466# CONFIG_MTD_UBI is not set
436CONFIG_OF_DEVICE=y 467CONFIG_OF_DEVICE=y
468CONFIG_OF_GPIO=y
437# CONFIG_PARPORT is not set 469# CONFIG_PARPORT is not set
438CONFIG_BLK_DEV=y 470CONFIG_BLK_DEV=y
439# CONFIG_BLK_DEV_FD is not set 471# CONFIG_BLK_DEV_FD is not set
472# CONFIG_MAC_FLOPPY is not set
473# CONFIG_BLK_CPQ_DA is not set
474# CONFIG_BLK_CPQ_CISS_DA is not set
475# CONFIG_BLK_DEV_DAC960 is not set
440# CONFIG_BLK_DEV_COW_COMMON is not set 476# CONFIG_BLK_DEV_COW_COMMON is not set
441CONFIG_BLK_DEV_LOOP=y 477CONFIG_BLK_DEV_LOOP=y
442# CONFIG_BLK_DEV_CRYPTOLOOP is not set 478# CONFIG_BLK_DEV_CRYPTOLOOP is not set
443# CONFIG_BLK_DEV_NBD is not set 479# CONFIG_BLK_DEV_NBD is not set
480# CONFIG_BLK_DEV_SX8 is not set
444# CONFIG_BLK_DEV_RAM is not set 481# CONFIG_BLK_DEV_RAM is not set
445# CONFIG_CDROM_PKTCDVD is not set 482# CONFIG_CDROM_PKTCDVD is not set
446# CONFIG_ATA_OVER_ETH is not set 483# CONFIG_ATA_OVER_ETH is not set
484# CONFIG_BLK_DEV_HD is not set
447# CONFIG_MISC_DEVICES is not set 485# CONFIG_MISC_DEVICES is not set
448CONFIG_HAVE_IDE=y 486CONFIG_HAVE_IDE=y
449# CONFIG_IDE is not set 487# CONFIG_IDE is not set
@@ -457,14 +495,25 @@ CONFIG_HAVE_IDE=y
457# CONFIG_SCSI_NETLINK is not set 495# CONFIG_SCSI_NETLINK is not set
458# CONFIG_ATA is not set 496# CONFIG_ATA is not set
459# CONFIG_MD is not set 497# CONFIG_MD is not set
498# CONFIG_FUSION is not set
499
500#
501# IEEE 1394 (FireWire) support
502#
503
504#
505# A new alternative FireWire stack is available with EXPERIMENTAL=y
506#
507# CONFIG_IEEE1394 is not set
508# CONFIG_I2O is not set
460# CONFIG_MACINTOSH_DRIVERS is not set 509# CONFIG_MACINTOSH_DRIVERS is not set
461CONFIG_NETDEVICES=y 510CONFIG_NETDEVICES=y
462# CONFIG_NETDEVICES_MULTIQUEUE is not set
463# CONFIG_DUMMY is not set 511# CONFIG_DUMMY is not set
464# CONFIG_BONDING is not set 512# CONFIG_BONDING is not set
465# CONFIG_EQUALIZER is not set 513# CONFIG_EQUALIZER is not set
466# CONFIG_TUN is not set 514# CONFIG_TUN is not set
467# CONFIG_VETH is not set 515# CONFIG_VETH is not set
516# CONFIG_ARCNET is not set
468CONFIG_PHYLIB=y 517CONFIG_PHYLIB=y
469 518
470# 519#
@@ -482,21 +531,59 @@ CONFIG_DAVICOM_PHY=y
482# CONFIG_REALTEK_PHY is not set 531# CONFIG_REALTEK_PHY is not set
483# CONFIG_FIXED_PHY is not set 532# CONFIG_FIXED_PHY is not set
484CONFIG_MDIO_BITBANG=y 533CONFIG_MDIO_BITBANG=y
534# CONFIG_MDIO_OF_GPIO is not set
485CONFIG_NET_ETHERNET=y 535CONFIG_NET_ETHERNET=y
486CONFIG_MII=y 536CONFIG_MII=y
537# CONFIG_MACE is not set
538# CONFIG_BMAC is not set
539# CONFIG_HAPPYMEAL is not set
540# CONFIG_SUNGEM is not set
541# CONFIG_CASSINI is not set
542# CONFIG_NET_VENDOR_3COM is not set
543# CONFIG_NET_TULIP is not set
544# CONFIG_HP100 is not set
487# CONFIG_IBM_NEW_EMAC_ZMII is not set 545# CONFIG_IBM_NEW_EMAC_ZMII is not set
488# CONFIG_IBM_NEW_EMAC_RGMII is not set 546# CONFIG_IBM_NEW_EMAC_RGMII is not set
489# CONFIG_IBM_NEW_EMAC_TAH is not set 547# CONFIG_IBM_NEW_EMAC_TAH is not set
490# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 548# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
549# CONFIG_NET_PCI is not set
491# CONFIG_B44 is not set 550# CONFIG_B44 is not set
492CONFIG_FS_ENET=y 551CONFIG_FS_ENET=y
493# CONFIG_FS_ENET_HAS_SCC is not set 552# CONFIG_FS_ENET_HAS_SCC is not set
494CONFIG_FS_ENET_HAS_FCC=y 553CONFIG_FS_ENET_HAS_FCC=y
495# CONFIG_FS_ENET_MDIO_FCC is not set 554# CONFIG_FS_ENET_MDIO_FCC is not set
496CONFIG_NETDEV_1000=y 555CONFIG_NETDEV_1000=y
497# CONFIG_E1000E_ENABLED is not set 556# CONFIG_ACENIC is not set
557# CONFIG_DL2K is not set
558# CONFIG_E1000 is not set
559# CONFIG_E1000E is not set
560# CONFIG_IGB is not set
561# CONFIG_NS83820 is not set
562# CONFIG_HAMACHI is not set
563# CONFIG_R8169 is not set
564# CONFIG_SIS190 is not set
565# CONFIG_SKGE is not set
566# CONFIG_SKY2 is not set
567# CONFIG_VIA_VELOCITY is not set
568# CONFIG_TIGON3 is not set
569# CONFIG_BNX2 is not set
498# CONFIG_GIANFAR is not set 570# CONFIG_GIANFAR is not set
571# CONFIG_MV643XX_ETH is not set
572# CONFIG_QLA3XXX is not set
499CONFIG_NETDEV_10000=y 573CONFIG_NETDEV_10000=y
574# CONFIG_CHELSIO_T1 is not set
575# CONFIG_CHELSIO_T3 is not set
576# CONFIG_IXGBE is not set
577# CONFIG_IXGB is not set
578# CONFIG_S2IO is not set
579# CONFIG_MYRI10GE is not set
580# CONFIG_NETXEN_NIC is not set
581# CONFIG_NIU is not set
582# CONFIG_MLX4_CORE is not set
583# CONFIG_TEHUTI is not set
584# CONFIG_BNX2X is not set
585# CONFIG_SFC is not set
586# CONFIG_TR is not set
500 587
501# 588#
502# Wireless LAN 589# Wireless LAN
@@ -505,6 +592,7 @@ CONFIG_NETDEV_10000=y
505# CONFIG_WLAN_80211 is not set 592# CONFIG_WLAN_80211 is not set
506# CONFIG_IWLWIFI_LEDS is not set 593# CONFIG_IWLWIFI_LEDS is not set
507# CONFIG_WAN is not set 594# CONFIG_WAN is not set
595# CONFIG_FDDI is not set
508# CONFIG_PPP is not set 596# CONFIG_PPP is not set
509# CONFIG_SLIP is not set 597# CONFIG_SLIP is not set
510# CONFIG_NETPOLL is not set 598# CONFIG_NETPOLL is not set
@@ -541,6 +629,7 @@ CONFIG_DEVKMEM=y
541# CONFIG_SERIAL_UARTLITE is not set 629# CONFIG_SERIAL_UARTLITE is not set
542CONFIG_SERIAL_CORE=y 630CONFIG_SERIAL_CORE=y
543CONFIG_SERIAL_CORE_CONSOLE=y 631CONFIG_SERIAL_CORE_CONSOLE=y
632# CONFIG_SERIAL_PMACZILOG is not set
544CONFIG_SERIAL_CPM=y 633CONFIG_SERIAL_CPM=y
545CONFIG_SERIAL_CPM_CONSOLE=y 634CONFIG_SERIAL_CPM_CONSOLE=y
546CONFIG_SERIAL_CPM_SCC1=y 635CONFIG_SERIAL_CPM_SCC1=y
@@ -549,21 +638,44 @@ CONFIG_SERIAL_CPM_SCC1=y
549CONFIG_SERIAL_CPM_SCC4=y 638CONFIG_SERIAL_CPM_SCC4=y
550# CONFIG_SERIAL_CPM_SMC1 is not set 639# CONFIG_SERIAL_CPM_SMC1 is not set
551# CONFIG_SERIAL_CPM_SMC2 is not set 640# CONFIG_SERIAL_CPM_SMC2 is not set
641# CONFIG_SERIAL_JSM is not set
552CONFIG_UNIX98_PTYS=y 642CONFIG_UNIX98_PTYS=y
553CONFIG_LEGACY_PTYS=y 643CONFIG_LEGACY_PTYS=y
554CONFIG_LEGACY_PTY_COUNT=256 644CONFIG_LEGACY_PTY_COUNT=256
645# CONFIG_BRIQ_PANEL is not set
646# CONFIG_HVC_RTAS is not set
555# CONFIG_IPMI_HANDLER is not set 647# CONFIG_IPMI_HANDLER is not set
556CONFIG_HW_RANDOM=y 648CONFIG_HW_RANDOM=y
557# CONFIG_NVRAM is not set 649# CONFIG_NVRAM is not set
558# CONFIG_GEN_RTC is not set 650# CONFIG_GEN_RTC is not set
559# CONFIG_R3964 is not set 651# CONFIG_R3964 is not set
652# CONFIG_APPLICOM is not set
560# CONFIG_RAW_DRIVER is not set 653# CONFIG_RAW_DRIVER is not set
654CONFIG_DEVPORT=y
561# CONFIG_I2C is not set 655# CONFIG_I2C is not set
562# CONFIG_SPI is not set 656# CONFIG_SPI is not set
657CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
658CONFIG_ARCH_REQUIRE_GPIOLIB=y
659CONFIG_GPIOLIB=y
660# CONFIG_DEBUG_GPIO is not set
661
662#
663# I2C GPIO expanders:
664#
665
666#
667# PCI GPIO expanders:
668#
669# CONFIG_GPIO_BT8XX is not set
670
671#
672# SPI GPIO expanders:
673#
563# CONFIG_W1 is not set 674# CONFIG_W1 is not set
564# CONFIG_POWER_SUPPLY is not set 675# CONFIG_POWER_SUPPLY is not set
565# CONFIG_HWMON is not set 676# CONFIG_HWMON is not set
566# CONFIG_THERMAL is not set 677# CONFIG_THERMAL is not set
678# CONFIG_THERMAL_HWMON is not set
567# CONFIG_WATCHDOG is not set 679# CONFIG_WATCHDOG is not set
568 680
569# 681#
@@ -575,8 +687,10 @@ CONFIG_SSB_POSSIBLE=y
575# 687#
576# Multifunction device drivers 688# Multifunction device drivers
577# 689#
690# CONFIG_MFD_CORE is not set
578# CONFIG_MFD_SM501 is not set 691# CONFIG_MFD_SM501 is not set
579# CONFIG_HTC_PASIC3 is not set 692# CONFIG_HTC_PASIC3 is not set
693# CONFIG_MFD_TMIO is not set
580 694
581# 695#
582# Multimedia devices 696# Multimedia devices
@@ -597,6 +711,8 @@ CONFIG_DAB=y
597# 711#
598# Graphics support 712# Graphics support
599# 713#
714# CONFIG_AGP is not set
715# CONFIG_DRM is not set
600# CONFIG_VGASTATE is not set 716# CONFIG_VGASTATE is not set
601# CONFIG_VIDEO_OUTPUT_CONTROL is not set 717# CONFIG_VIDEO_OUTPUT_CONTROL is not set
602# CONFIG_FB is not set 718# CONFIG_FB is not set
@@ -606,16 +722,13 @@ CONFIG_DAB=y
606# Display device support 722# Display device support
607# 723#
608# CONFIG_DISPLAY_SUPPORT is not set 724# CONFIG_DISPLAY_SUPPORT is not set
609
610#
611# Sound
612#
613# CONFIG_SOUND is not set 725# CONFIG_SOUND is not set
614# CONFIG_USB_SUPPORT is not set 726# CONFIG_USB_SUPPORT is not set
615# CONFIG_MMC is not set 727# CONFIG_MMC is not set
616# CONFIG_MEMSTICK is not set 728# CONFIG_MEMSTICK is not set
617# CONFIG_NEW_LEDS is not set 729# CONFIG_NEW_LEDS is not set
618# CONFIG_ACCESSIBILITY is not set 730# CONFIG_ACCESSIBILITY is not set
731# CONFIG_INFINIBAND is not set
619# CONFIG_RTC_CLASS is not set 732# CONFIG_RTC_CLASS is not set
620# CONFIG_DMADEVICES is not set 733# CONFIG_DMADEVICES is not set
621# CONFIG_UIO is not set 734# CONFIG_UIO is not set
@@ -675,6 +788,7 @@ CONFIG_TMPFS=y
675CONFIG_CRAMFS=y 788CONFIG_CRAMFS=y
676# CONFIG_VXFS_FS is not set 789# CONFIG_VXFS_FS is not set
677# CONFIG_MINIX_FS is not set 790# CONFIG_MINIX_FS is not set
791# CONFIG_OMFS_FS is not set
678# CONFIG_HPFS_FS is not set 792# CONFIG_HPFS_FS is not set
679# CONFIG_QNX4FS_FS is not set 793# CONFIG_QNX4FS_FS is not set
680# CONFIG_ROMFS_FS is not set 794# CONFIG_ROMFS_FS is not set
@@ -684,8 +798,8 @@ CONFIG_NETWORK_FILESYSTEMS=y
684CONFIG_NFS_FS=y 798CONFIG_NFS_FS=y
685CONFIG_NFS_V3=y 799CONFIG_NFS_V3=y
686# CONFIG_NFS_V3_ACL is not set 800# CONFIG_NFS_V3_ACL is not set
687# CONFIG_NFSD is not set
688CONFIG_ROOT_NFS=y 801CONFIG_ROOT_NFS=y
802# CONFIG_NFSD is not set
689CONFIG_LOCKD=y 803CONFIG_LOCKD=y
690CONFIG_LOCKD_V4=y 804CONFIG_LOCKD_V4=y
691CONFIG_NFS_COMMON=y 805CONFIG_NFS_COMMON=y
@@ -763,6 +877,7 @@ CONFIG_NLS_UTF8=y
763# CONFIG_GENERIC_FIND_FIRST_BIT is not set 877# CONFIG_GENERIC_FIND_FIRST_BIT is not set
764# CONFIG_CRC_CCITT is not set 878# CONFIG_CRC_CCITT is not set
765# CONFIG_CRC16 is not set 879# CONFIG_CRC16 is not set
880# CONFIG_CRC_T10DIF is not set
766# CONFIG_CRC_ITU_T is not set 881# CONFIG_CRC_ITU_T is not set
767# CONFIG_CRC32 is not set 882# CONFIG_CRC32 is not set
768# CONFIG_CRC7 is not set 883# CONFIG_CRC7 is not set
@@ -804,19 +919,31 @@ CONFIG_DEBUG_BUGVERBOSE=y
804CONFIG_DEBUG_INFO=y 919CONFIG_DEBUG_INFO=y
805# CONFIG_DEBUG_VM is not set 920# CONFIG_DEBUG_VM is not set
806# CONFIG_DEBUG_WRITECOUNT is not set 921# CONFIG_DEBUG_WRITECOUNT is not set
922# CONFIG_DEBUG_MEMORY_INIT is not set
807# CONFIG_DEBUG_LIST is not set 923# CONFIG_DEBUG_LIST is not set
808# CONFIG_DEBUG_SG is not set 924# CONFIG_DEBUG_SG is not set
809# CONFIG_BOOT_PRINTK_DELAY is not set 925# CONFIG_BOOT_PRINTK_DELAY is not set
926# CONFIG_RCU_TORTURE_TEST is not set
810# CONFIG_BACKTRACE_SELF_TEST is not set 927# CONFIG_BACKTRACE_SELF_TEST is not set
811# CONFIG_FAULT_INJECTION is not set 928# CONFIG_FAULT_INJECTION is not set
929# CONFIG_LATENCYTOP is not set
930CONFIG_SYSCTL_SYSCALL_CHECK=y
931CONFIG_HAVE_FTRACE=y
932CONFIG_HAVE_DYNAMIC_FTRACE=y
933# CONFIG_FTRACE is not set
934# CONFIG_SCHED_TRACER is not set
935# CONFIG_CONTEXT_SWITCH_TRACER is not set
812# CONFIG_SAMPLES is not set 936# CONFIG_SAMPLES is not set
937CONFIG_HAVE_ARCH_KGDB=y
813# CONFIG_DEBUG_STACKOVERFLOW is not set 938# CONFIG_DEBUG_STACKOVERFLOW is not set
814# CONFIG_DEBUG_STACK_USAGE is not set 939# CONFIG_DEBUG_STACK_USAGE is not set
815# CONFIG_DEBUG_PAGEALLOC is not set 940# CONFIG_DEBUG_PAGEALLOC is not set
816# CONFIG_DEBUGGER is not set 941# CONFIG_CODE_PATCHING_SELFTEST is not set
817# CONFIG_KGDB_CONSOLE is not set 942# CONFIG_FTR_FIXUP_SELFTEST is not set
943# CONFIG_XMON is not set
818# CONFIG_IRQSTACKS is not set 944# CONFIG_IRQSTACKS is not set
819CONFIG_BDI_SWITCH=y 945CONFIG_BDI_SWITCH=y
946# CONFIG_BOOTX_TEXT is not set
820# CONFIG_PPC_EARLY_DEBUG is not set 947# CONFIG_PPC_EARLY_DEBUG is not set
821 948
822# 949#
@@ -824,6 +951,7 @@ CONFIG_BDI_SWITCH=y
824# 951#
825# CONFIG_KEYS is not set 952# CONFIG_KEYS is not set
826# CONFIG_SECURITY is not set 953# CONFIG_SECURITY is not set
954# CONFIG_SECURITY_FILE_CAPABILITIES is not set
827CONFIG_CRYPTO=y 955CONFIG_CRYPTO=y
828 956
829# 957#
@@ -864,6 +992,10 @@ CONFIG_CRYPTO_PCBC=y
864# CONFIG_CRYPTO_MD4 is not set 992# CONFIG_CRYPTO_MD4 is not set
865CONFIG_CRYPTO_MD5=y 993CONFIG_CRYPTO_MD5=y
866# CONFIG_CRYPTO_MICHAEL_MIC is not set 994# CONFIG_CRYPTO_MICHAEL_MIC is not set
995# CONFIG_CRYPTO_RMD128 is not set
996# CONFIG_CRYPTO_RMD160 is not set
997# CONFIG_CRYPTO_RMD256 is not set
998# CONFIG_CRYPTO_RMD320 is not set
867# CONFIG_CRYPTO_SHA1 is not set 999# CONFIG_CRYPTO_SHA1 is not set
868# CONFIG_CRYPTO_SHA256 is not set 1000# CONFIG_CRYPTO_SHA256 is not set
869# CONFIG_CRYPTO_SHA512 is not set 1001# CONFIG_CRYPTO_SHA512 is not set
@@ -894,6 +1026,6 @@ CONFIG_CRYPTO_DES=y
894# CONFIG_CRYPTO_DEFLATE is not set 1026# CONFIG_CRYPTO_DEFLATE is not set
895# CONFIG_CRYPTO_LZO is not set 1027# CONFIG_CRYPTO_LZO is not set
896# CONFIG_CRYPTO_HW is not set 1028# CONFIG_CRYPTO_HW is not set
897# CONFIG_PPC_CLOCK is not set 1029CONFIG_PPC_CLOCK=y
898CONFIG_PPC_LIB_RHEAP=y 1030CONFIG_PPC_LIB_RHEAP=y
899# CONFIG_VIRTUALIZATION is not set 1031# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig
index ac72b48542d..480225be2f3 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:09 2008 4# Thu Aug 21 00:52:04 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y 31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_HAVE_LATENCYTOP_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y 33CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -108,10 +109,16 @@ CONFIG_SLUB=y
108# CONFIG_PROFILING is not set 109# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set 110# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
113CONFIG_HAVE_IOREMAP_PROT=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
116CONFIG_HAVE_ARCH_TRACEHOOK=y
113# CONFIG_HAVE_DMA_ATTRS is not set 117# CONFIG_HAVE_DMA_ATTRS is not set
118# CONFIG_USE_GENERIC_SMP_HELPERS is not set
119CONFIG_HAVE_CLK=y
114CONFIG_PROC_PAGE_MONITOR=y 120CONFIG_PROC_PAGE_MONITOR=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
115CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
116# CONFIG_TINY_SHMEM is not set 123# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=1 124CONFIG_BASE_SMALL=1
@@ -121,6 +128,7 @@ CONFIG_BLOCK=y
121# CONFIG_BLK_DEV_IO_TRACE is not set 128# CONFIG_BLK_DEV_IO_TRACE is not set
122# CONFIG_LSF is not set 129# CONFIG_LSF is not set
123# CONFIG_BLK_DEV_BSG is not set 130# CONFIG_BLK_DEV_BSG is not set
131# CONFIG_BLK_DEV_INTEGRITY is not set
124 132
125# 133#
126# IO Schedulers 134# IO Schedulers
@@ -139,8 +147,6 @@ CONFIG_CLASSIC_RCU=y
139# 147#
140# Platform support 148# Platform support
141# 149#
142# CONFIG_PPC_MPC512x is not set
143# CONFIG_PPC_MPC5121 is not set
144# CONFIG_PPC_CELL is not set 150# CONFIG_PPC_CELL is not set
145# CONFIG_PPC_CELL_NATIVE is not set 151# CONFIG_PPC_CELL_NATIVE is not set
146CONFIG_CPM1=y 152CONFIG_CPM1=y
@@ -158,6 +164,7 @@ CONFIG_PPC_EP88XC=y
158# Generic MPC8xx Options 164# Generic MPC8xx Options
159# 165#
160CONFIG_8xx_COPYBACK=y 166CONFIG_8xx_COPYBACK=y
167# CONFIG_8xx_GPIO is not set
161# CONFIG_8xx_CPU6 is not set 168# CONFIG_8xx_CPU6 is not set
162CONFIG_8xx_CPU15=y 169CONFIG_8xx_CPU15=y
163CONFIG_NO_UCODE_PATCH=y 170CONFIG_NO_UCODE_PATCH=y
@@ -176,7 +183,6 @@ CONFIG_NO_UCODE_PATCH=y
176# CONFIG_PPC_INDIRECT_IO is not set 183# CONFIG_PPC_INDIRECT_IO is not set
177# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
178# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
179CONFIG_PPC_CPM_NEW_BINDING=y
180# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
181CONFIG_CPM=y 187CONFIG_CPM=y
182 188
@@ -193,7 +199,7 @@ CONFIG_HZ_100=y
193# CONFIG_HZ_300 is not set 199# CONFIG_HZ_300 is not set
194# CONFIG_HZ_1000 is not set 200# CONFIG_HZ_1000 is not set
195CONFIG_HZ=100 201CONFIG_HZ=100
196# CONFIG_SCHED_HRTICK is not set 202CONFIG_SCHED_HRTICK=y
197CONFIG_PREEMPT_NONE=y 203CONFIG_PREEMPT_NONE=y
198# CONFIG_PREEMPT_VOLUNTARY is not set 204# CONFIG_PREEMPT_VOLUNTARY is not set
199# CONFIG_PREEMPT is not set 205# CONFIG_PREEMPT is not set
@@ -217,6 +223,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 224CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 225CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 227# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 228CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 229CONFIG_BOUNCE=y
@@ -224,6 +231,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
234CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 235# CONFIG_PM is not set
228# CONFIG_SECCOMP is not set 236# CONFIG_SECCOMP is not set
229CONFIG_ISA_DMA_API=y 237CONFIG_ISA_DMA_API=y
@@ -256,10 +264,6 @@ CONFIG_PHYSICAL_START=0x00000000
256CONFIG_TASK_SIZE=0x80000000 264CONFIG_TASK_SIZE=0x80000000
257CONFIG_CONSISTENT_START=0xfd000000 265CONFIG_CONSISTENT_START=0xfd000000
258CONFIG_CONSISTENT_SIZE=0x00200000 266CONFIG_CONSISTENT_SIZE=0x00200000
259
260#
261# Networking
262#
263CONFIG_NET=y 267CONFIG_NET=y
264 268
265# 269#
@@ -442,7 +446,6 @@ CONFIG_HAVE_IDE=y
442# CONFIG_MD is not set 446# CONFIG_MD is not set
443# CONFIG_MACINTOSH_DRIVERS is not set 447# CONFIG_MACINTOSH_DRIVERS is not set
444CONFIG_NETDEVICES=y 448CONFIG_NETDEVICES=y
445# CONFIG_NETDEVICES_MULTIQUEUE is not set
446# CONFIG_DUMMY is not set 449# CONFIG_DUMMY is not set
447# CONFIG_BONDING is not set 450# CONFIG_BONDING is not set
448# CONFIG_MACVLAN is not set 451# CONFIG_MACVLAN is not set
@@ -544,10 +547,13 @@ CONFIG_GEN_RTC=y
544# CONFIG_TCG_TPM is not set 547# CONFIG_TCG_TPM is not set
545# CONFIG_I2C is not set 548# CONFIG_I2C is not set
546# CONFIG_SPI is not set 549# CONFIG_SPI is not set
550CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
551# CONFIG_GPIOLIB is not set
547# CONFIG_W1 is not set 552# CONFIG_W1 is not set
548# CONFIG_POWER_SUPPLY is not set 553# CONFIG_POWER_SUPPLY is not set
549# CONFIG_HWMON is not set 554# CONFIG_HWMON is not set
550# CONFIG_THERMAL is not set 555# CONFIG_THERMAL is not set
556# CONFIG_THERMAL_HWMON is not set
551# CONFIG_WATCHDOG is not set 557# CONFIG_WATCHDOG is not set
552 558
553# 559#
@@ -559,8 +565,10 @@ CONFIG_SSB_POSSIBLE=y
559# 565#
560# Multifunction device drivers 566# Multifunction device drivers
561# 567#
568# CONFIG_MFD_CORE is not set
562# CONFIG_MFD_SM501 is not set 569# CONFIG_MFD_SM501 is not set
563# CONFIG_HTC_PASIC3 is not set 570# CONFIG_HTC_PASIC3 is not set
571# CONFIG_MFD_TMIO is not set
564 572
565# 573#
566# Multimedia devices 574# Multimedia devices
@@ -590,10 +598,6 @@ CONFIG_DAB=y
590# Display device support 598# Display device support
591# 599#
592# CONFIG_DISPLAY_SUPPORT is not set 600# CONFIG_DISPLAY_SUPPORT is not set
593
594#
595# Sound
596#
597# CONFIG_SOUND is not set 601# CONFIG_SOUND is not set
598# CONFIG_USB_SUPPORT is not set 602# CONFIG_USB_SUPPORT is not set
599# CONFIG_MMC is not set 603# CONFIG_MMC is not set
@@ -662,6 +666,7 @@ CONFIG_TMPFS=y
662CONFIG_CRAMFS=y 666CONFIG_CRAMFS=y
663# CONFIG_VXFS_FS is not set 667# CONFIG_VXFS_FS is not set
664# CONFIG_MINIX_FS is not set 668# CONFIG_MINIX_FS is not set
669# CONFIG_OMFS_FS is not set
665# CONFIG_HPFS_FS is not set 670# CONFIG_HPFS_FS is not set
666# CONFIG_QNX4FS_FS is not set 671# CONFIG_QNX4FS_FS is not set
667# CONFIG_ROMFS_FS is not set 672# CONFIG_ROMFS_FS is not set
@@ -672,13 +677,12 @@ CONFIG_NFS_FS=y
672CONFIG_NFS_V3=y 677CONFIG_NFS_V3=y
673# CONFIG_NFS_V3_ACL is not set 678# CONFIG_NFS_V3_ACL is not set
674# CONFIG_NFS_V4 is not set 679# CONFIG_NFS_V4 is not set
675# CONFIG_NFSD is not set
676CONFIG_ROOT_NFS=y 680CONFIG_ROOT_NFS=y
681# CONFIG_NFSD is not set
677CONFIG_LOCKD=y 682CONFIG_LOCKD=y
678CONFIG_LOCKD_V4=y 683CONFIG_LOCKD_V4=y
679CONFIG_NFS_COMMON=y 684CONFIG_NFS_COMMON=y
680CONFIG_SUNRPC=y 685CONFIG_SUNRPC=y
681# CONFIG_SUNRPC_BIND34 is not set
682# CONFIG_RPCSEC_GSS_KRB5 is not set 686# CONFIG_RPCSEC_GSS_KRB5 is not set
683# CONFIG_RPCSEC_GSS_SPKM3 is not set 687# CONFIG_RPCSEC_GSS_SPKM3 is not set
684# CONFIG_SMB_FS is not set 688# CONFIG_SMB_FS is not set
@@ -717,6 +721,7 @@ CONFIG_MSDOS_PARTITION=y
717# CONFIG_GENERIC_FIND_FIRST_BIT is not set 721# CONFIG_GENERIC_FIND_FIRST_BIT is not set
718# CONFIG_CRC_CCITT is not set 722# CONFIG_CRC_CCITT is not set
719# CONFIG_CRC16 is not set 723# CONFIG_CRC16 is not set
724# CONFIG_CRC_T10DIF is not set
720# CONFIG_CRC_ITU_T is not set 725# CONFIG_CRC_ITU_T is not set
721# CONFIG_CRC32 is not set 726# CONFIG_CRC32 is not set
722# CONFIG_CRC7 is not set 727# CONFIG_CRC7 is not set
@@ -741,6 +746,8 @@ CONFIG_MAGIC_SYSRQ=y
741CONFIG_DEBUG_KERNEL=y 746CONFIG_DEBUG_KERNEL=y
742# CONFIG_DEBUG_SHIRQ is not set 747# CONFIG_DEBUG_SHIRQ is not set
743CONFIG_DETECT_SOFTLOCKUP=y 748CONFIG_DETECT_SOFTLOCKUP=y
749# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
750CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
744CONFIG_SCHED_DEBUG=y 751CONFIG_SCHED_DEBUG=y
745# CONFIG_SCHEDSTATS is not set 752# CONFIG_SCHEDSTATS is not set
746# CONFIG_TIMER_STATS is not set 753# CONFIG_TIMER_STATS is not set
@@ -756,16 +763,28 @@ CONFIG_DEBUG_BUGVERBOSE=y
756CONFIG_DEBUG_INFO=y 763CONFIG_DEBUG_INFO=y
757# CONFIG_DEBUG_VM is not set 764# CONFIG_DEBUG_VM is not set
758# CONFIG_DEBUG_WRITECOUNT is not set 765# CONFIG_DEBUG_WRITECOUNT is not set
766# CONFIG_DEBUG_MEMORY_INIT is not set
759# CONFIG_DEBUG_LIST is not set 767# CONFIG_DEBUG_LIST is not set
760# CONFIG_DEBUG_SG is not set 768# CONFIG_DEBUG_SG is not set
761# CONFIG_BOOT_PRINTK_DELAY is not set 769# CONFIG_BOOT_PRINTK_DELAY is not set
770# CONFIG_RCU_TORTURE_TEST is not set
762# CONFIG_BACKTRACE_SELF_TEST is not set 771# CONFIG_BACKTRACE_SELF_TEST is not set
763# CONFIG_FAULT_INJECTION is not set 772# CONFIG_FAULT_INJECTION is not set
773# CONFIG_LATENCYTOP is not set
774CONFIG_HAVE_FTRACE=y
775CONFIG_HAVE_DYNAMIC_FTRACE=y
776# CONFIG_FTRACE is not set
777# CONFIG_SCHED_TRACER is not set
778# CONFIG_CONTEXT_SWITCH_TRACER is not set
764# CONFIG_SAMPLES is not set 779# CONFIG_SAMPLES is not set
780CONFIG_HAVE_ARCH_KGDB=y
781# CONFIG_KGDB is not set
765# CONFIG_DEBUG_STACKOVERFLOW is not set 782# CONFIG_DEBUG_STACKOVERFLOW is not set
766# CONFIG_DEBUG_STACK_USAGE is not set 783# CONFIG_DEBUG_STACK_USAGE is not set
767# CONFIG_DEBUG_PAGEALLOC is not set 784# CONFIG_DEBUG_PAGEALLOC is not set
768# CONFIG_DEBUGGER is not set 785# CONFIG_CODE_PATCHING_SELFTEST is not set
786# CONFIG_FTR_FIXUP_SELFTEST is not set
787# CONFIG_XMON is not set
769# CONFIG_IRQSTACKS is not set 788# CONFIG_IRQSTACKS is not set
770# CONFIG_BDI_SWITCH is not set 789# CONFIG_BDI_SWITCH is not set
771# CONFIG_PPC_EARLY_DEBUG is not set 790# CONFIG_PPC_EARLY_DEBUG is not set
@@ -777,6 +796,6 @@ CONFIG_DEBUG_INFO=y
777# CONFIG_SECURITY is not set 796# CONFIG_SECURITY is not set
778# CONFIG_SECURITY_FILE_CAPABILITIES is not set 797# CONFIG_SECURITY_FILE_CAPABILITIES is not set
779# CONFIG_CRYPTO is not set 798# CONFIG_CRYPTO is not set
780# CONFIG_PPC_CLOCK is not set 799CONFIG_PPC_CLOCK=y
781CONFIG_PPC_LIB_RHEAP=y 800CONFIG_PPC_LIB_RHEAP=y
782# CONFIG_VIRTUALIZATION is not set 801# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index 0ccc6e493dc..cfa5d053ee5 100644
--- a/arch/powerpc/configs/g5_defconfig
+++ b/arch/powerpc/configs/g5_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc6 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 16 21:08:31 2008 4# Tue Aug 26 13:15:06 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -13,6 +13,7 @@ CONFIG_POWER4=y
13# CONFIG_TUNE_CELL is not set 13# CONFIG_TUNE_CELL is not set
14CONFIG_PPC_FPU=y 14CONFIG_PPC_FPU=y
15CONFIG_ALTIVEC=y 15CONFIG_ALTIVEC=y
16# CONFIG_VSX is not set
16CONFIG_PPC_STD_MMU=y 17CONFIG_PPC_STD_MMU=y
17CONFIG_PPC_MM_SLICES=y 18CONFIG_PPC_MM_SLICES=y
18CONFIG_VIRT_CPU_ACCOUNTING=y 19CONFIG_VIRT_CPU_ACCOUNTING=y
@@ -30,6 +31,7 @@ CONFIG_GENERIC_HARDIRQS=y
30CONFIG_HAVE_SETUP_PER_CPU_AREA=y 31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_STACKTRACE_SUPPORT=y 33CONFIG_STACKTRACE_SUPPORT=y
34CONFIG_HAVE_LATENCYTOP_SUPPORT=y
33CONFIG_TRACE_IRQFLAGS_SUPPORT=y 35CONFIG_TRACE_IRQFLAGS_SUPPORT=y
34CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -94,9 +96,8 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
94CONFIG_SYSCTL=y 96CONFIG_SYSCTL=y
95# CONFIG_EMBEDDED is not set 97# CONFIG_EMBEDDED is not set
96CONFIG_SYSCTL_SYSCALL=y 98CONFIG_SYSCTL_SYSCALL=y
97CONFIG_SYSCTL_SYSCALL_CHECK=y
98CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
99# CONFIG_KALLSYMS_ALL is not set 100CONFIG_KALLSYMS_ALL=y
100# CONFIG_KALLSYMS_EXTRA_PASS is not set 101# CONFIG_KALLSYMS_EXTRA_PASS is not set
101CONFIG_HOTPLUG=y 102CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 103CONFIG_PRINTK=y
@@ -121,10 +122,16 @@ CONFIG_PROFILING=y
121CONFIG_OPROFILE=y 122CONFIG_OPROFILE=y
122CONFIG_HAVE_OPROFILE=y 123CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 124# CONFIG_KPROBES is not set
125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
126CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 127CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 128CONFIG_HAVE_KRETPROBES=y
126# CONFIG_HAVE_DMA_ATTRS is not set 129CONFIG_HAVE_ARCH_TRACEHOOK=y
130CONFIG_HAVE_DMA_ATTRS=y
131CONFIG_USE_GENERIC_SMP_HELPERS=y
132# CONFIG_HAVE_CLK is not set
127CONFIG_PROC_PAGE_MONITOR=y 133CONFIG_PROC_PAGE_MONITOR=y
134# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 135CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 136CONFIG_RT_MUTEXES=y
130# CONFIG_TINY_SHMEM is not set 137# CONFIG_TINY_SHMEM is not set
@@ -140,6 +147,7 @@ CONFIG_STOP_MACHINE=y
140CONFIG_BLOCK=y 147CONFIG_BLOCK=y
141# CONFIG_BLK_DEV_IO_TRACE is not set 148# CONFIG_BLK_DEV_IO_TRACE is not set
142CONFIG_BLK_DEV_BSG=y 149CONFIG_BLK_DEV_BSG=y
150# CONFIG_BLK_DEV_INTEGRITY is not set
143CONFIG_BLOCK_COMPAT=y 151CONFIG_BLOCK_COMPAT=y
144 152
145# 153#
@@ -160,13 +168,8 @@ CONFIG_CLASSIC_RCU=y
160# Platform support 168# Platform support
161# 169#
162CONFIG_PPC_MULTIPLATFORM=y 170CONFIG_PPC_MULTIPLATFORM=y
163# CONFIG_PPC_82xx is not set
164# CONFIG_PPC_83xx is not set
165# CONFIG_PPC_86xx is not set
166# CONFIG_PPC_PSERIES is not set 171# CONFIG_PPC_PSERIES is not set
167# CONFIG_PPC_ISERIES is not set 172# CONFIG_PPC_ISERIES is not set
168# CONFIG_PPC_MPC512x is not set
169# CONFIG_PPC_MPC5121 is not set
170CONFIG_PPC_PMAC=y 173CONFIG_PPC_PMAC=y
171CONFIG_PPC_PMAC64=y 174CONFIG_PPC_PMAC64=y
172# CONFIG_PPC_MAPLE is not set 175# CONFIG_PPC_MAPLE is not set
@@ -224,7 +227,7 @@ CONFIG_HZ_250=y
224# CONFIG_HZ_300 is not set 227# CONFIG_HZ_300 is not set
225# CONFIG_HZ_1000 is not set 228# CONFIG_HZ_1000 is not set
226CONFIG_HZ=250 229CONFIG_HZ=250
227# CONFIG_SCHED_HRTICK is not set 230CONFIG_SCHED_HRTICK=y
228CONFIG_PREEMPT_NONE=y 231CONFIG_PREEMPT_NONE=y
229# CONFIG_PREEMPT_VOLUNTARY is not set 232# CONFIG_PREEMPT_VOLUNTARY is not set
230# CONFIG_PREEMPT is not set 233# CONFIG_PREEMPT is not set
@@ -256,6 +259,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
256CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 259CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
257CONFIG_PAGEFLAGS_EXTENDED=y 260CONFIG_PAGEFLAGS_EXTENDED=y
258CONFIG_SPLIT_PTLOCK_CPUS=4 261CONFIG_SPLIT_PTLOCK_CPUS=4
262# CONFIG_MIGRATION is not set
259CONFIG_RESOURCES_64BIT=y 263CONFIG_RESOURCES_64BIT=y
260CONFIG_ZONE_DMA_FLAG=1 264CONFIG_ZONE_DMA_FLAG=1
261CONFIG_BOUNCE=y 265CONFIG_BOUNCE=y
@@ -265,6 +269,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
265# CONFIG_SCHED_SMT is not set 269# CONFIG_SCHED_SMT is not set
266CONFIG_PROC_DEVICETREE=y 270CONFIG_PROC_DEVICETREE=y
267# CONFIG_CMDLINE_BOOL is not set 271# CONFIG_CMDLINE_BOOL is not set
272CONFIG_EXTRA_TARGETS=""
268CONFIG_ARCH_WANTS_FREEZER_CONTROL=y 273CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
269# CONFIG_PM is not set 274# CONFIG_PM is not set
270CONFIG_SECCOMP=y 275CONFIG_SECCOMP=y
@@ -290,10 +295,6 @@ CONFIG_PCI_MSI=y
290CONFIG_PAGE_OFFSET=0xc000000000000000 295CONFIG_PAGE_OFFSET=0xc000000000000000
291CONFIG_KERNEL_START=0xc000000000000000 296CONFIG_KERNEL_START=0xc000000000000000
292CONFIG_PHYSICAL_START=0x00000000 297CONFIG_PHYSICAL_START=0x00000000
293
294#
295# Networking
296#
297CONFIG_NET=y 298CONFIG_NET=y
298 299
299# 300#
@@ -307,6 +308,7 @@ CONFIG_XFRM_USER=m
307# CONFIG_XFRM_SUB_POLICY is not set 308# CONFIG_XFRM_SUB_POLICY is not set
308# CONFIG_XFRM_MIGRATE is not set 309# CONFIG_XFRM_MIGRATE is not set
309# CONFIG_XFRM_STATISTICS is not set 310# CONFIG_XFRM_STATISTICS is not set
311CONFIG_XFRM_IPCOMP=m
310CONFIG_NET_KEY=m 312CONFIG_NET_KEY=m
311# CONFIG_NET_KEY_MIGRATE is not set 313# CONFIG_NET_KEY_MIGRATE is not set
312CONFIG_INET=y 314CONFIG_INET=y
@@ -422,6 +424,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
422CONFIG_STANDALONE=y 424CONFIG_STANDALONE=y
423CONFIG_PREVENT_FIRMWARE_BUILD=y 425CONFIG_PREVENT_FIRMWARE_BUILD=y
424CONFIG_FW_LOADER=y 426CONFIG_FW_LOADER=y
427CONFIG_FIRMWARE_IN_KERNEL=y
428CONFIG_EXTRA_FIRMWARE=""
425# CONFIG_DEBUG_DRIVER is not set 429# CONFIG_DEBUG_DRIVER is not set
426# CONFIG_DEBUG_DEVRES is not set 430# CONFIG_DEBUG_DEVRES is not set
427# CONFIG_SYS_HYPERVISOR is not set 431# CONFIG_SYS_HYPERVISOR is not set
@@ -449,12 +453,14 @@ CONFIG_CDROM_PKTCDVD=m
449CONFIG_CDROM_PKTCDVD_BUFFERS=8 453CONFIG_CDROM_PKTCDVD_BUFFERS=8
450# CONFIG_CDROM_PKTCDVD_WCACHE is not set 454# CONFIG_CDROM_PKTCDVD_WCACHE is not set
451# CONFIG_ATA_OVER_ETH is not set 455# CONFIG_ATA_OVER_ETH is not set
456# CONFIG_BLK_DEV_HD is not set
452CONFIG_MISC_DEVICES=y 457CONFIG_MISC_DEVICES=y
453# CONFIG_PHANTOM is not set 458# CONFIG_PHANTOM is not set
454# CONFIG_EEPROM_93CX6 is not set 459# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_SGI_IOC4 is not set 460# CONFIG_SGI_IOC4 is not set
456# CONFIG_TIFM_CORE is not set 461# CONFIG_TIFM_CORE is not set
457# CONFIG_ENCLOSURE_SERVICES is not set 462# CONFIG_ENCLOSURE_SERVICES is not set
463# CONFIG_HP_ILO is not set
458CONFIG_HAVE_IDE=y 464CONFIG_HAVE_IDE=y
459CONFIG_IDE=y 465CONFIG_IDE=y
460CONFIG_BLK_DEV_IDE=y 466CONFIG_BLK_DEV_IDE=y
@@ -462,6 +468,7 @@ CONFIG_BLK_DEV_IDE=y
462# 468#
463# Please see Documentation/ide/ide.txt for help/info on IDE drives 469# Please see Documentation/ide/ide.txt for help/info on IDE drives
464# 470#
471CONFIG_IDE_TIMINGS=y
465# CONFIG_BLK_DEV_IDE_SATA is not set 472# CONFIG_BLK_DEV_IDE_SATA is not set
466CONFIG_BLK_DEV_IDEDISK=y 473CONFIG_BLK_DEV_IDEDISK=y
467# CONFIG_IDEDISK_MULTI_MODE is not set 474# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -492,10 +499,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
492# CONFIG_BLK_DEV_AMD74XX is not set 499# CONFIG_BLK_DEV_AMD74XX is not set
493# CONFIG_BLK_DEV_CMD64X is not set 500# CONFIG_BLK_DEV_CMD64X is not set
494# CONFIG_BLK_DEV_TRIFLEX is not set 501# CONFIG_BLK_DEV_TRIFLEX is not set
495# CONFIG_BLK_DEV_CY82C693 is not set
496# CONFIG_BLK_DEV_CS5520 is not set 502# CONFIG_BLK_DEV_CS5520 is not set
497# CONFIG_BLK_DEV_CS5530 is not set 503# CONFIG_BLK_DEV_CS5530 is not set
498# CONFIG_BLK_DEV_HPT34X is not set
499# CONFIG_BLK_DEV_HPT366 is not set 504# CONFIG_BLK_DEV_HPT366 is not set
500# CONFIG_BLK_DEV_JMICRON is not set 505# CONFIG_BLK_DEV_JMICRON is not set
501# CONFIG_BLK_DEV_SC1200 is not set 506# CONFIG_BLK_DEV_SC1200 is not set
@@ -516,8 +521,6 @@ CONFIG_BLK_DEV_IDE_PMAC=y
516CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 521CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
517CONFIG_BLK_DEV_IDEDMA_PMAC=y 522CONFIG_BLK_DEV_IDEDMA_PMAC=y
518CONFIG_BLK_DEV_IDEDMA=y 523CONFIG_BLK_DEV_IDEDMA=y
519# CONFIG_BLK_DEV_HD_ONLY is not set
520# CONFIG_BLK_DEV_HD is not set
521 524
522# 525#
523# SCSI device support 526# SCSI device support
@@ -592,6 +595,7 @@ CONFIG_SCSI_LOWLEVEL=y
592# CONFIG_SCSI_DC390T is not set 595# CONFIG_SCSI_DC390T is not set
593# CONFIG_SCSI_DEBUG is not set 596# CONFIG_SCSI_DEBUG is not set
594# CONFIG_SCSI_SRP is not set 597# CONFIG_SCSI_SRP is not set
598# CONFIG_SCSI_DH is not set
595CONFIG_ATA=y 599CONFIG_ATA=y
596# CONFIG_ATA_NONSTANDARD is not set 600# CONFIG_ATA_NONSTANDARD is not set
597CONFIG_SATA_PMP=y 601CONFIG_SATA_PMP=y
@@ -675,29 +679,21 @@ CONFIG_DM_ZERO=m
675# 679#
676# IEEE 1394 (FireWire) support 680# IEEE 1394 (FireWire) support
677# 681#
678# CONFIG_FIREWIRE is not set
679CONFIG_IEEE1394=y
680
681#
682# Subsystem Options
683#
684# CONFIG_IEEE1394_VERBOSEDEBUG is not set
685 682
686# 683#
687# Controllers 684# Enable only one of the two stacks, unless you know what you are doing
688# 685#
689# CONFIG_IEEE1394_PCILYNX is not set 686# CONFIG_FIREWIRE is not set
687CONFIG_IEEE1394=y
690CONFIG_IEEE1394_OHCI1394=y 688CONFIG_IEEE1394_OHCI1394=y
691 689# CONFIG_IEEE1394_PCILYNX is not set
692#
693# Protocols
694#
695CONFIG_IEEE1394_VIDEO1394=m
696CONFIG_IEEE1394_SBP2=m 690CONFIG_IEEE1394_SBP2=m
697CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y 691CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
698CONFIG_IEEE1394_ETH1394=m 692CONFIG_IEEE1394_ETH1394=m
699CONFIG_IEEE1394_DV1394=m
700CONFIG_IEEE1394_RAWIO=y 693CONFIG_IEEE1394_RAWIO=y
694CONFIG_IEEE1394_VIDEO1394=m
695CONFIG_IEEE1394_DV1394=m
696# CONFIG_IEEE1394_VERBOSEDEBUG is not set
701# CONFIG_I2O is not set 697# CONFIG_I2O is not set
702CONFIG_MACINTOSH_DRIVERS=y 698CONFIG_MACINTOSH_DRIVERS=y
703CONFIG_ADB_PMU=y 699CONFIG_ADB_PMU=y
@@ -712,7 +708,6 @@ CONFIG_WINDFARM_PM112=y
712CONFIG_WINDFARM_PM121=y 708CONFIG_WINDFARM_PM121=y
713# CONFIG_PMAC_RACKMETER is not set 709# CONFIG_PMAC_RACKMETER is not set
714CONFIG_NETDEVICES=y 710CONFIG_NETDEVICES=y
715# CONFIG_NETDEVICES_MULTIQUEUE is not set
716CONFIG_DUMMY=m 711CONFIG_DUMMY=m
717CONFIG_BONDING=m 712CONFIG_BONDING=m
718# CONFIG_MACVLAN is not set 713# CONFIG_MACVLAN is not set
@@ -720,7 +715,23 @@ CONFIG_BONDING=m
720CONFIG_TUN=m 715CONFIG_TUN=m
721# CONFIG_VETH is not set 716# CONFIG_VETH is not set
722# CONFIG_ARCNET is not set 717# CONFIG_ARCNET is not set
723# CONFIG_PHYLIB is not set 718CONFIG_PHYLIB=y
719
720#
721# MII PHY device drivers
722#
723# CONFIG_MARVELL_PHY is not set
724# CONFIG_DAVICOM_PHY is not set
725# CONFIG_QSEMI_PHY is not set
726# CONFIG_LXT_PHY is not set
727# CONFIG_CICADA_PHY is not set
728# CONFIG_VITESSE_PHY is not set
729# CONFIG_SMSC_PHY is not set
730# CONFIG_BROADCOM_PHY is not set
731# CONFIG_ICPLUS_PHY is not set
732# CONFIG_REALTEK_PHY is not set
733# CONFIG_FIXED_PHY is not set
734# CONFIG_MDIO_BITBANG is not set
724CONFIG_NET_ETHERNET=y 735CONFIG_NET_ETHERNET=y
725CONFIG_MII=y 736CONFIG_MII=y
726# CONFIG_HAPPYMEAL is not set 737# CONFIG_HAPPYMEAL is not set
@@ -740,10 +751,8 @@ CONFIG_ACENIC=y
740CONFIG_ACENIC_OMIT_TIGON_I=y 751CONFIG_ACENIC_OMIT_TIGON_I=y
741# CONFIG_DL2K is not set 752# CONFIG_DL2K is not set
742CONFIG_E1000=y 753CONFIG_E1000=y
743# CONFIG_E1000_NAPI is not set
744# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 754# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
745# CONFIG_E1000E is not set 755# CONFIG_E1000E is not set
746# CONFIG_E1000E_ENABLED is not set
747# CONFIG_IP1000 is not set 756# CONFIG_IP1000 is not set
748# CONFIG_IGB is not set 757# CONFIG_IGB is not set
749# CONFIG_NS83820 is not set 758# CONFIG_NS83820 is not set
@@ -758,6 +767,7 @@ CONFIG_TIGON3=y
758# CONFIG_BNX2 is not set 767# CONFIG_BNX2 is not set
759# CONFIG_QLA3XXX is not set 768# CONFIG_QLA3XXX is not set
760# CONFIG_ATL1 is not set 769# CONFIG_ATL1 is not set
770# CONFIG_ATL1E is not set
761CONFIG_NETDEV_10000=y 771CONFIG_NETDEV_10000=y
762# CONFIG_CHELSIO_T1 is not set 772# CONFIG_CHELSIO_T1 is not set
763# CONFIG_CHELSIO_T3 is not set 773# CONFIG_CHELSIO_T3 is not set
@@ -855,6 +865,7 @@ CONFIG_INPUT_MOUSE=y
855# CONFIG_MOUSE_PS2 is not set 865# CONFIG_MOUSE_PS2 is not set
856# CONFIG_MOUSE_SERIAL is not set 866# CONFIG_MOUSE_SERIAL is not set
857# CONFIG_MOUSE_APPLETOUCH is not set 867# CONFIG_MOUSE_APPLETOUCH is not set
868# CONFIG_MOUSE_BCM5974 is not set
858# CONFIG_MOUSE_VSXXXAA is not set 869# CONFIG_MOUSE_VSXXXAA is not set
859# CONFIG_INPUT_JOYSTICK is not set 870# CONFIG_INPUT_JOYSTICK is not set
860# CONFIG_INPUT_TABLET is not set 871# CONFIG_INPUT_TABLET is not set
@@ -869,12 +880,14 @@ CONFIG_SERIO=y
869# CONFIG_SERIO_SERPORT is not set 880# CONFIG_SERIO_SERPORT is not set
870# CONFIG_SERIO_PCIPS2 is not set 881# CONFIG_SERIO_PCIPS2 is not set
871# CONFIG_SERIO_RAW is not set 882# CONFIG_SERIO_RAW is not set
883# CONFIG_SERIO_XILINX_XPS_PS2 is not set
872# CONFIG_GAMEPORT is not set 884# CONFIG_GAMEPORT is not set
873 885
874# 886#
875# Character devices 887# Character devices
876# 888#
877CONFIG_VT=y 889CONFIG_VT=y
890CONFIG_CONSOLE_TRANSLATIONS=y
878CONFIG_VT_CONSOLE=y 891CONFIG_VT_CONSOLE=y
879CONFIG_HW_CONSOLE=y 892CONFIG_HW_CONSOLE=y
880# CONFIG_VT_HW_CONSOLE_BINDING is not set 893# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -909,44 +922,69 @@ CONFIG_DEVPORT=y
909CONFIG_I2C=y 922CONFIG_I2C=y
910CONFIG_I2C_BOARDINFO=y 923CONFIG_I2C_BOARDINFO=y
911CONFIG_I2C_CHARDEV=y 924CONFIG_I2C_CHARDEV=y
925CONFIG_I2C_HELPER_AUTO=y
912CONFIG_I2C_ALGOBIT=y 926CONFIG_I2C_ALGOBIT=y
913 927
914# 928#
915# I2C Hardware Bus support 929# I2C Hardware Bus support
916# 930#
931
932#
933# PC SMBus host controller drivers
934#
917# CONFIG_I2C_ALI1535 is not set 935# CONFIG_I2C_ALI1535 is not set
918# CONFIG_I2C_ALI1563 is not set 936# CONFIG_I2C_ALI1563 is not set
919# CONFIG_I2C_ALI15X3 is not set 937# CONFIG_I2C_ALI15X3 is not set
920# CONFIG_I2C_AMD756 is not set 938# CONFIG_I2C_AMD756 is not set
921# CONFIG_I2C_AMD8111 is not set 939# CONFIG_I2C_AMD8111 is not set
922# CONFIG_I2C_I801 is not set 940# CONFIG_I2C_I801 is not set
923# CONFIG_I2C_I810 is not set 941# CONFIG_I2C_ISCH is not set
924# CONFIG_I2C_PIIX4 is not set 942# CONFIG_I2C_PIIX4 is not set
925CONFIG_I2C_POWERMAC=y
926# CONFIG_I2C_NFORCE2 is not set 943# CONFIG_I2C_NFORCE2 is not set
927# CONFIG_I2C_OCORES is not set
928# CONFIG_I2C_PARPORT_LIGHT is not set
929# CONFIG_I2C_PROSAVAGE is not set
930# CONFIG_I2C_SAVAGE4 is not set
931# CONFIG_I2C_SIMTEC is not set
932# CONFIG_I2C_SIS5595 is not set 944# CONFIG_I2C_SIS5595 is not set
933# CONFIG_I2C_SIS630 is not set 945# CONFIG_I2C_SIS630 is not set
934# CONFIG_I2C_SIS96X is not set 946# CONFIG_I2C_SIS96X is not set
935# CONFIG_I2C_TAOS_EVM is not set
936# CONFIG_I2C_STUB is not set
937# CONFIG_I2C_TINY_USB is not set
938# CONFIG_I2C_VIA is not set 947# CONFIG_I2C_VIA is not set
939# CONFIG_I2C_VIAPRO is not set 948# CONFIG_I2C_VIAPRO is not set
949
950#
951# Mac SMBus host controller drivers
952#
953CONFIG_I2C_POWERMAC=y
954
955#
956# I2C system bus drivers (mostly embedded / system-on-chip)
957#
958# CONFIG_I2C_OCORES is not set
959# CONFIG_I2C_SIMTEC is not set
960
961#
962# External I2C/SMBus adapter drivers
963#
964# CONFIG_I2C_PARPORT_LIGHT is not set
965# CONFIG_I2C_TAOS_EVM is not set
966# CONFIG_I2C_TINY_USB is not set
967
968#
969# Graphics adapter I2C/DDC channel drivers
970#
940# CONFIG_I2C_VOODOO3 is not set 971# CONFIG_I2C_VOODOO3 is not set
972
973#
974# Other I2C/SMBus bus drivers
975#
941# CONFIG_I2C_PCA_PLATFORM is not set 976# CONFIG_I2C_PCA_PLATFORM is not set
977# CONFIG_I2C_STUB is not set
942 978
943# 979#
944# Miscellaneous I2C Chip support 980# Miscellaneous I2C Chip support
945# 981#
946# CONFIG_DS1682 is not set 982# CONFIG_DS1682 is not set
983# CONFIG_AT24 is not set
947# CONFIG_SENSORS_EEPROM is not set 984# CONFIG_SENSORS_EEPROM is not set
948# CONFIG_SENSORS_PCF8574 is not set 985# CONFIG_SENSORS_PCF8574 is not set
949# CONFIG_PCF8575 is not set 986# CONFIG_PCF8575 is not set
987# CONFIG_SENSORS_PCA9539 is not set
950# CONFIG_SENSORS_PCF8591 is not set 988# CONFIG_SENSORS_PCF8591 is not set
951# CONFIG_SENSORS_MAX6875 is not set 989# CONFIG_SENSORS_MAX6875 is not set
952# CONFIG_SENSORS_TSL2550 is not set 990# CONFIG_SENSORS_TSL2550 is not set
@@ -955,10 +993,13 @@ CONFIG_I2C_POWERMAC=y
955# CONFIG_I2C_DEBUG_BUS is not set 993# CONFIG_I2C_DEBUG_BUS is not set
956# CONFIG_I2C_DEBUG_CHIP is not set 994# CONFIG_I2C_DEBUG_CHIP is not set
957# CONFIG_SPI is not set 995# CONFIG_SPI is not set
996CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
997# CONFIG_GPIOLIB is not set
958# CONFIG_W1 is not set 998# CONFIG_W1 is not set
959# CONFIG_POWER_SUPPLY is not set 999# CONFIG_POWER_SUPPLY is not set
960# CONFIG_HWMON is not set 1000# CONFIG_HWMON is not set
961# CONFIG_THERMAL is not set 1001# CONFIG_THERMAL is not set
1002# CONFIG_THERMAL_HWMON is not set
962# CONFIG_WATCHDOG is not set 1003# CONFIG_WATCHDOG is not set
963 1004
964# 1005#
@@ -970,8 +1011,10 @@ CONFIG_SSB_POSSIBLE=y
970# 1011#
971# Multifunction device drivers 1012# Multifunction device drivers
972# 1013#
1014# CONFIG_MFD_CORE is not set
973# CONFIG_MFD_SM501 is not set 1015# CONFIG_MFD_SM501 is not set
974# CONFIG_HTC_PASIC3 is not set 1016# CONFIG_HTC_PASIC3 is not set
1017# CONFIG_MFD_TMIO is not set
975 1018
976# 1019#
977# Multimedia devices 1020# Multimedia devices
@@ -1050,10 +1093,13 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1050# CONFIG_FB_TRIDENT is not set 1093# CONFIG_FB_TRIDENT is not set
1051# CONFIG_FB_ARK is not set 1094# CONFIG_FB_ARK is not set
1052# CONFIG_FB_PM3 is not set 1095# CONFIG_FB_PM3 is not set
1096# CONFIG_FB_CARMINE is not set
1053# CONFIG_FB_IBM_GXT4500 is not set 1097# CONFIG_FB_IBM_GXT4500 is not set
1054# CONFIG_FB_VIRTUAL is not set 1098# CONFIG_FB_VIRTUAL is not set
1055CONFIG_BACKLIGHT_LCD_SUPPORT=y 1099CONFIG_BACKLIGHT_LCD_SUPPORT=y
1056CONFIG_LCD_CLASS_DEVICE=m 1100CONFIG_LCD_CLASS_DEVICE=m
1101# CONFIG_LCD_ILI9320 is not set
1102# CONFIG_LCD_PLATFORM is not set
1057CONFIG_BACKLIGHT_CLASS_DEVICE=y 1103CONFIG_BACKLIGHT_CLASS_DEVICE=y
1058# CONFIG_BACKLIGHT_CORGI is not set 1104# CONFIG_BACKLIGHT_CORGI is not set
1059 1105
@@ -1077,15 +1123,7 @@ CONFIG_LOGO=y
1077CONFIG_LOGO_LINUX_MONO=y 1123CONFIG_LOGO_LINUX_MONO=y
1078CONFIG_LOGO_LINUX_VGA16=y 1124CONFIG_LOGO_LINUX_VGA16=y
1079CONFIG_LOGO_LINUX_CLUT224=y 1125CONFIG_LOGO_LINUX_CLUT224=y
1080
1081#
1082# Sound
1083#
1084CONFIG_SOUND=m 1126CONFIG_SOUND=m
1085
1086#
1087# Advanced Linux Sound Architecture
1088#
1089CONFIG_SND=m 1127CONFIG_SND=m
1090CONFIG_SND_TIMER=m 1128CONFIG_SND_TIMER=m
1091CONFIG_SND_PCM=m 1129CONFIG_SND_PCM=m
@@ -1103,19 +1141,13 @@ CONFIG_SND_SUPPORT_OLD_API=y
1103CONFIG_SND_VERBOSE_PROCFS=y 1141CONFIG_SND_VERBOSE_PROCFS=y
1104# CONFIG_SND_VERBOSE_PRINTK is not set 1142# CONFIG_SND_VERBOSE_PRINTK is not set
1105# CONFIG_SND_DEBUG is not set 1143# CONFIG_SND_DEBUG is not set
1106 1144CONFIG_SND_DRIVERS=y
1107#
1108# Generic devices
1109#
1110# CONFIG_SND_DUMMY is not set 1145# CONFIG_SND_DUMMY is not set
1111# CONFIG_SND_VIRMIDI is not set 1146# CONFIG_SND_VIRMIDI is not set
1112# CONFIG_SND_MTPAV is not set 1147# CONFIG_SND_MTPAV is not set
1113# CONFIG_SND_SERIAL_U16550 is not set 1148# CONFIG_SND_SERIAL_U16550 is not set
1114# CONFIG_SND_MPU401 is not set 1149# CONFIG_SND_MPU401 is not set
1115 1150CONFIG_SND_PCI=y
1116#
1117# PCI devices
1118#
1119# CONFIG_SND_AD1889 is not set 1151# CONFIG_SND_AD1889 is not set
1120# CONFIG_SND_ALS300 is not set 1152# CONFIG_SND_ALS300 is not set
1121# CONFIG_SND_ALS4000 is not set 1153# CONFIG_SND_ALS4000 is not set
@@ -1177,20 +1209,9 @@ CONFIG_SND_VERBOSE_PROCFS=y
1177# CONFIG_SND_VIRTUOSO is not set 1209# CONFIG_SND_VIRTUOSO is not set
1178# CONFIG_SND_VX222 is not set 1210# CONFIG_SND_VX222 is not set
1179# CONFIG_SND_YMFPCI is not set 1211# CONFIG_SND_YMFPCI is not set
1180 1212CONFIG_SND_PPC=y
1181#
1182# ALSA PowerMac devices
1183#
1184CONFIG_SND_POWERMAC=m 1213CONFIG_SND_POWERMAC=m
1185CONFIG_SND_POWERMAC_AUTO_DRC=y 1214CONFIG_SND_POWERMAC_AUTO_DRC=y
1186
1187#
1188# ALSA PowerPC devices
1189#
1190
1191#
1192# Apple Onboard Audio driver
1193#
1194CONFIG_SND_AOA=m 1215CONFIG_SND_AOA=m
1195CONFIG_SND_AOA_FABRIC_LAYOUT=m 1216CONFIG_SND_AOA_FABRIC_LAYOUT=m
1196CONFIG_SND_AOA_ONYX=m 1217CONFIG_SND_AOA_ONYX=m
@@ -1198,30 +1219,11 @@ CONFIG_SND_AOA_TAS=m
1198CONFIG_SND_AOA_TOONIE=m 1219CONFIG_SND_AOA_TOONIE=m
1199CONFIG_SND_AOA_SOUNDBUS=m 1220CONFIG_SND_AOA_SOUNDBUS=m
1200CONFIG_SND_AOA_SOUNDBUS_I2S=m 1221CONFIG_SND_AOA_SOUNDBUS_I2S=m
1201 1222CONFIG_SND_USB=y
1202#
1203# USB devices
1204#
1205CONFIG_SND_USB_AUDIO=m 1223CONFIG_SND_USB_AUDIO=m
1206# CONFIG_SND_USB_USX2Y is not set 1224# CONFIG_SND_USB_USX2Y is not set
1207# CONFIG_SND_USB_CAIAQ is not set 1225# CONFIG_SND_USB_CAIAQ is not set
1208
1209#
1210# System on Chip audio support
1211#
1212# CONFIG_SND_SOC is not set 1226# CONFIG_SND_SOC is not set
1213
1214#
1215# ALSA SoC audio for Freescale SOCs
1216#
1217
1218#
1219# SoC Audio for the Texas Instruments OMAP
1220#
1221
1222#
1223# Open Sound System
1224#
1225# CONFIG_SOUND_PRIME is not set 1227# CONFIG_SOUND_PRIME is not set
1226CONFIG_HID_SUPPORT=y 1228CONFIG_HID_SUPPORT=y
1227CONFIG_HID=y 1229CONFIG_HID=y
@@ -1256,6 +1258,7 @@ CONFIG_USB_DEVICEFS=y
1256CONFIG_USB_DEVICE_CLASS=y 1258CONFIG_USB_DEVICE_CLASS=y
1257# CONFIG_USB_DYNAMIC_MINORS is not set 1259# CONFIG_USB_DYNAMIC_MINORS is not set
1258# CONFIG_USB_OTG is not set 1260# CONFIG_USB_OTG is not set
1261CONFIG_USB_MON=y
1259 1262
1260# 1263#
1261# USB Host Controller Drivers 1264# USB Host Controller Drivers
@@ -1306,6 +1309,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1306# CONFIG_USB_STORAGE_ALAUDA is not set 1309# CONFIG_USB_STORAGE_ALAUDA is not set
1307# CONFIG_USB_STORAGE_ONETOUCH is not set 1310# CONFIG_USB_STORAGE_ONETOUCH is not set
1308# CONFIG_USB_STORAGE_KARMA is not set 1311# CONFIG_USB_STORAGE_KARMA is not set
1312# CONFIG_USB_STORAGE_SIERRA is not set
1309# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1313# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1310# CONFIG_USB_LIBUSUAL is not set 1314# CONFIG_USB_LIBUSUAL is not set
1311 1315
@@ -1314,7 +1318,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1314# 1318#
1315# CONFIG_USB_MDC800 is not set 1319# CONFIG_USB_MDC800 is not set
1316# CONFIG_USB_MICROTEK is not set 1320# CONFIG_USB_MICROTEK is not set
1317CONFIG_USB_MON=y
1318 1321
1319# 1322#
1320# USB port drivers 1323# USB port drivers
@@ -1323,7 +1326,6 @@ CONFIG_USB_SERIAL=m
1323CONFIG_USB_EZUSB=y 1326CONFIG_USB_EZUSB=y
1324CONFIG_USB_SERIAL_GENERIC=y 1327CONFIG_USB_SERIAL_GENERIC=y
1325# CONFIG_USB_SERIAL_AIRCABLE is not set 1328# CONFIG_USB_SERIAL_AIRCABLE is not set
1326# CONFIG_USB_SERIAL_AIRPRIME is not set
1327# CONFIG_USB_SERIAL_ARK3116 is not set 1329# CONFIG_USB_SERIAL_ARK3116 is not set
1328CONFIG_USB_SERIAL_BELKIN=m 1330CONFIG_USB_SERIAL_BELKIN=m
1329# CONFIG_USB_SERIAL_CH341 is not set 1331# CONFIG_USB_SERIAL_CH341 is not set
@@ -1383,7 +1385,6 @@ CONFIG_USB_SERIAL_OMNINET=m
1383# CONFIG_USB_EMI62 is not set 1385# CONFIG_USB_EMI62 is not set
1384# CONFIG_USB_EMI26 is not set 1386# CONFIG_USB_EMI26 is not set
1385# CONFIG_USB_ADUTUX is not set 1387# CONFIG_USB_ADUTUX is not set
1386# CONFIG_USB_AUERSWALD is not set
1387# CONFIG_USB_RIO500 is not set 1388# CONFIG_USB_RIO500 is not set
1388# CONFIG_USB_LEGOTOWER is not set 1389# CONFIG_USB_LEGOTOWER is not set
1389# CONFIG_USB_LCD is not set 1390# CONFIG_USB_LCD is not set
@@ -1497,6 +1498,7 @@ CONFIG_HFSPLUS_FS=m
1497CONFIG_CRAMFS=y 1498CONFIG_CRAMFS=y
1498# CONFIG_VXFS_FS is not set 1499# CONFIG_VXFS_FS is not set
1499# CONFIG_MINIX_FS is not set 1500# CONFIG_MINIX_FS is not set
1501# CONFIG_OMFS_FS is not set
1500# CONFIG_HPFS_FS is not set 1502# CONFIG_HPFS_FS is not set
1501# CONFIG_QNX4FS_FS is not set 1503# CONFIG_QNX4FS_FS is not set
1502# CONFIG_ROMFS_FS is not set 1504# CONFIG_ROMFS_FS is not set
@@ -1519,7 +1521,6 @@ CONFIG_NFS_ACL_SUPPORT=y
1519CONFIG_NFS_COMMON=y 1521CONFIG_NFS_COMMON=y
1520CONFIG_SUNRPC=y 1522CONFIG_SUNRPC=y
1521CONFIG_SUNRPC_GSS=y 1523CONFIG_SUNRPC_GSS=y
1522# CONFIG_SUNRPC_BIND34 is not set
1523CONFIG_RPCSEC_GSS_KRB5=y 1524CONFIG_RPCSEC_GSS_KRB5=y
1524# CONFIG_RPCSEC_GSS_SPKM3 is not set 1525# CONFIG_RPCSEC_GSS_SPKM3 is not set
1525# CONFIG_SMB_FS is not set 1526# CONFIG_SMB_FS is not set
@@ -1603,6 +1604,7 @@ CONFIG_BITREVERSE=y
1603# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1604# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1604CONFIG_CRC_CCITT=m 1605CONFIG_CRC_CCITT=m
1605# CONFIG_CRC16 is not set 1606# CONFIG_CRC16 is not set
1607CONFIG_CRC_T10DIF=y
1606CONFIG_CRC_ITU_T=m 1608CONFIG_CRC_ITU_T=m
1607CONFIG_CRC32=y 1609CONFIG_CRC32=y
1608# CONFIG_CRC7 is not set 1610# CONFIG_CRC7 is not set
@@ -1629,8 +1631,10 @@ CONFIG_DEBUG_FS=y
1629CONFIG_DEBUG_KERNEL=y 1631CONFIG_DEBUG_KERNEL=y
1630# CONFIG_DEBUG_SHIRQ is not set 1632# CONFIG_DEBUG_SHIRQ is not set
1631CONFIG_DETECT_SOFTLOCKUP=y 1633CONFIG_DETECT_SOFTLOCKUP=y
1634# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1635CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1632CONFIG_SCHED_DEBUG=y 1636CONFIG_SCHED_DEBUG=y
1633# CONFIG_SCHEDSTATS is not set 1637CONFIG_SCHEDSTATS=y
1634# CONFIG_TIMER_STATS is not set 1638# CONFIG_TIMER_STATS is not set
1635# CONFIG_DEBUG_OBJECTS is not set 1639# CONFIG_DEBUG_OBJECTS is not set
1636# CONFIG_SLUB_DEBUG_ON is not set 1640# CONFIG_SLUB_DEBUG_ON is not set
@@ -1644,22 +1648,37 @@ CONFIG_DEBUG_MUTEXES=y
1644# CONFIG_LOCK_STAT is not set 1648# CONFIG_LOCK_STAT is not set
1645# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1649# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1646# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1650# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1651CONFIG_STACKTRACE=y
1647# CONFIG_DEBUG_KOBJECT is not set 1652# CONFIG_DEBUG_KOBJECT is not set
1648CONFIG_DEBUG_BUGVERBOSE=y 1653CONFIG_DEBUG_BUGVERBOSE=y
1649# CONFIG_DEBUG_INFO is not set 1654# CONFIG_DEBUG_INFO is not set
1650# CONFIG_DEBUG_VM is not set 1655# CONFIG_DEBUG_VM is not set
1651# CONFIG_DEBUG_WRITECOUNT is not set 1656# CONFIG_DEBUG_WRITECOUNT is not set
1657CONFIG_DEBUG_MEMORY_INIT=y
1652# CONFIG_DEBUG_LIST is not set 1658# CONFIG_DEBUG_LIST is not set
1653# CONFIG_DEBUG_SG is not set 1659# CONFIG_DEBUG_SG is not set
1660CONFIG_FRAME_POINTER=y
1654# CONFIG_BOOT_PRINTK_DELAY is not set 1661# CONFIG_BOOT_PRINTK_DELAY is not set
1655# CONFIG_RCU_TORTURE_TEST is not set 1662# CONFIG_RCU_TORTURE_TEST is not set
1656# CONFIG_BACKTRACE_SELF_TEST is not set 1663# CONFIG_BACKTRACE_SELF_TEST is not set
1657# CONFIG_FAULT_INJECTION is not set 1664# CONFIG_FAULT_INJECTION is not set
1665CONFIG_LATENCYTOP=y
1666CONFIG_SYSCTL_SYSCALL_CHECK=y
1667CONFIG_HAVE_FTRACE=y
1668CONFIG_HAVE_DYNAMIC_FTRACE=y
1669# CONFIG_FTRACE is not set
1670# CONFIG_IRQSOFF_TRACER is not set
1671# CONFIG_SCHED_TRACER is not set
1672# CONFIG_CONTEXT_SWITCH_TRACER is not set
1658# CONFIG_SAMPLES is not set 1673# CONFIG_SAMPLES is not set
1674CONFIG_HAVE_ARCH_KGDB=y
1675# CONFIG_KGDB is not set
1659# CONFIG_DEBUG_STACKOVERFLOW is not set 1676# CONFIG_DEBUG_STACKOVERFLOW is not set
1660# CONFIG_DEBUG_STACK_USAGE is not set 1677# CONFIG_DEBUG_STACK_USAGE is not set
1661# CONFIG_DEBUG_PAGEALLOC is not set 1678# CONFIG_DEBUG_PAGEALLOC is not set
1662# CONFIG_DEBUGGER is not set 1679# CONFIG_CODE_PATCHING_SELFTEST is not set
1680# CONFIG_FTR_FIXUP_SELFTEST is not set
1681# CONFIG_XMON is not set
1663CONFIG_IRQSTACKS=y 1682CONFIG_IRQSTACKS=y
1664# CONFIG_VIRQ_DEBUG is not set 1683# CONFIG_VIRQ_DEBUG is not set
1665CONFIG_BOOTX_TEXT=y 1684CONFIG_BOOTX_TEXT=y
@@ -1718,6 +1737,10 @@ CONFIG_CRYPTO_CRC32C=m
1718CONFIG_CRYPTO_MD4=m 1737CONFIG_CRYPTO_MD4=m
1719CONFIG_CRYPTO_MD5=y 1738CONFIG_CRYPTO_MD5=y
1720CONFIG_CRYPTO_MICHAEL_MIC=m 1739CONFIG_CRYPTO_MICHAEL_MIC=m
1740# CONFIG_CRYPTO_RMD128 is not set
1741# CONFIG_CRYPTO_RMD160 is not set
1742# CONFIG_CRYPTO_RMD256 is not set
1743# CONFIG_CRYPTO_RMD320 is not set
1721CONFIG_CRYPTO_SHA1=m 1744CONFIG_CRYPTO_SHA1=m
1722CONFIG_CRYPTO_SHA256=m 1745CONFIG_CRYPTO_SHA256=m
1723CONFIG_CRYPTO_SHA512=m 1746CONFIG_CRYPTO_SHA512=m
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig
index 63f0bdb6340..2c3f13577f4 100644
--- a/arch/powerpc/configs/iseries_defconfig
+++ b/arch/powerpc/configs/iseries_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc3 3# Linux kernel version: 2.6.27-rc4
4# Tue May 20 20:01:36 2008 4# Tue Aug 26 13:15:49 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -31,6 +31,7 @@ CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y 31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
32CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 33CONFIG_STACKTRACE_SUPPORT=y
34CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_TRACE_IRQFLAGS_SUPPORT=y 35CONFIG_TRACE_IRQFLAGS_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -94,9 +95,8 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
94CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
95# CONFIG_EMBEDDED is not set 96# CONFIG_EMBEDDED is not set
96CONFIG_SYSCTL_SYSCALL=y 97CONFIG_SYSCTL_SYSCALL=y
97CONFIG_SYSCTL_SYSCALL_CHECK=y
98CONFIG_KALLSYMS=y 98CONFIG_KALLSYMS=y
99# CONFIG_KALLSYMS_ALL is not set 99CONFIG_KALLSYMS_ALL=y
100# CONFIG_KALLSYMS_EXTRA_PASS is not set 100# CONFIG_KALLSYMS_EXTRA_PASS is not set
101CONFIG_HOTPLUG=y 101CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 102CONFIG_PRINTK=y
@@ -120,10 +120,16 @@ CONFIG_SLUB=y
120# CONFIG_MARKERS is not set 120# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
122# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y 125CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
125# CONFIG_HAVE_DMA_ATTRS is not set 127CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_HAVE_DMA_ATTRS=y
129CONFIG_USE_GENERIC_SMP_HELPERS=y
130# CONFIG_HAVE_CLK is not set
126CONFIG_PROC_PAGE_MONITOR=y 131CONFIG_PROC_PAGE_MONITOR=y
132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 134CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set 135# CONFIG_TINY_SHMEM is not set
@@ -139,6 +145,7 @@ CONFIG_STOP_MACHINE=y
139CONFIG_BLOCK=y 145CONFIG_BLOCK=y
140# CONFIG_BLK_DEV_IO_TRACE is not set 146# CONFIG_BLK_DEV_IO_TRACE is not set
141CONFIG_BLK_DEV_BSG=y 147CONFIG_BLK_DEV_BSG=y
148# CONFIG_BLK_DEV_INTEGRITY is not set
142CONFIG_BLOCK_COMPAT=y 149CONFIG_BLOCK_COMPAT=y
143 150
144# 151#
@@ -159,9 +166,6 @@ CONFIG_CLASSIC_RCU=y
159# Platform support 166# Platform support
160# 167#
161CONFIG_PPC_MULTIPLATFORM=y 168CONFIG_PPC_MULTIPLATFORM=y
162# CONFIG_PPC_82xx is not set
163# CONFIG_PPC_83xx is not set
164# CONFIG_PPC_86xx is not set
165# CONFIG_PPC_PSERIES is not set 169# CONFIG_PPC_PSERIES is not set
166CONFIG_LPARCFG=y 170CONFIG_LPARCFG=y
167CONFIG_PPC_ISERIES=y 171CONFIG_PPC_ISERIES=y
@@ -173,8 +177,6 @@ CONFIG_VIODASD=y
173CONFIG_VIOCD=m 177CONFIG_VIOCD=m
174CONFIG_VIOTAPE=m 178CONFIG_VIOTAPE=m
175CONFIG_VIOPATH=y 179CONFIG_VIOPATH=y
176# CONFIG_PPC_MPC512x is not set
177# CONFIG_PPC_MPC5121 is not set
178# CONFIG_PPC_PMAC is not set 180# CONFIG_PPC_PMAC is not set
179# CONFIG_PPC_MAPLE is not set 181# CONFIG_PPC_MAPLE is not set
180# CONFIG_PPC_PASEMI is not set 182# CONFIG_PPC_PASEMI is not set
@@ -211,7 +213,7 @@ CONFIG_HZ_250=y
211# CONFIG_HZ_300 is not set 213# CONFIG_HZ_300 is not set
212# CONFIG_HZ_1000 is not set 214# CONFIG_HZ_1000 is not set
213CONFIG_HZ=250 215CONFIG_HZ=250
214# CONFIG_SCHED_HRTICK is not set 216CONFIG_SCHED_HRTICK=y
215CONFIG_PREEMPT_NONE=y 217CONFIG_PREEMPT_NONE=y
216# CONFIG_PREEMPT_VOLUNTARY is not set 218# CONFIG_PREEMPT_VOLUNTARY is not set
217# CONFIG_PREEMPT is not set 219# CONFIG_PREEMPT is not set
@@ -241,6 +243,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
241CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 243CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
242CONFIG_PAGEFLAGS_EXTENDED=y 244CONFIG_PAGEFLAGS_EXTENDED=y
243CONFIG_SPLIT_PTLOCK_CPUS=4 245CONFIG_SPLIT_PTLOCK_CPUS=4
246# CONFIG_MIGRATION is not set
244CONFIG_RESOURCES_64BIT=y 247CONFIG_RESOURCES_64BIT=y
245CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
246CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
@@ -250,6 +253,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
250# CONFIG_SCHED_SMT is not set 253# CONFIG_SCHED_SMT is not set
251CONFIG_PROC_DEVICETREE=y 254CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 255# CONFIG_CMDLINE_BOOL is not set
256CONFIG_EXTRA_TARGETS=""
253# CONFIG_PM is not set 257# CONFIG_PM is not set
254CONFIG_SECCOMP=y 258CONFIG_SECCOMP=y
255CONFIG_ISA_DMA_API=y 259CONFIG_ISA_DMA_API=y
@@ -274,10 +278,6 @@ CONFIG_ARCH_SUPPORTS_MSI=y
274CONFIG_PAGE_OFFSET=0xc000000000000000 278CONFIG_PAGE_OFFSET=0xc000000000000000
275CONFIG_KERNEL_START=0xc000000000000000 279CONFIG_KERNEL_START=0xc000000000000000
276CONFIG_PHYSICAL_START=0x00000000 280CONFIG_PHYSICAL_START=0x00000000
277
278#
279# Networking
280#
281CONFIG_NET=y 281CONFIG_NET=y
282 282
283# 283#
@@ -291,6 +291,7 @@ CONFIG_XFRM_USER=m
291CONFIG_XFRM_SUB_POLICY=y 291CONFIG_XFRM_SUB_POLICY=y
292# CONFIG_XFRM_MIGRATE is not set 292# CONFIG_XFRM_MIGRATE is not set
293# CONFIG_XFRM_STATISTICS is not set 293# CONFIG_XFRM_STATISTICS is not set
294CONFIG_XFRM_IPCOMP=m
294CONFIG_NET_KEY=m 295CONFIG_NET_KEY=m
295# CONFIG_NET_KEY_MIGRATE is not set 296# CONFIG_NET_KEY_MIGRATE is not set
296CONFIG_INET=y 297CONFIG_INET=y
@@ -480,7 +481,9 @@ CONFIG_NET_CLS_ROUTE=y
480CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 481CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
481CONFIG_STANDALONE=y 482CONFIG_STANDALONE=y
482CONFIG_PREVENT_FIRMWARE_BUILD=y 483CONFIG_PREVENT_FIRMWARE_BUILD=y
483CONFIG_FW_LOADER=m 484CONFIG_FW_LOADER=y
485CONFIG_FIRMWARE_IN_KERNEL=y
486CONFIG_EXTRA_FIRMWARE=""
484# CONFIG_DEBUG_DRIVER is not set 487# CONFIG_DEBUG_DRIVER is not set
485# CONFIG_DEBUG_DEVRES is not set 488# CONFIG_DEBUG_DEVRES is not set
486# CONFIG_SYS_HYPERVISOR is not set 489# CONFIG_SYS_HYPERVISOR is not set
@@ -504,12 +507,14 @@ CONFIG_BLK_DEV_RAM_SIZE=65536
504# CONFIG_BLK_DEV_XIP is not set 507# CONFIG_BLK_DEV_XIP is not set
505# CONFIG_CDROM_PKTCDVD is not set 508# CONFIG_CDROM_PKTCDVD is not set
506# CONFIG_ATA_OVER_ETH is not set 509# CONFIG_ATA_OVER_ETH is not set
510# CONFIG_BLK_DEV_HD is not set
507CONFIG_MISC_DEVICES=y 511CONFIG_MISC_DEVICES=y
508# CONFIG_PHANTOM is not set 512# CONFIG_PHANTOM is not set
509# CONFIG_EEPROM_93CX6 is not set 513# CONFIG_EEPROM_93CX6 is not set
510# CONFIG_SGI_IOC4 is not set 514# CONFIG_SGI_IOC4 is not set
511# CONFIG_TIFM_CORE is not set 515# CONFIG_TIFM_CORE is not set
512# CONFIG_ENCLOSURE_SERVICES is not set 516# CONFIG_ENCLOSURE_SERVICES is not set
517# CONFIG_HP_ILO is not set
513CONFIG_HAVE_IDE=y 518CONFIG_HAVE_IDE=y
514# CONFIG_IDE is not set 519# CONFIG_IDE is not set
515 520
@@ -588,6 +593,7 @@ CONFIG_SCSI_IBMVSCSI=m
588# CONFIG_SCSI_DC390T is not set 593# CONFIG_SCSI_DC390T is not set
589# CONFIG_SCSI_DEBUG is not set 594# CONFIG_SCSI_DEBUG is not set
590# CONFIG_SCSI_SRP is not set 595# CONFIG_SCSI_SRP is not set
596# CONFIG_SCSI_DH is not set
591# CONFIG_ATA is not set 597# CONFIG_ATA is not set
592CONFIG_MD=y 598CONFIG_MD=y
593CONFIG_BLK_DEV_MD=y 599CONFIG_BLK_DEV_MD=y
@@ -612,12 +618,15 @@ CONFIG_DM_ZERO=m
612# 618#
613# IEEE 1394 (FireWire) support 619# IEEE 1394 (FireWire) support
614# 620#
621
622#
623# Enable only one of the two stacks, unless you know what you are doing
624#
615# CONFIG_FIREWIRE is not set 625# CONFIG_FIREWIRE is not set
616# CONFIG_IEEE1394 is not set 626# CONFIG_IEEE1394 is not set
617# CONFIG_I2O is not set 627# CONFIG_I2O is not set
618# CONFIG_MACINTOSH_DRIVERS is not set 628# CONFIG_MACINTOSH_DRIVERS is not set
619CONFIG_NETDEVICES=y 629CONFIG_NETDEVICES=y
620# CONFIG_NETDEVICES_MULTIQUEUE is not set
621CONFIG_DUMMY=m 630CONFIG_DUMMY=m
622CONFIG_BONDING=m 631CONFIG_BONDING=m
623# CONFIG_MACVLAN is not set 632# CONFIG_MACVLAN is not set
@@ -655,6 +664,7 @@ CONFIG_E100=y
655# CONFIG_SIS900 is not set 664# CONFIG_SIS900 is not set
656# CONFIG_EPIC100 is not set 665# CONFIG_EPIC100 is not set
657# CONFIG_SUNDANCE is not set 666# CONFIG_SUNDANCE is not set
667# CONFIG_TLAN is not set
658# CONFIG_VIA_RHINE is not set 668# CONFIG_VIA_RHINE is not set
659# CONFIG_SC92031 is not set 669# CONFIG_SC92031 is not set
660CONFIG_NETDEV_1000=y 670CONFIG_NETDEV_1000=y
@@ -662,10 +672,8 @@ CONFIG_ACENIC=m
662# CONFIG_ACENIC_OMIT_TIGON_I is not set 672# CONFIG_ACENIC_OMIT_TIGON_I is not set
663# CONFIG_DL2K is not set 673# CONFIG_DL2K is not set
664CONFIG_E1000=m 674CONFIG_E1000=m
665# CONFIG_E1000_NAPI is not set
666# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 675# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
667# CONFIG_E1000E is not set 676# CONFIG_E1000E is not set
668# CONFIG_E1000E_ENABLED is not set
669# CONFIG_IP1000 is not set 677# CONFIG_IP1000 is not set
670# CONFIG_IGB is not set 678# CONFIG_IGB is not set
671# CONFIG_NS83820 is not set 679# CONFIG_NS83820 is not set
@@ -680,6 +688,7 @@ CONFIG_E1000=m
680# CONFIG_BNX2 is not set 688# CONFIG_BNX2 is not set
681# CONFIG_QLA3XXX is not set 689# CONFIG_QLA3XXX is not set
682# CONFIG_ATL1 is not set 690# CONFIG_ATL1 is not set
691# CONFIG_ATL1E is not set
683CONFIG_NETDEV_10000=y 692CONFIG_NETDEV_10000=y
684# CONFIG_CHELSIO_T1 is not set 693# CONFIG_CHELSIO_T1 is not set
685# CONFIG_CHELSIO_T3 is not set 694# CONFIG_CHELSIO_T3 is not set
@@ -767,6 +776,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
767# Character devices 776# Character devices
768# 777#
769CONFIG_VT=y 778CONFIG_VT=y
779CONFIG_CONSOLE_TRANSLATIONS=y
770CONFIG_VT_CONSOLE=y 780CONFIG_VT_CONSOLE=y
771CONFIG_HW_CONSOLE=y 781CONFIG_HW_CONSOLE=y
772# CONFIG_VT_HW_CONSOLE_BINDING is not set 782# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -789,6 +799,7 @@ CONFIG_UNIX98_PTYS=y
789CONFIG_LEGACY_PTYS=y 799CONFIG_LEGACY_PTYS=y
790CONFIG_LEGACY_PTY_COUNT=256 800CONFIG_LEGACY_PTY_COUNT=256
791CONFIG_HVC_DRIVER=y 801CONFIG_HVC_DRIVER=y
802CONFIG_HVC_IRQ=y
792CONFIG_HVC_ISERIES=y 803CONFIG_HVC_ISERIES=y
793# CONFIG_IPMI_HANDLER is not set 804# CONFIG_IPMI_HANDLER is not set
794# CONFIG_HW_RANDOM is not set 805# CONFIG_HW_RANDOM is not set
@@ -803,10 +814,13 @@ CONFIG_MAX_RAW_DEVS=256
803CONFIG_DEVPORT=y 814CONFIG_DEVPORT=y
804# CONFIG_I2C is not set 815# CONFIG_I2C is not set
805# CONFIG_SPI is not set 816# CONFIG_SPI is not set
817CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
818# CONFIG_GPIOLIB is not set
806# CONFIG_W1 is not set 819# CONFIG_W1 is not set
807# CONFIG_POWER_SUPPLY is not set 820# CONFIG_POWER_SUPPLY is not set
808# CONFIG_HWMON is not set 821# CONFIG_HWMON is not set
809# CONFIG_THERMAL is not set 822# CONFIG_THERMAL is not set
823# CONFIG_THERMAL_HWMON is not set
810# CONFIG_WATCHDOG is not set 824# CONFIG_WATCHDOG is not set
811 825
812# 826#
@@ -818,8 +832,10 @@ CONFIG_SSB_POSSIBLE=y
818# 832#
819# Multifunction device drivers 833# Multifunction device drivers
820# 834#
835# CONFIG_MFD_CORE is not set
821# CONFIG_MFD_SM501 is not set 836# CONFIG_MFD_SM501 is not set
822# CONFIG_HTC_PASIC3 is not set 837# CONFIG_HTC_PASIC3 is not set
838# CONFIG_MFD_TMIO is not set
823 839
824# 840#
825# Multimedia devices 841# Multimedia devices
@@ -858,10 +874,6 @@ CONFIG_SSB_POSSIBLE=y
858CONFIG_VGA_CONSOLE=y 874CONFIG_VGA_CONSOLE=y
859# CONFIG_VGACON_SOFT_SCROLLBACK is not set 875# CONFIG_VGACON_SOFT_SCROLLBACK is not set
860CONFIG_DUMMY_CONSOLE=y 876CONFIG_DUMMY_CONSOLE=y
861
862#
863# Sound
864#
865# CONFIG_SOUND is not set 877# CONFIG_SOUND is not set
866# CONFIG_HID_SUPPORT is not set 878# CONFIG_HID_SUPPORT is not set
867# CONFIG_USB_SUPPORT is not set 879# CONFIG_USB_SUPPORT is not set
@@ -910,7 +922,6 @@ CONFIG_XFS_POSIX_ACL=y
910# CONFIG_XFS_RT is not set 922# CONFIG_XFS_RT is not set
911# CONFIG_XFS_DEBUG is not set 923# CONFIG_XFS_DEBUG is not set
912CONFIG_GFS2_FS=m 924CONFIG_GFS2_FS=m
913CONFIG_GFS2_FS_LOCKING_NOLOCK=m
914CONFIG_GFS2_FS_LOCKING_DLM=m 925CONFIG_GFS2_FS_LOCKING_DLM=m
915# CONFIG_OCFS2_FS is not set 926# CONFIG_OCFS2_FS is not set
916CONFIG_DNOTIFY=y 927CONFIG_DNOTIFY=y
@@ -967,6 +978,7 @@ CONFIG_CONFIGFS_FS=m
967CONFIG_CRAMFS=y 978CONFIG_CRAMFS=y
968# CONFIG_VXFS_FS is not set 979# CONFIG_VXFS_FS is not set
969# CONFIG_MINIX_FS is not set 980# CONFIG_MINIX_FS is not set
981# CONFIG_OMFS_FS is not set
970# CONFIG_HPFS_FS is not set 982# CONFIG_HPFS_FS is not set
971# CONFIG_QNX4FS_FS is not set 983# CONFIG_QNX4FS_FS is not set
972# CONFIG_ROMFS_FS is not set 984# CONFIG_ROMFS_FS is not set
@@ -989,7 +1001,6 @@ CONFIG_NFS_ACL_SUPPORT=y
989CONFIG_NFS_COMMON=y 1001CONFIG_NFS_COMMON=y
990CONFIG_SUNRPC=y 1002CONFIG_SUNRPC=y
991CONFIG_SUNRPC_GSS=y 1003CONFIG_SUNRPC_GSS=y
992# CONFIG_SUNRPC_BIND34 is not set
993CONFIG_RPCSEC_GSS_KRB5=y 1004CONFIG_RPCSEC_GSS_KRB5=y
994CONFIG_RPCSEC_GSS_SPKM3=m 1005CONFIG_RPCSEC_GSS_SPKM3=m
995# CONFIG_SMB_FS is not set 1006# CONFIG_SMB_FS is not set
@@ -1059,6 +1070,7 @@ CONFIG_BITREVERSE=y
1059# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1070# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1060CONFIG_CRC_CCITT=m 1071CONFIG_CRC_CCITT=m
1061# CONFIG_CRC16 is not set 1072# CONFIG_CRC16 is not set
1073CONFIG_CRC_T10DIF=y
1062CONFIG_CRC_ITU_T=m 1074CONFIG_CRC_ITU_T=m
1063CONFIG_CRC32=y 1075CONFIG_CRC32=y
1064# CONFIG_CRC7 is not set 1076# CONFIG_CRC7 is not set
@@ -1089,8 +1101,10 @@ CONFIG_DEBUG_FS=y
1089CONFIG_DEBUG_KERNEL=y 1101CONFIG_DEBUG_KERNEL=y
1090# CONFIG_DEBUG_SHIRQ is not set 1102# CONFIG_DEBUG_SHIRQ is not set
1091CONFIG_DETECT_SOFTLOCKUP=y 1103CONFIG_DETECT_SOFTLOCKUP=y
1104# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1105CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1092CONFIG_SCHED_DEBUG=y 1106CONFIG_SCHED_DEBUG=y
1093# CONFIG_SCHEDSTATS is not set 1107CONFIG_SCHEDSTATS=y
1094# CONFIG_TIMER_STATS is not set 1108# CONFIG_TIMER_STATS is not set
1095# CONFIG_DEBUG_OBJECTS is not set 1109# CONFIG_DEBUG_OBJECTS is not set
1096# CONFIG_SLUB_DEBUG_ON is not set 1110# CONFIG_SLUB_DEBUG_ON is not set
@@ -1104,22 +1118,37 @@ CONFIG_SCHED_DEBUG=y
1104# CONFIG_LOCK_STAT is not set 1118# CONFIG_LOCK_STAT is not set
1105# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1119# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1106# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1120# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1121CONFIG_STACKTRACE=y
1107# CONFIG_DEBUG_KOBJECT is not set 1122# CONFIG_DEBUG_KOBJECT is not set
1108CONFIG_DEBUG_BUGVERBOSE=y 1123CONFIG_DEBUG_BUGVERBOSE=y
1109# CONFIG_DEBUG_INFO is not set 1124# CONFIG_DEBUG_INFO is not set
1110# CONFIG_DEBUG_VM is not set 1125# CONFIG_DEBUG_VM is not set
1111# CONFIG_DEBUG_WRITECOUNT is not set 1126# CONFIG_DEBUG_WRITECOUNT is not set
1127CONFIG_DEBUG_MEMORY_INIT=y
1112# CONFIG_DEBUG_LIST is not set 1128# CONFIG_DEBUG_LIST is not set
1113# CONFIG_DEBUG_SG is not set 1129# CONFIG_DEBUG_SG is not set
1130CONFIG_FRAME_POINTER=y
1114# CONFIG_BOOT_PRINTK_DELAY is not set 1131# CONFIG_BOOT_PRINTK_DELAY is not set
1115# CONFIG_RCU_TORTURE_TEST is not set 1132# CONFIG_RCU_TORTURE_TEST is not set
1116# CONFIG_BACKTRACE_SELF_TEST is not set 1133# CONFIG_BACKTRACE_SELF_TEST is not set
1117# CONFIG_FAULT_INJECTION is not set 1134# CONFIG_FAULT_INJECTION is not set
1135CONFIG_LATENCYTOP=y
1136CONFIG_SYSCTL_SYSCALL_CHECK=y
1137CONFIG_HAVE_FTRACE=y
1138CONFIG_HAVE_DYNAMIC_FTRACE=y
1139# CONFIG_FTRACE is not set
1140# CONFIG_IRQSOFF_TRACER is not set
1141# CONFIG_SCHED_TRACER is not set
1142# CONFIG_CONTEXT_SWITCH_TRACER is not set
1118# CONFIG_SAMPLES is not set 1143# CONFIG_SAMPLES is not set
1144CONFIG_HAVE_ARCH_KGDB=y
1145# CONFIG_KGDB is not set
1119CONFIG_DEBUG_STACKOVERFLOW=y 1146CONFIG_DEBUG_STACKOVERFLOW=y
1120CONFIG_DEBUG_STACK_USAGE=y 1147CONFIG_DEBUG_STACK_USAGE=y
1121# CONFIG_DEBUG_PAGEALLOC is not set 1148# CONFIG_DEBUG_PAGEALLOC is not set
1122# CONFIG_DEBUGGER is not set 1149# CONFIG_CODE_PATCHING_SELFTEST is not set
1150# CONFIG_FTR_FIXUP_SELFTEST is not set
1151# CONFIG_XMON is not set
1123CONFIG_IRQSTACKS=y 1152CONFIG_IRQSTACKS=y
1124# CONFIG_VIRQ_DEBUG is not set 1153# CONFIG_VIRQ_DEBUG is not set
1125# CONFIG_BOOTX_TEXT is not set 1154# CONFIG_BOOTX_TEXT is not set
@@ -1178,6 +1207,10 @@ CONFIG_CRYPTO_CRC32C=m
1178CONFIG_CRYPTO_MD4=m 1207CONFIG_CRYPTO_MD4=m
1179CONFIG_CRYPTO_MD5=y 1208CONFIG_CRYPTO_MD5=y
1180CONFIG_CRYPTO_MICHAEL_MIC=m 1209CONFIG_CRYPTO_MICHAEL_MIC=m
1210# CONFIG_CRYPTO_RMD128 is not set
1211# CONFIG_CRYPTO_RMD160 is not set
1212# CONFIG_CRYPTO_RMD256 is not set
1213# CONFIG_CRYPTO_RMD320 is not set
1181CONFIG_CRYPTO_SHA1=m 1214CONFIG_CRYPTO_SHA1=m
1182CONFIG_CRYPTO_SHA256=m 1215CONFIG_CRYPTO_SHA256=m
1183CONFIG_CRYPTO_SHA512=m 1216CONFIG_CRYPTO_SHA512=m
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 48434c2c762..6fc4c212775 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:10 2008 4# Thu Aug 21 00:52:05 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -93,7 +94,6 @@ CONFIG_INITRAMFS_SOURCE=""
93CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
94# CONFIG_EMBEDDED is not set 95# CONFIG_EMBEDDED is not set
95CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
96CONFIG_SYSCTL_SYSCALL_CHECK=y
97CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
98# CONFIG_KALLSYMS_ALL is not set 98# CONFIG_KALLSYMS_ALL is not set
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 99# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -119,10 +119,16 @@ CONFIG_SLUB=y
119# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set 127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
125CONFIG_PROC_PAGE_MONITOR=y 130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set 134# CONFIG_TINY_SHMEM is not set
@@ -139,6 +145,7 @@ CONFIG_BLOCK=y
139# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set 146# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set
142 149
143# 150#
144# IO Schedulers 151# IO Schedulers
@@ -158,25 +165,25 @@ CONFIG_CLASSIC_RCU=y
158# Platform support 165# Platform support
159# 166#
160CONFIG_PPC_MULTIPLATFORM=y 167CONFIG_PPC_MULTIPLATFORM=y
161# CONFIG_PPC_82xx is not set
162# CONFIG_PPC_83xx is not set
163# CONFIG_PPC_86xx is not set
164CONFIG_CLASSIC32=y 168CONFIG_CLASSIC32=y
165# CONFIG_PPC_CHRP is not set 169# CONFIG_PPC_CHRP is not set
166# CONFIG_PPC_MPC512x is not set
167# CONFIG_PPC_MPC5121 is not set
168# CONFIG_MPC5121_ADS is not set 170# CONFIG_MPC5121_ADS is not set
171# CONFIG_MPC5121_GENERIC is not set
169# CONFIG_PPC_MPC52xx is not set 172# CONFIG_PPC_MPC52xx is not set
170# CONFIG_PPC_PMAC is not set 173# CONFIG_PPC_PMAC is not set
171# CONFIG_PPC_CELL is not set 174# CONFIG_PPC_CELL is not set
172# CONFIG_PPC_CELL_NATIVE is not set 175# CONFIG_PPC_CELL_NATIVE is not set
176# CONFIG_PPC_82xx is not set
173# CONFIG_PQ2ADS is not set 177# CONFIG_PQ2ADS is not set
178# CONFIG_PPC_83xx is not set
179# CONFIG_PPC_86xx is not set
174CONFIG_EMBEDDED6xx=y 180CONFIG_EMBEDDED6xx=y
175CONFIG_LINKSTATION=y 181CONFIG_LINKSTATION=y
176# CONFIG_STORCENTER is not set 182# CONFIG_STORCENTER is not set
177# CONFIG_MPC7448HPC2 is not set 183# CONFIG_MPC7448HPC2 is not set
178# CONFIG_PPC_HOLLY is not set 184# CONFIG_PPC_HOLLY is not set
179# CONFIG_PPC_PRPMC2800 is not set 185# CONFIG_PPC_PRPMC2800 is not set
186# CONFIG_PPC_C2K is not set
180CONFIG_MPC10X_BRIDGE=y 187CONFIG_MPC10X_BRIDGE=y
181CONFIG_MPC10X_OPENPIC=y 188CONFIG_MPC10X_OPENPIC=y
182# CONFIG_MPC10X_STORE_GATHERING is not set 189# CONFIG_MPC10X_STORE_GATHERING is not set
@@ -207,7 +214,7 @@ CONFIG_HZ_100=y
207# CONFIG_HZ_300 is not set 214# CONFIG_HZ_300 is not set
208# CONFIG_HZ_1000 is not set 215# CONFIG_HZ_1000 is not set
209CONFIG_HZ=100 216CONFIG_HZ=100
210# CONFIG_SCHED_HRTICK is not set 217CONFIG_SCHED_HRTICK=y
211CONFIG_PREEMPT_NONE=y 218CONFIG_PREEMPT_NONE=y
212# CONFIG_PREEMPT_VOLUNTARY is not set 219# CONFIG_PREEMPT_VOLUNTARY is not set
213# CONFIG_PREEMPT is not set 220# CONFIG_PREEMPT is not set
@@ -230,6 +237,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
230# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 237# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
231CONFIG_PAGEFLAGS_EXTENDED=y 238CONFIG_PAGEFLAGS_EXTENDED=y
232CONFIG_SPLIT_PTLOCK_CPUS=4 239CONFIG_SPLIT_PTLOCK_CPUS=4
240CONFIG_MIGRATION=y
233# CONFIG_RESOURCES_64BIT is not set 241# CONFIG_RESOURCES_64BIT is not set
234CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
@@ -237,6 +245,7 @@ CONFIG_VIRT_TO_BUS=y
237CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
248CONFIG_EXTRA_TARGETS=""
240# CONFIG_PM is not set 249# CONFIG_PM is not set
241CONFIG_SECCOMP=y 250CONFIG_SECCOMP=y
242CONFIG_ISA_DMA_API=y 251CONFIG_ISA_DMA_API=y
@@ -273,10 +282,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
273CONFIG_KERNEL_START=0xc0000000 282CONFIG_KERNEL_START=0xc0000000
274CONFIG_PHYSICAL_START=0x00000000 283CONFIG_PHYSICAL_START=0x00000000
275CONFIG_TASK_SIZE=0xc0000000 284CONFIG_TASK_SIZE=0xc0000000
276
277#
278# Networking
279#
280CONFIG_NET=y 285CONFIG_NET=y
281 286
282# 287#
@@ -461,6 +466,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
461# 466#
462# CONFIG_CFG80211 is not set 467# CONFIG_CFG80211 is not set
463CONFIG_WIRELESS_EXT=y 468CONFIG_WIRELESS_EXT=y
469CONFIG_WIRELESS_EXT_SYSFS=y
464# CONFIG_MAC80211 is not set 470# CONFIG_MAC80211 is not set
465CONFIG_IEEE80211=m 471CONFIG_IEEE80211=m
466CONFIG_IEEE80211_DEBUG=y 472CONFIG_IEEE80211_DEBUG=y
@@ -480,7 +486,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
480CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 486CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
481CONFIG_STANDALONE=y 487CONFIG_STANDALONE=y
482CONFIG_PREVENT_FIRMWARE_BUILD=y 488CONFIG_PREVENT_FIRMWARE_BUILD=y
483CONFIG_FW_LOADER=m 489CONFIG_FW_LOADER=y
490CONFIG_FIRMWARE_IN_KERNEL=y
491CONFIG_EXTRA_FIRMWARE=""
484# CONFIG_DEBUG_DRIVER is not set 492# CONFIG_DEBUG_DRIVER is not set
485# CONFIG_DEBUG_DEVRES is not set 493# CONFIG_DEBUG_DEVRES is not set
486# CONFIG_SYS_HYPERVISOR is not set 494# CONFIG_SYS_HYPERVISOR is not set
@@ -592,12 +600,14 @@ CONFIG_BLK_DEV_RAM_SIZE=8192
592# CONFIG_BLK_DEV_XIP is not set 600# CONFIG_BLK_DEV_XIP is not set
593# CONFIG_CDROM_PKTCDVD is not set 601# CONFIG_CDROM_PKTCDVD is not set
594# CONFIG_ATA_OVER_ETH is not set 602# CONFIG_ATA_OVER_ETH is not set
603# CONFIG_BLK_DEV_HD is not set
595CONFIG_MISC_DEVICES=y 604CONFIG_MISC_DEVICES=y
596# CONFIG_PHANTOM is not set 605# CONFIG_PHANTOM is not set
597# CONFIG_EEPROM_93CX6 is not set 606# CONFIG_EEPROM_93CX6 is not set
598# CONFIG_SGI_IOC4 is not set 607# CONFIG_SGI_IOC4 is not set
599# CONFIG_TIFM_CORE is not set 608# CONFIG_TIFM_CORE is not set
600# CONFIG_ENCLOSURE_SERVICES is not set 609# CONFIG_ENCLOSURE_SERVICES is not set
610# CONFIG_HP_ILO is not set
601CONFIG_HAVE_IDE=y 611CONFIG_HAVE_IDE=y
602# CONFIG_IDE is not set 612# CONFIG_IDE is not set
603 613
@@ -676,6 +686,7 @@ CONFIG_SCSI_LOWLEVEL=y
676# CONFIG_SCSI_NSP32 is not set 686# CONFIG_SCSI_NSP32 is not set
677# CONFIG_SCSI_DEBUG is not set 687# CONFIG_SCSI_DEBUG is not set
678# CONFIG_SCSI_SRP is not set 688# CONFIG_SCSI_SRP is not set
689# CONFIG_SCSI_DH is not set
679CONFIG_ATA=y 690CONFIG_ATA=y
680# CONFIG_ATA_NONSTANDARD is not set 691# CONFIG_ATA_NONSTANDARD is not set
681CONFIG_SATA_PMP=y 692CONFIG_SATA_PMP=y
@@ -743,12 +754,15 @@ CONFIG_PATA_SIL680=y
743# 754#
744# IEEE 1394 (FireWire) support 755# IEEE 1394 (FireWire) support
745# 756#
757
758#
759# Enable only one of the two stacks, unless you know what you are doing
760#
746# CONFIG_FIREWIRE is not set 761# CONFIG_FIREWIRE is not set
747# CONFIG_IEEE1394 is not set 762# CONFIG_IEEE1394 is not set
748# CONFIG_I2O is not set 763# CONFIG_I2O is not set
749# CONFIG_MACINTOSH_DRIVERS is not set 764# CONFIG_MACINTOSH_DRIVERS is not set
750CONFIG_NETDEVICES=y 765CONFIG_NETDEVICES=y
751# CONFIG_NETDEVICES_MULTIQUEUE is not set
752# CONFIG_DUMMY is not set 766# CONFIG_DUMMY is not set
753# CONFIG_BONDING is not set 767# CONFIG_BONDING is not set
754# CONFIG_MACVLAN is not set 768# CONFIG_MACVLAN is not set
@@ -785,14 +799,12 @@ CONFIG_NETDEV_1000=y
785# CONFIG_DL2K is not set 799# CONFIG_DL2K is not set
786# CONFIG_E1000 is not set 800# CONFIG_E1000 is not set
787# CONFIG_E1000E is not set 801# CONFIG_E1000E is not set
788# CONFIG_E1000E_ENABLED is not set
789# CONFIG_IP1000 is not set 802# CONFIG_IP1000 is not set
790# CONFIG_IGB is not set 803# CONFIG_IGB is not set
791# CONFIG_NS83820 is not set 804# CONFIG_NS83820 is not set
792# CONFIG_HAMACHI is not set 805# CONFIG_HAMACHI is not set
793# CONFIG_YELLOWFIN is not set 806# CONFIG_YELLOWFIN is not set
794CONFIG_R8169=y 807CONFIG_R8169=y
795# CONFIG_R8169_NAPI is not set
796# CONFIG_SIS190 is not set 808# CONFIG_SIS190 is not set
797# CONFIG_SKGE is not set 809# CONFIG_SKGE is not set
798# CONFIG_SKY2 is not set 810# CONFIG_SKY2 is not set
@@ -803,6 +815,7 @@ CONFIG_R8169=y
803# CONFIG_MV643XX_ETH is not set 815# CONFIG_MV643XX_ETH is not set
804# CONFIG_QLA3XXX is not set 816# CONFIG_QLA3XXX is not set
805# CONFIG_ATL1 is not set 817# CONFIG_ATL1 is not set
818# CONFIG_ATL1E is not set
806CONFIG_NETDEV_10000=y 819CONFIG_NETDEV_10000=y
807# CONFIG_CHELSIO_T1 is not set 820# CONFIG_CHELSIO_T1 is not set
808# CONFIG_CHELSIO_T3 is not set 821# CONFIG_CHELSIO_T3 is not set
@@ -889,12 +902,14 @@ CONFIG_SERIO=y
889CONFIG_SERIO_SERPORT=y 902CONFIG_SERIO_SERPORT=y
890# CONFIG_SERIO_PCIPS2 is not set 903# CONFIG_SERIO_PCIPS2 is not set
891# CONFIG_SERIO_RAW is not set 904# CONFIG_SERIO_RAW is not set
905# CONFIG_SERIO_XILINX_XPS_PS2 is not set
892# CONFIG_GAMEPORT is not set 906# CONFIG_GAMEPORT is not set
893 907
894# 908#
895# Character devices 909# Character devices
896# 910#
897CONFIG_VT=y 911CONFIG_VT=y
912CONFIG_CONSOLE_TRANSLATIONS=y
898CONFIG_VT_CONSOLE=y 913CONFIG_VT_CONSOLE=y
899CONFIG_HW_CONSOLE=y 914CONFIG_HW_CONSOLE=y
900# CONFIG_VT_HW_CONSOLE_BINDING is not set 915# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -934,43 +949,64 @@ CONFIG_DEVPORT=y
934CONFIG_I2C=y 949CONFIG_I2C=y
935CONFIG_I2C_BOARDINFO=y 950CONFIG_I2C_BOARDINFO=y
936CONFIG_I2C_CHARDEV=y 951CONFIG_I2C_CHARDEV=y
952CONFIG_I2C_HELPER_AUTO=y
937 953
938# 954#
939# I2C Hardware Bus support 955# I2C Hardware Bus support
940# 956#
957
958#
959# PC SMBus host controller drivers
960#
941# CONFIG_I2C_ALI1535 is not set 961# CONFIG_I2C_ALI1535 is not set
942# CONFIG_I2C_ALI1563 is not set 962# CONFIG_I2C_ALI1563 is not set
943# CONFIG_I2C_ALI15X3 is not set 963# CONFIG_I2C_ALI15X3 is not set
944# CONFIG_I2C_AMD756 is not set 964# CONFIG_I2C_AMD756 is not set
945# CONFIG_I2C_AMD8111 is not set 965# CONFIG_I2C_AMD8111 is not set
946# CONFIG_I2C_I801 is not set 966# CONFIG_I2C_I801 is not set
947# CONFIG_I2C_I810 is not set 967# CONFIG_I2C_ISCH is not set
948# CONFIG_I2C_PIIX4 is not set 968# CONFIG_I2C_PIIX4 is not set
949CONFIG_I2C_MPC=y
950# CONFIG_I2C_NFORCE2 is not set 969# CONFIG_I2C_NFORCE2 is not set
951# CONFIG_I2C_OCORES is not set
952# CONFIG_I2C_PARPORT_LIGHT is not set
953# CONFIG_I2C_PROSAVAGE is not set
954# CONFIG_I2C_SAVAGE4 is not set
955# CONFIG_I2C_SIMTEC is not set
956# CONFIG_I2C_SIS5595 is not set 970# CONFIG_I2C_SIS5595 is not set
957# CONFIG_I2C_SIS630 is not set 971# CONFIG_I2C_SIS630 is not set
958# CONFIG_I2C_SIS96X is not set 972# CONFIG_I2C_SIS96X is not set
959# CONFIG_I2C_TAOS_EVM is not set
960# CONFIG_I2C_STUB is not set
961# CONFIG_I2C_TINY_USB is not set
962# CONFIG_I2C_VIA is not set 973# CONFIG_I2C_VIA is not set
963# CONFIG_I2C_VIAPRO is not set 974# CONFIG_I2C_VIAPRO is not set
975
976#
977# I2C system bus drivers (mostly embedded / system-on-chip)
978#
979CONFIG_I2C_MPC=y
980# CONFIG_I2C_OCORES is not set
981# CONFIG_I2C_SIMTEC is not set
982
983#
984# External I2C/SMBus adapter drivers
985#
986# CONFIG_I2C_PARPORT_LIGHT is not set
987# CONFIG_I2C_TAOS_EVM is not set
988# CONFIG_I2C_TINY_USB is not set
989
990#
991# Graphics adapter I2C/DDC channel drivers
992#
964# CONFIG_I2C_VOODOO3 is not set 993# CONFIG_I2C_VOODOO3 is not set
994
995#
996# Other I2C/SMBus bus drivers
997#
965# CONFIG_I2C_PCA_PLATFORM is not set 998# CONFIG_I2C_PCA_PLATFORM is not set
999# CONFIG_I2C_STUB is not set
966 1000
967# 1001#
968# Miscellaneous I2C Chip support 1002# Miscellaneous I2C Chip support
969# 1003#
970# CONFIG_DS1682 is not set 1004# CONFIG_DS1682 is not set
1005# CONFIG_AT24 is not set
971CONFIG_SENSORS_EEPROM=m 1006CONFIG_SENSORS_EEPROM=m
972# CONFIG_SENSORS_PCF8574 is not set 1007# CONFIG_SENSORS_PCF8574 is not set
973# CONFIG_PCF8575 is not set 1008# CONFIG_PCF8575 is not set
1009# CONFIG_SENSORS_PCA9539 is not set
974# CONFIG_SENSORS_PCF8591 is not set 1010# CONFIG_SENSORS_PCF8591 is not set
975# CONFIG_SENSORS_MAX6875 is not set 1011# CONFIG_SENSORS_MAX6875 is not set
976# CONFIG_SENSORS_TSL2550 is not set 1012# CONFIG_SENSORS_TSL2550 is not set
@@ -979,10 +1015,13 @@ CONFIG_SENSORS_EEPROM=m
979# CONFIG_I2C_DEBUG_BUS is not set 1015# CONFIG_I2C_DEBUG_BUS is not set
980# CONFIG_I2C_DEBUG_CHIP is not set 1016# CONFIG_I2C_DEBUG_CHIP is not set
981# CONFIG_SPI is not set 1017# CONFIG_SPI is not set
1018CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1019# CONFIG_GPIOLIB is not set
982# CONFIG_W1 is not set 1020# CONFIG_W1 is not set
983# CONFIG_POWER_SUPPLY is not set 1021# CONFIG_POWER_SUPPLY is not set
984CONFIG_HWMON=y 1022CONFIG_HWMON=y
985# CONFIG_HWMON_VID is not set 1023# CONFIG_HWMON_VID is not set
1024# CONFIG_SENSORS_AD7414 is not set
986# CONFIG_SENSORS_AD7418 is not set 1025# CONFIG_SENSORS_AD7418 is not set
987# CONFIG_SENSORS_ADM1021 is not set 1026# CONFIG_SENSORS_ADM1021 is not set
988# CONFIG_SENSORS_ADM1025 is not set 1027# CONFIG_SENSORS_ADM1025 is not set
@@ -1036,6 +1075,7 @@ CONFIG_HWMON=y
1036# CONFIG_SENSORS_W83627EHF is not set 1075# CONFIG_SENSORS_W83627EHF is not set
1037# CONFIG_HWMON_DEBUG_CHIP is not set 1076# CONFIG_HWMON_DEBUG_CHIP is not set
1038# CONFIG_THERMAL is not set 1077# CONFIG_THERMAL is not set
1078# CONFIG_THERMAL_HWMON is not set
1039# CONFIG_WATCHDOG is not set 1079# CONFIG_WATCHDOG is not set
1040 1080
1041# 1081#
@@ -1047,8 +1087,10 @@ CONFIG_SSB_POSSIBLE=y
1047# 1087#
1048# Multifunction device drivers 1088# Multifunction device drivers
1049# 1089#
1090# CONFIG_MFD_CORE is not set
1050# CONFIG_MFD_SM501 is not set 1091# CONFIG_MFD_SM501 is not set
1051# CONFIG_HTC_PASIC3 is not set 1092# CONFIG_HTC_PASIC3 is not set
1093# CONFIG_MFD_TMIO is not set
1052 1094
1053# 1095#
1054# Multimedia devices 1096# Multimedia devices
@@ -1086,10 +1128,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
1086# 1128#
1087# CONFIG_VGA_CONSOLE is not set 1129# CONFIG_VGA_CONSOLE is not set
1088CONFIG_DUMMY_CONSOLE=y 1130CONFIG_DUMMY_CONSOLE=y
1089
1090#
1091# Sound
1092#
1093# CONFIG_SOUND is not set 1131# CONFIG_SOUND is not set
1094CONFIG_HID_SUPPORT=y 1132CONFIG_HID_SUPPORT=y
1095CONFIG_HID=m 1133CONFIG_HID=m
@@ -1121,6 +1159,7 @@ CONFIG_USB_DEVICEFS=y
1121CONFIG_USB_DEVICE_CLASS=y 1159CONFIG_USB_DEVICE_CLASS=y
1122# CONFIG_USB_DYNAMIC_MINORS is not set 1160# CONFIG_USB_DYNAMIC_MINORS is not set
1123# CONFIG_USB_OTG is not set 1161# CONFIG_USB_OTG is not set
1162CONFIG_USB_MON=y
1124 1163
1125# 1164#
1126# USB Host Controller Drivers 1165# USB Host Controller Drivers
@@ -1172,6 +1211,7 @@ CONFIG_USB_STORAGE=m
1172# CONFIG_USB_STORAGE_ALAUDA is not set 1211# CONFIG_USB_STORAGE_ALAUDA is not set
1173# CONFIG_USB_STORAGE_ONETOUCH is not set 1212# CONFIG_USB_STORAGE_ONETOUCH is not set
1174# CONFIG_USB_STORAGE_KARMA is not set 1213# CONFIG_USB_STORAGE_KARMA is not set
1214# CONFIG_USB_STORAGE_SIERRA is not set
1175# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1215# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1176# CONFIG_USB_LIBUSUAL is not set 1216# CONFIG_USB_LIBUSUAL is not set
1177 1217
@@ -1180,7 +1220,6 @@ CONFIG_USB_STORAGE=m
1180# 1220#
1181# CONFIG_USB_MDC800 is not set 1221# CONFIG_USB_MDC800 is not set
1182# CONFIG_USB_MICROTEK is not set 1222# CONFIG_USB_MICROTEK is not set
1183CONFIG_USB_MON=y
1184 1223
1185# 1224#
1186# USB port drivers 1225# USB port drivers
@@ -1190,7 +1229,6 @@ CONFIG_USB_SERIAL_CONSOLE=y
1190# CONFIG_USB_EZUSB is not set 1229# CONFIG_USB_EZUSB is not set
1191# CONFIG_USB_SERIAL_GENERIC is not set 1230# CONFIG_USB_SERIAL_GENERIC is not set
1192# CONFIG_USB_SERIAL_AIRCABLE is not set 1231# CONFIG_USB_SERIAL_AIRCABLE is not set
1193# CONFIG_USB_SERIAL_AIRPRIME is not set
1194# CONFIG_USB_SERIAL_ARK3116 is not set 1232# CONFIG_USB_SERIAL_ARK3116 is not set
1195# CONFIG_USB_SERIAL_BELKIN is not set 1233# CONFIG_USB_SERIAL_BELKIN is not set
1196# CONFIG_USB_SERIAL_CH341 is not set 1234# CONFIG_USB_SERIAL_CH341 is not set
@@ -1237,7 +1275,6 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1237# CONFIG_USB_EMI62 is not set 1275# CONFIG_USB_EMI62 is not set
1238# CONFIG_USB_EMI26 is not set 1276# CONFIG_USB_EMI26 is not set
1239# CONFIG_USB_ADUTUX is not set 1277# CONFIG_USB_ADUTUX is not set
1240# CONFIG_USB_AUERSWALD is not set
1241# CONFIG_USB_RIO500 is not set 1278# CONFIG_USB_RIO500 is not set
1242# CONFIG_USB_LEGOTOWER is not set 1279# CONFIG_USB_LEGOTOWER is not set
1243# CONFIG_USB_LCD is not set 1280# CONFIG_USB_LCD is not set
@@ -1291,6 +1328,7 @@ CONFIG_RTC_DRV_RS5C372=y
1291# CONFIG_RTC_DRV_PCF8583 is not set 1328# CONFIG_RTC_DRV_PCF8583 is not set
1292# CONFIG_RTC_DRV_M41T80 is not set 1329# CONFIG_RTC_DRV_M41T80 is not set
1293# CONFIG_RTC_DRV_S35390A is not set 1330# CONFIG_RTC_DRV_S35390A is not set
1331# CONFIG_RTC_DRV_FM3130 is not set
1294 1332
1295# 1333#
1296# SPI RTC drivers 1334# SPI RTC drivers
@@ -1392,6 +1430,7 @@ CONFIG_TMPFS=y
1392# CONFIG_CRAMFS is not set 1430# CONFIG_CRAMFS is not set
1393# CONFIG_VXFS_FS is not set 1431# CONFIG_VXFS_FS is not set
1394# CONFIG_MINIX_FS is not set 1432# CONFIG_MINIX_FS is not set
1433# CONFIG_OMFS_FS is not set
1395# CONFIG_HPFS_FS is not set 1434# CONFIG_HPFS_FS is not set
1396# CONFIG_QNX4FS_FS is not set 1435# CONFIG_QNX4FS_FS is not set
1397# CONFIG_ROMFS_FS is not set 1436# CONFIG_ROMFS_FS is not set
@@ -1402,11 +1441,11 @@ CONFIG_NFS_FS=y
1402CONFIG_NFS_V3=y 1441CONFIG_NFS_V3=y
1403CONFIG_NFS_V3_ACL=y 1442CONFIG_NFS_V3_ACL=y
1404CONFIG_NFS_V4=y 1443CONFIG_NFS_V4=y
1444CONFIG_ROOT_NFS=y
1405CONFIG_NFSD=m 1445CONFIG_NFSD=m
1406CONFIG_NFSD_V3=y 1446CONFIG_NFSD_V3=y
1407# CONFIG_NFSD_V3_ACL is not set 1447# CONFIG_NFSD_V3_ACL is not set
1408# CONFIG_NFSD_V4 is not set 1448# CONFIG_NFSD_V4 is not set
1409CONFIG_ROOT_NFS=y
1410CONFIG_LOCKD=y 1449CONFIG_LOCKD=y
1411CONFIG_LOCKD_V4=y 1450CONFIG_LOCKD_V4=y
1412CONFIG_EXPORTFS=m 1451CONFIG_EXPORTFS=m
@@ -1414,7 +1453,6 @@ CONFIG_NFS_ACL_SUPPORT=y
1414CONFIG_NFS_COMMON=y 1453CONFIG_NFS_COMMON=y
1415CONFIG_SUNRPC=y 1454CONFIG_SUNRPC=y
1416CONFIG_SUNRPC_GSS=y 1455CONFIG_SUNRPC_GSS=y
1417# CONFIG_SUNRPC_BIND34 is not set
1418CONFIG_RPCSEC_GSS_KRB5=y 1456CONFIG_RPCSEC_GSS_KRB5=y
1419# CONFIG_RPCSEC_GSS_SPKM3 is not set 1457# CONFIG_RPCSEC_GSS_SPKM3 is not set
1420# CONFIG_SMB_FS is not set 1458# CONFIG_SMB_FS is not set
@@ -1482,6 +1520,7 @@ CONFIG_BITREVERSE=y
1482# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1520# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1483CONFIG_CRC_CCITT=m 1521CONFIG_CRC_CCITT=m
1484# CONFIG_CRC16 is not set 1522# CONFIG_CRC16 is not set
1523CONFIG_CRC_T10DIF=y
1485CONFIG_CRC_ITU_T=m 1524CONFIG_CRC_ITU_T=m
1486CONFIG_CRC32=y 1525CONFIG_CRC32=y
1487# CONFIG_CRC7 is not set 1526# CONFIG_CRC7 is not set
@@ -1510,6 +1549,8 @@ CONFIG_MAGIC_SYSRQ=y
1510CONFIG_DEBUG_KERNEL=y 1549CONFIG_DEBUG_KERNEL=y
1511# CONFIG_DEBUG_SHIRQ is not set 1550# CONFIG_DEBUG_SHIRQ is not set
1512CONFIG_DETECT_SOFTLOCKUP=y 1551CONFIG_DETECT_SOFTLOCKUP=y
1552# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1553CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1513CONFIG_SCHED_DEBUG=y 1554CONFIG_SCHED_DEBUG=y
1514# CONFIG_SCHEDSTATS is not set 1555# CONFIG_SCHEDSTATS is not set
1515# CONFIG_TIMER_STATS is not set 1556# CONFIG_TIMER_STATS is not set
@@ -1527,17 +1568,29 @@ CONFIG_DEBUG_BUGVERBOSE=y
1527# CONFIG_DEBUG_INFO is not set 1568# CONFIG_DEBUG_INFO is not set
1528# CONFIG_DEBUG_VM is not set 1569# CONFIG_DEBUG_VM is not set
1529# CONFIG_DEBUG_WRITECOUNT is not set 1570# CONFIG_DEBUG_WRITECOUNT is not set
1571CONFIG_DEBUG_MEMORY_INIT=y
1530# CONFIG_DEBUG_LIST is not set 1572# CONFIG_DEBUG_LIST is not set
1531# CONFIG_DEBUG_SG is not set 1573# CONFIG_DEBUG_SG is not set
1532# CONFIG_BOOT_PRINTK_DELAY is not set 1574# CONFIG_BOOT_PRINTK_DELAY is not set
1533# CONFIG_RCU_TORTURE_TEST is not set 1575# CONFIG_RCU_TORTURE_TEST is not set
1534# CONFIG_BACKTRACE_SELF_TEST is not set 1576# CONFIG_BACKTRACE_SELF_TEST is not set
1535# CONFIG_FAULT_INJECTION is not set 1577# CONFIG_FAULT_INJECTION is not set
1578# CONFIG_LATENCYTOP is not set
1579CONFIG_SYSCTL_SYSCALL_CHECK=y
1580CONFIG_HAVE_FTRACE=y
1581CONFIG_HAVE_DYNAMIC_FTRACE=y
1582# CONFIG_FTRACE is not set
1583# CONFIG_SCHED_TRACER is not set
1584# CONFIG_CONTEXT_SWITCH_TRACER is not set
1536# CONFIG_SAMPLES is not set 1585# CONFIG_SAMPLES is not set
1586CONFIG_HAVE_ARCH_KGDB=y
1587# CONFIG_KGDB is not set
1537# CONFIG_DEBUG_STACKOVERFLOW is not set 1588# CONFIG_DEBUG_STACKOVERFLOW is not set
1538# CONFIG_DEBUG_STACK_USAGE is not set 1589# CONFIG_DEBUG_STACK_USAGE is not set
1539# CONFIG_DEBUG_PAGEALLOC is not set 1590# CONFIG_DEBUG_PAGEALLOC is not set
1540# CONFIG_DEBUGGER is not set 1591# CONFIG_CODE_PATCHING_SELFTEST is not set
1592# CONFIG_FTR_FIXUP_SELFTEST is not set
1593# CONFIG_XMON is not set
1541# CONFIG_IRQSTACKS is not set 1594# CONFIG_IRQSTACKS is not set
1542# CONFIG_BDI_SWITCH is not set 1595# CONFIG_BDI_SWITCH is not set
1543# CONFIG_BOOTX_TEXT is not set 1596# CONFIG_BOOTX_TEXT is not set
@@ -1556,6 +1609,7 @@ CONFIG_CRYPTO=y
1556# 1609#
1557CONFIG_CRYPTO_ALGAPI=y 1610CONFIG_CRYPTO_ALGAPI=y
1558CONFIG_CRYPTO_BLKCIPHER=y 1611CONFIG_CRYPTO_BLKCIPHER=y
1612CONFIG_CRYPTO_HASH=m
1559CONFIG_CRYPTO_MANAGER=y 1613CONFIG_CRYPTO_MANAGER=y
1560# CONFIG_CRYPTO_GF128MUL is not set 1614# CONFIG_CRYPTO_GF128MUL is not set
1561# CONFIG_CRYPTO_NULL is not set 1615# CONFIG_CRYPTO_NULL is not set
@@ -1594,6 +1648,10 @@ CONFIG_CRYPTO_CRC32C=m
1594CONFIG_CRYPTO_MD4=m 1648CONFIG_CRYPTO_MD4=m
1595CONFIG_CRYPTO_MD5=y 1649CONFIG_CRYPTO_MD5=y
1596CONFIG_CRYPTO_MICHAEL_MIC=m 1650CONFIG_CRYPTO_MICHAEL_MIC=m
1651# CONFIG_CRYPTO_RMD128 is not set
1652# CONFIG_CRYPTO_RMD160 is not set
1653# CONFIG_CRYPTO_RMD256 is not set
1654# CONFIG_CRYPTO_RMD320 is not set
1597CONFIG_CRYPTO_SHA1=m 1655CONFIG_CRYPTO_SHA1=m
1598# CONFIG_CRYPTO_SHA256 is not set 1656# CONFIG_CRYPTO_SHA256 is not set
1599# CONFIG_CRYPTO_SHA512 is not set 1657# CONFIG_CRYPTO_SHA512 is not set
@@ -1627,5 +1685,6 @@ CONFIG_CRYPTO_DEFLATE=m
1627# CONFIG_CRYPTO_LZO is not set 1685# CONFIG_CRYPTO_LZO is not set
1628CONFIG_CRYPTO_HW=y 1686CONFIG_CRYPTO_HW=y
1629# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1687# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1688# CONFIG_CRYPTO_DEV_TALITOS is not set
1630# CONFIG_PPC_CLOCK is not set 1689# CONFIG_PPC_CLOCK is not set
1631# CONFIG_VIRTUALIZATION is not set 1690# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig
index 7a166a39d92..1a3b6423222 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc4 3# Linux kernel version: 2.6.27-rc4
4# Thu Dec 6 16:48:26 2007 4# Tue Aug 26 13:18:58 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -27,7 +27,12 @@ CONFIG_GENERIC_TIME=y
27CONFIG_GENERIC_TIME_VSYSCALL=y 27CONFIG_GENERIC_TIME_VSYSCALL=y
28CONFIG_GENERIC_CLOCKEVENTS=y 28CONFIG_GENERIC_CLOCKEVENTS=y
29CONFIG_GENERIC_HARDIRQS=y 29CONFIG_GENERIC_HARDIRQS=y
30CONFIG_HAVE_SETUP_PER_CPU_AREA=y
30CONFIG_IRQ_PER_CPU=y 31CONFIG_IRQ_PER_CPU=y
32CONFIG_STACKTRACE_SUPPORT=y
33CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_TRACE_IRQFLAGS_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
31CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
32CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
33CONFIG_ARCH_HAS_ILOG2_U64=y 38CONFIG_ARCH_HAS_ILOG2_U64=y
@@ -67,16 +72,20 @@ CONFIG_SYSVIPC_SYSCTL=y
67CONFIG_POSIX_MQUEUE=y 72CONFIG_POSIX_MQUEUE=y
68# CONFIG_BSD_PROCESS_ACCT is not set 73# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 74# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
73CONFIG_IKCONFIG=y 76CONFIG_IKCONFIG=y
74CONFIG_IKCONFIG_PROC=y 77CONFIG_IKCONFIG_PROC=y
75CONFIG_LOG_BUF_SHIFT=17 78CONFIG_LOG_BUF_SHIFT=17
76# CONFIG_CGROUPS is not set 79# CONFIG_CGROUPS is not set
77# CONFIG_FAIR_GROUP_SCHED is not set 80# CONFIG_GROUP_SCHED is not set
78CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
82CONFIG_SYSFS_DEPRECATED_V2=y
79# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
84CONFIG_NAMESPACES=y
85# CONFIG_UTS_NS is not set
86# CONFIG_IPC_NS is not set
87# CONFIG_USER_NS is not set
88# CONFIG_PID_NS is not set
80# CONFIG_BLK_DEV_INITRD is not set 89# CONFIG_BLK_DEV_INITRD is not set
81CONFIG_CC_OPTIMIZE_FOR_SIZE=y 90CONFIG_CC_OPTIMIZE_FOR_SIZE=y
82CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
@@ -89,11 +98,13 @@ CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y 98CONFIG_PRINTK=y
90CONFIG_BUG=y 99CONFIG_BUG=y
91CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101# CONFIG_COMPAT_BRK is not set
92CONFIG_BASE_FULL=y 102CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 103CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y 104CONFIG_ANON_INODES=y
95CONFIG_EPOLL=y 105CONFIG_EPOLL=y
96CONFIG_SIGNALFD=y 106CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 108CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 109CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 110CONFIG_VM_EVENT_COUNTERS=y
@@ -101,10 +112,28 @@ CONFIG_SLUB_DEBUG=y
101# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
102CONFIG_SLUB=y 113CONFIG_SLUB=y
103# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115CONFIG_PROFILING=y
116# CONFIG_MARKERS is not set
117CONFIG_OPROFILE=m
118CONFIG_HAVE_OPROFILE=y
119CONFIG_KPROBES=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_KRETPROBES=y
122CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y
126CONFIG_HAVE_DMA_ATTRS=y
127CONFIG_USE_GENERIC_SMP_HELPERS=y
128# CONFIG_HAVE_CLK is not set
129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y
104CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
105# CONFIG_TINY_SHMEM is not set 133# CONFIG_TINY_SHMEM is not set
106CONFIG_BASE_SMALL=0 134CONFIG_BASE_SMALL=0
107CONFIG_MODULES=y 135CONFIG_MODULES=y
136# CONFIG_MODULE_FORCE_LOAD is not set
108CONFIG_MODULE_UNLOAD=y 137CONFIG_MODULE_UNLOAD=y
109# CONFIG_MODULE_FORCE_UNLOAD is not set 138# CONFIG_MODULE_FORCE_UNLOAD is not set
110CONFIG_MODVERSIONS=y 139CONFIG_MODVERSIONS=y
@@ -114,6 +143,7 @@ CONFIG_STOP_MACHINE=y
114CONFIG_BLOCK=y 143CONFIG_BLOCK=y
115# CONFIG_BLK_DEV_IO_TRACE is not set 144# CONFIG_BLK_DEV_IO_TRACE is not set
116# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set
117CONFIG_BLOCK_COMPAT=y 147CONFIG_BLOCK_COMPAT=y
118 148
119# 149#
@@ -128,29 +158,26 @@ CONFIG_DEFAULT_AS=y
128# CONFIG_DEFAULT_CFQ is not set 158# CONFIG_DEFAULT_CFQ is not set
129# CONFIG_DEFAULT_NOOP is not set 159# CONFIG_DEFAULT_NOOP is not set
130CONFIG_DEFAULT_IOSCHED="anticipatory" 160CONFIG_DEFAULT_IOSCHED="anticipatory"
161CONFIG_CLASSIC_RCU=y
131 162
132# 163#
133# Platform support 164# Platform support
134# 165#
135CONFIG_PPC_MULTIPLATFORM=y 166CONFIG_PPC_MULTIPLATFORM=y
136# CONFIG_PPC_82xx is not set
137# CONFIG_PPC_83xx is not set
138# CONFIG_PPC_86xx is not set
139# CONFIG_PPC_PSERIES is not set 167# CONFIG_PPC_PSERIES is not set
140# CONFIG_PPC_ISERIES is not set 168# CONFIG_PPC_ISERIES is not set
141# CONFIG_PPC_MPC52xx is not set
142# CONFIG_PPC_MPC5200 is not set
143# CONFIG_PPC_PMAC is not set 169# CONFIG_PPC_PMAC is not set
144CONFIG_PPC_MAPLE=y 170CONFIG_PPC_MAPLE=y
145# CONFIG_PPC_PASEMI is not set 171# CONFIG_PPC_PASEMI is not set
146# CONFIG_PPC_CELLEB is not set
147# CONFIG_PPC_PS3 is not set 172# CONFIG_PPC_PS3 is not set
148# CONFIG_PPC_CELL is not set 173# CONFIG_PPC_CELL is not set
149# CONFIG_PPC_CELL_NATIVE is not set 174# CONFIG_PPC_CELL_NATIVE is not set
150# CONFIG_PPC_IBM_CELL_BLADE is not set 175# CONFIG_PPC_IBM_CELL_BLADE is not set
176# CONFIG_PPC_CELLEB is not set
151# CONFIG_PQ2ADS is not set 177# CONFIG_PQ2ADS is not set
152CONFIG_PPC_NATIVE=y 178CONFIG_PPC_NATIVE=y
153CONFIG_UDBG_RTAS_CONSOLE=y 179CONFIG_UDBG_RTAS_CONSOLE=y
180# CONFIG_IPIC is not set
154CONFIG_MPIC=y 181CONFIG_MPIC=y
155# CONFIG_MPIC_WEIRD is not set 182# CONFIG_MPIC_WEIRD is not set
156# CONFIG_PPC_I8259 is not set 183# CONFIG_PPC_I8259 is not set
@@ -166,7 +193,6 @@ CONFIG_PPC_970_NAP=y
166# CONFIG_PPC_INDIRECT_IO is not set 193# CONFIG_PPC_INDIRECT_IO is not set
167# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
168# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
169# CONFIG_CPM2 is not set
170# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
171 197
172# 198#
@@ -181,16 +207,19 @@ CONFIG_HZ_250=y
181# CONFIG_HZ_300 is not set 207# CONFIG_HZ_300 is not set
182# CONFIG_HZ_1000 is not set 208# CONFIG_HZ_1000 is not set
183CONFIG_HZ=250 209CONFIG_HZ=250
210CONFIG_SCHED_HRTICK=y
184CONFIG_PREEMPT_NONE=y 211CONFIG_PREEMPT_NONE=y
185# CONFIG_PREEMPT_VOLUNTARY is not set 212# CONFIG_PREEMPT_VOLUNTARY is not set
186# CONFIG_PREEMPT is not set 213# CONFIG_PREEMPT is not set
187# CONFIG_PREEMPT_BKL is not set
188CONFIG_BINFMT_ELF=y 214CONFIG_BINFMT_ELF=y
215CONFIG_COMPAT_BINFMT_ELF=y
189# CONFIG_BINFMT_MISC is not set 216# CONFIG_BINFMT_MISC is not set
190CONFIG_FORCE_MAX_ZONEORDER=13
191CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 217CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
192CONFIG_IOMMU_VMERGE=y 218CONFIG_IOMMU_VMERGE=y
219CONFIG_IOMMU_HELPER=y
193CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
221CONFIG_ARCH_HAS_WALK_MEMORY=y
222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
194CONFIG_KEXEC=y 223CONFIG_KEXEC=y
195# CONFIG_CRASH_DUMP is not set 224# CONFIG_CRASH_DUMP is not set
196CONFIG_IRQ_ALL_CPUS=y 225CONFIG_IRQ_ALL_CPUS=y
@@ -207,18 +236,21 @@ CONFIG_FLATMEM=y
207CONFIG_FLAT_NODE_MEM_MAP=y 236CONFIG_FLAT_NODE_MEM_MAP=y
208# CONFIG_SPARSEMEM_STATIC is not set 237# CONFIG_SPARSEMEM_STATIC is not set
209CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 238CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
239CONFIG_PAGEFLAGS_EXTENDED=y
210CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
241# CONFIG_MIGRATION is not set
211CONFIG_RESOURCES_64BIT=y 242CONFIG_RESOURCES_64BIT=y
212CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
213CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
214# CONFIG_PPC_HAS_HASH_64K is not set 245# CONFIG_PPC_HAS_HASH_64K is not set
215# CONFIG_PPC_64K_PAGES is not set 246# CONFIG_PPC_64K_PAGES is not set
247CONFIG_FORCE_MAX_ZONEORDER=13
216# CONFIG_SCHED_SMT is not set 248# CONFIG_SCHED_SMT is not set
217CONFIG_PROC_DEVICETREE=y 249CONFIG_PROC_DEVICETREE=y
218# CONFIG_CMDLINE_BOOL is not set 250# CONFIG_CMDLINE_BOOL is not set
251CONFIG_EXTRA_TARGETS=""
219# CONFIG_PM is not set 252# CONFIG_PM is not set
220CONFIG_SECCOMP=y 253CONFIG_SECCOMP=y
221# CONFIG_WANT_DEVICE_TREE is not set
222CONFIG_ISA_DMA_API=y 254CONFIG_ISA_DMA_API=y
223 255
224# 256#
@@ -237,11 +269,10 @@ CONFIG_PCI_LEGACY=y
237# CONFIG_PCI_DEBUG is not set 269# CONFIG_PCI_DEBUG is not set
238# CONFIG_PCCARD is not set 270# CONFIG_PCCARD is not set
239# CONFIG_HOTPLUG_PCI is not set 271# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set
273CONFIG_PAGE_OFFSET=0xc000000000000000
240CONFIG_KERNEL_START=0xc000000000000000 274CONFIG_KERNEL_START=0xc000000000000000
241 275CONFIG_PHYSICAL_START=0x00000000
242#
243# Networking
244#
245CONFIG_NET=y 276CONFIG_NET=y
246 277
247# 278#
@@ -254,6 +285,7 @@ CONFIG_XFRM=y
254CONFIG_XFRM_USER=m 285CONFIG_XFRM_USER=m
255# CONFIG_XFRM_SUB_POLICY is not set 286# CONFIG_XFRM_SUB_POLICY is not set
256# CONFIG_XFRM_MIGRATE is not set 287# CONFIG_XFRM_MIGRATE is not set
288# CONFIG_XFRM_STATISTICS is not set
257# CONFIG_NET_KEY is not set 289# CONFIG_NET_KEY is not set
258CONFIG_INET=y 290CONFIG_INET=y
259CONFIG_IP_MULTICAST=y 291CONFIG_IP_MULTICAST=y
@@ -284,8 +316,6 @@ CONFIG_TCP_CONG_CUBIC=y
284CONFIG_DEFAULT_TCP_CONG="cubic" 316CONFIG_DEFAULT_TCP_CONG="cubic"
285# CONFIG_TCP_MD5SIG is not set 317# CONFIG_TCP_MD5SIG is not set
286# CONFIG_IPV6 is not set 318# CONFIG_IPV6 is not set
287# CONFIG_INET6_XFRM_TUNNEL is not set
288# CONFIG_INET6_TUNNEL is not set
289# CONFIG_NETWORK_SECMARK is not set 319# CONFIG_NETWORK_SECMARK is not set
290# CONFIG_NETFILTER is not set 320# CONFIG_NETFILTER is not set
291# CONFIG_IP_DCCP is not set 321# CONFIG_IP_DCCP is not set
@@ -308,7 +338,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
308# Network testing 338# Network testing
309# 339#
310# CONFIG_NET_PKTGEN is not set 340# CONFIG_NET_PKTGEN is not set
341# CONFIG_NET_TCPPROBE is not set
311# CONFIG_HAMRADIO is not set 342# CONFIG_HAMRADIO is not set
343# CONFIG_CAN is not set
312# CONFIG_IRDA is not set 344# CONFIG_IRDA is not set
313# CONFIG_BT is not set 345# CONFIG_BT is not set
314# CONFIG_AF_RXRPC is not set 346# CONFIG_AF_RXRPC is not set
@@ -334,12 +366,15 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
334CONFIG_STANDALONE=y 366CONFIG_STANDALONE=y
335CONFIG_PREVENT_FIRMWARE_BUILD=y 367CONFIG_PREVENT_FIRMWARE_BUILD=y
336CONFIG_FW_LOADER=y 368CONFIG_FW_LOADER=y
369CONFIG_FIRMWARE_IN_KERNEL=y
370CONFIG_EXTRA_FIRMWARE=""
337# CONFIG_DEBUG_DRIVER is not set 371# CONFIG_DEBUG_DRIVER is not set
338# CONFIG_DEBUG_DEVRES is not set 372# CONFIG_DEBUG_DEVRES is not set
339# CONFIG_SYS_HYPERVISOR is not set 373# CONFIG_SYS_HYPERVISOR is not set
340# CONFIG_CONNECTOR is not set 374# CONFIG_CONNECTOR is not set
341# CONFIG_MTD is not set 375# CONFIG_MTD is not set
342CONFIG_OF_DEVICE=y 376CONFIG_OF_DEVICE=y
377CONFIG_OF_I2C=y
343# CONFIG_PARPORT is not set 378# CONFIG_PARPORT is not set
344CONFIG_BLK_DEV=y 379CONFIG_BLK_DEV=y
345# CONFIG_BLK_DEV_FD is not set 380# CONFIG_BLK_DEV_FD is not set
@@ -354,24 +389,30 @@ CONFIG_BLK_DEV=y
354CONFIG_BLK_DEV_RAM=y 389CONFIG_BLK_DEV_RAM=y
355CONFIG_BLK_DEV_RAM_COUNT=16 390CONFIG_BLK_DEV_RAM_COUNT=16
356CONFIG_BLK_DEV_RAM_SIZE=8192 391CONFIG_BLK_DEV_RAM_SIZE=8192
357CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 392# CONFIG_BLK_DEV_XIP is not set
358# CONFIG_CDROM_PKTCDVD is not set 393# CONFIG_CDROM_PKTCDVD is not set
359# CONFIG_ATA_OVER_ETH is not set 394# CONFIG_ATA_OVER_ETH is not set
395# CONFIG_BLK_DEV_HD is not set
360CONFIG_MISC_DEVICES=y 396CONFIG_MISC_DEVICES=y
361# CONFIG_PHANTOM is not set 397# CONFIG_PHANTOM is not set
362# CONFIG_EEPROM_93CX6 is not set 398# CONFIG_EEPROM_93CX6 is not set
363# CONFIG_SGI_IOC4 is not set 399# CONFIG_SGI_IOC4 is not set
364# CONFIG_TIFM_CORE is not set 400# CONFIG_TIFM_CORE is not set
401# CONFIG_ENCLOSURE_SERVICES is not set
402# CONFIG_HP_ILO is not set
403CONFIG_HAVE_IDE=y
365CONFIG_IDE=y 404CONFIG_IDE=y
366CONFIG_BLK_DEV_IDE=y 405CONFIG_BLK_DEV_IDE=y
367 406
368# 407#
369# Please see Documentation/ide.txt for help/info on IDE drives 408# Please see Documentation/ide/ide.txt for help/info on IDE drives
370# 409#
410CONFIG_IDE_TIMINGS=y
371# CONFIG_BLK_DEV_IDE_SATA is not set 411# CONFIG_BLK_DEV_IDE_SATA is not set
372CONFIG_BLK_DEV_IDEDISK=y 412CONFIG_BLK_DEV_IDEDISK=y
373# CONFIG_IDEDISK_MULTI_MODE is not set 413# CONFIG_IDEDISK_MULTI_MODE is not set
374CONFIG_BLK_DEV_IDECD=y 414CONFIG_BLK_DEV_IDECD=y
415CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
375# CONFIG_BLK_DEV_IDETAPE is not set 416# CONFIG_BLK_DEV_IDETAPE is not set
376# CONFIG_BLK_DEV_IDEFLOPPY is not set 417# CONFIG_BLK_DEV_IDEFLOPPY is not set
377# CONFIG_BLK_DEV_IDESCSI is not set 418# CONFIG_BLK_DEV_IDESCSI is not set
@@ -381,14 +422,13 @@ CONFIG_IDE_PROC_FS=y
381# 422#
382# IDE chipset support/bugfixes 423# IDE chipset support/bugfixes
383# 424#
384CONFIG_IDE_GENERIC=y
385# CONFIG_BLK_DEV_PLATFORM is not set 425# CONFIG_BLK_DEV_PLATFORM is not set
426CONFIG_BLK_DEV_IDEDMA_SFF=y
386 427
387# 428#
388# PCI IDE chipsets support 429# PCI IDE chipsets support
389# 430#
390CONFIG_BLK_DEV_IDEPCI=y 431CONFIG_BLK_DEV_IDEPCI=y
391CONFIG_IDEPCI_SHARE_IRQ=y
392CONFIG_IDEPCI_PCIBUS_ORDER=y 432CONFIG_IDEPCI_PCIBUS_ORDER=y
393# CONFIG_BLK_DEV_OFFBOARD is not set 433# CONFIG_BLK_DEV_OFFBOARD is not set
394CONFIG_BLK_DEV_GENERIC=y 434CONFIG_BLK_DEV_GENERIC=y
@@ -399,10 +439,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
399CONFIG_BLK_DEV_AMD74XX=y 439CONFIG_BLK_DEV_AMD74XX=y
400# CONFIG_BLK_DEV_CMD64X is not set 440# CONFIG_BLK_DEV_CMD64X is not set
401# CONFIG_BLK_DEV_TRIFLEX is not set 441# CONFIG_BLK_DEV_TRIFLEX is not set
402# CONFIG_BLK_DEV_CY82C693 is not set
403# CONFIG_BLK_DEV_CS5520 is not set 442# CONFIG_BLK_DEV_CS5520 is not set
404# CONFIG_BLK_DEV_CS5530 is not set 443# CONFIG_BLK_DEV_CS5530 is not set
405# CONFIG_BLK_DEV_HPT34X is not set
406# CONFIG_BLK_DEV_HPT366 is not set 444# CONFIG_BLK_DEV_HPT366 is not set
407# CONFIG_BLK_DEV_JMICRON is not set 445# CONFIG_BLK_DEV_JMICRON is not set
408# CONFIG_BLK_DEV_SC1200 is not set 446# CONFIG_BLK_DEV_SC1200 is not set
@@ -419,10 +457,7 @@ CONFIG_BLK_DEV_AMD74XX=y
419# CONFIG_BLK_DEV_TRM290 is not set 457# CONFIG_BLK_DEV_TRM290 is not set
420# CONFIG_BLK_DEV_VIA82CXXX is not set 458# CONFIG_BLK_DEV_VIA82CXXX is not set
421# CONFIG_BLK_DEV_TC86C001 is not set 459# CONFIG_BLK_DEV_TC86C001 is not set
422# CONFIG_IDE_ARM is not set
423CONFIG_BLK_DEV_IDEDMA=y 460CONFIG_BLK_DEV_IDEDMA=y
424CONFIG_IDE_ARCH_OBSOLETE_INIT=y
425# CONFIG_BLK_DEV_HD is not set
426 461
427# 462#
428# SCSI device support 463# SCSI device support
@@ -483,6 +518,7 @@ CONFIG_SCSI_LOWLEVEL=y
483# CONFIG_SCSI_IPS is not set 518# CONFIG_SCSI_IPS is not set
484# CONFIG_SCSI_INITIO is not set 519# CONFIG_SCSI_INITIO is not set
485# CONFIG_SCSI_INIA100 is not set 520# CONFIG_SCSI_INIA100 is not set
521# CONFIG_SCSI_MVSAS is not set
486# CONFIG_SCSI_STEX is not set 522# CONFIG_SCSI_STEX is not set
487# CONFIG_SCSI_SYM53C8XX_2 is not set 523# CONFIG_SCSI_SYM53C8XX_2 is not set
488CONFIG_SCSI_IPR=y 524CONFIG_SCSI_IPR=y
@@ -496,9 +532,13 @@ CONFIG_SCSI_IPR_DUMP=y
496# CONFIG_SCSI_DC390T is not set 532# CONFIG_SCSI_DC390T is not set
497# CONFIG_SCSI_DEBUG is not set 533# CONFIG_SCSI_DEBUG is not set
498# CONFIG_SCSI_SRP is not set 534# CONFIG_SCSI_SRP is not set
535# CONFIG_SCSI_DH is not set
499CONFIG_ATA=y 536CONFIG_ATA=y
500CONFIG_ATA_NONSTANDARD=y 537CONFIG_ATA_NONSTANDARD=y
538CONFIG_SATA_PMP=y
501# CONFIG_SATA_AHCI is not set 539# CONFIG_SATA_AHCI is not set
540# CONFIG_SATA_SIL24 is not set
541CONFIG_ATA_SFF=y
502# CONFIG_SATA_SVW is not set 542# CONFIG_SATA_SVW is not set
503# CONFIG_ATA_PIIX is not set 543# CONFIG_ATA_PIIX is not set
504# CONFIG_SATA_MV is not set 544# CONFIG_SATA_MV is not set
@@ -508,7 +548,6 @@ CONFIG_ATA_NONSTANDARD=y
508# CONFIG_SATA_PROMISE is not set 548# CONFIG_SATA_PROMISE is not set
509# CONFIG_SATA_SX4 is not set 549# CONFIG_SATA_SX4 is not set
510# CONFIG_SATA_SIL is not set 550# CONFIG_SATA_SIL is not set
511# CONFIG_SATA_SIL24 is not set
512# CONFIG_SATA_SIS is not set 551# CONFIG_SATA_SIS is not set
513# CONFIG_SATA_ULI is not set 552# CONFIG_SATA_ULI is not set
514# CONFIG_SATA_VIA is not set 553# CONFIG_SATA_VIA is not set
@@ -537,6 +576,7 @@ CONFIG_ATA_NONSTANDARD=y
537# CONFIG_PATA_MPIIX is not set 576# CONFIG_PATA_MPIIX is not set
538# CONFIG_PATA_OLDPIIX is not set 577# CONFIG_PATA_OLDPIIX is not set
539# CONFIG_PATA_NETCELL is not set 578# CONFIG_PATA_NETCELL is not set
579# CONFIG_PATA_NINJA32 is not set
540# CONFIG_PATA_NS87410 is not set 580# CONFIG_PATA_NS87410 is not set
541# CONFIG_PATA_NS87415 is not set 581# CONFIG_PATA_NS87415 is not set
542# CONFIG_PATA_OPTI is not set 582# CONFIG_PATA_OPTI is not set
@@ -551,27 +591,47 @@ CONFIG_ATA_NONSTANDARD=y
551# CONFIG_PATA_SIS is not set 591# CONFIG_PATA_SIS is not set
552# CONFIG_PATA_VIA is not set 592# CONFIG_PATA_VIA is not set
553# CONFIG_PATA_WINBOND is not set 593# CONFIG_PATA_WINBOND is not set
594# CONFIG_PATA_PLATFORM is not set
595# CONFIG_PATA_SCH is not set
554# CONFIG_MD is not set 596# CONFIG_MD is not set
555# CONFIG_FUSION is not set 597# CONFIG_FUSION is not set
556 598
557# 599#
558# IEEE 1394 (FireWire) support 600# IEEE 1394 (FireWire) support
559# 601#
602
603#
604# Enable only one of the two stacks, unless you know what you are doing
605#
560# CONFIG_FIREWIRE is not set 606# CONFIG_FIREWIRE is not set
561# CONFIG_IEEE1394 is not set 607# CONFIG_IEEE1394 is not set
562# CONFIG_I2O is not set 608# CONFIG_I2O is not set
563# CONFIG_MACINTOSH_DRIVERS is not set 609# CONFIG_MACINTOSH_DRIVERS is not set
564CONFIG_NETDEVICES=y 610CONFIG_NETDEVICES=y
565# CONFIG_NETDEVICES_MULTIQUEUE is not set
566# CONFIG_DUMMY is not set 611# CONFIG_DUMMY is not set
567# CONFIG_BONDING is not set 612# CONFIG_BONDING is not set
568# CONFIG_MACVLAN is not set 613# CONFIG_MACVLAN is not set
569# CONFIG_EQUALIZER is not set 614# CONFIG_EQUALIZER is not set
570# CONFIG_TUN is not set 615# CONFIG_TUN is not set
571# CONFIG_VETH is not set 616# CONFIG_VETH is not set
572# CONFIG_IP1000 is not set
573# CONFIG_ARCNET is not set 617# CONFIG_ARCNET is not set
574# CONFIG_PHYLIB is not set 618CONFIG_PHYLIB=y
619
620#
621# MII PHY device drivers
622#
623# CONFIG_MARVELL_PHY is not set
624# CONFIG_DAVICOM_PHY is not set
625# CONFIG_QSEMI_PHY is not set
626# CONFIG_LXT_PHY is not set
627# CONFIG_CICADA_PHY is not set
628# CONFIG_VITESSE_PHY is not set
629# CONFIG_SMSC_PHY is not set
630# CONFIG_BROADCOM_PHY is not set
631# CONFIG_ICPLUS_PHY is not set
632# CONFIG_REALTEK_PHY is not set
633# CONFIG_FIXED_PHY is not set
634# CONFIG_MDIO_BITBANG is not set
575CONFIG_NET_ETHERNET=y 635CONFIG_NET_ETHERNET=y
576CONFIG_MII=y 636CONFIG_MII=y
577# CONFIG_HAPPYMEAL is not set 637# CONFIG_HAPPYMEAL is not set
@@ -587,7 +647,6 @@ CONFIG_MII=y
587CONFIG_NET_PCI=y 647CONFIG_NET_PCI=y
588# CONFIG_PCNET32 is not set 648# CONFIG_PCNET32 is not set
589CONFIG_AMD8111_ETH=y 649CONFIG_AMD8111_ETH=y
590# CONFIG_AMD8111E_NAPI is not set
591# CONFIG_ADAPTEC_STARFIRE is not set 650# CONFIG_ADAPTEC_STARFIRE is not set
592# CONFIG_B44 is not set 651# CONFIG_B44 is not set
593# CONFIG_FORCEDETH is not set 652# CONFIG_FORCEDETH is not set
@@ -598,18 +657,21 @@ CONFIG_AMD8111_ETH=y
598# CONFIG_NE2K_PCI is not set 657# CONFIG_NE2K_PCI is not set
599# CONFIG_8139CP is not set 658# CONFIG_8139CP is not set
600# CONFIG_8139TOO is not set 659# CONFIG_8139TOO is not set
660# CONFIG_R6040 is not set
601# CONFIG_SIS900 is not set 661# CONFIG_SIS900 is not set
602# CONFIG_EPIC100 is not set 662# CONFIG_EPIC100 is not set
603# CONFIG_SUNDANCE is not set 663# CONFIG_SUNDANCE is not set
664# CONFIG_TLAN is not set
604# CONFIG_VIA_RHINE is not set 665# CONFIG_VIA_RHINE is not set
605# CONFIG_SC92031 is not set 666# CONFIG_SC92031 is not set
606CONFIG_NETDEV_1000=y 667CONFIG_NETDEV_1000=y
607# CONFIG_ACENIC is not set 668# CONFIG_ACENIC is not set
608# CONFIG_DL2K is not set 669# CONFIG_DL2K is not set
609CONFIG_E1000=y 670CONFIG_E1000=y
610# CONFIG_E1000_NAPI is not set
611# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 671# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
612# CONFIG_E1000E is not set 672# CONFIG_E1000E is not set
673# CONFIG_IP1000 is not set
674# CONFIG_IGB is not set
613# CONFIG_NS83820 is not set 675# CONFIG_NS83820 is not set
614# CONFIG_HAMACHI is not set 676# CONFIG_HAMACHI is not set
615# CONFIG_YELLOWFIN is not set 677# CONFIG_YELLOWFIN is not set
@@ -617,12 +679,12 @@ CONFIG_E1000=y
617# CONFIG_SIS190 is not set 679# CONFIG_SIS190 is not set
618# CONFIG_SKGE is not set 680# CONFIG_SKGE is not set
619# CONFIG_SKY2 is not set 681# CONFIG_SKY2 is not set
620# CONFIG_SK98LIN is not set
621# CONFIG_VIA_VELOCITY is not set 682# CONFIG_VIA_VELOCITY is not set
622CONFIG_TIGON3=y 683CONFIG_TIGON3=y
623# CONFIG_BNX2 is not set 684# CONFIG_BNX2 is not set
624# CONFIG_QLA3XXX is not set 685# CONFIG_QLA3XXX is not set
625# CONFIG_ATL1 is not set 686# CONFIG_ATL1 is not set
687# CONFIG_ATL1E is not set
626CONFIG_NETDEV_10000=y 688CONFIG_NETDEV_10000=y
627# CONFIG_CHELSIO_T1 is not set 689# CONFIG_CHELSIO_T1 is not set
628# CONFIG_CHELSIO_T3 is not set 690# CONFIG_CHELSIO_T3 is not set
@@ -632,9 +694,10 @@ CONFIG_NETDEV_10000=y
632# CONFIG_MYRI10GE is not set 694# CONFIG_MYRI10GE is not set
633# CONFIG_NETXEN_NIC is not set 695# CONFIG_NETXEN_NIC is not set
634# CONFIG_NIU is not set 696# CONFIG_NIU is not set
635# CONFIG_PASEMI_MAC is not set
636# CONFIG_MLX4_CORE is not set 697# CONFIG_MLX4_CORE is not set
637# CONFIG_TEHUTI is not set 698# CONFIG_TEHUTI is not set
699# CONFIG_BNX2X is not set
700# CONFIG_SFC is not set
638# CONFIG_TR is not set 701# CONFIG_TR is not set
639 702
640# 703#
@@ -642,6 +705,7 @@ CONFIG_NETDEV_10000=y
642# 705#
643# CONFIG_WLAN_PRE80211 is not set 706# CONFIG_WLAN_PRE80211 is not set
644# CONFIG_WLAN_80211 is not set 707# CONFIG_WLAN_80211 is not set
708# CONFIG_IWLWIFI_LEDS is not set
645 709
646# 710#
647# USB Network Adapters 711# USB Network Adapters
@@ -657,7 +721,6 @@ CONFIG_USB_PEGASUS=y
657# CONFIG_PPP is not set 721# CONFIG_PPP is not set
658# CONFIG_SLIP is not set 722# CONFIG_SLIP is not set
659# CONFIG_NET_FC is not set 723# CONFIG_NET_FC is not set
660# CONFIG_SHAPER is not set
661# CONFIG_NETCONSOLE is not set 724# CONFIG_NETCONSOLE is not set
662# CONFIG_NETPOLL is not set 725# CONFIG_NETPOLL is not set
663# CONFIG_NET_POLL_CONTROLLER is not set 726# CONFIG_NET_POLL_CONTROLLER is not set
@@ -702,10 +765,13 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1200
702# Character devices 765# Character devices
703# 766#
704CONFIG_VT=y 767CONFIG_VT=y
768CONFIG_CONSOLE_TRANSLATIONS=y
705CONFIG_VT_CONSOLE=y 769CONFIG_VT_CONSOLE=y
706CONFIG_HW_CONSOLE=y 770CONFIG_HW_CONSOLE=y
707# CONFIG_VT_HW_CONSOLE_BINDING is not set 771# CONFIG_VT_HW_CONSOLE_BINDING is not set
772CONFIG_DEVKMEM=y
708# CONFIG_SERIAL_NONSTANDARD is not set 773# CONFIG_SERIAL_NONSTANDARD is not set
774# CONFIG_NOZOMI is not set
709 775
710# 776#
711# Serial drivers 777# Serial drivers
@@ -742,16 +808,14 @@ CONFIG_DEVPORT=y
742CONFIG_I2C=y 808CONFIG_I2C=y
743CONFIG_I2C_BOARDINFO=y 809CONFIG_I2C_BOARDINFO=y
744CONFIG_I2C_CHARDEV=y 810CONFIG_I2C_CHARDEV=y
811CONFIG_I2C_HELPER_AUTO=y
745 812
746# 813#
747# I2C Algorithms 814# I2C Hardware Bus support
748# 815#
749CONFIG_I2C_ALGOBIT=y
750# CONFIG_I2C_ALGOPCF is not set
751# CONFIG_I2C_ALGOPCA is not set
752 816
753# 817#
754# I2C Hardware Bus support 818# PC SMBus host controller drivers
755# 819#
756# CONFIG_I2C_ALI1535 is not set 820# CONFIG_I2C_ALI1535 is not set
757# CONFIG_I2C_ALI1563 is not set 821# CONFIG_I2C_ALI1563 is not set
@@ -759,32 +823,47 @@ CONFIG_I2C_ALGOBIT=y
759# CONFIG_I2C_AMD756 is not set 823# CONFIG_I2C_AMD756 is not set
760CONFIG_I2C_AMD8111=y 824CONFIG_I2C_AMD8111=y
761# CONFIG_I2C_I801 is not set 825# CONFIG_I2C_I801 is not set
762# CONFIG_I2C_I810 is not set 826# CONFIG_I2C_ISCH is not set
763# CONFIG_I2C_PIIX4 is not set 827# CONFIG_I2C_PIIX4 is not set
764# CONFIG_I2C_NFORCE2 is not set 828# CONFIG_I2C_NFORCE2 is not set
765# CONFIG_I2C_OCORES is not set
766# CONFIG_I2C_PARPORT_LIGHT is not set
767# CONFIG_I2C_PROSAVAGE is not set
768# CONFIG_I2C_SAVAGE4 is not set
769# CONFIG_I2C_SIMTEC is not set
770# CONFIG_I2C_SIS5595 is not set 829# CONFIG_I2C_SIS5595 is not set
771# CONFIG_I2C_SIS630 is not set 830# CONFIG_I2C_SIS630 is not set
772# CONFIG_I2C_SIS96X is not set 831# CONFIG_I2C_SIS96X is not set
773# CONFIG_I2C_TAOS_EVM is not set
774# CONFIG_I2C_STUB is not set
775# CONFIG_I2C_TINY_USB is not set
776# CONFIG_I2C_VIA is not set 832# CONFIG_I2C_VIA is not set
777# CONFIG_I2C_VIAPRO is not set 833# CONFIG_I2C_VIAPRO is not set
834
835#
836# I2C system bus drivers (mostly embedded / system-on-chip)
837#
838# CONFIG_I2C_OCORES is not set
839# CONFIG_I2C_SIMTEC is not set
840
841#
842# External I2C/SMBus adapter drivers
843#
844# CONFIG_I2C_PARPORT_LIGHT is not set
845# CONFIG_I2C_TAOS_EVM is not set
846# CONFIG_I2C_TINY_USB is not set
847
848#
849# Graphics adapter I2C/DDC channel drivers
850#
778# CONFIG_I2C_VOODOO3 is not set 851# CONFIG_I2C_VOODOO3 is not set
779 852
780# 853#
854# Other I2C/SMBus bus drivers
855#
856# CONFIG_I2C_PCA_PLATFORM is not set
857# CONFIG_I2C_STUB is not set
858
859#
781# Miscellaneous I2C Chip support 860# Miscellaneous I2C Chip support
782# 861#
783# CONFIG_SENSORS_DS1337 is not set
784# CONFIG_SENSORS_DS1374 is not set
785# CONFIG_DS1682 is not set 862# CONFIG_DS1682 is not set
863# CONFIG_AT24 is not set
786# CONFIG_SENSORS_EEPROM is not set 864# CONFIG_SENSORS_EEPROM is not set
787# CONFIG_SENSORS_PCF8574 is not set 865# CONFIG_SENSORS_PCF8574 is not set
866# CONFIG_PCF8575 is not set
788# CONFIG_SENSORS_PCA9539 is not set 867# CONFIG_SENSORS_PCA9539 is not set
789# CONFIG_SENSORS_PCF8591 is not set 868# CONFIG_SENSORS_PCF8591 is not set
790# CONFIG_SENSORS_MAX6875 is not set 869# CONFIG_SENSORS_MAX6875 is not set
@@ -793,15 +872,14 @@ CONFIG_I2C_AMD8111=y
793# CONFIG_I2C_DEBUG_ALGO is not set 872# CONFIG_I2C_DEBUG_ALGO is not set
794# CONFIG_I2C_DEBUG_BUS is not set 873# CONFIG_I2C_DEBUG_BUS is not set
795# CONFIG_I2C_DEBUG_CHIP is not set 874# CONFIG_I2C_DEBUG_CHIP is not set
796
797#
798# SPI support
799#
800# CONFIG_SPI is not set 875# CONFIG_SPI is not set
801# CONFIG_SPI_MASTER is not set 876CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
877# CONFIG_GPIOLIB is not set
802# CONFIG_W1 is not set 878# CONFIG_W1 is not set
803# CONFIG_POWER_SUPPLY is not set 879# CONFIG_POWER_SUPPLY is not set
804# CONFIG_HWMON is not set 880# CONFIG_HWMON is not set
881# CONFIG_THERMAL is not set
882# CONFIG_THERMAL_HWMON is not set
805# CONFIG_WATCHDOG is not set 883# CONFIG_WATCHDOG is not set
806 884
807# 885#
@@ -813,13 +891,25 @@ CONFIG_SSB_POSSIBLE=y
813# 891#
814# Multifunction device drivers 892# Multifunction device drivers
815# 893#
894# CONFIG_MFD_CORE is not set
816# CONFIG_MFD_SM501 is not set 895# CONFIG_MFD_SM501 is not set
896# CONFIG_HTC_PASIC3 is not set
897# CONFIG_MFD_TMIO is not set
817 898
818# 899#
819# Multimedia devices 900# Multimedia devices
820# 901#
902
903#
904# Multimedia core support
905#
821# CONFIG_VIDEO_DEV is not set 906# CONFIG_VIDEO_DEV is not set
822# CONFIG_DVB_CORE is not set 907# CONFIG_DVB_CORE is not set
908# CONFIG_VIDEO_MEDIA is not set
909
910#
911# Multimedia drivers
912#
823# CONFIG_DAB is not set 913# CONFIG_DAB is not set
824 914
825# 915#
@@ -842,10 +932,6 @@ CONFIG_SSB_POSSIBLE=y
842# 932#
843# CONFIG_VGA_CONSOLE is not set 933# CONFIG_VGA_CONSOLE is not set
844CONFIG_DUMMY_CONSOLE=y 934CONFIG_DUMMY_CONSOLE=y
845
846#
847# Sound
848#
849# CONFIG_SOUND is not set 935# CONFIG_SOUND is not set
850CONFIG_HID_SUPPORT=y 936CONFIG_HID_SUPPORT=y
851CONFIG_HID=y 937CONFIG_HID=y
@@ -865,6 +951,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
865CONFIG_USB_ARCH_HAS_EHCI=y 951CONFIG_USB_ARCH_HAS_EHCI=y
866CONFIG_USB=y 952CONFIG_USB=y
867# CONFIG_USB_DEBUG is not set 953# CONFIG_USB_DEBUG is not set
954# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
868 955
869# 956#
870# Miscellaneous USB options 957# Miscellaneous USB options
@@ -873,15 +960,18 @@ CONFIG_USB_DEVICEFS=y
873CONFIG_USB_DEVICE_CLASS=y 960CONFIG_USB_DEVICE_CLASS=y
874# CONFIG_USB_DYNAMIC_MINORS is not set 961# CONFIG_USB_DYNAMIC_MINORS is not set
875# CONFIG_USB_OTG is not set 962# CONFIG_USB_OTG is not set
963CONFIG_USB_MON=y
876 964
877# 965#
878# USB Host Controller Drivers 966# USB Host Controller Drivers
879# 967#
968# CONFIG_USB_C67X00_HCD is not set
880CONFIG_USB_EHCI_HCD=y 969CONFIG_USB_EHCI_HCD=y
881CONFIG_USB_EHCI_SPLIT_ISO=y
882CONFIG_USB_EHCI_ROOT_HUB_TT=y 970CONFIG_USB_EHCI_ROOT_HUB_TT=y
883# CONFIG_USB_EHCI_TT_NEWSCHED is not set 971# CONFIG_USB_EHCI_TT_NEWSCHED is not set
972# CONFIG_USB_EHCI_HCD_PPC_OF is not set
884# CONFIG_USB_ISP116X_HCD is not set 973# CONFIG_USB_ISP116X_HCD is not set
974# CONFIG_USB_ISP1760_HCD is not set
885CONFIG_USB_OHCI_HCD=y 975CONFIG_USB_OHCI_HCD=y
886# CONFIG_USB_OHCI_HCD_PPC_OF is not set 976# CONFIG_USB_OHCI_HCD_PPC_OF is not set
887# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 977# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
@@ -896,6 +986,7 @@ CONFIG_USB_UHCI_HCD=y
896# 986#
897# CONFIG_USB_ACM is not set 987# CONFIG_USB_ACM is not set
898# CONFIG_USB_PRINTER is not set 988# CONFIG_USB_PRINTER is not set
989# CONFIG_USB_WDM is not set
899 990
900# 991#
901# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 992# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -912,20 +1003,15 @@ CONFIG_USB_UHCI_HCD=y
912# 1003#
913# CONFIG_USB_MDC800 is not set 1004# CONFIG_USB_MDC800 is not set
914# CONFIG_USB_MICROTEK is not set 1005# CONFIG_USB_MICROTEK is not set
915CONFIG_USB_MON=y
916 1006
917# 1007#
918# USB port drivers 1008# USB port drivers
919# 1009#
920
921#
922# USB Serial Converter support
923#
924CONFIG_USB_SERIAL=y 1010CONFIG_USB_SERIAL=y
925# CONFIG_USB_SERIAL_CONSOLE is not set 1011# CONFIG_USB_SERIAL_CONSOLE is not set
1012CONFIG_USB_EZUSB=y
926CONFIG_USB_SERIAL_GENERIC=y 1013CONFIG_USB_SERIAL_GENERIC=y
927# CONFIG_USB_SERIAL_AIRCABLE is not set 1014# CONFIG_USB_SERIAL_AIRCABLE is not set
928# CONFIG_USB_SERIAL_AIRPRIME is not set
929# CONFIG_USB_SERIAL_ARK3116 is not set 1015# CONFIG_USB_SERIAL_ARK3116 is not set
930# CONFIG_USB_SERIAL_BELKIN is not set 1016# CONFIG_USB_SERIAL_BELKIN is not set
931# CONFIG_USB_SERIAL_CH341 is not set 1017# CONFIG_USB_SERIAL_CH341 is not set
@@ -943,6 +1029,7 @@ CONFIG_USB_SERIAL_CYPRESS_M8=m
943# CONFIG_USB_SERIAL_EDGEPORT_TI is not set 1029# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
944CONFIG_USB_SERIAL_GARMIN=m 1030CONFIG_USB_SERIAL_GARMIN=m
945CONFIG_USB_SERIAL_IPW=m 1031CONFIG_USB_SERIAL_IPW=m
1032# CONFIG_USB_SERIAL_IUU is not set
946# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set 1033# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
947CONFIG_USB_SERIAL_KEYSPAN=y 1034CONFIG_USB_SERIAL_KEYSPAN=y
948CONFIG_USB_SERIAL_KEYSPAN_MPR=y 1035CONFIG_USB_SERIAL_KEYSPAN_MPR=y
@@ -962,9 +1049,11 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
962# CONFIG_USB_SERIAL_MCT_U232 is not set 1049# CONFIG_USB_SERIAL_MCT_U232 is not set
963# CONFIG_USB_SERIAL_MOS7720 is not set 1050# CONFIG_USB_SERIAL_MOS7720 is not set
964# CONFIG_USB_SERIAL_MOS7840 is not set 1051# CONFIG_USB_SERIAL_MOS7840 is not set
1052# CONFIG_USB_SERIAL_MOTOROLA is not set
965# CONFIG_USB_SERIAL_NAVMAN is not set 1053# CONFIG_USB_SERIAL_NAVMAN is not set
966# CONFIG_USB_SERIAL_PL2303 is not set 1054# CONFIG_USB_SERIAL_PL2303 is not set
967# CONFIG_USB_SERIAL_OTI6858 is not set 1055# CONFIG_USB_SERIAL_OTI6858 is not set
1056# CONFIG_USB_SERIAL_SPCP8X5 is not set
968# CONFIG_USB_SERIAL_HP4X is not set 1057# CONFIG_USB_SERIAL_HP4X is not set
969# CONFIG_USB_SERIAL_SAFE is not set 1058# CONFIG_USB_SERIAL_SAFE is not set
970# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1059# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
@@ -974,7 +1063,6 @@ CONFIG_USB_SERIAL_TI=m
974# CONFIG_USB_SERIAL_OPTION is not set 1063# CONFIG_USB_SERIAL_OPTION is not set
975# CONFIG_USB_SERIAL_OMNINET is not set 1064# CONFIG_USB_SERIAL_OMNINET is not set
976# CONFIG_USB_SERIAL_DEBUG is not set 1065# CONFIG_USB_SERIAL_DEBUG is not set
977CONFIG_USB_EZUSB=y
978 1066
979# 1067#
980# USB Miscellaneous drivers 1068# USB Miscellaneous drivers
@@ -982,7 +1070,6 @@ CONFIG_USB_EZUSB=y
982# CONFIG_USB_EMI62 is not set 1070# CONFIG_USB_EMI62 is not set
983# CONFIG_USB_EMI26 is not set 1071# CONFIG_USB_EMI26 is not set
984# CONFIG_USB_ADUTUX is not set 1072# CONFIG_USB_ADUTUX is not set
985# CONFIG_USB_AUERSWALD is not set
986# CONFIG_USB_RIO500 is not set 1073# CONFIG_USB_RIO500 is not set
987# CONFIG_USB_LEGOTOWER is not set 1074# CONFIG_USB_LEGOTOWER is not set
988# CONFIG_USB_LCD is not set 1075# CONFIG_USB_LCD is not set
@@ -999,24 +1086,16 @@ CONFIG_USB_EZUSB=y
999# CONFIG_USB_TRANCEVIBRATOR is not set 1086# CONFIG_USB_TRANCEVIBRATOR is not set
1000# CONFIG_USB_IOWARRIOR is not set 1087# CONFIG_USB_IOWARRIOR is not set
1001# CONFIG_USB_TEST is not set 1088# CONFIG_USB_TEST is not set
1002 1089# CONFIG_USB_ISIGHTFW is not set
1003#
1004# USB DSL modem support
1005#
1006
1007#
1008# USB Gadget Support
1009#
1010# CONFIG_USB_GADGET is not set 1090# CONFIG_USB_GADGET is not set
1011# CONFIG_MMC is not set 1091# CONFIG_MMC is not set
1092# CONFIG_MEMSTICK is not set
1012# CONFIG_NEW_LEDS is not set 1093# CONFIG_NEW_LEDS is not set
1094# CONFIG_ACCESSIBILITY is not set
1013# CONFIG_INFINIBAND is not set 1095# CONFIG_INFINIBAND is not set
1014# CONFIG_EDAC is not set 1096# CONFIG_EDAC is not set
1015# CONFIG_RTC_CLASS is not set 1097# CONFIG_RTC_CLASS is not set
1016 1098# CONFIG_DMADEVICES is not set
1017#
1018# Userspace I/O
1019#
1020# CONFIG_UIO is not set 1099# CONFIG_UIO is not set
1021 1100
1022# 1101#
@@ -1037,12 +1116,10 @@ CONFIG_FS_POSIX_ACL=y
1037# CONFIG_XFS_FS is not set 1116# CONFIG_XFS_FS is not set
1038# CONFIG_GFS2_FS is not set 1117# CONFIG_GFS2_FS is not set
1039# CONFIG_OCFS2_FS is not set 1118# CONFIG_OCFS2_FS is not set
1040# CONFIG_MINIX_FS is not set 1119CONFIG_DNOTIFY=y
1041# CONFIG_ROMFS_FS is not set
1042CONFIG_INOTIFY=y 1120CONFIG_INOTIFY=y
1043CONFIG_INOTIFY_USER=y 1121CONFIG_INOTIFY_USER=y
1044# CONFIG_QUOTA is not set 1122# CONFIG_QUOTA is not set
1045CONFIG_DNOTIFY=y
1046# CONFIG_AUTOFS_FS is not set 1123# CONFIG_AUTOFS_FS is not set
1047# CONFIG_AUTOFS4_FS is not set 1124# CONFIG_AUTOFS4_FS is not set
1048# CONFIG_FUSE_FS is not set 1125# CONFIG_FUSE_FS is not set
@@ -1088,8 +1165,11 @@ CONFIG_HUGETLB_PAGE=y
1088# CONFIG_EFS_FS is not set 1165# CONFIG_EFS_FS is not set
1089CONFIG_CRAMFS=y 1166CONFIG_CRAMFS=y
1090# CONFIG_VXFS_FS is not set 1167# CONFIG_VXFS_FS is not set
1168# CONFIG_MINIX_FS is not set
1169# CONFIG_OMFS_FS is not set
1091# CONFIG_HPFS_FS is not set 1170# CONFIG_HPFS_FS is not set
1092# CONFIG_QNX4FS_FS is not set 1171# CONFIG_QNX4FS_FS is not set
1172# CONFIG_ROMFS_FS is not set
1093# CONFIG_SYSV_FS is not set 1173# CONFIG_SYSV_FS is not set
1094# CONFIG_UFS_FS is not set 1174# CONFIG_UFS_FS is not set
1095CONFIG_NETWORK_FILESYSTEMS=y 1175CONFIG_NETWORK_FILESYSTEMS=y
@@ -1097,16 +1177,14 @@ CONFIG_NFS_FS=y
1097CONFIG_NFS_V3=y 1177CONFIG_NFS_V3=y
1098CONFIG_NFS_V3_ACL=y 1178CONFIG_NFS_V3_ACL=y
1099CONFIG_NFS_V4=y 1179CONFIG_NFS_V4=y
1100# CONFIG_NFS_DIRECTIO is not set
1101# CONFIG_NFSD is not set
1102CONFIG_ROOT_NFS=y 1180CONFIG_ROOT_NFS=y
1181# CONFIG_NFSD is not set
1103CONFIG_LOCKD=y 1182CONFIG_LOCKD=y
1104CONFIG_LOCKD_V4=y 1183CONFIG_LOCKD_V4=y
1105CONFIG_NFS_ACL_SUPPORT=y 1184CONFIG_NFS_ACL_SUPPORT=y
1106CONFIG_NFS_COMMON=y 1185CONFIG_NFS_COMMON=y
1107CONFIG_SUNRPC=y 1186CONFIG_SUNRPC=y
1108CONFIG_SUNRPC_GSS=y 1187CONFIG_SUNRPC_GSS=y
1109# CONFIG_SUNRPC_BIND34 is not set
1110CONFIG_RPCSEC_GSS_KRB5=y 1188CONFIG_RPCSEC_GSS_KRB5=y
1111# CONFIG_RPCSEC_GSS_SPKM3 is not set 1189# CONFIG_RPCSEC_GSS_SPKM3 is not set
1112# CONFIG_SMB_FS is not set 1190# CONFIG_SMB_FS is not set
@@ -1177,14 +1255,15 @@ CONFIG_NLS_DEFAULT="utf-8"
1177# CONFIG_NLS_KOI8_U is not set 1255# CONFIG_NLS_KOI8_U is not set
1178CONFIG_NLS_UTF8=y 1256CONFIG_NLS_UTF8=y
1179# CONFIG_DLM is not set 1257# CONFIG_DLM is not set
1180# CONFIG_UCC_SLOW is not set
1181 1258
1182# 1259#
1183# Library routines 1260# Library routines
1184# 1261#
1185CONFIG_BITREVERSE=y 1262CONFIG_BITREVERSE=y
1263# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1186CONFIG_CRC_CCITT=y 1264CONFIG_CRC_CCITT=y
1187# CONFIG_CRC16 is not set 1265# CONFIG_CRC16 is not set
1266CONFIG_CRC_T10DIF=y
1188# CONFIG_CRC_ITU_T is not set 1267# CONFIG_CRC_ITU_T is not set
1189CONFIG_CRC32=y 1268CONFIG_CRC32=y
1190# CONFIG_CRC7 is not set 1269# CONFIG_CRC7 is not set
@@ -1194,7 +1273,7 @@ CONFIG_PLIST=y
1194CONFIG_HAS_IOMEM=y 1273CONFIG_HAS_IOMEM=y
1195CONFIG_HAS_IOPORT=y 1274CONFIG_HAS_IOPORT=y
1196CONFIG_HAS_DMA=y 1275CONFIG_HAS_DMA=y
1197# CONFIG_INSTRUMENTATION is not set 1276CONFIG_HAVE_LMB=y
1198 1277
1199# 1278#
1200# Kernel hacking 1279# Kernel hacking
@@ -1202,6 +1281,7 @@ CONFIG_HAS_DMA=y
1202# CONFIG_PRINTK_TIME is not set 1281# CONFIG_PRINTK_TIME is not set
1203CONFIG_ENABLE_WARN_DEPRECATED=y 1282CONFIG_ENABLE_WARN_DEPRECATED=y
1204CONFIG_ENABLE_MUST_CHECK=y 1283CONFIG_ENABLE_MUST_CHECK=y
1284CONFIG_FRAME_WARN=2048
1205CONFIG_MAGIC_SYSRQ=y 1285CONFIG_MAGIC_SYSRQ=y
1206# CONFIG_UNUSED_SYMBOLS is not set 1286# CONFIG_UNUSED_SYMBOLS is not set
1207CONFIG_DEBUG_FS=y 1287CONFIG_DEBUG_FS=y
@@ -1209,34 +1289,59 @@ CONFIG_DEBUG_FS=y
1209CONFIG_DEBUG_KERNEL=y 1289CONFIG_DEBUG_KERNEL=y
1210# CONFIG_DEBUG_SHIRQ is not set 1290# CONFIG_DEBUG_SHIRQ is not set
1211CONFIG_DETECT_SOFTLOCKUP=y 1291CONFIG_DETECT_SOFTLOCKUP=y
1292# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1293CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1212CONFIG_SCHED_DEBUG=y 1294CONFIG_SCHED_DEBUG=y
1213# CONFIG_SCHEDSTATS is not set 1295CONFIG_SCHEDSTATS=y
1214# CONFIG_TIMER_STATS is not set 1296# CONFIG_TIMER_STATS is not set
1297# CONFIG_DEBUG_OBJECTS is not set
1215# CONFIG_SLUB_DEBUG_ON is not set 1298# CONFIG_SLUB_DEBUG_ON is not set
1299# CONFIG_SLUB_STATS is not set
1216# CONFIG_DEBUG_RT_MUTEXES is not set 1300# CONFIG_DEBUG_RT_MUTEXES is not set
1217# CONFIG_RT_MUTEX_TESTER is not set 1301# CONFIG_RT_MUTEX_TESTER is not set
1218# CONFIG_DEBUG_SPINLOCK is not set 1302# CONFIG_DEBUG_SPINLOCK is not set
1219# CONFIG_DEBUG_MUTEXES is not set 1303# CONFIG_DEBUG_MUTEXES is not set
1304# CONFIG_DEBUG_LOCK_ALLOC is not set
1305# CONFIG_PROVE_LOCKING is not set
1306# CONFIG_LOCK_STAT is not set
1220CONFIG_DEBUG_SPINLOCK_SLEEP=y 1307CONFIG_DEBUG_SPINLOCK_SLEEP=y
1221# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1308# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1309CONFIG_STACKTRACE=y
1222# CONFIG_DEBUG_KOBJECT is not set 1310# CONFIG_DEBUG_KOBJECT is not set
1223CONFIG_DEBUG_BUGVERBOSE=y 1311CONFIG_DEBUG_BUGVERBOSE=y
1224# CONFIG_DEBUG_INFO is not set 1312# CONFIG_DEBUG_INFO is not set
1225# CONFIG_DEBUG_VM is not set 1313# CONFIG_DEBUG_VM is not set
1314# CONFIG_DEBUG_WRITECOUNT is not set
1315CONFIG_DEBUG_MEMORY_INIT=y
1226# CONFIG_DEBUG_LIST is not set 1316# CONFIG_DEBUG_LIST is not set
1227# CONFIG_DEBUG_SG is not set 1317# CONFIG_DEBUG_SG is not set
1228# CONFIG_FORCED_INLINING is not set 1318CONFIG_FRAME_POINTER=y
1229# CONFIG_BOOT_PRINTK_DELAY is not set 1319# CONFIG_BOOT_PRINTK_DELAY is not set
1230# CONFIG_RCU_TORTURE_TEST is not set 1320# CONFIG_RCU_TORTURE_TEST is not set
1321# CONFIG_KPROBES_SANITY_TEST is not set
1322# CONFIG_BACKTRACE_SELF_TEST is not set
1323# CONFIG_LKDTM is not set
1231# CONFIG_FAULT_INJECTION is not set 1324# CONFIG_FAULT_INJECTION is not set
1325CONFIG_LATENCYTOP=y
1326# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1327CONFIG_HAVE_FTRACE=y
1328CONFIG_HAVE_DYNAMIC_FTRACE=y
1329# CONFIG_FTRACE is not set
1330# CONFIG_IRQSOFF_TRACER is not set
1331# CONFIG_SCHED_TRACER is not set
1332# CONFIG_CONTEXT_SWITCH_TRACER is not set
1232# CONFIG_SAMPLES is not set 1333# CONFIG_SAMPLES is not set
1334CONFIG_HAVE_ARCH_KGDB=y
1335# CONFIG_KGDB is not set
1233CONFIG_DEBUG_STACKOVERFLOW=y 1336CONFIG_DEBUG_STACKOVERFLOW=y
1234CONFIG_DEBUG_STACK_USAGE=y 1337CONFIG_DEBUG_STACK_USAGE=y
1235# CONFIG_DEBUG_PAGEALLOC is not set 1338# CONFIG_DEBUG_PAGEALLOC is not set
1236CONFIG_DEBUGGER=y 1339# CONFIG_CODE_PATCHING_SELFTEST is not set
1340# CONFIG_FTR_FIXUP_SELFTEST is not set
1237CONFIG_XMON=y 1341CONFIG_XMON=y
1238CONFIG_XMON_DEFAULT=y 1342CONFIG_XMON_DEFAULT=y
1239CONFIG_XMON_DISASSEMBLY=y 1343CONFIG_XMON_DISASSEMBLY=y
1344CONFIG_DEBUGGER=y
1240# CONFIG_IRQSTACKS is not set 1345# CONFIG_IRQSTACKS is not set
1241# CONFIG_VIRQ_DEBUG is not set 1346# CONFIG_VIRQ_DEBUG is not set
1242CONFIG_BOOTX_TEXT=y 1347CONFIG_BOOTX_TEXT=y
@@ -1249,44 +1354,84 @@ CONFIG_BOOTX_TEXT=y
1249# CONFIG_SECURITY is not set 1354# CONFIG_SECURITY is not set
1250# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1355# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1251CONFIG_CRYPTO=y 1356CONFIG_CRYPTO=y
1357
1358#
1359# Crypto core or helper
1360#
1252CONFIG_CRYPTO_ALGAPI=y 1361CONFIG_CRYPTO_ALGAPI=y
1253CONFIG_CRYPTO_BLKCIPHER=y 1362CONFIG_CRYPTO_BLKCIPHER=y
1254CONFIG_CRYPTO_MANAGER=y 1363CONFIG_CRYPTO_MANAGER=y
1364# CONFIG_CRYPTO_GF128MUL is not set
1365# CONFIG_CRYPTO_NULL is not set
1366# CONFIG_CRYPTO_CRYPTD is not set
1367# CONFIG_CRYPTO_AUTHENC is not set
1368# CONFIG_CRYPTO_TEST is not set
1369
1370#
1371# Authenticated Encryption with Associated Data
1372#
1373# CONFIG_CRYPTO_CCM is not set
1374# CONFIG_CRYPTO_GCM is not set
1375# CONFIG_CRYPTO_SEQIV is not set
1376
1377#
1378# Block modes
1379#
1380CONFIG_CRYPTO_CBC=y
1381# CONFIG_CRYPTO_CTR is not set
1382# CONFIG_CRYPTO_CTS is not set
1383CONFIG_CRYPTO_ECB=m
1384# CONFIG_CRYPTO_LRW is not set
1385CONFIG_CRYPTO_PCBC=m
1386# CONFIG_CRYPTO_XTS is not set
1387
1388#
1389# Hash modes
1390#
1255# CONFIG_CRYPTO_HMAC is not set 1391# CONFIG_CRYPTO_HMAC is not set
1256# CONFIG_CRYPTO_XCBC is not set 1392# CONFIG_CRYPTO_XCBC is not set
1257# CONFIG_CRYPTO_NULL is not set 1393
1394#
1395# Digest
1396#
1397# CONFIG_CRYPTO_CRC32C is not set
1258# CONFIG_CRYPTO_MD4 is not set 1398# CONFIG_CRYPTO_MD4 is not set
1259CONFIG_CRYPTO_MD5=y 1399CONFIG_CRYPTO_MD5=y
1400# CONFIG_CRYPTO_MICHAEL_MIC is not set
1401# CONFIG_CRYPTO_RMD128 is not set
1402# CONFIG_CRYPTO_RMD160 is not set
1403# CONFIG_CRYPTO_RMD256 is not set
1404# CONFIG_CRYPTO_RMD320 is not set
1260# CONFIG_CRYPTO_SHA1 is not set 1405# CONFIG_CRYPTO_SHA1 is not set
1261# CONFIG_CRYPTO_SHA256 is not set 1406# CONFIG_CRYPTO_SHA256 is not set
1262# CONFIG_CRYPTO_SHA512 is not set 1407# CONFIG_CRYPTO_SHA512 is not set
1263# CONFIG_CRYPTO_WP512 is not set
1264# CONFIG_CRYPTO_TGR192 is not set 1408# CONFIG_CRYPTO_TGR192 is not set
1265# CONFIG_CRYPTO_GF128MUL is not set 1409# CONFIG_CRYPTO_WP512 is not set
1266CONFIG_CRYPTO_ECB=m 1410
1267CONFIG_CRYPTO_CBC=y 1411#
1268CONFIG_CRYPTO_PCBC=m 1412# Ciphers
1269# CONFIG_CRYPTO_LRW is not set 1413#
1270# CONFIG_CRYPTO_XTS is not set
1271# CONFIG_CRYPTO_CRYPTD is not set
1272CONFIG_CRYPTO_DES=y
1273# CONFIG_CRYPTO_FCRYPT is not set
1274# CONFIG_CRYPTO_BLOWFISH is not set
1275# CONFIG_CRYPTO_TWOFISH is not set
1276# CONFIG_CRYPTO_SERPENT is not set
1277# CONFIG_CRYPTO_AES is not set 1414# CONFIG_CRYPTO_AES is not set
1415# CONFIG_CRYPTO_ANUBIS is not set
1416# CONFIG_CRYPTO_ARC4 is not set
1417# CONFIG_CRYPTO_BLOWFISH is not set
1418# CONFIG_CRYPTO_CAMELLIA is not set
1278# CONFIG_CRYPTO_CAST5 is not set 1419# CONFIG_CRYPTO_CAST5 is not set
1279# CONFIG_CRYPTO_CAST6 is not set 1420# CONFIG_CRYPTO_CAST6 is not set
1280# CONFIG_CRYPTO_TEA is not set 1421CONFIG_CRYPTO_DES=y
1281# CONFIG_CRYPTO_ARC4 is not set 1422# CONFIG_CRYPTO_FCRYPT is not set
1282# CONFIG_CRYPTO_KHAZAD is not set 1423# CONFIG_CRYPTO_KHAZAD is not set
1283# CONFIG_CRYPTO_ANUBIS is not set 1424# CONFIG_CRYPTO_SALSA20 is not set
1284# CONFIG_CRYPTO_SEED is not set 1425# CONFIG_CRYPTO_SEED is not set
1426# CONFIG_CRYPTO_SERPENT is not set
1427# CONFIG_CRYPTO_TEA is not set
1428# CONFIG_CRYPTO_TWOFISH is not set
1429
1430#
1431# Compression
1432#
1285# CONFIG_CRYPTO_DEFLATE is not set 1433# CONFIG_CRYPTO_DEFLATE is not set
1286# CONFIG_CRYPTO_MICHAEL_MIC is not set 1434# CONFIG_CRYPTO_LZO is not set
1287# CONFIG_CRYPTO_CRC32C is not set
1288# CONFIG_CRYPTO_CAMELLIA is not set
1289# CONFIG_CRYPTO_TEST is not set
1290# CONFIG_CRYPTO_AUTHENC is not set
1291# CONFIG_CRYPTO_HW is not set 1435# CONFIG_CRYPTO_HW is not set
1292# CONFIG_PPC_CLOCK is not set 1436# CONFIG_PPC_CLOCK is not set
1437# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig
index 066c583c1f8..ab5199f26a2 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:11 2008 4# Thu Aug 21 00:52:06 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -88,7 +89,6 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92CONFIG_KALLSYMS=y 92CONFIG_KALLSYMS=y
93# CONFIG_KALLSYMS_EXTRA_PASS is not set 93# CONFIG_KALLSYMS_EXTRA_PASS is not set
94CONFIG_HOTPLUG=y 94CONFIG_HOTPLUG=y
@@ -112,10 +112,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 113# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 120# CONFIG_HAVE_DMA_ATTRS is not set
121# CONFIG_USE_GENERIC_SMP_HELPERS is not set
122# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 123CONFIG_PROC_PAGE_MONITOR=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
@@ -126,6 +132,7 @@ CONFIG_LBD=y
126# CONFIG_BLK_DEV_IO_TRACE is not set 132# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set 133# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set
129 136
130# 137#
131# IO Schedulers 138# IO Schedulers
@@ -145,25 +152,25 @@ CONFIG_CLASSIC_RCU=y
145# Platform support 152# Platform support
146# 153#
147CONFIG_PPC_MULTIPLATFORM=y 154CONFIG_PPC_MULTIPLATFORM=y
148# CONFIG_PPC_82xx is not set
149# CONFIG_PPC_83xx is not set
150# CONFIG_PPC_86xx is not set
151CONFIG_CLASSIC32=y 155CONFIG_CLASSIC32=y
152# CONFIG_PPC_CHRP is not set 156# CONFIG_PPC_CHRP is not set
153# CONFIG_PPC_MPC512x is not set
154# CONFIG_PPC_MPC5121 is not set
155# CONFIG_MPC5121_ADS is not set 157# CONFIG_MPC5121_ADS is not set
158# CONFIG_MPC5121_GENERIC is not set
156# CONFIG_PPC_MPC52xx is not set 159# CONFIG_PPC_MPC52xx is not set
157# CONFIG_PPC_PMAC is not set 160# CONFIG_PPC_PMAC is not set
158# CONFIG_PPC_CELL is not set 161# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 162# CONFIG_PPC_CELL_NATIVE is not set
163# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 164# CONFIG_PQ2ADS is not set
165# CONFIG_PPC_83xx is not set
166# CONFIG_PPC_86xx is not set
161CONFIG_EMBEDDED6xx=y 167CONFIG_EMBEDDED6xx=y
162# CONFIG_LINKSTATION is not set 168# CONFIG_LINKSTATION is not set
163# CONFIG_STORCENTER is not set 169# CONFIG_STORCENTER is not set
164CONFIG_MPC7448HPC2=y 170CONFIG_MPC7448HPC2=y
165# CONFIG_PPC_HOLLY is not set 171# CONFIG_PPC_HOLLY is not set
166# CONFIG_PPC_PRPMC2800 is not set 172# CONFIG_PPC_PRPMC2800 is not set
173# CONFIG_PPC_C2K is not set
167CONFIG_TSI108_BRIDGE=y 174CONFIG_TSI108_BRIDGE=y
168# CONFIG_IPIC is not set 175# CONFIG_IPIC is not set
169CONFIG_MPIC=y 176CONFIG_MPIC=y
@@ -192,7 +199,7 @@ CONFIG_HZ_250=y
192# CONFIG_HZ_300 is not set 199# CONFIG_HZ_300 is not set
193# CONFIG_HZ_1000 is not set 200# CONFIG_HZ_1000 is not set
194CONFIG_HZ=250 201CONFIG_HZ=250
195# CONFIG_SCHED_HRTICK is not set 202CONFIG_SCHED_HRTICK=y
196CONFIG_PREEMPT_NONE=y 203CONFIG_PREEMPT_NONE=y
197# CONFIG_PREEMPT_VOLUNTARY is not set 204# CONFIG_PREEMPT_VOLUNTARY is not set
198# CONFIG_PREEMPT is not set 205# CONFIG_PREEMPT is not set
@@ -215,6 +222,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 222# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y
218# CONFIG_RESOURCES_64BIT is not set 226# CONFIG_RESOURCES_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
220CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
@@ -222,6 +230,7 @@ CONFIG_VIRT_TO_BUS=y
222CONFIG_FORCE_MAX_ZONEORDER=11 230CONFIG_FORCE_MAX_ZONEORDER=11
223CONFIG_PROC_DEVICETREE=y 231CONFIG_PROC_DEVICETREE=y
224# CONFIG_CMDLINE_BOOL is not set 232# CONFIG_CMDLINE_BOOL is not set
233CONFIG_EXTRA_TARGETS=""
225# CONFIG_PM is not set 234# CONFIG_PM is not set
226# CONFIG_SECCOMP is not set 235# CONFIG_SECCOMP is not set
227CONFIG_ISA_DMA_API=y 236CONFIG_ISA_DMA_API=y
@@ -256,10 +265,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
256CONFIG_KERNEL_START=0xc0000000 265CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000 266CONFIG_PHYSICAL_START=0x00000000
258CONFIG_TASK_SIZE=0xc0000000 267CONFIG_TASK_SIZE=0xc0000000
259
260#
261# Networking
262#
263CONFIG_NET=y 268CONFIG_NET=y
264 269
265# 270#
@@ -374,12 +379,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
374# CONFIG_BLK_DEV_XIP is not set 379# CONFIG_BLK_DEV_XIP is not set
375# CONFIG_CDROM_PKTCDVD is not set 380# CONFIG_CDROM_PKTCDVD is not set
376# CONFIG_ATA_OVER_ETH is not set 381# CONFIG_ATA_OVER_ETH is not set
382# CONFIG_BLK_DEV_HD is not set
377CONFIG_MISC_DEVICES=y 383CONFIG_MISC_DEVICES=y
378# CONFIG_PHANTOM is not set 384# CONFIG_PHANTOM is not set
379# CONFIG_EEPROM_93CX6 is not set 385# CONFIG_EEPROM_93CX6 is not set
380# CONFIG_SGI_IOC4 is not set 386# CONFIG_SGI_IOC4 is not set
381# CONFIG_TIFM_CORE is not set 387# CONFIG_TIFM_CORE is not set
382# CONFIG_ENCLOSURE_SERVICES is not set 388# CONFIG_ENCLOSURE_SERVICES is not set
389# CONFIG_HP_ILO is not set
383CONFIG_HAVE_IDE=y 390CONFIG_HAVE_IDE=y
384# CONFIG_IDE is not set 391# CONFIG_IDE is not set
385 392
@@ -457,6 +464,7 @@ CONFIG_SCSI_LOWLEVEL=y
457# CONFIG_SCSI_NSP32 is not set 464# CONFIG_SCSI_NSP32 is not set
458# CONFIG_SCSI_DEBUG is not set 465# CONFIG_SCSI_DEBUG is not set
459# CONFIG_SCSI_SRP is not set 466# CONFIG_SCSI_SRP is not set
467# CONFIG_SCSI_DH is not set
460CONFIG_ATA=y 468CONFIG_ATA=y
461# CONFIG_ATA_NONSTANDARD is not set 469# CONFIG_ATA_NONSTANDARD is not set
462CONFIG_SATA_PMP=y 470CONFIG_SATA_PMP=y
@@ -523,12 +531,15 @@ CONFIG_SATA_MV=y
523# 531#
524# IEEE 1394 (FireWire) support 532# IEEE 1394 (FireWire) support
525# 533#
534
535#
536# Enable only one of the two stacks, unless you know what you are doing
537#
526# CONFIG_FIREWIRE is not set 538# CONFIG_FIREWIRE is not set
527# CONFIG_IEEE1394 is not set 539# CONFIG_IEEE1394 is not set
528# CONFIG_I2O is not set 540# CONFIG_I2O is not set
529# CONFIG_MACINTOSH_DRIVERS is not set 541# CONFIG_MACINTOSH_DRIVERS is not set
530CONFIG_NETDEVICES=y 542CONFIG_NETDEVICES=y
531# CONFIG_NETDEVICES_MULTIQUEUE is not set
532# CONFIG_DUMMY is not set 543# CONFIG_DUMMY is not set
533# CONFIG_BONDING is not set 544# CONFIG_BONDING is not set
534# CONFIG_MACVLAN is not set 545# CONFIG_MACVLAN is not set
@@ -594,7 +605,6 @@ CONFIG_NETDEV_1000=y
594# CONFIG_DL2K is not set 605# CONFIG_DL2K is not set
595# CONFIG_E1000 is not set 606# CONFIG_E1000 is not set
596# CONFIG_E1000E is not set 607# CONFIG_E1000E is not set
597# CONFIG_E1000E_ENABLED is not set
598# CONFIG_IP1000 is not set 608# CONFIG_IP1000 is not set
599# CONFIG_IGB is not set 609# CONFIG_IGB is not set
600# CONFIG_NS83820 is not set 610# CONFIG_NS83820 is not set
@@ -611,6 +621,7 @@ CONFIG_TSI108_ETH=y
611# CONFIG_MV643XX_ETH is not set 621# CONFIG_MV643XX_ETH is not set
612# CONFIG_QLA3XXX is not set 622# CONFIG_QLA3XXX is not set
613# CONFIG_ATL1 is not set 623# CONFIG_ATL1 is not set
624# CONFIG_ATL1E is not set
614CONFIG_NETDEV_10000=y 625CONFIG_NETDEV_10000=y
615# CONFIG_CHELSIO_T1 is not set 626# CONFIG_CHELSIO_T1 is not set
616# CONFIG_CHELSIO_T3 is not set 627# CONFIG_CHELSIO_T3 is not set
@@ -716,6 +727,8 @@ CONFIG_GEN_RTC=y
716CONFIG_DEVPORT=y 727CONFIG_DEVPORT=y
717# CONFIG_I2C is not set 728# CONFIG_I2C is not set
718# CONFIG_SPI is not set 729# CONFIG_SPI is not set
730CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
731# CONFIG_GPIOLIB is not set
719# CONFIG_W1 is not set 732# CONFIG_W1 is not set
720# CONFIG_POWER_SUPPLY is not set 733# CONFIG_POWER_SUPPLY is not set
721CONFIG_HWMON=y 734CONFIG_HWMON=y
@@ -736,6 +749,7 @@ CONFIG_HWMON=y
736# CONFIG_SENSORS_W83627EHF is not set 749# CONFIG_SENSORS_W83627EHF is not set
737# CONFIG_HWMON_DEBUG_CHIP is not set 750# CONFIG_HWMON_DEBUG_CHIP is not set
738# CONFIG_THERMAL is not set 751# CONFIG_THERMAL is not set
752# CONFIG_THERMAL_HWMON is not set
739# CONFIG_WATCHDOG is not set 753# CONFIG_WATCHDOG is not set
740 754
741# 755#
@@ -747,8 +761,10 @@ CONFIG_SSB_POSSIBLE=y
747# 761#
748# Multifunction device drivers 762# Multifunction device drivers
749# 763#
764# CONFIG_MFD_CORE is not set
750# CONFIG_MFD_SM501 is not set 765# CONFIG_MFD_SM501 is not set
751# CONFIG_HTC_PASIC3 is not set 766# CONFIG_HTC_PASIC3 is not set
767# CONFIG_MFD_TMIO is not set
752 768
753# 769#
754# Multimedia devices 770# Multimedia devices
@@ -780,10 +796,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
780# Display device support 796# Display device support
781# 797#
782# CONFIG_DISPLAY_SUPPORT is not set 798# CONFIG_DISPLAY_SUPPORT is not set
783
784#
785# Sound
786#
787# CONFIG_SOUND is not set 799# CONFIG_SOUND is not set
788CONFIG_HID_SUPPORT=y 800CONFIG_HID_SUPPORT=y
789CONFIG_HID=y 801CONFIG_HID=y
@@ -798,6 +810,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
798# CONFIG_USB_OTG_BLACKLIST_HUB is not set 810# CONFIG_USB_OTG_BLACKLIST_HUB is not set
799 811
800# 812#
813# Enable Host or Gadget support to see Inventra options
814#
815
816#
801# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 817# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
802# 818#
803# CONFIG_USB_GADGET is not set 819# CONFIG_USB_GADGET is not set
@@ -875,6 +891,7 @@ CONFIG_TMPFS=y
875# CONFIG_CRAMFS is not set 891# CONFIG_CRAMFS is not set
876# CONFIG_VXFS_FS is not set 892# CONFIG_VXFS_FS is not set
877# CONFIG_MINIX_FS is not set 893# CONFIG_MINIX_FS is not set
894# CONFIG_OMFS_FS is not set
878# CONFIG_HPFS_FS is not set 895# CONFIG_HPFS_FS is not set
879# CONFIG_QNX4FS_FS is not set 896# CONFIG_QNX4FS_FS is not set
880# CONFIG_ROMFS_FS is not set 897# CONFIG_ROMFS_FS is not set
@@ -884,12 +901,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
884CONFIG_NFS_FS=y 901CONFIG_NFS_FS=y
885# CONFIG_NFS_V3 is not set 902# CONFIG_NFS_V3 is not set
886# CONFIG_NFS_V4 is not set 903# CONFIG_NFS_V4 is not set
887# CONFIG_NFSD is not set
888CONFIG_ROOT_NFS=y 904CONFIG_ROOT_NFS=y
905# CONFIG_NFSD is not set
889CONFIG_LOCKD=y 906CONFIG_LOCKD=y
890CONFIG_NFS_COMMON=y 907CONFIG_NFS_COMMON=y
891CONFIG_SUNRPC=y 908CONFIG_SUNRPC=y
892# CONFIG_SUNRPC_BIND34 is not set
893# CONFIG_RPCSEC_GSS_KRB5 is not set 909# CONFIG_RPCSEC_GSS_KRB5 is not set
894# CONFIG_RPCSEC_GSS_SPKM3 is not set 910# CONFIG_RPCSEC_GSS_SPKM3 is not set
895# CONFIG_SMB_FS is not set 911# CONFIG_SMB_FS is not set
@@ -929,6 +945,7 @@ CONFIG_BITREVERSE=y
929# CONFIG_GENERIC_FIND_FIRST_BIT is not set 945# CONFIG_GENERIC_FIND_FIRST_BIT is not set
930# CONFIG_CRC_CCITT is not set 946# CONFIG_CRC_CCITT is not set
931# CONFIG_CRC16 is not set 947# CONFIG_CRC16 is not set
948CONFIG_CRC_T10DIF=y
932# CONFIG_CRC_ITU_T is not set 949# CONFIG_CRC_ITU_T is not set
933CONFIG_CRC32=y 950CONFIG_CRC32=y
934# CONFIG_CRC7 is not set 951# CONFIG_CRC7 is not set
@@ -954,7 +971,16 @@ CONFIG_FRAME_WARN=1024
954# CONFIG_SLUB_DEBUG_ON is not set 971# CONFIG_SLUB_DEBUG_ON is not set
955# CONFIG_SLUB_STATS is not set 972# CONFIG_SLUB_STATS is not set
956# CONFIG_DEBUG_BUGVERBOSE is not set 973# CONFIG_DEBUG_BUGVERBOSE is not set
974# CONFIG_DEBUG_MEMORY_INIT is not set
975# CONFIG_LATENCYTOP is not set
976CONFIG_SYSCTL_SYSCALL_CHECK=y
977CONFIG_HAVE_FTRACE=y
978CONFIG_HAVE_DYNAMIC_FTRACE=y
979# CONFIG_FTRACE is not set
980# CONFIG_SCHED_TRACER is not set
981# CONFIG_CONTEXT_SWITCH_TRACER is not set
957# CONFIG_SAMPLES is not set 982# CONFIG_SAMPLES is not set
983CONFIG_HAVE_ARCH_KGDB=y
958# CONFIG_IRQSTACKS is not set 984# CONFIG_IRQSTACKS is not set
959# CONFIG_BOOTX_TEXT is not set 985# CONFIG_BOOTX_TEXT is not set
960# CONFIG_PPC_EARLY_DEBUG is not set 986# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1007,6 +1033,10 @@ CONFIG_CRYPTO=y
1007# CONFIG_CRYPTO_MD4 is not set 1033# CONFIG_CRYPTO_MD4 is not set
1008# CONFIG_CRYPTO_MD5 is not set 1034# CONFIG_CRYPTO_MD5 is not set
1009# CONFIG_CRYPTO_MICHAEL_MIC is not set 1035# CONFIG_CRYPTO_MICHAEL_MIC is not set
1036# CONFIG_CRYPTO_RMD128 is not set
1037# CONFIG_CRYPTO_RMD160 is not set
1038# CONFIG_CRYPTO_RMD256 is not set
1039# CONFIG_CRYPTO_RMD320 is not set
1010# CONFIG_CRYPTO_SHA1 is not set 1040# CONFIG_CRYPTO_SHA1 is not set
1011# CONFIG_CRYPTO_SHA256 is not set 1041# CONFIG_CRYPTO_SHA256 is not set
1012# CONFIG_CRYPTO_SHA512 is not set 1042# CONFIG_CRYPTO_SHA512 is not set
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig
index 30d7834b7db..7c435c84c87 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:12 2008 4# Thu Aug 21 00:52:07 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set
18CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
19CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
20# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -31,12 +32,14 @@ CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
38CONFIG_GENERIC_CALIBRATE_DELAY=y 40CONFIG_GENERIC_CALIBRATE_DELAY=y
39CONFIG_GENERIC_FIND_NEXT_BIT=y 41CONFIG_GENERIC_FIND_NEXT_BIT=y
42CONFIG_GENERIC_GPIO=y
40# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
41CONFIG_PPC=y 44CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
@@ -45,11 +48,13 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
47CONFIG_OF=y 50CONFIG_OF=y
48# CONFIG_PPC_UDBG_16550 is not set 51CONFIG_PPC_UDBG_16550=y
49# CONFIG_GENERIC_TBSYNC is not set 52# CONFIG_GENERIC_TBSYNC is not set
50CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
51CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
52CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
53# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -81,7 +86,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
81CONFIG_SYSCTL=y 86CONFIG_SYSCTL=y
82CONFIG_EMBEDDED=y 87CONFIG_EMBEDDED=y
83CONFIG_SYSCTL_SYSCALL=y 88CONFIG_SYSCTL_SYSCALL=y
84CONFIG_SYSCTL_SYSCALL_CHECK=y
85CONFIG_KALLSYMS=y 89CONFIG_KALLSYMS=y
86CONFIG_KALLSYMS_ALL=y 90CONFIG_KALLSYMS_ALL=y
87# CONFIG_KALLSYMS_EXTRA_PASS is not set 91# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -89,6 +93,7 @@ CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y 93CONFIG_PRINTK=y
90CONFIG_BUG=y 94CONFIG_BUG=y
91CONFIG_ELF_CORE=y 95CONFIG_ELF_CORE=y
96CONFIG_PCSPKR_PLATFORM=y
92CONFIG_COMPAT_BRK=y 97CONFIG_COMPAT_BRK=y
93CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
94CONFIG_FUTEX=y 99CONFIG_FUTEX=y
@@ -106,10 +111,16 @@ CONFIG_SLUB=y
106# CONFIG_PROFILING is not set 111# CONFIG_PROFILING is not set
107# CONFIG_MARKERS is not set 112# CONFIG_MARKERS is not set
108CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
115CONFIG_HAVE_IOREMAP_PROT=y
109CONFIG_HAVE_KPROBES=y 116CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y 117CONFIG_HAVE_KRETPROBES=y
118CONFIG_HAVE_ARCH_TRACEHOOK=y
111# CONFIG_HAVE_DMA_ATTRS is not set 119# CONFIG_HAVE_DMA_ATTRS is not set
120# CONFIG_USE_GENERIC_SMP_HELPERS is not set
121CONFIG_HAVE_CLK=y
112CONFIG_PROC_PAGE_MONITOR=y 122CONFIG_PROC_PAGE_MONITOR=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
113CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
114CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
115# CONFIG_TINY_SHMEM is not set 126# CONFIG_TINY_SHMEM is not set
@@ -119,6 +130,7 @@ CONFIG_BLOCK=y
119# CONFIG_LBD is not set 130# CONFIG_LBD is not set
120# CONFIG_BLK_DEV_IO_TRACE is not set 131# CONFIG_BLK_DEV_IO_TRACE is not set
121# CONFIG_LSF is not set 132# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_INTEGRITY is not set
122 134
123# 135#
124# IO Schedulers 136# IO Schedulers
@@ -137,14 +149,16 @@ CONFIG_CLASSIC_RCU=y
137# 149#
138# Platform support 150# Platform support
139# 151#
140# CONFIG_PPC_MULTIPLATFORM is not set 152CONFIG_PPC_MULTIPLATFORM=y
141CONFIG_PPC_82xx=y 153CONFIG_CLASSIC32=y
142# CONFIG_PPC_83xx is not set 154CONFIG_PPC_CHRP=y
143# CONFIG_PPC_86xx is not set 155# CONFIG_MPC5121_ADS is not set
144# CONFIG_PPC_MPC512x is not set 156# CONFIG_MPC5121_GENERIC is not set
145# CONFIG_PPC_MPC5121 is not set 157# CONFIG_PPC_MPC52xx is not set
158CONFIG_PPC_PMAC=y
146# CONFIG_PPC_CELL is not set 159# CONFIG_PPC_CELL is not set
147# CONFIG_PPC_CELL_NATIVE is not set 160# CONFIG_PPC_CELL_NATIVE is not set
161CONFIG_PPC_82xx=y
148CONFIG_MPC8272_ADS=y 162CONFIG_MPC8272_ADS=y
149# CONFIG_PQ2FADS is not set 163# CONFIG_PQ2FADS is not set
150# CONFIG_EP8248E is not set 164# CONFIG_EP8248E is not set
@@ -152,19 +166,27 @@ CONFIG_PQ2ADS=y
152CONFIG_8260=y 166CONFIG_8260=y
153CONFIG_8272=y 167CONFIG_8272=y
154CONFIG_PQ2_ADS_PCI_PIC=y 168CONFIG_PQ2_ADS_PCI_PIC=y
169# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set
171# CONFIG_EMBEDDED6xx is not set
172CONFIG_PPC_NATIVE=y
173# CONFIG_UDBG_RTAS_CONSOLE is not set
155# CONFIG_IPIC is not set 174# CONFIG_IPIC is not set
156# CONFIG_MPIC is not set 175CONFIG_MPIC=y
157# CONFIG_MPIC_WEIRD is not set 176# CONFIG_MPIC_WEIRD is not set
158# CONFIG_PPC_I8259 is not set 177CONFIG_PPC_I8259=y
159# CONFIG_PPC_RTAS is not set 178CONFIG_PPC_RTAS=y
179# CONFIG_RTAS_ERROR_LOGGING is not set
180CONFIG_RTAS_PROC=y
160# CONFIG_MMIO_NVRAM is not set 181# CONFIG_MMIO_NVRAM is not set
161# CONFIG_PPC_MPC106 is not set 182CONFIG_PPC_MPC106=y
162# CONFIG_PPC_970_NAP is not set 183# CONFIG_PPC_970_NAP is not set
163# CONFIG_PPC_INDIRECT_IO is not set 184# CONFIG_PPC_INDIRECT_IO is not set
164# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
165# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
187# CONFIG_PPC601_SYNC_FIX is not set
188# CONFIG_TAU is not set
166CONFIG_CPM2=y 189CONFIG_CPM2=y
167CONFIG_PPC_CPM_NEW_BINDING=y
168# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
169CONFIG_CPM=y 191CONFIG_CPM=y
170 192
@@ -181,7 +203,7 @@ CONFIG_HZ_250=y
181# CONFIG_HZ_300 is not set 203# CONFIG_HZ_300 is not set
182# CONFIG_HZ_1000 is not set 204# CONFIG_HZ_1000 is not set
183CONFIG_HZ=250 205CONFIG_HZ=250
184# CONFIG_SCHED_HRTICK is not set 206CONFIG_SCHED_HRTICK=y
185CONFIG_PREEMPT_NONE=y 207CONFIG_PREEMPT_NONE=y
186# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
187# CONFIG_PREEMPT is not set 209# CONFIG_PREEMPT is not set
@@ -199,6 +221,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
199# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
200CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
201CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
202# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
203CONFIG_ZONE_DMA_FLAG=1 226CONFIG_ZONE_DMA_FLAG=1
204CONFIG_BOUNCE=y 227CONFIG_BOUNCE=y
@@ -206,6 +229,7 @@ CONFIG_VIRT_TO_BUS=y
206CONFIG_FORCE_MAX_ZONEORDER=11 229CONFIG_FORCE_MAX_ZONEORDER=11
207CONFIG_PROC_DEVICETREE=y 230CONFIG_PROC_DEVICETREE=y
208# CONFIG_CMDLINE_BOOL is not set 231# CONFIG_CMDLINE_BOOL is not set
232CONFIG_EXTRA_TARGETS=""
209# CONFIG_PM is not set 233# CONFIG_PM is not set
210CONFIG_SECCOMP=y 234CONFIG_SECCOMP=y
211CONFIG_ISA_DMA_API=y 235CONFIG_ISA_DMA_API=y
@@ -213,9 +237,11 @@ CONFIG_ISA_DMA_API=y
213# 237#
214# Bus options 238# Bus options
215# 239#
240# CONFIG_ISA is not set
216CONFIG_ZONE_DMA=y 241CONFIG_ZONE_DMA=y
217CONFIG_PPC_INDIRECT_PCI=y 242CONFIG_PPC_INDIRECT_PCI=y
218CONFIG_FSL_SOC=y 243CONFIG_FSL_SOC=y
244CONFIG_PPC_PCI_CHOICE=y
219CONFIG_PCI=y 245CONFIG_PCI=y
220CONFIG_PCI_DOMAINS=y 246CONFIG_PCI_DOMAINS=y
221CONFIG_PCI_SYSCALL=y 247CONFIG_PCI_SYSCALL=y
@@ -242,10 +268,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
242CONFIG_KERNEL_START=0xc0000000 268CONFIG_KERNEL_START=0xc0000000
243CONFIG_PHYSICAL_START=0x00000000 269CONFIG_PHYSICAL_START=0x00000000
244CONFIG_TASK_SIZE=0xc0000000 270CONFIG_TASK_SIZE=0xc0000000
245
246#
247# Networking
248#
249CONFIG_NET=y 271CONFIG_NET=y
250 272
251# 273#
@@ -446,9 +468,11 @@ CONFIG_MTD_PHYSMAP_OF=y
446# 468#
447# CONFIG_MTD_UBI is not set 469# CONFIG_MTD_UBI is not set
448CONFIG_OF_DEVICE=y 470CONFIG_OF_DEVICE=y
471CONFIG_OF_GPIO=y
449# CONFIG_PARPORT is not set 472# CONFIG_PARPORT is not set
450CONFIG_BLK_DEV=y 473CONFIG_BLK_DEV=y
451# CONFIG_BLK_DEV_FD is not set 474# CONFIG_BLK_DEV_FD is not set
475# CONFIG_MAC_FLOPPY is not set
452# CONFIG_BLK_CPQ_DA is not set 476# CONFIG_BLK_CPQ_DA is not set
453# CONFIG_BLK_CPQ_CISS_DA is not set 477# CONFIG_BLK_CPQ_CISS_DA is not set
454# CONFIG_BLK_DEV_DAC960 is not set 478# CONFIG_BLK_DEV_DAC960 is not set
@@ -460,6 +484,7 @@ CONFIG_BLK_DEV_LOOP=y
460# CONFIG_BLK_DEV_RAM is not set 484# CONFIG_BLK_DEV_RAM is not set
461# CONFIG_CDROM_PKTCDVD is not set 485# CONFIG_CDROM_PKTCDVD is not set
462# CONFIG_ATA_OVER_ETH is not set 486# CONFIG_ATA_OVER_ETH is not set
487# CONFIG_BLK_DEV_HD is not set
463# CONFIG_MISC_DEVICES is not set 488# CONFIG_MISC_DEVICES is not set
464CONFIG_HAVE_IDE=y 489CONFIG_HAVE_IDE=y
465# CONFIG_IDE is not set 490# CONFIG_IDE is not set
@@ -480,13 +505,12 @@ CONFIG_HAVE_IDE=y
480# 505#
481 506
482# 507#
483# An alternative FireWire stack is available with EXPERIMENTAL=y 508# A new alternative FireWire stack is available with EXPERIMENTAL=y
484# 509#
485# CONFIG_IEEE1394 is not set 510# CONFIG_IEEE1394 is not set
486# CONFIG_I2O is not set 511# CONFIG_I2O is not set
487# CONFIG_MACINTOSH_DRIVERS is not set 512# CONFIG_MACINTOSH_DRIVERS is not set
488CONFIG_NETDEVICES=y 513CONFIG_NETDEVICES=y
489# CONFIG_NETDEVICES_MULTIQUEUE is not set
490# CONFIG_DUMMY is not set 514# CONFIG_DUMMY is not set
491# CONFIG_BONDING is not set 515# CONFIG_BONDING is not set
492# CONFIG_EQUALIZER is not set 516# CONFIG_EQUALIZER is not set
@@ -510,8 +534,11 @@ CONFIG_DAVICOM_PHY=y
510# CONFIG_REALTEK_PHY is not set 534# CONFIG_REALTEK_PHY is not set
511# CONFIG_FIXED_PHY is not set 535# CONFIG_FIXED_PHY is not set
512CONFIG_MDIO_BITBANG=y 536CONFIG_MDIO_BITBANG=y
537# CONFIG_MDIO_OF_GPIO is not set
513CONFIG_NET_ETHERNET=y 538CONFIG_NET_ETHERNET=y
514CONFIG_MII=y 539CONFIG_MII=y
540# CONFIG_MACE is not set
541# CONFIG_BMAC is not set
515# CONFIG_HAPPYMEAL is not set 542# CONFIG_HAPPYMEAL is not set
516# CONFIG_SUNGEM is not set 543# CONFIG_SUNGEM is not set
517# CONFIG_CASSINI is not set 544# CONFIG_CASSINI is not set
@@ -533,7 +560,6 @@ CONFIG_NETDEV_1000=y
533# CONFIG_DL2K is not set 560# CONFIG_DL2K is not set
534# CONFIG_E1000 is not set 561# CONFIG_E1000 is not set
535# CONFIG_E1000E is not set 562# CONFIG_E1000E is not set
536# CONFIG_E1000E_ENABLED is not set
537# CONFIG_IGB is not set 563# CONFIG_IGB is not set
538# CONFIG_NS83820 is not set 564# CONFIG_NS83820 is not set
539# CONFIG_HAMACHI is not set 565# CONFIG_HAMACHI is not set
@@ -545,6 +571,7 @@ CONFIG_NETDEV_1000=y
545# CONFIG_TIGON3 is not set 571# CONFIG_TIGON3 is not set
546# CONFIG_BNX2 is not set 572# CONFIG_BNX2 is not set
547# CONFIG_GIANFAR is not set 573# CONFIG_GIANFAR is not set
574# CONFIG_MV643XX_ETH is not set
548# CONFIG_QLA3XXX is not set 575# CONFIG_QLA3XXX is not set
549CONFIG_NETDEV_10000=y 576CONFIG_NETDEV_10000=y
550# CONFIG_CHELSIO_T1 is not set 577# CONFIG_CHELSIO_T1 is not set
@@ -610,6 +637,7 @@ CONFIG_KEYBOARD_ATKBD=y
610# CONFIG_KEYBOARD_XTKBD is not set 637# CONFIG_KEYBOARD_XTKBD is not set
611# CONFIG_KEYBOARD_NEWTON is not set 638# CONFIG_KEYBOARD_NEWTON is not set
612# CONFIG_KEYBOARD_STOWAWAY is not set 639# CONFIG_KEYBOARD_STOWAWAY is not set
640# CONFIG_KEYBOARD_GPIO is not set
613CONFIG_INPUT_MOUSE=y 641CONFIG_INPUT_MOUSE=y
614CONFIG_MOUSE_PS2=y 642CONFIG_MOUSE_PS2=y
615CONFIG_MOUSE_PS2_ALPS=y 643CONFIG_MOUSE_PS2_ALPS=y
@@ -620,6 +648,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
620# CONFIG_MOUSE_PS2_TOUCHKIT is not set 648# CONFIG_MOUSE_PS2_TOUCHKIT is not set
621# CONFIG_MOUSE_SERIAL is not set 649# CONFIG_MOUSE_SERIAL is not set
622# CONFIG_MOUSE_VSXXXAA is not set 650# CONFIG_MOUSE_VSXXXAA is not set
651# CONFIG_MOUSE_GPIO is not set
623# CONFIG_INPUT_JOYSTICK is not set 652# CONFIG_INPUT_JOYSTICK is not set
624# CONFIG_INPUT_TABLET is not set 653# CONFIG_INPUT_TABLET is not set
625# CONFIG_INPUT_TOUCHSCREEN is not set 654# CONFIG_INPUT_TOUCHSCREEN is not set
@@ -634,6 +663,7 @@ CONFIG_SERIO_SERPORT=y
634# CONFIG_SERIO_PCIPS2 is not set 663# CONFIG_SERIO_PCIPS2 is not set
635CONFIG_SERIO_LIBPS2=y 664CONFIG_SERIO_LIBPS2=y
636# CONFIG_SERIO_RAW is not set 665# CONFIG_SERIO_RAW is not set
666# CONFIG_SERIO_XILINX_XPS_PS2 is not set
637# CONFIG_GAMEPORT is not set 667# CONFIG_GAMEPORT is not set
638 668
639# 669#
@@ -654,6 +684,7 @@ CONFIG_DEVKMEM=y
654# CONFIG_SERIAL_UARTLITE is not set 684# CONFIG_SERIAL_UARTLITE is not set
655CONFIG_SERIAL_CORE=y 685CONFIG_SERIAL_CORE=y
656CONFIG_SERIAL_CORE_CONSOLE=y 686CONFIG_SERIAL_CORE_CONSOLE=y
687# CONFIG_SERIAL_PMACZILOG is not set
657CONFIG_SERIAL_CPM=y 688CONFIG_SERIAL_CPM=y
658CONFIG_SERIAL_CPM_CONSOLE=y 689CONFIG_SERIAL_CPM_CONSOLE=y
659CONFIG_SERIAL_CPM_SCC1=y 690CONFIG_SERIAL_CPM_SCC1=y
@@ -666,6 +697,8 @@ CONFIG_SERIAL_CPM_SCC4=y
666CONFIG_UNIX98_PTYS=y 697CONFIG_UNIX98_PTYS=y
667CONFIG_LEGACY_PTYS=y 698CONFIG_LEGACY_PTYS=y
668CONFIG_LEGACY_PTY_COUNT=256 699CONFIG_LEGACY_PTY_COUNT=256
700# CONFIG_BRIQ_PANEL is not set
701# CONFIG_HVC_RTAS is not set
669# CONFIG_IPMI_HANDLER is not set 702# CONFIG_IPMI_HANDLER is not set
670CONFIG_HW_RANDOM=y 703CONFIG_HW_RANDOM=y
671# CONFIG_NVRAM is not set 704# CONFIG_NVRAM is not set
@@ -676,10 +709,28 @@ CONFIG_HW_RANDOM=y
676CONFIG_DEVPORT=y 709CONFIG_DEVPORT=y
677# CONFIG_I2C is not set 710# CONFIG_I2C is not set
678# CONFIG_SPI is not set 711# CONFIG_SPI is not set
712CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
713CONFIG_ARCH_REQUIRE_GPIOLIB=y
714CONFIG_GPIOLIB=y
715# CONFIG_DEBUG_GPIO is not set
716
717#
718# I2C GPIO expanders:
719#
720
721#
722# PCI GPIO expanders:
723#
724# CONFIG_GPIO_BT8XX is not set
725
726#
727# SPI GPIO expanders:
728#
679# CONFIG_W1 is not set 729# CONFIG_W1 is not set
680# CONFIG_POWER_SUPPLY is not set 730# CONFIG_POWER_SUPPLY is not set
681# CONFIG_HWMON is not set 731# CONFIG_HWMON is not set
682# CONFIG_THERMAL is not set 732# CONFIG_THERMAL is not set
733# CONFIG_THERMAL_HWMON is not set
683# CONFIG_WATCHDOG is not set 734# CONFIG_WATCHDOG is not set
684 735
685# 736#
@@ -691,8 +742,10 @@ CONFIG_SSB_POSSIBLE=y
691# 742#
692# Multifunction device drivers 743# Multifunction device drivers
693# 744#
745# CONFIG_MFD_CORE is not set
694# CONFIG_MFD_SM501 is not set 746# CONFIG_MFD_SM501 is not set
695# CONFIG_HTC_PASIC3 is not set 747# CONFIG_HTC_PASIC3 is not set
748# CONFIG_MFD_TMIO is not set
696 749
697# 750#
698# Multimedia devices 751# Multimedia devices
@@ -724,10 +777,6 @@ CONFIG_DAB=y
724# Display device support 777# Display device support
725# 778#
726# CONFIG_DISPLAY_SUPPORT is not set 779# CONFIG_DISPLAY_SUPPORT is not set
727
728#
729# Sound
730#
731# CONFIG_SOUND is not set 780# CONFIG_SOUND is not set
732# CONFIG_HID_SUPPORT is not set 781# CONFIG_HID_SUPPORT is not set
733# CONFIG_USB_SUPPORT is not set 782# CONFIG_USB_SUPPORT is not set
@@ -798,6 +847,7 @@ CONFIG_TMPFS=y
798CONFIG_CRAMFS=y 847CONFIG_CRAMFS=y
799# CONFIG_VXFS_FS is not set 848# CONFIG_VXFS_FS is not set
800# CONFIG_MINIX_FS is not set 849# CONFIG_MINIX_FS is not set
850# CONFIG_OMFS_FS is not set
801# CONFIG_HPFS_FS is not set 851# CONFIG_HPFS_FS is not set
802# CONFIG_QNX4FS_FS is not set 852# CONFIG_QNX4FS_FS is not set
803# CONFIG_ROMFS_FS is not set 853# CONFIG_ROMFS_FS is not set
@@ -807,8 +857,8 @@ CONFIG_NETWORK_FILESYSTEMS=y
807CONFIG_NFS_FS=y 857CONFIG_NFS_FS=y
808CONFIG_NFS_V3=y 858CONFIG_NFS_V3=y
809CONFIG_NFS_V3_ACL=y 859CONFIG_NFS_V3_ACL=y
810# CONFIG_NFSD is not set
811CONFIG_ROOT_NFS=y 860CONFIG_ROOT_NFS=y
861# CONFIG_NFSD is not set
812CONFIG_LOCKD=y 862CONFIG_LOCKD=y
813CONFIG_LOCKD_V4=y 863CONFIG_LOCKD_V4=y
814CONFIG_NFS_ACL_SUPPORT=y 864CONFIG_NFS_ACL_SUPPORT=y
@@ -888,6 +938,7 @@ CONFIG_BITREVERSE=y
888# CONFIG_GENERIC_FIND_FIRST_BIT is not set 938# CONFIG_GENERIC_FIND_FIRST_BIT is not set
889CONFIG_CRC_CCITT=y 939CONFIG_CRC_CCITT=y
890# CONFIG_CRC16 is not set 940# CONFIG_CRC16 is not set
941# CONFIG_CRC_T10DIF is not set
891# CONFIG_CRC_ITU_T is not set 942# CONFIG_CRC_ITU_T is not set
892CONFIG_CRC32=y 943CONFIG_CRC32=y
893# CONFIG_CRC7 is not set 944# CONFIG_CRC7 is not set
@@ -914,6 +965,8 @@ CONFIG_MAGIC_SYSRQ=y
914CONFIG_DEBUG_KERNEL=y 965CONFIG_DEBUG_KERNEL=y
915# CONFIG_DEBUG_SHIRQ is not set 966# CONFIG_DEBUG_SHIRQ is not set
916CONFIG_DETECT_SOFTLOCKUP=y 967CONFIG_DETECT_SOFTLOCKUP=y
968# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
969CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
917CONFIG_SCHED_DEBUG=y 970CONFIG_SCHED_DEBUG=y
918# CONFIG_SCHEDSTATS is not set 971# CONFIG_SCHEDSTATS is not set
919# CONFIG_TIMER_STATS is not set 972# CONFIG_TIMER_STATS is not set
@@ -931,19 +984,31 @@ CONFIG_DEBUG_BUGVERBOSE=y
931CONFIG_DEBUG_INFO=y 984CONFIG_DEBUG_INFO=y
932# CONFIG_DEBUG_VM is not set 985# CONFIG_DEBUG_VM is not set
933# CONFIG_DEBUG_WRITECOUNT is not set 986# CONFIG_DEBUG_WRITECOUNT is not set
987# CONFIG_DEBUG_MEMORY_INIT is not set
934# CONFIG_DEBUG_LIST is not set 988# CONFIG_DEBUG_LIST is not set
935# CONFIG_DEBUG_SG is not set 989# CONFIG_DEBUG_SG is not set
936# CONFIG_BOOT_PRINTK_DELAY is not set 990# CONFIG_BOOT_PRINTK_DELAY is not set
991# CONFIG_RCU_TORTURE_TEST is not set
937# CONFIG_BACKTRACE_SELF_TEST is not set 992# CONFIG_BACKTRACE_SELF_TEST is not set
938# CONFIG_FAULT_INJECTION is not set 993# CONFIG_FAULT_INJECTION is not set
994# CONFIG_LATENCYTOP is not set
995CONFIG_SYSCTL_SYSCALL_CHECK=y
996CONFIG_HAVE_FTRACE=y
997CONFIG_HAVE_DYNAMIC_FTRACE=y
998# CONFIG_FTRACE is not set
999# CONFIG_SCHED_TRACER is not set
1000# CONFIG_CONTEXT_SWITCH_TRACER is not set
939# CONFIG_SAMPLES is not set 1001# CONFIG_SAMPLES is not set
1002CONFIG_HAVE_ARCH_KGDB=y
940# CONFIG_DEBUG_STACKOVERFLOW is not set 1003# CONFIG_DEBUG_STACKOVERFLOW is not set
941# CONFIG_DEBUG_STACK_USAGE is not set 1004# CONFIG_DEBUG_STACK_USAGE is not set
942# CONFIG_DEBUG_PAGEALLOC is not set 1005# CONFIG_DEBUG_PAGEALLOC is not set
943# CONFIG_DEBUGGER is not set 1006# CONFIG_CODE_PATCHING_SELFTEST is not set
944# CONFIG_KGDB_CONSOLE is not set 1007# CONFIG_FTR_FIXUP_SELFTEST is not set
1008# CONFIG_XMON is not set
945# CONFIG_IRQSTACKS is not set 1009# CONFIG_IRQSTACKS is not set
946CONFIG_BDI_SWITCH=y 1010CONFIG_BDI_SWITCH=y
1011# CONFIG_BOOTX_TEXT is not set
947# CONFIG_PPC_EARLY_DEBUG is not set 1012# CONFIG_PPC_EARLY_DEBUG is not set
948 1013
949# 1014#
@@ -951,6 +1016,7 @@ CONFIG_BDI_SWITCH=y
951# 1016#
952# CONFIG_KEYS is not set 1017# CONFIG_KEYS is not set
953# CONFIG_SECURITY is not set 1018# CONFIG_SECURITY is not set
1019# CONFIG_SECURITY_FILE_CAPABILITIES is not set
954CONFIG_CRYPTO=y 1020CONFIG_CRYPTO=y
955 1021
956# 1022#
@@ -991,6 +1057,10 @@ CONFIG_CRYPTO_PCBC=y
991# CONFIG_CRYPTO_MD4 is not set 1057# CONFIG_CRYPTO_MD4 is not set
992CONFIG_CRYPTO_MD5=y 1058CONFIG_CRYPTO_MD5=y
993# CONFIG_CRYPTO_MICHAEL_MIC is not set 1059# CONFIG_CRYPTO_MICHAEL_MIC is not set
1060# CONFIG_CRYPTO_RMD128 is not set
1061# CONFIG_CRYPTO_RMD160 is not set
1062# CONFIG_CRYPTO_RMD256 is not set
1063# CONFIG_CRYPTO_RMD320 is not set
994# CONFIG_CRYPTO_SHA1 is not set 1064# CONFIG_CRYPTO_SHA1 is not set
995# CONFIG_CRYPTO_SHA256 is not set 1065# CONFIG_CRYPTO_SHA256 is not set
996# CONFIG_CRYPTO_SHA512 is not set 1066# CONFIG_CRYPTO_SHA512 is not set
@@ -1021,6 +1091,6 @@ CONFIG_CRYPTO_DES=y
1021# CONFIG_CRYPTO_DEFLATE is not set 1091# CONFIG_CRYPTO_DEFLATE is not set
1022# CONFIG_CRYPTO_LZO is not set 1092# CONFIG_CRYPTO_LZO is not set
1023# CONFIG_CRYPTO_HW is not set 1093# CONFIG_CRYPTO_HW is not set
1024# CONFIG_PPC_CLOCK is not set 1094CONFIG_PPC_CLOCK=y
1025CONFIG_PPC_LIB_RHEAP=y 1095CONFIG_PPC_LIB_RHEAP=y
1026# CONFIG_VIRTUALIZATION is not set 1096# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index 4293c8be06e..916e3df7cc4 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:14 2008 4# Thu Aug 21 07:16:25 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,12 +33,14 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
38CONFIG_GENERIC_HWEIGHT=y 40CONFIG_GENERIC_HWEIGHT=y
39CONFIG_GENERIC_CALIBRATE_DELAY=y 41CONFIG_GENERIC_CALIBRATE_DELAY=y
40CONFIG_GENERIC_FIND_NEXT_BIT=y 42CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_GENERIC_GPIO=y
41# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 44# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
42CONFIG_PPC=y 45CONFIG_PPC=y
43CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
@@ -51,6 +54,10 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 54CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 55CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 56CONFIG_DEFAULT_UIMAGE=y
57CONFIG_REDBOOT=y
58CONFIG_HIBERNATE_32=y
59CONFIG_ARCH_HIBERNATION_POSSIBLE=y
60CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,13 +95,13 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 96CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 97CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92CONFIG_KALLSYMS=y 98CONFIG_KALLSYMS=y
93# CONFIG_KALLSYMS_EXTRA_PASS is not set 99# CONFIG_KALLSYMS_EXTRA_PASS is not set
94CONFIG_HOTPLUG=y 100CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 101CONFIG_PRINTK=y
96CONFIG_BUG=y 102CONFIG_BUG=y
97CONFIG_ELF_CORE=y 103CONFIG_ELF_CORE=y
104CONFIG_PCSPKR_PLATFORM=y
98CONFIG_COMPAT_BRK=y 105CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 106CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 107CONFIG_FUTEX=y
@@ -112,10 +119,16 @@ CONFIG_SLAB=y
112# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
114# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 134# CONFIG_TINY_SHMEM is not set
@@ -126,12 +139,13 @@ CONFIG_MODULE_UNLOAD=y
126# CONFIG_MODULE_FORCE_UNLOAD is not set 139# CONFIG_MODULE_FORCE_UNLOAD is not set
127# CONFIG_MODVERSIONS is not set 140# CONFIG_MODVERSIONS is not set
128# CONFIG_MODULE_SRCVERSION_ALL is not set 141# CONFIG_MODULE_SRCVERSION_ALL is not set
129# CONFIG_KMOD is not set 142CONFIG_KMOD=y
130CONFIG_BLOCK=y 143CONFIG_BLOCK=y
131# CONFIG_LBD is not set 144# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set 146# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set
135 149
136# 150#
137# IO Schedulers 151# IO Schedulers
@@ -150,40 +164,52 @@ CONFIG_CLASSIC_RCU=y
150# 164#
151# Platform support 165# Platform support
152# 166#
153# CONFIG_PPC_MULTIPLATFORM is not set 167CONFIG_PPC_MULTIPLATFORM=y
154# CONFIG_PPC_82xx is not set 168CONFIG_CLASSIC32=y
155CONFIG_PPC_83xx=y 169CONFIG_PPC_CHRP=y
156# CONFIG_PPC_86xx is not set 170# CONFIG_MPC5121_ADS is not set
157# CONFIG_PPC_MPC512x is not set 171# CONFIG_MPC5121_GENERIC is not set
158# CONFIG_PPC_MPC5121 is not set 172# CONFIG_PPC_MPC52xx is not set
173CONFIG_PPC_PMAC=y
159# CONFIG_PPC_CELL is not set 174# CONFIG_PPC_CELL is not set
160# CONFIG_PPC_CELL_NATIVE is not set 175# CONFIG_PPC_CELL_NATIVE is not set
176# CONFIG_PPC_82xx is not set
161# CONFIG_PQ2ADS is not set 177# CONFIG_PQ2ADS is not set
162CONFIG_MPC83xx=y 178CONFIG_PPC_83xx=y
163CONFIG_MPC831x_RDB=y 179CONFIG_MPC831x_RDB=y
164CONFIG_MPC832x_MDS=y 180CONFIG_MPC832x_MDS=y
165CONFIG_MPC832x_RDB=y 181CONFIG_MPC832x_RDB=y
166CONFIG_MPC834x_MDS=y 182CONFIG_MPC834x_MDS=y
167CONFIG_MPC834x_ITX=y 183CONFIG_MPC834x_ITX=y
168CONFIG_MPC836x_MDS=y 184CONFIG_MPC836x_MDS=y
185CONFIG_MPC836x_RDK=y
169CONFIG_MPC837x_MDS=y 186CONFIG_MPC837x_MDS=y
170CONFIG_MPC837x_RDB=y 187CONFIG_MPC837x_RDB=y
171CONFIG_SBC834x=y 188CONFIG_SBC834x=y
189CONFIG_ASP834x=y
172CONFIG_PPC_MPC831x=y 190CONFIG_PPC_MPC831x=y
173CONFIG_PPC_MPC832x=y 191CONFIG_PPC_MPC832x=y
174CONFIG_PPC_MPC834x=y 192CONFIG_PPC_MPC834x=y
175CONFIG_PPC_MPC837x=y 193CONFIG_PPC_MPC837x=y
194# CONFIG_PPC_86xx is not set
195# CONFIG_EMBEDDED6xx is not set
196CONFIG_PPC_NATIVE=y
197# CONFIG_UDBG_RTAS_CONSOLE is not set
176CONFIG_IPIC=y 198CONFIG_IPIC=y
177# CONFIG_MPIC is not set 199CONFIG_MPIC=y
178# CONFIG_MPIC_WEIRD is not set 200# CONFIG_MPIC_WEIRD is not set
179# CONFIG_PPC_I8259 is not set 201CONFIG_PPC_I8259=y
180# CONFIG_PPC_RTAS is not set 202CONFIG_PPC_RTAS=y
203# CONFIG_RTAS_ERROR_LOGGING is not set
204CONFIG_RTAS_PROC=y
181# CONFIG_MMIO_NVRAM is not set 205# CONFIG_MMIO_NVRAM is not set
182# CONFIG_PPC_MPC106 is not set 206CONFIG_PPC_MPC106=y
183# CONFIG_PPC_970_NAP is not set 207# CONFIG_PPC_970_NAP is not set
184# CONFIG_PPC_INDIRECT_IO is not set 208# CONFIG_PPC_INDIRECT_IO is not set
185# CONFIG_GENERIC_IOMAP is not set 209# CONFIG_GENERIC_IOMAP is not set
186# CONFIG_CPU_FREQ is not set 210# CONFIG_CPU_FREQ is not set
211# CONFIG_PPC601_SYNC_FIX is not set
212# CONFIG_TAU is not set
187CONFIG_QUICC_ENGINE=y 213CONFIG_QUICC_ENGINE=y
188# CONFIG_FSL_ULI1575 is not set 214# CONFIG_FSL_ULI1575 is not set
189 215
@@ -211,6 +237,7 @@ CONFIG_MATH_EMULATION=y
211CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 237CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
212CONFIG_ARCH_HAS_WALK_MEMORY=y 238CONFIG_ARCH_HAS_WALK_MEMORY=y
213CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 239CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
240# CONFIG_KEXEC is not set
214CONFIG_ARCH_FLATMEM_ENABLE=y 241CONFIG_ARCH_FLATMEM_ENABLE=y
215CONFIG_ARCH_POPULATES_NODE_MAP=y 242CONFIG_ARCH_POPULATES_NODE_MAP=y
216CONFIG_SELECT_MEMORY_MODEL=y 243CONFIG_SELECT_MEMORY_MODEL=y
@@ -223,6 +250,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 250# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
224CONFIG_PAGEFLAGS_EXTENDED=y 251CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 252CONFIG_SPLIT_PTLOCK_CPUS=4
253CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set 254# CONFIG_RESOURCES_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 255CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
@@ -230,6 +258,7 @@ CONFIG_VIRT_TO_BUS=y
230CONFIG_FORCE_MAX_ZONEORDER=11 258CONFIG_FORCE_MAX_ZONEORDER=11
231CONFIG_PROC_DEVICETREE=y 259CONFIG_PROC_DEVICETREE=y
232# CONFIG_CMDLINE_BOOL is not set 260# CONFIG_CMDLINE_BOOL is not set
261CONFIG_EXTRA_TARGETS=""
233# CONFIG_PM is not set 262# CONFIG_PM is not set
234CONFIG_SECCOMP=y 263CONFIG_SECCOMP=y
235CONFIG_ISA_DMA_API=y 264CONFIG_ISA_DMA_API=y
@@ -237,15 +266,24 @@ CONFIG_ISA_DMA_API=y
237# 266#
238# Bus options 267# Bus options
239# 268#
269# CONFIG_ISA is not set
240CONFIG_ZONE_DMA=y 270CONFIG_ZONE_DMA=y
241CONFIG_GENERIC_ISA_DMA=y 271CONFIG_GENERIC_ISA_DMA=y
242CONFIG_PPC_INDIRECT_PCI=y 272CONFIG_PPC_INDIRECT_PCI=y
243CONFIG_FSL_SOC=y 273CONFIG_FSL_SOC=y
244# CONFIG_PCI is not set 274CONFIG_FSL_PCI=y
245# CONFIG_PCI_DOMAINS is not set 275CONFIG_FSL_LBC=y
246# CONFIG_PCI_SYSCALL is not set 276CONFIG_FSL_GTM=y
247# CONFIG_ARCH_SUPPORTS_MSI is not set 277CONFIG_PPC_PCI_CHOICE=y
278CONFIG_PCI=y
279CONFIG_PCI_DOMAINS=y
280CONFIG_PCI_SYSCALL=y
281# CONFIG_PCIEPORTBUS is not set
282CONFIG_ARCH_SUPPORTS_MSI=y
283# CONFIG_PCI_MSI is not set
284CONFIG_PCI_LEGACY=y
248# CONFIG_PCCARD is not set 285# CONFIG_PCCARD is not set
286# CONFIG_HOTPLUG_PCI is not set
249# CONFIG_HAS_RAPIDIO is not set 287# CONFIG_HAS_RAPIDIO is not set
250 288
251# 289#
@@ -261,10 +299,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
261CONFIG_KERNEL_START=0xc0000000 299CONFIG_KERNEL_START=0xc0000000
262CONFIG_PHYSICAL_START=0x00000000 300CONFIG_PHYSICAL_START=0x00000000
263CONFIG_TASK_SIZE=0xc0000000 301CONFIG_TASK_SIZE=0xc0000000
264
265#
266# Networking
267#
268CONFIG_NET=y 302CONFIG_NET=y
269 303
270# 304#
@@ -412,11 +446,13 @@ CONFIG_MTD_CFI_UTIL=y
412# CONFIG_MTD_COMPLEX_MAPPINGS is not set 446# CONFIG_MTD_COMPLEX_MAPPINGS is not set
413# CONFIG_MTD_PHYSMAP is not set 447# CONFIG_MTD_PHYSMAP is not set
414CONFIG_MTD_PHYSMAP_OF=y 448CONFIG_MTD_PHYSMAP_OF=y
449# CONFIG_MTD_INTEL_VR_NOR is not set
415# CONFIG_MTD_PLATRAM is not set 450# CONFIG_MTD_PLATRAM is not set
416 451
417# 452#
418# Self-contained MTD device drivers 453# Self-contained MTD device drivers
419# 454#
455# CONFIG_MTD_PMC551 is not set
420# CONFIG_MTD_SLRAM is not set 456# CONFIG_MTD_SLRAM is not set
421# CONFIG_MTD_PHRAM is not set 457# CONFIG_MTD_PHRAM is not set
422# CONFIG_MTD_MTDRAM is not set 458# CONFIG_MTD_MTDRAM is not set
@@ -434,10 +470,12 @@ CONFIG_MTD_NAND_VERIFY_WRITE=y
434# CONFIG_MTD_NAND_MUSEUM_IDS is not set 470# CONFIG_MTD_NAND_MUSEUM_IDS is not set
435CONFIG_MTD_NAND_IDS=y 471CONFIG_MTD_NAND_IDS=y
436# CONFIG_MTD_NAND_DISKONCHIP is not set 472# CONFIG_MTD_NAND_DISKONCHIP is not set
473# CONFIG_MTD_NAND_CAFE is not set
437# CONFIG_MTD_NAND_NANDSIM is not set 474# CONFIG_MTD_NAND_NANDSIM is not set
438# CONFIG_MTD_NAND_PLATFORM is not set 475# CONFIG_MTD_NAND_PLATFORM is not set
439# CONFIG_MTD_ALAUDA is not set 476# CONFIG_MTD_ALAUDA is not set
440CONFIG_MTD_NAND_FSL_ELBC=y 477CONFIG_MTD_NAND_FSL_ELBC=y
478# CONFIG_MTD_NAND_FSL_UPM is not set
441# CONFIG_MTD_ONENAND is not set 479# CONFIG_MTD_ONENAND is not set
442 480
443# 481#
@@ -445,14 +483,21 @@ CONFIG_MTD_NAND_FSL_ELBC=y
445# 483#
446# CONFIG_MTD_UBI is not set 484# CONFIG_MTD_UBI is not set
447CONFIG_OF_DEVICE=y 485CONFIG_OF_DEVICE=y
486CONFIG_OF_GPIO=y
448CONFIG_OF_I2C=y 487CONFIG_OF_I2C=y
449# CONFIG_PARPORT is not set 488# CONFIG_PARPORT is not set
450CONFIG_BLK_DEV=y 489CONFIG_BLK_DEV=y
451# CONFIG_BLK_DEV_FD is not set 490# CONFIG_BLK_DEV_FD is not set
491# CONFIG_MAC_FLOPPY is not set
492# CONFIG_BLK_CPQ_DA is not set
493# CONFIG_BLK_CPQ_CISS_DA is not set
494# CONFIG_BLK_DEV_DAC960 is not set
495# CONFIG_BLK_DEV_UMEM is not set
452# CONFIG_BLK_DEV_COW_COMMON is not set 496# CONFIG_BLK_DEV_COW_COMMON is not set
453CONFIG_BLK_DEV_LOOP=y 497CONFIG_BLK_DEV_LOOP=y
454# CONFIG_BLK_DEV_CRYPTOLOOP is not set 498# CONFIG_BLK_DEV_CRYPTOLOOP is not set
455# CONFIG_BLK_DEV_NBD is not set 499# CONFIG_BLK_DEV_NBD is not set
500# CONFIG_BLK_DEV_SX8 is not set
456# CONFIG_BLK_DEV_UB is not set 501# CONFIG_BLK_DEV_UB is not set
457CONFIG_BLK_DEV_RAM=y 502CONFIG_BLK_DEV_RAM=y
458CONFIG_BLK_DEV_RAM_COUNT=16 503CONFIG_BLK_DEV_RAM_COUNT=16
@@ -460,9 +505,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
460# CONFIG_BLK_DEV_XIP is not set 505# CONFIG_BLK_DEV_XIP is not set
461# CONFIG_CDROM_PKTCDVD is not set 506# CONFIG_CDROM_PKTCDVD is not set
462# CONFIG_ATA_OVER_ETH is not set 507# CONFIG_ATA_OVER_ETH is not set
508# CONFIG_BLK_DEV_HD is not set
463CONFIG_MISC_DEVICES=y 509CONFIG_MISC_DEVICES=y
510# CONFIG_PHANTOM is not set
464# CONFIG_EEPROM_93CX6 is not set 511# CONFIG_EEPROM_93CX6 is not set
512# CONFIG_SGI_IOC4 is not set
513# CONFIG_TIFM_CORE is not set
465# CONFIG_ENCLOSURE_SERVICES is not set 514# CONFIG_ENCLOSURE_SERVICES is not set
515# CONFIG_HP_ILO is not set
466CONFIG_HAVE_IDE=y 516CONFIG_HAVE_IDE=y
467# CONFIG_IDE is not set 517# CONFIG_IDE is not set
468 518
@@ -505,24 +555,128 @@ CONFIG_SCSI_WAIT_SCAN=m
505# CONFIG_SCSI_SRP_ATTRS is not set 555# CONFIG_SCSI_SRP_ATTRS is not set
506CONFIG_SCSI_LOWLEVEL=y 556CONFIG_SCSI_LOWLEVEL=y
507# CONFIG_ISCSI_TCP is not set 557# CONFIG_ISCSI_TCP is not set
558# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
559# CONFIG_SCSI_3W_9XXX is not set
560# CONFIG_SCSI_ACARD is not set
561# CONFIG_SCSI_AACRAID is not set
562# CONFIG_SCSI_AIC7XXX is not set
563# CONFIG_SCSI_AIC7XXX_OLD is not set
564# CONFIG_SCSI_AIC79XX is not set
565# CONFIG_SCSI_AIC94XX is not set
566# CONFIG_SCSI_DPT_I2O is not set
567# CONFIG_SCSI_ADVANSYS is not set
568# CONFIG_SCSI_ARCMSR is not set
569# CONFIG_MEGARAID_NEWGEN is not set
570# CONFIG_MEGARAID_LEGACY is not set
571# CONFIG_MEGARAID_SAS is not set
572# CONFIG_SCSI_HPTIOP is not set
573# CONFIG_SCSI_BUSLOGIC is not set
574# CONFIG_SCSI_DMX3191D is not set
575# CONFIG_SCSI_EATA is not set
576# CONFIG_SCSI_FUTURE_DOMAIN is not set
577# CONFIG_SCSI_GDTH is not set
578# CONFIG_SCSI_IPS is not set
579# CONFIG_SCSI_INITIO is not set
580# CONFIG_SCSI_INIA100 is not set
581# CONFIG_SCSI_MVSAS is not set
582# CONFIG_SCSI_STEX is not set
583# CONFIG_SCSI_SYM53C8XX_2 is not set
584# CONFIG_SCSI_IPR is not set
585# CONFIG_SCSI_QLOGIC_1280 is not set
586# CONFIG_SCSI_QLA_FC is not set
587# CONFIG_SCSI_QLA_ISCSI is not set
588# CONFIG_SCSI_LPFC is not set
589# CONFIG_SCSI_DC395x is not set
590# CONFIG_SCSI_DC390T is not set
591# CONFIG_SCSI_NSP32 is not set
508# CONFIG_SCSI_DEBUG is not set 592# CONFIG_SCSI_DEBUG is not set
593# CONFIG_SCSI_MESH is not set
594# CONFIG_SCSI_MAC53C94 is not set
595# CONFIG_SCSI_SRP is not set
596# CONFIG_SCSI_DH is not set
509CONFIG_ATA=y 597CONFIG_ATA=y
510# CONFIG_ATA_NONSTANDARD is not set 598# CONFIG_ATA_NONSTANDARD is not set
511CONFIG_SATA_PMP=y 599CONFIG_SATA_PMP=y
600# CONFIG_SATA_AHCI is not set
601# CONFIG_SATA_SIL24 is not set
512CONFIG_SATA_FSL=y 602CONFIG_SATA_FSL=y
513CONFIG_ATA_SFF=y 603CONFIG_ATA_SFF=y
604# CONFIG_SATA_SVW is not set
605# CONFIG_ATA_PIIX is not set
514# CONFIG_SATA_MV is not set 606# CONFIG_SATA_MV is not set
607# CONFIG_SATA_NV is not set
608# CONFIG_PDC_ADMA is not set
609# CONFIG_SATA_QSTOR is not set
610# CONFIG_SATA_PROMISE is not set
611# CONFIG_SATA_SX4 is not set
612# CONFIG_SATA_SIL is not set
613# CONFIG_SATA_SIS is not set
614# CONFIG_SATA_ULI is not set
615# CONFIG_SATA_VIA is not set
616# CONFIG_SATA_VITESSE is not set
617# CONFIG_SATA_INIC162X is not set
618# CONFIG_PATA_ALI is not set
619# CONFIG_PATA_AMD is not set
620# CONFIG_PATA_ARTOP is not set
621# CONFIG_PATA_ATIIXP is not set
622# CONFIG_PATA_CMD640_PCI is not set
623# CONFIG_PATA_CMD64X is not set
624# CONFIG_PATA_CS5520 is not set
625# CONFIG_PATA_CS5530 is not set
626# CONFIG_PATA_CYPRESS is not set
627# CONFIG_PATA_EFAR is not set
628# CONFIG_ATA_GENERIC is not set
629# CONFIG_PATA_HPT366 is not set
630# CONFIG_PATA_HPT37X is not set
631# CONFIG_PATA_HPT3X2N is not set
632# CONFIG_PATA_HPT3X3 is not set
633# CONFIG_PATA_IT821X is not set
634# CONFIG_PATA_IT8213 is not set
635# CONFIG_PATA_JMICRON is not set
636# CONFIG_PATA_TRIFLEX is not set
637# CONFIG_PATA_MARVELL is not set
638# CONFIG_PATA_MPIIX is not set
639# CONFIG_PATA_OLDPIIX is not set
640# CONFIG_PATA_NETCELL is not set
641# CONFIG_PATA_NINJA32 is not set
642# CONFIG_PATA_NS87410 is not set
643# CONFIG_PATA_NS87415 is not set
644# CONFIG_PATA_OPTI is not set
645# CONFIG_PATA_OPTIDMA is not set
646# CONFIG_PATA_PDC_OLD is not set
647# CONFIG_PATA_RADISYS is not set
648# CONFIG_PATA_RZ1000 is not set
649# CONFIG_PATA_SC1200 is not set
650# CONFIG_PATA_SERVERWORKS is not set
651# CONFIG_PATA_PDC2027X is not set
652# CONFIG_PATA_SIL680 is not set
653# CONFIG_PATA_SIS is not set
654# CONFIG_PATA_VIA is not set
655# CONFIG_PATA_WINBOND is not set
515# CONFIG_PATA_PLATFORM is not set 656# CONFIG_PATA_PLATFORM is not set
657# CONFIG_PATA_SCH is not set
516# CONFIG_MD is not set 658# CONFIG_MD is not set
659# CONFIG_FUSION is not set
660
661#
662# IEEE 1394 (FireWire) support
663#
664
665#
666# Enable only one of the two stacks, unless you know what you are doing
667#
668# CONFIG_FIREWIRE is not set
669# CONFIG_IEEE1394 is not set
670# CONFIG_I2O is not set
517# CONFIG_MACINTOSH_DRIVERS is not set 671# CONFIG_MACINTOSH_DRIVERS is not set
518CONFIG_NETDEVICES=y 672CONFIG_NETDEVICES=y
519# CONFIG_NETDEVICES_MULTIQUEUE is not set
520# CONFIG_DUMMY is not set 673# CONFIG_DUMMY is not set
521# CONFIG_BONDING is not set 674# CONFIG_BONDING is not set
522# CONFIG_MACVLAN is not set 675# CONFIG_MACVLAN is not set
523# CONFIG_EQUALIZER is not set 676# CONFIG_EQUALIZER is not set
524# CONFIG_TUN is not set 677# CONFIG_TUN is not set
525# CONFIG_VETH is not set 678# CONFIG_VETH is not set
679# CONFIG_ARCNET is not set
526CONFIG_PHYLIB=y 680CONFIG_PHYLIB=y
527 681
528# 682#
@@ -542,21 +696,60 @@ CONFIG_ICPLUS_PHY=y
542# CONFIG_MDIO_BITBANG is not set 696# CONFIG_MDIO_BITBANG is not set
543CONFIG_NET_ETHERNET=y 697CONFIG_NET_ETHERNET=y
544CONFIG_MII=y 698CONFIG_MII=y
699# CONFIG_MACE is not set
700# CONFIG_BMAC is not set
701# CONFIG_HAPPYMEAL is not set
702# CONFIG_SUNGEM is not set
703# CONFIG_CASSINI is not set
704# CONFIG_NET_VENDOR_3COM is not set
705# CONFIG_NET_TULIP is not set
706# CONFIG_HP100 is not set
545# CONFIG_IBM_NEW_EMAC_ZMII is not set 707# CONFIG_IBM_NEW_EMAC_ZMII is not set
546# CONFIG_IBM_NEW_EMAC_RGMII is not set 708# CONFIG_IBM_NEW_EMAC_RGMII is not set
547# CONFIG_IBM_NEW_EMAC_TAH is not set 709# CONFIG_IBM_NEW_EMAC_TAH is not set
548# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 710# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
711# CONFIG_NET_PCI is not set
549# CONFIG_B44 is not set 712# CONFIG_B44 is not set
550CONFIG_NETDEV_1000=y 713CONFIG_NETDEV_1000=y
551# CONFIG_E1000E_ENABLED is not set 714# CONFIG_ACENIC is not set
715# CONFIG_DL2K is not set
716# CONFIG_E1000 is not set
717# CONFIG_E1000E is not set
718# CONFIG_IP1000 is not set
719# CONFIG_IGB is not set
720# CONFIG_NS83820 is not set
721# CONFIG_HAMACHI is not set
722# CONFIG_YELLOWFIN is not set
723# CONFIG_R8169 is not set
724# CONFIG_SIS190 is not set
725# CONFIG_SKGE is not set
726# CONFIG_SKY2 is not set
727# CONFIG_VIA_VELOCITY is not set
728# CONFIG_TIGON3 is not set
729# CONFIG_BNX2 is not set
552CONFIG_GIANFAR=y 730CONFIG_GIANFAR=y
553# CONFIG_GFAR_NAPI is not set
554CONFIG_UCC_GETH=y 731CONFIG_UCC_GETH=y
555# CONFIG_UGETH_NAPI is not set
556# CONFIG_UGETH_MAGIC_PACKET is not set 732# CONFIG_UGETH_MAGIC_PACKET is not set
557# CONFIG_UGETH_FILTERING is not set 733# CONFIG_UGETH_FILTERING is not set
558# CONFIG_UGETH_TX_ON_DEMAND is not set 734# CONFIG_UGETH_TX_ON_DEMAND is not set
735# CONFIG_MV643XX_ETH is not set
736# CONFIG_QLA3XXX is not set
737# CONFIG_ATL1 is not set
738# CONFIG_ATL1E is not set
559CONFIG_NETDEV_10000=y 739CONFIG_NETDEV_10000=y
740# CONFIG_CHELSIO_T1 is not set
741# CONFIG_CHELSIO_T3 is not set
742# CONFIG_IXGBE is not set
743# CONFIG_IXGB is not set
744# CONFIG_S2IO is not set
745# CONFIG_MYRI10GE is not set
746# CONFIG_NETXEN_NIC is not set
747# CONFIG_NIU is not set
748# CONFIG_MLX4_CORE is not set
749# CONFIG_TEHUTI is not set
750# CONFIG_BNX2X is not set
751# CONFIG_SFC is not set
752# CONFIG_TR is not set
560 753
561# 754#
562# Wireless LAN 755# Wireless LAN
@@ -574,8 +767,11 @@ CONFIG_NETDEV_10000=y
574# CONFIG_USB_RTL8150 is not set 767# CONFIG_USB_RTL8150 is not set
575# CONFIG_USB_USBNET is not set 768# CONFIG_USB_USBNET is not set
576# CONFIG_WAN is not set 769# CONFIG_WAN is not set
770# CONFIG_FDDI is not set
771# CONFIG_HIPPI is not set
577# CONFIG_PPP is not set 772# CONFIG_PPP is not set
578# CONFIG_SLIP is not set 773# CONFIG_SLIP is not set
774# CONFIG_NET_FC is not set
579# CONFIG_NETCONSOLE is not set 775# CONFIG_NETCONSOLE is not set
580# CONFIG_NETPOLL is not set 776# CONFIG_NETPOLL is not set
581# CONFIG_NET_POLL_CONTROLLER is not set 777# CONFIG_NET_POLL_CONTROLLER is not set
@@ -619,12 +815,14 @@ CONFIG_INPUT=y
619# CONFIG_VT is not set 815# CONFIG_VT is not set
620CONFIG_DEVKMEM=y 816CONFIG_DEVKMEM=y
621# CONFIG_SERIAL_NONSTANDARD is not set 817# CONFIG_SERIAL_NONSTANDARD is not set
818# CONFIG_NOZOMI is not set
622 819
623# 820#
624# Serial drivers 821# Serial drivers
625# 822#
626CONFIG_SERIAL_8250=y 823CONFIG_SERIAL_8250=y
627CONFIG_SERIAL_8250_CONSOLE=y 824CONFIG_SERIAL_8250_CONSOLE=y
825CONFIG_SERIAL_8250_PCI=y
628CONFIG_SERIAL_8250_NR_UARTS=4 826CONFIG_SERIAL_8250_NR_UARTS=4
629CONFIG_SERIAL_8250_RUNTIME_UARTS=4 827CONFIG_SERIAL_8250_RUNTIME_UARTS=4
630# CONFIG_SERIAL_8250_EXTENDED is not set 828# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -635,43 +833,95 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
635# CONFIG_SERIAL_UARTLITE is not set 833# CONFIG_SERIAL_UARTLITE is not set
636CONFIG_SERIAL_CORE=y 834CONFIG_SERIAL_CORE=y
637CONFIG_SERIAL_CORE_CONSOLE=y 835CONFIG_SERIAL_CORE_CONSOLE=y
836# CONFIG_SERIAL_PMACZILOG is not set
837# CONFIG_SERIAL_JSM is not set
638# CONFIG_SERIAL_OF_PLATFORM is not set 838# CONFIG_SERIAL_OF_PLATFORM is not set
639# CONFIG_SERIAL_QE is not set 839# CONFIG_SERIAL_QE is not set
640CONFIG_UNIX98_PTYS=y 840CONFIG_UNIX98_PTYS=y
641CONFIG_LEGACY_PTYS=y 841CONFIG_LEGACY_PTYS=y
642CONFIG_LEGACY_PTY_COUNT=256 842CONFIG_LEGACY_PTY_COUNT=256
843# CONFIG_BRIQ_PANEL is not set
844# CONFIG_HVC_RTAS is not set
643# CONFIG_IPMI_HANDLER is not set 845# CONFIG_IPMI_HANDLER is not set
644# CONFIG_HW_RANDOM is not set 846CONFIG_HW_RANDOM=y
645# CONFIG_NVRAM is not set 847# CONFIG_NVRAM is not set
646CONFIG_GEN_RTC=y 848CONFIG_GEN_RTC=y
647# CONFIG_GEN_RTC_X is not set 849# CONFIG_GEN_RTC_X is not set
648# CONFIG_R3964 is not set 850# CONFIG_R3964 is not set
851# CONFIG_APPLICOM is not set
649# CONFIG_RAW_DRIVER is not set 852# CONFIG_RAW_DRIVER is not set
650# CONFIG_TCG_TPM is not set 853# CONFIG_TCG_TPM is not set
854CONFIG_DEVPORT=y
651CONFIG_I2C=y 855CONFIG_I2C=y
652CONFIG_I2C_BOARDINFO=y 856CONFIG_I2C_BOARDINFO=y
653CONFIG_I2C_CHARDEV=y 857CONFIG_I2C_CHARDEV=y
858CONFIG_I2C_HELPER_AUTO=y
654 859
655# 860#
656# I2C Hardware Bus support 861# I2C Hardware Bus support
657# 862#
863
864#
865# PC SMBus host controller drivers
866#
867# CONFIG_I2C_ALI1535 is not set
868# CONFIG_I2C_ALI1563 is not set
869# CONFIG_I2C_ALI15X3 is not set
870# CONFIG_I2C_AMD756 is not set
871# CONFIG_I2C_AMD8111 is not set
872# CONFIG_I2C_I801 is not set
873# CONFIG_I2C_ISCH is not set
874# CONFIG_I2C_PIIX4 is not set
875# CONFIG_I2C_NFORCE2 is not set
876# CONFIG_I2C_SIS5595 is not set
877# CONFIG_I2C_SIS630 is not set
878# CONFIG_I2C_SIS96X is not set
879# CONFIG_I2C_VIA is not set
880# CONFIG_I2C_VIAPRO is not set
881
882#
883# Mac SMBus host controller drivers
884#
885# CONFIG_I2C_HYDRA is not set
886CONFIG_I2C_POWERMAC=y
887
888#
889# I2C system bus drivers (mostly embedded / system-on-chip)
890#
891# CONFIG_I2C_GPIO is not set
658CONFIG_I2C_MPC=y 892CONFIG_I2C_MPC=y
659# CONFIG_I2C_OCORES is not set 893# CONFIG_I2C_OCORES is not set
660# CONFIG_I2C_PARPORT_LIGHT is not set
661# CONFIG_I2C_SIMTEC is not set 894# CONFIG_I2C_SIMTEC is not set
895
896#
897# External I2C/SMBus adapter drivers
898#
899# CONFIG_I2C_PARPORT_LIGHT is not set
662# CONFIG_I2C_TAOS_EVM is not set 900# CONFIG_I2C_TAOS_EVM is not set
663# CONFIG_I2C_STUB is not set
664# CONFIG_I2C_TINY_USB is not set 901# CONFIG_I2C_TINY_USB is not set
902
903#
904# Graphics adapter I2C/DDC channel drivers
905#
906# CONFIG_I2C_VOODOO3 is not set
907
908#
909# Other I2C/SMBus bus drivers
910#
665# CONFIG_I2C_PCA_PLATFORM is not set 911# CONFIG_I2C_PCA_PLATFORM is not set
912# CONFIG_I2C_STUB is not set
666 913
667# 914#
668# Miscellaneous I2C Chip support 915# Miscellaneous I2C Chip support
669# 916#
670# CONFIG_DS1682 is not set 917# CONFIG_DS1682 is not set
918# CONFIG_AT24 is not set
671# CONFIG_SENSORS_EEPROM is not set 919# CONFIG_SENSORS_EEPROM is not set
672# CONFIG_SENSORS_PCF8574 is not set 920# CONFIG_SENSORS_PCF8574 is not set
673# CONFIG_PCF8575 is not set 921# CONFIG_PCF8575 is not set
922# CONFIG_SENSORS_PCA9539 is not set
674# CONFIG_SENSORS_PCF8591 is not set 923# CONFIG_SENSORS_PCF8591 is not set
924# CONFIG_TPS65010 is not set
675# CONFIG_SENSORS_MAX6875 is not set 925# CONFIG_SENSORS_MAX6875 is not set
676# CONFIG_SENSORS_TSL2550 is not set 926# CONFIG_SENSORS_TSL2550 is not set
677# CONFIG_I2C_DEBUG_CORE is not set 927# CONFIG_I2C_DEBUG_CORE is not set
@@ -679,10 +929,31 @@ CONFIG_I2C_MPC=y
679# CONFIG_I2C_DEBUG_BUS is not set 929# CONFIG_I2C_DEBUG_BUS is not set
680# CONFIG_I2C_DEBUG_CHIP is not set 930# CONFIG_I2C_DEBUG_CHIP is not set
681# CONFIG_SPI is not set 931# CONFIG_SPI is not set
932CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
933CONFIG_ARCH_REQUIRE_GPIOLIB=y
934CONFIG_GPIOLIB=y
935# CONFIG_GPIO_SYSFS is not set
936
937#
938# I2C GPIO expanders:
939#
940# CONFIG_GPIO_MAX732X is not set
941# CONFIG_GPIO_PCA953X is not set
942# CONFIG_GPIO_PCF857X is not set
943
944#
945# PCI GPIO expanders:
946#
947# CONFIG_GPIO_BT8XX is not set
948
949#
950# SPI GPIO expanders:
951#
682# CONFIG_W1 is not set 952# CONFIG_W1 is not set
683# CONFIG_POWER_SUPPLY is not set 953# CONFIG_POWER_SUPPLY is not set
684CONFIG_HWMON=y 954CONFIG_HWMON=y
685# CONFIG_HWMON_VID is not set 955# CONFIG_HWMON_VID is not set
956# CONFIG_SENSORS_AD7414 is not set
686# CONFIG_SENSORS_AD7418 is not set 957# CONFIG_SENSORS_AD7418 is not set
687# CONFIG_SENSORS_ADM1021 is not set 958# CONFIG_SENSORS_ADM1021 is not set
688# CONFIG_SENSORS_ADM1025 is not set 959# CONFIG_SENSORS_ADM1025 is not set
@@ -692,8 +963,10 @@ CONFIG_HWMON=y
692# CONFIG_SENSORS_ADM9240 is not set 963# CONFIG_SENSORS_ADM9240 is not set
693# CONFIG_SENSORS_ADT7470 is not set 964# CONFIG_SENSORS_ADT7470 is not set
694# CONFIG_SENSORS_ADT7473 is not set 965# CONFIG_SENSORS_ADT7473 is not set
966# CONFIG_SENSORS_AMS is not set
695# CONFIG_SENSORS_ATXP1 is not set 967# CONFIG_SENSORS_ATXP1 is not set
696# CONFIG_SENSORS_DS1621 is not set 968# CONFIG_SENSORS_DS1621 is not set
969# CONFIG_SENSORS_I5K_AMB is not set
697# CONFIG_SENSORS_F71805F is not set 970# CONFIG_SENSORS_F71805F is not set
698# CONFIG_SENSORS_F71882FG is not set 971# CONFIG_SENSORS_F71882FG is not set
699# CONFIG_SENSORS_F75375S is not set 972# CONFIG_SENSORS_F75375S is not set
@@ -715,13 +988,16 @@ CONFIG_HWMON=y
715# CONFIG_SENSORS_MAX6650 is not set 988# CONFIG_SENSORS_MAX6650 is not set
716# CONFIG_SENSORS_PC87360 is not set 989# CONFIG_SENSORS_PC87360 is not set
717# CONFIG_SENSORS_PC87427 is not set 990# CONFIG_SENSORS_PC87427 is not set
991# CONFIG_SENSORS_SIS5595 is not set
718# CONFIG_SENSORS_DME1737 is not set 992# CONFIG_SENSORS_DME1737 is not set
719# CONFIG_SENSORS_SMSC47M1 is not set 993# CONFIG_SENSORS_SMSC47M1 is not set
720# CONFIG_SENSORS_SMSC47M192 is not set 994# CONFIG_SENSORS_SMSC47M192 is not set
721# CONFIG_SENSORS_SMSC47B397 is not set 995# CONFIG_SENSORS_SMSC47B397 is not set
722# CONFIG_SENSORS_ADS7828 is not set 996# CONFIG_SENSORS_ADS7828 is not set
723# CONFIG_SENSORS_THMC50 is not set 997# CONFIG_SENSORS_THMC50 is not set
998# CONFIG_SENSORS_VIA686A is not set
724# CONFIG_SENSORS_VT1211 is not set 999# CONFIG_SENSORS_VT1211 is not set
1000# CONFIG_SENSORS_VT8231 is not set
725# CONFIG_SENSORS_W83781D is not set 1001# CONFIG_SENSORS_W83781D is not set
726# CONFIG_SENSORS_W83791D is not set 1002# CONFIG_SENSORS_W83791D is not set
727# CONFIG_SENSORS_W83792D is not set 1003# CONFIG_SENSORS_W83792D is not set
@@ -732,6 +1008,7 @@ CONFIG_HWMON=y
732# CONFIG_SENSORS_W83627EHF is not set 1008# CONFIG_SENSORS_W83627EHF is not set
733# CONFIG_HWMON_DEBUG_CHIP is not set 1009# CONFIG_HWMON_DEBUG_CHIP is not set
734# CONFIG_THERMAL is not set 1010# CONFIG_THERMAL is not set
1011# CONFIG_THERMAL_HWMON is not set
735CONFIG_WATCHDOG=y 1012CONFIG_WATCHDOG=y
736# CONFIG_WATCHDOG_NOWAYOUT is not set 1013# CONFIG_WATCHDOG_NOWAYOUT is not set
737 1014
@@ -739,7 +1016,15 @@ CONFIG_WATCHDOG=y
739# Watchdog Device Drivers 1016# Watchdog Device Drivers
740# 1017#
741# CONFIG_SOFT_WATCHDOG is not set 1018# CONFIG_SOFT_WATCHDOG is not set
742CONFIG_83xx_WDT=y 1019# CONFIG_ALIM7101_WDT is not set
1020# CONFIG_8xxx_WDT is not set
1021# CONFIG_WATCHDOG_RTAS is not set
1022
1023#
1024# PCI-based Watchdog Cards
1025#
1026# CONFIG_PCIPCWATCHDOG is not set
1027# CONFIG_WDTPCI is not set
743 1028
744# 1029#
745# USB-based Watchdog Cards 1030# USB-based Watchdog Cards
@@ -755,8 +1040,10 @@ CONFIG_SSB_POSSIBLE=y
755# 1040#
756# Multifunction device drivers 1041# Multifunction device drivers
757# 1042#
1043# CONFIG_MFD_CORE is not set
758# CONFIG_MFD_SM501 is not set 1044# CONFIG_MFD_SM501 is not set
759# CONFIG_HTC_PASIC3 is not set 1045# CONFIG_HTC_PASIC3 is not set
1046# CONFIG_MFD_TMIO is not set
760 1047
761# 1048#
762# Multimedia devices 1049# Multimedia devices
@@ -778,6 +1065,8 @@ CONFIG_DAB=y
778# 1065#
779# Graphics support 1066# Graphics support
780# 1067#
1068# CONFIG_AGP is not set
1069# CONFIG_DRM is not set
781# CONFIG_VGASTATE is not set 1070# CONFIG_VGASTATE is not set
782CONFIG_VIDEO_OUTPUT_CONTROL=m 1071CONFIG_VIDEO_OUTPUT_CONTROL=m
783# CONFIG_FB is not set 1072# CONFIG_FB is not set
@@ -787,10 +1076,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
787# Display device support 1076# Display device support
788# 1077#
789# CONFIG_DISPLAY_SUPPORT is not set 1078# CONFIG_DISPLAY_SUPPORT is not set
790
791#
792# Sound
793#
794# CONFIG_SOUND is not set 1079# CONFIG_SOUND is not set
795CONFIG_HID_SUPPORT=y 1080CONFIG_HID_SUPPORT=y
796CONFIG_HID=y 1081CONFIG_HID=y
@@ -806,7 +1091,7 @@ CONFIG_USB_HID=y
806# CONFIG_USB_HIDDEV is not set 1091# CONFIG_USB_HIDDEV is not set
807CONFIG_USB_SUPPORT=y 1092CONFIG_USB_SUPPORT=y
808CONFIG_USB_ARCH_HAS_HCD=y 1093CONFIG_USB_ARCH_HAS_HCD=y
809# CONFIG_USB_ARCH_HAS_OHCI is not set 1094CONFIG_USB_ARCH_HAS_OHCI=y
810CONFIG_USB_ARCH_HAS_EHCI=y 1095CONFIG_USB_ARCH_HAS_EHCI=y
811CONFIG_USB=y 1096CONFIG_USB=y
812# CONFIG_USB_DEBUG is not set 1097# CONFIG_USB_DEBUG is not set
@@ -821,6 +1106,7 @@ CONFIG_USB_DEVICE_CLASS=y
821# CONFIG_USB_OTG is not set 1106# CONFIG_USB_OTG is not set
822# CONFIG_USB_OTG_WHITELIST is not set 1107# CONFIG_USB_OTG_WHITELIST is not set
823# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1108# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1109CONFIG_USB_MON=y
824 1110
825# 1111#
826# USB Host Controller Drivers 1112# USB Host Controller Drivers
@@ -833,6 +1119,8 @@ CONFIG_USB_EHCI_FSL=y
833CONFIG_USB_EHCI_HCD_PPC_OF=y 1119CONFIG_USB_EHCI_HCD_PPC_OF=y
834# CONFIG_USB_ISP116X_HCD is not set 1120# CONFIG_USB_ISP116X_HCD is not set
835# CONFIG_USB_ISP1760_HCD is not set 1121# CONFIG_USB_ISP1760_HCD is not set
1122# CONFIG_USB_OHCI_HCD is not set
1123# CONFIG_USB_UHCI_HCD is not set
836# CONFIG_USB_SL811_HCD is not set 1124# CONFIG_USB_SL811_HCD is not set
837# CONFIG_USB_R8A66597_HCD is not set 1125# CONFIG_USB_R8A66597_HCD is not set
838 1126
@@ -858,7 +1146,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
858# 1146#
859# CONFIG_USB_MDC800 is not set 1147# CONFIG_USB_MDC800 is not set
860# CONFIG_USB_MICROTEK is not set 1148# CONFIG_USB_MICROTEK is not set
861CONFIG_USB_MON=y
862 1149
863# 1150#
864# USB port drivers 1151# USB port drivers
@@ -871,7 +1158,6 @@ CONFIG_USB_MON=y
871# CONFIG_USB_EMI62 is not set 1158# CONFIG_USB_EMI62 is not set
872# CONFIG_USB_EMI26 is not set 1159# CONFIG_USB_EMI26 is not set
873# CONFIG_USB_ADUTUX is not set 1160# CONFIG_USB_ADUTUX is not set
874# CONFIG_USB_AUERSWALD is not set
875# CONFIG_USB_RIO500 is not set 1161# CONFIG_USB_RIO500 is not set
876# CONFIG_USB_LEGOTOWER is not set 1162# CONFIG_USB_LEGOTOWER is not set
877# CONFIG_USB_LCD is not set 1163# CONFIG_USB_LCD is not set
@@ -893,6 +1179,7 @@ CONFIG_USB_MON=y
893# CONFIG_MEMSTICK is not set 1179# CONFIG_MEMSTICK is not set
894# CONFIG_NEW_LEDS is not set 1180# CONFIG_NEW_LEDS is not set
895# CONFIG_ACCESSIBILITY is not set 1181# CONFIG_ACCESSIBILITY is not set
1182# CONFIG_INFINIBAND is not set
896# CONFIG_EDAC is not set 1183# CONFIG_EDAC is not set
897# CONFIG_RTC_CLASS is not set 1184# CONFIG_RTC_CLASS is not set
898# CONFIG_DMADEVICES is not set 1185# CONFIG_DMADEVICES is not set
@@ -963,6 +1250,7 @@ CONFIG_TMPFS=y
963# CONFIG_CRAMFS is not set 1250# CONFIG_CRAMFS is not set
964# CONFIG_VXFS_FS is not set 1251# CONFIG_VXFS_FS is not set
965# CONFIG_MINIX_FS is not set 1252# CONFIG_MINIX_FS is not set
1253# CONFIG_OMFS_FS is not set
966# CONFIG_HPFS_FS is not set 1254# CONFIG_HPFS_FS is not set
967# CONFIG_QNX4FS_FS is not set 1255# CONFIG_QNX4FS_FS is not set
968# CONFIG_ROMFS_FS is not set 1256# CONFIG_ROMFS_FS is not set
@@ -973,14 +1261,13 @@ CONFIG_NFS_FS=y
973CONFIG_NFS_V3=y 1261CONFIG_NFS_V3=y
974# CONFIG_NFS_V3_ACL is not set 1262# CONFIG_NFS_V3_ACL is not set
975CONFIG_NFS_V4=y 1263CONFIG_NFS_V4=y
976# CONFIG_NFSD is not set
977CONFIG_ROOT_NFS=y 1264CONFIG_ROOT_NFS=y
1265# CONFIG_NFSD is not set
978CONFIG_LOCKD=y 1266CONFIG_LOCKD=y
979CONFIG_LOCKD_V4=y 1267CONFIG_LOCKD_V4=y
980CONFIG_NFS_COMMON=y 1268CONFIG_NFS_COMMON=y
981CONFIG_SUNRPC=y 1269CONFIG_SUNRPC=y
982CONFIG_SUNRPC_GSS=y 1270CONFIG_SUNRPC_GSS=y
983# CONFIG_SUNRPC_BIND34 is not set
984CONFIG_RPCSEC_GSS_KRB5=y 1271CONFIG_RPCSEC_GSS_KRB5=y
985# CONFIG_RPCSEC_GSS_SPKM3 is not set 1272# CONFIG_RPCSEC_GSS_SPKM3 is not set
986# CONFIG_SMB_FS is not set 1273# CONFIG_SMB_FS is not set
@@ -1014,6 +1301,7 @@ CONFIG_MSDOS_PARTITION=y
1014# CONFIG_DLM is not set 1301# CONFIG_DLM is not set
1015CONFIG_UCC_FAST=y 1302CONFIG_UCC_FAST=y
1016CONFIG_UCC=y 1303CONFIG_UCC=y
1304CONFIG_QE_GPIO=y
1017 1305
1018# 1306#
1019# Library routines 1307# Library routines
@@ -1022,6 +1310,7 @@ CONFIG_BITREVERSE=y
1022# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1310# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1023# CONFIG_CRC_CCITT is not set 1311# CONFIG_CRC_CCITT is not set
1024# CONFIG_CRC16 is not set 1312# CONFIG_CRC16 is not set
1313CONFIG_CRC_T10DIF=y
1025# CONFIG_CRC_ITU_T is not set 1314# CONFIG_CRC_ITU_T is not set
1026CONFIG_CRC32=y 1315CONFIG_CRC32=y
1027# CONFIG_CRC7 is not set 1316# CONFIG_CRC7 is not set
@@ -1045,8 +1334,18 @@ CONFIG_FRAME_WARN=1024
1045# CONFIG_HEADERS_CHECK is not set 1334# CONFIG_HEADERS_CHECK is not set
1046# CONFIG_DEBUG_KERNEL is not set 1335# CONFIG_DEBUG_KERNEL is not set
1047# CONFIG_DEBUG_BUGVERBOSE is not set 1336# CONFIG_DEBUG_BUGVERBOSE is not set
1337# CONFIG_DEBUG_MEMORY_INIT is not set
1338# CONFIG_LATENCYTOP is not set
1339CONFIG_SYSCTL_SYSCALL_CHECK=y
1340CONFIG_HAVE_FTRACE=y
1341CONFIG_HAVE_DYNAMIC_FTRACE=y
1342# CONFIG_FTRACE is not set
1343# CONFIG_SCHED_TRACER is not set
1344# CONFIG_CONTEXT_SWITCH_TRACER is not set
1048# CONFIG_SAMPLES is not set 1345# CONFIG_SAMPLES is not set
1346CONFIG_HAVE_ARCH_KGDB=y
1049# CONFIG_IRQSTACKS is not set 1347# CONFIG_IRQSTACKS is not set
1348# CONFIG_BOOTX_TEXT is not set
1050# CONFIG_PPC_EARLY_DEBUG is not set 1349# CONFIG_PPC_EARLY_DEBUG is not set
1051 1350
1052# 1351#
@@ -1061,12 +1360,14 @@ CONFIG_CRYPTO=y
1061# Crypto core or helper 1360# Crypto core or helper
1062# 1361#
1063CONFIG_CRYPTO_ALGAPI=y 1362CONFIG_CRYPTO_ALGAPI=y
1363CONFIG_CRYPTO_AEAD=y
1064CONFIG_CRYPTO_BLKCIPHER=y 1364CONFIG_CRYPTO_BLKCIPHER=y
1365CONFIG_CRYPTO_HASH=y
1065CONFIG_CRYPTO_MANAGER=y 1366CONFIG_CRYPTO_MANAGER=y
1066# CONFIG_CRYPTO_GF128MUL is not set 1367# CONFIG_CRYPTO_GF128MUL is not set
1067# CONFIG_CRYPTO_NULL is not set 1368# CONFIG_CRYPTO_NULL is not set
1068# CONFIG_CRYPTO_CRYPTD is not set 1369# CONFIG_CRYPTO_CRYPTD is not set
1069# CONFIG_CRYPTO_AUTHENC is not set 1370CONFIG_CRYPTO_AUTHENC=y
1070# CONFIG_CRYPTO_TEST is not set 1371# CONFIG_CRYPTO_TEST is not set
1071 1372
1072# 1373#
@@ -1100,6 +1401,10 @@ CONFIG_CRYPTO_PCBC=m
1100# CONFIG_CRYPTO_MD4 is not set 1401# CONFIG_CRYPTO_MD4 is not set
1101CONFIG_CRYPTO_MD5=y 1402CONFIG_CRYPTO_MD5=y
1102# CONFIG_CRYPTO_MICHAEL_MIC is not set 1403# CONFIG_CRYPTO_MICHAEL_MIC is not set
1404# CONFIG_CRYPTO_RMD128 is not set
1405# CONFIG_CRYPTO_RMD160 is not set
1406# CONFIG_CRYPTO_RMD256 is not set
1407# CONFIG_CRYPTO_RMD320 is not set
1103# CONFIG_CRYPTO_SHA1 is not set 1408# CONFIG_CRYPTO_SHA1 is not set
1104# CONFIG_CRYPTO_SHA256 is not set 1409# CONFIG_CRYPTO_SHA256 is not set
1105# CONFIG_CRYPTO_SHA512 is not set 1410# CONFIG_CRYPTO_SHA512 is not set
@@ -1131,6 +1436,8 @@ CONFIG_CRYPTO_DES=y
1131# CONFIG_CRYPTO_DEFLATE is not set 1436# CONFIG_CRYPTO_DEFLATE is not set
1132# CONFIG_CRYPTO_LZO is not set 1437# CONFIG_CRYPTO_LZO is not set
1133CONFIG_CRYPTO_HW=y 1438CONFIG_CRYPTO_HW=y
1439# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1440CONFIG_CRYPTO_DEV_TALITOS=y
1134# CONFIG_PPC_CLOCK is not set 1441# CONFIG_PPC_CLOCK is not set
1135CONFIG_PPC_LIB_RHEAP=y 1442CONFIG_PPC_LIB_RHEAP=y
1136# CONFIG_VIRTUALIZATION is not set 1443# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index fa0170504b8..f0a13bebf50 100644
--- a/arch/powerpc/configs/mpc85xx_defconfig
+++ b/arch/powerpc/configs/mpc85xx_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 09:03:46 2008 4# Thu Aug 21 07:15:20 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ 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
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -92,7 +95,6 @@ CONFIG_INITRAMFS_SOURCE=""
92CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
93CONFIG_EMBEDDED=y 96CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 97CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 98CONFIG_KALLSYMS=y
97CONFIG_KALLSYMS_ALL=y 99CONFIG_KALLSYMS_ALL=y
98CONFIG_KALLSYMS_EXTRA_PASS=y 100CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -118,10 +120,16 @@ CONFIG_SLUB=y
118# CONFIG_MARKERS is not set 120# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 125CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set 128# CONFIG_HAVE_DMA_ATTRS is not set
129# CONFIG_USE_GENERIC_SMP_HELPERS is not set
130CONFIG_HAVE_CLK=y
124CONFIG_PROC_PAGE_MONITOR=y 131CONFIG_PROC_PAGE_MONITOR=y
132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 134CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set 135# CONFIG_TINY_SHMEM is not set
@@ -138,6 +146,7 @@ CONFIG_LBD=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 146# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 147# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 148# CONFIG_BLK_DEV_BSG is not set
149# CONFIG_BLK_DEV_INTEGRITY is not set
141 150
142# 151#
143# IO Schedulers 152# IO Schedulers
@@ -156,8 +165,6 @@ CONFIG_CLASSIC_RCU=y
156# 165#
157# Platform support 166# Platform support
158# 167#
159# CONFIG_PPC_MPC512x is not set
160# CONFIG_PPC_MPC5121 is not set
161# CONFIG_PPC_CELL is not set 168# CONFIG_PPC_CELL is not set
162# CONFIG_PPC_CELL_NATIVE is not set 169# CONFIG_PPC_CELL_NATIVE is not set
163# CONFIG_PQ2ADS is not set 170# CONFIG_PQ2ADS is not set
@@ -166,11 +173,13 @@ CONFIG_MPC8540_ADS=y
166CONFIG_MPC8560_ADS=y 173CONFIG_MPC8560_ADS=y
167CONFIG_MPC85xx_CDS=y 174CONFIG_MPC85xx_CDS=y
168CONFIG_MPC85xx_MDS=y 175CONFIG_MPC85xx_MDS=y
176CONFIG_MPC8536_DS=y
169CONFIG_MPC85xx_DS=y 177CONFIG_MPC85xx_DS=y
170CONFIG_KSI8560=y 178CONFIG_KSI8560=y
171# CONFIG_STX_GP3 is not set 179# CONFIG_STX_GP3 is not set
172CONFIG_TQM8540=y 180CONFIG_TQM8540=y
173CONFIG_TQM8541=y 181CONFIG_TQM8541=y
182CONFIG_TQM8548=y
174CONFIG_TQM8555=y 183CONFIG_TQM8555=y
175CONFIG_TQM8560=y 184CONFIG_TQM8560=y
176CONFIG_SBC8548=y 185CONFIG_SBC8548=y
@@ -189,7 +198,6 @@ CONFIG_PPC_I8259=y
189# CONFIG_CPU_FREQ is not set 198# CONFIG_CPU_FREQ is not set
190CONFIG_QUICC_ENGINE=y 199CONFIG_QUICC_ENGINE=y
191CONFIG_CPM2=y 200CONFIG_CPM2=y
192CONFIG_PPC_CPM_NEW_BINDING=y
193CONFIG_FSL_ULI1575=y 201CONFIG_FSL_ULI1575=y
194CONFIG_CPM=y 202CONFIG_CPM=y
195 203
@@ -206,7 +214,7 @@ CONFIG_HZ_250=y
206# CONFIG_HZ_300 is not set 214# CONFIG_HZ_300 is not set
207# CONFIG_HZ_1000 is not set 215# CONFIG_HZ_1000 is not set
208CONFIG_HZ=250 216CONFIG_HZ=250
209# CONFIG_SCHED_HRTICK is not set 217CONFIG_SCHED_HRTICK=y
210CONFIG_PREEMPT_NONE=y 218CONFIG_PREEMPT_NONE=y
211# CONFIG_PREEMPT_VOLUNTARY is not set 219# CONFIG_PREEMPT_VOLUNTARY is not set
212# CONFIG_PREEMPT is not set 220# CONFIG_PREEMPT is not set
@@ -229,6 +237,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
229# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 237# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
230CONFIG_PAGEFLAGS_EXTENDED=y 238CONFIG_PAGEFLAGS_EXTENDED=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 239CONFIG_SPLIT_PTLOCK_CPUS=4
240CONFIG_MIGRATION=y
232# CONFIG_RESOURCES_64BIT is not set 241# CONFIG_RESOURCES_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
@@ -236,6 +245,7 @@ CONFIG_VIRT_TO_BUS=y
236CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
237CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
238# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
248CONFIG_EXTRA_TARGETS=""
239# CONFIG_PM is not set 249# CONFIG_PM is not set
240CONFIG_SECCOMP=y 250CONFIG_SECCOMP=y
241CONFIG_ISA_DMA_API=y 251CONFIG_ISA_DMA_API=y
@@ -248,6 +258,7 @@ CONFIG_GENERIC_ISA_DMA=y
248CONFIG_PPC_INDIRECT_PCI=y 258CONFIG_PPC_INDIRECT_PCI=y
249CONFIG_FSL_SOC=y 259CONFIG_FSL_SOC=y
250CONFIG_FSL_PCI=y 260CONFIG_FSL_PCI=y
261CONFIG_PPC_PCI_CHOICE=y
251CONFIG_PCI=y 262CONFIG_PCI=y
252CONFIG_PCI_DOMAINS=y 263CONFIG_PCI_DOMAINS=y
253CONFIG_PCI_SYSCALL=y 264CONFIG_PCI_SYSCALL=y
@@ -274,10 +285,6 @@ CONFIG_KERNEL_START=0xc0000000
274CONFIG_PHYSICAL_START=0x00000000 285CONFIG_PHYSICAL_START=0x00000000
275CONFIG_PHYSICAL_ALIGN=0x10000000 286CONFIG_PHYSICAL_ALIGN=0x10000000
276CONFIG_TASK_SIZE=0xc0000000 287CONFIG_TASK_SIZE=0xc0000000
277
278#
279# Networking
280#
281CONFIG_NET=y 288CONFIG_NET=y
282 289
283# 290#
@@ -403,12 +410,15 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
403CONFIG_STANDALONE=y 410CONFIG_STANDALONE=y
404CONFIG_PREVENT_FIRMWARE_BUILD=y 411CONFIG_PREVENT_FIRMWARE_BUILD=y
405CONFIG_FW_LOADER=y 412CONFIG_FW_LOADER=y
413CONFIG_FIRMWARE_IN_KERNEL=y
414CONFIG_EXTRA_FIRMWARE=""
406# CONFIG_DEBUG_DRIVER is not set 415# CONFIG_DEBUG_DRIVER is not set
407# CONFIG_DEBUG_DEVRES is not set 416# CONFIG_DEBUG_DEVRES is not set
408# CONFIG_SYS_HYPERVISOR is not set 417# CONFIG_SYS_HYPERVISOR is not set
409# CONFIG_CONNECTOR is not set 418# CONFIG_CONNECTOR is not set
410# CONFIG_MTD is not set 419# CONFIG_MTD is not set
411CONFIG_OF_DEVICE=y 420CONFIG_OF_DEVICE=y
421CONFIG_OF_GPIO=y
412CONFIG_OF_I2C=y 422CONFIG_OF_I2C=y
413# CONFIG_PARPORT is not set 423# CONFIG_PARPORT is not set
414CONFIG_BLK_DEV=y 424CONFIG_BLK_DEV=y
@@ -429,12 +439,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
429# CONFIG_BLK_DEV_XIP is not set 439# CONFIG_BLK_DEV_XIP is not set
430# CONFIG_CDROM_PKTCDVD is not set 440# CONFIG_CDROM_PKTCDVD is not set
431# CONFIG_ATA_OVER_ETH is not set 441# CONFIG_ATA_OVER_ETH is not set
442# CONFIG_BLK_DEV_HD is not set
432CONFIG_MISC_DEVICES=y 443CONFIG_MISC_DEVICES=y
433# CONFIG_PHANTOM is not set 444# CONFIG_PHANTOM is not set
434# CONFIG_EEPROM_93CX6 is not set 445# CONFIG_EEPROM_93CX6 is not set
435# CONFIG_SGI_IOC4 is not set 446# CONFIG_SGI_IOC4 is not set
436# CONFIG_TIFM_CORE is not set 447# CONFIG_TIFM_CORE is not set
437# CONFIG_ENCLOSURE_SERVICES is not set 448# CONFIG_ENCLOSURE_SERVICES is not set
449# CONFIG_HP_ILO is not set
438CONFIG_HAVE_IDE=y 450CONFIG_HAVE_IDE=y
439# CONFIG_IDE is not set 451# CONFIG_IDE is not set
440 452
@@ -514,6 +526,7 @@ CONFIG_SCSI_LOWLEVEL=y
514# CONFIG_SCSI_NSP32 is not set 526# CONFIG_SCSI_NSP32 is not set
515# CONFIG_SCSI_DEBUG is not set 527# CONFIG_SCSI_DEBUG is not set
516# CONFIG_SCSI_SRP is not set 528# CONFIG_SCSI_SRP is not set
529# CONFIG_SCSI_DH is not set
517CONFIG_ATA=y 530CONFIG_ATA=y
518# CONFIG_ATA_NONSTANDARD is not set 531# CONFIG_ATA_NONSTANDARD is not set
519CONFIG_SATA_PMP=y 532CONFIG_SATA_PMP=y
@@ -581,12 +594,15 @@ CONFIG_PATA_ALI=y
581# 594#
582# IEEE 1394 (FireWire) support 595# IEEE 1394 (FireWire) support
583# 596#
597
598#
599# Enable only one of the two stacks, unless you know what you are doing
600#
584# CONFIG_FIREWIRE is not set 601# CONFIG_FIREWIRE is not set
585# CONFIG_IEEE1394 is not set 602# CONFIG_IEEE1394 is not set
586# CONFIG_I2O is not set 603# CONFIG_I2O is not set
587# CONFIG_MACINTOSH_DRIVERS is not set 604# CONFIG_MACINTOSH_DRIVERS is not set
588CONFIG_NETDEVICES=y 605CONFIG_NETDEVICES=y
589# CONFIG_NETDEVICES_MULTIQUEUE is not set
590CONFIG_DUMMY=y 606CONFIG_DUMMY=y
591# CONFIG_BONDING is not set 607# CONFIG_BONDING is not set
592# CONFIG_MACVLAN is not set 608# CONFIG_MACVLAN is not set
@@ -631,7 +647,6 @@ CONFIG_NETDEV_1000=y
631# CONFIG_DL2K is not set 647# CONFIG_DL2K is not set
632# CONFIG_E1000 is not set 648# CONFIG_E1000 is not set
633# CONFIG_E1000E is not set 649# CONFIG_E1000E is not set
634# CONFIG_E1000E_ENABLED is not set
635# CONFIG_IP1000 is not set 650# CONFIG_IP1000 is not set
636# CONFIG_IGB is not set 651# CONFIG_IGB is not set
637# CONFIG_NS83820 is not set 652# CONFIG_NS83820 is not set
@@ -645,10 +660,10 @@ CONFIG_NETDEV_1000=y
645# CONFIG_TIGON3 is not set 660# CONFIG_TIGON3 is not set
646# CONFIG_BNX2 is not set 661# CONFIG_BNX2 is not set
647CONFIG_GIANFAR=y 662CONFIG_GIANFAR=y
648CONFIG_GFAR_NAPI=y
649# CONFIG_UCC_GETH is not set 663# CONFIG_UCC_GETH is not set
650# CONFIG_QLA3XXX is not set 664# CONFIG_QLA3XXX is not set
651# CONFIG_ATL1 is not set 665# CONFIG_ATL1 is not set
666# CONFIG_ATL1E is not set
652CONFIG_NETDEV_10000=y 667CONFIG_NETDEV_10000=y
653# CONFIG_CHELSIO_T1 is not set 668# CONFIG_CHELSIO_T1 is not set
654# CONFIG_CHELSIO_T3 is not set 669# CONFIG_CHELSIO_T3 is not set
@@ -725,12 +740,14 @@ CONFIG_SERIO_SERPORT=y
725# CONFIG_SERIO_PCIPS2 is not set 740# CONFIG_SERIO_PCIPS2 is not set
726CONFIG_SERIO_LIBPS2=y 741CONFIG_SERIO_LIBPS2=y
727# CONFIG_SERIO_RAW is not set 742# CONFIG_SERIO_RAW is not set
743# CONFIG_SERIO_XILINX_XPS_PS2 is not set
728# CONFIG_GAMEPORT is not set 744# CONFIG_GAMEPORT is not set
729 745
730# 746#
731# Character devices 747# Character devices
732# 748#
733CONFIG_VT=y 749CONFIG_VT=y
750CONFIG_CONSOLE_TRANSLATIONS=y
734CONFIG_VT_CONSOLE=y 751CONFIG_VT_CONSOLE=y
735CONFIG_HW_CONSOLE=y 752CONFIG_HW_CONSOLE=y
736# CONFIG_VT_HW_CONSOLE_BINDING is not set 753# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -776,44 +793,68 @@ CONFIG_DEVPORT=y
776CONFIG_I2C=y 793CONFIG_I2C=y
777CONFIG_I2C_BOARDINFO=y 794CONFIG_I2C_BOARDINFO=y
778# CONFIG_I2C_CHARDEV is not set 795# CONFIG_I2C_CHARDEV is not set
796CONFIG_I2C_HELPER_AUTO=y
779 797
780# 798#
781# I2C Hardware Bus support 799# I2C Hardware Bus support
782# 800#
801
802#
803# PC SMBus host controller drivers
804#
783# CONFIG_I2C_ALI1535 is not set 805# CONFIG_I2C_ALI1535 is not set
784# CONFIG_I2C_ALI1563 is not set 806# CONFIG_I2C_ALI1563 is not set
785# CONFIG_I2C_ALI15X3 is not set 807# CONFIG_I2C_ALI15X3 is not set
786# CONFIG_I2C_AMD756 is not set 808# CONFIG_I2C_AMD756 is not set
787# CONFIG_I2C_AMD8111 is not set 809# CONFIG_I2C_AMD8111 is not set
788# CONFIG_I2C_I801 is not set 810# CONFIG_I2C_I801 is not set
789# CONFIG_I2C_I810 is not set 811# CONFIG_I2C_ISCH is not set
790# CONFIG_I2C_PIIX4 is not set 812# CONFIG_I2C_PIIX4 is not set
791CONFIG_I2C_MPC=y
792# CONFIG_I2C_NFORCE2 is not set 813# CONFIG_I2C_NFORCE2 is not set
793# CONFIG_I2C_OCORES is not set
794# CONFIG_I2C_PARPORT_LIGHT is not set
795# CONFIG_I2C_PROSAVAGE is not set
796# CONFIG_I2C_SAVAGE4 is not set
797# CONFIG_I2C_SIMTEC is not set
798# CONFIG_I2C_SIS5595 is not set 814# CONFIG_I2C_SIS5595 is not set
799# CONFIG_I2C_SIS630 is not set 815# CONFIG_I2C_SIS630 is not set
800# CONFIG_I2C_SIS96X is not set 816# CONFIG_I2C_SIS96X is not set
801# CONFIG_I2C_TAOS_EVM is not set
802# CONFIG_I2C_STUB is not set
803# CONFIG_I2C_TINY_USB is not set
804# CONFIG_I2C_VIA is not set 817# CONFIG_I2C_VIA is not set
805# CONFIG_I2C_VIAPRO is not set 818# CONFIG_I2C_VIAPRO is not set
819
820#
821# I2C system bus drivers (mostly embedded / system-on-chip)
822#
823# CONFIG_I2C_CPM is not set
824# CONFIG_I2C_GPIO is not set
825CONFIG_I2C_MPC=y
826# CONFIG_I2C_OCORES is not set
827# CONFIG_I2C_SIMTEC is not set
828
829#
830# External I2C/SMBus adapter drivers
831#
832# CONFIG_I2C_PARPORT_LIGHT is not set
833# CONFIG_I2C_TAOS_EVM is not set
834# CONFIG_I2C_TINY_USB is not set
835
836#
837# Graphics adapter I2C/DDC channel drivers
838#
806# CONFIG_I2C_VOODOO3 is not set 839# CONFIG_I2C_VOODOO3 is not set
840
841#
842# Other I2C/SMBus bus drivers
843#
807# CONFIG_I2C_PCA_PLATFORM is not set 844# CONFIG_I2C_PCA_PLATFORM is not set
845# CONFIG_I2C_STUB is not set
808 846
809# 847#
810# Miscellaneous I2C Chip support 848# Miscellaneous I2C Chip support
811# 849#
812# CONFIG_DS1682 is not set 850# CONFIG_DS1682 is not set
851# CONFIG_AT24 is not set
813CONFIG_SENSORS_EEPROM=y 852CONFIG_SENSORS_EEPROM=y
814# CONFIG_SENSORS_PCF8574 is not set 853# CONFIG_SENSORS_PCF8574 is not set
815# CONFIG_PCF8575 is not set 854# CONFIG_PCF8575 is not set
855# CONFIG_SENSORS_PCA9539 is not set
816# CONFIG_SENSORS_PCF8591 is not set 856# CONFIG_SENSORS_PCF8591 is not set
857# CONFIG_TPS65010 is not set
817# CONFIG_SENSORS_MAX6875 is not set 858# CONFIG_SENSORS_MAX6875 is not set
818# CONFIG_SENSORS_TSL2550 is not set 859# CONFIG_SENSORS_TSL2550 is not set
819# CONFIG_I2C_DEBUG_CORE is not set 860# CONFIG_I2C_DEBUG_CORE is not set
@@ -821,10 +862,32 @@ CONFIG_SENSORS_EEPROM=y
821# CONFIG_I2C_DEBUG_BUS is not set 862# CONFIG_I2C_DEBUG_BUS is not set
822# CONFIG_I2C_DEBUG_CHIP is not set 863# CONFIG_I2C_DEBUG_CHIP is not set
823# CONFIG_SPI is not set 864# CONFIG_SPI is not set
865CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
866CONFIG_ARCH_REQUIRE_GPIOLIB=y
867CONFIG_GPIOLIB=y
868# CONFIG_DEBUG_GPIO is not set
869# CONFIG_GPIO_SYSFS is not set
870
871#
872# I2C GPIO expanders:
873#
874# CONFIG_GPIO_MAX732X is not set
875# CONFIG_GPIO_PCA953X is not set
876# CONFIG_GPIO_PCF857X is not set
877
878#
879# PCI GPIO expanders:
880#
881# CONFIG_GPIO_BT8XX is not set
882
883#
884# SPI GPIO expanders:
885#
824# CONFIG_W1 is not set 886# CONFIG_W1 is not set
825# CONFIG_POWER_SUPPLY is not set 887# CONFIG_POWER_SUPPLY is not set
826# CONFIG_HWMON is not set 888# CONFIG_HWMON is not set
827# CONFIG_THERMAL is not set 889# CONFIG_THERMAL is not set
890# CONFIG_THERMAL_HWMON is not set
828# CONFIG_WATCHDOG is not set 891# CONFIG_WATCHDOG is not set
829 892
830# 893#
@@ -836,8 +899,10 @@ CONFIG_SSB_POSSIBLE=y
836# 899#
837# Multifunction device drivers 900# Multifunction device drivers
838# 901#
902# CONFIG_MFD_CORE is not set
839# CONFIG_MFD_SM501 is not set 903# CONFIG_MFD_SM501 is not set
840# CONFIG_HTC_PASIC3 is not set 904# CONFIG_HTC_PASIC3 is not set
905# CONFIG_MFD_TMIO is not set
841 906
842# 907#
843# Multimedia devices 908# Multimedia devices
@@ -879,6 +944,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
879# CONFIG_DVB_TTUSB_BUDGET is not set 944# CONFIG_DVB_TTUSB_BUDGET is not set
880# CONFIG_DVB_TTUSB_DEC is not set 945# CONFIG_DVB_TTUSB_DEC is not set
881# CONFIG_DVB_CINERGYT2 is not set 946# CONFIG_DVB_CINERGYT2 is not set
947# CONFIG_DVB_SIANO_SMS1XXX is not set
882 948
883# 949#
884# Supported FlexCopII (B2C2) Adapters 950# Supported FlexCopII (B2C2) Adapters
@@ -925,6 +991,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
925# CONFIG_DVB_SP887X is not set 991# CONFIG_DVB_SP887X is not set
926# CONFIG_DVB_CX22700 is not set 992# CONFIG_DVB_CX22700 is not set
927# CONFIG_DVB_CX22702 is not set 993# CONFIG_DVB_CX22702 is not set
994# CONFIG_DVB_DRX397XD is not set
928# CONFIG_DVB_L64781 is not set 995# CONFIG_DVB_L64781 is not set
929# CONFIG_DVB_TDA1004X is not set 996# CONFIG_DVB_TDA1004X is not set
930# CONFIG_DVB_NXT6000 is not set 997# CONFIG_DVB_NXT6000 is not set
@@ -992,15 +1059,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
992CONFIG_VGA_CONSOLE=y 1059CONFIG_VGA_CONSOLE=y
993# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1060# CONFIG_VGACON_SOFT_SCROLLBACK is not set
994CONFIG_DUMMY_CONSOLE=y 1061CONFIG_DUMMY_CONSOLE=y
995
996#
997# Sound
998#
999CONFIG_SOUND=y 1062CONFIG_SOUND=y
1000
1001#
1002# Advanced Linux Sound Architecture
1003#
1004CONFIG_SND=y 1063CONFIG_SND=y
1005CONFIG_SND_TIMER=y 1064CONFIG_SND_TIMER=y
1006CONFIG_SND_PCM=y 1065CONFIG_SND_PCM=y
@@ -1014,19 +1073,15 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
1014CONFIG_SND_VERBOSE_PROCFS=y 1073CONFIG_SND_VERBOSE_PROCFS=y
1015# CONFIG_SND_VERBOSE_PRINTK is not set 1074# CONFIG_SND_VERBOSE_PRINTK is not set
1016# CONFIG_SND_DEBUG is not set 1075# CONFIG_SND_DEBUG is not set
1017 1076CONFIG_SND_VMASTER=y
1018#
1019# Generic devices
1020#
1021CONFIG_SND_AC97_CODEC=y 1077CONFIG_SND_AC97_CODEC=y
1078CONFIG_SND_DRIVERS=y
1022# CONFIG_SND_DUMMY is not set 1079# CONFIG_SND_DUMMY is not set
1023# CONFIG_SND_MTPAV is not set 1080# CONFIG_SND_MTPAV is not set
1024# CONFIG_SND_SERIAL_U16550 is not set 1081# CONFIG_SND_SERIAL_U16550 is not set
1025# CONFIG_SND_MPU401 is not set 1082# CONFIG_SND_MPU401 is not set
1026 1083# CONFIG_SND_AC97_POWER_SAVE is not set
1027# 1084CONFIG_SND_PCI=y
1028# PCI devices
1029#
1030# CONFIG_SND_AD1889 is not set 1085# CONFIG_SND_AD1889 is not set
1031# CONFIG_SND_ALS300 is not set 1086# CONFIG_SND_ALS300 is not set
1032# CONFIG_SND_ALS4000 is not set 1087# CONFIG_SND_ALS4000 is not set
@@ -1088,39 +1143,12 @@ CONFIG_SND_INTEL8X0=y
1088# CONFIG_SND_VIRTUOSO is not set 1143# CONFIG_SND_VIRTUOSO is not set
1089# CONFIG_SND_VX222 is not set 1144# CONFIG_SND_VX222 is not set
1090# CONFIG_SND_YMFPCI is not set 1145# CONFIG_SND_YMFPCI is not set
1091# CONFIG_SND_AC97_POWER_SAVE is not set 1146CONFIG_SND_PPC=y
1092 1147CONFIG_SND_USB=y
1093#
1094# ALSA PowerMac devices
1095#
1096
1097#
1098# ALSA PowerPC devices
1099#
1100
1101#
1102# USB devices
1103#
1104# CONFIG_SND_USB_AUDIO is not set 1148# CONFIG_SND_USB_AUDIO is not set
1105# CONFIG_SND_USB_USX2Y is not set 1149# CONFIG_SND_USB_USX2Y is not set
1106# CONFIG_SND_USB_CAIAQ is not set 1150# CONFIG_SND_USB_CAIAQ is not set
1107
1108#
1109# System on Chip audio support
1110#
1111# CONFIG_SND_SOC is not set 1151# CONFIG_SND_SOC is not set
1112
1113#
1114# ALSA SoC audio for Freescale SOCs
1115#
1116
1117#
1118# SoC Audio for the Texas Instruments OMAP
1119#
1120
1121#
1122# Open Sound System
1123#
1124# CONFIG_SOUND_PRIME is not set 1152# CONFIG_SOUND_PRIME is not set
1125CONFIG_AC97_BUS=y 1153CONFIG_AC97_BUS=y
1126CONFIG_HID_SUPPORT=y 1154CONFIG_HID_SUPPORT=y
@@ -1152,6 +1180,7 @@ CONFIG_USB_DEVICE_CLASS=y
1152# CONFIG_USB_OTG is not set 1180# CONFIG_USB_OTG is not set
1153# CONFIG_USB_OTG_WHITELIST is not set 1181# CONFIG_USB_OTG_WHITELIST is not set
1154# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1182# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1183CONFIG_USB_MON=y
1155 1184
1156# 1185#
1157# USB Host Controller Drivers 1186# USB Host Controller Drivers
@@ -1175,6 +1204,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1175# CONFIG_USB_UHCI_HCD is not set 1204# CONFIG_USB_UHCI_HCD is not set
1176# CONFIG_USB_SL811_HCD is not set 1205# CONFIG_USB_SL811_HCD is not set
1177# CONFIG_USB_R8A66597_HCD is not set 1206# CONFIG_USB_R8A66597_HCD is not set
1207# CONFIG_USB_MUSB_HDRC is not set
1178 1208
1179# 1209#
1180# USB Device Class drivers 1210# USB Device Class drivers
@@ -1203,6 +1233,7 @@ CONFIG_USB_STORAGE=y
1203# CONFIG_USB_STORAGE_ALAUDA is not set 1233# CONFIG_USB_STORAGE_ALAUDA is not set
1204# CONFIG_USB_STORAGE_ONETOUCH is not set 1234# CONFIG_USB_STORAGE_ONETOUCH is not set
1205# CONFIG_USB_STORAGE_KARMA is not set 1235# CONFIG_USB_STORAGE_KARMA is not set
1236# CONFIG_USB_STORAGE_SIERRA is not set
1206# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1237# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1207# CONFIG_USB_LIBUSUAL is not set 1238# CONFIG_USB_LIBUSUAL is not set
1208 1239
@@ -1211,7 +1242,6 @@ CONFIG_USB_STORAGE=y
1211# 1242#
1212# CONFIG_USB_MDC800 is not set 1243# CONFIG_USB_MDC800 is not set
1213# CONFIG_USB_MICROTEK is not set 1244# CONFIG_USB_MICROTEK is not set
1214CONFIG_USB_MON=y
1215 1245
1216# 1246#
1217# USB port drivers 1247# USB port drivers
@@ -1224,7 +1254,6 @@ CONFIG_USB_MON=y
1224# CONFIG_USB_EMI62 is not set 1254# CONFIG_USB_EMI62 is not set
1225# CONFIG_USB_EMI26 is not set 1255# CONFIG_USB_EMI26 is not set
1226# CONFIG_USB_ADUTUX is not set 1256# CONFIG_USB_ADUTUX is not set
1227# CONFIG_USB_AUERSWALD is not set
1228# CONFIG_USB_RIO500 is not set 1257# CONFIG_USB_RIO500 is not set
1229# CONFIG_USB_LEGOTOWER is not set 1258# CONFIG_USB_LEGOTOWER is not set
1230# CONFIG_USB_LCD is not set 1259# CONFIG_USB_LCD is not set
@@ -1285,6 +1314,7 @@ CONFIG_RTC_INTF_DEV=y
1285# CONFIG_RTC_DRV_PCF8583 is not set 1314# CONFIG_RTC_DRV_PCF8583 is not set
1286# CONFIG_RTC_DRV_M41T80 is not set 1315# CONFIG_RTC_DRV_M41T80 is not set
1287# CONFIG_RTC_DRV_S35390A is not set 1316# CONFIG_RTC_DRV_S35390A is not set
1317# CONFIG_RTC_DRV_FM3130 is not set
1288 1318
1289# 1319#
1290# SPI RTC drivers 1320# SPI RTC drivers
@@ -1318,6 +1348,7 @@ CONFIG_DMA_ENGINE=y
1318# DMA Clients 1348# DMA Clients
1319# 1349#
1320# CONFIG_NET_DMA is not set 1350# CONFIG_NET_DMA is not set
1351# CONFIG_DMATEST is not set
1321# CONFIG_UIO is not set 1352# CONFIG_UIO is not set
1322 1353
1323# 1354#
@@ -1332,6 +1363,7 @@ CONFIG_EXT3_FS_XATTR=y
1332# CONFIG_EXT3_FS_SECURITY is not set 1363# CONFIG_EXT3_FS_SECURITY is not set
1333# CONFIG_EXT4DEV_FS is not set 1364# CONFIG_EXT4DEV_FS is not set
1334CONFIG_JBD=y 1365CONFIG_JBD=y
1366# CONFIG_JBD_DEBUG is not set
1335CONFIG_FS_MBCACHE=y 1367CONFIG_FS_MBCACHE=y
1336# CONFIG_REISERFS_FS is not set 1368# CONFIG_REISERFS_FS is not set
1337# CONFIG_JFS_FS is not set 1369# CONFIG_JFS_FS is not set
@@ -1394,6 +1426,7 @@ CONFIG_EFS_FS=m
1394CONFIG_CRAMFS=y 1426CONFIG_CRAMFS=y
1395CONFIG_VXFS_FS=m 1427CONFIG_VXFS_FS=m
1396# CONFIG_MINIX_FS is not set 1428# CONFIG_MINIX_FS is not set
1429# CONFIG_OMFS_FS is not set
1397CONFIG_HPFS_FS=m 1430CONFIG_HPFS_FS=m
1398CONFIG_QNX4FS_FS=m 1431CONFIG_QNX4FS_FS=m
1399# CONFIG_ROMFS_FS is not set 1432# CONFIG_ROMFS_FS is not set
@@ -1406,17 +1439,16 @@ CONFIG_NFS_FS=y
1406CONFIG_NFS_V3=y 1439CONFIG_NFS_V3=y
1407# CONFIG_NFS_V3_ACL is not set 1440# CONFIG_NFS_V3_ACL is not set
1408CONFIG_NFS_V4=y 1441CONFIG_NFS_V4=y
1442CONFIG_ROOT_NFS=y
1409CONFIG_NFSD=y 1443CONFIG_NFSD=y
1410# CONFIG_NFSD_V3 is not set 1444# CONFIG_NFSD_V3 is not set
1411# CONFIG_NFSD_V4 is not set 1445# CONFIG_NFSD_V4 is not set
1412CONFIG_ROOT_NFS=y
1413CONFIG_LOCKD=y 1446CONFIG_LOCKD=y
1414CONFIG_LOCKD_V4=y 1447CONFIG_LOCKD_V4=y
1415CONFIG_EXPORTFS=y 1448CONFIG_EXPORTFS=y
1416CONFIG_NFS_COMMON=y 1449CONFIG_NFS_COMMON=y
1417CONFIG_SUNRPC=y 1450CONFIG_SUNRPC=y
1418CONFIG_SUNRPC_GSS=y 1451CONFIG_SUNRPC_GSS=y
1419# CONFIG_SUNRPC_BIND34 is not set
1420CONFIG_RPCSEC_GSS_KRB5=y 1452CONFIG_RPCSEC_GSS_KRB5=y
1421# CONFIG_RPCSEC_GSS_SPKM3 is not set 1453# CONFIG_RPCSEC_GSS_SPKM3 is not set
1422# CONFIG_SMB_FS is not set 1454# CONFIG_SMB_FS is not set
@@ -1487,6 +1519,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1487# CONFIG_NLS_KOI8_U is not set 1519# CONFIG_NLS_KOI8_U is not set
1488CONFIG_NLS_UTF8=m 1520CONFIG_NLS_UTF8=m
1489# CONFIG_DLM is not set 1521# CONFIG_DLM is not set
1522# CONFIG_QE_GPIO is not set
1490 1523
1491# 1524#
1492# Library routines 1525# Library routines
@@ -1495,6 +1528,7 @@ CONFIG_BITREVERSE=y
1495# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1528# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1496# CONFIG_CRC_CCITT is not set 1529# CONFIG_CRC_CCITT is not set
1497# CONFIG_CRC16 is not set 1530# CONFIG_CRC16 is not set
1531CONFIG_CRC_T10DIF=y
1498CONFIG_CRC_ITU_T=m 1532CONFIG_CRC_ITU_T=m
1499CONFIG_CRC32=y 1533CONFIG_CRC32=y
1500# CONFIG_CRC7 is not set 1534# CONFIG_CRC7 is not set
@@ -1515,11 +1549,13 @@ CONFIG_ENABLE_MUST_CHECK=y
1515CONFIG_FRAME_WARN=1024 1549CONFIG_FRAME_WARN=1024
1516# CONFIG_MAGIC_SYSRQ is not set 1550# CONFIG_MAGIC_SYSRQ is not set
1517# CONFIG_UNUSED_SYMBOLS is not set 1551# CONFIG_UNUSED_SYMBOLS is not set
1518# CONFIG_DEBUG_FS is not set 1552CONFIG_DEBUG_FS=y
1519# CONFIG_HEADERS_CHECK is not set 1553# CONFIG_HEADERS_CHECK is not set
1520CONFIG_DEBUG_KERNEL=y 1554CONFIG_DEBUG_KERNEL=y
1521# CONFIG_DEBUG_SHIRQ is not set 1555# CONFIG_DEBUG_SHIRQ is not set
1522CONFIG_DETECT_SOFTLOCKUP=y 1556CONFIG_DETECT_SOFTLOCKUP=y
1557# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1558CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1523CONFIG_SCHED_DEBUG=y 1559CONFIG_SCHED_DEBUG=y
1524# CONFIG_SCHEDSTATS is not set 1560# CONFIG_SCHEDSTATS is not set
1525# CONFIG_TIMER_STATS is not set 1561# CONFIG_TIMER_STATS is not set
@@ -1538,19 +1574,31 @@ CONFIG_SCHED_DEBUG=y
1538CONFIG_DEBUG_INFO=y 1574CONFIG_DEBUG_INFO=y
1539# CONFIG_DEBUG_VM is not set 1575# CONFIG_DEBUG_VM is not set
1540# CONFIG_DEBUG_WRITECOUNT is not set 1576# CONFIG_DEBUG_WRITECOUNT is not set
1577# CONFIG_DEBUG_MEMORY_INIT is not set
1541# CONFIG_DEBUG_LIST is not set 1578# CONFIG_DEBUG_LIST is not set
1542# CONFIG_DEBUG_SG is not set 1579# CONFIG_DEBUG_SG is not set
1543# CONFIG_BOOT_PRINTK_DELAY is not set 1580# CONFIG_BOOT_PRINTK_DELAY is not set
1544# CONFIG_RCU_TORTURE_TEST is not set 1581# CONFIG_RCU_TORTURE_TEST is not set
1545# CONFIG_BACKTRACE_SELF_TEST is not set 1582# CONFIG_BACKTRACE_SELF_TEST is not set
1546# CONFIG_FAULT_INJECTION is not set 1583# CONFIG_FAULT_INJECTION is not set
1584# CONFIG_LATENCYTOP is not set
1585CONFIG_SYSCTL_SYSCALL_CHECK=y
1586CONFIG_HAVE_FTRACE=y
1587CONFIG_HAVE_DYNAMIC_FTRACE=y
1588# CONFIG_FTRACE is not set
1589# CONFIG_SCHED_TRACER is not set
1590# CONFIG_CONTEXT_SWITCH_TRACER is not set
1547# CONFIG_SAMPLES is not set 1591# CONFIG_SAMPLES is not set
1592CONFIG_HAVE_ARCH_KGDB=y
1593# CONFIG_KGDB is not set
1548# CONFIG_DEBUG_STACKOVERFLOW is not set 1594# CONFIG_DEBUG_STACKOVERFLOW is not set
1549# CONFIG_DEBUG_STACK_USAGE is not set 1595# CONFIG_DEBUG_STACK_USAGE is not set
1550# CONFIG_DEBUG_PAGEALLOC is not set 1596# CONFIG_DEBUG_PAGEALLOC is not set
1551# CONFIG_DEBUGGER is not set 1597# CONFIG_CODE_PATCHING_SELFTEST is not set
1552# CONFIG_KGDB_CONSOLE is not set 1598# CONFIG_FTR_FIXUP_SELFTEST is not set
1599# CONFIG_XMON is not set
1553# CONFIG_IRQSTACKS is not set 1600# CONFIG_IRQSTACKS is not set
1601CONFIG_VIRQ_DEBUG=y
1554# CONFIG_BDI_SWITCH is not set 1602# CONFIG_BDI_SWITCH is not set
1555# CONFIG_PPC_EARLY_DEBUG is not set 1603# CONFIG_PPC_EARLY_DEBUG is not set
1556 1604
@@ -1606,6 +1654,10 @@ CONFIG_CRYPTO_HMAC=y
1606# CONFIG_CRYPTO_MD4 is not set 1654# CONFIG_CRYPTO_MD4 is not set
1607CONFIG_CRYPTO_MD5=y 1655CONFIG_CRYPTO_MD5=y
1608# CONFIG_CRYPTO_MICHAEL_MIC is not set 1656# CONFIG_CRYPTO_MICHAEL_MIC is not set
1657# CONFIG_CRYPTO_RMD128 is not set
1658# CONFIG_CRYPTO_RMD160 is not set
1659# CONFIG_CRYPTO_RMD256 is not set
1660# CONFIG_CRYPTO_RMD320 is not set
1609CONFIG_CRYPTO_SHA1=m 1661CONFIG_CRYPTO_SHA1=m
1610# CONFIG_CRYPTO_SHA256 is not set 1662# CONFIG_CRYPTO_SHA256 is not set
1611# CONFIG_CRYPTO_SHA512 is not set 1663# CONFIG_CRYPTO_SHA512 is not set
@@ -1638,6 +1690,7 @@ CONFIG_CRYPTO_DES=y
1638# CONFIG_CRYPTO_LZO is not set 1690# CONFIG_CRYPTO_LZO is not set
1639CONFIG_CRYPTO_HW=y 1691CONFIG_CRYPTO_HW=y
1640# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1692# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1641# CONFIG_PPC_CLOCK is not set 1693# CONFIG_CRYPTO_DEV_TALITOS is not set
1694CONFIG_PPC_CLOCK=y
1642CONFIG_PPC_LIB_RHEAP=y 1695CONFIG_PPC_LIB_RHEAP=y
1643# CONFIG_VIRTUALIZATION is not set 1696# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc8610_hpcd_defconfig b/arch/powerpc/configs/mpc8610_hpcd_defconfig
index cdf98ae3682..1a9990731eb 100644
--- a/arch/powerpc/configs/mpc8610_hpcd_defconfig
+++ b/arch/powerpc/configs/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.26 3# Linux kernel version: 2.6.27-rc4
4# Tue Jul 15 08:31:01 2008 4# Thu Aug 21 00:52:10 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -91,7 +92,6 @@ CONFIG_INITRAMFS_SOURCE=""
91CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
92CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
94CONFIG_SYSCTL_SYSCALL_CHECK=y
95CONFIG_KALLSYMS=y 95CONFIG_KALLSYMS=y
96# CONFIG_KALLSYMS_ALL is not set 96# CONFIG_KALLSYMS_ALL is not set
97CONFIG_KALLSYMS_EXTRA_PASS=y 97CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -118,10 +118,16 @@ CONFIG_SLUB=y
118# CONFIG_MARKERS is not set 118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
122CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_DMA_ATTRS=y 125CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_DMA_ATTRS is not set
127# CONFIG_USE_GENERIC_SMP_HELPERS is not set
128# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y 129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set 133# CONFIG_TINY_SHMEM is not set
@@ -138,6 +144,7 @@ CONFIG_BLOCK=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 144# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 145# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 146# CONFIG_BLK_DEV_BSG is not set
147# CONFIG_BLK_DEV_INTEGRITY is not set
141 148
142# 149#
143# IO Schedulers 150# IO Schedulers
@@ -159,9 +166,8 @@ CONFIG_CLASSIC_RCU=y
159CONFIG_PPC_MULTIPLATFORM=y 166CONFIG_PPC_MULTIPLATFORM=y
160CONFIG_CLASSIC32=y 167CONFIG_CLASSIC32=y
161CONFIG_PPC_CHRP=y 168CONFIG_PPC_CHRP=y
162# CONFIG_PPC_MPC512x is not set
163# CONFIG_PPC_MPC5121 is not set
164# CONFIG_MPC5121_ADS is not set 169# CONFIG_MPC5121_ADS is not set
170# CONFIG_MPC5121_GENERIC is not set
165# CONFIG_PPC_MPC52xx is not set 171# CONFIG_PPC_MPC52xx is not set
166CONFIG_PPC_PMAC=y 172CONFIG_PPC_PMAC=y
167# CONFIG_PPC_CELL is not set 173# CONFIG_PPC_CELL is not set
@@ -207,7 +213,7 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
207# CONFIG_HZ_300 is not set 213# CONFIG_HZ_300 is not set
208CONFIG_HZ_1000=y 214CONFIG_HZ_1000=y
209CONFIG_HZ=1000 215CONFIG_HZ=1000
210# CONFIG_SCHED_HRTICK is not set 216CONFIG_SCHED_HRTICK=y
211CONFIG_PREEMPT_NONE=y 217CONFIG_PREEMPT_NONE=y
212# CONFIG_PREEMPT_VOLUNTARY is not set 218# CONFIG_PREEMPT_VOLUNTARY is not set
213# CONFIG_PREEMPT is not set 219# CONFIG_PREEMPT is not set
@@ -230,6 +236,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
230# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 236# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
231CONFIG_PAGEFLAGS_EXTENDED=y 237CONFIG_PAGEFLAGS_EXTENDED=y
232CONFIG_SPLIT_PTLOCK_CPUS=4 238CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y
233# CONFIG_RESOURCES_64BIT is not set 240# CONFIG_RESOURCES_64BIT is not set
234CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
@@ -237,6 +244,7 @@ CONFIG_VIRT_TO_BUS=y
237CONFIG_FORCE_MAX_ZONEORDER=12 244CONFIG_FORCE_MAX_ZONEORDER=12
238CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
247CONFIG_EXTRA_TARGETS=""
240# CONFIG_PM is not set 248# CONFIG_PM is not set
241# CONFIG_SECCOMP is not set 249# CONFIG_SECCOMP is not set
242CONFIG_ISA_DMA_API=y 250CONFIG_ISA_DMA_API=y
@@ -278,10 +286,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
278CONFIG_KERNEL_START=0xc0000000 286CONFIG_KERNEL_START=0xc0000000
279CONFIG_PHYSICAL_START=0x00000000 287CONFIG_PHYSICAL_START=0x00000000
280CONFIG_TASK_SIZE=0xc0000000 288CONFIG_TASK_SIZE=0xc0000000
281
282#
283# Networking
284#
285CONFIG_NET=y 289CONFIG_NET=y
286 290
287# 291#
@@ -391,6 +395,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
391CONFIG_STANDALONE=y 395CONFIG_STANDALONE=y
392CONFIG_PREVENT_FIRMWARE_BUILD=y 396CONFIG_PREVENT_FIRMWARE_BUILD=y
393CONFIG_FW_LOADER=y 397CONFIG_FW_LOADER=y
398CONFIG_FIRMWARE_IN_KERNEL=y
399CONFIG_EXTRA_FIRMWARE=""
394# CONFIG_DEBUG_DRIVER is not set 400# CONFIG_DEBUG_DRIVER is not set
395# CONFIG_DEBUG_DEVRES is not set 401# CONFIG_DEBUG_DEVRES is not set
396# CONFIG_SYS_HYPERVISOR is not set 402# CONFIG_SYS_HYPERVISOR is not set
@@ -503,18 +509,17 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
503# CONFIG_BLK_DEV_XIP is not set 509# CONFIG_BLK_DEV_XIP is not set
504# CONFIG_CDROM_PKTCDVD is not set 510# CONFIG_CDROM_PKTCDVD is not set
505# CONFIG_ATA_OVER_ETH is not set 511# CONFIG_ATA_OVER_ETH is not set
512# CONFIG_BLK_DEV_HD is not set
506CONFIG_MISC_DEVICES=y 513CONFIG_MISC_DEVICES=y
507# CONFIG_PHANTOM is not set 514# CONFIG_PHANTOM is not set
508# CONFIG_EEPROM_93CX6 is not set 515# CONFIG_EEPROM_93CX6 is not set
509# CONFIG_SGI_IOC4 is not set 516# CONFIG_SGI_IOC4 is not set
510# CONFIG_TIFM_CORE is not set 517# CONFIG_TIFM_CORE is not set
511# CONFIG_ENCLOSURE_SERVICES is not set 518# CONFIG_ENCLOSURE_SERVICES is not set
519# CONFIG_HP_ILO is not set
512CONFIG_HAVE_IDE=y 520CONFIG_HAVE_IDE=y
513CONFIG_IDE=y 521CONFIG_IDE=y
514CONFIG_IDE_MAX_HWIFS=4
515# CONFIG_BLK_DEV_IDE is not set 522# CONFIG_BLK_DEV_IDE is not set
516# CONFIG_BLK_DEV_HD_ONLY is not set
517# CONFIG_BLK_DEV_HD is not set
518 523
519# 524#
520# SCSI device support 525# SCSI device support
@@ -593,6 +598,7 @@ CONFIG_SCSI_LOWLEVEL=y
593# CONFIG_SCSI_MESH is not set 598# CONFIG_SCSI_MESH is not set
594# CONFIG_SCSI_MAC53C94 is not set 599# CONFIG_SCSI_MAC53C94 is not set
595# CONFIG_SCSI_SRP is not set 600# CONFIG_SCSI_SRP is not set
601# CONFIG_SCSI_DH is not set
596CONFIG_ATA=y 602CONFIG_ATA=y
597# CONFIG_ATA_NONSTANDARD is not set 603# CONFIG_ATA_NONSTANDARD is not set
598CONFIG_SATA_PMP=y 604CONFIG_SATA_PMP=y
@@ -669,7 +675,6 @@ CONFIG_PATA_ALI=y
669# CONFIG_I2O is not set 675# CONFIG_I2O is not set
670# CONFIG_MACINTOSH_DRIVERS is not set 676# CONFIG_MACINTOSH_DRIVERS is not set
671CONFIG_NETDEVICES=y 677CONFIG_NETDEVICES=y
672# CONFIG_NETDEVICES_MULTIQUEUE is not set
673CONFIG_DUMMY=y 678CONFIG_DUMMY=y
674# CONFIG_BONDING is not set 679# CONFIG_BONDING is not set
675# CONFIG_MACVLAN is not set 680# CONFIG_MACVLAN is not set
@@ -756,12 +761,14 @@ CONFIG_SERIO_SERPORT=y
756# CONFIG_SERIO_PCIPS2 is not set 761# CONFIG_SERIO_PCIPS2 is not set
757CONFIG_SERIO_LIBPS2=y 762CONFIG_SERIO_LIBPS2=y
758# CONFIG_SERIO_RAW is not set 763# CONFIG_SERIO_RAW is not set
764# CONFIG_SERIO_XILINX_XPS_PS2 is not set
759# CONFIG_GAMEPORT is not set 765# CONFIG_GAMEPORT is not set
760 766
761# 767#
762# Character devices 768# Character devices
763# 769#
764CONFIG_VT=y 770CONFIG_VT=y
771CONFIG_CONSOLE_TRANSLATIONS=y
765CONFIG_VT_CONSOLE=y 772CONFIG_VT_CONSOLE=y
766CONFIG_HW_CONSOLE=y 773CONFIG_HW_CONSOLE=y
767# CONFIG_VT_HW_CONSOLE_BINDING is not set 774# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -807,44 +814,69 @@ CONFIG_DEVPORT=y
807CONFIG_I2C=y 814CONFIG_I2C=y
808CONFIG_I2C_BOARDINFO=y 815CONFIG_I2C_BOARDINFO=y
809# CONFIG_I2C_CHARDEV is not set 816# CONFIG_I2C_CHARDEV is not set
817CONFIG_I2C_HELPER_AUTO=y
810 818
811# 819#
812# I2C Hardware Bus support 820# I2C Hardware Bus support
813# 821#
822
823#
824# PC SMBus host controller drivers
825#
814# CONFIG_I2C_ALI1535 is not set 826# CONFIG_I2C_ALI1535 is not set
815# CONFIG_I2C_ALI1563 is not set 827# CONFIG_I2C_ALI1563 is not set
816# CONFIG_I2C_ALI15X3 is not set 828# CONFIG_I2C_ALI15X3 is not set
817# CONFIG_I2C_AMD756 is not set 829# CONFIG_I2C_AMD756 is not set
818# CONFIG_I2C_AMD8111 is not set 830# CONFIG_I2C_AMD8111 is not set
819# CONFIG_I2C_HYDRA is not set
820# CONFIG_I2C_I801 is not set 831# CONFIG_I2C_I801 is not set
821# CONFIG_I2C_I810 is not set 832# CONFIG_I2C_ISCH is not set
822# CONFIG_I2C_PIIX4 is not set 833# CONFIG_I2C_PIIX4 is not set
823CONFIG_I2C_POWERMAC=y
824CONFIG_I2C_MPC=y
825# CONFIG_I2C_NFORCE2 is not set 834# CONFIG_I2C_NFORCE2 is not set
826# CONFIG_I2C_OCORES is not set
827# CONFIG_I2C_PARPORT_LIGHT is not set
828# CONFIG_I2C_PROSAVAGE is not set
829# CONFIG_I2C_SAVAGE4 is not set
830# CONFIG_I2C_SIMTEC is not set
831# CONFIG_I2C_SIS5595 is not set 835# CONFIG_I2C_SIS5595 is not set
832# CONFIG_I2C_SIS630 is not set 836# CONFIG_I2C_SIS630 is not set
833# CONFIG_I2C_SIS96X is not set 837# CONFIG_I2C_SIS96X is not set
834# CONFIG_I2C_TAOS_EVM is not set
835# CONFIG_I2C_STUB is not set
836# CONFIG_I2C_VIA is not set 838# CONFIG_I2C_VIA is not set
837# CONFIG_I2C_VIAPRO is not set 839# CONFIG_I2C_VIAPRO is not set
840
841#
842# Mac SMBus host controller drivers
843#
844# CONFIG_I2C_HYDRA is not set
845CONFIG_I2C_POWERMAC=y
846
847#
848# I2C system bus drivers (mostly embedded / system-on-chip)
849#
850CONFIG_I2C_MPC=y
851# CONFIG_I2C_OCORES is not set
852# CONFIG_I2C_SIMTEC is not set
853
854#
855# External I2C/SMBus adapter drivers
856#
857# CONFIG_I2C_PARPORT_LIGHT is not set
858# CONFIG_I2C_TAOS_EVM is not set
859
860#
861# Graphics adapter I2C/DDC channel drivers
862#
838# CONFIG_I2C_VOODOO3 is not set 863# CONFIG_I2C_VOODOO3 is not set
864
865#
866# Other I2C/SMBus bus drivers
867#
839# CONFIG_I2C_PCA_PLATFORM is not set 868# CONFIG_I2C_PCA_PLATFORM is not set
869# CONFIG_I2C_STUB is not set
840 870
841# 871#
842# Miscellaneous I2C Chip support 872# Miscellaneous I2C Chip support
843# 873#
844# CONFIG_DS1682 is not set 874# CONFIG_DS1682 is not set
875# CONFIG_AT24 is not set
845# CONFIG_SENSORS_EEPROM is not set 876# CONFIG_SENSORS_EEPROM is not set
846# CONFIG_SENSORS_PCF8574 is not set 877# CONFIG_SENSORS_PCF8574 is not set
847# CONFIG_PCF8575 is not set 878# CONFIG_PCF8575 is not set
879# CONFIG_SENSORS_PCA9539 is not set
848# CONFIG_SENSORS_PCF8591 is not set 880# CONFIG_SENSORS_PCF8591 is not set
849# CONFIG_SENSORS_MAX6875 is not set 881# CONFIG_SENSORS_MAX6875 is not set
850# CONFIG_SENSORS_TSL2550 is not set 882# CONFIG_SENSORS_TSL2550 is not set
@@ -853,6 +885,8 @@ CONFIG_I2C_MPC=y
853# CONFIG_I2C_DEBUG_BUS is not set 885# CONFIG_I2C_DEBUG_BUS is not set
854# CONFIG_I2C_DEBUG_CHIP is not set 886# CONFIG_I2C_DEBUG_CHIP is not set
855# CONFIG_SPI is not set 887# CONFIG_SPI is not set
888CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
889# CONFIG_GPIOLIB is not set
856# CONFIG_W1 is not set 890# CONFIG_W1 is not set
857# CONFIG_POWER_SUPPLY is not set 891# CONFIG_POWER_SUPPLY is not set
858# CONFIG_HWMON is not set 892# CONFIG_HWMON is not set
@@ -869,8 +903,10 @@ CONFIG_SSB_POSSIBLE=y
869# 903#
870# Multifunction device drivers 904# Multifunction device drivers
871# 905#
906# CONFIG_MFD_CORE is not set
872# CONFIG_MFD_SM501 is not set 907# CONFIG_MFD_SM501 is not set
873# CONFIG_HTC_PASIC3 is not set 908# CONFIG_HTC_PASIC3 is not set
909# CONFIG_MFD_TMIO is not set
874 910
875# 911#
876# Multimedia devices 912# Multimedia devices
@@ -945,6 +981,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
945# CONFIG_FB_TRIDENT is not set 981# CONFIG_FB_TRIDENT is not set
946# CONFIG_FB_ARK is not set 982# CONFIG_FB_ARK is not set
947# CONFIG_FB_PM3 is not set 983# CONFIG_FB_PM3 is not set
984# CONFIG_FB_CARMINE is not set
948CONFIG_FB_FSL_DIU=y 985CONFIG_FB_FSL_DIU=y
949# CONFIG_FB_IBM_GXT4500 is not set 986# CONFIG_FB_IBM_GXT4500 is not set
950# CONFIG_FB_VIRTUAL is not set 987# CONFIG_FB_VIRTUAL is not set
@@ -963,15 +1000,7 @@ CONFIG_VGA_CONSOLE=y
963CONFIG_DUMMY_CONSOLE=y 1000CONFIG_DUMMY_CONSOLE=y
964# CONFIG_FRAMEBUFFER_CONSOLE is not set 1001# CONFIG_FRAMEBUFFER_CONSOLE is not set
965# CONFIG_LOGO is not set 1002# CONFIG_LOGO is not set
966
967#
968# Sound
969#
970CONFIG_SOUND=y 1003CONFIG_SOUND=y
971
972#
973# Advanced Linux Sound Architecture
974#
975CONFIG_SND=y 1004CONFIG_SND=y
976CONFIG_SND_TIMER=y 1005CONFIG_SND_TIMER=y
977CONFIG_SND_PCM=y 1006CONFIG_SND_PCM=y
@@ -985,18 +1014,12 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
985CONFIG_SND_VERBOSE_PROCFS=y 1014CONFIG_SND_VERBOSE_PROCFS=y
986# CONFIG_SND_VERBOSE_PRINTK is not set 1015# CONFIG_SND_VERBOSE_PRINTK is not set
987# CONFIG_SND_DEBUG is not set 1016# CONFIG_SND_DEBUG is not set
988 1017CONFIG_SND_DRIVERS=y
989#
990# Generic devices
991#
992# CONFIG_SND_DUMMY is not set 1018# CONFIG_SND_DUMMY is not set
993# CONFIG_SND_MTPAV is not set 1019# CONFIG_SND_MTPAV is not set
994# CONFIG_SND_SERIAL_U16550 is not set 1020# CONFIG_SND_SERIAL_U16550 is not set
995# CONFIG_SND_MPU401 is not set 1021# CONFIG_SND_MPU401 is not set
996 1022CONFIG_SND_PCI=y
997#
998# PCI devices
999#
1000# CONFIG_SND_AD1889 is not set 1023# CONFIG_SND_AD1889 is not set
1001# CONFIG_SND_ALS300 is not set 1024# CONFIG_SND_ALS300 is not set
1002# CONFIG_SND_ALS4000 is not set 1025# CONFIG_SND_ALS4000 is not set
@@ -1058,42 +1081,14 @@ CONFIG_SND_VERBOSE_PROCFS=y
1058# CONFIG_SND_VIRTUOSO is not set 1081# CONFIG_SND_VIRTUOSO is not set
1059# CONFIG_SND_VX222 is not set 1082# CONFIG_SND_VX222 is not set
1060# CONFIG_SND_YMFPCI is not set 1083# CONFIG_SND_YMFPCI is not set
1061 1084CONFIG_SND_PPC=y
1062#
1063# ALSA PowerMac devices
1064#
1065# CONFIG_SND_POWERMAC is not set 1085# CONFIG_SND_POWERMAC is not set
1066
1067#
1068# ALSA PowerPC devices
1069#
1070
1071#
1072# Apple Onboard Audio driver
1073#
1074# CONFIG_SND_AOA is not set 1086# CONFIG_SND_AOA is not set
1075# CONFIG_SND_AOA_SOUNDBUS is not set
1076
1077#
1078# System on Chip audio support
1079#
1080CONFIG_SND_SOC=y 1087CONFIG_SND_SOC=y
1081
1082#
1083# ALSA SoC audio for Freescale SOCs
1084#
1085CONFIG_SND_SOC_MPC8610=y 1088CONFIG_SND_SOC_MPC8610=y
1086CONFIG_SND_SOC_MPC8610_HPCD=y 1089CONFIG_SND_SOC_MPC8610_HPCD=y
1087
1088#
1089# SoC Audio for the Texas Instruments OMAP
1090#
1091CONFIG_SND_SOC_CS4270=y 1090CONFIG_SND_SOC_CS4270=y
1092CONFIG_SND_SOC_CS4270_VD33_ERRATA=y 1091CONFIG_SND_SOC_CS4270_VD33_ERRATA=y
1093
1094#
1095# Open Sound System
1096#
1097# CONFIG_SOUND_PRIME is not set 1092# CONFIG_SOUND_PRIME is not set
1098CONFIG_HID_SUPPORT=y 1093CONFIG_HID_SUPPORT=y
1099CONFIG_HID=y 1094CONFIG_HID=y
@@ -1108,6 +1103,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1108# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1103# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1109 1104
1110# 1105#
1106# Enable Host or Gadget support to see Inventra options
1107#
1108
1109#
1111# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1110# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1112# 1111#
1113# CONFIG_USB_GADGET is not set 1112# CONFIG_USB_GADGET is not set
@@ -1235,6 +1234,7 @@ CONFIG_TMPFS=y
1235# CONFIG_CRAMFS is not set 1234# CONFIG_CRAMFS is not set
1236# CONFIG_VXFS_FS is not set 1235# CONFIG_VXFS_FS is not set
1237# CONFIG_MINIX_FS is not set 1236# CONFIG_MINIX_FS is not set
1237# CONFIG_OMFS_FS is not set
1238# CONFIG_HPFS_FS is not set 1238# CONFIG_HPFS_FS is not set
1239# CONFIG_QNX4FS_FS is not set 1239# CONFIG_QNX4FS_FS is not set
1240# CONFIG_ROMFS_FS is not set 1240# CONFIG_ROMFS_FS is not set
@@ -1245,16 +1245,15 @@ CONFIG_NFS_FS=y
1245CONFIG_NFS_V3=y 1245CONFIG_NFS_V3=y
1246# CONFIG_NFS_V3_ACL is not set 1246# CONFIG_NFS_V3_ACL is not set
1247# CONFIG_NFS_V4 is not set 1247# CONFIG_NFS_V4 is not set
1248CONFIG_ROOT_NFS=y
1248CONFIG_NFSD=y 1249CONFIG_NFSD=y
1249# CONFIG_NFSD_V3 is not set 1250# CONFIG_NFSD_V3 is not set
1250# CONFIG_NFSD_V4 is not set 1251# CONFIG_NFSD_V4 is not set
1251CONFIG_ROOT_NFS=y
1252CONFIG_LOCKD=y 1252CONFIG_LOCKD=y
1253CONFIG_LOCKD_V4=y 1253CONFIG_LOCKD_V4=y
1254CONFIG_EXPORTFS=y 1254CONFIG_EXPORTFS=y
1255CONFIG_NFS_COMMON=y 1255CONFIG_NFS_COMMON=y
1256CONFIG_SUNRPC=y 1256CONFIG_SUNRPC=y
1257# CONFIG_SUNRPC_BIND34 is not set
1258# CONFIG_RPCSEC_GSS_KRB5 is not set 1257# CONFIG_RPCSEC_GSS_KRB5 is not set
1259# CONFIG_RPCSEC_GSS_SPKM3 is not set 1258# CONFIG_RPCSEC_GSS_SPKM3 is not set
1260# CONFIG_SMB_FS is not set 1259# CONFIG_SMB_FS is not set
@@ -1334,6 +1333,7 @@ CONFIG_BITREVERSE=y
1334# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1333# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1335# CONFIG_CRC_CCITT is not set 1334# CONFIG_CRC_CCITT is not set
1336# CONFIG_CRC16 is not set 1335# CONFIG_CRC16 is not set
1336CONFIG_CRC_T10DIF=y
1337# CONFIG_CRC_ITU_T is not set 1337# CONFIG_CRC_ITU_T is not set
1338CONFIG_CRC32=y 1338CONFIG_CRC32=y
1339# CONFIG_CRC7 is not set 1339# CONFIG_CRC7 is not set
@@ -1358,6 +1358,8 @@ CONFIG_FRAME_WARN=1024
1358CONFIG_DEBUG_KERNEL=y 1358CONFIG_DEBUG_KERNEL=y
1359CONFIG_DEBUG_SHIRQ=y 1359CONFIG_DEBUG_SHIRQ=y
1360CONFIG_DETECT_SOFTLOCKUP=y 1360CONFIG_DETECT_SOFTLOCKUP=y
1361# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1362CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1361CONFIG_SCHED_DEBUG=y 1363CONFIG_SCHED_DEBUG=y
1362# CONFIG_SCHEDSTATS is not set 1364# CONFIG_SCHEDSTATS is not set
1363# CONFIG_TIMER_STATS is not set 1365# CONFIG_TIMER_STATS is not set
@@ -1376,19 +1378,29 @@ CONFIG_DEBUG_BUGVERBOSE=y
1376CONFIG_DEBUG_INFO=y 1378CONFIG_DEBUG_INFO=y
1377# CONFIG_DEBUG_VM is not set 1379# CONFIG_DEBUG_VM is not set
1378# CONFIG_DEBUG_WRITECOUNT is not set 1380# CONFIG_DEBUG_WRITECOUNT is not set
1381# CONFIG_DEBUG_MEMORY_INIT is not set
1379# CONFIG_DEBUG_LIST is not set 1382# CONFIG_DEBUG_LIST is not set
1380# CONFIG_DEBUG_SG is not set 1383# CONFIG_DEBUG_SG is not set
1381# CONFIG_BOOT_PRINTK_DELAY is not set 1384# CONFIG_BOOT_PRINTK_DELAY is not set
1382# CONFIG_RCU_TORTURE_TEST is not set 1385# CONFIG_RCU_TORTURE_TEST is not set
1383# CONFIG_BACKTRACE_SELF_TEST is not set 1386# CONFIG_BACKTRACE_SELF_TEST is not set
1384# CONFIG_FAULT_INJECTION is not set 1387# CONFIG_FAULT_INJECTION is not set
1388# CONFIG_LATENCYTOP is not set
1389CONFIG_SYSCTL_SYSCALL_CHECK=y
1390CONFIG_HAVE_FTRACE=y
1391CONFIG_HAVE_DYNAMIC_FTRACE=y
1392# CONFIG_FTRACE is not set
1393# CONFIG_SCHED_TRACER is not set
1394# CONFIG_CONTEXT_SWITCH_TRACER is not set
1385# CONFIG_SAMPLES is not set 1395# CONFIG_SAMPLES is not set
1396CONFIG_HAVE_ARCH_KGDB=y
1397# CONFIG_KGDB is not set
1386# CONFIG_DEBUG_STACKOVERFLOW is not set 1398# CONFIG_DEBUG_STACKOVERFLOW is not set
1387# CONFIG_DEBUG_STACK_USAGE is not set 1399# CONFIG_DEBUG_STACK_USAGE is not set
1388# CONFIG_DEBUG_PAGEALLOC is not set 1400# CONFIG_DEBUG_PAGEALLOC is not set
1389# CONFIG_DEBUGGER is not set
1390# CONFIG_CODE_PATCHING_SELFTEST is not set 1401# CONFIG_CODE_PATCHING_SELFTEST is not set
1391# CONFIG_FTR_FIXUP_SELFTEST is not set 1402# CONFIG_FTR_FIXUP_SELFTEST is not set
1403# CONFIG_XMON is not set
1392# CONFIG_IRQSTACKS is not set 1404# CONFIG_IRQSTACKS is not set
1393# CONFIG_BDI_SWITCH is not set 1405# CONFIG_BDI_SWITCH is not set
1394# CONFIG_BOOTX_TEXT is not set 1406# CONFIG_BOOTX_TEXT is not set
@@ -1443,6 +1455,10 @@ CONFIG_CRYPTO=y
1443# CONFIG_CRYPTO_MD4 is not set 1455# CONFIG_CRYPTO_MD4 is not set
1444# CONFIG_CRYPTO_MD5 is not set 1456# CONFIG_CRYPTO_MD5 is not set
1445# CONFIG_CRYPTO_MICHAEL_MIC is not set 1457# CONFIG_CRYPTO_MICHAEL_MIC is not set
1458# CONFIG_CRYPTO_RMD128 is not set
1459# CONFIG_CRYPTO_RMD160 is not set
1460# CONFIG_CRYPTO_RMD256 is not set
1461# CONFIG_CRYPTO_RMD320 is not set
1446# CONFIG_CRYPTO_SHA1 is not set 1462# CONFIG_CRYPTO_SHA1 is not set
1447# CONFIG_CRYPTO_SHA256 is not set 1463# CONFIG_CRYPTO_SHA256 is not set
1448# CONFIG_CRYPTO_SHA512 is not set 1464# CONFIG_CRYPTO_SHA512 is not set
@@ -1475,6 +1491,7 @@ CONFIG_CRYPTO=y
1475# CONFIG_CRYPTO_LZO is not set 1491# CONFIG_CRYPTO_LZO is not set
1476CONFIG_CRYPTO_HW=y 1492CONFIG_CRYPTO_HW=y
1477# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1493# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1494# CONFIG_CRYPTO_DEV_TALITOS is not set
1478# CONFIG_PPC_CLOCK is not set 1495# CONFIG_PPC_CLOCK is not set
1479CONFIG_PPC_LIB_RHEAP=y 1496CONFIG_PPC_LIB_RHEAP=y
1480# CONFIG_VIRTUALIZATION is not set 1497# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc8641_hpcn_defconfig b/arch/powerpc/configs/mpc8641_hpcn_defconfig
index 867b8c0215f..ea09be31b6e 100644
--- a/arch/powerpc/configs/mpc8641_hpcn_defconfig
+++ b/arch/powerpc/configs/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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:15 2008 4# Thu Aug 21 00:52:11 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -33,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -92,7 +93,6 @@ CONFIG_INITRAMFS_SOURCE=""
92CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
93CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
97CONFIG_KALLSYMS_ALL=y 97CONFIG_KALLSYMS_ALL=y
98CONFIG_KALLSYMS_EXTRA_PASS=y 98CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -100,6 +100,7 @@ CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 100CONFIG_PRINTK=y
101CONFIG_BUG=y 101CONFIG_BUG=y
102CONFIG_ELF_CORE=y 102CONFIG_ELF_CORE=y
103CONFIG_PCSPKR_PLATFORM=y
103CONFIG_COMPAT_BRK=y 104CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 105CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 106CONFIG_FUTEX=y
@@ -118,10 +119,16 @@ CONFIG_SLUB=y
118# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set 127# CONFIG_HAVE_DMA_ATTRS is not set
128CONFIG_USE_GENERIC_SMP_HELPERS=y
129# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y 130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set 134# CONFIG_TINY_SHMEM is not set
@@ -139,6 +146,7 @@ CONFIG_LBD=y
139# CONFIG_BLK_DEV_IO_TRACE is not set 146# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set 147# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set 148# CONFIG_BLK_DEV_BSG is not set
149# CONFIG_BLK_DEV_INTEGRITY is not set
142 150
143# 151#
144# IO Schedulers 152# IO Schedulers
@@ -157,30 +165,40 @@ CONFIG_CLASSIC_RCU=y
157# 165#
158# Platform support 166# Platform support
159# 167#
160# CONFIG_PPC_MULTIPLATFORM is not set 168CONFIG_PPC_MULTIPLATFORM=y
161# CONFIG_PPC_82xx is not set 169CONFIG_CLASSIC32=y
162# CONFIG_PPC_83xx is not set 170CONFIG_PPC_CHRP=y
163CONFIG_PPC_86xx=y 171# CONFIG_MPC5121_ADS is not set
164# CONFIG_PPC_MPC512x is not set 172# CONFIG_MPC5121_GENERIC is not set
165# CONFIG_PPC_MPC5121 is not set 173# CONFIG_PPC_MPC52xx is not set
174CONFIG_PPC_PMAC=y
166# CONFIG_PPC_CELL is not set 175# CONFIG_PPC_CELL is not set
167# CONFIG_PPC_CELL_NATIVE is not set 176# CONFIG_PPC_CELL_NATIVE is not set
177# CONFIG_PPC_82xx is not set
168# CONFIG_PQ2ADS is not set 178# CONFIG_PQ2ADS is not set
179# CONFIG_PPC_83xx is not set
180CONFIG_PPC_86xx=y
169CONFIG_MPC8641_HPCN=y 181CONFIG_MPC8641_HPCN=y
170# CONFIG_SBC8641D is not set 182# CONFIG_SBC8641D is not set
171# CONFIG_MPC8610_HPCD is not set 183# CONFIG_MPC8610_HPCD is not set
172CONFIG_MPC8641=y 184CONFIG_MPC8641=y
185CONFIG_PPC_NATIVE=y
186# CONFIG_UDBG_RTAS_CONSOLE is not set
173# CONFIG_IPIC is not set 187# CONFIG_IPIC is not set
174CONFIG_MPIC=y 188CONFIG_MPIC=y
175# CONFIG_MPIC_WEIRD is not set 189# CONFIG_MPIC_WEIRD is not set
176CONFIG_PPC_I8259=y 190CONFIG_PPC_I8259=y
177# CONFIG_PPC_RTAS is not set 191CONFIG_PPC_RTAS=y
192# CONFIG_RTAS_ERROR_LOGGING is not set
193CONFIG_RTAS_PROC=y
178# CONFIG_MMIO_NVRAM is not set 194# CONFIG_MMIO_NVRAM is not set
179# CONFIG_PPC_MPC106 is not set 195CONFIG_PPC_MPC106=y
180# CONFIG_PPC_970_NAP is not set 196# CONFIG_PPC_970_NAP is not set
181# CONFIG_PPC_INDIRECT_IO is not set 197# CONFIG_PPC_INDIRECT_IO is not set
182# CONFIG_GENERIC_IOMAP is not set 198# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 199# CONFIG_CPU_FREQ is not set
200# CONFIG_PPC601_SYNC_FIX is not set
201# CONFIG_TAU is not set
184CONFIG_FSL_ULI1575=y 202CONFIG_FSL_ULI1575=y
185 203
186# 204#
@@ -196,16 +214,18 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
196# CONFIG_HZ_300 is not set 214# CONFIG_HZ_300 is not set
197CONFIG_HZ_1000=y 215CONFIG_HZ_1000=y
198CONFIG_HZ=1000 216CONFIG_HZ=1000
199# CONFIG_SCHED_HRTICK is not set 217CONFIG_SCHED_HRTICK=y
200CONFIG_PREEMPT_NONE=y 218CONFIG_PREEMPT_NONE=y
201# CONFIG_PREEMPT_VOLUNTARY is not set 219# CONFIG_PREEMPT_VOLUNTARY is not set
202# CONFIG_PREEMPT is not set 220# CONFIG_PREEMPT is not set
203CONFIG_BINFMT_ELF=y 221CONFIG_BINFMT_ELF=y
204CONFIG_BINFMT_MISC=m 222CONFIG_BINFMT_MISC=m
205# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
224# CONFIG_HOTPLUG_CPU is not set
206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 225CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
207CONFIG_ARCH_HAS_WALK_MEMORY=y 226CONFIG_ARCH_HAS_WALK_MEMORY=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set
209# CONFIG_IRQ_ALL_CPUS is not set 229# CONFIG_IRQ_ALL_CPUS is not set
210CONFIG_ARCH_FLATMEM_ENABLE=y 230CONFIG_ARCH_FLATMEM_ENABLE=y
211CONFIG_ARCH_POPULATES_NODE_MAP=y 231CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -219,6 +239,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 239# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
221CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
242CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set 243# CONFIG_RESOURCES_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
224CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
@@ -226,6 +247,7 @@ CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
227CONFIG_PROC_DEVICETREE=y 248CONFIG_PROC_DEVICETREE=y
228# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
250CONFIG_EXTRA_TARGETS=""
229# CONFIG_PM is not set 251# CONFIG_PM is not set
230CONFIG_SECCOMP=y 252CONFIG_SECCOMP=y
231CONFIG_ISA_DMA_API=y 253CONFIG_ISA_DMA_API=y
@@ -233,11 +255,13 @@ CONFIG_ISA_DMA_API=y
233# 255#
234# Bus options 256# Bus options
235# 257#
258# CONFIG_ISA is not set
236CONFIG_ZONE_DMA=y 259CONFIG_ZONE_DMA=y
237CONFIG_GENERIC_ISA_DMA=y 260CONFIG_GENERIC_ISA_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 261CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 262CONFIG_FSL_SOC=y
240CONFIG_FSL_PCI=y 263CONFIG_FSL_PCI=y
264CONFIG_PPC_PCI_CHOICE=y
241CONFIG_PCI=y 265CONFIG_PCI=y
242CONFIG_PCI_DOMAINS=y 266CONFIG_PCI_DOMAINS=y
243CONFIG_PCI_SYSCALL=y 267CONFIG_PCI_SYSCALL=y
@@ -264,10 +288,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
264CONFIG_KERNEL_START=0xc0000000 288CONFIG_KERNEL_START=0xc0000000
265CONFIG_PHYSICAL_START=0x00000000 289CONFIG_PHYSICAL_START=0x00000000
266CONFIG_TASK_SIZE=0xc0000000 290CONFIG_TASK_SIZE=0xc0000000
267
268#
269# Networking
270#
271CONFIG_NET=y 291CONFIG_NET=y
272 292
273# 293#
@@ -393,6 +413,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
393CONFIG_STANDALONE=y 413CONFIG_STANDALONE=y
394CONFIG_PREVENT_FIRMWARE_BUILD=y 414CONFIG_PREVENT_FIRMWARE_BUILD=y
395CONFIG_FW_LOADER=y 415CONFIG_FW_LOADER=y
416CONFIG_FIRMWARE_IN_KERNEL=y
417CONFIG_EXTRA_FIRMWARE=""
396# CONFIG_DEBUG_DRIVER is not set 418# CONFIG_DEBUG_DRIVER is not set
397# CONFIG_DEBUG_DEVRES is not set 419# CONFIG_DEBUG_DEVRES is not set
398# CONFIG_SYS_HYPERVISOR is not set 420# CONFIG_SYS_HYPERVISOR is not set
@@ -403,6 +425,7 @@ CONFIG_OF_I2C=y
403# CONFIG_PARPORT is not set 425# CONFIG_PARPORT is not set
404CONFIG_BLK_DEV=y 426CONFIG_BLK_DEV=y
405# CONFIG_BLK_DEV_FD is not set 427# CONFIG_BLK_DEV_FD is not set
428# CONFIG_MAC_FLOPPY is not set
406# CONFIG_BLK_CPQ_DA is not set 429# CONFIG_BLK_CPQ_DA is not set
407# CONFIG_BLK_CPQ_CISS_DA is not set 430# CONFIG_BLK_CPQ_CISS_DA is not set
408# CONFIG_BLK_DEV_DAC960 is not set 431# CONFIG_BLK_DEV_DAC960 is not set
@@ -419,12 +442,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
419# CONFIG_BLK_DEV_XIP is not set 442# CONFIG_BLK_DEV_XIP is not set
420# CONFIG_CDROM_PKTCDVD is not set 443# CONFIG_CDROM_PKTCDVD is not set
421# CONFIG_ATA_OVER_ETH is not set 444# CONFIG_ATA_OVER_ETH is not set
445# CONFIG_BLK_DEV_HD is not set
422CONFIG_MISC_DEVICES=y 446CONFIG_MISC_DEVICES=y
423# CONFIG_PHANTOM is not set 447# CONFIG_PHANTOM is not set
424# CONFIG_EEPROM_93CX6 is not set 448# CONFIG_EEPROM_93CX6 is not set
425# CONFIG_SGI_IOC4 is not set 449# CONFIG_SGI_IOC4 is not set
426# CONFIG_TIFM_CORE is not set 450# CONFIG_TIFM_CORE is not set
427# CONFIG_ENCLOSURE_SERVICES is not set 451# CONFIG_ENCLOSURE_SERVICES is not set
452# CONFIG_HP_ILO is not set
428CONFIG_HAVE_IDE=y 453CONFIG_HAVE_IDE=y
429# CONFIG_IDE is not set 454# CONFIG_IDE is not set
430 455
@@ -503,7 +528,10 @@ CONFIG_SCSI_LOWLEVEL=y
503# CONFIG_SCSI_DC390T is not set 528# CONFIG_SCSI_DC390T is not set
504# CONFIG_SCSI_NSP32 is not set 529# CONFIG_SCSI_NSP32 is not set
505# CONFIG_SCSI_DEBUG is not set 530# CONFIG_SCSI_DEBUG is not set
531# CONFIG_SCSI_MESH is not set
532# CONFIG_SCSI_MAC53C94 is not set
506# CONFIG_SCSI_SRP is not set 533# CONFIG_SCSI_SRP is not set
534# CONFIG_SCSI_DH is not set
507CONFIG_ATA=y 535CONFIG_ATA=y
508# CONFIG_ATA_NONSTANDARD is not set 536# CONFIG_ATA_NONSTANDARD is not set
509CONFIG_SATA_PMP=y 537CONFIG_SATA_PMP=y
@@ -571,12 +599,15 @@ CONFIG_PATA_ALI=y
571# 599#
572# IEEE 1394 (FireWire) support 600# IEEE 1394 (FireWire) support
573# 601#
602
603#
604# Enable only one of the two stacks, unless you know what you are doing
605#
574# CONFIG_FIREWIRE is not set 606# CONFIG_FIREWIRE is not set
575# CONFIG_IEEE1394 is not set 607# CONFIG_IEEE1394 is not set
576# CONFIG_I2O is not set 608# CONFIG_I2O is not set
577# CONFIG_MACINTOSH_DRIVERS is not set 609# CONFIG_MACINTOSH_DRIVERS is not set
578CONFIG_NETDEVICES=y 610CONFIG_NETDEVICES=y
579# CONFIG_NETDEVICES_MULTIQUEUE is not set
580CONFIG_DUMMY=y 611CONFIG_DUMMY=y
581# CONFIG_BONDING is not set 612# CONFIG_BONDING is not set
582# CONFIG_MACVLAN is not set 613# CONFIG_MACVLAN is not set
@@ -603,6 +634,8 @@ CONFIG_VITESSE_PHY=y
603# CONFIG_MDIO_BITBANG is not set 634# CONFIG_MDIO_BITBANG is not set
604CONFIG_NET_ETHERNET=y 635CONFIG_NET_ETHERNET=y
605CONFIG_MII=y 636CONFIG_MII=y
637# CONFIG_MACE is not set
638# CONFIG_BMAC is not set
606# CONFIG_HAPPYMEAL is not set 639# CONFIG_HAPPYMEAL is not set
607# CONFIG_SUNGEM is not set 640# CONFIG_SUNGEM is not set
608# CONFIG_CASSINI is not set 641# CONFIG_CASSINI is not set
@@ -620,7 +653,6 @@ CONFIG_NETDEV_1000=y
620# CONFIG_DL2K is not set 653# CONFIG_DL2K is not set
621# CONFIG_E1000 is not set 654# CONFIG_E1000 is not set
622# CONFIG_E1000E is not set 655# CONFIG_E1000E is not set
623# CONFIG_E1000E_ENABLED is not set
624# CONFIG_IP1000 is not set 656# CONFIG_IP1000 is not set
625# CONFIG_IGB is not set 657# CONFIG_IGB is not set
626# CONFIG_NS83820 is not set 658# CONFIG_NS83820 is not set
@@ -634,9 +666,10 @@ CONFIG_NETDEV_1000=y
634# CONFIG_TIGON3 is not set 666# CONFIG_TIGON3 is not set
635# CONFIG_BNX2 is not set 667# CONFIG_BNX2 is not set
636CONFIG_GIANFAR=y 668CONFIG_GIANFAR=y
637CONFIG_GFAR_NAPI=y 669# CONFIG_MV643XX_ETH is not set
638# CONFIG_QLA3XXX is not set 670# CONFIG_QLA3XXX is not set
639# CONFIG_ATL1 is not set 671# CONFIG_ATL1 is not set
672# CONFIG_ATL1E is not set
640CONFIG_NETDEV_10000=y 673CONFIG_NETDEV_10000=y
641# CONFIG_CHELSIO_T1 is not set 674# CONFIG_CHELSIO_T1 is not set
642# CONFIG_CHELSIO_T3 is not set 675# CONFIG_CHELSIO_T3 is not set
@@ -713,12 +746,14 @@ CONFIG_SERIO_SERPORT=y
713# CONFIG_SERIO_PCIPS2 is not set 746# CONFIG_SERIO_PCIPS2 is not set
714CONFIG_SERIO_LIBPS2=y 747CONFIG_SERIO_LIBPS2=y
715# CONFIG_SERIO_RAW is not set 748# CONFIG_SERIO_RAW is not set
749# CONFIG_SERIO_XILINX_XPS_PS2 is not set
716# CONFIG_GAMEPORT is not set 750# CONFIG_GAMEPORT is not set
717 751
718# 752#
719# Character devices 753# Character devices
720# 754#
721CONFIG_VT=y 755CONFIG_VT=y
756CONFIG_CONSOLE_TRANSLATIONS=y
722CONFIG_VT_CONSOLE=y 757CONFIG_VT_CONSOLE=y
723CONFIG_HW_CONSOLE=y 758CONFIG_HW_CONSOLE=y
724# CONFIG_VT_HW_CONSOLE_BINDING is not set 759# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -746,11 +781,14 @@ CONFIG_SERIAL_8250_RSA=y
746# CONFIG_SERIAL_UARTLITE is not set 781# CONFIG_SERIAL_UARTLITE is not set
747CONFIG_SERIAL_CORE=y 782CONFIG_SERIAL_CORE=y
748CONFIG_SERIAL_CORE_CONSOLE=y 783CONFIG_SERIAL_CORE_CONSOLE=y
784# CONFIG_SERIAL_PMACZILOG is not set
749# CONFIG_SERIAL_JSM is not set 785# CONFIG_SERIAL_JSM is not set
750# CONFIG_SERIAL_OF_PLATFORM is not set 786# CONFIG_SERIAL_OF_PLATFORM is not set
751CONFIG_UNIX98_PTYS=y 787CONFIG_UNIX98_PTYS=y
752CONFIG_LEGACY_PTYS=y 788CONFIG_LEGACY_PTYS=y
753CONFIG_LEGACY_PTY_COUNT=256 789CONFIG_LEGACY_PTY_COUNT=256
790# CONFIG_BRIQ_PANEL is not set
791# CONFIG_HVC_RTAS is not set
754# CONFIG_IPMI_HANDLER is not set 792# CONFIG_IPMI_HANDLER is not set
755# CONFIG_HW_RANDOM is not set 793# CONFIG_HW_RANDOM is not set
756CONFIG_NVRAM=y 794CONFIG_NVRAM=y
@@ -762,43 +800,70 @@ CONFIG_DEVPORT=y
762CONFIG_I2C=y 800CONFIG_I2C=y
763CONFIG_I2C_BOARDINFO=y 801CONFIG_I2C_BOARDINFO=y
764# CONFIG_I2C_CHARDEV is not set 802# CONFIG_I2C_CHARDEV is not set
803CONFIG_I2C_HELPER_AUTO=y
765 804
766# 805#
767# I2C Hardware Bus support 806# I2C Hardware Bus support
768# 807#
808
809#
810# PC SMBus host controller drivers
811#
769# CONFIG_I2C_ALI1535 is not set 812# CONFIG_I2C_ALI1535 is not set
770# CONFIG_I2C_ALI1563 is not set 813# CONFIG_I2C_ALI1563 is not set
771# CONFIG_I2C_ALI15X3 is not set 814# CONFIG_I2C_ALI15X3 is not set
772# CONFIG_I2C_AMD756 is not set 815# CONFIG_I2C_AMD756 is not set
773# CONFIG_I2C_AMD8111 is not set 816# CONFIG_I2C_AMD8111 is not set
774# CONFIG_I2C_I801 is not set 817# CONFIG_I2C_I801 is not set
775# CONFIG_I2C_I810 is not set 818# CONFIG_I2C_ISCH is not set
776# CONFIG_I2C_PIIX4 is not set 819# CONFIG_I2C_PIIX4 is not set
777CONFIG_I2C_MPC=y
778# CONFIG_I2C_NFORCE2 is not set 820# CONFIG_I2C_NFORCE2 is not set
779# CONFIG_I2C_OCORES is not set
780# CONFIG_I2C_PARPORT_LIGHT is not set
781# CONFIG_I2C_PROSAVAGE is not set
782# CONFIG_I2C_SAVAGE4 is not set
783# CONFIG_I2C_SIMTEC is not set
784# CONFIG_I2C_SIS5595 is not set 821# CONFIG_I2C_SIS5595 is not set
785# CONFIG_I2C_SIS630 is not set 822# CONFIG_I2C_SIS630 is not set
786# CONFIG_I2C_SIS96X is not set 823# CONFIG_I2C_SIS96X is not set
787# CONFIG_I2C_TAOS_EVM is not set
788# CONFIG_I2C_STUB is not set
789# CONFIG_I2C_TINY_USB is not set
790# CONFIG_I2C_VIA is not set 824# CONFIG_I2C_VIA is not set
791# CONFIG_I2C_VIAPRO is not set 825# CONFIG_I2C_VIAPRO is not set
826
827#
828# Mac SMBus host controller drivers
829#
830# CONFIG_I2C_HYDRA is not set
831CONFIG_I2C_POWERMAC=y
832
833#
834# I2C system bus drivers (mostly embedded / system-on-chip)
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#
792# CONFIG_I2C_VOODOO3 is not set 850# CONFIG_I2C_VOODOO3 is not set
851
852#
853# Other I2C/SMBus bus drivers
854#
793# CONFIG_I2C_PCA_PLATFORM is not set 855# CONFIG_I2C_PCA_PLATFORM is not set
856# CONFIG_I2C_STUB is not set
794 857
795# 858#
796# Miscellaneous I2C Chip support 859# Miscellaneous I2C Chip support
797# 860#
798# CONFIG_DS1682 is not set 861# CONFIG_DS1682 is not set
862# CONFIG_AT24 is not set
799CONFIG_SENSORS_EEPROM=y 863CONFIG_SENSORS_EEPROM=y
800# CONFIG_SENSORS_PCF8574 is not set 864# CONFIG_SENSORS_PCF8574 is not set
801# CONFIG_PCF8575 is not set 865# CONFIG_PCF8575 is not set
866# CONFIG_SENSORS_PCA9539 is not set
802# CONFIG_SENSORS_PCF8591 is not set 867# CONFIG_SENSORS_PCF8591 is not set
803# CONFIG_SENSORS_MAX6875 is not set 868# CONFIG_SENSORS_MAX6875 is not set
804# CONFIG_SENSORS_TSL2550 is not set 869# CONFIG_SENSORS_TSL2550 is not set
@@ -807,10 +872,13 @@ CONFIG_SENSORS_EEPROM=y
807# CONFIG_I2C_DEBUG_BUS is not set 872# CONFIG_I2C_DEBUG_BUS is not set
808# CONFIG_I2C_DEBUG_CHIP is not set 873# CONFIG_I2C_DEBUG_CHIP is not set
809# CONFIG_SPI is not set 874# CONFIG_SPI is not set
875CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
876# CONFIG_GPIOLIB is not set
810# CONFIG_W1 is not set 877# CONFIG_W1 is not set
811# CONFIG_POWER_SUPPLY is not set 878# CONFIG_POWER_SUPPLY is not set
812# CONFIG_HWMON is not set 879# CONFIG_HWMON is not set
813# CONFIG_THERMAL is not set 880# CONFIG_THERMAL is not set
881# CONFIG_THERMAL_HWMON is not set
814# CONFIG_WATCHDOG is not set 882# CONFIG_WATCHDOG is not set
815 883
816# 884#
@@ -822,8 +890,10 @@ CONFIG_SSB_POSSIBLE=y
822# 890#
823# Multifunction device drivers 891# Multifunction device drivers
824# 892#
893# CONFIG_MFD_CORE is not set
825# CONFIG_MFD_SM501 is not set 894# CONFIG_MFD_SM501 is not set
826# CONFIG_HTC_PASIC3 is not set 895# CONFIG_HTC_PASIC3 is not set
896# CONFIG_MFD_TMIO is not set
827 897
828# 898#
829# Multimedia devices 899# Multimedia devices
@@ -865,6 +935,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
865# CONFIG_DVB_TTUSB_BUDGET is not set 935# CONFIG_DVB_TTUSB_BUDGET is not set
866# CONFIG_DVB_TTUSB_DEC is not set 936# CONFIG_DVB_TTUSB_DEC is not set
867# CONFIG_DVB_CINERGYT2 is not set 937# CONFIG_DVB_CINERGYT2 is not set
938# CONFIG_DVB_SIANO_SMS1XXX is not set
868 939
869# 940#
870# Supported FlexCopII (B2C2) Adapters 941# Supported FlexCopII (B2C2) Adapters
@@ -911,6 +982,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
911# CONFIG_DVB_SP887X is not set 982# CONFIG_DVB_SP887X is not set
912# CONFIG_DVB_CX22700 is not set 983# CONFIG_DVB_CX22700 is not set
913# CONFIG_DVB_CX22702 is not set 984# CONFIG_DVB_CX22702 is not set
985# CONFIG_DVB_DRX397XD is not set
914# CONFIG_DVB_L64781 is not set 986# CONFIG_DVB_L64781 is not set
915# CONFIG_DVB_TDA1004X is not set 987# CONFIG_DVB_TDA1004X is not set
916# CONFIG_DVB_NXT6000 is not set 988# CONFIG_DVB_NXT6000 is not set
@@ -978,15 +1050,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
978CONFIG_VGA_CONSOLE=y 1050CONFIG_VGA_CONSOLE=y
979# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1051# CONFIG_VGACON_SOFT_SCROLLBACK is not set
980CONFIG_DUMMY_CONSOLE=y 1052CONFIG_DUMMY_CONSOLE=y
981
982#
983# Sound
984#
985CONFIG_SOUND=y 1053CONFIG_SOUND=y
986
987#
988# Advanced Linux Sound Architecture
989#
990CONFIG_SND=y 1054CONFIG_SND=y
991CONFIG_SND_TIMER=y 1055CONFIG_SND_TIMER=y
992CONFIG_SND_PCM=y 1056CONFIG_SND_PCM=y
@@ -1000,19 +1064,15 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
1000CONFIG_SND_VERBOSE_PROCFS=y 1064CONFIG_SND_VERBOSE_PROCFS=y
1001# CONFIG_SND_VERBOSE_PRINTK is not set 1065# CONFIG_SND_VERBOSE_PRINTK is not set
1002# CONFIG_SND_DEBUG is not set 1066# CONFIG_SND_DEBUG is not set
1003 1067CONFIG_SND_VMASTER=y
1004#
1005# Generic devices
1006#
1007CONFIG_SND_AC97_CODEC=y 1068CONFIG_SND_AC97_CODEC=y
1069CONFIG_SND_DRIVERS=y
1008# CONFIG_SND_DUMMY is not set 1070# CONFIG_SND_DUMMY is not set
1009# CONFIG_SND_MTPAV is not set 1071# CONFIG_SND_MTPAV is not set
1010# CONFIG_SND_SERIAL_U16550 is not set 1072# CONFIG_SND_SERIAL_U16550 is not set
1011# CONFIG_SND_MPU401 is not set 1073# CONFIG_SND_MPU401 is not set
1012 1074# CONFIG_SND_AC97_POWER_SAVE is not set
1013# 1075CONFIG_SND_PCI=y
1014# PCI devices
1015#
1016# CONFIG_SND_AD1889 is not set 1076# CONFIG_SND_AD1889 is not set
1017# CONFIG_SND_ALS300 is not set 1077# CONFIG_SND_ALS300 is not set
1018# CONFIG_SND_ALS4000 is not set 1078# CONFIG_SND_ALS4000 is not set
@@ -1074,39 +1134,14 @@ CONFIG_SND_INTEL8X0=y
1074# CONFIG_SND_VIRTUOSO is not set 1134# CONFIG_SND_VIRTUOSO is not set
1075# CONFIG_SND_VX222 is not set 1135# CONFIG_SND_VX222 is not set
1076# CONFIG_SND_YMFPCI is not set 1136# CONFIG_SND_YMFPCI is not set
1077# CONFIG_SND_AC97_POWER_SAVE is not set 1137CONFIG_SND_PPC=y
1078 1138# CONFIG_SND_POWERMAC is not set
1079# 1139# CONFIG_SND_AOA is not set
1080# ALSA PowerMac devices 1140CONFIG_SND_USB=y
1081#
1082
1083#
1084# ALSA PowerPC devices
1085#
1086
1087#
1088# USB devices
1089#
1090# CONFIG_SND_USB_AUDIO is not set 1141# CONFIG_SND_USB_AUDIO is not set
1091# CONFIG_SND_USB_USX2Y is not set 1142# CONFIG_SND_USB_USX2Y is not set
1092# CONFIG_SND_USB_CAIAQ is not set 1143# CONFIG_SND_USB_CAIAQ is not set
1093
1094#
1095# System on Chip audio support
1096#
1097# CONFIG_SND_SOC is not set 1144# CONFIG_SND_SOC is not set
1098
1099#
1100# ALSA SoC audio for Freescale SOCs
1101#
1102
1103#
1104# SoC Audio for the Texas Instruments OMAP
1105#
1106
1107#
1108# Open Sound System
1109#
1110# CONFIG_SOUND_PRIME is not set 1145# CONFIG_SOUND_PRIME is not set
1111CONFIG_AC97_BUS=y 1146CONFIG_AC97_BUS=y
1112CONFIG_HID_SUPPORT=y 1147CONFIG_HID_SUPPORT=y
@@ -1138,6 +1173,7 @@ CONFIG_USB_DEVICE_CLASS=y
1138# CONFIG_USB_OTG is not set 1173# CONFIG_USB_OTG is not set
1139# CONFIG_USB_OTG_WHITELIST is not set 1174# CONFIG_USB_OTG_WHITELIST is not set
1140# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1175# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1176CONFIG_USB_MON=y
1141 1177
1142# 1178#
1143# USB Host Controller Drivers 1179# USB Host Controller Drivers
@@ -1189,6 +1225,7 @@ CONFIG_USB_STORAGE=y
1189# CONFIG_USB_STORAGE_ALAUDA is not set 1225# CONFIG_USB_STORAGE_ALAUDA is not set
1190# CONFIG_USB_STORAGE_ONETOUCH is not set 1226# CONFIG_USB_STORAGE_ONETOUCH is not set
1191# CONFIG_USB_STORAGE_KARMA is not set 1227# CONFIG_USB_STORAGE_KARMA is not set
1228# CONFIG_USB_STORAGE_SIERRA is not set
1192# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1229# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1193# CONFIG_USB_LIBUSUAL is not set 1230# CONFIG_USB_LIBUSUAL is not set
1194 1231
@@ -1197,7 +1234,6 @@ CONFIG_USB_STORAGE=y
1197# 1234#
1198# CONFIG_USB_MDC800 is not set 1235# CONFIG_USB_MDC800 is not set
1199# CONFIG_USB_MICROTEK is not set 1236# CONFIG_USB_MICROTEK is not set
1200CONFIG_USB_MON=y
1201 1237
1202# 1238#
1203# USB port drivers 1239# USB port drivers
@@ -1210,7 +1246,6 @@ CONFIG_USB_MON=y
1210# CONFIG_USB_EMI62 is not set 1246# CONFIG_USB_EMI62 is not set
1211# CONFIG_USB_EMI26 is not set 1247# CONFIG_USB_EMI26 is not set
1212# CONFIG_USB_ADUTUX is not set 1248# CONFIG_USB_ADUTUX is not set
1213# CONFIG_USB_AUERSWALD is not set
1214# CONFIG_USB_RIO500 is not set 1249# CONFIG_USB_RIO500 is not set
1215# CONFIG_USB_LEGOTOWER is not set 1250# CONFIG_USB_LEGOTOWER is not set
1216# CONFIG_USB_LCD is not set 1251# CONFIG_USB_LCD is not set
@@ -1264,6 +1299,7 @@ CONFIG_RTC_INTF_DEV=y
1264# CONFIG_RTC_DRV_PCF8583 is not set 1299# CONFIG_RTC_DRV_PCF8583 is not set
1265# CONFIG_RTC_DRV_M41T80 is not set 1300# CONFIG_RTC_DRV_M41T80 is not set
1266# CONFIG_RTC_DRV_S35390A is not set 1301# CONFIG_RTC_DRV_S35390A is not set
1302# CONFIG_RTC_DRV_FM3130 is not set
1267 1303
1268# 1304#
1269# SPI RTC drivers 1305# SPI RTC drivers
@@ -1362,6 +1398,7 @@ CONFIG_EFS_FS=m
1362CONFIG_CRAMFS=y 1398CONFIG_CRAMFS=y
1363CONFIG_VXFS_FS=m 1399CONFIG_VXFS_FS=m
1364# CONFIG_MINIX_FS is not set 1400# CONFIG_MINIX_FS is not set
1401# CONFIG_OMFS_FS is not set
1365CONFIG_HPFS_FS=m 1402CONFIG_HPFS_FS=m
1366CONFIG_QNX4FS_FS=m 1403CONFIG_QNX4FS_FS=m
1367# CONFIG_ROMFS_FS is not set 1404# CONFIG_ROMFS_FS is not set
@@ -1374,17 +1411,16 @@ CONFIG_NFS_FS=y
1374CONFIG_NFS_V3=y 1411CONFIG_NFS_V3=y
1375# CONFIG_NFS_V3_ACL is not set 1412# CONFIG_NFS_V3_ACL is not set
1376CONFIG_NFS_V4=y 1413CONFIG_NFS_V4=y
1414CONFIG_ROOT_NFS=y
1377CONFIG_NFSD=y 1415CONFIG_NFSD=y
1378# CONFIG_NFSD_V3 is not set 1416# CONFIG_NFSD_V3 is not set
1379# CONFIG_NFSD_V4 is not set 1417# CONFIG_NFSD_V4 is not set
1380CONFIG_ROOT_NFS=y
1381CONFIG_LOCKD=y 1418CONFIG_LOCKD=y
1382CONFIG_LOCKD_V4=y 1419CONFIG_LOCKD_V4=y
1383CONFIG_EXPORTFS=y 1420CONFIG_EXPORTFS=y
1384CONFIG_NFS_COMMON=y 1421CONFIG_NFS_COMMON=y
1385CONFIG_SUNRPC=y 1422CONFIG_SUNRPC=y
1386CONFIG_SUNRPC_GSS=y 1423CONFIG_SUNRPC_GSS=y
1387# CONFIG_SUNRPC_BIND34 is not set
1388CONFIG_RPCSEC_GSS_KRB5=y 1424CONFIG_RPCSEC_GSS_KRB5=y
1389# CONFIG_RPCSEC_GSS_SPKM3 is not set 1425# CONFIG_RPCSEC_GSS_SPKM3 is not set
1390# CONFIG_SMB_FS is not set 1426# CONFIG_SMB_FS is not set
@@ -1463,6 +1499,7 @@ CONFIG_BITREVERSE=y
1463# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1499# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1464# CONFIG_CRC_CCITT is not set 1500# CONFIG_CRC_CCITT is not set
1465# CONFIG_CRC16 is not set 1501# CONFIG_CRC16 is not set
1502CONFIG_CRC_T10DIF=y
1466CONFIG_CRC_ITU_T=m 1503CONFIG_CRC_ITU_T=m
1467CONFIG_CRC32=y 1504CONFIG_CRC32=y
1468# CONFIG_CRC7 is not set 1505# CONFIG_CRC7 is not set
@@ -1488,6 +1525,8 @@ CONFIG_FRAME_WARN=1024
1488CONFIG_DEBUG_KERNEL=y 1525CONFIG_DEBUG_KERNEL=y
1489# CONFIG_DEBUG_SHIRQ is not set 1526# CONFIG_DEBUG_SHIRQ is not set
1490CONFIG_DETECT_SOFTLOCKUP=y 1527CONFIG_DETECT_SOFTLOCKUP=y
1528# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1529CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1491CONFIG_SCHED_DEBUG=y 1530CONFIG_SCHED_DEBUG=y
1492# CONFIG_SCHEDSTATS is not set 1531# CONFIG_SCHEDSTATS is not set
1493# CONFIG_TIMER_STATS is not set 1532# CONFIG_TIMER_STATS is not set
@@ -1506,19 +1545,32 @@ CONFIG_SCHED_DEBUG=y
1506CONFIG_DEBUG_INFO=y 1545CONFIG_DEBUG_INFO=y
1507# CONFIG_DEBUG_VM is not set 1546# CONFIG_DEBUG_VM is not set
1508# CONFIG_DEBUG_WRITECOUNT is not set 1547# CONFIG_DEBUG_WRITECOUNT is not set
1548# CONFIG_DEBUG_MEMORY_INIT is not set
1509# CONFIG_DEBUG_LIST is not set 1549# CONFIG_DEBUG_LIST is not set
1510# CONFIG_DEBUG_SG is not set 1550# CONFIG_DEBUG_SG is not set
1511# CONFIG_BOOT_PRINTK_DELAY is not set 1551# CONFIG_BOOT_PRINTK_DELAY is not set
1512# CONFIG_RCU_TORTURE_TEST is not set 1552# CONFIG_RCU_TORTURE_TEST is not set
1513# CONFIG_BACKTRACE_SELF_TEST is not set 1553# CONFIG_BACKTRACE_SELF_TEST is not set
1514# CONFIG_FAULT_INJECTION is not set 1554# CONFIG_FAULT_INJECTION is not set
1555# CONFIG_LATENCYTOP is not set
1556CONFIG_SYSCTL_SYSCALL_CHECK=y
1557CONFIG_HAVE_FTRACE=y
1558CONFIG_HAVE_DYNAMIC_FTRACE=y
1559# CONFIG_FTRACE is not set
1560# CONFIG_SCHED_TRACER is not set
1561# CONFIG_CONTEXT_SWITCH_TRACER is not set
1515# CONFIG_SAMPLES is not set 1562# CONFIG_SAMPLES is not set
1563CONFIG_HAVE_ARCH_KGDB=y
1564# CONFIG_KGDB is not set
1516# CONFIG_DEBUG_STACKOVERFLOW is not set 1565# CONFIG_DEBUG_STACKOVERFLOW is not set
1517# CONFIG_DEBUG_STACK_USAGE is not set 1566# CONFIG_DEBUG_STACK_USAGE is not set
1518# CONFIG_DEBUG_PAGEALLOC is not set 1567# CONFIG_DEBUG_PAGEALLOC is not set
1519# CONFIG_DEBUGGER is not set 1568# CONFIG_CODE_PATCHING_SELFTEST is not set
1569# CONFIG_FTR_FIXUP_SELFTEST is not set
1570# CONFIG_XMON is not set
1520# CONFIG_IRQSTACKS is not set 1571# CONFIG_IRQSTACKS is not set
1521# CONFIG_BDI_SWITCH is not set 1572# CONFIG_BDI_SWITCH is not set
1573# CONFIG_BOOTX_TEXT is not set
1522# CONFIG_PPC_EARLY_DEBUG is not set 1574# CONFIG_PPC_EARLY_DEBUG is not set
1523 1575
1524# 1576#
@@ -1573,6 +1625,10 @@ CONFIG_CRYPTO_HMAC=y
1573# CONFIG_CRYPTO_MD4 is not set 1625# CONFIG_CRYPTO_MD4 is not set
1574CONFIG_CRYPTO_MD5=y 1626CONFIG_CRYPTO_MD5=y
1575# CONFIG_CRYPTO_MICHAEL_MIC is not set 1627# CONFIG_CRYPTO_MICHAEL_MIC is not set
1628# CONFIG_CRYPTO_RMD128 is not set
1629# CONFIG_CRYPTO_RMD160 is not set
1630# CONFIG_CRYPTO_RMD256 is not set
1631# CONFIG_CRYPTO_RMD320 is not set
1576CONFIG_CRYPTO_SHA1=m 1632CONFIG_CRYPTO_SHA1=m
1577# CONFIG_CRYPTO_SHA256 is not set 1633# CONFIG_CRYPTO_SHA256 is not set
1578# CONFIG_CRYPTO_SHA512 is not set 1634# CONFIG_CRYPTO_SHA512 is not set
@@ -1605,5 +1661,6 @@ CONFIG_CRYPTO_DES=y
1605# CONFIG_CRYPTO_LZO is not set 1661# CONFIG_CRYPTO_LZO is not set
1606CONFIG_CRYPTO_HW=y 1662CONFIG_CRYPTO_HW=y
1607# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1663# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1664# CONFIG_CRYPTO_DEV_TALITOS is not set
1608# CONFIG_PPC_CLOCK is not set 1665# CONFIG_PPC_CLOCK is not set
1609# CONFIG_VIRTUALIZATION is not set 1666# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig
index 46fffbcd3f9..1501c4336b3 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:16 2008 4# Thu Aug 21 00:52:11 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y 31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_HAVE_LATENCYTOP_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y 33CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -106,10 +107,16 @@ CONFIG_SLUB=y
106# CONFIG_PROFILING is not set 107# CONFIG_PROFILING is not set
107# CONFIG_MARKERS is not set 108# CONFIG_MARKERS is not set
108CONFIG_HAVE_OPROFILE=y 109CONFIG_HAVE_OPROFILE=y
110CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
111CONFIG_HAVE_IOREMAP_PROT=y
109CONFIG_HAVE_KPROBES=y 112CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y 113CONFIG_HAVE_KRETPROBES=y
114CONFIG_HAVE_ARCH_TRACEHOOK=y
111# CONFIG_HAVE_DMA_ATTRS is not set 115# CONFIG_HAVE_DMA_ATTRS is not set
116# CONFIG_USE_GENERIC_SMP_HELPERS is not set
117CONFIG_HAVE_CLK=y
112CONFIG_PROC_PAGE_MONITOR=y 118CONFIG_PROC_PAGE_MONITOR=y
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
113CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
114CONFIG_RT_MUTEXES=y 121CONFIG_RT_MUTEXES=y
115# CONFIG_TINY_SHMEM is not set 122# CONFIG_TINY_SHMEM is not set
@@ -120,6 +127,7 @@ CONFIG_BLOCK=y
120# CONFIG_BLK_DEV_IO_TRACE is not set 127# CONFIG_BLK_DEV_IO_TRACE is not set
121# CONFIG_LSF is not set 128# CONFIG_LSF is not set
122# CONFIG_BLK_DEV_BSG is not set 129# CONFIG_BLK_DEV_BSG is not set
130# CONFIG_BLK_DEV_INTEGRITY is not set
123 131
124# 132#
125# IO Schedulers 133# IO Schedulers
@@ -138,8 +146,6 @@ CONFIG_CLASSIC_RCU=y
138# 146#
139# Platform support 147# Platform support
140# 148#
141# CONFIG_PPC_MPC512x is not set
142# CONFIG_PPC_MPC5121 is not set
143# CONFIG_PPC_CELL is not set 149# CONFIG_PPC_CELL is not set
144# CONFIG_PPC_CELL_NATIVE is not set 150# CONFIG_PPC_CELL_NATIVE is not set
145CONFIG_CPM1=y 151CONFIG_CPM1=y
@@ -157,6 +163,7 @@ CONFIG_MPC86XADS=y
157# Generic MPC8xx Options 163# Generic MPC8xx Options
158# 164#
159CONFIG_8xx_COPYBACK=y 165CONFIG_8xx_COPYBACK=y
166# CONFIG_8xx_GPIO is not set
160CONFIG_8xx_CPU6=y 167CONFIG_8xx_CPU6=y
161CONFIG_8xx_CPU15=y 168CONFIG_8xx_CPU15=y
162CONFIG_NO_UCODE_PATCH=y 169CONFIG_NO_UCODE_PATCH=y
@@ -175,7 +182,6 @@ CONFIG_NO_UCODE_PATCH=y
175# CONFIG_PPC_INDIRECT_IO is not set 182# CONFIG_PPC_INDIRECT_IO is not set
176# CONFIG_GENERIC_IOMAP is not set 183# CONFIG_GENERIC_IOMAP is not set
177# CONFIG_CPU_FREQ is not set 184# CONFIG_CPU_FREQ is not set
178CONFIG_PPC_CPM_NEW_BINDING=y
179# CONFIG_FSL_ULI1575 is not set 185# CONFIG_FSL_ULI1575 is not set
180CONFIG_CPM=y 186CONFIG_CPM=y
181 187
@@ -192,7 +198,7 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
192# CONFIG_HZ_300 is not set 198# CONFIG_HZ_300 is not set
193CONFIG_HZ_1000=y 199CONFIG_HZ_1000=y
194CONFIG_HZ=1000 200CONFIG_HZ=1000
195# CONFIG_SCHED_HRTICK is not set 201CONFIG_SCHED_HRTICK=y
196CONFIG_PREEMPT_NONE=y 202CONFIG_PREEMPT_NONE=y
197# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
198# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
@@ -215,6 +221,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
218# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=1 226CONFIG_ZONE_DMA_FLAG=1
220CONFIG_BOUNCE=y 227CONFIG_BOUNCE=y
@@ -222,6 +229,7 @@ CONFIG_VIRT_TO_BUS=y
222CONFIG_FORCE_MAX_ZONEORDER=11 229CONFIG_FORCE_MAX_ZONEORDER=11
223# CONFIG_PROC_DEVICETREE is not set 230# CONFIG_PROC_DEVICETREE is not set
224# CONFIG_CMDLINE_BOOL is not set 231# CONFIG_CMDLINE_BOOL is not set
232CONFIG_EXTRA_TARGETS=""
225# CONFIG_PM is not set 233# CONFIG_PM is not set
226# CONFIG_SECCOMP is not set 234# CONFIG_SECCOMP is not set
227CONFIG_ISA_DMA_API=y 235CONFIG_ISA_DMA_API=y
@@ -253,10 +261,6 @@ CONFIG_PHYSICAL_START=0x00000000
253CONFIG_TASK_SIZE=0x80000000 261CONFIG_TASK_SIZE=0x80000000
254CONFIG_CONSISTENT_START=0xfd000000 262CONFIG_CONSISTENT_START=0xfd000000
255CONFIG_CONSISTENT_SIZE=0x00200000 263CONFIG_CONSISTENT_SIZE=0x00200000
256
257#
258# Networking
259#
260CONFIG_NET=y 264CONFIG_NET=y
261 265
262# 266#
@@ -361,6 +365,7 @@ CONFIG_BLK_DEV_LOOP=y
361# CONFIG_BLK_DEV_RAM is not set 365# CONFIG_BLK_DEV_RAM is not set
362# CONFIG_CDROM_PKTCDVD is not set 366# CONFIG_CDROM_PKTCDVD is not set
363# CONFIG_ATA_OVER_ETH is not set 367# CONFIG_ATA_OVER_ETH is not set
368# CONFIG_BLK_DEV_HD is not set
364CONFIG_MISC_DEVICES=y 369CONFIG_MISC_DEVICES=y
365# CONFIG_EEPROM_93CX6 is not set 370# CONFIG_EEPROM_93CX6 is not set
366# CONFIG_ENCLOSURE_SERVICES is not set 371# CONFIG_ENCLOSURE_SERVICES is not set
@@ -378,7 +383,6 @@ CONFIG_HAVE_IDE=y
378# CONFIG_MD is not set 383# CONFIG_MD is not set
379# CONFIG_MACINTOSH_DRIVERS is not set 384# CONFIG_MACINTOSH_DRIVERS is not set
380CONFIG_NETDEVICES=y 385CONFIG_NETDEVICES=y
381# CONFIG_NETDEVICES_MULTIQUEUE is not set
382# CONFIG_DUMMY is not set 386# CONFIG_DUMMY is not set
383# CONFIG_BONDING is not set 387# CONFIG_BONDING is not set
384# CONFIG_MACVLAN is not set 388# CONFIG_MACVLAN is not set
@@ -414,7 +418,6 @@ CONFIG_FS_ENET_HAS_SCC=y
414CONFIG_FS_ENET_HAS_FEC=y 418CONFIG_FS_ENET_HAS_FEC=y
415CONFIG_FS_ENET_MDIO_FEC=y 419CONFIG_FS_ENET_MDIO_FEC=y
416CONFIG_NETDEV_1000=y 420CONFIG_NETDEV_1000=y
417# CONFIG_E1000E_ENABLED is not set
418# CONFIG_GIANFAR is not set 421# CONFIG_GIANFAR is not set
419CONFIG_NETDEV_10000=y 422CONFIG_NETDEV_10000=y
420 423
@@ -484,6 +487,7 @@ CONFIG_SERIO_I8042=y
484CONFIG_SERIO_SERPORT=y 487CONFIG_SERIO_SERPORT=y
485CONFIG_SERIO_LIBPS2=y 488CONFIG_SERIO_LIBPS2=y
486# CONFIG_SERIO_RAW is not set 489# CONFIG_SERIO_RAW is not set
490# CONFIG_SERIO_XILINX_XPS_PS2 is not set
487# CONFIG_GAMEPORT is not set 491# CONFIG_GAMEPORT is not set
488 492
489# 493#
@@ -524,6 +528,8 @@ CONFIG_GEN_RTC=y
524# CONFIG_TCG_TPM is not set 528# CONFIG_TCG_TPM is not set
525# CONFIG_I2C is not set 529# CONFIG_I2C is not set
526# CONFIG_SPI is not set 530# CONFIG_SPI is not set
531CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
532# CONFIG_GPIOLIB is not set
527# CONFIG_W1 is not set 533# CONFIG_W1 is not set
528# CONFIG_POWER_SUPPLY is not set 534# CONFIG_POWER_SUPPLY is not set
529CONFIG_HWMON=y 535CONFIG_HWMON=y
@@ -540,6 +546,7 @@ CONFIG_HWMON=y
540# CONFIG_SENSORS_W83627EHF is not set 546# CONFIG_SENSORS_W83627EHF is not set
541# CONFIG_HWMON_DEBUG_CHIP is not set 547# CONFIG_HWMON_DEBUG_CHIP is not set
542# CONFIG_THERMAL is not set 548# CONFIG_THERMAL is not set
549# CONFIG_THERMAL_HWMON is not set
543# CONFIG_WATCHDOG is not set 550# CONFIG_WATCHDOG is not set
544 551
545# 552#
@@ -551,8 +558,10 @@ CONFIG_SSB_POSSIBLE=y
551# 558#
552# Multifunction device drivers 559# Multifunction device drivers
553# 560#
561# CONFIG_MFD_CORE is not set
554# CONFIG_MFD_SM501 is not set 562# CONFIG_MFD_SM501 is not set
555# CONFIG_HTC_PASIC3 is not set 563# CONFIG_HTC_PASIC3 is not set
564# CONFIG_MFD_TMIO is not set
556 565
557# 566#
558# Multimedia devices 567# Multimedia devices
@@ -582,10 +591,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
582# Display device support 591# Display device support
583# 592#
584# CONFIG_DISPLAY_SUPPORT is not set 593# CONFIG_DISPLAY_SUPPORT is not set
585
586#
587# Sound
588#
589# CONFIG_SOUND is not set 594# CONFIG_SOUND is not set
590CONFIG_HID_SUPPORT=y 595CONFIG_HID_SUPPORT=y
591CONFIG_HID=y 596CONFIG_HID=y
@@ -599,6 +604,10 @@ CONFIG_USB_SUPPORT=y
599# CONFIG_USB_OTG_BLACKLIST_HUB is not set 604# CONFIG_USB_OTG_BLACKLIST_HUB is not set
600 605
601# 606#
607# Enable Host or Gadget support to see Inventra options
608#
609
610#
602# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 611# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
603# 612#
604# CONFIG_USB_GADGET is not set 613# CONFIG_USB_GADGET is not set
@@ -677,6 +686,7 @@ CONFIG_TMPFS=y
677CONFIG_CRAMFS=y 686CONFIG_CRAMFS=y
678# CONFIG_VXFS_FS is not set 687# CONFIG_VXFS_FS is not set
679# CONFIG_MINIX_FS is not set 688# CONFIG_MINIX_FS is not set
689# CONFIG_OMFS_FS is not set
680# CONFIG_HPFS_FS is not set 690# CONFIG_HPFS_FS is not set
681# CONFIG_QNX4FS_FS is not set 691# CONFIG_QNX4FS_FS is not set
682# CONFIG_ROMFS_FS is not set 692# CONFIG_ROMFS_FS is not set
@@ -687,13 +697,12 @@ CONFIG_NFS_FS=y
687CONFIG_NFS_V3=y 697CONFIG_NFS_V3=y
688# CONFIG_NFS_V3_ACL is not set 698# CONFIG_NFS_V3_ACL is not set
689# CONFIG_NFS_V4 is not set 699# CONFIG_NFS_V4 is not set
690# CONFIG_NFSD is not set
691CONFIG_ROOT_NFS=y 700CONFIG_ROOT_NFS=y
701# CONFIG_NFSD is not set
692CONFIG_LOCKD=y 702CONFIG_LOCKD=y
693CONFIG_LOCKD_V4=y 703CONFIG_LOCKD_V4=y
694CONFIG_NFS_COMMON=y 704CONFIG_NFS_COMMON=y
695CONFIG_SUNRPC=y 705CONFIG_SUNRPC=y
696# CONFIG_SUNRPC_BIND34 is not set
697# CONFIG_RPCSEC_GSS_KRB5 is not set 706# CONFIG_RPCSEC_GSS_KRB5 is not set
698# CONFIG_RPCSEC_GSS_SPKM3 is not set 707# CONFIG_RPCSEC_GSS_SPKM3 is not set
699# CONFIG_SMB_FS is not set 708# CONFIG_SMB_FS is not set
@@ -733,6 +742,7 @@ CONFIG_BITREVERSE=y
733# CONFIG_GENERIC_FIND_FIRST_BIT is not set 742# CONFIG_GENERIC_FIND_FIRST_BIT is not set
734CONFIG_CRC_CCITT=y 743CONFIG_CRC_CCITT=y
735# CONFIG_CRC16 is not set 744# CONFIG_CRC16 is not set
745# CONFIG_CRC_T10DIF is not set
736# CONFIG_CRC_ITU_T is not set 746# CONFIG_CRC_ITU_T is not set
737CONFIG_CRC32=y 747CONFIG_CRC32=y
738# CONFIG_CRC7 is not set 748# CONFIG_CRC7 is not set
@@ -758,7 +768,15 @@ CONFIG_FRAME_WARN=1024
758# CONFIG_DEBUG_KERNEL is not set 768# CONFIG_DEBUG_KERNEL is not set
759# CONFIG_SLUB_DEBUG_ON is not set 769# CONFIG_SLUB_DEBUG_ON is not set
760# CONFIG_SLUB_STATS is not set 770# CONFIG_SLUB_STATS is not set
771# CONFIG_DEBUG_MEMORY_INIT is not set
772# CONFIG_LATENCYTOP is not set
773CONFIG_HAVE_FTRACE=y
774CONFIG_HAVE_DYNAMIC_FTRACE=y
775# CONFIG_FTRACE is not set
776# CONFIG_SCHED_TRACER is not set
777# CONFIG_CONTEXT_SWITCH_TRACER is not set
761# CONFIG_SAMPLES is not set 778# CONFIG_SAMPLES is not set
779CONFIG_HAVE_ARCH_KGDB=y
762# CONFIG_IRQSTACKS is not set 780# CONFIG_IRQSTACKS is not set
763# CONFIG_PPC_EARLY_DEBUG is not set 781# CONFIG_PPC_EARLY_DEBUG is not set
764 782
@@ -810,6 +828,10 @@ CONFIG_CRYPTO=y
810# CONFIG_CRYPTO_MD4 is not set 828# CONFIG_CRYPTO_MD4 is not set
811# CONFIG_CRYPTO_MD5 is not set 829# CONFIG_CRYPTO_MD5 is not set
812# CONFIG_CRYPTO_MICHAEL_MIC is not set 830# CONFIG_CRYPTO_MICHAEL_MIC is not set
831# CONFIG_CRYPTO_RMD128 is not set
832# CONFIG_CRYPTO_RMD160 is not set
833# CONFIG_CRYPTO_RMD256 is not set
834# CONFIG_CRYPTO_RMD320 is not set
813# CONFIG_CRYPTO_SHA1 is not set 835# CONFIG_CRYPTO_SHA1 is not set
814# CONFIG_CRYPTO_SHA256 is not set 836# CONFIG_CRYPTO_SHA256 is not set
815# CONFIG_CRYPTO_SHA512 is not set 837# CONFIG_CRYPTO_SHA512 is not set
@@ -841,6 +863,7 @@ CONFIG_CRYPTO=y
841# CONFIG_CRYPTO_DEFLATE is not set 863# CONFIG_CRYPTO_DEFLATE is not set
842# CONFIG_CRYPTO_LZO is not set 864# CONFIG_CRYPTO_LZO is not set
843CONFIG_CRYPTO_HW=y 865CONFIG_CRYPTO_HW=y
844# CONFIG_PPC_CLOCK is not set 866# CONFIG_CRYPTO_DEV_TALITOS is not set
867CONFIG_PPC_CLOCK=y
845CONFIG_PPC_LIB_RHEAP=y 868CONFIG_PPC_LIB_RHEAP=y
846# CONFIG_VIRTUALIZATION is not set 869# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index 9df78973005..fc3f6dc5812 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:17 2008 4# Thu Aug 21 00:52:12 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y 31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_HAVE_LATENCYTOP_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y 33CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -108,10 +109,16 @@ CONFIG_SLUB=y
108# CONFIG_PROFILING is not set 109# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set 110# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
113CONFIG_HAVE_IOREMAP_PROT=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
116CONFIG_HAVE_ARCH_TRACEHOOK=y
113# CONFIG_HAVE_DMA_ATTRS is not set 117# CONFIG_HAVE_DMA_ATTRS is not set
118# CONFIG_USE_GENERIC_SMP_HELPERS is not set
119CONFIG_HAVE_CLK=y
114CONFIG_PROC_PAGE_MONITOR=y 120CONFIG_PROC_PAGE_MONITOR=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
115CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
116# CONFIG_TINY_SHMEM is not set 123# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=1 124CONFIG_BASE_SMALL=1
@@ -121,6 +128,7 @@ CONFIG_BLOCK=y
121# CONFIG_BLK_DEV_IO_TRACE is not set 128# CONFIG_BLK_DEV_IO_TRACE is not set
122# CONFIG_LSF is not set 129# CONFIG_LSF is not set
123# CONFIG_BLK_DEV_BSG is not set 130# CONFIG_BLK_DEV_BSG is not set
131# CONFIG_BLK_DEV_INTEGRITY is not set
124 132
125# 133#
126# IO Schedulers 134# IO Schedulers
@@ -139,8 +147,6 @@ CONFIG_CLASSIC_RCU=y
139# 147#
140# Platform support 148# Platform support
141# 149#
142# CONFIG_PPC_MPC512x is not set
143# CONFIG_PPC_MPC5121 is not set
144# CONFIG_PPC_CELL is not set 150# CONFIG_PPC_CELL is not set
145# CONFIG_PPC_CELL_NATIVE is not set 151# CONFIG_PPC_CELL_NATIVE is not set
146CONFIG_CPM1=y 152CONFIG_CPM1=y
@@ -165,6 +171,7 @@ CONFIG_MPC8xx_SECOND_ETH_FEC2=y
165# Generic MPC8xx Options 171# Generic MPC8xx Options
166# 172#
167CONFIG_8xx_COPYBACK=y 173CONFIG_8xx_COPYBACK=y
174# CONFIG_8xx_GPIO is not set
168# CONFIG_8xx_CPU6 is not set 175# CONFIG_8xx_CPU6 is not set
169CONFIG_8xx_CPU15=y 176CONFIG_8xx_CPU15=y
170CONFIG_NO_UCODE_PATCH=y 177CONFIG_NO_UCODE_PATCH=y
@@ -183,7 +190,6 @@ CONFIG_NO_UCODE_PATCH=y
183# CONFIG_PPC_INDIRECT_IO is not set 190# CONFIG_PPC_INDIRECT_IO is not set
184# CONFIG_GENERIC_IOMAP is not set 191# CONFIG_GENERIC_IOMAP is not set
185# CONFIG_CPU_FREQ is not set 192# CONFIG_CPU_FREQ is not set
186CONFIG_PPC_CPM_NEW_BINDING=y
187# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
188CONFIG_CPM=y 194CONFIG_CPM=y
189 195
@@ -200,7 +206,7 @@ CONFIG_HZ_100=y
200# CONFIG_HZ_300 is not set 206# CONFIG_HZ_300 is not set
201# CONFIG_HZ_1000 is not set 207# CONFIG_HZ_1000 is not set
202CONFIG_HZ=100 208CONFIG_HZ=100
203# CONFIG_SCHED_HRTICK is not set 209CONFIG_SCHED_HRTICK=y
204CONFIG_PREEMPT_NONE=y 210CONFIG_PREEMPT_NONE=y
205# CONFIG_PREEMPT_VOLUNTARY is not set 211# CONFIG_PREEMPT_VOLUNTARY is not set
206# CONFIG_PREEMPT is not set 212# CONFIG_PREEMPT is not set
@@ -224,6 +230,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 230# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
225CONFIG_PAGEFLAGS_EXTENDED=y 231CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 232CONFIG_SPLIT_PTLOCK_CPUS=4
233CONFIG_MIGRATION=y
227# CONFIG_RESOURCES_64BIT is not set 234# CONFIG_RESOURCES_64BIT is not set
228CONFIG_ZONE_DMA_FLAG=1 235CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y 236CONFIG_BOUNCE=y
@@ -231,6 +238,7 @@ CONFIG_VIRT_TO_BUS=y
231CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 239CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
241CONFIG_EXTRA_TARGETS=""
234# CONFIG_PM is not set 242# CONFIG_PM is not set
235# CONFIG_SECCOMP is not set 243# CONFIG_SECCOMP is not set
236CONFIG_ISA_DMA_API=y 244CONFIG_ISA_DMA_API=y
@@ -263,10 +271,6 @@ CONFIG_PHYSICAL_START=0x00000000
263CONFIG_TASK_SIZE=0x80000000 271CONFIG_TASK_SIZE=0x80000000
264CONFIG_CONSISTENT_START=0xfd000000 272CONFIG_CONSISTENT_START=0xfd000000
265CONFIG_CONSISTENT_SIZE=0x00200000 273CONFIG_CONSISTENT_SIZE=0x00200000
266
267#
268# Networking
269#
270CONFIG_NET=y 274CONFIG_NET=y
271 275
272# 276#
@@ -453,7 +457,6 @@ CONFIG_HAVE_IDE=y
453# CONFIG_MD is not set 457# CONFIG_MD is not set
454# CONFIG_MACINTOSH_DRIVERS is not set 458# CONFIG_MACINTOSH_DRIVERS is not set
455CONFIG_NETDEVICES=y 459CONFIG_NETDEVICES=y
456# CONFIG_NETDEVICES_MULTIQUEUE is not set
457# CONFIG_DUMMY is not set 460# CONFIG_DUMMY is not set
458# CONFIG_BONDING is not set 461# CONFIG_BONDING is not set
459# CONFIG_MACVLAN is not set 462# CONFIG_MACVLAN is not set
@@ -555,10 +558,13 @@ CONFIG_GEN_RTC=y
555# CONFIG_TCG_TPM is not set 558# CONFIG_TCG_TPM is not set
556# CONFIG_I2C is not set 559# CONFIG_I2C is not set
557# CONFIG_SPI is not set 560# CONFIG_SPI is not set
561CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
562# CONFIG_GPIOLIB is not set
558# CONFIG_W1 is not set 563# CONFIG_W1 is not set
559# CONFIG_POWER_SUPPLY is not set 564# CONFIG_POWER_SUPPLY is not set
560# CONFIG_HWMON is not set 565# CONFIG_HWMON is not set
561# CONFIG_THERMAL is not set 566# CONFIG_THERMAL is not set
567# CONFIG_THERMAL_HWMON is not set
562# CONFIG_WATCHDOG is not set 568# CONFIG_WATCHDOG is not set
563 569
564# 570#
@@ -570,8 +576,10 @@ CONFIG_SSB_POSSIBLE=y
570# 576#
571# Multifunction device drivers 577# Multifunction device drivers
572# 578#
579# CONFIG_MFD_CORE is not set
573# CONFIG_MFD_SM501 is not set 580# CONFIG_MFD_SM501 is not set
574# CONFIG_HTC_PASIC3 is not set 581# CONFIG_HTC_PASIC3 is not set
582# CONFIG_MFD_TMIO is not set
575 583
576# 584#
577# Multimedia devices 585# Multimedia devices
@@ -601,10 +609,6 @@ CONFIG_DAB=y
601# Display device support 609# Display device support
602# 610#
603# CONFIG_DISPLAY_SUPPORT is not set 611# CONFIG_DISPLAY_SUPPORT is not set
604
605#
606# Sound
607#
608# CONFIG_SOUND is not set 612# CONFIG_SOUND is not set
609# CONFIG_USB_SUPPORT is not set 613# CONFIG_USB_SUPPORT is not set
610# CONFIG_MMC is not set 614# CONFIG_MMC is not set
@@ -673,6 +677,7 @@ CONFIG_TMPFS=y
673CONFIG_CRAMFS=y 677CONFIG_CRAMFS=y
674# CONFIG_VXFS_FS is not set 678# CONFIG_VXFS_FS is not set
675# CONFIG_MINIX_FS is not set 679# CONFIG_MINIX_FS is not set
680# CONFIG_OMFS_FS is not set
676# CONFIG_HPFS_FS is not set 681# CONFIG_HPFS_FS is not set
677# CONFIG_QNX4FS_FS is not set 682# CONFIG_QNX4FS_FS is not set
678# CONFIG_ROMFS_FS is not set 683# CONFIG_ROMFS_FS is not set
@@ -683,13 +688,12 @@ CONFIG_NFS_FS=y
683CONFIG_NFS_V3=y 688CONFIG_NFS_V3=y
684# CONFIG_NFS_V3_ACL is not set 689# CONFIG_NFS_V3_ACL is not set
685# CONFIG_NFS_V4 is not set 690# CONFIG_NFS_V4 is not set
686# CONFIG_NFSD is not set
687CONFIG_ROOT_NFS=y 691CONFIG_ROOT_NFS=y
692# CONFIG_NFSD is not set
688CONFIG_LOCKD=y 693CONFIG_LOCKD=y
689CONFIG_LOCKD_V4=y 694CONFIG_LOCKD_V4=y
690CONFIG_NFS_COMMON=y 695CONFIG_NFS_COMMON=y
691CONFIG_SUNRPC=y 696CONFIG_SUNRPC=y
692# CONFIG_SUNRPC_BIND34 is not set
693# CONFIG_RPCSEC_GSS_KRB5 is not set 697# CONFIG_RPCSEC_GSS_KRB5 is not set
694# CONFIG_RPCSEC_GSS_SPKM3 is not set 698# CONFIG_RPCSEC_GSS_SPKM3 is not set
695# CONFIG_SMB_FS is not set 699# CONFIG_SMB_FS is not set
@@ -728,6 +732,7 @@ CONFIG_MSDOS_PARTITION=y
728# CONFIG_GENERIC_FIND_FIRST_BIT is not set 732# CONFIG_GENERIC_FIND_FIRST_BIT is not set
729# CONFIG_CRC_CCITT is not set 733# CONFIG_CRC_CCITT is not set
730# CONFIG_CRC16 is not set 734# CONFIG_CRC16 is not set
735# CONFIG_CRC_T10DIF is not set
731# CONFIG_CRC_ITU_T is not set 736# CONFIG_CRC_ITU_T is not set
732# CONFIG_CRC32 is not set 737# CONFIG_CRC32 is not set
733# CONFIG_CRC7 is not set 738# CONFIG_CRC7 is not set
@@ -752,6 +757,8 @@ CONFIG_MAGIC_SYSRQ=y
752CONFIG_DEBUG_KERNEL=y 757CONFIG_DEBUG_KERNEL=y
753# CONFIG_DEBUG_SHIRQ is not set 758# CONFIG_DEBUG_SHIRQ is not set
754CONFIG_DETECT_SOFTLOCKUP=y 759CONFIG_DETECT_SOFTLOCKUP=y
760# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
761CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
755CONFIG_SCHED_DEBUG=y 762CONFIG_SCHED_DEBUG=y
756# CONFIG_SCHEDSTATS is not set 763# CONFIG_SCHEDSTATS is not set
757# CONFIG_TIMER_STATS is not set 764# CONFIG_TIMER_STATS is not set
@@ -767,16 +774,28 @@ CONFIG_DEBUG_BUGVERBOSE=y
767CONFIG_DEBUG_INFO=y 774CONFIG_DEBUG_INFO=y
768# CONFIG_DEBUG_VM is not set 775# CONFIG_DEBUG_VM is not set
769# CONFIG_DEBUG_WRITECOUNT is not set 776# CONFIG_DEBUG_WRITECOUNT is not set
777# CONFIG_DEBUG_MEMORY_INIT is not set
770# CONFIG_DEBUG_LIST is not set 778# CONFIG_DEBUG_LIST is not set
771# CONFIG_DEBUG_SG is not set 779# CONFIG_DEBUG_SG is not set
772# CONFIG_BOOT_PRINTK_DELAY is not set 780# CONFIG_BOOT_PRINTK_DELAY is not set
781# CONFIG_RCU_TORTURE_TEST is not set
773# CONFIG_BACKTRACE_SELF_TEST is not set 782# CONFIG_BACKTRACE_SELF_TEST is not set
774# CONFIG_FAULT_INJECTION is not set 783# CONFIG_FAULT_INJECTION is not set
784# CONFIG_LATENCYTOP is not set
785CONFIG_HAVE_FTRACE=y
786CONFIG_HAVE_DYNAMIC_FTRACE=y
787# CONFIG_FTRACE is not set
788# CONFIG_SCHED_TRACER is not set
789# CONFIG_CONTEXT_SWITCH_TRACER is not set
775# CONFIG_SAMPLES is not set 790# CONFIG_SAMPLES is not set
791CONFIG_HAVE_ARCH_KGDB=y
792# CONFIG_KGDB is not set
776# CONFIG_DEBUG_STACKOVERFLOW is not set 793# CONFIG_DEBUG_STACKOVERFLOW is not set
777# CONFIG_DEBUG_STACK_USAGE is not set 794# CONFIG_DEBUG_STACK_USAGE is not set
778# CONFIG_DEBUG_PAGEALLOC is not set 795# CONFIG_DEBUG_PAGEALLOC is not set
779# CONFIG_DEBUGGER is not set 796# CONFIG_CODE_PATCHING_SELFTEST is not set
797# CONFIG_FTR_FIXUP_SELFTEST is not set
798# CONFIG_XMON is not set
780# CONFIG_IRQSTACKS is not set 799# CONFIG_IRQSTACKS is not set
781# CONFIG_BDI_SWITCH is not set 800# CONFIG_BDI_SWITCH is not set
782# CONFIG_PPC_EARLY_DEBUG is not set 801# CONFIG_PPC_EARLY_DEBUG is not set
@@ -788,6 +807,6 @@ CONFIG_DEBUG_INFO=y
788# CONFIG_SECURITY is not set 807# CONFIG_SECURITY is not set
789# CONFIG_SECURITY_FILE_CAPABILITIES is not set 808# CONFIG_SECURITY_FILE_CAPABILITIES is not set
790# CONFIG_CRYPTO is not set 809# CONFIG_CRYPTO is not set
791# CONFIG_PPC_CLOCK is not set 810CONFIG_PPC_CLOCK=y
792CONFIG_PPC_LIB_RHEAP=y 811CONFIG_PPC_LIB_RHEAP=y
793# CONFIG_VIRTUALIZATION is not set 812# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig
index 3688e4bb6fc..80481f27013 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.26-rc3 3# Linux kernel version: 2.6.27-rc4
4# Tue May 20 20:02:24 2008 4# Tue Aug 26 13:20:26 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -93,9 +94,8 @@ CONFIG_INITRAMFS_SOURCE=""
93CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
94# CONFIG_EMBEDDED is not set 95# CONFIG_EMBEDDED is not set
95CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
96CONFIG_SYSCTL_SYSCALL_CHECK=y
97CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
98# CONFIG_KALLSYMS_ALL is not set 98CONFIG_KALLSYMS_ALL=y
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 99# CONFIG_KALLSYMS_EXTRA_PASS is not set
100CONFIG_HOTPLUG=y 100CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 101CONFIG_PRINTK=y
@@ -120,10 +120,16 @@ CONFIG_PROFILING=y
120CONFIG_OPROFILE=y 120CONFIG_OPROFILE=y
121CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
122# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y 125CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_DMA_ATTRS is not set 128# CONFIG_HAVE_DMA_ATTRS is not set
129# CONFIG_USE_GENERIC_SMP_HELPERS is not set
130# CONFIG_HAVE_CLK is not set
126CONFIG_PROC_PAGE_MONITOR=y 131CONFIG_PROC_PAGE_MONITOR=y
132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 134CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set 135# CONFIG_TINY_SHMEM is not set
@@ -140,6 +146,7 @@ CONFIG_LBD=y
140# CONFIG_BLK_DEV_IO_TRACE is not set 146# CONFIG_BLK_DEV_IO_TRACE is not set
141CONFIG_LSF=y 147CONFIG_LSF=y
142CONFIG_BLK_DEV_BSG=y 148CONFIG_BLK_DEV_BSG=y
149# CONFIG_BLK_DEV_INTEGRITY is not set
143 150
144# 151#
145# IO Schedulers 152# IO Schedulers
@@ -159,19 +166,18 @@ CONFIG_CLASSIC_RCU=y
159# Platform support 166# Platform support
160# 167#
161CONFIG_PPC_MULTIPLATFORM=y 168CONFIG_PPC_MULTIPLATFORM=y
162# CONFIG_PPC_82xx is not set
163# CONFIG_PPC_83xx is not set
164# CONFIG_PPC_86xx is not set
165CONFIG_CLASSIC32=y 169CONFIG_CLASSIC32=y
166# CONFIG_PPC_CHRP is not set 170# CONFIG_PPC_CHRP is not set
167# CONFIG_PPC_MPC512x is not set
168# CONFIG_PPC_MPC5121 is not set
169# CONFIG_MPC5121_ADS is not set 171# CONFIG_MPC5121_ADS is not set
172# CONFIG_MPC5121_GENERIC is not set
170# CONFIG_PPC_MPC52xx is not set 173# CONFIG_PPC_MPC52xx is not set
171CONFIG_PPC_PMAC=y 174CONFIG_PPC_PMAC=y
172# CONFIG_PPC_CELL is not set 175# CONFIG_PPC_CELL is not set
173# CONFIG_PPC_CELL_NATIVE is not set 176# CONFIG_PPC_CELL_NATIVE is not set
177# CONFIG_PPC_82xx is not set
174# CONFIG_PQ2ADS is not set 178# CONFIG_PQ2ADS is not set
179# CONFIG_PPC_83xx is not set
180# CONFIG_PPC_86xx is not set
175# CONFIG_EMBEDDED6xx is not set 181# CONFIG_EMBEDDED6xx is not set
176CONFIG_PPC_NATIVE=y 182CONFIG_PPC_NATIVE=y
177# CONFIG_IPIC is not set 183# CONFIG_IPIC is not set
@@ -221,7 +227,7 @@ CONFIG_HZ_250=y
221# CONFIG_HZ_300 is not set 227# CONFIG_HZ_300 is not set
222# CONFIG_HZ_1000 is not set 228# CONFIG_HZ_1000 is not set
223CONFIG_HZ=250 229CONFIG_HZ=250
224# CONFIG_SCHED_HRTICK is not set 230CONFIG_SCHED_HRTICK=y
225CONFIG_PREEMPT_NONE=y 231CONFIG_PREEMPT_NONE=y
226# CONFIG_PREEMPT_VOLUNTARY is not set 232# CONFIG_PREEMPT_VOLUNTARY is not set
227# CONFIG_PREEMPT is not set 233# CONFIG_PREEMPT is not set
@@ -244,6 +250,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
244# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 250# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
245CONFIG_PAGEFLAGS_EXTENDED=y 251CONFIG_PAGEFLAGS_EXTENDED=y
246CONFIG_SPLIT_PTLOCK_CPUS=4 252CONFIG_SPLIT_PTLOCK_CPUS=4
253# CONFIG_MIGRATION is not set
247# CONFIG_RESOURCES_64BIT is not set 254# CONFIG_RESOURCES_64BIT is not set
248CONFIG_ZONE_DMA_FLAG=1 255CONFIG_ZONE_DMA_FLAG=1
249CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
@@ -251,6 +258,7 @@ CONFIG_VIRT_TO_BUS=y
251CONFIG_FORCE_MAX_ZONEORDER=11 258CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 259CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 260# CONFIG_CMDLINE_BOOL is not set
261CONFIG_EXTRA_TARGETS=""
254CONFIG_ARCH_WANTS_FREEZER_CONTROL=y 262CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
255CONFIG_PM=y 263CONFIG_PM=y
256CONFIG_PM_DEBUG=y 264CONFIG_PM_DEBUG=y
@@ -314,10 +322,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
314CONFIG_KERNEL_START=0xc0000000 322CONFIG_KERNEL_START=0xc0000000
315CONFIG_PHYSICAL_START=0x00000000 323CONFIG_PHYSICAL_START=0x00000000
316CONFIG_TASK_SIZE=0xc0000000 324CONFIG_TASK_SIZE=0xc0000000
317
318#
319# Networking
320#
321CONFIG_NET=y 325CONFIG_NET=y
322 326
323# 327#
@@ -501,7 +505,6 @@ CONFIG_IP_DCCP_TFRC_LIB=m
501# CONFIG_WAN_ROUTER is not set 505# CONFIG_WAN_ROUTER is not set
502# CONFIG_NET_SCHED is not set 506# CONFIG_NET_SCHED is not set
503CONFIG_NET_CLS_ROUTE=y 507CONFIG_NET_CLS_ROUTE=y
504CONFIG_NET_SCH_FIFO=y
505 508
506# 509#
507# Network testing 510# Network testing
@@ -571,6 +574,7 @@ CONFIG_BT_HIDP=m
571# 574#
572CONFIG_BT_HCIUSB=m 575CONFIG_BT_HCIUSB=m
573# CONFIG_BT_HCIUSB_SCO is not set 576# CONFIG_BT_HCIUSB_SCO is not set
577# CONFIG_BT_HCIBTUSB is not set
574# CONFIG_BT_HCIUART is not set 578# CONFIG_BT_HCIUART is not set
575CONFIG_BT_HCIBCM203X=m 579CONFIG_BT_HCIBCM203X=m
576# CONFIG_BT_HCIBPA10X is not set 580# CONFIG_BT_HCIBPA10X is not set
@@ -588,27 +592,18 @@ CONFIG_BT_HCIBFUSB=m
588CONFIG_CFG80211=m 592CONFIG_CFG80211=m
589CONFIG_NL80211=y 593CONFIG_NL80211=y
590CONFIG_WIRELESS_EXT=y 594CONFIG_WIRELESS_EXT=y
595CONFIG_WIRELESS_EXT_SYSFS=y
591CONFIG_MAC80211=m 596CONFIG_MAC80211=m
592 597
593# 598#
594# Rate control algorithm selection 599# Rate control algorithm selection
595# 600#
601CONFIG_MAC80211_RC_PID=y
596CONFIG_MAC80211_RC_DEFAULT_PID=y 602CONFIG_MAC80211_RC_DEFAULT_PID=y
597# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
598
599#
600# Selecting 'y' for an algorithm will
601#
602
603#
604# build the algorithm into mac80211.
605#
606CONFIG_MAC80211_RC_DEFAULT="pid" 603CONFIG_MAC80211_RC_DEFAULT="pid"
607CONFIG_MAC80211_RC_PID=y
608# CONFIG_MAC80211_MESH is not set 604# CONFIG_MAC80211_MESH is not set
609CONFIG_MAC80211_LEDS=y 605CONFIG_MAC80211_LEDS=y
610# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set 606# CONFIG_MAC80211_DEBUG_MENU is not set
611# CONFIG_MAC80211_DEBUG is not set
612CONFIG_IEEE80211=m 607CONFIG_IEEE80211=m
613# CONFIG_IEEE80211_DEBUG is not set 608# CONFIG_IEEE80211_DEBUG is not set
614CONFIG_IEEE80211_CRYPT_WEP=m 609CONFIG_IEEE80211_CRYPT_WEP=m
@@ -628,6 +623,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
628# CONFIG_STANDALONE is not set 623# CONFIG_STANDALONE is not set
629CONFIG_PREVENT_FIRMWARE_BUILD=y 624CONFIG_PREVENT_FIRMWARE_BUILD=y
630CONFIG_FW_LOADER=y 625CONFIG_FW_LOADER=y
626CONFIG_FIRMWARE_IN_KERNEL=y
627CONFIG_EXTRA_FIRMWARE=""
631# CONFIG_DEBUG_DRIVER is not set 628# CONFIG_DEBUG_DRIVER is not set
632# CONFIG_DEBUG_DEVRES is not set 629# CONFIG_DEBUG_DEVRES is not set
633# CONFIG_SYS_HYPERVISOR is not set 630# CONFIG_SYS_HYPERVISOR is not set
@@ -656,12 +653,14 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
656# CONFIG_BLK_DEV_XIP is not set 653# CONFIG_BLK_DEV_XIP is not set
657# CONFIG_CDROM_PKTCDVD is not set 654# CONFIG_CDROM_PKTCDVD is not set
658# CONFIG_ATA_OVER_ETH is not set 655# CONFIG_ATA_OVER_ETH is not set
656# CONFIG_BLK_DEV_HD is not set
659CONFIG_MISC_DEVICES=y 657CONFIG_MISC_DEVICES=y
660# CONFIG_PHANTOM is not set 658# CONFIG_PHANTOM is not set
661# CONFIG_EEPROM_93CX6 is not set 659# CONFIG_EEPROM_93CX6 is not set
662# CONFIG_SGI_IOC4 is not set 660# CONFIG_SGI_IOC4 is not set
663# CONFIG_TIFM_CORE is not set 661# CONFIG_TIFM_CORE is not set
664# CONFIG_ENCLOSURE_SERVICES is not set 662# CONFIG_ENCLOSURE_SERVICES is not set
663# CONFIG_HP_ILO is not set
665CONFIG_HAVE_IDE=y 664CONFIG_HAVE_IDE=y
666CONFIG_IDE=y 665CONFIG_IDE=y
667CONFIG_BLK_DEV_IDE=y 666CONFIG_BLK_DEV_IDE=y
@@ -669,6 +668,8 @@ CONFIG_BLK_DEV_IDE=y
669# 668#
670# Please see Documentation/ide/ide.txt for help/info on IDE drives 669# Please see Documentation/ide/ide.txt for help/info on IDE drives
671# 670#
671CONFIG_IDE_TIMINGS=y
672CONFIG_IDE_ATAPI=y
672# CONFIG_BLK_DEV_IDE_SATA is not set 673# CONFIG_BLK_DEV_IDE_SATA is not set
673CONFIG_BLK_DEV_IDEDISK=y 674CONFIG_BLK_DEV_IDEDISK=y
674# CONFIG_IDEDISK_MULTI_MODE is not set 675# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -685,7 +686,6 @@ CONFIG_IDE_PROC_FS=y
685# 686#
686# IDE chipset support/bugfixes 687# IDE chipset support/bugfixes
687# 688#
688# CONFIG_IDE_GENERIC is not set
689# CONFIG_BLK_DEV_PLATFORM is not set 689# CONFIG_BLK_DEV_PLATFORM is not set
690CONFIG_BLK_DEV_IDEDMA_SFF=y 690CONFIG_BLK_DEV_IDEDMA_SFF=y
691 691
@@ -703,10 +703,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
703# CONFIG_BLK_DEV_AMD74XX is not set 703# CONFIG_BLK_DEV_AMD74XX is not set
704# CONFIG_BLK_DEV_CMD64X is not set 704# CONFIG_BLK_DEV_CMD64X is not set
705# CONFIG_BLK_DEV_TRIFLEX is not set 705# CONFIG_BLK_DEV_TRIFLEX is not set
706# CONFIG_BLK_DEV_CY82C693 is not set
707# CONFIG_BLK_DEV_CS5520 is not set 706# CONFIG_BLK_DEV_CS5520 is not set
708# CONFIG_BLK_DEV_CS5530 is not set 707# CONFIG_BLK_DEV_CS5530 is not set
709# CONFIG_BLK_DEV_HPT34X is not set
710# CONFIG_BLK_DEV_HPT366 is not set 708# CONFIG_BLK_DEV_HPT366 is not set
711# CONFIG_BLK_DEV_JMICRON is not set 709# CONFIG_BLK_DEV_JMICRON is not set
712# CONFIG_BLK_DEV_SC1200 is not set 710# CONFIG_BLK_DEV_SC1200 is not set
@@ -727,8 +725,6 @@ CONFIG_BLK_DEV_IDE_PMAC=y
727CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 725CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
728CONFIG_BLK_DEV_IDEDMA_PMAC=y 726CONFIG_BLK_DEV_IDEDMA_PMAC=y
729CONFIG_BLK_DEV_IDEDMA=y 727CONFIG_BLK_DEV_IDEDMA=y
730# CONFIG_BLK_DEV_HD_ONLY is not set
731# CONFIG_BLK_DEV_HD is not set
732 728
733# 729#
734# SCSI device support 730# SCSI device support
@@ -820,6 +816,7 @@ CONFIG_SCSI_MESH_RESET_DELAY_MS=4000
820CONFIG_SCSI_MAC53C94=y 816CONFIG_SCSI_MAC53C94=y
821# CONFIG_SCSI_SRP is not set 817# CONFIG_SCSI_SRP is not set
822# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 818# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
819# CONFIG_SCSI_DH is not set
823# CONFIG_ATA is not set 820# CONFIG_ATA is not set
824CONFIG_MD=y 821CONFIG_MD=y
825CONFIG_BLK_DEV_MD=m 822CONFIG_BLK_DEV_MD=m
@@ -844,30 +841,22 @@ CONFIG_DM_ZERO=m
844# 841#
845# IEEE 1394 (FireWire) support 842# IEEE 1394 (FireWire) support
846# 843#
847# CONFIG_FIREWIRE is not set
848CONFIG_IEEE1394=m
849
850#
851# Subsystem Options
852#
853# CONFIG_IEEE1394_VERBOSEDEBUG is not set
854 844
855# 845#
856# Controllers 846# Enable only one of the two stacks, unless you know what you are doing
857# 847#
858# CONFIG_IEEE1394_PCILYNX is not set 848# CONFIG_FIREWIRE is not set
849CONFIG_IEEE1394=m
859CONFIG_IEEE1394_OHCI1394=m 850CONFIG_IEEE1394_OHCI1394=m
860 851# CONFIG_IEEE1394_PCILYNX is not set
861#
862# Protocols
863#
864CONFIG_IEEE1394_VIDEO1394=m
865CONFIG_IEEE1394_SBP2=m 852CONFIG_IEEE1394_SBP2=m
866# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set 853# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
867# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set 854# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set
868# CONFIG_IEEE1394_ETH1394 is not set 855# CONFIG_IEEE1394_ETH1394 is not set
869CONFIG_IEEE1394_DV1394=m
870CONFIG_IEEE1394_RAWIO=m 856CONFIG_IEEE1394_RAWIO=m
857CONFIG_IEEE1394_VIDEO1394=m
858CONFIG_IEEE1394_DV1394=m
859# CONFIG_IEEE1394_VERBOSEDEBUG is not set
871# CONFIG_I2O is not set 860# CONFIG_I2O is not set
872CONFIG_MACINTOSH_DRIVERS=y 861CONFIG_MACINTOSH_DRIVERS=y
873CONFIG_ADB=y 862CONFIG_ADB=y
@@ -887,7 +876,6 @@ CONFIG_THERM_ADT746X=m
887# CONFIG_ANSLCD is not set 876# CONFIG_ANSLCD is not set
888CONFIG_PMAC_RACKMETER=m 877CONFIG_PMAC_RACKMETER=m
889CONFIG_NETDEVICES=y 878CONFIG_NETDEVICES=y
890# CONFIG_NETDEVICES_MULTIQUEUE is not set
891CONFIG_DUMMY=m 879CONFIG_DUMMY=m
892# CONFIG_BONDING is not set 880# CONFIG_BONDING is not set
893# CONFIG_MACVLAN is not set 881# CONFIG_MACVLAN is not set
@@ -936,7 +924,6 @@ CONFIG_NETDEV_1000=y
936# CONFIG_DL2K is not set 924# CONFIG_DL2K is not set
937# CONFIG_E1000 is not set 925# CONFIG_E1000 is not set
938# CONFIG_E1000E is not set 926# CONFIG_E1000E is not set
939# CONFIG_E1000E_ENABLED is not set
940# CONFIG_IP1000 is not set 927# CONFIG_IP1000 is not set
941# CONFIG_IGB is not set 928# CONFIG_IGB is not set
942# CONFIG_NS83820 is not set 929# CONFIG_NS83820 is not set
@@ -952,6 +939,7 @@ CONFIG_NETDEV_1000=y
952# CONFIG_MV643XX_ETH is not set 939# CONFIG_MV643XX_ETH is not set
953# CONFIG_QLA3XXX is not set 940# CONFIG_QLA3XXX is not set
954# CONFIG_ATL1 is not set 941# CONFIG_ATL1 is not set
942# CONFIG_ATL1E is not set
955CONFIG_NETDEV_10000=y 943CONFIG_NETDEV_10000=y
956# CONFIG_CHELSIO_T1 is not set 944# CONFIG_CHELSIO_T1 is not set
957# CONFIG_CHELSIO_T3 is not set 945# CONFIG_CHELSIO_T3 is not set
@@ -994,13 +982,15 @@ CONFIG_PRISM54=m
994# CONFIG_RTL8180 is not set 982# CONFIG_RTL8180 is not set
995# CONFIG_RTL8187 is not set 983# CONFIG_RTL8187 is not set
996# CONFIG_ADM8211 is not set 984# CONFIG_ADM8211 is not set
985# CONFIG_MAC80211_HWSIM is not set
997CONFIG_P54_COMMON=m 986CONFIG_P54_COMMON=m
998# CONFIG_P54_USB is not set 987# CONFIG_P54_USB is not set
999# CONFIG_P54_PCI is not set 988# CONFIG_P54_PCI is not set
1000# CONFIG_ATH5K is not set 989# CONFIG_ATH5K is not set
990# CONFIG_ATH9K is not set
1001# CONFIG_IWLCORE is not set 991# CONFIG_IWLCORE is not set
1002# CONFIG_IWLWIFI_LEDS is not set 992# CONFIG_IWLWIFI_LEDS is not set
1003# CONFIG_IWL4965 is not set 993# CONFIG_IWLAGN is not set
1004# CONFIG_IWL3945 is not set 994# CONFIG_IWL3945 is not set
1005# CONFIG_HOSTAP is not set 995# CONFIG_HOSTAP is not set
1006CONFIG_B43=m 996CONFIG_B43=m
@@ -1095,6 +1085,7 @@ CONFIG_INPUT_MOUSE=y
1095# CONFIG_MOUSE_PS2 is not set 1085# CONFIG_MOUSE_PS2 is not set
1096# CONFIG_MOUSE_SERIAL is not set 1086# CONFIG_MOUSE_SERIAL is not set
1097# CONFIG_MOUSE_APPLETOUCH is not set 1087# CONFIG_MOUSE_APPLETOUCH is not set
1088# CONFIG_MOUSE_BCM5974 is not set
1098# CONFIG_MOUSE_VSXXXAA is not set 1089# CONFIG_MOUSE_VSXXXAA is not set
1099# CONFIG_INPUT_JOYSTICK is not set 1090# CONFIG_INPUT_JOYSTICK is not set
1100# CONFIG_INPUT_TABLET is not set 1091# CONFIG_INPUT_TABLET is not set
@@ -1109,12 +1100,14 @@ CONFIG_SERIO=y
1109# CONFIG_SERIO_SERPORT is not set 1100# CONFIG_SERIO_SERPORT is not set
1110# CONFIG_SERIO_PCIPS2 is not set 1101# CONFIG_SERIO_PCIPS2 is not set
1111# CONFIG_SERIO_RAW is not set 1102# CONFIG_SERIO_RAW is not set
1103# CONFIG_SERIO_XILINX_XPS_PS2 is not set
1112# CONFIG_GAMEPORT is not set 1104# CONFIG_GAMEPORT is not set
1113 1105
1114# 1106#
1115# Character devices 1107# Character devices
1116# 1108#
1117CONFIG_VT=y 1109CONFIG_VT=y
1110CONFIG_CONSOLE_TRANSLATIONS=y
1118CONFIG_VT_CONSOLE=y 1111CONFIG_VT_CONSOLE=y
1119CONFIG_HW_CONSOLE=y 1112CONFIG_HW_CONSOLE=y
1120# CONFIG_VT_HW_CONSOLE_BINDING is not set 1113# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -1165,45 +1158,70 @@ CONFIG_DEVPORT=y
1165CONFIG_I2C=y 1158CONFIG_I2C=y
1166CONFIG_I2C_BOARDINFO=y 1159CONFIG_I2C_BOARDINFO=y
1167CONFIG_I2C_CHARDEV=m 1160CONFIG_I2C_CHARDEV=m
1161CONFIG_I2C_HELPER_AUTO=y
1168CONFIG_I2C_ALGOBIT=y 1162CONFIG_I2C_ALGOBIT=y
1169 1163
1170# 1164#
1171# I2C Hardware Bus support 1165# I2C Hardware Bus support
1172# 1166#
1167
1168#
1169# PC SMBus host controller drivers
1170#
1173# CONFIG_I2C_ALI1535 is not set 1171# CONFIG_I2C_ALI1535 is not set
1174# CONFIG_I2C_ALI1563 is not set 1172# CONFIG_I2C_ALI1563 is not set
1175# CONFIG_I2C_ALI15X3 is not set 1173# CONFIG_I2C_ALI15X3 is not set
1176# CONFIG_I2C_AMD756 is not set 1174# CONFIG_I2C_AMD756 is not set
1177# CONFIG_I2C_AMD8111 is not set 1175# CONFIG_I2C_AMD8111 is not set
1178# CONFIG_I2C_I801 is not set 1176# CONFIG_I2C_I801 is not set
1179# CONFIG_I2C_I810 is not set 1177# CONFIG_I2C_ISCH is not set
1180# CONFIG_I2C_PIIX4 is not set 1178# CONFIG_I2C_PIIX4 is not set
1181CONFIG_I2C_POWERMAC=y
1182# CONFIG_I2C_MPC is not set
1183# CONFIG_I2C_NFORCE2 is not set 1179# CONFIG_I2C_NFORCE2 is not set
1184# CONFIG_I2C_OCORES is not set
1185# CONFIG_I2C_PARPORT_LIGHT is not set
1186# CONFIG_I2C_PROSAVAGE is not set
1187# CONFIG_I2C_SAVAGE4 is not set
1188# CONFIG_I2C_SIMTEC is not set
1189# CONFIG_I2C_SIS5595 is not set 1180# CONFIG_I2C_SIS5595 is not set
1190# CONFIG_I2C_SIS630 is not set 1181# CONFIG_I2C_SIS630 is not set
1191# CONFIG_I2C_SIS96X is not set 1182# CONFIG_I2C_SIS96X is not set
1192# CONFIG_I2C_TAOS_EVM is not set
1193# CONFIG_I2C_STUB is not set
1194# CONFIG_I2C_TINY_USB is not set
1195# CONFIG_I2C_VIA is not set 1183# CONFIG_I2C_VIA is not set
1196# CONFIG_I2C_VIAPRO is not set 1184# CONFIG_I2C_VIAPRO is not set
1185
1186#
1187# Mac SMBus host controller drivers
1188#
1189CONFIG_I2C_POWERMAC=y
1190
1191#
1192# I2C system bus drivers (mostly embedded / system-on-chip)
1193#
1194# CONFIG_I2C_MPC is not set
1195# CONFIG_I2C_OCORES is not set
1196# CONFIG_I2C_SIMTEC is not set
1197
1198#
1199# External I2C/SMBus adapter drivers
1200#
1201# CONFIG_I2C_PARPORT_LIGHT is not set
1202# CONFIG_I2C_TAOS_EVM is not set
1203# CONFIG_I2C_TINY_USB is not set
1204
1205#
1206# Graphics adapter I2C/DDC channel drivers
1207#
1197# CONFIG_I2C_VOODOO3 is not set 1208# CONFIG_I2C_VOODOO3 is not set
1209
1210#
1211# Other I2C/SMBus bus drivers
1212#
1198# CONFIG_I2C_PCA_PLATFORM is not set 1213# CONFIG_I2C_PCA_PLATFORM is not set
1214# CONFIG_I2C_STUB is not set
1199 1215
1200# 1216#
1201# Miscellaneous I2C Chip support 1217# Miscellaneous I2C Chip support
1202# 1218#
1203# CONFIG_DS1682 is not set 1219# CONFIG_DS1682 is not set
1220# CONFIG_AT24 is not set
1204# CONFIG_SENSORS_EEPROM is not set 1221# CONFIG_SENSORS_EEPROM is not set
1205# CONFIG_SENSORS_PCF8574 is not set 1222# CONFIG_SENSORS_PCF8574 is not set
1206# CONFIG_PCF8575 is not set 1223# CONFIG_PCF8575 is not set
1224# CONFIG_SENSORS_PCA9539 is not set
1207# CONFIG_SENSORS_PCF8591 is not set 1225# CONFIG_SENSORS_PCF8591 is not set
1208# CONFIG_SENSORS_MAX6875 is not set 1226# CONFIG_SENSORS_MAX6875 is not set
1209# CONFIG_SENSORS_TSL2550 is not set 1227# CONFIG_SENSORS_TSL2550 is not set
@@ -1212,6 +1230,8 @@ CONFIG_I2C_POWERMAC=y
1212# CONFIG_I2C_DEBUG_BUS is not set 1230# CONFIG_I2C_DEBUG_BUS is not set
1213# CONFIG_I2C_DEBUG_CHIP is not set 1231# CONFIG_I2C_DEBUG_CHIP is not set
1214# CONFIG_SPI is not set 1232# CONFIG_SPI is not set
1233CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1234# CONFIG_GPIOLIB is not set
1215# CONFIG_W1 is not set 1235# CONFIG_W1 is not set
1216CONFIG_POWER_SUPPLY=y 1236CONFIG_POWER_SUPPLY=y
1217# CONFIG_POWER_SUPPLY_DEBUG is not set 1237# CONFIG_POWER_SUPPLY_DEBUG is not set
@@ -1221,6 +1241,7 @@ CONFIG_APM_POWER=y
1221CONFIG_BATTERY_PMU=y 1241CONFIG_BATTERY_PMU=y
1222# CONFIG_HWMON is not set 1242# CONFIG_HWMON is not set
1223# CONFIG_THERMAL is not set 1243# CONFIG_THERMAL is not set
1244# CONFIG_THERMAL_HWMON is not set
1224# CONFIG_WATCHDOG is not set 1245# CONFIG_WATCHDOG is not set
1225 1246
1226# 1247#
@@ -1241,8 +1262,10 @@ CONFIG_SSB_DRIVER_PCICORE=y
1241# 1262#
1242# Multifunction device drivers 1263# Multifunction device drivers
1243# 1264#
1265# CONFIG_MFD_CORE is not set
1244# CONFIG_MFD_SM501 is not set 1266# CONFIG_MFD_SM501 is not set
1245# CONFIG_HTC_PASIC3 is not set 1267# CONFIG_HTC_PASIC3 is not set
1268# CONFIG_MFD_TMIO is not set
1246 1269
1247# 1270#
1248# Multimedia devices 1271# Multimedia devices
@@ -1343,10 +1366,13 @@ CONFIG_FB_3DFX=y
1343# CONFIG_FB_TRIDENT is not set 1366# CONFIG_FB_TRIDENT is not set
1344# CONFIG_FB_ARK is not set 1367# CONFIG_FB_ARK is not set
1345# CONFIG_FB_PM3 is not set 1368# CONFIG_FB_PM3 is not set
1369# CONFIG_FB_CARMINE is not set
1346# CONFIG_FB_IBM_GXT4500 is not set 1370# CONFIG_FB_IBM_GXT4500 is not set
1347# CONFIG_FB_VIRTUAL is not set 1371# CONFIG_FB_VIRTUAL is not set
1348CONFIG_BACKLIGHT_LCD_SUPPORT=y 1372CONFIG_BACKLIGHT_LCD_SUPPORT=y
1349CONFIG_LCD_CLASS_DEVICE=m 1373CONFIG_LCD_CLASS_DEVICE=m
1374# CONFIG_LCD_ILI9320 is not set
1375# CONFIG_LCD_PLATFORM is not set
1350CONFIG_BACKLIGHT_CLASS_DEVICE=y 1376CONFIG_BACKLIGHT_CLASS_DEVICE=y
1351# CONFIG_BACKLIGHT_CORGI is not set 1377# CONFIG_BACKLIGHT_CORGI is not set
1352 1378
@@ -1374,15 +1400,7 @@ CONFIG_LOGO=y
1374CONFIG_LOGO_LINUX_MONO=y 1400CONFIG_LOGO_LINUX_MONO=y
1375CONFIG_LOGO_LINUX_VGA16=y 1401CONFIG_LOGO_LINUX_VGA16=y
1376CONFIG_LOGO_LINUX_CLUT224=y 1402CONFIG_LOGO_LINUX_CLUT224=y
1377
1378#
1379# Sound
1380#
1381CONFIG_SOUND=m 1403CONFIG_SOUND=m
1382
1383#
1384# Advanced Linux Sound Architecture
1385#
1386CONFIG_SND=m 1404CONFIG_SND=m
1387CONFIG_SND_TIMER=m 1405CONFIG_SND_TIMER=m
1388CONFIG_SND_PCM=m 1406CONFIG_SND_PCM=m
@@ -1400,19 +1418,13 @@ CONFIG_SND_SUPPORT_OLD_API=y
1400CONFIG_SND_VERBOSE_PROCFS=y 1418CONFIG_SND_VERBOSE_PROCFS=y
1401# CONFIG_SND_VERBOSE_PRINTK is not set 1419# CONFIG_SND_VERBOSE_PRINTK is not set
1402# CONFIG_SND_DEBUG is not set 1420# CONFIG_SND_DEBUG is not set
1403 1421CONFIG_SND_DRIVERS=y
1404#
1405# Generic devices
1406#
1407CONFIG_SND_DUMMY=m 1422CONFIG_SND_DUMMY=m
1408# CONFIG_SND_VIRMIDI is not set 1423# CONFIG_SND_VIRMIDI is not set
1409# CONFIG_SND_MTPAV is not set 1424# CONFIG_SND_MTPAV is not set
1410# CONFIG_SND_SERIAL_U16550 is not set 1425# CONFIG_SND_SERIAL_U16550 is not set
1411# CONFIG_SND_MPU401 is not set 1426# CONFIG_SND_MPU401 is not set
1412 1427CONFIG_SND_PCI=y
1413#
1414# PCI devices
1415#
1416# CONFIG_SND_AD1889 is not set 1428# CONFIG_SND_AD1889 is not set
1417# CONFIG_SND_ALS300 is not set 1429# CONFIG_SND_ALS300 is not set
1418# CONFIG_SND_ALS4000 is not set 1430# CONFIG_SND_ALS4000 is not set
@@ -1474,20 +1486,9 @@ CONFIG_SND_DUMMY=m
1474# CONFIG_SND_VIRTUOSO is not set 1486# CONFIG_SND_VIRTUOSO is not set
1475# CONFIG_SND_VX222 is not set 1487# CONFIG_SND_VX222 is not set
1476# CONFIG_SND_YMFPCI is not set 1488# CONFIG_SND_YMFPCI is not set
1477 1489CONFIG_SND_PPC=y
1478#
1479# ALSA PowerMac devices
1480#
1481CONFIG_SND_POWERMAC=m 1490CONFIG_SND_POWERMAC=m
1482CONFIG_SND_POWERMAC_AUTO_DRC=y 1491CONFIG_SND_POWERMAC_AUTO_DRC=y
1483
1484#
1485# ALSA PowerPC devices
1486#
1487
1488#
1489# Apple Onboard Audio driver
1490#
1491CONFIG_SND_AOA=m 1492CONFIG_SND_AOA=m
1492CONFIG_SND_AOA_FABRIC_LAYOUT=m 1493CONFIG_SND_AOA_FABRIC_LAYOUT=m
1493CONFIG_SND_AOA_ONYX=m 1494CONFIG_SND_AOA_ONYX=m
@@ -1495,36 +1496,14 @@ CONFIG_SND_AOA_TAS=m
1495CONFIG_SND_AOA_TOONIE=m 1496CONFIG_SND_AOA_TOONIE=m
1496CONFIG_SND_AOA_SOUNDBUS=m 1497CONFIG_SND_AOA_SOUNDBUS=m
1497CONFIG_SND_AOA_SOUNDBUS_I2S=m 1498CONFIG_SND_AOA_SOUNDBUS_I2S=m
1498 1499CONFIG_SND_USB=y
1499#
1500# USB devices
1501#
1502CONFIG_SND_USB_AUDIO=m 1500CONFIG_SND_USB_AUDIO=m
1503# CONFIG_SND_USB_USX2Y is not set 1501# CONFIG_SND_USB_USX2Y is not set
1504# CONFIG_SND_USB_CAIAQ is not set 1502# CONFIG_SND_USB_CAIAQ is not set
1505 1503CONFIG_SND_PCMCIA=y
1506#
1507# PCMCIA devices
1508#
1509# CONFIG_SND_VXPOCKET is not set 1504# CONFIG_SND_VXPOCKET is not set
1510# CONFIG_SND_PDAUDIOCF is not set 1505# CONFIG_SND_PDAUDIOCF is not set
1511
1512#
1513# System on Chip audio support
1514#
1515# CONFIG_SND_SOC is not set 1506# CONFIG_SND_SOC is not set
1516
1517#
1518# ALSA SoC audio for Freescale SOCs
1519#
1520
1521#
1522# SoC Audio for the Texas Instruments OMAP
1523#
1524
1525#
1526# Open Sound System
1527#
1528# CONFIG_SOUND_PRIME is not set 1507# CONFIG_SOUND_PRIME is not set
1529CONFIG_HID_SUPPORT=y 1508CONFIG_HID_SUPPORT=y
1530CONFIG_HID=y 1509CONFIG_HID=y
@@ -1554,6 +1533,7 @@ CONFIG_USB_DEVICE_CLASS=y
1554CONFIG_USB_DYNAMIC_MINORS=y 1533CONFIG_USB_DYNAMIC_MINORS=y
1555# CONFIG_USB_SUSPEND is not set 1534# CONFIG_USB_SUSPEND is not set
1556# CONFIG_USB_OTG is not set 1535# CONFIG_USB_OTG is not set
1536CONFIG_USB_MON=y
1557 1537
1558# 1538#
1559# USB Host Controller Drivers 1539# USB Host Controller Drivers
@@ -1579,6 +1559,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1579# 1559#
1580CONFIG_USB_ACM=m 1560CONFIG_USB_ACM=m
1581CONFIG_USB_PRINTER=m 1561CONFIG_USB_PRINTER=m
1562# CONFIG_USB_WDM is not set
1582 1563
1583# 1564#
1584# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1565# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1600,6 +1581,7 @@ CONFIG_USB_STORAGE=m
1600# CONFIG_USB_STORAGE_ALAUDA is not set 1581# CONFIG_USB_STORAGE_ALAUDA is not set
1601CONFIG_USB_STORAGE_ONETOUCH=y 1582CONFIG_USB_STORAGE_ONETOUCH=y
1602# CONFIG_USB_STORAGE_KARMA is not set 1583# CONFIG_USB_STORAGE_KARMA is not set
1584# CONFIG_USB_STORAGE_SIERRA is not set
1603# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1585# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1604# CONFIG_USB_LIBUSUAL is not set 1586# CONFIG_USB_LIBUSUAL is not set
1605 1587
@@ -1608,7 +1590,6 @@ CONFIG_USB_STORAGE_ONETOUCH=y
1608# 1590#
1609# CONFIG_USB_MDC800 is not set 1591# CONFIG_USB_MDC800 is not set
1610# CONFIG_USB_MICROTEK is not set 1592# CONFIG_USB_MICROTEK is not set
1611CONFIG_USB_MON=y
1612 1593
1613# 1594#
1614# USB port drivers 1595# USB port drivers
@@ -1617,7 +1598,6 @@ CONFIG_USB_SERIAL=m
1617CONFIG_USB_EZUSB=y 1598CONFIG_USB_EZUSB=y
1618# CONFIG_USB_SERIAL_GENERIC is not set 1599# CONFIG_USB_SERIAL_GENERIC is not set
1619# CONFIG_USB_SERIAL_AIRCABLE is not set 1600# CONFIG_USB_SERIAL_AIRCABLE is not set
1620# CONFIG_USB_SERIAL_AIRPRIME is not set
1621# CONFIG_USB_SERIAL_ARK3116 is not set 1601# CONFIG_USB_SERIAL_ARK3116 is not set
1622# CONFIG_USB_SERIAL_BELKIN is not set 1602# CONFIG_USB_SERIAL_BELKIN is not set
1623# CONFIG_USB_SERIAL_CH341 is not set 1603# CONFIG_USB_SERIAL_CH341 is not set
@@ -1676,7 +1656,6 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
1676# CONFIG_USB_EMI62 is not set 1656# CONFIG_USB_EMI62 is not set
1677# CONFIG_USB_EMI26 is not set 1657# CONFIG_USB_EMI26 is not set
1678# CONFIG_USB_ADUTUX is not set 1658# CONFIG_USB_ADUTUX is not set
1679# CONFIG_USB_AUERSWALD is not set
1680# CONFIG_USB_RIO500 is not set 1659# CONFIG_USB_RIO500 is not set
1681# CONFIG_USB_LEGOTOWER is not set 1660# CONFIG_USB_LEGOTOWER is not set
1682# CONFIG_USB_LCD is not set 1661# CONFIG_USB_LCD is not set
@@ -1693,6 +1672,7 @@ CONFIG_USB_APPLEDISPLAY=m
1693# CONFIG_USB_TRANCEVIBRATOR is not set 1672# CONFIG_USB_TRANCEVIBRATOR is not set
1694# CONFIG_USB_IOWARRIOR is not set 1673# CONFIG_USB_IOWARRIOR is not set
1695# CONFIG_USB_TEST is not set 1674# CONFIG_USB_TEST is not set
1675# CONFIG_USB_ISIGHTFW is not set
1696# CONFIG_USB_GADGET is not set 1676# CONFIG_USB_GADGET is not set
1697# CONFIG_MMC is not set 1677# CONFIG_MMC is not set
1698# CONFIG_MEMSTICK is not set 1678# CONFIG_MEMSTICK is not set
@@ -1702,6 +1682,8 @@ CONFIG_LEDS_CLASS=y
1702# 1682#
1703# LED drivers 1683# LED drivers
1704# 1684#
1685# CONFIG_LEDS_PCA9532 is not set
1686# CONFIG_LEDS_PCA955X is not set
1705 1687
1706# 1688#
1707# LED Triggers 1689# LED Triggers
@@ -1789,6 +1771,7 @@ CONFIG_HFSPLUS_FS=m
1789# CONFIG_CRAMFS is not set 1771# CONFIG_CRAMFS is not set
1790# CONFIG_VXFS_FS is not set 1772# CONFIG_VXFS_FS is not set
1791# CONFIG_MINIX_FS is not set 1773# CONFIG_MINIX_FS is not set
1774# CONFIG_OMFS_FS is not set
1792# CONFIG_HPFS_FS is not set 1775# CONFIG_HPFS_FS is not set
1793# CONFIG_QNX4FS_FS is not set 1776# CONFIG_QNX4FS_FS is not set
1794# CONFIG_ROMFS_FS is not set 1777# CONFIG_ROMFS_FS is not set
@@ -1811,7 +1794,6 @@ CONFIG_NFS_ACL_SUPPORT=y
1811CONFIG_NFS_COMMON=y 1794CONFIG_NFS_COMMON=y
1812CONFIG_SUNRPC=y 1795CONFIG_SUNRPC=y
1813CONFIG_SUNRPC_GSS=y 1796CONFIG_SUNRPC_GSS=y
1814# CONFIG_SUNRPC_BIND34 is not set
1815CONFIG_RPCSEC_GSS_KRB5=y 1797CONFIG_RPCSEC_GSS_KRB5=y
1816# CONFIG_RPCSEC_GSS_SPKM3 is not set 1798# CONFIG_RPCSEC_GSS_SPKM3 is not set
1817CONFIG_SMB_FS=m 1799CONFIG_SMB_FS=m
@@ -1891,6 +1873,7 @@ CONFIG_BITREVERSE=y
1891# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1873# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1892CONFIG_CRC_CCITT=y 1874CONFIG_CRC_CCITT=y
1893CONFIG_CRC16=y 1875CONFIG_CRC16=y
1876CONFIG_CRC_T10DIF=y
1894CONFIG_CRC_ITU_T=m 1877CONFIG_CRC_ITU_T=m
1895CONFIG_CRC32=y 1878CONFIG_CRC32=y
1896# CONFIG_CRC7 is not set 1879# CONFIG_CRC7 is not set
@@ -1921,8 +1904,10 @@ CONFIG_MAGIC_SYSRQ=y
1921CONFIG_DEBUG_KERNEL=y 1904CONFIG_DEBUG_KERNEL=y
1922# CONFIG_DEBUG_SHIRQ is not set 1905# CONFIG_DEBUG_SHIRQ is not set
1923CONFIG_DETECT_SOFTLOCKUP=y 1906CONFIG_DETECT_SOFTLOCKUP=y
1907# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1908CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1924CONFIG_SCHED_DEBUG=y 1909CONFIG_SCHED_DEBUG=y
1925# CONFIG_SCHEDSTATS is not set 1910CONFIG_SCHEDSTATS=y
1926# CONFIG_TIMER_STATS is not set 1911# CONFIG_TIMER_STATS is not set
1927# CONFIG_DEBUG_OBJECTS is not set 1912# CONFIG_DEBUG_OBJECTS is not set
1928# CONFIG_SLUB_DEBUG_ON is not set 1913# CONFIG_SLUB_DEBUG_ON is not set
@@ -1933,24 +1918,38 @@ CONFIG_SCHED_DEBUG=y
1933# CONFIG_DEBUG_MUTEXES is not set 1918# CONFIG_DEBUG_MUTEXES is not set
1934# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1919# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1935# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1920# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1921CONFIG_STACKTRACE=y
1936# CONFIG_DEBUG_KOBJECT is not set 1922# CONFIG_DEBUG_KOBJECT is not set
1937CONFIG_DEBUG_BUGVERBOSE=y 1923CONFIG_DEBUG_BUGVERBOSE=y
1938# CONFIG_DEBUG_INFO is not set 1924# CONFIG_DEBUG_INFO is not set
1939# CONFIG_DEBUG_VM is not set 1925# CONFIG_DEBUG_VM is not set
1940# CONFIG_DEBUG_WRITECOUNT is not set 1926# CONFIG_DEBUG_WRITECOUNT is not set
1927CONFIG_DEBUG_MEMORY_INIT=y
1941# CONFIG_DEBUG_LIST is not set 1928# CONFIG_DEBUG_LIST is not set
1942# CONFIG_DEBUG_SG is not set 1929# CONFIG_DEBUG_SG is not set
1930CONFIG_FRAME_POINTER=y
1943# CONFIG_BOOT_PRINTK_DELAY is not set 1931# CONFIG_BOOT_PRINTK_DELAY is not set
1944# CONFIG_RCU_TORTURE_TEST is not set 1932# CONFIG_RCU_TORTURE_TEST is not set
1945# CONFIG_BACKTRACE_SELF_TEST is not set 1933# CONFIG_BACKTRACE_SELF_TEST is not set
1946# CONFIG_FAULT_INJECTION is not set 1934# CONFIG_FAULT_INJECTION is not set
1935CONFIG_LATENCYTOP=y
1936CONFIG_SYSCTL_SYSCALL_CHECK=y
1937CONFIG_HAVE_FTRACE=y
1938CONFIG_HAVE_DYNAMIC_FTRACE=y
1939# CONFIG_FTRACE is not set
1940# CONFIG_SCHED_TRACER is not set
1941# CONFIG_CONTEXT_SWITCH_TRACER is not set
1947# CONFIG_SAMPLES is not set 1942# CONFIG_SAMPLES is not set
1943CONFIG_HAVE_ARCH_KGDB=y
1944# CONFIG_KGDB is not set
1948# CONFIG_DEBUG_STACKOVERFLOW is not set 1945# CONFIG_DEBUG_STACKOVERFLOW is not set
1949# CONFIG_DEBUG_STACK_USAGE is not set 1946# CONFIG_DEBUG_STACK_USAGE is not set
1950CONFIG_DEBUGGER=y 1947# CONFIG_CODE_PATCHING_SELFTEST is not set
1948# CONFIG_FTR_FIXUP_SELFTEST is not set
1951CONFIG_XMON=y 1949CONFIG_XMON=y
1952CONFIG_XMON_DEFAULT=y 1950CONFIG_XMON_DEFAULT=y
1953CONFIG_XMON_DISASSEMBLY=y 1951CONFIG_XMON_DISASSEMBLY=y
1952CONFIG_DEBUGGER=y
1954CONFIG_IRQSTACKS=y 1953CONFIG_IRQSTACKS=y
1955# CONFIG_BDI_SWITCH is not set 1954# CONFIG_BDI_SWITCH is not set
1956CONFIG_BOOTX_TEXT=y 1955CONFIG_BOOTX_TEXT=y
@@ -2009,6 +2008,10 @@ CONFIG_CRYPTO_CRC32C=m
2009CONFIG_CRYPTO_MD4=m 2008CONFIG_CRYPTO_MD4=m
2010CONFIG_CRYPTO_MD5=y 2009CONFIG_CRYPTO_MD5=y
2011CONFIG_CRYPTO_MICHAEL_MIC=m 2010CONFIG_CRYPTO_MICHAEL_MIC=m
2011# CONFIG_CRYPTO_RMD128 is not set
2012# CONFIG_CRYPTO_RMD160 is not set
2013# CONFIG_CRYPTO_RMD256 is not set
2014# CONFIG_CRYPTO_RMD320 is not set
2012CONFIG_CRYPTO_SHA1=y 2015CONFIG_CRYPTO_SHA1=y
2013CONFIG_CRYPTO_SHA256=m 2016CONFIG_CRYPTO_SHA256=m
2014CONFIG_CRYPTO_SHA512=m 2017CONFIG_CRYPTO_SHA512=m
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index ce250bc9858..fc5930caeb5 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc6 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 16 21:11:19 2008 4# Tue Aug 26 13:22:03 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -14,6 +14,7 @@ CONFIG_POWER4=y
14# CONFIG_TUNE_CELL is not set 14# CONFIG_TUNE_CELL is not set
15CONFIG_PPC_FPU=y 15CONFIG_PPC_FPU=y
16CONFIG_ALTIVEC=y 16CONFIG_ALTIVEC=y
17CONFIG_VSX=y
17CONFIG_PPC_STD_MMU=y 18CONFIG_PPC_STD_MMU=y
18CONFIG_PPC_MM_SLICES=y 19CONFIG_PPC_MM_SLICES=y
19CONFIG_VIRT_CPU_ACCOUNTING=y 20CONFIG_VIRT_CPU_ACCOUNTING=y
@@ -31,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y 32CONFIG_HAVE_SETUP_PER_CPU_AREA=y
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_TRACE_IRQFLAGS_SUPPORT=y 36CONFIG_TRACE_IRQFLAGS_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -105,7 +107,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
105CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
106# CONFIG_EMBEDDED is not set 108# CONFIG_EMBEDDED is not set
107CONFIG_SYSCTL_SYSCALL=y 109CONFIG_SYSCTL_SYSCALL=y
108CONFIG_SYSCTL_SYSCALL_CHECK=y
109CONFIG_KALLSYMS=y 110CONFIG_KALLSYMS=y
110CONFIG_KALLSYMS_ALL=y 111CONFIG_KALLSYMS_ALL=y
111# CONFIG_KALLSYMS_EXTRA_PASS is not set 112# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -129,14 +130,20 @@ CONFIG_SLUB_DEBUG=y
129CONFIG_SLUB=y 130CONFIG_SLUB=y
130# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
131CONFIG_PROFILING=y 132CONFIG_PROFILING=y
132# CONFIG_MARKERS is not set 133CONFIG_MARKERS=y
133CONFIG_OPROFILE=y 134CONFIG_OPROFILE=y
134CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
135# CONFIG_KPROBES is not set 136# CONFIG_KPROBES is not set
137CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
138CONFIG_HAVE_IOREMAP_PROT=y
136CONFIG_HAVE_KPROBES=y 139CONFIG_HAVE_KPROBES=y
137CONFIG_HAVE_KRETPROBES=y 140CONFIG_HAVE_KRETPROBES=y
138# CONFIG_HAVE_DMA_ATTRS is not set 141CONFIG_HAVE_ARCH_TRACEHOOK=y
142CONFIG_HAVE_DMA_ATTRS=y
143CONFIG_USE_GENERIC_SMP_HELPERS=y
144# CONFIG_HAVE_CLK is not set
139CONFIG_PROC_PAGE_MONITOR=y 145CONFIG_PROC_PAGE_MONITOR=y
146# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
140CONFIG_SLABINFO=y 147CONFIG_SLABINFO=y
141CONFIG_RT_MUTEXES=y 148CONFIG_RT_MUTEXES=y
142# CONFIG_TINY_SHMEM is not set 149# CONFIG_TINY_SHMEM is not set
@@ -152,6 +159,7 @@ CONFIG_STOP_MACHINE=y
152CONFIG_BLOCK=y 159CONFIG_BLOCK=y
153CONFIG_BLK_DEV_IO_TRACE=y 160CONFIG_BLK_DEV_IO_TRACE=y
154CONFIG_BLK_DEV_BSG=y 161CONFIG_BLK_DEV_BSG=y
162# CONFIG_BLK_DEV_INTEGRITY is not set
155CONFIG_BLOCK_COMPAT=y 163CONFIG_BLOCK_COMPAT=y
156 164
157# 165#
@@ -172,14 +180,13 @@ CONFIG_CLASSIC_RCU=y
172# Platform support 180# Platform support
173# 181#
174CONFIG_PPC_MULTIPLATFORM=y 182CONFIG_PPC_MULTIPLATFORM=y
175# CONFIG_PPC_82xx is not set
176# CONFIG_PPC_83xx is not set
177# CONFIG_PPC_86xx is not set
178CONFIG_PPC_PSERIES=y 183CONFIG_PPC_PSERIES=y
179CONFIG_PPC_SPLPAR=y 184CONFIG_PPC_SPLPAR=y
180CONFIG_EEH=y 185CONFIG_EEH=y
181CONFIG_SCANLOG=m 186CONFIG_SCANLOG=m
182CONFIG_LPARCFG=y 187CONFIG_LPARCFG=y
188CONFIG_PPC_SMLPAR=y
189CONFIG_CMM=y
183CONFIG_PPC_ISERIES=y 190CONFIG_PPC_ISERIES=y
184 191
185# 192#
@@ -189,8 +196,6 @@ CONFIG_VIODASD=y
189CONFIG_VIOCD=m 196CONFIG_VIOCD=m
190CONFIG_VIOTAPE=m 197CONFIG_VIOTAPE=m
191CONFIG_VIOPATH=y 198CONFIG_VIOPATH=y
192# CONFIG_PPC_MPC512x is not set
193# CONFIG_PPC_MPC5121 is not set
194CONFIG_PPC_PMAC=y 199CONFIG_PPC_PMAC=y
195CONFIG_PPC_PMAC64=y 200CONFIG_PPC_PMAC64=y
196CONFIG_PPC_MAPLE=y 201CONFIG_PPC_MAPLE=y
@@ -213,11 +218,15 @@ CONFIG_PPC_CELLEB=y
213# 218#
214CONFIG_SPU_FS=m 219CONFIG_SPU_FS=m
215CONFIG_SPU_FS_64K_LS=y 220CONFIG_SPU_FS_64K_LS=y
221# CONFIG_SPU_TRACE is not set
216CONFIG_SPU_BASE=y 222CONFIG_SPU_BASE=y
217CONFIG_CBE_RAS=y 223CONFIG_CBE_RAS=y
224CONFIG_PPC_IBM_CELL_RESETBUTTON=y
225CONFIG_PPC_IBM_CELL_POWERBUTTON=m
218CONFIG_CBE_THERM=m 226CONFIG_CBE_THERM=m
219CONFIG_CBE_CPUFREQ=m 227CONFIG_CBE_CPUFREQ=m
220CONFIG_CBE_CPUFREQ_PMI=m 228CONFIG_CBE_CPUFREQ_PMI=m
229CONFIG_CBE_CPUFREQ_SPU_GOVERNOR=m
221CONFIG_OPROFILE_CELL=y 230CONFIG_OPROFILE_CELL=y
222# CONFIG_PQ2ADS is not set 231# CONFIG_PQ2ADS is not set
223CONFIG_PPC_NATIVE=y 232CONFIG_PPC_NATIVE=y
@@ -279,7 +288,7 @@ CONFIG_HZ_250=y
279# CONFIG_HZ_300 is not set 288# CONFIG_HZ_300 is not set
280# CONFIG_HZ_1000 is not set 289# CONFIG_HZ_1000 is not set
281CONFIG_HZ=250 290CONFIG_HZ=250
282# CONFIG_SCHED_HRTICK is not set 291CONFIG_SCHED_HRTICK=y
283CONFIG_PREEMPT_NONE=y 292CONFIG_PREEMPT_NONE=y
284# CONFIG_PREEMPT_VOLUNTARY is not set 293# CONFIG_PREEMPT_VOLUNTARY is not set
285# CONFIG_PREEMPT is not set 294# CONFIG_PREEMPT is not set
@@ -315,8 +324,10 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
315CONFIG_SPARSEMEM_VMEMMAP=y 324CONFIG_SPARSEMEM_VMEMMAP=y
316CONFIG_MEMORY_HOTPLUG=y 325CONFIG_MEMORY_HOTPLUG=y
317CONFIG_MEMORY_HOTPLUG_SPARSE=y 326CONFIG_MEMORY_HOTPLUG_SPARSE=y
327CONFIG_MEMORY_HOTREMOVE=y
318CONFIG_PAGEFLAGS_EXTENDED=y 328CONFIG_PAGEFLAGS_EXTENDED=y
319CONFIG_SPLIT_PTLOCK_CPUS=4 329CONFIG_SPLIT_PTLOCK_CPUS=4
330CONFIG_MIGRATION=y
320CONFIG_RESOURCES_64BIT=y 331CONFIG_RESOURCES_64BIT=y
321CONFIG_ZONE_DMA_FLAG=1 332CONFIG_ZONE_DMA_FLAG=1
322CONFIG_BOUNCE=y 333CONFIG_BOUNCE=y
@@ -327,6 +338,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
327# CONFIG_SCHED_SMT is not set 338# CONFIG_SCHED_SMT is not set
328CONFIG_PROC_DEVICETREE=y 339CONFIG_PROC_DEVICETREE=y
329# CONFIG_CMDLINE_BOOL is not set 340# CONFIG_CMDLINE_BOOL is not set
341CONFIG_EXTRA_TARGETS=""
330CONFIG_ARCH_WANTS_FREEZER_CONTROL=y 342CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
331# CONFIG_PM is not set 343# CONFIG_PM is not set
332CONFIG_SECCOMP=y 344CONFIG_SECCOMP=y
@@ -370,10 +382,6 @@ CONFIG_HOTPLUG_PCI_RPA_DLPAR=m
370CONFIG_PAGE_OFFSET=0xc000000000000000 382CONFIG_PAGE_OFFSET=0xc000000000000000
371CONFIG_KERNEL_START=0xc000000000000000 383CONFIG_KERNEL_START=0xc000000000000000
372CONFIG_PHYSICAL_START=0x00000000 384CONFIG_PHYSICAL_START=0x00000000
373
374#
375# Networking
376#
377CONFIG_NET=y 385CONFIG_NET=y
378 386
379# 387#
@@ -387,6 +395,7 @@ CONFIG_XFRM_USER=m
387# CONFIG_XFRM_SUB_POLICY is not set 395# CONFIG_XFRM_SUB_POLICY is not set
388# CONFIG_XFRM_MIGRATE is not set 396# CONFIG_XFRM_MIGRATE is not set
389# CONFIG_XFRM_STATISTICS is not set 397# CONFIG_XFRM_STATISTICS is not set
398CONFIG_XFRM_IPCOMP=m
390CONFIG_NET_KEY=m 399CONFIG_NET_KEY=m
391# CONFIG_NET_KEY_MIGRATE is not set 400# CONFIG_NET_KEY_MIGRATE is not set
392CONFIG_INET=y 401CONFIG_INET=y
@@ -578,6 +587,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
578CONFIG_STANDALONE=y 587CONFIG_STANDALONE=y
579CONFIG_PREVENT_FIRMWARE_BUILD=y 588CONFIG_PREVENT_FIRMWARE_BUILD=y
580CONFIG_FW_LOADER=y 589CONFIG_FW_LOADER=y
590CONFIG_FIRMWARE_IN_KERNEL=y
591CONFIG_EXTRA_FIRMWARE=""
581# CONFIG_DEBUG_DRIVER is not set 592# CONFIG_DEBUG_DRIVER is not set
582# CONFIG_DEBUG_DEVRES is not set 593# CONFIG_DEBUG_DEVRES is not set
583# CONFIG_SYS_HYPERVISOR is not set 594# CONFIG_SYS_HYPERVISOR is not set
@@ -603,12 +614,14 @@ CONFIG_BLK_DEV_RAM_SIZE=65536
603# CONFIG_BLK_DEV_XIP is not set 614# CONFIG_BLK_DEV_XIP is not set
604# CONFIG_CDROM_PKTCDVD is not set 615# CONFIG_CDROM_PKTCDVD is not set
605# CONFIG_ATA_OVER_ETH is not set 616# CONFIG_ATA_OVER_ETH is not set
617# CONFIG_BLK_DEV_HD is not set
606CONFIG_MISC_DEVICES=y 618CONFIG_MISC_DEVICES=y
607# CONFIG_PHANTOM is not set 619# CONFIG_PHANTOM is not set
608# CONFIG_EEPROM_93CX6 is not set 620# CONFIG_EEPROM_93CX6 is not set
609# CONFIG_SGI_IOC4 is not set 621# CONFIG_SGI_IOC4 is not set
610# CONFIG_TIFM_CORE is not set 622# CONFIG_TIFM_CORE is not set
611# CONFIG_ENCLOSURE_SERVICES is not set 623# CONFIG_ENCLOSURE_SERVICES is not set
624# CONFIG_HP_ILO is not set
612CONFIG_HAVE_IDE=y 625CONFIG_HAVE_IDE=y
613CONFIG_IDE=y 626CONFIG_IDE=y
614CONFIG_BLK_DEV_IDE=y 627CONFIG_BLK_DEV_IDE=y
@@ -616,6 +629,7 @@ CONFIG_BLK_DEV_IDE=y
616# 629#
617# Please see Documentation/ide/ide.txt for help/info on IDE drives 630# Please see Documentation/ide/ide.txt for help/info on IDE drives
618# 631#
632CONFIG_IDE_TIMINGS=y
619# CONFIG_BLK_DEV_IDE_SATA is not set 633# CONFIG_BLK_DEV_IDE_SATA is not set
620CONFIG_BLK_DEV_IDEDISK=y 634CONFIG_BLK_DEV_IDEDISK=y
621# CONFIG_IDEDISK_MULTI_MODE is not set 635# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -649,10 +663,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
649CONFIG_BLK_DEV_AMD74XX=y 663CONFIG_BLK_DEV_AMD74XX=y
650# CONFIG_BLK_DEV_CMD64X is not set 664# CONFIG_BLK_DEV_CMD64X is not set
651# CONFIG_BLK_DEV_TRIFLEX is not set 665# CONFIG_BLK_DEV_TRIFLEX is not set
652# CONFIG_BLK_DEV_CY82C693 is not set
653# CONFIG_BLK_DEV_CS5520 is not set 666# CONFIG_BLK_DEV_CS5520 is not set
654# CONFIG_BLK_DEV_CS5530 is not set 667# CONFIG_BLK_DEV_CS5530 is not set
655# CONFIG_BLK_DEV_HPT34X is not set
656# CONFIG_BLK_DEV_HPT366 is not set 668# CONFIG_BLK_DEV_HPT366 is not set
657# CONFIG_BLK_DEV_JMICRON is not set 669# CONFIG_BLK_DEV_JMICRON is not set
658# CONFIG_BLK_DEV_SC1200 is not set 670# CONFIG_BLK_DEV_SC1200 is not set
@@ -674,8 +686,6 @@ CONFIG_BLK_DEV_IDE_PMAC=y
674CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 686CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
675CONFIG_BLK_DEV_IDEDMA_PMAC=y 687CONFIG_BLK_DEV_IDEDMA_PMAC=y
676CONFIG_BLK_DEV_IDEDMA=y 688CONFIG_BLK_DEV_IDEDMA=y
677# CONFIG_BLK_DEV_HD_ONLY is not set
678# CONFIG_BLK_DEV_HD is not set
679 689
680# 690#
681# SCSI device support 691# SCSI device support
@@ -737,6 +747,8 @@ CONFIG_SCSI_LOWLEVEL=y
737# CONFIG_SCSI_GDTH is not set 747# CONFIG_SCSI_GDTH is not set
738# CONFIG_SCSI_IPS is not set 748# CONFIG_SCSI_IPS is not set
739CONFIG_SCSI_IBMVSCSI=y 749CONFIG_SCSI_IBMVSCSI=y
750CONFIG_SCSI_IBMVFC=m
751CONFIG_SCSI_IBMVFC_TRACE=y
740# CONFIG_SCSI_INITIO is not set 752# CONFIG_SCSI_INITIO is not set
741# CONFIG_SCSI_INIA100 is not set 753# CONFIG_SCSI_INIA100 is not set
742# CONFIG_SCSI_MVSAS is not set 754# CONFIG_SCSI_MVSAS is not set
@@ -758,6 +770,7 @@ CONFIG_SCSI_LPFC=m
758CONFIG_SCSI_DEBUG=m 770CONFIG_SCSI_DEBUG=m
759# CONFIG_SCSI_SRP is not set 771# CONFIG_SCSI_SRP is not set
760# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 772# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
773# CONFIG_SCSI_DH is not set
761CONFIG_ATA=y 774CONFIG_ATA=y
762CONFIG_ATA_NONSTANDARD=y 775CONFIG_ATA_NONSTANDARD=y
763CONFIG_SATA_PMP=y 776CONFIG_SATA_PMP=y
@@ -837,9 +850,6 @@ CONFIG_DM_SNAPSHOT=m
837CONFIG_DM_MIRROR=m 850CONFIG_DM_MIRROR=m
838CONFIG_DM_ZERO=m 851CONFIG_DM_ZERO=m
839CONFIG_DM_MULTIPATH=m 852CONFIG_DM_MULTIPATH=m
840CONFIG_DM_MULTIPATH_EMC=m
841# CONFIG_DM_MULTIPATH_RDAC is not set
842# CONFIG_DM_MULTIPATH_HP is not set
843# CONFIG_DM_DELAY is not set 853# CONFIG_DM_DELAY is not set
844# CONFIG_DM_UEVENT is not set 854# CONFIG_DM_UEVENT is not set
845# CONFIG_FUSION is not set 855# CONFIG_FUSION is not set
@@ -847,29 +857,21 @@ CONFIG_DM_MULTIPATH_EMC=m
847# 857#
848# IEEE 1394 (FireWire) support 858# IEEE 1394 (FireWire) support
849# 859#
850# CONFIG_FIREWIRE is not set
851CONFIG_IEEE1394=y
852
853#
854# Subsystem Options
855#
856# CONFIG_IEEE1394_VERBOSEDEBUG is not set
857 860
858# 861#
859# Controllers 862# Enable only one of the two stacks, unless you know what you are doing
860# 863#
861# CONFIG_IEEE1394_PCILYNX is not set 864# CONFIG_FIREWIRE is not set
865CONFIG_IEEE1394=y
862CONFIG_IEEE1394_OHCI1394=y 866CONFIG_IEEE1394_OHCI1394=y
863 867# CONFIG_IEEE1394_PCILYNX is not set
864#
865# Protocols
866#
867CONFIG_IEEE1394_VIDEO1394=m
868CONFIG_IEEE1394_SBP2=m 868CONFIG_IEEE1394_SBP2=m
869CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y 869CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
870CONFIG_IEEE1394_ETH1394=m 870CONFIG_IEEE1394_ETH1394=m
871CONFIG_IEEE1394_DV1394=m
872CONFIG_IEEE1394_RAWIO=y 871CONFIG_IEEE1394_RAWIO=y
872CONFIG_IEEE1394_VIDEO1394=m
873CONFIG_IEEE1394_DV1394=m
874# CONFIG_IEEE1394_VERBOSEDEBUG is not set
873# CONFIG_I2O is not set 875# CONFIG_I2O is not set
874CONFIG_MACINTOSH_DRIVERS=y 876CONFIG_MACINTOSH_DRIVERS=y
875CONFIG_ADB_PMU=y 877CONFIG_ADB_PMU=y
@@ -884,7 +886,6 @@ CONFIG_WINDFARM_PM112=y
884CONFIG_WINDFARM_PM121=y 886CONFIG_WINDFARM_PM121=y
885# CONFIG_PMAC_RACKMETER is not set 887# CONFIG_PMAC_RACKMETER is not set
886CONFIG_NETDEVICES=y 888CONFIG_NETDEVICES=y
887# CONFIG_NETDEVICES_MULTIQUEUE is not set
888CONFIG_DUMMY=m 889CONFIG_DUMMY=m
889CONFIG_BONDING=m 890CONFIG_BONDING=m
890# CONFIG_MACVLAN is not set 891# CONFIG_MACVLAN is not set
@@ -942,6 +943,7 @@ CONFIG_E100=y
942# CONFIG_SIS900 is not set 943# CONFIG_SIS900 is not set
943# CONFIG_EPIC100 is not set 944# CONFIG_EPIC100 is not set
944# CONFIG_SUNDANCE is not set 945# CONFIG_SUNDANCE is not set
946# CONFIG_TLAN is not set
945# CONFIG_VIA_RHINE is not set 947# CONFIG_VIA_RHINE is not set
946# CONFIG_SC92031 is not set 948# CONFIG_SC92031 is not set
947CONFIG_NETDEV_1000=y 949CONFIG_NETDEV_1000=y
@@ -949,10 +951,8 @@ CONFIG_ACENIC=y
949CONFIG_ACENIC_OMIT_TIGON_I=y 951CONFIG_ACENIC_OMIT_TIGON_I=y
950# CONFIG_DL2K is not set 952# CONFIG_DL2K is not set
951CONFIG_E1000=y 953CONFIG_E1000=y
952# CONFIG_E1000_NAPI is not set
953# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 954# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
954# CONFIG_E1000E is not set 955# CONFIG_E1000E is not set
955# CONFIG_E1000E_ENABLED is not set
956# CONFIG_IP1000 is not set 956# CONFIG_IP1000 is not set
957# CONFIG_IGB is not set 957# CONFIG_IGB is not set
958# CONFIG_NS83820 is not set 958# CONFIG_NS83820 is not set
@@ -968,13 +968,13 @@ CONFIG_TIGON3=y
968CONFIG_SPIDER_NET=m 968CONFIG_SPIDER_NET=m
969# CONFIG_QLA3XXX is not set 969# CONFIG_QLA3XXX is not set
970# CONFIG_ATL1 is not set 970# CONFIG_ATL1 is not set
971# CONFIG_ATL1E is not set
971CONFIG_NETDEV_10000=y 972CONFIG_NETDEV_10000=y
972# CONFIG_CHELSIO_T1 is not set 973# CONFIG_CHELSIO_T1 is not set
973# CONFIG_CHELSIO_T3 is not set 974# CONFIG_CHELSIO_T3 is not set
974CONFIG_EHEA=m 975CONFIG_EHEA=m
975# CONFIG_IXGBE is not set 976# CONFIG_IXGBE is not set
976CONFIG_IXGB=m 977CONFIG_IXGB=m
977# CONFIG_IXGB_NAPI is not set
978# CONFIG_S2IO is not set 978# CONFIG_S2IO is not set
979# CONFIG_MYRI10GE is not set 979# CONFIG_MYRI10GE is not set
980# CONFIG_NETXEN_NIC is not set 980# CONFIG_NETXEN_NIC is not set
@@ -1068,6 +1068,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
1068# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1068# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1069# CONFIG_MOUSE_SERIAL is not set 1069# CONFIG_MOUSE_SERIAL is not set
1070# CONFIG_MOUSE_APPLETOUCH is not set 1070# CONFIG_MOUSE_APPLETOUCH is not set
1071# CONFIG_MOUSE_BCM5974 is not set
1071# CONFIG_MOUSE_VSXXXAA is not set 1072# CONFIG_MOUSE_VSXXXAA is not set
1072# CONFIG_INPUT_JOYSTICK is not set 1073# CONFIG_INPUT_JOYSTICK is not set
1073# CONFIG_INPUT_TABLET is not set 1074# CONFIG_INPUT_TABLET is not set
@@ -1090,12 +1091,14 @@ CONFIG_SERIO_I8042=y
1090# CONFIG_SERIO_PCIPS2 is not set 1091# CONFIG_SERIO_PCIPS2 is not set
1091CONFIG_SERIO_LIBPS2=y 1092CONFIG_SERIO_LIBPS2=y
1092# CONFIG_SERIO_RAW is not set 1093# CONFIG_SERIO_RAW is not set
1094# CONFIG_SERIO_XILINX_XPS_PS2 is not set
1093# CONFIG_GAMEPORT is not set 1095# CONFIG_GAMEPORT is not set
1094 1096
1095# 1097#
1096# Character devices 1098# Character devices
1097# 1099#
1098CONFIG_VT=y 1100CONFIG_VT=y
1101CONFIG_CONSOLE_TRANSLATIONS=y
1099CONFIG_VT_CONSOLE=y 1102CONFIG_VT_CONSOLE=y
1100CONFIG_HW_CONSOLE=y 1103CONFIG_HW_CONSOLE=y
1101# CONFIG_VT_HW_CONSOLE_BINDING is not set 1104# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -1131,11 +1134,13 @@ CONFIG_UNIX98_PTYS=y
1131CONFIG_LEGACY_PTYS=y 1134CONFIG_LEGACY_PTYS=y
1132CONFIG_LEGACY_PTY_COUNT=256 1135CONFIG_LEGACY_PTY_COUNT=256
1133CONFIG_HVC_DRIVER=y 1136CONFIG_HVC_DRIVER=y
1137CONFIG_HVC_IRQ=y
1134CONFIG_HVC_CONSOLE=y 1138CONFIG_HVC_CONSOLE=y
1135CONFIG_HVC_ISERIES=y 1139CONFIG_HVC_ISERIES=y
1136CONFIG_HVC_RTAS=y 1140CONFIG_HVC_RTAS=y
1137CONFIG_HVC_BEAT=y 1141CONFIG_HVC_BEAT=y
1138CONFIG_HVCS=m 1142CONFIG_HVCS=m
1143CONFIG_IBM_BSR=m
1139# CONFIG_IPMI_HANDLER is not set 1144# CONFIG_IPMI_HANDLER is not set
1140# CONFIG_HW_RANDOM is not set 1145# CONFIG_HW_RANDOM is not set
1141# CONFIG_R3964 is not set 1146# CONFIG_R3964 is not set
@@ -1156,45 +1161,70 @@ CONFIG_DEVPORT=y
1156CONFIG_I2C=y 1161CONFIG_I2C=y
1157CONFIG_I2C_BOARDINFO=y 1162CONFIG_I2C_BOARDINFO=y
1158CONFIG_I2C_CHARDEV=y 1163CONFIG_I2C_CHARDEV=y
1164CONFIG_I2C_HELPER_AUTO=y
1159CONFIG_I2C_ALGOBIT=y 1165CONFIG_I2C_ALGOBIT=y
1160 1166
1161# 1167#
1162# I2C Hardware Bus support 1168# I2C Hardware Bus support
1163# 1169#
1170
1171#
1172# PC SMBus host controller drivers
1173#
1164# CONFIG_I2C_ALI1535 is not set 1174# CONFIG_I2C_ALI1535 is not set
1165# CONFIG_I2C_ALI1563 is not set 1175# CONFIG_I2C_ALI1563 is not set
1166# CONFIG_I2C_ALI15X3 is not set 1176# CONFIG_I2C_ALI15X3 is not set
1167# CONFIG_I2C_AMD756 is not set 1177# CONFIG_I2C_AMD756 is not set
1168CONFIG_I2C_AMD8111=y 1178CONFIG_I2C_AMD8111=y
1169# CONFIG_I2C_I801 is not set 1179# CONFIG_I2C_I801 is not set
1170# CONFIG_I2C_I810 is not set 1180# CONFIG_I2C_ISCH is not set
1171# CONFIG_I2C_PIIX4 is not set 1181# CONFIG_I2C_PIIX4 is not set
1172CONFIG_I2C_POWERMAC=y
1173# CONFIG_I2C_NFORCE2 is not set 1182# CONFIG_I2C_NFORCE2 is not set
1174# CONFIG_I2C_OCORES is not set
1175# CONFIG_I2C_PARPORT_LIGHT is not set
1176CONFIG_I2C_PASEMI=y
1177# CONFIG_I2C_PROSAVAGE is not set
1178# CONFIG_I2C_SAVAGE4 is not set
1179# CONFIG_I2C_SIMTEC is not set
1180# CONFIG_I2C_SIS5595 is not set 1183# CONFIG_I2C_SIS5595 is not set
1181# CONFIG_I2C_SIS630 is not set 1184# CONFIG_I2C_SIS630 is not set
1182# CONFIG_I2C_SIS96X is not set 1185# CONFIG_I2C_SIS96X is not set
1183# CONFIG_I2C_TAOS_EVM is not set
1184# CONFIG_I2C_STUB is not set
1185# CONFIG_I2C_TINY_USB is not set
1186# CONFIG_I2C_VIA is not set 1186# CONFIG_I2C_VIA is not set
1187# CONFIG_I2C_VIAPRO is not set 1187# CONFIG_I2C_VIAPRO is not set
1188
1189#
1190# Mac SMBus host controller drivers
1191#
1192CONFIG_I2C_POWERMAC=y
1193
1194#
1195# I2C system bus drivers (mostly embedded / system-on-chip)
1196#
1197# CONFIG_I2C_OCORES is not set
1198CONFIG_I2C_PASEMI=y
1199# CONFIG_I2C_SIMTEC is not set
1200
1201#
1202# External I2C/SMBus adapter drivers
1203#
1204# CONFIG_I2C_PARPORT_LIGHT is not set
1205# CONFIG_I2C_TAOS_EVM is not set
1206# CONFIG_I2C_TINY_USB is not set
1207
1208#
1209# Graphics adapter I2C/DDC channel drivers
1210#
1188# CONFIG_I2C_VOODOO3 is not set 1211# CONFIG_I2C_VOODOO3 is not set
1212
1213#
1214# Other I2C/SMBus bus drivers
1215#
1189# CONFIG_I2C_PCA_PLATFORM is not set 1216# CONFIG_I2C_PCA_PLATFORM is not set
1217# CONFIG_I2C_STUB is not set
1190 1218
1191# 1219#
1192# Miscellaneous I2C Chip support 1220# Miscellaneous I2C Chip support
1193# 1221#
1194# CONFIG_DS1682 is not set 1222# CONFIG_DS1682 is not set
1223# CONFIG_AT24 is not set
1195# CONFIG_SENSORS_EEPROM is not set 1224# CONFIG_SENSORS_EEPROM is not set
1196# CONFIG_SENSORS_PCF8574 is not set 1225# CONFIG_SENSORS_PCF8574 is not set
1197# CONFIG_PCF8575 is not set 1226# CONFIG_PCF8575 is not set
1227# CONFIG_SENSORS_PCA9539 is not set
1198# CONFIG_SENSORS_PCF8591 is not set 1228# CONFIG_SENSORS_PCF8591 is not set
1199# CONFIG_SENSORS_MAX6875 is not set 1229# CONFIG_SENSORS_MAX6875 is not set
1200# CONFIG_SENSORS_TSL2550 is not set 1230# CONFIG_SENSORS_TSL2550 is not set
@@ -1203,10 +1233,13 @@ CONFIG_I2C_PASEMI=y
1203# CONFIG_I2C_DEBUG_BUS is not set 1233# CONFIG_I2C_DEBUG_BUS is not set
1204# CONFIG_I2C_DEBUG_CHIP is not set 1234# CONFIG_I2C_DEBUG_CHIP is not set
1205# CONFIG_SPI is not set 1235# CONFIG_SPI is not set
1236CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1237# CONFIG_GPIOLIB is not set
1206# CONFIG_W1 is not set 1238# CONFIG_W1 is not set
1207# CONFIG_POWER_SUPPLY is not set 1239# CONFIG_POWER_SUPPLY is not set
1208# CONFIG_HWMON is not set 1240# CONFIG_HWMON is not set
1209# CONFIG_THERMAL is not set 1241# CONFIG_THERMAL is not set
1242# CONFIG_THERMAL_HWMON is not set
1210# CONFIG_WATCHDOG is not set 1243# CONFIG_WATCHDOG is not set
1211 1244
1212# 1245#
@@ -1218,8 +1251,10 @@ CONFIG_SSB_POSSIBLE=y
1218# 1251#
1219# Multifunction device drivers 1252# Multifunction device drivers
1220# 1253#
1254# CONFIG_MFD_CORE is not set
1221# CONFIG_MFD_SM501 is not set 1255# CONFIG_MFD_SM501 is not set
1222# CONFIG_HTC_PASIC3 is not set 1256# CONFIG_HTC_PASIC3 is not set
1257# CONFIG_MFD_TMIO is not set
1223 1258
1224# 1259#
1225# Multimedia devices 1260# Multimedia devices
@@ -1299,10 +1334,13 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1299# CONFIG_FB_TRIDENT is not set 1334# CONFIG_FB_TRIDENT is not set
1300# CONFIG_FB_ARK is not set 1335# CONFIG_FB_ARK is not set
1301# CONFIG_FB_PM3 is not set 1336# CONFIG_FB_PM3 is not set
1337# CONFIG_FB_CARMINE is not set
1302CONFIG_FB_IBM_GXT4500=y 1338CONFIG_FB_IBM_GXT4500=y
1303# CONFIG_FB_VIRTUAL is not set 1339# CONFIG_FB_VIRTUAL is not set
1304CONFIG_BACKLIGHT_LCD_SUPPORT=y 1340CONFIG_BACKLIGHT_LCD_SUPPORT=y
1305CONFIG_LCD_CLASS_DEVICE=y 1341CONFIG_LCD_CLASS_DEVICE=y
1342# CONFIG_LCD_ILI9320 is not set
1343# CONFIG_LCD_PLATFORM is not set
1306CONFIG_BACKLIGHT_CLASS_DEVICE=y 1344CONFIG_BACKLIGHT_CLASS_DEVICE=y
1307# CONFIG_BACKLIGHT_CORGI is not set 1345# CONFIG_BACKLIGHT_CORGI is not set
1308 1346
@@ -1331,15 +1369,7 @@ CONFIG_FB_LOGO_EXTRA=y
1331CONFIG_LOGO_LINUX_MONO=y 1369CONFIG_LOGO_LINUX_MONO=y
1332CONFIG_LOGO_LINUX_VGA16=y 1370CONFIG_LOGO_LINUX_VGA16=y
1333CONFIG_LOGO_LINUX_CLUT224=y 1371CONFIG_LOGO_LINUX_CLUT224=y
1334
1335#
1336# Sound
1337#
1338CONFIG_SOUND=m 1372CONFIG_SOUND=m
1339
1340#
1341# Advanced Linux Sound Architecture
1342#
1343CONFIG_SND=m 1373CONFIG_SND=m
1344CONFIG_SND_TIMER=m 1374CONFIG_SND_TIMER=m
1345CONFIG_SND_PCM=m 1375CONFIG_SND_PCM=m
@@ -1355,19 +1385,13 @@ CONFIG_SND_SUPPORT_OLD_API=y
1355CONFIG_SND_VERBOSE_PROCFS=y 1385CONFIG_SND_VERBOSE_PROCFS=y
1356# CONFIG_SND_VERBOSE_PRINTK is not set 1386# CONFIG_SND_VERBOSE_PRINTK is not set
1357# CONFIG_SND_DEBUG is not set 1387# CONFIG_SND_DEBUG is not set
1358 1388CONFIG_SND_DRIVERS=y
1359#
1360# Generic devices
1361#
1362# CONFIG_SND_DUMMY is not set 1389# CONFIG_SND_DUMMY is not set
1363# CONFIG_SND_VIRMIDI is not set 1390# CONFIG_SND_VIRMIDI is not set
1364# CONFIG_SND_MTPAV is not set 1391# CONFIG_SND_MTPAV is not set
1365# CONFIG_SND_SERIAL_U16550 is not set 1392# CONFIG_SND_SERIAL_U16550 is not set
1366# CONFIG_SND_MPU401 is not set 1393# CONFIG_SND_MPU401 is not set
1367 1394CONFIG_SND_PCI=y
1368#
1369# PCI devices
1370#
1371# CONFIG_SND_AD1889 is not set 1395# CONFIG_SND_AD1889 is not set
1372# CONFIG_SND_ALS300 is not set 1396# CONFIG_SND_ALS300 is not set
1373# CONFIG_SND_ALS4000 is not set 1397# CONFIG_SND_ALS4000 is not set
@@ -1429,20 +1453,9 @@ CONFIG_SND_VERBOSE_PROCFS=y
1429# CONFIG_SND_VIRTUOSO is not set 1453# CONFIG_SND_VIRTUOSO is not set
1430# CONFIG_SND_VX222 is not set 1454# CONFIG_SND_VX222 is not set
1431# CONFIG_SND_YMFPCI is not set 1455# CONFIG_SND_YMFPCI is not set
1432 1456CONFIG_SND_PPC=y
1433#
1434# ALSA PowerMac devices
1435#
1436CONFIG_SND_POWERMAC=m 1457CONFIG_SND_POWERMAC=m
1437CONFIG_SND_POWERMAC_AUTO_DRC=y 1458CONFIG_SND_POWERMAC_AUTO_DRC=y
1438
1439#
1440# ALSA PowerPC devices
1441#
1442
1443#
1444# Apple Onboard Audio driver
1445#
1446CONFIG_SND_AOA=m 1459CONFIG_SND_AOA=m
1447CONFIG_SND_AOA_FABRIC_LAYOUT=m 1460CONFIG_SND_AOA_FABRIC_LAYOUT=m
1448CONFIG_SND_AOA_ONYX=m 1461CONFIG_SND_AOA_ONYX=m
@@ -1450,36 +1463,14 @@ CONFIG_SND_AOA_TAS=m
1450CONFIG_SND_AOA_TOONIE=m 1463CONFIG_SND_AOA_TOONIE=m
1451CONFIG_SND_AOA_SOUNDBUS=m 1464CONFIG_SND_AOA_SOUNDBUS=m
1452CONFIG_SND_AOA_SOUNDBUS_I2S=m 1465CONFIG_SND_AOA_SOUNDBUS_I2S=m
1453 1466CONFIG_SND_USB=y
1454#
1455# USB devices
1456#
1457# CONFIG_SND_USB_AUDIO is not set 1467# CONFIG_SND_USB_AUDIO is not set
1458# CONFIG_SND_USB_USX2Y is not set 1468# CONFIG_SND_USB_USX2Y is not set
1459# CONFIG_SND_USB_CAIAQ is not set 1469# CONFIG_SND_USB_CAIAQ is not set
1460 1470CONFIG_SND_PCMCIA=y
1461#
1462# PCMCIA devices
1463#
1464# CONFIG_SND_VXPOCKET is not set 1471# CONFIG_SND_VXPOCKET is not set
1465# CONFIG_SND_PDAUDIOCF is not set 1472# CONFIG_SND_PDAUDIOCF is not set
1466
1467#
1468# System on Chip audio support
1469#
1470# CONFIG_SND_SOC is not set 1473# CONFIG_SND_SOC is not set
1471
1472#
1473# ALSA SoC audio for Freescale SOCs
1474#
1475
1476#
1477# SoC Audio for the Texas Instruments OMAP
1478#
1479
1480#
1481# Open Sound System
1482#
1483# CONFIG_SOUND_PRIME is not set 1474# CONFIG_SOUND_PRIME is not set
1484CONFIG_HID_SUPPORT=y 1475CONFIG_HID_SUPPORT=y
1485CONFIG_HID=y 1476CONFIG_HID=y
@@ -1508,6 +1499,7 @@ CONFIG_USB_DEVICEFS=y
1508CONFIG_USB_DEVICE_CLASS=y 1499CONFIG_USB_DEVICE_CLASS=y
1509# CONFIG_USB_DYNAMIC_MINORS is not set 1500# CONFIG_USB_DYNAMIC_MINORS is not set
1510# CONFIG_USB_OTG is not set 1501# CONFIG_USB_OTG is not set
1502# CONFIG_USB_MON is not set
1511 1503
1512# 1504#
1513# USB Host Controller Drivers 1505# USB Host Controller Drivers
@@ -1556,6 +1548,7 @@ CONFIG_USB_STORAGE=m
1556# CONFIG_USB_STORAGE_ALAUDA is not set 1548# CONFIG_USB_STORAGE_ALAUDA is not set
1557# CONFIG_USB_STORAGE_ONETOUCH is not set 1549# CONFIG_USB_STORAGE_ONETOUCH is not set
1558# CONFIG_USB_STORAGE_KARMA is not set 1550# CONFIG_USB_STORAGE_KARMA is not set
1551# CONFIG_USB_STORAGE_SIERRA is not set
1559# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1552# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1560# CONFIG_USB_LIBUSUAL is not set 1553# CONFIG_USB_LIBUSUAL is not set
1561 1554
@@ -1564,7 +1557,6 @@ CONFIG_USB_STORAGE=m
1564# 1557#
1565# CONFIG_USB_MDC800 is not set 1558# CONFIG_USB_MDC800 is not set
1566# CONFIG_USB_MICROTEK is not set 1559# CONFIG_USB_MICROTEK is not set
1567# CONFIG_USB_MON is not set
1568 1560
1569# 1561#
1570# USB port drivers 1562# USB port drivers
@@ -1577,7 +1569,6 @@ CONFIG_USB_STORAGE=m
1577# CONFIG_USB_EMI62 is not set 1569# CONFIG_USB_EMI62 is not set
1578# CONFIG_USB_EMI26 is not set 1570# CONFIG_USB_EMI26 is not set
1579# CONFIG_USB_ADUTUX is not set 1571# CONFIG_USB_ADUTUX is not set
1580# CONFIG_USB_AUERSWALD is not set
1581# CONFIG_USB_RIO500 is not set 1572# CONFIG_USB_RIO500 is not set
1582# CONFIG_USB_LEGOTOWER is not set 1573# CONFIG_USB_LEGOTOWER is not set
1583# CONFIG_USB_LCD is not set 1574# CONFIG_USB_LCD is not set
@@ -1769,6 +1760,7 @@ CONFIG_HFSPLUS_FS=m
1769CONFIG_CRAMFS=y 1760CONFIG_CRAMFS=y
1770# CONFIG_VXFS_FS is not set 1761# CONFIG_VXFS_FS is not set
1771# CONFIG_MINIX_FS is not set 1762# CONFIG_MINIX_FS is not set
1763# CONFIG_OMFS_FS is not set
1772# CONFIG_HPFS_FS is not set 1764# CONFIG_HPFS_FS is not set
1773# CONFIG_QNX4FS_FS is not set 1765# CONFIG_QNX4FS_FS is not set
1774# CONFIG_ROMFS_FS is not set 1766# CONFIG_ROMFS_FS is not set
@@ -1779,12 +1771,12 @@ CONFIG_NFS_FS=y
1779CONFIG_NFS_V3=y 1771CONFIG_NFS_V3=y
1780CONFIG_NFS_V3_ACL=y 1772CONFIG_NFS_V3_ACL=y
1781CONFIG_NFS_V4=y 1773CONFIG_NFS_V4=y
1774CONFIG_ROOT_NFS=y
1782CONFIG_NFSD=m 1775CONFIG_NFSD=m
1783CONFIG_NFSD_V2_ACL=y 1776CONFIG_NFSD_V2_ACL=y
1784CONFIG_NFSD_V3=y 1777CONFIG_NFSD_V3=y
1785CONFIG_NFSD_V3_ACL=y 1778CONFIG_NFSD_V3_ACL=y
1786CONFIG_NFSD_V4=y 1779CONFIG_NFSD_V4=y
1787CONFIG_ROOT_NFS=y
1788CONFIG_LOCKD=y 1780CONFIG_LOCKD=y
1789CONFIG_LOCKD_V4=y 1781CONFIG_LOCKD_V4=y
1790CONFIG_EXPORTFS=m 1782CONFIG_EXPORTFS=m
@@ -1793,7 +1785,6 @@ CONFIG_NFS_COMMON=y
1793CONFIG_SUNRPC=y 1785CONFIG_SUNRPC=y
1794CONFIG_SUNRPC_GSS=y 1786CONFIG_SUNRPC_GSS=y
1795CONFIG_SUNRPC_XPRT_RDMA=m 1787CONFIG_SUNRPC_XPRT_RDMA=m
1796# CONFIG_SUNRPC_BIND34 is not set
1797CONFIG_RPCSEC_GSS_KRB5=y 1788CONFIG_RPCSEC_GSS_KRB5=y
1798CONFIG_RPCSEC_GSS_SPKM3=m 1789CONFIG_RPCSEC_GSS_SPKM3=m
1799# CONFIG_SMB_FS is not set 1790# CONFIG_SMB_FS is not set
@@ -1878,6 +1869,7 @@ CONFIG_BITREVERSE=y
1878# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1869# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1879CONFIG_CRC_CCITT=m 1870CONFIG_CRC_CCITT=m
1880# CONFIG_CRC16 is not set 1871# CONFIG_CRC16 is not set
1872CONFIG_CRC_T10DIF=y
1881CONFIG_CRC_ITU_T=m 1873CONFIG_CRC_ITU_T=m
1882CONFIG_CRC32=y 1874CONFIG_CRC32=y
1883# CONFIG_CRC7 is not set 1875# CONFIG_CRC7 is not set
@@ -1910,8 +1902,10 @@ CONFIG_DEBUG_FS=y
1910CONFIG_DEBUG_KERNEL=y 1902CONFIG_DEBUG_KERNEL=y
1911# CONFIG_DEBUG_SHIRQ is not set 1903# CONFIG_DEBUG_SHIRQ is not set
1912CONFIG_DETECT_SOFTLOCKUP=y 1904CONFIG_DETECT_SOFTLOCKUP=y
1905# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1906CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1913CONFIG_SCHED_DEBUG=y 1907CONFIG_SCHED_DEBUG=y
1914# CONFIG_SCHEDSTATS is not set 1908CONFIG_SCHEDSTATS=y
1915# CONFIG_TIMER_STATS is not set 1909# CONFIG_TIMER_STATS is not set
1916# CONFIG_DEBUG_OBJECTS is not set 1910# CONFIG_DEBUG_OBJECTS is not set
1917# CONFIG_SLUB_DEBUG_ON is not set 1911# CONFIG_SLUB_DEBUG_ON is not set
@@ -1923,28 +1917,47 @@ CONFIG_DEBUG_MUTEXES=y
1923# CONFIG_DEBUG_LOCK_ALLOC is not set 1917# CONFIG_DEBUG_LOCK_ALLOC is not set
1924# CONFIG_PROVE_LOCKING is not set 1918# CONFIG_PROVE_LOCKING is not set
1925# CONFIG_LOCK_STAT is not set 1919# CONFIG_LOCK_STAT is not set
1920CONFIG_TRACE_IRQFLAGS=y
1926# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1921# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1927# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1922# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1923CONFIG_STACKTRACE=y
1928# CONFIG_DEBUG_KOBJECT is not set 1924# CONFIG_DEBUG_KOBJECT is not set
1929CONFIG_DEBUG_BUGVERBOSE=y 1925CONFIG_DEBUG_BUGVERBOSE=y
1930# CONFIG_DEBUG_INFO is not set 1926# CONFIG_DEBUG_INFO is not set
1931# CONFIG_DEBUG_VM is not set 1927# CONFIG_DEBUG_VM is not set
1932# CONFIG_DEBUG_WRITECOUNT is not set 1928# CONFIG_DEBUG_WRITECOUNT is not set
1929CONFIG_DEBUG_MEMORY_INIT=y
1933# CONFIG_DEBUG_LIST is not set 1930# CONFIG_DEBUG_LIST is not set
1934# CONFIG_DEBUG_SG is not set 1931# CONFIG_DEBUG_SG is not set
1932CONFIG_FRAME_POINTER=y
1935# CONFIG_BOOT_PRINTK_DELAY is not set 1933# CONFIG_BOOT_PRINTK_DELAY is not set
1936# CONFIG_RCU_TORTURE_TEST is not set 1934# CONFIG_RCU_TORTURE_TEST is not set
1937# CONFIG_BACKTRACE_SELF_TEST is not set 1935# CONFIG_BACKTRACE_SELF_TEST is not set
1938# CONFIG_FAULT_INJECTION is not set 1936# CONFIG_FAULT_INJECTION is not set
1937CONFIG_LATENCYTOP=y
1938CONFIG_SYSCTL_SYSCALL_CHECK=y
1939CONFIG_HAVE_FTRACE=y
1940CONFIG_HAVE_DYNAMIC_FTRACE=y
1941CONFIG_TRACER_MAX_TRACE=y
1942CONFIG_TRACING=y
1943# CONFIG_FTRACE is not set
1944CONFIG_IRQSOFF_TRACER=y
1945CONFIG_SCHED_TRACER=y
1946CONFIG_CONTEXT_SWITCH_TRACER=y
1947# CONFIG_FTRACE_STARTUP_TEST is not set
1939# CONFIG_SAMPLES is not set 1948# CONFIG_SAMPLES is not set
1949CONFIG_HAVE_ARCH_KGDB=y
1950# CONFIG_KGDB is not set
1940CONFIG_DEBUG_STACKOVERFLOW=y 1951CONFIG_DEBUG_STACKOVERFLOW=y
1941CONFIG_DEBUG_STACK_USAGE=y 1952CONFIG_DEBUG_STACK_USAGE=y
1942# CONFIG_DEBUG_PAGEALLOC is not set 1953# CONFIG_DEBUG_PAGEALLOC is not set
1943# CONFIG_HCALL_STATS is not set 1954# CONFIG_HCALL_STATS is not set
1944CONFIG_DEBUGGER=y 1955# CONFIG_CODE_PATCHING_SELFTEST is not set
1956# CONFIG_FTR_FIXUP_SELFTEST is not set
1945CONFIG_XMON=y 1957CONFIG_XMON=y
1946# CONFIG_XMON_DEFAULT is not set 1958# CONFIG_XMON_DEFAULT is not set
1947CONFIG_XMON_DISASSEMBLY=y 1959CONFIG_XMON_DISASSEMBLY=y
1960CONFIG_DEBUGGER=y
1948CONFIG_IRQSTACKS=y 1961CONFIG_IRQSTACKS=y
1949# CONFIG_VIRQ_DEBUG is not set 1962# CONFIG_VIRQ_DEBUG is not set
1950CONFIG_BOOTX_TEXT=y 1963CONFIG_BOOTX_TEXT=y
@@ -2007,6 +2020,10 @@ CONFIG_CRYPTO_CRC32C=m
2007CONFIG_CRYPTO_MD4=m 2020CONFIG_CRYPTO_MD4=m
2008CONFIG_CRYPTO_MD5=y 2021CONFIG_CRYPTO_MD5=y
2009CONFIG_CRYPTO_MICHAEL_MIC=m 2022CONFIG_CRYPTO_MICHAEL_MIC=m
2023# CONFIG_CRYPTO_RMD128 is not set
2024# CONFIG_CRYPTO_RMD160 is not set
2025# CONFIG_CRYPTO_RMD256 is not set
2026# CONFIG_CRYPTO_RMD320 is not set
2010CONFIG_CRYPTO_SHA1=m 2027CONFIG_CRYPTO_SHA1=m
2011CONFIG_CRYPTO_SHA256=m 2028CONFIG_CRYPTO_SHA256=m
2012CONFIG_CRYPTO_SHA512=m 2029CONFIG_CRYPTO_SHA512=m
diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/ppc6xx_defconfig
index e6e91c85da3..3c6dbdef56e 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
+++ b/arch/powerpc/configs/ppc6xx_defconfig
@@ -1,8 +1,7 @@
1# powerpc
2# 1#
3# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
4# Linux kernel version: 2.6.26-git2 3# Linux kernel version: 2.6.27-rc4
5# Tue Jul 15 23:54:18 2008 4# Tue Aug 26 13:29:50 2008
6# 5#
7# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
8 7
@@ -112,7 +111,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
112CONFIG_SYSCTL=y 111CONFIG_SYSCTL=y
113# CONFIG_EMBEDDED is not set 112# CONFIG_EMBEDDED is not set
114CONFIG_SYSCTL_SYSCALL=y 113CONFIG_SYSCTL_SYSCALL=y
115CONFIG_SYSCTL_SYSCALL_CHECK=y
116CONFIG_KALLSYMS=y 114CONFIG_KALLSYMS=y
117CONFIG_KALLSYMS_ALL=y 115CONFIG_KALLSYMS_ALL=y
118CONFIG_KALLSYMS_EXTRA_PASS=y 116CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -140,12 +138,17 @@ CONFIG_MARKERS=y
140CONFIG_OPROFILE=m 138CONFIG_OPROFILE=m
141CONFIG_HAVE_OPROFILE=y 139CONFIG_HAVE_OPROFILE=y
142CONFIG_KPROBES=y 140CONFIG_KPROBES=y
141CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
143CONFIG_KRETPROBES=y 142CONFIG_KRETPROBES=y
143CONFIG_HAVE_IOREMAP_PROT=y
144CONFIG_HAVE_KPROBES=y 144CONFIG_HAVE_KPROBES=y
145CONFIG_HAVE_KRETPROBES=y 145CONFIG_HAVE_KRETPROBES=y
146CONFIG_HAVE_ARCH_TRACEHOOK=y
146# CONFIG_HAVE_DMA_ATTRS is not set 147# CONFIG_HAVE_DMA_ATTRS is not set
147# CONFIG_USE_GENERIC_SMP_HELPERS is not set 148# CONFIG_USE_GENERIC_SMP_HELPERS is not set
149CONFIG_HAVE_CLK=y
148CONFIG_PROC_PAGE_MONITOR=y 150CONFIG_PROC_PAGE_MONITOR=y
151# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
149CONFIG_SLABINFO=y 152CONFIG_SLABINFO=y
150CONFIG_RT_MUTEXES=y 153CONFIG_RT_MUTEXES=y
151# CONFIG_TINY_SHMEM is not set 154# CONFIG_TINY_SHMEM is not set
@@ -266,7 +269,6 @@ CONFIG_TAU=y
266CONFIG_TAU_AVERAGE=y 269CONFIG_TAU_AVERAGE=y
267CONFIG_QUICC_ENGINE=y 270CONFIG_QUICC_ENGINE=y
268CONFIG_CPM2=y 271CONFIG_CPM2=y
269CONFIG_PPC_CPM_NEW_BINDING=y
270CONFIG_FSL_ULI1575=y 272CONFIG_FSL_ULI1575=y
271CONFIG_CPM=y 273CONFIG_CPM=y
272CONFIG_PPC_BESTCOMM=y 274CONFIG_PPC_BESTCOMM=y
@@ -287,7 +289,7 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
287# CONFIG_HZ_300 is not set 289# CONFIG_HZ_300 is not set
288CONFIG_HZ_1000=y 290CONFIG_HZ_1000=y
289CONFIG_HZ=1000 291CONFIG_HZ=1000
290# CONFIG_SCHED_HRTICK is not set 292CONFIG_SCHED_HRTICK=y
291# CONFIG_PREEMPT_NONE is not set 293# CONFIG_PREEMPT_NONE is not set
292CONFIG_PREEMPT_VOLUNTARY=y 294CONFIG_PREEMPT_VOLUNTARY=y
293# CONFIG_PREEMPT is not set 295# CONFIG_PREEMPT is not set
@@ -311,6 +313,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
311# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 313# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
312CONFIG_PAGEFLAGS_EXTENDED=y 314CONFIG_PAGEFLAGS_EXTENDED=y
313CONFIG_SPLIT_PTLOCK_CPUS=4 315CONFIG_SPLIT_PTLOCK_CPUS=4
316# CONFIG_MIGRATION is not set
314CONFIG_RESOURCES_64BIT=y 317CONFIG_RESOURCES_64BIT=y
315CONFIG_ZONE_DMA_FLAG=1 318CONFIG_ZONE_DMA_FLAG=1
316CONFIG_BOUNCE=y 319CONFIG_BOUNCE=y
@@ -326,6 +329,7 @@ CONFIG_PM_DEBUG=y
326CONFIG_CAN_PM_TRACE=y 329CONFIG_CAN_PM_TRACE=y
327CONFIG_PM_SLEEP=y 330CONFIG_PM_SLEEP=y
328CONFIG_SUSPEND=y 331CONFIG_SUSPEND=y
332# CONFIG_PM_TEST_SUSPEND is not set
329CONFIG_SUSPEND_FREEZER=y 333CONFIG_SUSPEND_FREEZER=y
330CONFIG_HIBERNATION=y 334CONFIG_HIBERNATION=y
331CONFIG_PM_STD_PARTITION="" 335CONFIG_PM_STD_PARTITION=""
@@ -344,6 +348,7 @@ CONFIG_FSL_SOC=y
344CONFIG_FSL_PCI=y 348CONFIG_FSL_PCI=y
345CONFIG_FSL_LBC=y 349CONFIG_FSL_LBC=y
346CONFIG_FSL_GTM=y 350CONFIG_FSL_GTM=y
351CONFIG_PPC_PCI_CHOICE=y
347CONFIG_PCI=y 352CONFIG_PCI=y
348CONFIG_PCI_DOMAINS=y 353CONFIG_PCI_DOMAINS=y
349CONFIG_PCI_SYSCALL=y 354CONFIG_PCI_SYSCALL=y
@@ -395,10 +400,6 @@ CONFIG_KERNEL_START=0xc0000000
395CONFIG_PHYSICAL_START=0x00000000 400CONFIG_PHYSICAL_START=0x00000000
396# CONFIG_TASK_SIZE_BOOL is not set 401# CONFIG_TASK_SIZE_BOOL is not set
397CONFIG_TASK_SIZE=0xc0000000 402CONFIG_TASK_SIZE=0xc0000000
398
399#
400# Networking
401#
402CONFIG_NET=y 403CONFIG_NET=y
403 404
404# 405#
@@ -412,6 +413,7 @@ CONFIG_XFRM_USER=y
412CONFIG_XFRM_SUB_POLICY=y 413CONFIG_XFRM_SUB_POLICY=y
413CONFIG_XFRM_MIGRATE=y 414CONFIG_XFRM_MIGRATE=y
414CONFIG_XFRM_STATISTICS=y 415CONFIG_XFRM_STATISTICS=y
416CONFIG_XFRM_IPCOMP=m
415CONFIG_NET_KEY=m 417CONFIG_NET_KEY=m
416CONFIG_NET_KEY_MIGRATE=y 418CONFIG_NET_KEY_MIGRATE=y
417CONFIG_INET=y 419CONFIG_INET=y
@@ -602,6 +604,7 @@ CONFIG_IP_NF_TARGET_ECN=m
602CONFIG_IP_NF_TARGET_TTL=m 604CONFIG_IP_NF_TARGET_TTL=m
603CONFIG_IP_NF_TARGET_CLUSTERIP=m 605CONFIG_IP_NF_TARGET_CLUSTERIP=m
604CONFIG_IP_NF_RAW=m 606CONFIG_IP_NF_RAW=m
607CONFIG_IP_NF_SECURITY=m
605CONFIG_IP_NF_ARPTABLES=m 608CONFIG_IP_NF_ARPTABLES=m
606CONFIG_IP_NF_ARPFILTER=m 609CONFIG_IP_NF_ARPFILTER=m
607CONFIG_IP_NF_ARP_MANGLE=m 610CONFIG_IP_NF_ARP_MANGLE=m
@@ -626,6 +629,7 @@ CONFIG_IP6_NF_TARGET_REJECT=m
626CONFIG_IP6_NF_MANGLE=m 629CONFIG_IP6_NF_MANGLE=m
627CONFIG_IP6_NF_TARGET_HL=m 630CONFIG_IP6_NF_TARGET_HL=m
628CONFIG_IP6_NF_RAW=m 631CONFIG_IP6_NF_RAW=m
632CONFIG_IP6_NF_SECURITY=m
629 633
630# 634#
631# DECnet: Netfilter Configuration 635# DECnet: Netfilter Configuration
@@ -643,6 +647,7 @@ CONFIG_BRIDGE_EBT_802_3=m
643CONFIG_BRIDGE_EBT_AMONG=m 647CONFIG_BRIDGE_EBT_AMONG=m
644CONFIG_BRIDGE_EBT_ARP=m 648CONFIG_BRIDGE_EBT_ARP=m
645CONFIG_BRIDGE_EBT_IP=m 649CONFIG_BRIDGE_EBT_IP=m
650CONFIG_BRIDGE_EBT_IP6=m
646CONFIG_BRIDGE_EBT_LIMIT=m 651CONFIG_BRIDGE_EBT_LIMIT=m
647CONFIG_BRIDGE_EBT_MARK=m 652CONFIG_BRIDGE_EBT_MARK=m
648CONFIG_BRIDGE_EBT_PKTTYPE=m 653CONFIG_BRIDGE_EBT_PKTTYPE=m
@@ -691,8 +696,10 @@ CONFIG_ATM_LANE=m
691# CONFIG_ATM_MPOA is not set 696# CONFIG_ATM_MPOA is not set
692CONFIG_ATM_BR2684=m 697CONFIG_ATM_BR2684=m
693# CONFIG_ATM_BR2684_IPFILTER is not set 698# CONFIG_ATM_BR2684_IPFILTER is not set
699CONFIG_STP=m
694CONFIG_BRIDGE=m 700CONFIG_BRIDGE=m
695CONFIG_VLAN_8021Q=m 701CONFIG_VLAN_8021Q=m
702# CONFIG_VLAN_8021Q_GVRP is not set
696CONFIG_DECNET=m 703CONFIG_DECNET=m
697CONFIG_DECNET_ROUTER=y 704CONFIG_DECNET_ROUTER=y
698CONFIG_LLC=m 705CONFIG_LLC=m
@@ -832,6 +839,7 @@ CONFIG_BT_HIDP=m
832# 839#
833CONFIG_BT_HCIUSB=m 840CONFIG_BT_HCIUSB=m
834CONFIG_BT_HCIUSB_SCO=y 841CONFIG_BT_HCIUSB_SCO=y
842# CONFIG_BT_HCIBTUSB is not set
835CONFIG_BT_HCIUART=m 843CONFIG_BT_HCIUART=m
836CONFIG_BT_HCIUART_H4=y 844CONFIG_BT_HCIUART_H4=y
837CONFIG_BT_HCIUART_BCSP=y 845CONFIG_BT_HCIUART_BCSP=y
@@ -855,7 +863,6 @@ CONFIG_NL80211=y
855CONFIG_WIRELESS_EXT=y 863CONFIG_WIRELESS_EXT=y
856CONFIG_WIRELESS_EXT_SYSFS=y 864CONFIG_WIRELESS_EXT_SYSFS=y
857CONFIG_MAC80211=m 865CONFIG_MAC80211=m
858CONFIG_MAC80211_QOS=y
859 866
860# 867#
861# Rate control algorithm selection 868# Rate control algorithm selection
@@ -941,12 +948,14 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
941# CONFIG_CDROM_PKTCDVD_WCACHE is not set 948# CONFIG_CDROM_PKTCDVD_WCACHE is not set
942# CONFIG_ATA_OVER_ETH is not set 949# CONFIG_ATA_OVER_ETH is not set
943CONFIG_VIRTIO_BLK=m 950CONFIG_VIRTIO_BLK=m
951CONFIG_BLK_DEV_HD=y
944CONFIG_MISC_DEVICES=y 952CONFIG_MISC_DEVICES=y
945# CONFIG_PHANTOM is not set 953# CONFIG_PHANTOM is not set
946CONFIG_EEPROM_93CX6=m 954CONFIG_EEPROM_93CX6=m
947# CONFIG_SGI_IOC4 is not set 955# CONFIG_SGI_IOC4 is not set
948# CONFIG_TIFM_CORE is not set 956# CONFIG_TIFM_CORE is not set
949CONFIG_ENCLOSURE_SERVICES=m 957CONFIG_ENCLOSURE_SERVICES=m
958# CONFIG_HP_ILO is not set
950CONFIG_HAVE_IDE=y 959CONFIG_HAVE_IDE=y
951CONFIG_IDE=y 960CONFIG_IDE=y
952CONFIG_BLK_DEV_IDE=y 961CONFIG_BLK_DEV_IDE=y
@@ -954,6 +963,7 @@ CONFIG_BLK_DEV_IDE=y
954# 963#
955# Please see Documentation/ide/ide.txt for help/info on IDE drives 964# Please see Documentation/ide/ide.txt for help/info on IDE drives
956# 965#
966CONFIG_IDE_TIMINGS=y
957CONFIG_IDE_ATAPI=y 967CONFIG_IDE_ATAPI=y
958# CONFIG_BLK_DEV_IDE_SATA is not set 968# CONFIG_BLK_DEV_IDE_SATA is not set
959CONFIG_BLK_DEV_IDEDISK=y 969CONFIG_BLK_DEV_IDEDISK=y
@@ -971,7 +981,6 @@ CONFIG_IDE_PROC_FS=y
971# 981#
972# IDE chipset support/bugfixes 982# IDE chipset support/bugfixes
973# 983#
974# CONFIG_IDE_GENERIC is not set
975# CONFIG_BLK_DEV_PLATFORM is not set 984# CONFIG_BLK_DEV_PLATFORM is not set
976# CONFIG_BLK_DEV_IDEPNP is not set 985# CONFIG_BLK_DEV_IDEPNP is not set
977CONFIG_BLK_DEV_IDEDMA_SFF=y 986CONFIG_BLK_DEV_IDEDMA_SFF=y
@@ -990,10 +999,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
990# CONFIG_BLK_DEV_AMD74XX is not set 999# CONFIG_BLK_DEV_AMD74XX is not set
991# CONFIG_BLK_DEV_CMD64X is not set 1000# CONFIG_BLK_DEV_CMD64X is not set
992# CONFIG_BLK_DEV_TRIFLEX is not set 1001# CONFIG_BLK_DEV_TRIFLEX is not set
993# CONFIG_BLK_DEV_CY82C693 is not set
994# CONFIG_BLK_DEV_CS5520 is not set 1002# CONFIG_BLK_DEV_CS5520 is not set
995# CONFIG_BLK_DEV_CS5530 is not set 1003# CONFIG_BLK_DEV_CS5530 is not set
996# CONFIG_BLK_DEV_HPT34X is not set
997# CONFIG_BLK_DEV_HPT366 is not set 1004# CONFIG_BLK_DEV_HPT366 is not set
998# CONFIG_BLK_DEV_JMICRON is not set 1005# CONFIG_BLK_DEV_JMICRON is not set
999# CONFIG_BLK_DEV_SC1200 is not set 1006# CONFIG_BLK_DEV_SC1200 is not set
@@ -1014,8 +1021,6 @@ CONFIG_BLK_DEV_IDE_PMAC=y
1014CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 1021CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
1015CONFIG_BLK_DEV_IDEDMA_PMAC=y 1022CONFIG_BLK_DEV_IDEDMA_PMAC=y
1016CONFIG_BLK_DEV_IDEDMA=y 1023CONFIG_BLK_DEV_IDEDMA=y
1017CONFIG_BLK_DEV_HD_ONLY=y
1018CONFIG_BLK_DEV_HD=y
1019 1024
1020# 1025#
1021# SCSI device support 1026# SCSI device support
@@ -1125,6 +1130,7 @@ CONFIG_SCSI_DH=y
1125CONFIG_SCSI_DH_RDAC=m 1130CONFIG_SCSI_DH_RDAC=m
1126CONFIG_SCSI_DH_HP_SW=m 1131CONFIG_SCSI_DH_HP_SW=m
1127CONFIG_SCSI_DH_EMC=m 1132CONFIG_SCSI_DH_EMC=m
1133# CONFIG_SCSI_DH_ALUA is not set
1128CONFIG_ATA=y 1134CONFIG_ATA=y
1129# CONFIG_ATA_NONSTANDARD is not set 1135# CONFIG_ATA_NONSTANDARD is not set
1130# CONFIG_SATA_PMP is not set 1136# CONFIG_SATA_PMP is not set
@@ -1246,7 +1252,6 @@ CONFIG_WINDFARM=y
1246# CONFIG_ANSLCD is not set 1252# CONFIG_ANSLCD is not set
1247CONFIG_PMAC_RACKMETER=m 1253CONFIG_PMAC_RACKMETER=m
1248CONFIG_NETDEVICES=y 1254CONFIG_NETDEVICES=y
1249CONFIG_NETDEVICES_MULTIQUEUE=y
1250CONFIG_IFB=m 1255CONFIG_IFB=m
1251CONFIG_DUMMY=m 1256CONFIG_DUMMY=m
1252CONFIG_BONDING=m 1257CONFIG_BONDING=m
@@ -1256,7 +1261,7 @@ CONFIG_TUN=m
1256CONFIG_VETH=m 1261CONFIG_VETH=m
1257CONFIG_NET_SB1000=m 1262CONFIG_NET_SB1000=m
1258# CONFIG_ARCNET is not set 1263# CONFIG_ARCNET is not set
1259CONFIG_PHYLIB=m 1264CONFIG_PHYLIB=y
1260 1265
1261# 1266#
1262# MII PHY device drivers 1267# MII PHY device drivers
@@ -1271,7 +1276,9 @@ CONFIG_SMSC_PHY=m
1271CONFIG_BROADCOM_PHY=m 1276CONFIG_BROADCOM_PHY=m
1272CONFIG_ICPLUS_PHY=m 1277CONFIG_ICPLUS_PHY=m
1273CONFIG_REALTEK_PHY=m 1278CONFIG_REALTEK_PHY=m
1279# CONFIG_FIXED_PHY is not set
1274CONFIG_MDIO_BITBANG=y 1280CONFIG_MDIO_BITBANG=y
1281# CONFIG_MDIO_OF_GPIO is not set
1275CONFIG_NET_ETHERNET=y 1282CONFIG_NET_ETHERNET=y
1276CONFIG_MII=m 1283CONFIG_MII=m
1277CONFIG_MACE=m 1284CONFIG_MACE=m
@@ -1328,9 +1335,7 @@ CONFIG_NE2000=m
1328CONFIG_NET_PCI=y 1335CONFIG_NET_PCI=y
1329CONFIG_PCNET32=m 1336CONFIG_PCNET32=m
1330CONFIG_AMD8111_ETH=m 1337CONFIG_AMD8111_ETH=m
1331CONFIG_AMD8111E_NAPI=y
1332CONFIG_ADAPTEC_STARFIRE=m 1338CONFIG_ADAPTEC_STARFIRE=m
1333CONFIG_ADAPTEC_STARFIRE_NAPI=y
1334# CONFIG_AC3200 is not set 1339# CONFIG_AC3200 is not set
1335# CONFIG_APRICOT is not set 1340# CONFIG_APRICOT is not set
1336CONFIG_B44=m 1341CONFIG_B44=m
@@ -1359,7 +1364,6 @@ CONFIG_SUNDANCE=m
1359CONFIG_TLAN=m 1364CONFIG_TLAN=m
1360CONFIG_VIA_RHINE=m 1365CONFIG_VIA_RHINE=m
1361CONFIG_VIA_RHINE_MMIO=y 1366CONFIG_VIA_RHINE_MMIO=y
1362CONFIG_VIA_RHINE_NAPI=y
1363CONFIG_SC92031=m 1367CONFIG_SC92031=m
1364CONFIG_NET_POCKET=y 1368CONFIG_NET_POCKET=y
1365CONFIG_DE600=m 1369CONFIG_DE600=m
@@ -1372,17 +1376,15 @@ CONFIG_ACENIC=m
1372# CONFIG_ACENIC_OMIT_TIGON_I is not set 1376# CONFIG_ACENIC_OMIT_TIGON_I is not set
1373CONFIG_DL2K=m 1377CONFIG_DL2K=m
1374CONFIG_E1000=m 1378CONFIG_E1000=m
1375CONFIG_E1000_NAPI=y
1376# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 1379# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
1377CONFIG_E1000E=m 1380CONFIG_E1000E=m
1378CONFIG_E1000E_ENABLED=y
1379CONFIG_IP1000=m 1381CONFIG_IP1000=m
1380CONFIG_IGB=m 1382CONFIG_IGB=m
1383CONFIG_IGB_LRO=y
1381CONFIG_NS83820=m 1384CONFIG_NS83820=m
1382CONFIG_HAMACHI=m 1385CONFIG_HAMACHI=m
1383CONFIG_YELLOWFIN=m 1386CONFIG_YELLOWFIN=m
1384CONFIG_R8169=m 1387CONFIG_R8169=m
1385CONFIG_R8169_NAPI=y
1386CONFIG_R8169_VLAN=y 1388CONFIG_R8169_VLAN=y
1387CONFIG_SIS190=m 1389CONFIG_SIS190=m
1388CONFIG_SKGE=m 1390CONFIG_SKGE=m
@@ -1393,21 +1395,18 @@ CONFIG_VIA_VELOCITY=m
1393CONFIG_TIGON3=m 1395CONFIG_TIGON3=m
1394CONFIG_BNX2=m 1396CONFIG_BNX2=m
1395CONFIG_GIANFAR=m 1397CONFIG_GIANFAR=m
1396CONFIG_GFAR_NAPI=y
1397# CONFIG_UCC_GETH is not set 1398# CONFIG_UCC_GETH is not set
1398CONFIG_MV643XX_ETH=m 1399CONFIG_MV643XX_ETH=m
1399CONFIG_QLA3XXX=m 1400CONFIG_QLA3XXX=m
1400CONFIG_ATL1=m 1401CONFIG_ATL1=m
1402# CONFIG_ATL1E is not set
1401CONFIG_NETDEV_10000=y 1403CONFIG_NETDEV_10000=y
1402CONFIG_CHELSIO_T1=m 1404CONFIG_CHELSIO_T1=m
1403CONFIG_CHELSIO_T1_1G=y 1405CONFIG_CHELSIO_T1_1G=y
1404CONFIG_CHELSIO_T1_NAPI=y
1405CONFIG_CHELSIO_T3=m 1406CONFIG_CHELSIO_T3=m
1406CONFIG_IXGBE=m 1407CONFIG_IXGBE=m
1407CONFIG_IXGB=m 1408CONFIG_IXGB=m
1408CONFIG_IXGB_NAPI=y
1409CONFIG_S2IO=m 1409CONFIG_S2IO=m
1410CONFIG_S2IO_NAPI=y
1411CONFIG_MYRI10GE=m 1410CONFIG_MYRI10GE=m
1412CONFIG_NETXEN_NIC=m 1411CONFIG_NETXEN_NIC=m
1413CONFIG_NIU=m 1412CONFIG_NIU=m
@@ -1477,8 +1476,7 @@ CONFIG_ATM_IDT77252_USE_SUNI=y
1477# CONFIG_ATM_AMBASSADOR is not set 1476# CONFIG_ATM_AMBASSADOR is not set
1478# CONFIG_ATM_HORIZON is not set 1477# CONFIG_ATM_HORIZON is not set
1479# CONFIG_ATM_IA is not set 1478# CONFIG_ATM_IA is not set
1480CONFIG_ATM_FORE200E_MAYBE=m 1479# CONFIG_ATM_FORE200E is not set
1481# CONFIG_ATM_FORE200E_PCA is not set
1482CONFIG_ATM_HE=m 1480CONFIG_ATM_HE=m
1483# CONFIG_ATM_HE_USE_SUNI is not set 1481# CONFIG_ATM_HE_USE_SUNI is not set
1484CONFIG_FDDI=y 1482CONFIG_FDDI=y
@@ -1551,6 +1549,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
1551# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1549# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1552CONFIG_MOUSE_SERIAL=m 1550CONFIG_MOUSE_SERIAL=m
1553CONFIG_MOUSE_APPLETOUCH=m 1551CONFIG_MOUSE_APPLETOUCH=m
1552# CONFIG_MOUSE_BCM5974 is not set
1554# CONFIG_MOUSE_INPORT is not set 1553# CONFIG_MOUSE_INPORT is not set
1555# CONFIG_MOUSE_LOGIBM is not set 1554# CONFIG_MOUSE_LOGIBM is not set
1556# CONFIG_MOUSE_PC110PAD is not set 1555# CONFIG_MOUSE_PC110PAD is not set
@@ -1611,33 +1610,18 @@ CONFIG_SERIO_SERPORT=y
1611# CONFIG_SERIO_PCIPS2 is not set 1610# CONFIG_SERIO_PCIPS2 is not set
1612CONFIG_SERIO_LIBPS2=y 1611CONFIG_SERIO_LIBPS2=y
1613CONFIG_SERIO_RAW=m 1612CONFIG_SERIO_RAW=m
1613# CONFIG_SERIO_XILINX_XPS_PS2 is not set
1614CONFIG_GAMEPORT=m 1614CONFIG_GAMEPORT=m
1615CONFIG_GAMEPORT_NS558=m 1615CONFIG_GAMEPORT_NS558=m
1616CONFIG_GAMEPORT_L4=m 1616CONFIG_GAMEPORT_L4=m
1617CONFIG_GAMEPORT_EMU10K1=m 1617CONFIG_GAMEPORT_EMU10K1=m
1618CONFIG_GAMEPORT_FM801=m 1618CONFIG_GAMEPORT_FM801=m
1619CONFIG_INPUT_LIRC=y
1620CONFIG_LIRC_DEV=m
1621CONFIG_LIRC_ATIUSB=m
1622CONFIG_LIRC_BT829=m
1623CONFIG_LIRC_CMDIR=m
1624CONFIG_LIRC_I2C=m
1625CONFIG_LIRC_IGORPLUGUSB=m
1626CONFIG_LIRC_IMON=m
1627CONFIG_LIRC_IT87=m
1628CONFIG_LIRC_MCEUSB=m
1629CONFIG_LIRC_MCEUSB2=m
1630CONFIG_LIRC_PVR150=m
1631CONFIG_LIRC_PARALLEL=m
1632CONFIG_LIRC_SERIAL=m
1633CONFIG_LIRC_SIR=m
1634CONFIG_LIRC_STREAMZAP=m
1635CONFIG_LIRC_TTUSBIR=m
1636 1619
1637# 1620#
1638# Character devices 1621# Character devices
1639# 1622#
1640CONFIG_VT=y 1623CONFIG_VT=y
1624CONFIG_CONSOLE_TRANSLATIONS=y
1641CONFIG_VT_CONSOLE=y 1625CONFIG_VT_CONSOLE=y
1642CONFIG_HW_CONSOLE=y 1626CONFIG_HW_CONSOLE=y
1643CONFIG_VT_HW_CONSOLE_BINDING=y 1627CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -1701,12 +1685,12 @@ CONFIG_SERIAL_OF_PLATFORM=y
1701# CONFIG_SERIAL_QE is not set 1685# CONFIG_SERIAL_QE is not set
1702CONFIG_UNIX98_PTYS=y 1686CONFIG_UNIX98_PTYS=y
1703# CONFIG_LEGACY_PTYS is not set 1687# CONFIG_LEGACY_PTYS is not set
1704# CONFIG_CRASH is not set
1705CONFIG_BRIQ_PANEL=m 1688CONFIG_BRIQ_PANEL=m
1706CONFIG_PRINTER=m 1689CONFIG_PRINTER=m
1707CONFIG_LP_CONSOLE=y 1690CONFIG_LP_CONSOLE=y
1708CONFIG_PPDEV=m 1691CONFIG_PPDEV=m
1709# CONFIG_HVC_RTAS is not set 1692# CONFIG_HVC_RTAS is not set
1693# CONFIG_VIRTIO_CONSOLE is not set
1710# CONFIG_IPMI_HANDLER is not set 1694# CONFIG_IPMI_HANDLER is not set
1711CONFIG_HW_RANDOM=y 1695CONFIG_HW_RANDOM=y
1712CONFIG_HW_RANDOM_VIRTIO=m 1696CONFIG_HW_RANDOM_VIRTIO=m
@@ -1728,6 +1712,7 @@ CONFIG_DEVPORT=y
1728CONFIG_I2C=y 1712CONFIG_I2C=y
1729CONFIG_I2C_BOARDINFO=y 1713CONFIG_I2C_BOARDINFO=y
1730CONFIG_I2C_CHARDEV=m 1714CONFIG_I2C_CHARDEV=m
1715CONFIG_I2C_HELPER_AUTO=y
1731CONFIG_I2C_ALGOBIT=y 1716CONFIG_I2C_ALGOBIT=y
1732CONFIG_I2C_ALGOPCA=m 1717CONFIG_I2C_ALGOPCA=m
1733 1718
@@ -1807,20 +1792,24 @@ CONFIG_SENSORS_TSL2550=m
1807# CONFIG_I2C_DEBUG_BUS is not set 1792# CONFIG_I2C_DEBUG_BUS is not set
1808# CONFIG_I2C_DEBUG_CHIP is not set 1793# CONFIG_I2C_DEBUG_CHIP is not set
1809# CONFIG_SPI is not set 1794# CONFIG_SPI is not set
1810CONFIG_HAVE_GPIO_LIB=y 1795CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1811 1796CONFIG_ARCH_REQUIRE_GPIOLIB=y
1812# 1797CONFIG_GPIOLIB=y
1813# GPIO Support
1814#
1815# CONFIG_DEBUG_GPIO is not set 1798# CONFIG_DEBUG_GPIO is not set
1799CONFIG_GPIO_SYSFS=y
1816 1800
1817# 1801#
1818# I2C GPIO expanders: 1802# I2C GPIO expanders:
1819# 1803#
1804# CONFIG_GPIO_MAX732X is not set
1820# CONFIG_GPIO_PCA953X is not set 1805# CONFIG_GPIO_PCA953X is not set
1821# CONFIG_GPIO_PCF857X is not set 1806# CONFIG_GPIO_PCF857X is not set
1822 1807
1823# 1808#
1809# PCI GPIO expanders:
1810#
1811
1812#
1824# SPI GPIO expanders: 1813# SPI GPIO expanders:
1825# 1814#
1826CONFIG_W1=m 1815CONFIG_W1=m
@@ -1850,6 +1839,7 @@ CONFIG_APM_POWER=m
1850CONFIG_BATTERY_PMU=m 1839CONFIG_BATTERY_PMU=m
1851CONFIG_HWMON=m 1840CONFIG_HWMON=m
1852CONFIG_HWMON_VID=m 1841CONFIG_HWMON_VID=m
1842# CONFIG_SENSORS_AD7414 is not set
1853CONFIG_SENSORS_AD7418=m 1843CONFIG_SENSORS_AD7418=m
1854CONFIG_SENSORS_ADM1021=m 1844CONFIG_SENSORS_ADM1021=m
1855CONFIG_SENSORS_ADM1025=m 1845CONFIG_SENSORS_ADM1025=m
@@ -1913,8 +1903,9 @@ CONFIG_WATCHDOG=y
1913# Watchdog Device Drivers 1903# Watchdog Device Drivers
1914# 1904#
1915CONFIG_SOFT_WATCHDOG=m 1905CONFIG_SOFT_WATCHDOG=m
1906# CONFIG_ALIM7101_WDT is not set
1916# CONFIG_MPC5200_WDT is not set 1907# CONFIG_MPC5200_WDT is not set
1917CONFIG_83xx_WDT=m 1908# CONFIG_8xxx_WDT is not set
1918CONFIG_WATCHDOG_RTAS=m 1909CONFIG_WATCHDOG_RTAS=m
1919 1910
1920# 1911#
@@ -1953,8 +1944,10 @@ CONFIG_SSB_DRIVER_PCICORE=y
1953# 1944#
1954# Multifunction device drivers 1945# Multifunction device drivers
1955# 1946#
1947# CONFIG_MFD_CORE is not set
1956CONFIG_MFD_SM501=m 1948CONFIG_MFD_SM501=m
1957# CONFIG_HTC_PASIC3 is not set 1949# CONFIG_HTC_PASIC3 is not set
1950# CONFIG_MFD_TMIO is not set
1958 1951
1959# 1952#
1960# Multimedia devices 1953# Multimedia devices
@@ -1993,6 +1986,7 @@ CONFIG_MEDIA_TUNER_QT1010=m
1993CONFIG_MEDIA_TUNER_XC2028=m 1986CONFIG_MEDIA_TUNER_XC2028=m
1994CONFIG_MEDIA_TUNER_XC5000=m 1987CONFIG_MEDIA_TUNER_XC5000=m
1995CONFIG_MEDIA_TUNER_MXL5005S=m 1988CONFIG_MEDIA_TUNER_MXL5005S=m
1989CONFIG_MEDIA_TUNER_MXL5007T=m
1996CONFIG_VIDEO_V4L2=m 1990CONFIG_VIDEO_V4L2=m
1997CONFIG_VIDEO_V4L1=m 1991CONFIG_VIDEO_V4L1=m
1998CONFIG_VIDEOBUF_GEN=m 1992CONFIG_VIDEOBUF_GEN=m
@@ -2000,13 +1994,13 @@ CONFIG_VIDEOBUF_DMA_SG=m
2000CONFIG_VIDEOBUF_VMALLOC=m 1994CONFIG_VIDEOBUF_VMALLOC=m
2001CONFIG_VIDEOBUF_DVB=m 1995CONFIG_VIDEOBUF_DVB=m
2002CONFIG_VIDEO_BTCX=m 1996CONFIG_VIDEO_BTCX=m
2003CONFIG_VIDEO_IR_I2C=m
2004CONFIG_VIDEO_IR=m 1997CONFIG_VIDEO_IR=m
2005CONFIG_VIDEO_TVEEPROM=m 1998CONFIG_VIDEO_TVEEPROM=m
2006CONFIG_VIDEO_TUNER=m 1999CONFIG_VIDEO_TUNER=m
2007CONFIG_VIDEO_CAPTURE_DRIVERS=y 2000CONFIG_VIDEO_CAPTURE_DRIVERS=y
2008# CONFIG_VIDEO_ADV_DEBUG is not set 2001# CONFIG_VIDEO_ADV_DEBUG is not set
2009# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set 2002# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
2003CONFIG_VIDEO_IR_I2C=m
2010 2004
2011# 2005#
2012# Encoders/decoders and other helper chips 2006# Encoders/decoders and other helper chips
@@ -2108,6 +2102,8 @@ CONFIG_VIDEO_CX18=m
2108# CONFIG_VIDEO_CAFE_CCIC is not set 2102# CONFIG_VIDEO_CAFE_CCIC is not set
2109CONFIG_V4L_USB_DRIVERS=y 2103CONFIG_V4L_USB_DRIVERS=y
2110CONFIG_USB_VIDEO_CLASS=m 2104CONFIG_USB_VIDEO_CLASS=m
2105CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
2106CONFIG_USB_GSPCA=m
2111CONFIG_VIDEO_PVRUSB2=m 2107CONFIG_VIDEO_PVRUSB2=m
2112CONFIG_VIDEO_PVRUSB2_SYSFS=y 2108CONFIG_VIDEO_PVRUSB2_SYSFS=y
2113CONFIG_VIDEO_PVRUSB2_DVB=y 2109CONFIG_VIDEO_PVRUSB2_DVB=y
@@ -2133,11 +2129,14 @@ CONFIG_USB_PWC=m
2133# CONFIG_USB_PWC_DEBUG is not set 2129# CONFIG_USB_PWC_DEBUG is not set
2134CONFIG_USB_ZR364XX=m 2130CONFIG_USB_ZR364XX=m
2135CONFIG_USB_STKWEBCAM=m 2131CONFIG_USB_STKWEBCAM=m
2132# CONFIG_USB_S2255 is not set
2136CONFIG_SOC_CAMERA=m 2133CONFIG_SOC_CAMERA=m
2137CONFIG_SOC_CAMERA_MT9M001=m 2134CONFIG_SOC_CAMERA_MT9M001=m
2138# CONFIG_MT9M001_PCA9536_SWITCH is not set 2135# CONFIG_MT9M001_PCA9536_SWITCH is not set
2139CONFIG_SOC_CAMERA_MT9V022=m 2136CONFIG_SOC_CAMERA_MT9V022=m
2140# CONFIG_MT9V022_PCA9536_SWITCH is not set 2137# CONFIG_MT9V022_PCA9536_SWITCH is not set
2138# CONFIG_SOC_CAMERA_PLATFORM is not set
2139# CONFIG_VIDEO_SH_MOBILE_CEU is not set
2141CONFIG_RADIO_ADAPTERS=y 2140CONFIG_RADIO_ADAPTERS=y
2142# CONFIG_RADIO_CADET is not set 2141# CONFIG_RADIO_CADET is not set
2143# CONFIG_RADIO_RTRACK is not set 2142# CONFIG_RADIO_RTRACK is not set
@@ -2194,6 +2193,8 @@ CONFIG_DVB_USB_DTT200U=m
2194CONFIG_DVB_USB_OPERA1=m 2193CONFIG_DVB_USB_OPERA1=m
2195CONFIG_DVB_USB_AF9005=m 2194CONFIG_DVB_USB_AF9005=m
2196CONFIG_DVB_USB_AF9005_REMOTE=m 2195CONFIG_DVB_USB_AF9005_REMOTE=m
2196# CONFIG_DVB_USB_DW2102 is not set
2197# CONFIG_DVB_USB_ANYSEE is not set
2197CONFIG_DVB_TTUSB_BUDGET=m 2198CONFIG_DVB_TTUSB_BUDGET=m
2198CONFIG_DVB_TTUSB_DEC=m 2199CONFIG_DVB_TTUSB_DEC=m
2199CONFIG_DVB_CINERGYT2=m 2200CONFIG_DVB_CINERGYT2=m
@@ -2203,6 +2204,7 @@ CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512
2203CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250 2204CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250
2204CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y 2205CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y
2205CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100 2206CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100
2207# CONFIG_DVB_SIANO_SMS1XXX is not set
2206 2208
2207# 2209#
2208# Supported FlexCopII (B2C2) Adapters 2210# Supported FlexCopII (B2C2) Adapters
@@ -2253,6 +2255,7 @@ CONFIG_DVB_SP8870=m
2253CONFIG_DVB_SP887X=m 2255CONFIG_DVB_SP887X=m
2254CONFIG_DVB_CX22700=m 2256CONFIG_DVB_CX22700=m
2255CONFIG_DVB_CX22702=m 2257CONFIG_DVB_CX22702=m
2258# CONFIG_DVB_DRX397XD is not set
2256CONFIG_DVB_L64781=m 2259CONFIG_DVB_L64781=m
2257CONFIG_DVB_TDA1004X=m 2260CONFIG_DVB_TDA1004X=m
2258CONFIG_DVB_NXT6000=m 2261CONFIG_DVB_NXT6000=m
@@ -2389,12 +2392,15 @@ CONFIG_FB_TRIDENT=m
2389CONFIG_FB_TRIDENT_ACCEL=y 2392CONFIG_FB_TRIDENT_ACCEL=y
2390# CONFIG_FB_ARK is not set 2393# CONFIG_FB_ARK is not set
2391# CONFIG_FB_PM3 is not set 2394# CONFIG_FB_PM3 is not set
2395# CONFIG_FB_CARMINE is not set
2392# CONFIG_FB_FSL_DIU is not set 2396# CONFIG_FB_FSL_DIU is not set
2393CONFIG_FB_SM501=m 2397CONFIG_FB_SM501=m
2394CONFIG_FB_IBM_GXT4500=y 2398CONFIG_FB_IBM_GXT4500=y
2395# CONFIG_FB_VIRTUAL is not set 2399# CONFIG_FB_VIRTUAL is not set
2396CONFIG_BACKLIGHT_LCD_SUPPORT=y 2400CONFIG_BACKLIGHT_LCD_SUPPORT=y
2397CONFIG_LCD_CLASS_DEVICE=m 2401CONFIG_LCD_CLASS_DEVICE=m
2402# CONFIG_LCD_ILI9320 is not set
2403CONFIG_LCD_PLATFORM=m
2398CONFIG_BACKLIGHT_CLASS_DEVICE=y 2404CONFIG_BACKLIGHT_CLASS_DEVICE=y
2399# CONFIG_BACKLIGHT_CORGI is not set 2405# CONFIG_BACKLIGHT_CORGI is not set
2400 2406
@@ -2613,6 +2619,7 @@ CONFIG_USB_DEVICEFS=y
2613# CONFIG_USB_DYNAMIC_MINORS is not set 2619# CONFIG_USB_DYNAMIC_MINORS is not set
2614CONFIG_USB_SUSPEND=y 2620CONFIG_USB_SUSPEND=y
2615# CONFIG_USB_OTG is not set 2621# CONFIG_USB_OTG is not set
2622CONFIG_USB_MON=y
2616 2623
2617# 2624#
2618# USB Host Controller Drivers 2625# USB Host Controller Drivers
@@ -2640,6 +2647,7 @@ CONFIG_USB_U132_HCD=m
2640CONFIG_USB_SL811_HCD=m 2647CONFIG_USB_SL811_HCD=m
2641# CONFIG_USB_SL811_CS is not set 2648# CONFIG_USB_SL811_CS is not set
2642# CONFIG_USB_R8A66597_HCD is not set 2649# CONFIG_USB_R8A66597_HCD is not set
2650# CONFIG_USB_MUSB_HDRC is not set
2643 2651
2644# 2652#
2645# USB Device Class drivers 2653# USB Device Class drivers
@@ -2668,6 +2676,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
2668CONFIG_USB_STORAGE_ALAUDA=y 2676CONFIG_USB_STORAGE_ALAUDA=y
2669CONFIG_USB_STORAGE_ONETOUCH=y 2677CONFIG_USB_STORAGE_ONETOUCH=y
2670CONFIG_USB_STORAGE_KARMA=y 2678CONFIG_USB_STORAGE_KARMA=y
2679# CONFIG_USB_STORAGE_SIERRA is not set
2671CONFIG_USB_STORAGE_CYPRESS_ATACB=y 2680CONFIG_USB_STORAGE_CYPRESS_ATACB=y
2672# CONFIG_USB_LIBUSUAL is not set 2681# CONFIG_USB_LIBUSUAL is not set
2673 2682
@@ -2676,7 +2685,6 @@ CONFIG_USB_STORAGE_CYPRESS_ATACB=y
2676# 2685#
2677CONFIG_USB_MDC800=m 2686CONFIG_USB_MDC800=m
2678CONFIG_USB_MICROTEK=m 2687CONFIG_USB_MICROTEK=m
2679CONFIG_USB_MON=y
2680 2688
2681# 2689#
2682# USB port drivers 2690# USB port drivers
@@ -2686,7 +2694,6 @@ CONFIG_USB_SERIAL=m
2686CONFIG_USB_EZUSB=y 2694CONFIG_USB_EZUSB=y
2687CONFIG_USB_SERIAL_GENERIC=y 2695CONFIG_USB_SERIAL_GENERIC=y
2688CONFIG_USB_SERIAL_AIRCABLE=m 2696CONFIG_USB_SERIAL_AIRCABLE=m
2689CONFIG_USB_SERIAL_AIRPRIME=m
2690CONFIG_USB_SERIAL_ARK3116=m 2697CONFIG_USB_SERIAL_ARK3116=m
2691CONFIG_USB_SERIAL_BELKIN=m 2698CONFIG_USB_SERIAL_BELKIN=m
2692CONFIG_USB_SERIAL_CH341=m 2699CONFIG_USB_SERIAL_CH341=m
@@ -2734,7 +2741,6 @@ CONFIG_USB_SERIAL_DEBUG=m
2734CONFIG_USB_EMI62=m 2741CONFIG_USB_EMI62=m
2735CONFIG_USB_EMI26=m 2742CONFIG_USB_EMI26=m
2736CONFIG_USB_ADUTUX=m 2743CONFIG_USB_ADUTUX=m
2737CONFIG_USB_AUERSWALD=m
2738# CONFIG_USB_RIO500 is not set 2744# CONFIG_USB_RIO500 is not set
2739CONFIG_USB_LEGOTOWER=m 2745CONFIG_USB_LEGOTOWER=m
2740CONFIG_USB_LCD=m 2746CONFIG_USB_LCD=m
@@ -2770,7 +2776,9 @@ CONFIG_LEDS_CLASS=y
2770# 2776#
2771# LED drivers 2777# LED drivers
2772# 2778#
2779# CONFIG_LEDS_PCA9532 is not set
2773# CONFIG_LEDS_GPIO is not set 2780# CONFIG_LEDS_GPIO is not set
2781# CONFIG_LEDS_PCA955X is not set
2774 2782
2775# 2783#
2776# LED Triggers 2784# LED Triggers
@@ -2853,6 +2861,7 @@ CONFIG_KS0108_PORT=0x378
2853CONFIG_KS0108_DELAY=2 2861CONFIG_KS0108_DELAY=2
2854CONFIG_UIO=m 2862CONFIG_UIO=m
2855CONFIG_UIO_CIF=m 2863CONFIG_UIO_CIF=m
2864CONFIG_UIO_PDRV=m
2856CONFIG_UIO_SMX=m 2865CONFIG_UIO_SMX=m
2857 2866
2858# 2867#
@@ -2899,6 +2908,7 @@ CONFIG_GFS2_FS_LOCKING_DLM=m
2899CONFIG_OCFS2_FS=m 2908CONFIG_OCFS2_FS=m
2900CONFIG_OCFS2_FS_O2CB=m 2909CONFIG_OCFS2_FS_O2CB=m
2901CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 2910CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
2911CONFIG_OCFS2_FS_STATS=y
2902# CONFIG_OCFS2_DEBUG_MASKLOG is not set 2912# CONFIG_OCFS2_DEBUG_MASKLOG is not set
2903# CONFIG_OCFS2_DEBUG_FS is not set 2913# CONFIG_OCFS2_DEBUG_FS is not set
2904CONFIG_DNOTIFY=y 2914CONFIG_DNOTIFY=y
@@ -2959,11 +2969,9 @@ CONFIG_BEFS_FS=m
2959CONFIG_BFS_FS=m 2969CONFIG_BFS_FS=m
2960CONFIG_EFS_FS=m 2970CONFIG_EFS_FS=m
2961CONFIG_CRAMFS=m 2971CONFIG_CRAMFS=m
2962CONFIG_SQUASHFS=m
2963# CONFIG_SQUASHFS_EMBEDDED is not set
2964CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
2965CONFIG_VXFS_FS=m 2972CONFIG_VXFS_FS=m
2966CONFIG_MINIX_FS=m 2973CONFIG_MINIX_FS=m
2974CONFIG_OMFS_FS=m
2967# CONFIG_HPFS_FS is not set 2975# CONFIG_HPFS_FS is not set
2968CONFIG_QNX4FS_FS=m 2976CONFIG_QNX4FS_FS=m
2969CONFIG_ROMFS_FS=m 2977CONFIG_ROMFS_FS=m
@@ -2988,7 +2996,6 @@ CONFIG_NFS_ACL_SUPPORT=m
2988CONFIG_NFS_COMMON=y 2996CONFIG_NFS_COMMON=y
2989CONFIG_SUNRPC=m 2997CONFIG_SUNRPC=m
2990CONFIG_SUNRPC_GSS=m 2998CONFIG_SUNRPC_GSS=m
2991CONFIG_SUNRPC_BIND34=y
2992CONFIG_RPCSEC_GSS_KRB5=m 2999CONFIG_RPCSEC_GSS_KRB5=m
2993CONFIG_RPCSEC_GSS_SPKM3=m 3000CONFIG_RPCSEC_GSS_SPKM3=m
2994# CONFIG_SMB_FS is not set 3001# CONFIG_SMB_FS is not set
@@ -3011,7 +3018,6 @@ CONFIG_NCPFS_SMALLDOS=y
3011CONFIG_NCPFS_NLS=y 3018CONFIG_NCPFS_NLS=y
3012CONFIG_NCPFS_EXTRAS=y 3019CONFIG_NCPFS_EXTRAS=y
3013CONFIG_CODA_FS=m 3020CONFIG_CODA_FS=m
3014# CONFIG_CODA_FS_OLD_API is not set
3015# CONFIG_AFS_FS is not set 3021# CONFIG_AFS_FS is not set
3016CONFIG_9P_FS=m 3022CONFIG_9P_FS=m
3017 3023
@@ -3087,7 +3093,7 @@ CONFIG_BITREVERSE=y
3087# CONFIG_GENERIC_FIND_FIRST_BIT is not set 3093# CONFIG_GENERIC_FIND_FIRST_BIT is not set
3088CONFIG_CRC_CCITT=m 3094CONFIG_CRC_CCITT=m
3089CONFIG_CRC16=m 3095CONFIG_CRC16=m
3090CONFIG_CRC_T10DIF=m 3096CONFIG_CRC_T10DIF=y
3091CONFIG_CRC_ITU_T=m 3097CONFIG_CRC_ITU_T=m
3092CONFIG_CRC32=y 3098CONFIG_CRC32=y
3093# CONFIG_CRC7 is not set 3099# CONFIG_CRC7 is not set
@@ -3120,6 +3126,8 @@ CONFIG_HEADERS_CHECK=y
3120CONFIG_DEBUG_KERNEL=y 3126CONFIG_DEBUG_KERNEL=y
3121CONFIG_DEBUG_SHIRQ=y 3127CONFIG_DEBUG_SHIRQ=y
3122CONFIG_DETECT_SOFTLOCKUP=y 3128CONFIG_DETECT_SOFTLOCKUP=y
3129# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
3130CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
3123CONFIG_SCHED_DEBUG=y 3131CONFIG_SCHED_DEBUG=y
3124CONFIG_SCHEDSTATS=y 3132CONFIG_SCHEDSTATS=y
3125CONFIG_TIMER_STATS=y 3133CONFIG_TIMER_STATS=y
@@ -3143,6 +3151,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
3143CONFIG_DEBUG_INFO=y 3151CONFIG_DEBUG_INFO=y
3144CONFIG_DEBUG_VM=y 3152CONFIG_DEBUG_VM=y
3145CONFIG_DEBUG_WRITECOUNT=y 3153CONFIG_DEBUG_WRITECOUNT=y
3154CONFIG_DEBUG_MEMORY_INIT=y
3146CONFIG_DEBUG_LIST=y 3155CONFIG_DEBUG_LIST=y
3147CONFIG_DEBUG_SG=y 3156CONFIG_DEBUG_SG=y
3148CONFIG_FRAME_POINTER=y 3157CONFIG_FRAME_POINTER=y
@@ -3158,6 +3167,7 @@ CONFIG_FAIL_MAKE_REQUEST=y
3158CONFIG_FAULT_INJECTION_DEBUG_FS=y 3167CONFIG_FAULT_INJECTION_DEBUG_FS=y
3159CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y 3168CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
3160CONFIG_LATENCYTOP=y 3169CONFIG_LATENCYTOP=y
3170CONFIG_SYSCTL_SYSCALL_CHECK=y
3161CONFIG_HAVE_FTRACE=y 3171CONFIG_HAVE_FTRACE=y
3162CONFIG_HAVE_DYNAMIC_FTRACE=y 3172CONFIG_HAVE_DYNAMIC_FTRACE=y
3163CONFIG_TRACER_MAX_TRACE=y 3173CONFIG_TRACER_MAX_TRACE=y
@@ -3168,16 +3178,18 @@ CONFIG_CONTEXT_SWITCH_TRACER=y
3168CONFIG_DYNAMIC_FTRACE=y 3178CONFIG_DYNAMIC_FTRACE=y
3169# CONFIG_FTRACE_STARTUP_TEST is not set 3179# CONFIG_FTRACE_STARTUP_TEST is not set
3170# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set 3180# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
3181# CONFIG_BUILD_DOCSRC is not set
3171# CONFIG_SAMPLES is not set 3182# CONFIG_SAMPLES is not set
3183CONFIG_HAVE_ARCH_KGDB=y
3184# CONFIG_KGDB is not set
3172CONFIG_DEBUG_STACKOVERFLOW=y 3185CONFIG_DEBUG_STACKOVERFLOW=y
3173CONFIG_DEBUG_STACK_USAGE=y 3186CONFIG_DEBUG_STACK_USAGE=y
3174CONFIG_DEBUGGER=y
3175# CONFIG_CODE_PATCHING_SELFTEST is not set 3187# CONFIG_CODE_PATCHING_SELFTEST is not set
3176# CONFIG_FTR_FIXUP_SELFTEST is not set 3188# CONFIG_FTR_FIXUP_SELFTEST is not set
3177# CONFIG_KGDB_CONSOLE is not set
3178CONFIG_XMON=y 3189CONFIG_XMON=y
3179# CONFIG_XMON_DEFAULT is not set 3190# CONFIG_XMON_DEFAULT is not set
3180CONFIG_XMON_DISASSEMBLY=y 3191CONFIG_XMON_DISASSEMBLY=y
3192CONFIG_DEBUGGER=y
3181CONFIG_IRQSTACKS=y 3193CONFIG_IRQSTACKS=y
3182# CONFIG_VIRQ_DEBUG is not set 3194# CONFIG_VIRQ_DEBUG is not set
3183# CONFIG_BDI_SWITCH is not set 3195# CONFIG_BDI_SWITCH is not set
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig
index bc3bf62ddc2..b390b747664 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:18 2008 4# Thu Aug 21 00:52:13 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set
18CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
19CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
20# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -31,12 +32,14 @@ CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
38CONFIG_GENERIC_CALIBRATE_DELAY=y 40CONFIG_GENERIC_CALIBRATE_DELAY=y
39CONFIG_GENERIC_FIND_NEXT_BIT=y 41CONFIG_GENERIC_FIND_NEXT_BIT=y
42CONFIG_GENERIC_GPIO=y
40# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
41CONFIG_PPC=y 44CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
@@ -45,11 +48,13 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
47CONFIG_OF=y 50CONFIG_OF=y
48# CONFIG_PPC_UDBG_16550 is not set 51CONFIG_PPC_UDBG_16550=y
49# CONFIG_GENERIC_TBSYNC is not set 52# CONFIG_GENERIC_TBSYNC is not set
50CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
51CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
52CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
53# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -82,7 +87,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
82CONFIG_SYSCTL=y 87CONFIG_SYSCTL=y
83CONFIG_EMBEDDED=y 88CONFIG_EMBEDDED=y
84CONFIG_SYSCTL_SYSCALL=y 89CONFIG_SYSCTL_SYSCALL=y
85CONFIG_SYSCTL_SYSCALL_CHECK=y
86CONFIG_KALLSYMS=y 90CONFIG_KALLSYMS=y
87CONFIG_KALLSYMS_ALL=y 91CONFIG_KALLSYMS_ALL=y
88# CONFIG_KALLSYMS_EXTRA_PASS is not set 92# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -90,6 +94,7 @@ CONFIG_HOTPLUG=y
90CONFIG_PRINTK=y 94CONFIG_PRINTK=y
91CONFIG_BUG=y 95CONFIG_BUG=y
92CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_PCSPKR_PLATFORM=y
93CONFIG_COMPAT_BRK=y 98CONFIG_COMPAT_BRK=y
94CONFIG_BASE_FULL=y 99CONFIG_BASE_FULL=y
95CONFIG_FUTEX=y 100CONFIG_FUTEX=y
@@ -107,10 +112,16 @@ CONFIG_SLUB=y
107# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
108# CONFIG_MARKERS is not set 113# CONFIG_MARKERS is not set
109CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y
110CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
111CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y
112# CONFIG_HAVE_DMA_ATTRS is not set 120# CONFIG_HAVE_DMA_ATTRS is not set
121# CONFIG_USE_GENERIC_SMP_HELPERS is not set
122CONFIG_HAVE_CLK=y
113CONFIG_PROC_PAGE_MONITOR=y 123CONFIG_PROC_PAGE_MONITOR=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
114CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
115CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
@@ -120,6 +131,7 @@ CONFIG_BLOCK=y
120# CONFIG_LBD is not set 131# CONFIG_LBD is not set
121# CONFIG_BLK_DEV_IO_TRACE is not set 132# CONFIG_BLK_DEV_IO_TRACE is not set
122# CONFIG_LSF is not set 133# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_INTEGRITY is not set
123 135
124# 136#
125# IO Schedulers 137# IO Schedulers
@@ -138,33 +150,43 @@ CONFIG_CLASSIC_RCU=y
138# 150#
139# Platform support 151# Platform support
140# 152#
141# CONFIG_PPC_MULTIPLATFORM is not set 153CONFIG_PPC_MULTIPLATFORM=y
142CONFIG_PPC_82xx=y 154CONFIG_CLASSIC32=y
143# CONFIG_PPC_83xx is not set 155CONFIG_PPC_CHRP=y
144# CONFIG_PPC_86xx is not set 156# CONFIG_MPC5121_ADS is not set
145# CONFIG_PPC_MPC512x is not set 157# CONFIG_MPC5121_GENERIC is not set
146# CONFIG_PPC_MPC5121 is not set 158# CONFIG_PPC_MPC52xx is not set
159CONFIG_PPC_PMAC=y
147# CONFIG_PPC_CELL is not set 160# CONFIG_PPC_CELL is not set
148# CONFIG_PPC_CELL_NATIVE is not set 161# CONFIG_PPC_CELL_NATIVE is not set
162CONFIG_PPC_82xx=y
149# CONFIG_MPC8272_ADS is not set 163# CONFIG_MPC8272_ADS is not set
150CONFIG_PQ2FADS=y 164CONFIG_PQ2FADS=y
151# CONFIG_EP8248E is not set 165# CONFIG_EP8248E is not set
152CONFIG_PQ2ADS=y 166CONFIG_PQ2ADS=y
153CONFIG_8260=y 167CONFIG_8260=y
154CONFIG_PQ2_ADS_PCI_PIC=y 168CONFIG_PQ2_ADS_PCI_PIC=y
169# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set
171# CONFIG_EMBEDDED6xx is not set
172CONFIG_PPC_NATIVE=y
173# CONFIG_UDBG_RTAS_CONSOLE is not set
155# CONFIG_IPIC is not set 174# CONFIG_IPIC is not set
156# CONFIG_MPIC is not set 175CONFIG_MPIC=y
157# CONFIG_MPIC_WEIRD is not set 176# CONFIG_MPIC_WEIRD is not set
158# CONFIG_PPC_I8259 is not set 177CONFIG_PPC_I8259=y
159# CONFIG_PPC_RTAS is not set 178CONFIG_PPC_RTAS=y
179# CONFIG_RTAS_ERROR_LOGGING is not set
180CONFIG_RTAS_PROC=y
160# CONFIG_MMIO_NVRAM is not set 181# CONFIG_MMIO_NVRAM is not set
161# CONFIG_PPC_MPC106 is not set 182CONFIG_PPC_MPC106=y
162# CONFIG_PPC_970_NAP is not set 183# CONFIG_PPC_970_NAP is not set
163# CONFIG_PPC_INDIRECT_IO is not set 184# CONFIG_PPC_INDIRECT_IO is not set
164# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
165# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
187# CONFIG_PPC601_SYNC_FIX is not set
188# CONFIG_TAU is not set
166CONFIG_CPM2=y 189CONFIG_CPM2=y
167CONFIG_PPC_CPM_NEW_BINDING=y
168# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
169CONFIG_CPM=y 191CONFIG_CPM=y
170 192
@@ -181,7 +203,7 @@ CONFIG_HZ_250=y
181# CONFIG_HZ_300 is not set 203# CONFIG_HZ_300 is not set
182# CONFIG_HZ_1000 is not set 204# CONFIG_HZ_1000 is not set
183CONFIG_HZ=250 205CONFIG_HZ=250
184# CONFIG_SCHED_HRTICK is not set 206CONFIG_SCHED_HRTICK=y
185CONFIG_PREEMPT_NONE=y 207CONFIG_PREEMPT_NONE=y
186# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
187# CONFIG_PREEMPT is not set 209# CONFIG_PREEMPT is not set
@@ -199,6 +221,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
199# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
200CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
201CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
202# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
203CONFIG_ZONE_DMA_FLAG=1 226CONFIG_ZONE_DMA_FLAG=1
204CONFIG_BOUNCE=y 227CONFIG_BOUNCE=y
@@ -206,6 +229,7 @@ CONFIG_VIRT_TO_BUS=y
206CONFIG_FORCE_MAX_ZONEORDER=11 229CONFIG_FORCE_MAX_ZONEORDER=11
207CONFIG_PROC_DEVICETREE=y 230CONFIG_PROC_DEVICETREE=y
208# CONFIG_CMDLINE_BOOL is not set 231# CONFIG_CMDLINE_BOOL is not set
232CONFIG_EXTRA_TARGETS=""
209# CONFIG_PM is not set 233# CONFIG_PM is not set
210CONFIG_SECCOMP=y 234CONFIG_SECCOMP=y
211CONFIG_ISA_DMA_API=y 235CONFIG_ISA_DMA_API=y
@@ -213,9 +237,11 @@ CONFIG_ISA_DMA_API=y
213# 237#
214# Bus options 238# Bus options
215# 239#
240# CONFIG_ISA is not set
216CONFIG_ZONE_DMA=y 241CONFIG_ZONE_DMA=y
217CONFIG_PPC_INDIRECT_PCI=y 242CONFIG_PPC_INDIRECT_PCI=y
218CONFIG_FSL_SOC=y 243CONFIG_FSL_SOC=y
244CONFIG_PPC_PCI_CHOICE=y
219CONFIG_PCI=y 245CONFIG_PCI=y
220CONFIG_PCI_DOMAINS=y 246CONFIG_PCI_DOMAINS=y
221CONFIG_PCI_SYSCALL=y 247CONFIG_PCI_SYSCALL=y
@@ -243,10 +269,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
243CONFIG_KERNEL_START=0xc0000000 269CONFIG_KERNEL_START=0xc0000000
244CONFIG_PHYSICAL_START=0x00000000 270CONFIG_PHYSICAL_START=0x00000000
245CONFIG_TASK_SIZE=0xc0000000 271CONFIG_TASK_SIZE=0xc0000000
246
247#
248# Networking
249#
250CONFIG_NET=y 272CONFIG_NET=y
251 273
252# 274#
@@ -447,9 +469,11 @@ CONFIG_MTD_PHYSMAP_OF=y
447# 469#
448# CONFIG_MTD_UBI is not set 470# CONFIG_MTD_UBI is not set
449CONFIG_OF_DEVICE=y 471CONFIG_OF_DEVICE=y
472CONFIG_OF_GPIO=y
450# CONFIG_PARPORT is not set 473# CONFIG_PARPORT is not set
451CONFIG_BLK_DEV=y 474CONFIG_BLK_DEV=y
452# CONFIG_BLK_DEV_FD is not set 475# CONFIG_BLK_DEV_FD is not set
476# CONFIG_MAC_FLOPPY is not set
453# CONFIG_BLK_CPQ_DA is not set 477# CONFIG_BLK_CPQ_DA is not set
454# CONFIG_BLK_CPQ_CISS_DA is not set 478# CONFIG_BLK_CPQ_CISS_DA is not set
455# CONFIG_BLK_DEV_DAC960 is not set 479# CONFIG_BLK_DEV_DAC960 is not set
@@ -461,14 +485,15 @@ CONFIG_BLK_DEV_LOOP=y
461# CONFIG_BLK_DEV_RAM is not set 485# CONFIG_BLK_DEV_RAM is not set
462# CONFIG_CDROM_PKTCDVD is not set 486# CONFIG_CDROM_PKTCDVD is not set
463# CONFIG_ATA_OVER_ETH is not set 487# CONFIG_ATA_OVER_ETH is not set
488# CONFIG_BLK_DEV_HD is not set
464CONFIG_MISC_DEVICES=y 489CONFIG_MISC_DEVICES=y
465# CONFIG_PHANTOM is not set 490# CONFIG_PHANTOM is not set
466# CONFIG_EEPROM_93CX6 is not set 491# CONFIG_EEPROM_93CX6 is not set
467# CONFIG_SGI_IOC4 is not set 492# CONFIG_SGI_IOC4 is not set
468# CONFIG_ENCLOSURE_SERVICES is not set 493# CONFIG_ENCLOSURE_SERVICES is not set
494# CONFIG_HP_ILO is not set
469CONFIG_HAVE_IDE=y 495CONFIG_HAVE_IDE=y
470CONFIG_IDE=y 496CONFIG_IDE=y
471CONFIG_IDE_MAX_HWIFS=4
472CONFIG_BLK_DEV_IDE=y 497CONFIG_BLK_DEV_IDE=y
473 498
474# 499#
@@ -486,7 +511,6 @@ CONFIG_IDE_PROC_FS=y
486# 511#
487# IDE chipset support/bugfixes 512# IDE chipset support/bugfixes
488# 513#
489# CONFIG_IDE_GENERIC is not set
490# CONFIG_BLK_DEV_PLATFORM is not set 514# CONFIG_BLK_DEV_PLATFORM is not set
491 515
492# 516#
@@ -498,9 +522,7 @@ CONFIG_IDE_PROC_FS=y
498# CONFIG_BLK_DEV_AMD74XX is not set 522# CONFIG_BLK_DEV_AMD74XX is not set
499# CONFIG_BLK_DEV_CMD64X is not set 523# CONFIG_BLK_DEV_CMD64X is not set
500# CONFIG_BLK_DEV_TRIFLEX is not set 524# CONFIG_BLK_DEV_TRIFLEX is not set
501# CONFIG_BLK_DEV_CY82C693 is not set
502# CONFIG_BLK_DEV_CS5530 is not set 525# CONFIG_BLK_DEV_CS5530 is not set
503# CONFIG_BLK_DEV_HPT34X is not set
504# CONFIG_BLK_DEV_HPT366 is not set 526# CONFIG_BLK_DEV_HPT366 is not set
505# CONFIG_BLK_DEV_JMICRON is not set 527# CONFIG_BLK_DEV_JMICRON is not set
506# CONFIG_BLK_DEV_SC1200 is not set 528# CONFIG_BLK_DEV_SC1200 is not set
@@ -517,9 +539,8 @@ CONFIG_IDE_PROC_FS=y
517# CONFIG_BLK_DEV_TRM290 is not set 539# CONFIG_BLK_DEV_TRM290 is not set
518# CONFIG_BLK_DEV_VIA82CXXX is not set 540# CONFIG_BLK_DEV_VIA82CXXX is not set
519# CONFIG_BLK_DEV_TC86C001 is not set 541# CONFIG_BLK_DEV_TC86C001 is not set
542# CONFIG_BLK_DEV_IDE_PMAC is not set
520# CONFIG_BLK_DEV_IDEDMA is not set 543# CONFIG_BLK_DEV_IDEDMA is not set
521# CONFIG_BLK_DEV_HD_ONLY is not set
522# CONFIG_BLK_DEV_HD is not set
523 544
524# 545#
525# SCSI device support 546# SCSI device support
@@ -537,13 +558,12 @@ CONFIG_IDE_PROC_FS=y
537# 558#
538 559
539# 560#
540# An alternative FireWire stack is available with EXPERIMENTAL=y 561# A new alternative FireWire stack is available with EXPERIMENTAL=y
541# 562#
542# CONFIG_IEEE1394 is not set 563# CONFIG_IEEE1394 is not set
543# CONFIG_I2O is not set 564# CONFIG_I2O is not set
544# CONFIG_MACINTOSH_DRIVERS is not set 565# CONFIG_MACINTOSH_DRIVERS is not set
545CONFIG_NETDEVICES=y 566CONFIG_NETDEVICES=y
546# CONFIG_NETDEVICES_MULTIQUEUE is not set
547# CONFIG_DUMMY is not set 567# CONFIG_DUMMY is not set
548# CONFIG_BONDING is not set 568# CONFIG_BONDING is not set
549# CONFIG_EQUALIZER is not set 569# CONFIG_EQUALIZER is not set
@@ -567,8 +587,11 @@ CONFIG_DAVICOM_PHY=y
567# CONFIG_REALTEK_PHY is not set 587# CONFIG_REALTEK_PHY is not set
568# CONFIG_FIXED_PHY is not set 588# CONFIG_FIXED_PHY is not set
569CONFIG_MDIO_BITBANG=y 589CONFIG_MDIO_BITBANG=y
590# CONFIG_MDIO_OF_GPIO is not set
570CONFIG_NET_ETHERNET=y 591CONFIG_NET_ETHERNET=y
571CONFIG_MII=y 592CONFIG_MII=y
593# CONFIG_MACE is not set
594# CONFIG_BMAC is not set
572# CONFIG_HAPPYMEAL is not set 595# CONFIG_HAPPYMEAL is not set
573# CONFIG_SUNGEM is not set 596# CONFIG_SUNGEM is not set
574# CONFIG_CASSINI is not set 597# CONFIG_CASSINI is not set
@@ -590,7 +613,6 @@ CONFIG_NETDEV_1000=y
590# CONFIG_DL2K is not set 613# CONFIG_DL2K is not set
591# CONFIG_E1000 is not set 614# CONFIG_E1000 is not set
592# CONFIG_E1000E is not set 615# CONFIG_E1000E is not set
593# CONFIG_E1000E_ENABLED is not set
594# CONFIG_IGB is not set 616# CONFIG_IGB is not set
595# CONFIG_NS83820 is not set 617# CONFIG_NS83820 is not set
596# CONFIG_HAMACHI is not set 618# CONFIG_HAMACHI is not set
@@ -602,6 +624,7 @@ CONFIG_NETDEV_1000=y
602# CONFIG_TIGON3 is not set 624# CONFIG_TIGON3 is not set
603# CONFIG_BNX2 is not set 625# CONFIG_BNX2 is not set
604# CONFIG_GIANFAR is not set 626# CONFIG_GIANFAR is not set
627# CONFIG_MV643XX_ETH is not set
605# CONFIG_QLA3XXX is not set 628# CONFIG_QLA3XXX is not set
606CONFIG_NETDEV_10000=y 629CONFIG_NETDEV_10000=y
607# CONFIG_CHELSIO_T1 is not set 630# CONFIG_CHELSIO_T1 is not set
@@ -667,6 +690,7 @@ CONFIG_KEYBOARD_ATKBD=y
667# CONFIG_KEYBOARD_XTKBD is not set 690# CONFIG_KEYBOARD_XTKBD is not set
668# CONFIG_KEYBOARD_NEWTON is not set 691# CONFIG_KEYBOARD_NEWTON is not set
669# CONFIG_KEYBOARD_STOWAWAY is not set 692# CONFIG_KEYBOARD_STOWAWAY is not set
693# CONFIG_KEYBOARD_GPIO is not set
670CONFIG_INPUT_MOUSE=y 694CONFIG_INPUT_MOUSE=y
671CONFIG_MOUSE_PS2=y 695CONFIG_MOUSE_PS2=y
672CONFIG_MOUSE_PS2_ALPS=y 696CONFIG_MOUSE_PS2_ALPS=y
@@ -677,7 +701,9 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
677# CONFIG_MOUSE_PS2_TOUCHKIT is not set 701# CONFIG_MOUSE_PS2_TOUCHKIT is not set
678# CONFIG_MOUSE_SERIAL is not set 702# CONFIG_MOUSE_SERIAL is not set
679# CONFIG_MOUSE_APPLETOUCH is not set 703# CONFIG_MOUSE_APPLETOUCH is not set
704# CONFIG_MOUSE_BCM5974 is not set
680# CONFIG_MOUSE_VSXXXAA is not set 705# CONFIG_MOUSE_VSXXXAA is not set
706# CONFIG_MOUSE_GPIO is not set
681# CONFIG_INPUT_JOYSTICK is not set 707# CONFIG_INPUT_JOYSTICK is not set
682# CONFIG_INPUT_TABLET is not set 708# CONFIG_INPUT_TABLET is not set
683# CONFIG_INPUT_TOUCHSCREEN is not set 709# CONFIG_INPUT_TOUCHSCREEN is not set
@@ -692,6 +718,7 @@ CONFIG_SERIO_SERPORT=y
692# CONFIG_SERIO_PCIPS2 is not set 718# CONFIG_SERIO_PCIPS2 is not set
693CONFIG_SERIO_LIBPS2=y 719CONFIG_SERIO_LIBPS2=y
694# CONFIG_SERIO_RAW is not set 720# CONFIG_SERIO_RAW is not set
721# CONFIG_SERIO_XILINX_XPS_PS2 is not set
695# CONFIG_GAMEPORT is not set 722# CONFIG_GAMEPORT is not set
696 723
697# 724#
@@ -712,6 +739,7 @@ CONFIG_DEVKMEM=y
712# CONFIG_SERIAL_UARTLITE is not set 739# CONFIG_SERIAL_UARTLITE is not set
713CONFIG_SERIAL_CORE=y 740CONFIG_SERIAL_CORE=y
714CONFIG_SERIAL_CORE_CONSOLE=y 741CONFIG_SERIAL_CORE_CONSOLE=y
742# CONFIG_SERIAL_PMACZILOG is not set
715CONFIG_SERIAL_CPM=y 743CONFIG_SERIAL_CPM=y
716CONFIG_SERIAL_CPM_CONSOLE=y 744CONFIG_SERIAL_CPM_CONSOLE=y
717CONFIG_SERIAL_CPM_SCC1=y 745CONFIG_SERIAL_CPM_SCC1=y
@@ -724,6 +752,8 @@ CONFIG_SERIAL_CPM_SCC4=y
724CONFIG_UNIX98_PTYS=y 752CONFIG_UNIX98_PTYS=y
725CONFIG_LEGACY_PTYS=y 753CONFIG_LEGACY_PTYS=y
726CONFIG_LEGACY_PTY_COUNT=256 754CONFIG_LEGACY_PTY_COUNT=256
755# CONFIG_BRIQ_PANEL is not set
756# CONFIG_HVC_RTAS is not set
727# CONFIG_IPMI_HANDLER is not set 757# CONFIG_IPMI_HANDLER is not set
728CONFIG_HW_RANDOM=y 758CONFIG_HW_RANDOM=y
729# CONFIG_NVRAM is not set 759# CONFIG_NVRAM is not set
@@ -734,10 +764,28 @@ CONFIG_HW_RANDOM=y
734CONFIG_DEVPORT=y 764CONFIG_DEVPORT=y
735# CONFIG_I2C is not set 765# CONFIG_I2C is not set
736# CONFIG_SPI is not set 766# CONFIG_SPI is not set
767CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
768CONFIG_ARCH_REQUIRE_GPIOLIB=y
769CONFIG_GPIOLIB=y
770# CONFIG_DEBUG_GPIO is not set
771
772#
773# I2C GPIO expanders:
774#
775
776#
777# PCI GPIO expanders:
778#
779# CONFIG_GPIO_BT8XX is not set
780
781#
782# SPI GPIO expanders:
783#
737# CONFIG_W1 is not set 784# CONFIG_W1 is not set
738# CONFIG_POWER_SUPPLY is not set 785# CONFIG_POWER_SUPPLY is not set
739# CONFIG_HWMON is not set 786# CONFIG_HWMON is not set
740# CONFIG_THERMAL is not set 787# CONFIG_THERMAL is not set
788# CONFIG_THERMAL_HWMON is not set
741# CONFIG_WATCHDOG is not set 789# CONFIG_WATCHDOG is not set
742 790
743# 791#
@@ -749,8 +797,10 @@ CONFIG_SSB_POSSIBLE=y
749# 797#
750# Multifunction device drivers 798# Multifunction device drivers
751# 799#
800# CONFIG_MFD_CORE is not set
752# CONFIG_MFD_SM501 is not set 801# CONFIG_MFD_SM501 is not set
753# CONFIG_HTC_PASIC3 is not set 802# CONFIG_HTC_PASIC3 is not set
803# CONFIG_MFD_TMIO is not set
754 804
755# 805#
756# Multimedia devices 806# Multimedia devices
@@ -782,10 +832,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
782# Display device support 832# Display device support
783# 833#
784# CONFIG_DISPLAY_SUPPORT is not set 834# CONFIG_DISPLAY_SUPPORT is not set
785
786#
787# Sound
788#
789# CONFIG_SOUND is not set 835# CONFIG_SOUND is not set
790# CONFIG_HID_SUPPORT is not set 836# CONFIG_HID_SUPPORT is not set
791CONFIG_USB_SUPPORT=y 837CONFIG_USB_SUPPORT=y
@@ -795,6 +841,8 @@ CONFIG_USB_ARCH_HAS_EHCI=y
795# CONFIG_USB is not set 841# CONFIG_USB is not set
796# CONFIG_USB_OTG_WHITELIST is not set 842# CONFIG_USB_OTG_WHITELIST is not set
797# CONFIG_USB_OTG_BLACKLIST_HUB is not set 843# CONFIG_USB_OTG_BLACKLIST_HUB is not set
844# CONFIG_USB_MUSB_HDRC is not set
845# CONFIG_USB_GADGET_MUSB_HDRC is not set
798 846
799# 847#
800# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 848# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -807,7 +855,7 @@ CONFIG_USB_GADGET_SELECTED=y
807# CONFIG_USB_GADGET_ATMEL_USBA is not set 855# CONFIG_USB_GADGET_ATMEL_USBA is not set
808# CONFIG_USB_GADGET_FSL_USB2 is not set 856# CONFIG_USB_GADGET_FSL_USB2 is not set
809# CONFIG_USB_GADGET_NET2280 is not set 857# CONFIG_USB_GADGET_NET2280 is not set
810# CONFIG_USB_GADGET_PXA2XX is not set 858# CONFIG_USB_GADGET_PXA25X is not set
811CONFIG_USB_GADGET_M66592=y 859CONFIG_USB_GADGET_M66592=y
812CONFIG_USB_M66592=y 860CONFIG_USB_M66592=y
813# CONFIG_USB_GADGET_PXA27X is not set 861# CONFIG_USB_GADGET_PXA27X is not set
@@ -826,6 +874,7 @@ CONFIG_USB_ETH_RNDIS=y
826# CONFIG_USB_G_SERIAL is not set 874# CONFIG_USB_G_SERIAL is not set
827# CONFIG_USB_MIDI_GADGET is not set 875# CONFIG_USB_MIDI_GADGET is not set
828# CONFIG_USB_G_PRINTER is not set 876# CONFIG_USB_G_PRINTER is not set
877# CONFIG_USB_CDC_COMPOSITE is not set
829# CONFIG_MMC is not set 878# CONFIG_MMC is not set
830# CONFIG_MEMSTICK is not set 879# CONFIG_MEMSTICK is not set
831# CONFIG_NEW_LEDS is not set 880# CONFIG_NEW_LEDS is not set
@@ -893,6 +942,7 @@ CONFIG_TMPFS=y
893CONFIG_CRAMFS=y 942CONFIG_CRAMFS=y
894# CONFIG_VXFS_FS is not set 943# CONFIG_VXFS_FS is not set
895# CONFIG_MINIX_FS is not set 944# CONFIG_MINIX_FS is not set
945# CONFIG_OMFS_FS is not set
896# CONFIG_HPFS_FS is not set 946# CONFIG_HPFS_FS is not set
897# CONFIG_QNX4FS_FS is not set 947# CONFIG_QNX4FS_FS is not set
898# CONFIG_ROMFS_FS is not set 948# CONFIG_ROMFS_FS is not set
@@ -902,8 +952,8 @@ CONFIG_NETWORK_FILESYSTEMS=y
902CONFIG_NFS_FS=y 952CONFIG_NFS_FS=y
903CONFIG_NFS_V3=y 953CONFIG_NFS_V3=y
904CONFIG_NFS_V3_ACL=y 954CONFIG_NFS_V3_ACL=y
905# CONFIG_NFSD is not set
906CONFIG_ROOT_NFS=y 955CONFIG_ROOT_NFS=y
956# CONFIG_NFSD is not set
907CONFIG_LOCKD=y 957CONFIG_LOCKD=y
908CONFIG_LOCKD_V4=y 958CONFIG_LOCKD_V4=y
909CONFIG_NFS_ACL_SUPPORT=y 959CONFIG_NFS_ACL_SUPPORT=y
@@ -983,6 +1033,7 @@ CONFIG_BITREVERSE=y
983# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1033# CONFIG_GENERIC_FIND_FIRST_BIT is not set
984CONFIG_CRC_CCITT=y 1034CONFIG_CRC_CCITT=y
985# CONFIG_CRC16 is not set 1035# CONFIG_CRC16 is not set
1036# CONFIG_CRC_T10DIF is not set
986# CONFIG_CRC_ITU_T is not set 1037# CONFIG_CRC_ITU_T is not set
987CONFIG_CRC32=y 1038CONFIG_CRC32=y
988# CONFIG_CRC7 is not set 1039# CONFIG_CRC7 is not set
@@ -1009,6 +1060,8 @@ CONFIG_MAGIC_SYSRQ=y
1009CONFIG_DEBUG_KERNEL=y 1060CONFIG_DEBUG_KERNEL=y
1010# CONFIG_DEBUG_SHIRQ is not set 1061# CONFIG_DEBUG_SHIRQ is not set
1011CONFIG_DETECT_SOFTLOCKUP=y 1062CONFIG_DETECT_SOFTLOCKUP=y
1063# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1064CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1012# CONFIG_SCHED_DEBUG is not set 1065# CONFIG_SCHED_DEBUG is not set
1013# CONFIG_SCHEDSTATS is not set 1066# CONFIG_SCHEDSTATS is not set
1014# CONFIG_TIMER_STATS is not set 1067# CONFIG_TIMER_STATS is not set
@@ -1026,19 +1079,31 @@ CONFIG_DEBUG_BUGVERBOSE=y
1026CONFIG_DEBUG_INFO=y 1079CONFIG_DEBUG_INFO=y
1027# CONFIG_DEBUG_VM is not set 1080# CONFIG_DEBUG_VM is not set
1028# CONFIG_DEBUG_WRITECOUNT is not set 1081# CONFIG_DEBUG_WRITECOUNT is not set
1082# CONFIG_DEBUG_MEMORY_INIT is not set
1029# CONFIG_DEBUG_LIST is not set 1083# CONFIG_DEBUG_LIST is not set
1030# CONFIG_DEBUG_SG is not set 1084# CONFIG_DEBUG_SG is not set
1031# CONFIG_BOOT_PRINTK_DELAY is not set 1085# CONFIG_BOOT_PRINTK_DELAY is not set
1086# CONFIG_RCU_TORTURE_TEST is not set
1032# CONFIG_BACKTRACE_SELF_TEST is not set 1087# CONFIG_BACKTRACE_SELF_TEST is not set
1033# CONFIG_FAULT_INJECTION is not set 1088# CONFIG_FAULT_INJECTION is not set
1089# CONFIG_LATENCYTOP is not set
1090CONFIG_SYSCTL_SYSCALL_CHECK=y
1091CONFIG_HAVE_FTRACE=y
1092CONFIG_HAVE_DYNAMIC_FTRACE=y
1093# CONFIG_FTRACE is not set
1094# CONFIG_SCHED_TRACER is not set
1095# CONFIG_CONTEXT_SWITCH_TRACER is not set
1034# CONFIG_SAMPLES is not set 1096# CONFIG_SAMPLES is not set
1097CONFIG_HAVE_ARCH_KGDB=y
1035# CONFIG_DEBUG_STACKOVERFLOW is not set 1098# CONFIG_DEBUG_STACKOVERFLOW is not set
1036# CONFIG_DEBUG_STACK_USAGE is not set 1099# CONFIG_DEBUG_STACK_USAGE is not set
1037# CONFIG_DEBUG_PAGEALLOC is not set 1100# CONFIG_DEBUG_PAGEALLOC is not set
1038# CONFIG_DEBUGGER is not set 1101# CONFIG_CODE_PATCHING_SELFTEST is not set
1039# CONFIG_KGDB_CONSOLE is not set 1102# CONFIG_FTR_FIXUP_SELFTEST is not set
1103# CONFIG_XMON is not set
1040# CONFIG_IRQSTACKS is not set 1104# CONFIG_IRQSTACKS is not set
1041CONFIG_BDI_SWITCH=y 1105CONFIG_BDI_SWITCH=y
1106# CONFIG_BOOTX_TEXT is not set
1042# CONFIG_PPC_EARLY_DEBUG is not set 1107# CONFIG_PPC_EARLY_DEBUG is not set
1043 1108
1044# 1109#
@@ -1046,6 +1111,7 @@ CONFIG_BDI_SWITCH=y
1046# 1111#
1047# CONFIG_KEYS is not set 1112# CONFIG_KEYS is not set
1048# CONFIG_SECURITY is not set 1113# CONFIG_SECURITY is not set
1114# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1049CONFIG_CRYPTO=y 1115CONFIG_CRYPTO=y
1050 1116
1051# 1117#
@@ -1086,6 +1152,10 @@ CONFIG_CRYPTO_PCBC=y
1086# CONFIG_CRYPTO_MD4 is not set 1152# CONFIG_CRYPTO_MD4 is not set
1087CONFIG_CRYPTO_MD5=y 1153CONFIG_CRYPTO_MD5=y
1088# CONFIG_CRYPTO_MICHAEL_MIC is not set 1154# CONFIG_CRYPTO_MICHAEL_MIC is not set
1155# CONFIG_CRYPTO_RMD128 is not set
1156# CONFIG_CRYPTO_RMD160 is not set
1157# CONFIG_CRYPTO_RMD256 is not set
1158# CONFIG_CRYPTO_RMD320 is not set
1089# CONFIG_CRYPTO_SHA1 is not set 1159# CONFIG_CRYPTO_SHA1 is not set
1090# CONFIG_CRYPTO_SHA256 is not set 1160# CONFIG_CRYPTO_SHA256 is not set
1091# CONFIG_CRYPTO_SHA512 is not set 1161# CONFIG_CRYPTO_SHA512 is not set
@@ -1117,6 +1187,7 @@ CONFIG_CRYPTO_DES=y
1117# CONFIG_CRYPTO_LZO is not set 1187# CONFIG_CRYPTO_LZO is not set
1118CONFIG_CRYPTO_HW=y 1188CONFIG_CRYPTO_HW=y
1119# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1189# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1120# CONFIG_PPC_CLOCK is not set 1190# CONFIG_CRYPTO_DEV_TALITOS is not set
1191CONFIG_PPC_CLOCK=y
1121CONFIG_PPC_LIB_RHEAP=y 1192CONFIG_PPC_LIB_RHEAP=y
1122# CONFIG_VIRTUALIZATION is not set 1193# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index c6b83577c05..01b54eac1ff 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:18 2008 4# Thu Aug 21 00:52:14 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -34,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
35CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
36CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -94,7 +95,6 @@ CONFIG_INITRAMFS_SOURCE=""
94CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
95# CONFIG_EMBEDDED is not set 96# CONFIG_EMBEDDED is not set
96CONFIG_SYSCTL_SYSCALL=y 97CONFIG_SYSCTL_SYSCALL=y
97CONFIG_SYSCTL_SYSCALL_CHECK=y
98CONFIG_KALLSYMS=y 98CONFIG_KALLSYMS=y
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 99# CONFIG_KALLSYMS_EXTRA_PASS is not set
100CONFIG_HOTPLUG=y 100CONFIG_HOTPLUG=y
@@ -118,10 +118,16 @@ CONFIG_SLUB=y
118# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
119# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
122CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set 126# CONFIG_HAVE_DMA_ATTRS is not set
127# CONFIG_USE_GENERIC_SMP_HELPERS is not set
128# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y 129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set 133# CONFIG_TINY_SHMEM is not set
@@ -132,6 +138,7 @@ CONFIG_LBD=y
132# CONFIG_BLK_DEV_IO_TRACE is not set 138# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set 139# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 140# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set
135 142
136# 143#
137# IO Schedulers 144# IO Schedulers
@@ -151,25 +158,25 @@ CONFIG_CLASSIC_RCU=y
151# Platform support 158# Platform support
152# 159#
153CONFIG_PPC_MULTIPLATFORM=y 160CONFIG_PPC_MULTIPLATFORM=y
154# CONFIG_PPC_82xx is not set
155# CONFIG_PPC_83xx is not set
156# CONFIG_PPC_86xx is not set
157CONFIG_CLASSIC32=y 161CONFIG_CLASSIC32=y
158# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
159# CONFIG_PPC_MPC512x is not set
160# CONFIG_PPC_MPC5121 is not set
161# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set
162# CONFIG_PPC_MPC52xx is not set 165# CONFIG_PPC_MPC52xx is not set
163# CONFIG_PPC_PMAC is not set 166# CONFIG_PPC_PMAC is not set
164# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
165# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
169# CONFIG_PPC_82xx is not set
166# CONFIG_PQ2ADS is not set 170# CONFIG_PQ2ADS is not set
171# CONFIG_PPC_83xx is not set
172# CONFIG_PPC_86xx is not set
167CONFIG_EMBEDDED6xx=y 173CONFIG_EMBEDDED6xx=y
168# CONFIG_LINKSTATION is not set 174# CONFIG_LINKSTATION is not set
169# CONFIG_STORCENTER is not set 175# CONFIG_STORCENTER is not set
170# CONFIG_MPC7448HPC2 is not set 176# CONFIG_MPC7448HPC2 is not set
171# CONFIG_PPC_HOLLY is not set 177# CONFIG_PPC_HOLLY is not set
172CONFIG_PPC_PRPMC2800=y 178CONFIG_PPC_PRPMC2800=y
179# CONFIG_PPC_C2K is not set
173CONFIG_MV64X60=y 180CONFIG_MV64X60=y
174# CONFIG_IPIC is not set 181# CONFIG_IPIC is not set
175# CONFIG_MPIC is not set 182# CONFIG_MPIC is not set
@@ -198,7 +205,7 @@ CONFIG_HZ_250=y
198# CONFIG_HZ_300 is not set 205# CONFIG_HZ_300 is not set
199# CONFIG_HZ_1000 is not set 206# CONFIG_HZ_1000 is not set
200CONFIG_HZ=250 207CONFIG_HZ=250
201# CONFIG_SCHED_HRTICK is not set 208CONFIG_SCHED_HRTICK=y
202CONFIG_PREEMPT_NONE=y 209CONFIG_PREEMPT_NONE=y
203# CONFIG_PREEMPT_VOLUNTARY is not set 210# CONFIG_PREEMPT_VOLUNTARY is not set
204# CONFIG_PREEMPT is not set 211# CONFIG_PREEMPT is not set
@@ -221,6 +228,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 228# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y 229CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 230CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y
224# CONFIG_RESOURCES_64BIT is not set 232# CONFIG_RESOURCES_64BIT is not set
225CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
226CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
@@ -228,6 +236,7 @@ CONFIG_VIRT_TO_BUS=y
228CONFIG_FORCE_MAX_ZONEORDER=11 236CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 237CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 238# CONFIG_CMDLINE_BOOL is not set
239CONFIG_EXTRA_TARGETS=""
231# CONFIG_PM is not set 240# CONFIG_PM is not set
232# CONFIG_SECCOMP is not set 241# CONFIG_SECCOMP is not set
233CONFIG_ISA_DMA_API=y 242CONFIG_ISA_DMA_API=y
@@ -264,10 +273,6 @@ CONFIG_PHYSICAL_START=0x00000000
264CONFIG_TASK_SIZE=0xc0000000 273CONFIG_TASK_SIZE=0xc0000000
265CONFIG_CONSISTENT_START=0xff100000 274CONFIG_CONSISTENT_START=0xff100000
266CONFIG_CONSISTENT_SIZE=0x00200000 275CONFIG_CONSISTENT_SIZE=0x00200000
267
268#
269# Networking
270#
271CONFIG_NET=y 276CONFIG_NET=y
272 277
273# 278#
@@ -359,7 +364,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 364CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
360CONFIG_STANDALONE=y 365CONFIG_STANDALONE=y
361CONFIG_PREVENT_FIRMWARE_BUILD=y 366CONFIG_PREVENT_FIRMWARE_BUILD=y
362# CONFIG_FW_LOADER is not set 367CONFIG_FW_LOADER=y
368CONFIG_FIRMWARE_IN_KERNEL=y
369CONFIG_EXTRA_FIRMWARE=""
363# CONFIG_SYS_HYPERVISOR is not set 370# CONFIG_SYS_HYPERVISOR is not set
364# CONFIG_CONNECTOR is not set 371# CONFIG_CONNECTOR is not set
365CONFIG_MTD=y 372CONFIG_MTD=y
@@ -461,12 +468,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
461# CONFIG_BLK_DEV_XIP is not set 468# CONFIG_BLK_DEV_XIP is not set
462# CONFIG_CDROM_PKTCDVD is not set 469# CONFIG_CDROM_PKTCDVD is not set
463# CONFIG_ATA_OVER_ETH is not set 470# CONFIG_ATA_OVER_ETH is not set
471# CONFIG_BLK_DEV_HD is not set
464CONFIG_MISC_DEVICES=y 472CONFIG_MISC_DEVICES=y
465# CONFIG_PHANTOM is not set 473# CONFIG_PHANTOM is not set
466# CONFIG_EEPROM_93CX6 is not set 474# CONFIG_EEPROM_93CX6 is not set
467# CONFIG_SGI_IOC4 is not set 475# CONFIG_SGI_IOC4 is not set
468# CONFIG_TIFM_CORE is not set 476# CONFIG_TIFM_CORE is not set
469# CONFIG_ENCLOSURE_SERVICES is not set 477# CONFIG_ENCLOSURE_SERVICES is not set
478# CONFIG_HP_ILO is not set
470CONFIG_HAVE_IDE=y 479CONFIG_HAVE_IDE=y
471CONFIG_IDE=y 480CONFIG_IDE=y
472CONFIG_BLK_DEV_IDE=y 481CONFIG_BLK_DEV_IDE=y
@@ -487,7 +496,6 @@ CONFIG_IDE_PROC_FS=y
487# 496#
488# IDE chipset support/bugfixes 497# IDE chipset support/bugfixes
489# 498#
490CONFIG_IDE_GENERIC=y
491# CONFIG_BLK_DEV_PLATFORM is not set 499# CONFIG_BLK_DEV_PLATFORM is not set
492CONFIG_BLK_DEV_IDEDMA_SFF=y 500CONFIG_BLK_DEV_IDEDMA_SFF=y
493 501
@@ -505,10 +513,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
505# CONFIG_BLK_DEV_AMD74XX is not set 513# CONFIG_BLK_DEV_AMD74XX is not set
506# CONFIG_BLK_DEV_CMD64X is not set 514# CONFIG_BLK_DEV_CMD64X is not set
507# CONFIG_BLK_DEV_TRIFLEX is not set 515# CONFIG_BLK_DEV_TRIFLEX is not set
508# CONFIG_BLK_DEV_CY82C693 is not set
509# CONFIG_BLK_DEV_CS5520 is not set 516# CONFIG_BLK_DEV_CS5520 is not set
510# CONFIG_BLK_DEV_CS5530 is not set 517# CONFIG_BLK_DEV_CS5530 is not set
511# CONFIG_BLK_DEV_HPT34X is not set
512# CONFIG_BLK_DEV_HPT366 is not set 518# CONFIG_BLK_DEV_HPT366 is not set
513# CONFIG_BLK_DEV_JMICRON is not set 519# CONFIG_BLK_DEV_JMICRON is not set
514# CONFIG_BLK_DEV_SC1200 is not set 520# CONFIG_BLK_DEV_SC1200 is not set
@@ -526,8 +532,6 @@ CONFIG_BLK_DEV_PDC202XX_NEW=y
526# CONFIG_BLK_DEV_VIA82CXXX is not set 532# CONFIG_BLK_DEV_VIA82CXXX is not set
527# CONFIG_BLK_DEV_TC86C001 is not set 533# CONFIG_BLK_DEV_TC86C001 is not set
528CONFIG_BLK_DEV_IDEDMA=y 534CONFIG_BLK_DEV_IDEDMA=y
529# CONFIG_BLK_DEV_HD_ONLY is not set
530# CONFIG_BLK_DEV_HD is not set
531 535
532# 536#
533# SCSI device support 537# SCSI device support
@@ -603,6 +607,7 @@ CONFIG_SCSI_LOWLEVEL=y
603# CONFIG_SCSI_NSP32 is not set 607# CONFIG_SCSI_NSP32 is not set
604# CONFIG_SCSI_DEBUG is not set 608# CONFIG_SCSI_DEBUG is not set
605# CONFIG_SCSI_SRP is not set 609# CONFIG_SCSI_SRP is not set
610# CONFIG_SCSI_DH is not set
606CONFIG_ATA=y 611CONFIG_ATA=y
607# CONFIG_ATA_NONSTANDARD is not set 612# CONFIG_ATA_NONSTANDARD is not set
608CONFIG_SATA_PMP=y 613CONFIG_SATA_PMP=y
@@ -669,6 +674,10 @@ CONFIG_SATA_MV=y
669# 674#
670# IEEE 1394 (FireWire) support 675# IEEE 1394 (FireWire) support
671# 676#
677
678#
679# Enable only one of the two stacks, unless you know what you are doing
680#
672# CONFIG_FIREWIRE is not set 681# CONFIG_FIREWIRE is not set
673# CONFIG_IEEE1394 is not set 682# CONFIG_IEEE1394 is not set
674# CONFIG_I2O is not set 683# CONFIG_I2O is not set
@@ -676,7 +685,6 @@ CONFIG_MACINTOSH_DRIVERS=y
676# CONFIG_MAC_EMUMOUSEBTN is not set 685# CONFIG_MAC_EMUMOUSEBTN is not set
677# CONFIG_WINDFARM is not set 686# CONFIG_WINDFARM is not set
678CONFIG_NETDEVICES=y 687CONFIG_NETDEVICES=y
679# CONFIG_NETDEVICES_MULTIQUEUE is not set
680# CONFIG_DUMMY is not set 688# CONFIG_DUMMY is not set
681# CONFIG_BONDING is not set 689# CONFIG_BONDING is not set
682# CONFIG_MACVLAN is not set 690# CONFIG_MACVLAN is not set
@@ -741,10 +749,8 @@ CONFIG_NETDEV_1000=y
741# CONFIG_ACENIC is not set 749# CONFIG_ACENIC is not set
742# CONFIG_DL2K is not set 750# CONFIG_DL2K is not set
743CONFIG_E1000=y 751CONFIG_E1000=y
744# CONFIG_E1000_NAPI is not set
745# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 752# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
746# CONFIG_E1000E is not set 753# CONFIG_E1000E is not set
747# CONFIG_E1000E_ENABLED is not set
748# CONFIG_IP1000 is not set 754# CONFIG_IP1000 is not set
749# CONFIG_IGB is not set 755# CONFIG_IGB is not set
750# CONFIG_NS83820 is not set 756# CONFIG_NS83820 is not set
@@ -760,6 +766,7 @@ CONFIG_E1000=y
760CONFIG_MV643XX_ETH=y 766CONFIG_MV643XX_ETH=y
761# CONFIG_QLA3XXX is not set 767# CONFIG_QLA3XXX is not set
762# CONFIG_ATL1 is not set 768# CONFIG_ATL1 is not set
769# CONFIG_ATL1E is not set
763CONFIG_NETDEV_10000=y 770CONFIG_NETDEV_10000=y
764# CONFIG_CHELSIO_T1 is not set 771# CONFIG_CHELSIO_T1 is not set
765# CONFIG_CHELSIO_T3 is not set 772# CONFIG_CHELSIO_T3 is not set
@@ -840,6 +847,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
840# Character devices 847# Character devices
841# 848#
842CONFIG_VT=y 849CONFIG_VT=y
850CONFIG_CONSOLE_TRANSLATIONS=y
843CONFIG_VT_CONSOLE=y 851CONFIG_VT_CONSOLE=y
844CONFIG_HW_CONSOLE=y 852CONFIG_HW_CONSOLE=y
845# CONFIG_VT_HW_CONSOLE_BINDING is not set 853# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -875,43 +883,64 @@ CONFIG_DEVPORT=y
875CONFIG_I2C=y 883CONFIG_I2C=y
876CONFIG_I2C_BOARDINFO=y 884CONFIG_I2C_BOARDINFO=y
877CONFIG_I2C_CHARDEV=y 885CONFIG_I2C_CHARDEV=y
886CONFIG_I2C_HELPER_AUTO=y
878 887
879# 888#
880# I2C Hardware Bus support 889# I2C Hardware Bus support
881# 890#
891
892#
893# PC SMBus host controller drivers
894#
882# CONFIG_I2C_ALI1535 is not set 895# CONFIG_I2C_ALI1535 is not set
883# CONFIG_I2C_ALI1563 is not set 896# CONFIG_I2C_ALI1563 is not set
884# CONFIG_I2C_ALI15X3 is not set 897# CONFIG_I2C_ALI15X3 is not set
885# CONFIG_I2C_AMD756 is not set 898# CONFIG_I2C_AMD756 is not set
886# CONFIG_I2C_AMD8111 is not set 899# CONFIG_I2C_AMD8111 is not set
887# CONFIG_I2C_I801 is not set 900# CONFIG_I2C_I801 is not set
888# CONFIG_I2C_I810 is not set 901# CONFIG_I2C_ISCH is not set
889# CONFIG_I2C_PIIX4 is not set 902# CONFIG_I2C_PIIX4 is not set
890# CONFIG_I2C_MPC is not set
891# CONFIG_I2C_NFORCE2 is not set 903# CONFIG_I2C_NFORCE2 is not set
892# CONFIG_I2C_OCORES is not set
893# CONFIG_I2C_PARPORT_LIGHT is not set
894# CONFIG_I2C_PROSAVAGE is not set
895# CONFIG_I2C_SAVAGE4 is not set
896# CONFIG_I2C_SIMTEC is not set
897# CONFIG_I2C_SIS5595 is not set 904# CONFIG_I2C_SIS5595 is not set
898# CONFIG_I2C_SIS630 is not set 905# CONFIG_I2C_SIS630 is not set
899# CONFIG_I2C_SIS96X is not set 906# CONFIG_I2C_SIS96X is not set
900# CONFIG_I2C_TAOS_EVM is not set
901# CONFIG_I2C_TINY_USB is not set
902# CONFIG_I2C_VIA is not set 907# CONFIG_I2C_VIA is not set
903# CONFIG_I2C_VIAPRO is not set 908# CONFIG_I2C_VIAPRO is not set
909
910#
911# I2C system bus drivers (mostly embedded / system-on-chip)
912#
913# CONFIG_I2C_MPC is not set
914CONFIG_I2C_MV64XXX=y
915# CONFIG_I2C_OCORES is not set
916# CONFIG_I2C_SIMTEC is not set
917
918#
919# External I2C/SMBus adapter drivers
920#
921# CONFIG_I2C_PARPORT_LIGHT is not set
922# CONFIG_I2C_TAOS_EVM is not set
923# CONFIG_I2C_TINY_USB is not set
924
925#
926# Graphics adapter I2C/DDC channel drivers
927#
904# CONFIG_I2C_VOODOO3 is not set 928# CONFIG_I2C_VOODOO3 is not set
929
930#
931# Other I2C/SMBus bus drivers
932#
905# CONFIG_I2C_PCA_PLATFORM is not set 933# CONFIG_I2C_PCA_PLATFORM is not set
906CONFIG_I2C_MV64XXX=y
907 934
908# 935#
909# Miscellaneous I2C Chip support 936# Miscellaneous I2C Chip support
910# 937#
911# CONFIG_DS1682 is not set 938# CONFIG_DS1682 is not set
939# CONFIG_AT24 is not set
912# CONFIG_SENSORS_EEPROM is not set 940# CONFIG_SENSORS_EEPROM is not set
913# CONFIG_SENSORS_PCF8574 is not set 941# CONFIG_SENSORS_PCF8574 is not set
914# CONFIG_PCF8575 is not set 942# CONFIG_PCF8575 is not set
943# CONFIG_SENSORS_PCA9539 is not set
915# CONFIG_SENSORS_PCF8591 is not set 944# CONFIG_SENSORS_PCF8591 is not set
916# CONFIG_SENSORS_MAX6875 is not set 945# CONFIG_SENSORS_MAX6875 is not set
917# CONFIG_SENSORS_TSL2550 is not set 946# CONFIG_SENSORS_TSL2550 is not set
@@ -920,10 +949,13 @@ CONFIG_I2C_MV64XXX=y
920# CONFIG_I2C_DEBUG_BUS is not set 949# CONFIG_I2C_DEBUG_BUS is not set
921# CONFIG_I2C_DEBUG_CHIP is not set 950# CONFIG_I2C_DEBUG_CHIP is not set
922# CONFIG_SPI is not set 951# CONFIG_SPI is not set
952CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
953# CONFIG_GPIOLIB is not set
923# CONFIG_W1 is not set 954# CONFIG_W1 is not set
924# CONFIG_POWER_SUPPLY is not set 955# CONFIG_POWER_SUPPLY is not set
925CONFIG_HWMON=y 956CONFIG_HWMON=y
926# CONFIG_HWMON_VID is not set 957# CONFIG_HWMON_VID is not set
958# CONFIG_SENSORS_AD7414 is not set
927# CONFIG_SENSORS_AD7418 is not set 959# CONFIG_SENSORS_AD7418 is not set
928# CONFIG_SENSORS_ADM1021 is not set 960# CONFIG_SENSORS_ADM1021 is not set
929# CONFIG_SENSORS_ADM1025 is not set 961# CONFIG_SENSORS_ADM1025 is not set
@@ -977,6 +1009,7 @@ CONFIG_HWMON=y
977# CONFIG_SENSORS_W83627EHF is not set 1009# CONFIG_SENSORS_W83627EHF is not set
978# CONFIG_HWMON_DEBUG_CHIP is not set 1010# CONFIG_HWMON_DEBUG_CHIP is not set
979# CONFIG_THERMAL is not set 1011# CONFIG_THERMAL is not set
1012# CONFIG_THERMAL_HWMON is not set
980# CONFIG_WATCHDOG is not set 1013# CONFIG_WATCHDOG is not set
981 1014
982# 1015#
@@ -988,8 +1021,10 @@ CONFIG_SSB_POSSIBLE=y
988# 1021#
989# Multifunction device drivers 1022# Multifunction device drivers
990# 1023#
1024# CONFIG_MFD_CORE is not set
991# CONFIG_MFD_SM501 is not set 1025# CONFIG_MFD_SM501 is not set
992# CONFIG_HTC_PASIC3 is not set 1026# CONFIG_HTC_PASIC3 is not set
1027# CONFIG_MFD_TMIO is not set
993 1028
994# 1029#
995# Multimedia devices 1030# Multimedia devices
@@ -1028,10 +1063,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
1028CONFIG_VGA_CONSOLE=y 1063CONFIG_VGA_CONSOLE=y
1029# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1064# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1030CONFIG_DUMMY_CONSOLE=y 1065CONFIG_DUMMY_CONSOLE=y
1031
1032#
1033# Sound
1034#
1035# CONFIG_SOUND is not set 1066# CONFIG_SOUND is not set
1036CONFIG_HID_SUPPORT=y 1067CONFIG_HID_SUPPORT=y
1037CONFIG_HID=y 1068CONFIG_HID=y
@@ -1060,6 +1091,7 @@ CONFIG_USB_DEVICEFS=y
1060# CONFIG_USB_DEVICE_CLASS is not set 1091# CONFIG_USB_DEVICE_CLASS is not set
1061# CONFIG_USB_DYNAMIC_MINORS is not set 1092# CONFIG_USB_DYNAMIC_MINORS is not set
1062# CONFIG_USB_OTG is not set 1093# CONFIG_USB_OTG is not set
1094CONFIG_USB_MON=y
1063 1095
1064# 1096#
1065# USB Host Controller Drivers 1097# USB Host Controller Drivers
@@ -1102,7 +1134,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1102# 1134#
1103# CONFIG_USB_MDC800 is not set 1135# CONFIG_USB_MDC800 is not set
1104# CONFIG_USB_MICROTEK is not set 1136# CONFIG_USB_MICROTEK is not set
1105CONFIG_USB_MON=y
1106 1137
1107# 1138#
1108# USB port drivers 1139# USB port drivers
@@ -1115,7 +1146,6 @@ CONFIG_USB_MON=y
1115# CONFIG_USB_EMI62 is not set 1146# CONFIG_USB_EMI62 is not set
1116# CONFIG_USB_EMI26 is not set 1147# CONFIG_USB_EMI26 is not set
1117# CONFIG_USB_ADUTUX is not set 1148# CONFIG_USB_ADUTUX is not set
1118# CONFIG_USB_AUERSWALD is not set
1119# CONFIG_USB_RIO500 is not set 1149# CONFIG_USB_RIO500 is not set
1120# CONFIG_USB_LEGOTOWER is not set 1150# CONFIG_USB_LEGOTOWER is not set
1121# CONFIG_USB_LCD is not set 1151# CONFIG_USB_LCD is not set
@@ -1169,6 +1199,7 @@ CONFIG_RTC_DRV_MAX6900=y
1169# CONFIG_RTC_DRV_PCF8583 is not set 1199# CONFIG_RTC_DRV_PCF8583 is not set
1170# CONFIG_RTC_DRV_M41T80 is not set 1200# CONFIG_RTC_DRV_M41T80 is not set
1171# CONFIG_RTC_DRV_S35390A is not set 1201# CONFIG_RTC_DRV_S35390A is not set
1202# CONFIG_RTC_DRV_FM3130 is not set
1172 1203
1173# 1204#
1174# SPI RTC drivers 1205# SPI RTC drivers
@@ -1258,6 +1289,7 @@ CONFIG_TMPFS=y
1258# CONFIG_CRAMFS is not set 1289# CONFIG_CRAMFS is not set
1259# CONFIG_VXFS_FS is not set 1290# CONFIG_VXFS_FS is not set
1260# CONFIG_MINIX_FS is not set 1291# CONFIG_MINIX_FS is not set
1292# CONFIG_OMFS_FS is not set
1261# CONFIG_HPFS_FS is not set 1293# CONFIG_HPFS_FS is not set
1262# CONFIG_QNX4FS_FS is not set 1294# CONFIG_QNX4FS_FS is not set
1263# CONFIG_ROMFS_FS is not set 1295# CONFIG_ROMFS_FS is not set
@@ -1267,12 +1299,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
1267CONFIG_NFS_FS=y 1299CONFIG_NFS_FS=y
1268# CONFIG_NFS_V3 is not set 1300# CONFIG_NFS_V3 is not set
1269# CONFIG_NFS_V4 is not set 1301# CONFIG_NFS_V4 is not set
1270# CONFIG_NFSD is not set
1271CONFIG_ROOT_NFS=y 1302CONFIG_ROOT_NFS=y
1303# CONFIG_NFSD is not set
1272CONFIG_LOCKD=y 1304CONFIG_LOCKD=y
1273CONFIG_NFS_COMMON=y 1305CONFIG_NFS_COMMON=y
1274CONFIG_SUNRPC=y 1306CONFIG_SUNRPC=y
1275# CONFIG_SUNRPC_BIND34 is not set
1276# CONFIG_RPCSEC_GSS_KRB5 is not set 1307# CONFIG_RPCSEC_GSS_KRB5 is not set
1277# CONFIG_RPCSEC_GSS_SPKM3 is not set 1308# CONFIG_RPCSEC_GSS_SPKM3 is not set
1278# CONFIG_SMB_FS is not set 1309# CONFIG_SMB_FS is not set
@@ -1312,6 +1343,7 @@ CONFIG_BITREVERSE=y
1312# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1343# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1313# CONFIG_CRC_CCITT is not set 1344# CONFIG_CRC_CCITT is not set
1314# CONFIG_CRC16 is not set 1345# CONFIG_CRC16 is not set
1346CONFIG_CRC_T10DIF=y
1315# CONFIG_CRC_ITU_T is not set 1347# CONFIG_CRC_ITU_T is not set
1316CONFIG_CRC32=y 1348CONFIG_CRC32=y
1317# CONFIG_CRC7 is not set 1349# CONFIG_CRC7 is not set
@@ -1337,7 +1369,16 @@ CONFIG_FRAME_WARN=1024
1337# CONFIG_SLUB_DEBUG_ON is not set 1369# CONFIG_SLUB_DEBUG_ON is not set
1338# CONFIG_SLUB_STATS is not set 1370# CONFIG_SLUB_STATS is not set
1339CONFIG_DEBUG_BUGVERBOSE=y 1371CONFIG_DEBUG_BUGVERBOSE=y
1372CONFIG_DEBUG_MEMORY_INIT=y
1373# CONFIG_LATENCYTOP is not set
1374CONFIG_SYSCTL_SYSCALL_CHECK=y
1375CONFIG_HAVE_FTRACE=y
1376CONFIG_HAVE_DYNAMIC_FTRACE=y
1377# CONFIG_FTRACE is not set
1378# CONFIG_SCHED_TRACER is not set
1379# CONFIG_CONTEXT_SWITCH_TRACER is not set
1340# CONFIG_SAMPLES is not set 1380# CONFIG_SAMPLES is not set
1381CONFIG_HAVE_ARCH_KGDB=y
1341# CONFIG_IRQSTACKS is not set 1382# CONFIG_IRQSTACKS is not set
1342# CONFIG_BOOTX_TEXT is not set 1383# CONFIG_BOOTX_TEXT is not set
1343# CONFIG_PPC_EARLY_DEBUG is not set 1384# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1390,6 +1431,10 @@ CONFIG_CRYPTO=y
1390# CONFIG_CRYPTO_MD4 is not set 1431# CONFIG_CRYPTO_MD4 is not set
1391# CONFIG_CRYPTO_MD5 is not set 1432# CONFIG_CRYPTO_MD5 is not set
1392# CONFIG_CRYPTO_MICHAEL_MIC is not set 1433# CONFIG_CRYPTO_MICHAEL_MIC is not set
1434# CONFIG_CRYPTO_RMD128 is not set
1435# CONFIG_CRYPTO_RMD160 is not set
1436# CONFIG_CRYPTO_RMD256 is not set
1437# CONFIG_CRYPTO_RMD320 is not set
1393# CONFIG_CRYPTO_SHA1 is not set 1438# CONFIG_CRYPTO_SHA1 is not set
1394# CONFIG_CRYPTO_SHA256 is not set 1439# CONFIG_CRYPTO_SHA256 is not set
1395# CONFIG_CRYPTO_SHA512 is not set 1440# CONFIG_CRYPTO_SHA512 is not set
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig
index f9a3d3b394c..b6eee7c93cd 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26 3# Linux kernel version: 2.6.27-rc3
4# Wed Jul 16 13:59:24 2008 4# Wed Aug 20 08:16:53 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -92,7 +92,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
92CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
93# CONFIG_EMBEDDED is not set 93# CONFIG_EMBEDDED is not set
94CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 95CONFIG_KALLSYMS=y
97CONFIG_KALLSYMS_ALL=y 96CONFIG_KALLSYMS_ALL=y
98CONFIG_KALLSYMS_EXTRA_PASS=y 97CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -118,11 +117,16 @@ CONFIG_PROFILING=y
118CONFIG_OPROFILE=m 117CONFIG_OPROFILE=m
119CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
123CONFIG_HAVE_DMA_ATTRS=y 125CONFIG_HAVE_DMA_ATTRS=y
124CONFIG_USE_GENERIC_SMP_HELPERS=y 126CONFIG_USE_GENERIC_SMP_HELPERS=y
127# CONFIG_HAVE_CLK is not set
125CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -179,6 +183,7 @@ CONFIG_PS3_STORAGE=y
179CONFIG_PS3_DISK=y 183CONFIG_PS3_DISK=y
180CONFIG_PS3_ROM=y 184CONFIG_PS3_ROM=y
181CONFIG_PS3_FLASH=y 185CONFIG_PS3_FLASH=y
186CONFIG_OPROFILE_PS3=y
182CONFIG_PS3_LPM=m 187CONFIG_PS3_LPM=m
183CONFIG_PPC_CELL=y 188CONFIG_PPC_CELL=y
184# CONFIG_PPC_CELL_NATIVE is not set 189# CONFIG_PPC_CELL_NATIVE is not set
@@ -218,7 +223,7 @@ CONFIG_HZ_250=y
218# CONFIG_HZ_300 is not set 223# CONFIG_HZ_300 is not set
219# CONFIG_HZ_1000 is not set 224# CONFIG_HZ_1000 is not set
220CONFIG_HZ=250 225CONFIG_HZ=250
221# CONFIG_SCHED_HRTICK is not set 226CONFIG_SCHED_HRTICK=y
222CONFIG_PREEMPT_NONE=y 227CONFIG_PREEMPT_NONE=y
223# CONFIG_PREEMPT_VOLUNTARY is not set 228# CONFIG_PREEMPT_VOLUNTARY is not set
224# CONFIG_PREEMPT is not set 229# CONFIG_PREEMPT is not set
@@ -252,8 +257,10 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
252# CONFIG_SPARSEMEM_VMEMMAP is not set 257# CONFIG_SPARSEMEM_VMEMMAP is not set
253CONFIG_MEMORY_HOTPLUG=y 258CONFIG_MEMORY_HOTPLUG=y
254CONFIG_MEMORY_HOTPLUG_SPARSE=y 259CONFIG_MEMORY_HOTPLUG_SPARSE=y
260# CONFIG_MEMORY_HOTREMOVE is not set
255CONFIG_PAGEFLAGS_EXTENDED=y 261CONFIG_PAGEFLAGS_EXTENDED=y
256CONFIG_SPLIT_PTLOCK_CPUS=4 262CONFIG_SPLIT_PTLOCK_CPUS=4
263CONFIG_MIGRATION=y
257CONFIG_RESOURCES_64BIT=y 264CONFIG_RESOURCES_64BIT=y
258CONFIG_ZONE_DMA_FLAG=1 265CONFIG_ZONE_DMA_FLAG=1
259CONFIG_BOUNCE=y 266CONFIG_BOUNCE=y
@@ -276,19 +283,17 @@ CONFIG_ISA_DMA_API=y
276# 283#
277CONFIG_ZONE_DMA=y 284CONFIG_ZONE_DMA=y
278CONFIG_GENERIC_ISA_DMA=y 285CONFIG_GENERIC_ISA_DMA=y
286CONFIG_PPC_PCI_CHOICE=y
279# CONFIG_PCI is not set 287# CONFIG_PCI is not set
280# CONFIG_PCI_DOMAINS is not set 288# CONFIG_PCI_DOMAINS is not set
281# CONFIG_PCI_SYSCALL is not set 289# CONFIG_PCI_SYSCALL is not set
282# CONFIG_ARCH_SUPPORTS_MSI is not set 290# CONFIG_ARCH_SUPPORTS_MSI is not set
283# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
284# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
293# CONFIG_RELOCATABLE is not set
285CONFIG_PAGE_OFFSET=0xc000000000000000 294CONFIG_PAGE_OFFSET=0xc000000000000000
286CONFIG_KERNEL_START=0xc000000000000000 295CONFIG_KERNEL_START=0xc000000000000000
287CONFIG_PHYSICAL_START=0x00000000 296CONFIG_PHYSICAL_START=0x00000000
288
289#
290# Networking
291#
292CONFIG_NET=y 297CONFIG_NET=y
293 298
294# 299#
@@ -399,9 +404,22 @@ CONFIG_BT_HCIUSB_SCO=y
399# 404#
400# Wireless 405# Wireless
401# 406#
402# CONFIG_CFG80211 is not set 407CONFIG_CFG80211=m
408CONFIG_NL80211=y
403CONFIG_WIRELESS_EXT=y 409CONFIG_WIRELESS_EXT=y
404# CONFIG_MAC80211 is not set 410# CONFIG_WIRELESS_EXT_SYSFS is not set
411CONFIG_MAC80211=m
412
413#
414# Rate control algorithm selection
415#
416CONFIG_MAC80211_RC_PID=y
417CONFIG_MAC80211_RC_DEFAULT_PID=y
418CONFIG_MAC80211_RC_DEFAULT="pid"
419# CONFIG_MAC80211_MESH is not set
420# CONFIG_MAC80211_LEDS is not set
421# CONFIG_MAC80211_DEBUGFS is not set
422# CONFIG_MAC80211_DEBUG_MENU is not set
405CONFIG_IEEE80211=m 423CONFIG_IEEE80211=m
406# CONFIG_IEEE80211_DEBUG is not set 424# CONFIG_IEEE80211_DEBUG is not set
407CONFIG_IEEE80211_CRYPT_WEP=m 425CONFIG_IEEE80211_CRYPT_WEP=m
@@ -420,14 +438,79 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
420CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 438CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
421CONFIG_STANDALONE=y 439CONFIG_STANDALONE=y
422CONFIG_PREVENT_FIRMWARE_BUILD=y 440CONFIG_PREVENT_FIRMWARE_BUILD=y
423CONFIG_FW_LOADER=m 441CONFIG_FW_LOADER=y
424# CONFIG_FIRMWARE_IN_KERNEL is not set 442# CONFIG_FIRMWARE_IN_KERNEL is not set
425CONFIG_EXTRA_FIRMWARE="" 443CONFIG_EXTRA_FIRMWARE=""
426# CONFIG_DEBUG_DRIVER is not set 444# CONFIG_DEBUG_DRIVER is not set
427# CONFIG_DEBUG_DEVRES is not set 445# CONFIG_DEBUG_DEVRES is not set
428# CONFIG_SYS_HYPERVISOR is not set 446# CONFIG_SYS_HYPERVISOR is not set
429# CONFIG_CONNECTOR is not set 447# CONFIG_CONNECTOR is not set
430# CONFIG_MTD is not set 448CONFIG_MTD=y
449CONFIG_MTD_DEBUG=y
450CONFIG_MTD_DEBUG_VERBOSE=0
451# CONFIG_MTD_CONCAT is not set
452# CONFIG_MTD_PARTITIONS is not set
453
454#
455# User Modules And Translation Layers
456#
457# CONFIG_MTD_CHAR is not set
458CONFIG_MTD_BLKDEVS=y
459CONFIG_MTD_BLOCK=y
460# CONFIG_FTL is not set
461# CONFIG_NFTL is not set
462# CONFIG_INFTL is not set
463# CONFIG_RFD_FTL is not set
464# CONFIG_SSFDC is not set
465# CONFIG_MTD_OOPS is not set
466
467#
468# RAM/ROM/Flash chip drivers
469#
470# CONFIG_MTD_CFI is not set
471# CONFIG_MTD_JEDECPROBE is not set
472CONFIG_MTD_MAP_BANK_WIDTH_1=y
473CONFIG_MTD_MAP_BANK_WIDTH_2=y
474CONFIG_MTD_MAP_BANK_WIDTH_4=y
475# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
476# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
477# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
478CONFIG_MTD_CFI_I1=y
479CONFIG_MTD_CFI_I2=y
480# CONFIG_MTD_CFI_I4 is not set
481# CONFIG_MTD_CFI_I8 is not set
482# CONFIG_MTD_RAM is not set
483# CONFIG_MTD_ROM is not set
484# CONFIG_MTD_ABSENT is not set
485
486#
487# Mapping drivers for chip access
488#
489# CONFIG_MTD_COMPLEX_MAPPINGS is not set
490# CONFIG_MTD_PLATRAM is not set
491
492#
493# Self-contained MTD device drivers
494#
495# CONFIG_MTD_SLRAM is not set
496# CONFIG_MTD_PHRAM is not set
497CONFIG_MTD_PS3VRAM=y
498# CONFIG_MTD_MTDRAM is not set
499# CONFIG_MTD_BLOCK2MTD is not set
500
501#
502# Disk-On-Chip Device Drivers
503#
504# CONFIG_MTD_DOC2000 is not set
505# CONFIG_MTD_DOC2001 is not set
506# CONFIG_MTD_DOC2001PLUS is not set
507# CONFIG_MTD_NAND is not set
508# CONFIG_MTD_ONENAND is not set
509
510#
511# UBI - Unsorted block images
512#
513# CONFIG_MTD_UBI is not set
431CONFIG_OF_DEVICE=y 514CONFIG_OF_DEVICE=y
432# CONFIG_PARPORT is not set 515# CONFIG_PARPORT is not set
433CONFIG_BLK_DEV=y 516CONFIG_BLK_DEV=y
@@ -443,6 +526,7 @@ CONFIG_BLK_DEV_RAM_SIZE=65535
443# CONFIG_BLK_DEV_XIP is not set 526# CONFIG_BLK_DEV_XIP is not set
444# CONFIG_CDROM_PKTCDVD is not set 527# CONFIG_CDROM_PKTCDVD is not set
445# CONFIG_ATA_OVER_ETH is not set 528# CONFIG_ATA_OVER_ETH is not set
529# CONFIG_BLK_DEV_HD is not set
446CONFIG_MISC_DEVICES=y 530CONFIG_MISC_DEVICES=y
447# CONFIG_EEPROM_93CX6 is not set 531# CONFIG_EEPROM_93CX6 is not set
448# CONFIG_ENCLOSURE_SERVICES is not set 532# CONFIG_ENCLOSURE_SERVICES is not set
@@ -494,7 +578,6 @@ CONFIG_SCSI_WAIT_SCAN=m
494# CONFIG_MD is not set 578# CONFIG_MD is not set
495# CONFIG_MACINTOSH_DRIVERS is not set 579# CONFIG_MACINTOSH_DRIVERS is not set
496CONFIG_NETDEVICES=y 580CONFIG_NETDEVICES=y
497# CONFIG_NETDEVICES_MULTIQUEUE is not set
498# CONFIG_DUMMY is not set 581# CONFIG_DUMMY is not set
499# CONFIG_BONDING is not set 582# CONFIG_BONDING is not set
500# CONFIG_MACVLAN is not set 583# CONFIG_MACVLAN is not set
@@ -510,9 +593,9 @@ CONFIG_MII=m
510# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 593# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
511# CONFIG_B44 is not set 594# CONFIG_B44 is not set
512CONFIG_NETDEV_1000=y 595CONFIG_NETDEV_1000=y
513# CONFIG_E1000E_ENABLED is not set
514CONFIG_GELIC_NET=y 596CONFIG_GELIC_NET=y
515CONFIG_GELIC_WIRELESS=y 597CONFIG_GELIC_WIRELESS=y
598CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE=y
516# CONFIG_NETDEV_10000 is not set 599# CONFIG_NETDEV_10000 is not set
517 600
518# 601#
@@ -523,8 +606,22 @@ CONFIG_WLAN_80211=y
523# CONFIG_LIBERTAS is not set 606# CONFIG_LIBERTAS is not set
524# CONFIG_USB_ZD1201 is not set 607# CONFIG_USB_ZD1201 is not set
525# CONFIG_USB_NET_RNDIS_WLAN is not set 608# CONFIG_USB_NET_RNDIS_WLAN is not set
609# CONFIG_RTL8187 is not set
610# CONFIG_MAC80211_HWSIM is not set
611# CONFIG_P54_COMMON is not set
526# CONFIG_IWLWIFI_LEDS is not set 612# CONFIG_IWLWIFI_LEDS is not set
527# CONFIG_HOSTAP is not set 613# CONFIG_HOSTAP is not set
614# CONFIG_B43 is not set
615# CONFIG_B43LEGACY is not set
616CONFIG_ZD1211RW=m
617# CONFIG_ZD1211RW_DEBUG is not set
618CONFIG_RT2X00=m
619CONFIG_RT2X00_LIB=m
620CONFIG_RT2X00_LIB_USB=m
621CONFIG_RT2X00_LIB_FIRMWARE=y
622# CONFIG_RT2500USB is not set
623CONFIG_RT73USB=m
624# CONFIG_RT2X00_DEBUG is not set
528 625
529# 626#
530# USB Network Adapters 627# USB Network Adapters
@@ -622,6 +719,7 @@ CONFIG_INPUT_JOYSTICK=y
622# Character devices 719# Character devices
623# 720#
624CONFIG_VT=y 721CONFIG_VT=y
722CONFIG_CONSOLE_TRANSLATIONS=y
625CONFIG_VT_CONSOLE=y 723CONFIG_VT_CONSOLE=y
626CONFIG_HW_CONSOLE=y 724CONFIG_HW_CONSOLE=y
627CONFIG_VT_HW_CONSOLE_BINDING=y 725CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -647,6 +745,8 @@ CONFIG_LEGACY_PTY_COUNT=16
647# CONFIG_TCG_TPM is not set 745# CONFIG_TCG_TPM is not set
648# CONFIG_I2C is not set 746# CONFIG_I2C is not set
649# CONFIG_SPI is not set 747# CONFIG_SPI is not set
748CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
749# CONFIG_GPIOLIB is not set
650# CONFIG_W1 is not set 750# CONFIG_W1 is not set
651# CONFIG_POWER_SUPPLY is not set 751# CONFIG_POWER_SUPPLY is not set
652# CONFIG_HWMON is not set 752# CONFIG_HWMON is not set
@@ -663,8 +763,10 @@ CONFIG_SSB_POSSIBLE=y
663# 763#
664# Multifunction device drivers 764# Multifunction device drivers
665# 765#
766# CONFIG_MFD_CORE is not set
666# CONFIG_MFD_SM501 is not set 767# CONFIG_MFD_SM501 is not set
667# CONFIG_HTC_PASIC3 is not set 768# CONFIG_HTC_PASIC3 is not set
769# CONFIG_MFD_TMIO is not set
668 770
669# 771#
670# Multimedia devices 772# Multimedia devices
@@ -796,6 +898,7 @@ CONFIG_USB_DEVICEFS=y
796# CONFIG_USB_DYNAMIC_MINORS is not set 898# CONFIG_USB_DYNAMIC_MINORS is not set
797CONFIG_USB_SUSPEND=y 899CONFIG_USB_SUSPEND=y
798# CONFIG_USB_OTG is not set 900# CONFIG_USB_OTG is not set
901CONFIG_USB_MON=y
799 902
800# 903#
801# USB Host Controller Drivers 904# USB Host Controller Drivers
@@ -817,6 +920,10 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
817# CONFIG_USB_R8A66597_HCD is not set 920# CONFIG_USB_R8A66597_HCD is not set
818 921
819# 922#
923# Enable Host or Gadget support to see Inventra options
924#
925
926#
820# USB Device Class drivers 927# USB Device Class drivers
821# 928#
822# CONFIG_USB_ACM is not set 929# CONFIG_USB_ACM is not set
@@ -843,6 +950,7 @@ CONFIG_USB_STORAGE=m
843# CONFIG_USB_STORAGE_ALAUDA is not set 950# CONFIG_USB_STORAGE_ALAUDA is not set
844# CONFIG_USB_STORAGE_ONETOUCH is not set 951# CONFIG_USB_STORAGE_ONETOUCH is not set
845# CONFIG_USB_STORAGE_KARMA is not set 952# CONFIG_USB_STORAGE_KARMA is not set
953# CONFIG_USB_STORAGE_SIERRA is not set
846# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 954# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
847# CONFIG_USB_LIBUSUAL is not set 955# CONFIG_USB_LIBUSUAL is not set
848 956
@@ -851,7 +959,6 @@ CONFIG_USB_STORAGE=m
851# 959#
852# CONFIG_USB_MDC800 is not set 960# CONFIG_USB_MDC800 is not set
853# CONFIG_USB_MICROTEK is not set 961# CONFIG_USB_MICROTEK is not set
854CONFIG_USB_MON=y
855 962
856# 963#
857# USB port drivers 964# USB port drivers
@@ -864,7 +971,6 @@ CONFIG_USB_MON=y
864# CONFIG_USB_EMI62 is not set 971# CONFIG_USB_EMI62 is not set
865# CONFIG_USB_EMI26 is not set 972# CONFIG_USB_EMI26 is not set
866# CONFIG_USB_ADUTUX is not set 973# CONFIG_USB_ADUTUX is not set
867# CONFIG_USB_AUERSWALD is not set
868# CONFIG_USB_RIO500 is not set 974# CONFIG_USB_RIO500 is not set
869# CONFIG_USB_LEGOTOWER is not set 975# CONFIG_USB_LEGOTOWER is not set
870# CONFIG_USB_LCD is not set 976# CONFIG_USB_LCD is not set
@@ -998,9 +1104,11 @@ CONFIG_HUGETLB_PAGE=y
998# CONFIG_BEFS_FS is not set 1104# CONFIG_BEFS_FS is not set
999# CONFIG_BFS_FS is not set 1105# CONFIG_BFS_FS is not set
1000# CONFIG_EFS_FS is not set 1106# CONFIG_EFS_FS is not set
1107# CONFIG_JFFS2_FS is not set
1001# CONFIG_CRAMFS is not set 1108# CONFIG_CRAMFS is not set
1002# CONFIG_VXFS_FS is not set 1109# CONFIG_VXFS_FS is not set
1003# CONFIG_MINIX_FS is not set 1110# CONFIG_MINIX_FS is not set
1111# CONFIG_OMFS_FS is not set
1004# CONFIG_HPFS_FS is not set 1112# CONFIG_HPFS_FS is not set
1005# CONFIG_QNX4FS_FS is not set 1113# CONFIG_QNX4FS_FS is not set
1006# CONFIG_ROMFS_FS is not set 1114# CONFIG_ROMFS_FS is not set
@@ -1011,14 +1119,13 @@ CONFIG_NFS_FS=y
1011CONFIG_NFS_V3=y 1119CONFIG_NFS_V3=y
1012# CONFIG_NFS_V3_ACL is not set 1120# CONFIG_NFS_V3_ACL is not set
1013CONFIG_NFS_V4=y 1121CONFIG_NFS_V4=y
1014# CONFIG_NFSD is not set
1015CONFIG_ROOT_NFS=y 1122CONFIG_ROOT_NFS=y
1123# CONFIG_NFSD is not set
1016CONFIG_LOCKD=y 1124CONFIG_LOCKD=y
1017CONFIG_LOCKD_V4=y 1125CONFIG_LOCKD_V4=y
1018CONFIG_NFS_COMMON=y 1126CONFIG_NFS_COMMON=y
1019CONFIG_SUNRPC=y 1127CONFIG_SUNRPC=y
1020CONFIG_SUNRPC_GSS=y 1128CONFIG_SUNRPC_GSS=y
1021# CONFIG_SUNRPC_BIND34 is not set
1022CONFIG_RPCSEC_GSS_KRB5=y 1129CONFIG_RPCSEC_GSS_KRB5=y
1023# CONFIG_RPCSEC_GSS_SPKM3 is not set 1130# CONFIG_RPCSEC_GSS_SPKM3 is not set
1024# CONFIG_SMB_FS is not set 1131# CONFIG_SMB_FS is not set
@@ -1086,7 +1193,7 @@ CONFIG_BITREVERSE=y
1086# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1193# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1087CONFIG_CRC_CCITT=m 1194CONFIG_CRC_CCITT=m
1088# CONFIG_CRC16 is not set 1195# CONFIG_CRC16 is not set
1089# CONFIG_CRC_T10DIF is not set 1196CONFIG_CRC_T10DIF=y
1090CONFIG_CRC_ITU_T=m 1197CONFIG_CRC_ITU_T=m
1091CONFIG_CRC32=y 1198CONFIG_CRC32=y
1092# CONFIG_CRC7 is not set 1199# CONFIG_CRC7 is not set
@@ -1115,6 +1222,8 @@ CONFIG_DEBUG_FS=y
1115CONFIG_DEBUG_KERNEL=y 1222CONFIG_DEBUG_KERNEL=y
1116# CONFIG_DEBUG_SHIRQ is not set 1223# CONFIG_DEBUG_SHIRQ is not set
1117CONFIG_DETECT_SOFTLOCKUP=y 1224CONFIG_DETECT_SOFTLOCKUP=y
1225# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1226CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1118CONFIG_SCHED_DEBUG=y 1227CONFIG_SCHED_DEBUG=y
1119# CONFIG_SCHEDSTATS is not set 1228# CONFIG_SCHEDSTATS is not set
1120# CONFIG_TIMER_STATS is not set 1229# CONFIG_TIMER_STATS is not set
@@ -1138,6 +1247,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1138CONFIG_DEBUG_INFO=y 1247CONFIG_DEBUG_INFO=y
1139# CONFIG_DEBUG_VM is not set 1248# CONFIG_DEBUG_VM is not set
1140CONFIG_DEBUG_WRITECOUNT=y 1249CONFIG_DEBUG_WRITECOUNT=y
1250CONFIG_DEBUG_MEMORY_INIT=y
1141CONFIG_DEBUG_LIST=y 1251CONFIG_DEBUG_LIST=y
1142# CONFIG_DEBUG_SG is not set 1252# CONFIG_DEBUG_SG is not set
1143CONFIG_FRAME_POINTER=y 1253CONFIG_FRAME_POINTER=y
@@ -1146,6 +1256,7 @@ CONFIG_FRAME_POINTER=y
1146# CONFIG_BACKTRACE_SELF_TEST is not set 1256# CONFIG_BACKTRACE_SELF_TEST is not set
1147# CONFIG_FAULT_INJECTION is not set 1257# CONFIG_FAULT_INJECTION is not set
1148# CONFIG_LATENCYTOP is not set 1258# CONFIG_LATENCYTOP is not set
1259CONFIG_SYSCTL_SYSCALL_CHECK=y
1149CONFIG_HAVE_FTRACE=y 1260CONFIG_HAVE_FTRACE=y
1150CONFIG_HAVE_DYNAMIC_FTRACE=y 1261CONFIG_HAVE_DYNAMIC_FTRACE=y
1151# CONFIG_FTRACE is not set 1262# CONFIG_FTRACE is not set
@@ -1153,12 +1264,14 @@ CONFIG_HAVE_DYNAMIC_FTRACE=y
1153# CONFIG_SCHED_TRACER is not set 1264# CONFIG_SCHED_TRACER is not set
1154# CONFIG_CONTEXT_SWITCH_TRACER is not set 1265# CONFIG_CONTEXT_SWITCH_TRACER is not set
1155# CONFIG_SAMPLES is not set 1266# CONFIG_SAMPLES is not set
1267CONFIG_HAVE_ARCH_KGDB=y
1268# CONFIG_KGDB is not set
1156CONFIG_DEBUG_STACKOVERFLOW=y 1269CONFIG_DEBUG_STACKOVERFLOW=y
1157# CONFIG_DEBUG_STACK_USAGE is not set 1270# CONFIG_DEBUG_STACK_USAGE is not set
1158# CONFIG_DEBUG_PAGEALLOC is not set 1271# CONFIG_DEBUG_PAGEALLOC is not set
1159# CONFIG_DEBUGGER is not set
1160# CONFIG_CODE_PATCHING_SELFTEST is not set 1272# CONFIG_CODE_PATCHING_SELFTEST is not set
1161# CONFIG_FTR_FIXUP_SELFTEST is not set 1273# CONFIG_FTR_FIXUP_SELFTEST is not set
1274# CONFIG_XMON is not set
1162CONFIG_IRQSTACKS=y 1275CONFIG_IRQSTACKS=y
1163# CONFIG_VIRQ_DEBUG is not set 1276# CONFIG_VIRQ_DEBUG is not set
1164# CONFIG_BOOTX_TEXT is not set 1277# CONFIG_BOOTX_TEXT is not set
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index fe6ffa683d7..e77c5e7a0be 100644
--- a/arch/powerpc/configs/pseries_defconfig
+++ b/arch/powerpc/configs/pseries_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc3 3# Linux kernel version: 2.6.27-rc4
4# Tue May 20 20:03:28 2008 4# Tue Aug 26 13:31:07 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -14,6 +14,7 @@ CONFIG_POWER4=y
14# CONFIG_TUNE_CELL is not set 14# CONFIG_TUNE_CELL is not set
15CONFIG_PPC_FPU=y 15CONFIG_PPC_FPU=y
16CONFIG_ALTIVEC=y 16CONFIG_ALTIVEC=y
17CONFIG_VSX=y
17CONFIG_PPC_STD_MMU=y 18CONFIG_PPC_STD_MMU=y
18CONFIG_PPC_MM_SLICES=y 19CONFIG_PPC_MM_SLICES=y
19CONFIG_VIRT_CPU_ACCOUNTING=y 20CONFIG_VIRT_CPU_ACCOUNTING=y
@@ -31,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y 32CONFIG_HAVE_SETUP_PER_CPU_AREA=y
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_TRACE_IRQFLAGS_SUPPORT=y 36CONFIG_TRACE_IRQFLAGS_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -104,7 +106,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
104CONFIG_SYSCTL=y 106CONFIG_SYSCTL=y
105# CONFIG_EMBEDDED is not set 107# CONFIG_EMBEDDED is not set
106CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
107CONFIG_SYSCTL_SYSCALL_CHECK=y
108CONFIG_KALLSYMS=y 109CONFIG_KALLSYMS=y
109CONFIG_KALLSYMS_ALL=y 110CONFIG_KALLSYMS_ALL=y
110# CONFIG_KALLSYMS_EXTRA_PASS is not set 111# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -132,11 +133,17 @@ CONFIG_MARKERS=y
132CONFIG_OPROFILE=y 133CONFIG_OPROFILE=y
133CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
134CONFIG_KPROBES=y 135CONFIG_KPROBES=y
136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
135CONFIG_KRETPROBES=y 137CONFIG_KRETPROBES=y
138CONFIG_HAVE_IOREMAP_PROT=y
136CONFIG_HAVE_KPROBES=y 139CONFIG_HAVE_KPROBES=y
137CONFIG_HAVE_KRETPROBES=y 140CONFIG_HAVE_KRETPROBES=y
138# CONFIG_HAVE_DMA_ATTRS is not set 141CONFIG_HAVE_ARCH_TRACEHOOK=y
142CONFIG_HAVE_DMA_ATTRS=y
143CONFIG_USE_GENERIC_SMP_HELPERS=y
144# CONFIG_HAVE_CLK is not set
139CONFIG_PROC_PAGE_MONITOR=y 145CONFIG_PROC_PAGE_MONITOR=y
146# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
140CONFIG_SLABINFO=y 147CONFIG_SLABINFO=y
141CONFIG_RT_MUTEXES=y 148CONFIG_RT_MUTEXES=y
142# CONFIG_TINY_SHMEM is not set 149# CONFIG_TINY_SHMEM is not set
@@ -152,6 +159,7 @@ CONFIG_STOP_MACHINE=y
152CONFIG_BLOCK=y 159CONFIG_BLOCK=y
153# CONFIG_BLK_DEV_IO_TRACE is not set 160# CONFIG_BLK_DEV_IO_TRACE is not set
154CONFIG_BLK_DEV_BSG=y 161CONFIG_BLK_DEV_BSG=y
162# CONFIG_BLK_DEV_INTEGRITY is not set
155CONFIG_BLOCK_COMPAT=y 163CONFIG_BLOCK_COMPAT=y
156 164
157# 165#
@@ -172,17 +180,14 @@ CONFIG_CLASSIC_RCU=y
172# Platform support 180# Platform support
173# 181#
174CONFIG_PPC_MULTIPLATFORM=y 182CONFIG_PPC_MULTIPLATFORM=y
175# CONFIG_PPC_82xx is not set
176# CONFIG_PPC_83xx is not set
177# CONFIG_PPC_86xx is not set
178CONFIG_PPC_PSERIES=y 183CONFIG_PPC_PSERIES=y
179CONFIG_PPC_SPLPAR=y 184CONFIG_PPC_SPLPAR=y
180CONFIG_EEH=y 185CONFIG_EEH=y
181CONFIG_SCANLOG=m 186CONFIG_SCANLOG=m
182CONFIG_LPARCFG=y 187CONFIG_LPARCFG=y
188CONFIG_PPC_SMLPAR=y
189CONFIG_CMM=y
183# CONFIG_PPC_ISERIES is not set 190# CONFIG_PPC_ISERIES is not set
184# CONFIG_PPC_MPC512x is not set
185# CONFIG_PPC_MPC5121 is not set
186# CONFIG_PPC_PMAC is not set 191# CONFIG_PPC_PMAC is not set
187# CONFIG_PPC_MAPLE is not set 192# CONFIG_PPC_MAPLE is not set
188# CONFIG_PPC_PASEMI is not set 193# CONFIG_PPC_PASEMI is not set
@@ -226,7 +231,7 @@ CONFIG_HZ_250=y
226# CONFIG_HZ_300 is not set 231# CONFIG_HZ_300 is not set
227# CONFIG_HZ_1000 is not set 232# CONFIG_HZ_1000 is not set
228CONFIG_HZ=250 233CONFIG_HZ=250
229# CONFIG_SCHED_HRTICK is not set 234CONFIG_SCHED_HRTICK=y
230CONFIG_PREEMPT_NONE=y 235CONFIG_PREEMPT_NONE=y
231# CONFIG_PREEMPT_VOLUNTARY is not set 236# CONFIG_PREEMPT_VOLUNTARY is not set
232# CONFIG_PREEMPT is not set 237# CONFIG_PREEMPT is not set
@@ -275,6 +280,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
275CONFIG_SCHED_SMT=y 280CONFIG_SCHED_SMT=y
276CONFIG_PROC_DEVICETREE=y 281CONFIG_PROC_DEVICETREE=y
277# CONFIG_CMDLINE_BOOL is not set 282# CONFIG_CMDLINE_BOOL is not set
283CONFIG_EXTRA_TARGETS=""
278# CONFIG_PM is not set 284# CONFIG_PM is not set
279CONFIG_SECCOMP=y 285CONFIG_SECCOMP=y
280CONFIG_ISA_DMA_API=y 286CONFIG_ISA_DMA_API=y
@@ -304,10 +310,6 @@ CONFIG_HOTPLUG_PCI_RPA_DLPAR=m
304CONFIG_PAGE_OFFSET=0xc000000000000000 310CONFIG_PAGE_OFFSET=0xc000000000000000
305CONFIG_KERNEL_START=0xc000000000000000 311CONFIG_KERNEL_START=0xc000000000000000
306CONFIG_PHYSICAL_START=0x00000000 312CONFIG_PHYSICAL_START=0x00000000
307
308#
309# Networking
310#
311CONFIG_NET=y 313CONFIG_NET=y
312 314
313# 315#
@@ -321,6 +323,7 @@ CONFIG_XFRM_USER=m
321# CONFIG_XFRM_SUB_POLICY is not set 323# CONFIG_XFRM_SUB_POLICY is not set
322# CONFIG_XFRM_MIGRATE is not set 324# CONFIG_XFRM_MIGRATE is not set
323# CONFIG_XFRM_STATISTICS is not set 325# CONFIG_XFRM_STATISTICS is not set
326CONFIG_XFRM_IPCOMP=m
324CONFIG_NET_KEY=m 327CONFIG_NET_KEY=m
325# CONFIG_NET_KEY_MIGRATE is not set 328# CONFIG_NET_KEY_MIGRATE is not set
326CONFIG_INET=y 329CONFIG_INET=y
@@ -498,6 +501,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
498CONFIG_STANDALONE=y 501CONFIG_STANDALONE=y
499CONFIG_PREVENT_FIRMWARE_BUILD=y 502CONFIG_PREVENT_FIRMWARE_BUILD=y
500CONFIG_FW_LOADER=y 503CONFIG_FW_LOADER=y
504CONFIG_FIRMWARE_IN_KERNEL=y
505CONFIG_EXTRA_FIRMWARE=""
501# CONFIG_DEBUG_DRIVER is not set 506# CONFIG_DEBUG_DRIVER is not set
502# CONFIG_DEBUG_DEVRES is not set 507# CONFIG_DEBUG_DEVRES is not set
503# CONFIG_SYS_HYPERVISOR is not set 508# CONFIG_SYS_HYPERVISOR is not set
@@ -531,12 +536,14 @@ CONFIG_BLK_DEV_RAM_SIZE=65536
531# CONFIG_BLK_DEV_XIP is not set 536# CONFIG_BLK_DEV_XIP is not set
532# CONFIG_CDROM_PKTCDVD is not set 537# CONFIG_CDROM_PKTCDVD is not set
533# CONFIG_ATA_OVER_ETH is not set 538# CONFIG_ATA_OVER_ETH is not set
539# CONFIG_BLK_DEV_HD is not set
534CONFIG_MISC_DEVICES=y 540CONFIG_MISC_DEVICES=y
535# CONFIG_PHANTOM is not set 541# CONFIG_PHANTOM is not set
536# CONFIG_EEPROM_93CX6 is not set 542# CONFIG_EEPROM_93CX6 is not set
537# CONFIG_SGI_IOC4 is not set 543# CONFIG_SGI_IOC4 is not set
538# CONFIG_TIFM_CORE is not set 544# CONFIG_TIFM_CORE is not set
539# CONFIG_ENCLOSURE_SERVICES is not set 545# CONFIG_ENCLOSURE_SERVICES is not set
546# CONFIG_HP_ILO is not set
540CONFIG_HAVE_IDE=y 547CONFIG_HAVE_IDE=y
541CONFIG_IDE=y 548CONFIG_IDE=y
542CONFIG_BLK_DEV_IDE=y 549CONFIG_BLK_DEV_IDE=y
@@ -544,6 +551,7 @@ CONFIG_BLK_DEV_IDE=y
544# 551#
545# Please see Documentation/ide/ide.txt for help/info on IDE drives 552# Please see Documentation/ide/ide.txt for help/info on IDE drives
546# 553#
554CONFIG_IDE_TIMINGS=y
547# CONFIG_BLK_DEV_IDE_SATA is not set 555# CONFIG_BLK_DEV_IDE_SATA is not set
548CONFIG_BLK_DEV_IDEDISK=y 556CONFIG_BLK_DEV_IDEDISK=y
549# CONFIG_IDEDISK_MULTI_MODE is not set 557# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -575,10 +583,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
575CONFIG_BLK_DEV_AMD74XX=y 583CONFIG_BLK_DEV_AMD74XX=y
576# CONFIG_BLK_DEV_CMD64X is not set 584# CONFIG_BLK_DEV_CMD64X is not set
577# CONFIG_BLK_DEV_TRIFLEX is not set 585# CONFIG_BLK_DEV_TRIFLEX is not set
578# CONFIG_BLK_DEV_CY82C693 is not set
579# CONFIG_BLK_DEV_CS5520 is not set 586# CONFIG_BLK_DEV_CS5520 is not set
580# CONFIG_BLK_DEV_CS5530 is not set 587# CONFIG_BLK_DEV_CS5530 is not set
581# CONFIG_BLK_DEV_HPT34X is not set
582# CONFIG_BLK_DEV_HPT366 is not set 588# CONFIG_BLK_DEV_HPT366 is not set
583# CONFIG_BLK_DEV_JMICRON is not set 589# CONFIG_BLK_DEV_JMICRON is not set
584# CONFIG_BLK_DEV_SC1200 is not set 590# CONFIG_BLK_DEV_SC1200 is not set
@@ -596,8 +602,6 @@ CONFIG_BLK_DEV_AMD74XX=y
596# CONFIG_BLK_DEV_VIA82CXXX is not set 602# CONFIG_BLK_DEV_VIA82CXXX is not set
597# CONFIG_BLK_DEV_TC86C001 is not set 603# CONFIG_BLK_DEV_TC86C001 is not set
598CONFIG_BLK_DEV_IDEDMA=y 604CONFIG_BLK_DEV_IDEDMA=y
599# CONFIG_BLK_DEV_HD_ONLY is not set
600# CONFIG_BLK_DEV_HD is not set
601 605
602# 606#
603# SCSI device support 607# SCSI device support
@@ -659,6 +663,8 @@ CONFIG_SCSI_LOWLEVEL=y
659# CONFIG_SCSI_GDTH is not set 663# CONFIG_SCSI_GDTH is not set
660# CONFIG_SCSI_IPS is not set 664# CONFIG_SCSI_IPS is not set
661CONFIG_SCSI_IBMVSCSI=y 665CONFIG_SCSI_IBMVSCSI=y
666CONFIG_SCSI_IBMVFC=m
667CONFIG_SCSI_IBMVFC_TRACE=y
662# CONFIG_SCSI_INITIO is not set 668# CONFIG_SCSI_INITIO is not set
663# CONFIG_SCSI_INIA100 is not set 669# CONFIG_SCSI_INIA100 is not set
664# CONFIG_SCSI_PPA is not set 670# CONFIG_SCSI_PPA is not set
@@ -681,6 +687,7 @@ CONFIG_SCSI_LPFC=m
681# CONFIG_SCSI_DC390T is not set 687# CONFIG_SCSI_DC390T is not set
682# CONFIG_SCSI_DEBUG is not set 688# CONFIG_SCSI_DEBUG is not set
683# CONFIG_SCSI_SRP is not set 689# CONFIG_SCSI_SRP is not set
690# CONFIG_SCSI_DH is not set
684CONFIG_ATA=y 691CONFIG_ATA=y
685# CONFIG_ATA_NONSTANDARD is not set 692# CONFIG_ATA_NONSTANDARD is not set
686CONFIG_SATA_PMP=y 693CONFIG_SATA_PMP=y
@@ -703,9 +710,6 @@ CONFIG_DM_SNAPSHOT=m
703CONFIG_DM_MIRROR=m 710CONFIG_DM_MIRROR=m
704CONFIG_DM_ZERO=m 711CONFIG_DM_ZERO=m
705CONFIG_DM_MULTIPATH=m 712CONFIG_DM_MULTIPATH=m
706CONFIG_DM_MULTIPATH_EMC=m
707# CONFIG_DM_MULTIPATH_RDAC is not set
708# CONFIG_DM_MULTIPATH_HP is not set
709# CONFIG_DM_DELAY is not set 713# CONFIG_DM_DELAY is not set
710# CONFIG_DM_UEVENT is not set 714# CONFIG_DM_UEVENT is not set
711# CONFIG_FUSION is not set 715# CONFIG_FUSION is not set
@@ -713,12 +717,15 @@ CONFIG_DM_MULTIPATH_EMC=m
713# 717#
714# IEEE 1394 (FireWire) support 718# IEEE 1394 (FireWire) support
715# 719#
720
721#
722# Enable only one of the two stacks, unless you know what you are doing
723#
716# CONFIG_FIREWIRE is not set 724# CONFIG_FIREWIRE is not set
717# CONFIG_IEEE1394 is not set 725# CONFIG_IEEE1394 is not set
718# CONFIG_I2O is not set 726# CONFIG_I2O is not set
719# CONFIG_MACINTOSH_DRIVERS is not set 727# CONFIG_MACINTOSH_DRIVERS is not set
720CONFIG_NETDEVICES=y 728CONFIG_NETDEVICES=y
721# CONFIG_NETDEVICES_MULTIQUEUE is not set
722CONFIG_DUMMY=m 729CONFIG_DUMMY=m
723CONFIG_BONDING=m 730CONFIG_BONDING=m
724# CONFIG_MACVLAN is not set 731# CONFIG_MACVLAN is not set
@@ -726,7 +733,23 @@ CONFIG_BONDING=m
726CONFIG_TUN=m 733CONFIG_TUN=m
727# CONFIG_VETH is not set 734# CONFIG_VETH is not set
728# CONFIG_ARCNET is not set 735# CONFIG_ARCNET is not set
729# CONFIG_PHYLIB is not set 736CONFIG_PHYLIB=y
737
738#
739# MII PHY device drivers
740#
741# CONFIG_MARVELL_PHY is not set
742# CONFIG_DAVICOM_PHY is not set
743# CONFIG_QSEMI_PHY is not set
744# CONFIG_LXT_PHY is not set
745# CONFIG_CICADA_PHY is not set
746# CONFIG_VITESSE_PHY is not set
747# CONFIG_SMSC_PHY is not set
748# CONFIG_BROADCOM_PHY is not set
749# CONFIG_ICPLUS_PHY is not set
750# CONFIG_REALTEK_PHY is not set
751# CONFIG_FIXED_PHY is not set
752# CONFIG_MDIO_BITBANG is not set
730CONFIG_NET_ETHERNET=y 753CONFIG_NET_ETHERNET=y
731CONFIG_MII=y 754CONFIG_MII=y
732# CONFIG_HAPPYMEAL is not set 755# CONFIG_HAPPYMEAL is not set
@@ -759,6 +782,7 @@ CONFIG_E100=y
759# CONFIG_SIS900 is not set 782# CONFIG_SIS900 is not set
760# CONFIG_EPIC100 is not set 783# CONFIG_EPIC100 is not set
761# CONFIG_SUNDANCE is not set 784# CONFIG_SUNDANCE is not set
785# CONFIG_TLAN is not set
762# CONFIG_VIA_RHINE is not set 786# CONFIG_VIA_RHINE is not set
763# CONFIG_SC92031 is not set 787# CONFIG_SC92031 is not set
764# CONFIG_NET_POCKET is not set 788# CONFIG_NET_POCKET is not set
@@ -767,10 +791,8 @@ CONFIG_ACENIC=y
767CONFIG_ACENIC_OMIT_TIGON_I=y 791CONFIG_ACENIC_OMIT_TIGON_I=y
768# CONFIG_DL2K is not set 792# CONFIG_DL2K is not set
769CONFIG_E1000=y 793CONFIG_E1000=y
770# CONFIG_E1000_NAPI is not set
771# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 794# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
772# CONFIG_E1000E is not set 795# CONFIG_E1000E is not set
773# CONFIG_E1000E_ENABLED is not set
774# CONFIG_IP1000 is not set 796# CONFIG_IP1000 is not set
775# CONFIG_IGB is not set 797# CONFIG_IGB is not set
776# CONFIG_NS83820 is not set 798# CONFIG_NS83820 is not set
@@ -785,14 +807,14 @@ CONFIG_TIGON3=y
785# CONFIG_BNX2 is not set 807# CONFIG_BNX2 is not set
786# CONFIG_QLA3XXX is not set 808# CONFIG_QLA3XXX is not set
787# CONFIG_ATL1 is not set 809# CONFIG_ATL1 is not set
810# CONFIG_ATL1E is not set
788CONFIG_NETDEV_10000=y 811CONFIG_NETDEV_10000=y
789# CONFIG_CHELSIO_T1 is not set 812# CONFIG_CHELSIO_T1 is not set
790# CONFIG_CHELSIO_T3 is not set 813# CONFIG_CHELSIO_T3 is not set
814CONFIG_EHEA=y
791# CONFIG_IXGBE is not set 815# CONFIG_IXGBE is not set
792CONFIG_IXGB=m 816CONFIG_IXGB=m
793# CONFIG_IXGB_NAPI is not set
794CONFIG_S2IO=m 817CONFIG_S2IO=m
795# CONFIG_S2IO_NAPI is not set
796# CONFIG_MYRI10GE is not set 818# CONFIG_MYRI10GE is not set
797# CONFIG_NETXEN_NIC is not set 819# CONFIG_NETXEN_NIC is not set
798# CONFIG_NIU is not set 820# CONFIG_NIU is not set
@@ -883,6 +905,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
883# CONFIG_MOUSE_PS2_TOUCHKIT is not set 905# CONFIG_MOUSE_PS2_TOUCHKIT is not set
884# CONFIG_MOUSE_SERIAL is not set 906# CONFIG_MOUSE_SERIAL is not set
885# CONFIG_MOUSE_APPLETOUCH is not set 907# CONFIG_MOUSE_APPLETOUCH is not set
908# CONFIG_MOUSE_BCM5974 is not set
886# CONFIG_MOUSE_VSXXXAA is not set 909# CONFIG_MOUSE_VSXXXAA is not set
887# CONFIG_INPUT_JOYSTICK is not set 910# CONFIG_INPUT_JOYSTICK is not set
888# CONFIG_INPUT_TABLET is not set 911# CONFIG_INPUT_TABLET is not set
@@ -906,12 +929,14 @@ CONFIG_SERIO_I8042=y
906# CONFIG_SERIO_PCIPS2 is not set 929# CONFIG_SERIO_PCIPS2 is not set
907CONFIG_SERIO_LIBPS2=y 930CONFIG_SERIO_LIBPS2=y
908# CONFIG_SERIO_RAW is not set 931# CONFIG_SERIO_RAW is not set
932# CONFIG_SERIO_XILINX_XPS_PS2 is not set
909# CONFIG_GAMEPORT is not set 933# CONFIG_GAMEPORT is not set
910 934
911# 935#
912# Character devices 936# Character devices
913# 937#
914CONFIG_VT=y 938CONFIG_VT=y
939CONFIG_CONSOLE_TRANSLATIONS=y
915CONFIG_VT_CONSOLE=y 940CONFIG_VT_CONSOLE=y
916CONFIG_HW_CONSOLE=y 941CONFIG_HW_CONSOLE=y
917# CONFIG_VT_HW_CONSOLE_BINDING is not set 942# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -943,6 +968,7 @@ CONFIG_LEGACY_PTY_COUNT=256
943# CONFIG_PRINTER is not set 968# CONFIG_PRINTER is not set
944# CONFIG_PPDEV is not set 969# CONFIG_PPDEV is not set
945CONFIG_HVC_DRIVER=y 970CONFIG_HVC_DRIVER=y
971CONFIG_HVC_IRQ=y
946CONFIG_HVC_CONSOLE=y 972CONFIG_HVC_CONSOLE=y
947CONFIG_HVC_RTAS=y 973CONFIG_HVC_RTAS=y
948CONFIG_HVCS=m 974CONFIG_HVCS=m
@@ -961,44 +987,65 @@ CONFIG_DEVPORT=y
961CONFIG_I2C=y 987CONFIG_I2C=y
962CONFIG_I2C_BOARDINFO=y 988CONFIG_I2C_BOARDINFO=y
963# CONFIG_I2C_CHARDEV is not set 989# CONFIG_I2C_CHARDEV is not set
990CONFIG_I2C_HELPER_AUTO=y
964CONFIG_I2C_ALGOBIT=y 991CONFIG_I2C_ALGOBIT=y
965 992
966# 993#
967# I2C Hardware Bus support 994# I2C Hardware Bus support
968# 995#
996
997#
998# PC SMBus host controller drivers
999#
969# CONFIG_I2C_ALI1535 is not set 1000# CONFIG_I2C_ALI1535 is not set
970# CONFIG_I2C_ALI1563 is not set 1001# CONFIG_I2C_ALI1563 is not set
971# CONFIG_I2C_ALI15X3 is not set 1002# CONFIG_I2C_ALI15X3 is not set
972# CONFIG_I2C_AMD756 is not set 1003# CONFIG_I2C_AMD756 is not set
973# CONFIG_I2C_AMD8111 is not set 1004# CONFIG_I2C_AMD8111 is not set
974# CONFIG_I2C_I801 is not set 1005# CONFIG_I2C_I801 is not set
975# CONFIG_I2C_I810 is not set 1006# CONFIG_I2C_ISCH is not set
976# CONFIG_I2C_PIIX4 is not set 1007# CONFIG_I2C_PIIX4 is not set
977# CONFIG_I2C_NFORCE2 is not set 1008# CONFIG_I2C_NFORCE2 is not set
978# CONFIG_I2C_OCORES is not set
979# CONFIG_I2C_PARPORT is not set
980# CONFIG_I2C_PARPORT_LIGHT is not set
981# CONFIG_I2C_PROSAVAGE is not set
982# CONFIG_I2C_SAVAGE4 is not set
983# CONFIG_I2C_SIMTEC is not set
984# CONFIG_I2C_SIS5595 is not set 1009# CONFIG_I2C_SIS5595 is not set
985# CONFIG_I2C_SIS630 is not set 1010# CONFIG_I2C_SIS630 is not set
986# CONFIG_I2C_SIS96X is not set 1011# CONFIG_I2C_SIS96X is not set
987# CONFIG_I2C_TAOS_EVM is not set
988# CONFIG_I2C_STUB is not set
989# CONFIG_I2C_TINY_USB is not set
990# CONFIG_I2C_VIA is not set 1012# CONFIG_I2C_VIA is not set
991# CONFIG_I2C_VIAPRO is not set 1013# CONFIG_I2C_VIAPRO is not set
1014
1015#
1016# I2C system bus drivers (mostly embedded / system-on-chip)
1017#
1018# CONFIG_I2C_OCORES is not set
1019# CONFIG_I2C_SIMTEC is not set
1020
1021#
1022# External I2C/SMBus adapter drivers
1023#
1024# CONFIG_I2C_PARPORT is not set
1025# CONFIG_I2C_PARPORT_LIGHT is not set
1026# CONFIG_I2C_TAOS_EVM is not set
1027# CONFIG_I2C_TINY_USB is not set
1028
1029#
1030# Graphics adapter I2C/DDC channel drivers
1031#
992# CONFIG_I2C_VOODOO3 is not set 1032# CONFIG_I2C_VOODOO3 is not set
1033
1034#
1035# Other I2C/SMBus bus drivers
1036#
993# CONFIG_I2C_PCA_PLATFORM is not set 1037# CONFIG_I2C_PCA_PLATFORM is not set
1038# CONFIG_I2C_STUB is not set
994 1039
995# 1040#
996# Miscellaneous I2C Chip support 1041# Miscellaneous I2C Chip support
997# 1042#
998# CONFIG_DS1682 is not set 1043# CONFIG_DS1682 is not set
1044# CONFIG_AT24 is not set
999# CONFIG_SENSORS_EEPROM is not set 1045# CONFIG_SENSORS_EEPROM is not set
1000# CONFIG_SENSORS_PCF8574 is not set 1046# CONFIG_SENSORS_PCF8574 is not set
1001# CONFIG_PCF8575 is not set 1047# CONFIG_PCF8575 is not set
1048# CONFIG_SENSORS_PCA9539 is not set
1002# CONFIG_SENSORS_PCF8591 is not set 1049# CONFIG_SENSORS_PCF8591 is not set
1003# CONFIG_SENSORS_MAX6875 is not set 1050# CONFIG_SENSORS_MAX6875 is not set
1004# CONFIG_SENSORS_TSL2550 is not set 1051# CONFIG_SENSORS_TSL2550 is not set
@@ -1007,10 +1054,13 @@ CONFIG_I2C_ALGOBIT=y
1007# CONFIG_I2C_DEBUG_BUS is not set 1054# CONFIG_I2C_DEBUG_BUS is not set
1008# CONFIG_I2C_DEBUG_CHIP is not set 1055# CONFIG_I2C_DEBUG_CHIP is not set
1009# CONFIG_SPI is not set 1056# CONFIG_SPI is not set
1057CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1058# CONFIG_GPIOLIB is not set
1010# CONFIG_W1 is not set 1059# CONFIG_W1 is not set
1011# CONFIG_POWER_SUPPLY is not set 1060# CONFIG_POWER_SUPPLY is not set
1012# CONFIG_HWMON is not set 1061# CONFIG_HWMON is not set
1013# CONFIG_THERMAL is not set 1062# CONFIG_THERMAL is not set
1063# CONFIG_THERMAL_HWMON is not set
1014# CONFIG_WATCHDOG is not set 1064# CONFIG_WATCHDOG is not set
1015 1065
1016# 1066#
@@ -1022,8 +1072,10 @@ CONFIG_SSB_POSSIBLE=y
1022# 1072#
1023# Multifunction device drivers 1073# Multifunction device drivers
1024# 1074#
1075# CONFIG_MFD_CORE is not set
1025# CONFIG_MFD_SM501 is not set 1076# CONFIG_MFD_SM501 is not set
1026# CONFIG_HTC_PASIC3 is not set 1077# CONFIG_HTC_PASIC3 is not set
1078# CONFIG_MFD_TMIO is not set
1027 1079
1028# 1080#
1029# Multimedia devices 1081# Multimedia devices
@@ -1102,10 +1154,13 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1102# CONFIG_FB_TRIDENT is not set 1154# CONFIG_FB_TRIDENT is not set
1103# CONFIG_FB_ARK is not set 1155# CONFIG_FB_ARK is not set
1104# CONFIG_FB_PM3 is not set 1156# CONFIG_FB_PM3 is not set
1157# CONFIG_FB_CARMINE is not set
1105CONFIG_FB_IBM_GXT4500=y 1158CONFIG_FB_IBM_GXT4500=y
1106# CONFIG_FB_VIRTUAL is not set 1159# CONFIG_FB_VIRTUAL is not set
1107CONFIG_BACKLIGHT_LCD_SUPPORT=y 1160CONFIG_BACKLIGHT_LCD_SUPPORT=y
1108CONFIG_LCD_CLASS_DEVICE=m 1161CONFIG_LCD_CLASS_DEVICE=m
1162# CONFIG_LCD_ILI9320 is not set
1163CONFIG_LCD_PLATFORM=m
1109CONFIG_BACKLIGHT_CLASS_DEVICE=y 1164CONFIG_BACKLIGHT_CLASS_DEVICE=y
1110# CONFIG_BACKLIGHT_CORGI is not set 1165# CONFIG_BACKLIGHT_CORGI is not set
1111 1166
@@ -1133,10 +1188,6 @@ CONFIG_LOGO=y
1133CONFIG_LOGO_LINUX_MONO=y 1188CONFIG_LOGO_LINUX_MONO=y
1134CONFIG_LOGO_LINUX_VGA16=y 1189CONFIG_LOGO_LINUX_VGA16=y
1135CONFIG_LOGO_LINUX_CLUT224=y 1190CONFIG_LOGO_LINUX_CLUT224=y
1136
1137#
1138# Sound
1139#
1140# CONFIG_SOUND is not set 1191# CONFIG_SOUND is not set
1141CONFIG_HID_SUPPORT=y 1192CONFIG_HID_SUPPORT=y
1142CONFIG_HID=y 1193CONFIG_HID=y
@@ -1165,6 +1216,7 @@ CONFIG_USB_DEVICEFS=y
1165CONFIG_USB_DEVICE_CLASS=y 1216CONFIG_USB_DEVICE_CLASS=y
1166# CONFIG_USB_DYNAMIC_MINORS is not set 1217# CONFIG_USB_DYNAMIC_MINORS is not set
1167# CONFIG_USB_OTG is not set 1218# CONFIG_USB_OTG is not set
1219CONFIG_USB_MON=y
1168 1220
1169# 1221#
1170# USB Host Controller Drivers 1222# USB Host Controller Drivers
@@ -1190,6 +1242,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1190# 1242#
1191# CONFIG_USB_ACM is not set 1243# CONFIG_USB_ACM is not set
1192# CONFIG_USB_PRINTER is not set 1244# CONFIG_USB_PRINTER is not set
1245# CONFIG_USB_WDM is not set
1193 1246
1194# 1247#
1195# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1248# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1211,6 +1264,7 @@ CONFIG_USB_STORAGE=y
1211# CONFIG_USB_STORAGE_ALAUDA is not set 1264# CONFIG_USB_STORAGE_ALAUDA is not set
1212CONFIG_USB_STORAGE_ONETOUCH=y 1265CONFIG_USB_STORAGE_ONETOUCH=y
1213# CONFIG_USB_STORAGE_KARMA is not set 1266# CONFIG_USB_STORAGE_KARMA is not set
1267# CONFIG_USB_STORAGE_SIERRA is not set
1214# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1268# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1215# CONFIG_USB_LIBUSUAL is not set 1269# CONFIG_USB_LIBUSUAL is not set
1216 1270
@@ -1219,7 +1273,6 @@ CONFIG_USB_STORAGE_ONETOUCH=y
1219# 1273#
1220# CONFIG_USB_MDC800 is not set 1274# CONFIG_USB_MDC800 is not set
1221# CONFIG_USB_MICROTEK is not set 1275# CONFIG_USB_MICROTEK is not set
1222CONFIG_USB_MON=y
1223 1276
1224# 1277#
1225# USB port drivers 1278# USB port drivers
@@ -1233,7 +1286,6 @@ CONFIG_USB_MON=y
1233# CONFIG_USB_EMI62 is not set 1286# CONFIG_USB_EMI62 is not set
1234# CONFIG_USB_EMI26 is not set 1287# CONFIG_USB_EMI26 is not set
1235# CONFIG_USB_ADUTUX is not set 1288# CONFIG_USB_ADUTUX is not set
1236# CONFIG_USB_AUERSWALD is not set
1237# CONFIG_USB_RIO500 is not set 1289# CONFIG_USB_RIO500 is not set
1238# CONFIG_USB_LEGOTOWER is not set 1290# CONFIG_USB_LEGOTOWER is not set
1239# CONFIG_USB_LCD is not set 1291# CONFIG_USB_LCD is not set
@@ -1250,6 +1302,7 @@ CONFIG_USB_MON=y
1250# CONFIG_USB_TRANCEVIBRATOR is not set 1302# CONFIG_USB_TRANCEVIBRATOR is not set
1251# CONFIG_USB_IOWARRIOR is not set 1303# CONFIG_USB_IOWARRIOR is not set
1252# CONFIG_USB_TEST is not set 1304# CONFIG_USB_TEST is not set
1305# CONFIG_USB_ISIGHTFW is not set
1253# CONFIG_USB_GADGET is not set 1306# CONFIG_USB_GADGET is not set
1254# CONFIG_MMC is not set 1307# CONFIG_MMC is not set
1255# CONFIG_MEMSTICK is not set 1308# CONFIG_MEMSTICK is not set
@@ -1316,6 +1369,7 @@ CONFIG_XFS_POSIX_ACL=y
1316# CONFIG_GFS2_FS is not set 1369# CONFIG_GFS2_FS is not set
1317CONFIG_OCFS2_FS=m 1370CONFIG_OCFS2_FS=m
1318CONFIG_OCFS2_FS_O2CB=m 1371CONFIG_OCFS2_FS_O2CB=m
1372CONFIG_OCFS2_FS_STATS=y
1319CONFIG_OCFS2_DEBUG_MASKLOG=y 1373CONFIG_OCFS2_DEBUG_MASKLOG=y
1320# CONFIG_OCFS2_DEBUG_FS is not set 1374# CONFIG_OCFS2_DEBUG_FS is not set
1321CONFIG_DNOTIFY=y 1375CONFIG_DNOTIFY=y
@@ -1371,6 +1425,7 @@ CONFIG_CONFIGFS_FS=m
1371CONFIG_CRAMFS=y 1425CONFIG_CRAMFS=y
1372# CONFIG_VXFS_FS is not set 1426# CONFIG_VXFS_FS is not set
1373# CONFIG_MINIX_FS is not set 1427# CONFIG_MINIX_FS is not set
1428# CONFIG_OMFS_FS is not set
1374# CONFIG_HPFS_FS is not set 1429# CONFIG_HPFS_FS is not set
1375# CONFIG_QNX4FS_FS is not set 1430# CONFIG_QNX4FS_FS is not set
1376# CONFIG_ROMFS_FS is not set 1431# CONFIG_ROMFS_FS is not set
@@ -1394,7 +1449,6 @@ CONFIG_NFS_COMMON=y
1394CONFIG_SUNRPC=y 1449CONFIG_SUNRPC=y
1395CONFIG_SUNRPC_GSS=y 1450CONFIG_SUNRPC_GSS=y
1396CONFIG_SUNRPC_XPRT_RDMA=m 1451CONFIG_SUNRPC_XPRT_RDMA=m
1397# CONFIG_SUNRPC_BIND34 is not set
1398CONFIG_RPCSEC_GSS_KRB5=y 1452CONFIG_RPCSEC_GSS_KRB5=y
1399CONFIG_RPCSEC_GSS_SPKM3=m 1453CONFIG_RPCSEC_GSS_SPKM3=m
1400# CONFIG_SMB_FS is not set 1454# CONFIG_SMB_FS is not set
@@ -1463,6 +1517,7 @@ CONFIG_BITREVERSE=y
1463# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1517# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1464CONFIG_CRC_CCITT=m 1518CONFIG_CRC_CCITT=m
1465# CONFIG_CRC16 is not set 1519# CONFIG_CRC16 is not set
1520CONFIG_CRC_T10DIF=y
1466CONFIG_CRC_ITU_T=m 1521CONFIG_CRC_ITU_T=m
1467CONFIG_CRC32=y 1522CONFIG_CRC32=y
1468# CONFIG_CRC7 is not set 1523# CONFIG_CRC7 is not set
@@ -1495,8 +1550,10 @@ CONFIG_DEBUG_FS=y
1495CONFIG_DEBUG_KERNEL=y 1550CONFIG_DEBUG_KERNEL=y
1496# CONFIG_DEBUG_SHIRQ is not set 1551# CONFIG_DEBUG_SHIRQ is not set
1497CONFIG_DETECT_SOFTLOCKUP=y 1552CONFIG_DETECT_SOFTLOCKUP=y
1553# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1554CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1498CONFIG_SCHED_DEBUG=y 1555CONFIG_SCHED_DEBUG=y
1499# CONFIG_SCHEDSTATS is not set 1556CONFIG_SCHEDSTATS=y
1500# CONFIG_TIMER_STATS is not set 1557# CONFIG_TIMER_STATS is not set
1501# CONFIG_DEBUG_OBJECTS is not set 1558# CONFIG_DEBUG_OBJECTS is not set
1502# CONFIG_SLUB_DEBUG_ON is not set 1559# CONFIG_SLUB_DEBUG_ON is not set
@@ -1508,30 +1565,49 @@ CONFIG_SCHED_DEBUG=y
1508# CONFIG_DEBUG_LOCK_ALLOC is not set 1565# CONFIG_DEBUG_LOCK_ALLOC is not set
1509# CONFIG_PROVE_LOCKING is not set 1566# CONFIG_PROVE_LOCKING is not set
1510# CONFIG_LOCK_STAT is not set 1567# CONFIG_LOCK_STAT is not set
1568CONFIG_TRACE_IRQFLAGS=y
1511# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1569# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1512# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1570# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1571CONFIG_STACKTRACE=y
1513# CONFIG_DEBUG_KOBJECT is not set 1572# CONFIG_DEBUG_KOBJECT is not set
1514CONFIG_DEBUG_BUGVERBOSE=y 1573CONFIG_DEBUG_BUGVERBOSE=y
1515# CONFIG_DEBUG_INFO is not set 1574# CONFIG_DEBUG_INFO is not set
1516# CONFIG_DEBUG_VM is not set 1575# CONFIG_DEBUG_VM is not set
1517# CONFIG_DEBUG_WRITECOUNT is not set 1576# CONFIG_DEBUG_WRITECOUNT is not set
1577CONFIG_DEBUG_MEMORY_INIT=y
1518# CONFIG_DEBUG_LIST is not set 1578# CONFIG_DEBUG_LIST is not set
1519# CONFIG_DEBUG_SG is not set 1579# CONFIG_DEBUG_SG is not set
1580CONFIG_FRAME_POINTER=y
1520# CONFIG_BOOT_PRINTK_DELAY is not set 1581# CONFIG_BOOT_PRINTK_DELAY is not set
1521# CONFIG_RCU_TORTURE_TEST is not set 1582# CONFIG_RCU_TORTURE_TEST is not set
1522# CONFIG_KPROBES_SANITY_TEST is not set 1583# CONFIG_KPROBES_SANITY_TEST is not set
1523# CONFIG_BACKTRACE_SELF_TEST is not set 1584# CONFIG_BACKTRACE_SELF_TEST is not set
1524# CONFIG_LKDTM is not set 1585# CONFIG_LKDTM is not set
1525# CONFIG_FAULT_INJECTION is not set 1586# CONFIG_FAULT_INJECTION is not set
1587CONFIG_LATENCYTOP=y
1588CONFIG_SYSCTL_SYSCALL_CHECK=y
1589CONFIG_HAVE_FTRACE=y
1590CONFIG_HAVE_DYNAMIC_FTRACE=y
1591CONFIG_TRACER_MAX_TRACE=y
1592CONFIG_TRACING=y
1593# CONFIG_FTRACE is not set
1594CONFIG_IRQSOFF_TRACER=y
1595CONFIG_SCHED_TRACER=y
1596CONFIG_CONTEXT_SWITCH_TRACER=y
1597# CONFIG_FTRACE_STARTUP_TEST is not set
1526# CONFIG_SAMPLES is not set 1598# CONFIG_SAMPLES is not set
1599CONFIG_HAVE_ARCH_KGDB=y
1600# CONFIG_KGDB is not set
1527CONFIG_DEBUG_STACKOVERFLOW=y 1601CONFIG_DEBUG_STACKOVERFLOW=y
1528# CONFIG_DEBUG_STACK_USAGE is not set 1602# CONFIG_DEBUG_STACK_USAGE is not set
1529# CONFIG_DEBUG_PAGEALLOC is not set 1603# CONFIG_DEBUG_PAGEALLOC is not set
1530CONFIG_HCALL_STATS=y 1604CONFIG_HCALL_STATS=y
1531CONFIG_DEBUGGER=y 1605# CONFIG_CODE_PATCHING_SELFTEST is not set
1606# CONFIG_FTR_FIXUP_SELFTEST is not set
1532CONFIG_XMON=y 1607CONFIG_XMON=y
1533CONFIG_XMON_DEFAULT=y 1608CONFIG_XMON_DEFAULT=y
1534CONFIG_XMON_DISASSEMBLY=y 1609CONFIG_XMON_DISASSEMBLY=y
1610CONFIG_DEBUGGER=y
1535CONFIG_IRQSTACKS=y 1611CONFIG_IRQSTACKS=y
1536CONFIG_VIRQ_DEBUG=y 1612CONFIG_VIRQ_DEBUG=y
1537# CONFIG_BOOTX_TEXT is not set 1613# CONFIG_BOOTX_TEXT is not set
@@ -1590,6 +1666,10 @@ CONFIG_CRYPTO_CRC32C=m
1590CONFIG_CRYPTO_MD4=m 1666CONFIG_CRYPTO_MD4=m
1591CONFIG_CRYPTO_MD5=y 1667CONFIG_CRYPTO_MD5=y
1592CONFIG_CRYPTO_MICHAEL_MIC=m 1668CONFIG_CRYPTO_MICHAEL_MIC=m
1669# CONFIG_CRYPTO_RMD128 is not set
1670# CONFIG_CRYPTO_RMD160 is not set
1671# CONFIG_CRYPTO_RMD256 is not set
1672# CONFIG_CRYPTO_RMD320 is not set
1593CONFIG_CRYPTO_SHA1=m 1673CONFIG_CRYPTO_SHA1=m
1594CONFIG_CRYPTO_SHA256=m 1674CONFIG_CRYPTO_SHA256=m
1595CONFIG_CRYPTO_SHA512=m 1675CONFIG_CRYPTO_SHA512=m
diff --git a/arch/powerpc/configs/sbc8641d_defconfig b/arch/powerpc/configs/sbc8641d_defconfig
index 8227510b41a..f545421f985 100644
--- a/arch/powerpc/configs/sbc8641d_defconfig
+++ b/arch/powerpc/configs/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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:19 2008 4# Thu Aug 21 00:52:15 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -33,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_GENERIC_LOCKBREAK=y 39CONFIG_GENERIC_LOCKBREAK=y
@@ -92,7 +93,6 @@ CONFIG_INITRAMFS_SOURCE=""
92CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
93CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_ALL is not set 97# CONFIG_KALLSYMS_ALL is not set
98# CONFIG_KALLSYMS_EXTRA_PASS is not set 98# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -100,6 +100,7 @@ CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 100CONFIG_PRINTK=y
101CONFIG_BUG=y 101CONFIG_BUG=y
102CONFIG_ELF_CORE=y 102CONFIG_ELF_CORE=y
103CONFIG_PCSPKR_PLATFORM=y
103CONFIG_COMPAT_BRK=y 104CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 105CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 106CONFIG_FUTEX=y
@@ -117,10 +118,16 @@ CONFIG_SLAB=y
117# CONFIG_MARKERS is not set 118# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
122CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_DMA_ATTRS is not set 126# CONFIG_HAVE_DMA_ATTRS is not set
127CONFIG_USE_GENERIC_SMP_HELPERS=y
128# CONFIG_HAVE_CLK is not set
123CONFIG_PROC_PAGE_MONITOR=y 129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set 133# CONFIG_TINY_SHMEM is not set
@@ -138,6 +145,7 @@ CONFIG_BLOCK=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 146# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set
141 149
142# 150#
143# IO Schedulers 151# IO Schedulers
@@ -156,30 +164,40 @@ CONFIG_CLASSIC_RCU=y
156# 164#
157# Platform support 165# Platform support
158# 166#
159# CONFIG_PPC_MULTIPLATFORM is not set 167CONFIG_PPC_MULTIPLATFORM=y
160# CONFIG_PPC_82xx is not set 168CONFIG_CLASSIC32=y
161# CONFIG_PPC_83xx is not set 169CONFIG_PPC_CHRP=y
162CONFIG_PPC_86xx=y 170# CONFIG_MPC5121_ADS is not set
163# CONFIG_PPC_MPC512x is not set 171# CONFIG_MPC5121_GENERIC is not set
164# CONFIG_PPC_MPC5121 is not set 172# CONFIG_PPC_MPC52xx is not set
173CONFIG_PPC_PMAC=y
165# CONFIG_PPC_CELL is not set 174# CONFIG_PPC_CELL is not set
166# CONFIG_PPC_CELL_NATIVE is not set 175# CONFIG_PPC_CELL_NATIVE is not set
176# CONFIG_PPC_82xx is not set
167# CONFIG_PQ2ADS is not set 177# CONFIG_PQ2ADS is not set
178# CONFIG_PPC_83xx is not set
179CONFIG_PPC_86xx=y
168# CONFIG_MPC8641_HPCN is not set 180# CONFIG_MPC8641_HPCN is not set
169CONFIG_SBC8641D=y 181CONFIG_SBC8641D=y
170# CONFIG_MPC8610_HPCD is not set 182# CONFIG_MPC8610_HPCD is not set
171CONFIG_MPC8641=y 183CONFIG_MPC8641=y
184CONFIG_PPC_NATIVE=y
185# CONFIG_UDBG_RTAS_CONSOLE is not set
172# CONFIG_IPIC is not set 186# CONFIG_IPIC is not set
173CONFIG_MPIC=y 187CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 188# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 189CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 190CONFIG_PPC_RTAS=y
191# CONFIG_RTAS_ERROR_LOGGING is not set
192CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 193# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 194CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 195# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 196# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 197# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 198# CONFIG_CPU_FREQ is not set
199# CONFIG_PPC601_SYNC_FIX is not set
200# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 201# CONFIG_FSL_ULI1575 is not set
184 202
185# 203#
@@ -195,7 +213,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 213# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 214# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 215CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 216CONFIG_SCHED_HRTICK=y
199# CONFIG_PREEMPT_NONE is not set 217# CONFIG_PREEMPT_NONE is not set
200# CONFIG_PREEMPT_VOLUNTARY is not set 218# CONFIG_PREEMPT_VOLUNTARY is not set
201CONFIG_PREEMPT=y 219CONFIG_PREEMPT=y
@@ -203,9 +221,11 @@ CONFIG_PREEMPT=y
203CONFIG_BINFMT_ELF=y 221CONFIG_BINFMT_ELF=y
204CONFIG_BINFMT_MISC=m 222CONFIG_BINFMT_MISC=m
205# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
224# CONFIG_HOTPLUG_CPU is not set
206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 225CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
207CONFIG_ARCH_HAS_WALK_MEMORY=y 226CONFIG_ARCH_HAS_WALK_MEMORY=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set
209CONFIG_IRQ_ALL_CPUS=y 229CONFIG_IRQ_ALL_CPUS=y
210CONFIG_ARCH_FLATMEM_ENABLE=y 230CONFIG_ARCH_FLATMEM_ENABLE=y
211CONFIG_ARCH_POPULATES_NODE_MAP=y 231CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -219,6 +239,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 239# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
221CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
242CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set 243# CONFIG_RESOURCES_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
224CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
@@ -226,6 +247,7 @@ CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
227# CONFIG_PROC_DEVICETREE is not set 248# CONFIG_PROC_DEVICETREE is not set
228# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
250CONFIG_EXTRA_TARGETS=""
229# CONFIG_PM is not set 251# CONFIG_PM is not set
230CONFIG_SECCOMP=y 252CONFIG_SECCOMP=y
231CONFIG_ISA_DMA_API=y 253CONFIG_ISA_DMA_API=y
@@ -233,11 +255,13 @@ CONFIG_ISA_DMA_API=y
233# 255#
234# Bus options 256# Bus options
235# 257#
258# CONFIG_ISA is not set
236CONFIG_ZONE_DMA=y 259CONFIG_ZONE_DMA=y
237CONFIG_GENERIC_ISA_DMA=y 260CONFIG_GENERIC_ISA_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 261CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 262CONFIG_FSL_SOC=y
240CONFIG_FSL_PCI=y 263CONFIG_FSL_PCI=y
264CONFIG_PPC_PCI_CHOICE=y
241CONFIG_PCI=y 265CONFIG_PCI=y
242CONFIG_PCI_DOMAINS=y 266CONFIG_PCI_DOMAINS=y
243CONFIG_PCI_SYSCALL=y 267CONFIG_PCI_SYSCALL=y
@@ -265,10 +289,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
265CONFIG_KERNEL_START=0xc0000000 289CONFIG_KERNEL_START=0xc0000000
266CONFIG_PHYSICAL_START=0x00000000 290CONFIG_PHYSICAL_START=0x00000000
267CONFIG_TASK_SIZE=0xc0000000 291CONFIG_TASK_SIZE=0xc0000000
268
269#
270# Networking
271#
272CONFIG_NET=y 292CONFIG_NET=y
273 293
274# 294#
@@ -282,6 +302,7 @@ CONFIG_XFRM_USER=m
282# CONFIG_XFRM_SUB_POLICY is not set 302# CONFIG_XFRM_SUB_POLICY is not set
283# CONFIG_XFRM_MIGRATE is not set 303# CONFIG_XFRM_MIGRATE is not set
284# CONFIG_XFRM_STATISTICS is not set 304# CONFIG_XFRM_STATISTICS is not set
305CONFIG_XFRM_IPCOMP=m
285CONFIG_NET_KEY=m 306CONFIG_NET_KEY=m
286# CONFIG_NET_KEY_MIGRATE is not set 307# CONFIG_NET_KEY_MIGRATE is not set
287CONFIG_INET=y 308CONFIG_INET=y
@@ -406,6 +427,7 @@ CONFIG_IP_NF_MANGLE=m
406CONFIG_IP_NF_TARGET_ECN=m 427CONFIG_IP_NF_TARGET_ECN=m
407# CONFIG_IP_NF_TARGET_TTL is not set 428# CONFIG_IP_NF_TARGET_TTL is not set
408CONFIG_IP_NF_RAW=m 429CONFIG_IP_NF_RAW=m
430# CONFIG_IP_NF_SECURITY is not set
409CONFIG_IP_NF_ARPTABLES=m 431CONFIG_IP_NF_ARPTABLES=m
410CONFIG_IP_NF_ARPFILTER=m 432CONFIG_IP_NF_ARPFILTER=m
411CONFIG_IP_NF_ARP_MANGLE=m 433CONFIG_IP_NF_ARP_MANGLE=m
@@ -429,6 +451,7 @@ CONFIG_IP6_NF_TARGET_LOG=m
429CONFIG_IP6_NF_MANGLE=m 451CONFIG_IP6_NF_MANGLE=m
430# CONFIG_IP6_NF_TARGET_HL is not set 452# CONFIG_IP6_NF_TARGET_HL is not set
431CONFIG_IP6_NF_RAW=m 453CONFIG_IP6_NF_RAW=m
454# CONFIG_IP6_NF_SECURITY is not set
432 455
433# 456#
434# Bridge: Netfilter Configuration 457# Bridge: Netfilter Configuration
@@ -451,8 +474,10 @@ CONFIG_ATM_LANE=m
451CONFIG_ATM_MPOA=m 474CONFIG_ATM_MPOA=m
452CONFIG_ATM_BR2684=m 475CONFIG_ATM_BR2684=m
453# CONFIG_ATM_BR2684_IPFILTER is not set 476# CONFIG_ATM_BR2684_IPFILTER is not set
477CONFIG_STP=m
454CONFIG_BRIDGE=m 478CONFIG_BRIDGE=m
455CONFIG_VLAN_8021Q=m 479CONFIG_VLAN_8021Q=m
480# CONFIG_VLAN_8021Q_GVRP is not set
456# CONFIG_DECNET is not set 481# CONFIG_DECNET is not set
457CONFIG_LLC=m 482CONFIG_LLC=m
458# CONFIG_LLC2 is not set 483# CONFIG_LLC2 is not set
@@ -472,7 +497,6 @@ CONFIG_NET_SCH_HTB=m
472CONFIG_NET_SCH_HFSC=m 497CONFIG_NET_SCH_HFSC=m
473CONFIG_NET_SCH_ATM=m 498CONFIG_NET_SCH_ATM=m
474CONFIG_NET_SCH_PRIO=m 499CONFIG_NET_SCH_PRIO=m
475# CONFIG_NET_SCH_RR is not set
476CONFIG_NET_SCH_RED=m 500CONFIG_NET_SCH_RED=m
477CONFIG_NET_SCH_SFQ=m 501CONFIG_NET_SCH_SFQ=m
478CONFIG_NET_SCH_TEQL=m 502CONFIG_NET_SCH_TEQL=m
@@ -625,6 +649,7 @@ CONFIG_OF_I2C=y
625# CONFIG_PARPORT is not set 649# CONFIG_PARPORT is not set
626CONFIG_BLK_DEV=y 650CONFIG_BLK_DEV=y
627# CONFIG_BLK_DEV_FD is not set 651# CONFIG_BLK_DEV_FD is not set
652# CONFIG_MAC_FLOPPY is not set
628# CONFIG_BLK_CPQ_DA is not set 653# CONFIG_BLK_CPQ_DA is not set
629# CONFIG_BLK_CPQ_CISS_DA is not set 654# CONFIG_BLK_CPQ_CISS_DA is not set
630# CONFIG_BLK_DEV_DAC960 is not set 655# CONFIG_BLK_DEV_DAC960 is not set
@@ -640,12 +665,14 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
640# CONFIG_BLK_DEV_XIP is not set 665# CONFIG_BLK_DEV_XIP is not set
641# CONFIG_CDROM_PKTCDVD is not set 666# CONFIG_CDROM_PKTCDVD is not set
642# CONFIG_ATA_OVER_ETH is not set 667# CONFIG_ATA_OVER_ETH is not set
668# CONFIG_BLK_DEV_HD is not set
643CONFIG_MISC_DEVICES=y 669CONFIG_MISC_DEVICES=y
644# CONFIG_PHANTOM is not set 670# CONFIG_PHANTOM is not set
645# CONFIG_EEPROM_93CX6 is not set 671# CONFIG_EEPROM_93CX6 is not set
646# CONFIG_SGI_IOC4 is not set 672# CONFIG_SGI_IOC4 is not set
647# CONFIG_TIFM_CORE is not set 673# CONFIG_TIFM_CORE is not set
648# CONFIG_ENCLOSURE_SERVICES is not set 674# CONFIG_ENCLOSURE_SERVICES is not set
675# CONFIG_HP_ILO is not set
649CONFIG_HAVE_IDE=y 676CONFIG_HAVE_IDE=y
650# CONFIG_IDE is not set 677# CONFIG_IDE is not set
651 678
@@ -680,12 +707,15 @@ CONFIG_DM_ZERO=y
680# 707#
681# IEEE 1394 (FireWire) support 708# IEEE 1394 (FireWire) support
682# 709#
710
711#
712# Enable only one of the two stacks, unless you know what you are doing
713#
683# CONFIG_FIREWIRE is not set 714# CONFIG_FIREWIRE is not set
684# CONFIG_IEEE1394 is not set 715# CONFIG_IEEE1394 is not set
685# CONFIG_I2O is not set 716# CONFIG_I2O is not set
686# CONFIG_MACINTOSH_DRIVERS is not set 717# CONFIG_MACINTOSH_DRIVERS is not set
687CONFIG_NETDEVICES=y 718CONFIG_NETDEVICES=y
688# CONFIG_NETDEVICES_MULTIQUEUE is not set
689CONFIG_DUMMY=m 719CONFIG_DUMMY=m
690CONFIG_BONDING=m 720CONFIG_BONDING=m
691# CONFIG_MACVLAN is not set 721# CONFIG_MACVLAN is not set
@@ -712,6 +742,8 @@ CONFIG_BROADCOM_PHY=y
712# CONFIG_MDIO_BITBANG is not set 742# CONFIG_MDIO_BITBANG is not set
713CONFIG_NET_ETHERNET=y 743CONFIG_NET_ETHERNET=y
714CONFIG_MII=y 744CONFIG_MII=y
745# CONFIG_MACE is not set
746# CONFIG_BMAC is not set
715# CONFIG_HAPPYMEAL is not set 747# CONFIG_HAPPYMEAL is not set
716# CONFIG_SUNGEM is not set 748# CONFIG_SUNGEM is not set
717# CONFIG_CASSINI is not set 749# CONFIG_CASSINI is not set
@@ -729,7 +761,6 @@ CONFIG_NETDEV_1000=y
729# CONFIG_DL2K is not set 761# CONFIG_DL2K is not set
730# CONFIG_E1000 is not set 762# CONFIG_E1000 is not set
731# CONFIG_E1000E is not set 763# CONFIG_E1000E is not set
732# CONFIG_E1000E_ENABLED is not set
733# CONFIG_IP1000 is not set 764# CONFIG_IP1000 is not set
734# CONFIG_IGB is not set 765# CONFIG_IGB is not set
735# CONFIG_NS83820 is not set 766# CONFIG_NS83820 is not set
@@ -743,9 +774,10 @@ CONFIG_NETDEV_1000=y
743# CONFIG_TIGON3 is not set 774# CONFIG_TIGON3 is not set
744# CONFIG_BNX2 is not set 775# CONFIG_BNX2 is not set
745CONFIG_GIANFAR=y 776CONFIG_GIANFAR=y
746# CONFIG_GFAR_NAPI is not set 777# CONFIG_MV643XX_ETH is not set
747# CONFIG_QLA3XXX is not set 778# CONFIG_QLA3XXX is not set
748# CONFIG_ATL1 is not set 779# CONFIG_ATL1 is not set
780# CONFIG_ATL1E is not set
749# CONFIG_NETDEV_10000 is not set 781# CONFIG_NETDEV_10000 is not set
750# CONFIG_TR is not set 782# CONFIG_TR is not set
751 783
@@ -768,7 +800,7 @@ CONFIG_ATM_DRIVERS=y
768# CONFIG_ATM_AMBASSADOR is not set 800# CONFIG_ATM_AMBASSADOR is not set
769# CONFIG_ATM_HORIZON is not set 801# CONFIG_ATM_HORIZON is not set
770# CONFIG_ATM_IA is not set 802# CONFIG_ATM_IA is not set
771# CONFIG_ATM_FORE200E_MAYBE is not set 803# CONFIG_ATM_FORE200E is not set
772# CONFIG_ATM_HE is not set 804# CONFIG_ATM_HE is not set
773# CONFIG_FDDI is not set 805# CONFIG_FDDI is not set
774# CONFIG_HIPPI is not set 806# CONFIG_HIPPI is not set
@@ -834,6 +866,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
834# Character devices 866# Character devices
835# 867#
836CONFIG_VT=y 868CONFIG_VT=y
869CONFIG_CONSOLE_TRANSLATIONS=y
837CONFIG_VT_CONSOLE=y 870CONFIG_VT_CONSOLE=y
838CONFIG_HW_CONSOLE=y 871CONFIG_HW_CONSOLE=y
839# CONFIG_VT_HW_CONSOLE_BINDING is not set 872# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -857,11 +890,14 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=2
857# CONFIG_SERIAL_UARTLITE is not set 890# CONFIG_SERIAL_UARTLITE is not set
858CONFIG_SERIAL_CORE=y 891CONFIG_SERIAL_CORE=y
859CONFIG_SERIAL_CORE_CONSOLE=y 892CONFIG_SERIAL_CORE_CONSOLE=y
893# CONFIG_SERIAL_PMACZILOG is not set
860# CONFIG_SERIAL_JSM is not set 894# CONFIG_SERIAL_JSM is not set
861# CONFIG_SERIAL_OF_PLATFORM is not set 895# CONFIG_SERIAL_OF_PLATFORM is not set
862CONFIG_UNIX98_PTYS=y 896CONFIG_UNIX98_PTYS=y
863CONFIG_LEGACY_PTYS=y 897CONFIG_LEGACY_PTYS=y
864CONFIG_LEGACY_PTY_COUNT=256 898CONFIG_LEGACY_PTY_COUNT=256
899# CONFIG_BRIQ_PANEL is not set
900# CONFIG_HVC_RTAS is not set
865# CONFIG_IPMI_HANDLER is not set 901# CONFIG_IPMI_HANDLER is not set
866CONFIG_HW_RANDOM=m 902CONFIG_HW_RANDOM=m
867# CONFIG_NVRAM is not set 903# CONFIG_NVRAM is not set
@@ -874,42 +910,69 @@ CONFIG_DEVPORT=y
874CONFIG_I2C=y 910CONFIG_I2C=y
875CONFIG_I2C_BOARDINFO=y 911CONFIG_I2C_BOARDINFO=y
876CONFIG_I2C_CHARDEV=y 912CONFIG_I2C_CHARDEV=y
913CONFIG_I2C_HELPER_AUTO=y
877 914
878# 915#
879# I2C Hardware Bus support 916# I2C Hardware Bus support
880# 917#
918
919#
920# PC SMBus host controller drivers
921#
881# CONFIG_I2C_ALI1535 is not set 922# CONFIG_I2C_ALI1535 is not set
882# CONFIG_I2C_ALI1563 is not set 923# CONFIG_I2C_ALI1563 is not set
883# CONFIG_I2C_ALI15X3 is not set 924# CONFIG_I2C_ALI15X3 is not set
884# CONFIG_I2C_AMD756 is not set 925# CONFIG_I2C_AMD756 is not set
885# CONFIG_I2C_AMD8111 is not set 926# CONFIG_I2C_AMD8111 is not set
886# CONFIG_I2C_I801 is not set 927# CONFIG_I2C_I801 is not set
887# CONFIG_I2C_I810 is not set 928# CONFIG_I2C_ISCH is not set
888# CONFIG_I2C_PIIX4 is not set 929# CONFIG_I2C_PIIX4 is not set
889CONFIG_I2C_MPC=y
890# CONFIG_I2C_NFORCE2 is not set 930# CONFIG_I2C_NFORCE2 is not set
891# CONFIG_I2C_OCORES is not set
892# CONFIG_I2C_PARPORT_LIGHT is not set
893# CONFIG_I2C_PROSAVAGE is not set
894# CONFIG_I2C_SAVAGE4 is not set
895# CONFIG_I2C_SIMTEC is not set
896# CONFIG_I2C_SIS5595 is not set 931# CONFIG_I2C_SIS5595 is not set
897# CONFIG_I2C_SIS630 is not set 932# CONFIG_I2C_SIS630 is not set
898# CONFIG_I2C_SIS96X is not set 933# CONFIG_I2C_SIS96X is not set
899# CONFIG_I2C_TAOS_EVM is not set
900# CONFIG_I2C_STUB is not set
901# CONFIG_I2C_VIA is not set 934# CONFIG_I2C_VIA is not set
902# CONFIG_I2C_VIAPRO is not set 935# CONFIG_I2C_VIAPRO is not set
936
937#
938# Mac SMBus host controller drivers
939#
940# CONFIG_I2C_HYDRA is not set
941CONFIG_I2C_POWERMAC=y
942
943#
944# I2C system bus drivers (mostly embedded / system-on-chip)
945#
946CONFIG_I2C_MPC=y
947# CONFIG_I2C_OCORES is not set
948# CONFIG_I2C_SIMTEC is not set
949
950#
951# External I2C/SMBus adapter drivers
952#
953# CONFIG_I2C_PARPORT_LIGHT is not set
954# CONFIG_I2C_TAOS_EVM is not set
955
956#
957# Graphics adapter I2C/DDC channel drivers
958#
903# CONFIG_I2C_VOODOO3 is not set 959# CONFIG_I2C_VOODOO3 is not set
960
961#
962# Other I2C/SMBus bus drivers
963#
904# CONFIG_I2C_PCA_PLATFORM is not set 964# CONFIG_I2C_PCA_PLATFORM is not set
965# CONFIG_I2C_STUB is not set
905 966
906# 967#
907# Miscellaneous I2C Chip support 968# Miscellaneous I2C Chip support
908# 969#
909# CONFIG_DS1682 is not set 970# CONFIG_DS1682 is not set
971# CONFIG_AT24 is not set
910# CONFIG_SENSORS_EEPROM is not set 972# CONFIG_SENSORS_EEPROM is not set
911# CONFIG_SENSORS_PCF8574 is not set 973# CONFIG_SENSORS_PCF8574 is not set
912# CONFIG_PCF8575 is not set 974# CONFIG_PCF8575 is not set
975# CONFIG_SENSORS_PCA9539 is not set
913# CONFIG_SENSORS_PCF8591 is not set 976# CONFIG_SENSORS_PCF8591 is not set
914# CONFIG_SENSORS_MAX6875 is not set 977# CONFIG_SENSORS_MAX6875 is not set
915# CONFIG_SENSORS_TSL2550 is not set 978# CONFIG_SENSORS_TSL2550 is not set
@@ -918,10 +981,13 @@ CONFIG_I2C_MPC=y
918# CONFIG_I2C_DEBUG_BUS is not set 981# CONFIG_I2C_DEBUG_BUS is not set
919# CONFIG_I2C_DEBUG_CHIP is not set 982# CONFIG_I2C_DEBUG_CHIP is not set
920# CONFIG_SPI is not set 983# CONFIG_SPI is not set
984CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
985# CONFIG_GPIOLIB is not set
921# CONFIG_W1 is not set 986# CONFIG_W1 is not set
922# CONFIG_POWER_SUPPLY is not set 987# CONFIG_POWER_SUPPLY is not set
923CONFIG_HWMON=y 988CONFIG_HWMON=y
924# CONFIG_HWMON_VID is not set 989# CONFIG_HWMON_VID is not set
990# CONFIG_SENSORS_AD7414 is not set
925# CONFIG_SENSORS_AD7418 is not set 991# CONFIG_SENSORS_AD7418 is not set
926# CONFIG_SENSORS_ADM1021 is not set 992# CONFIG_SENSORS_ADM1021 is not set
927# CONFIG_SENSORS_ADM1025 is not set 993# CONFIG_SENSORS_ADM1025 is not set
@@ -931,6 +997,7 @@ CONFIG_HWMON=y
931# CONFIG_SENSORS_ADM9240 is not set 997# CONFIG_SENSORS_ADM9240 is not set
932# CONFIG_SENSORS_ADT7470 is not set 998# CONFIG_SENSORS_ADT7470 is not set
933# CONFIG_SENSORS_ADT7473 is not set 999# CONFIG_SENSORS_ADT7473 is not set
1000# CONFIG_SENSORS_AMS is not set
934# CONFIG_SENSORS_ATXP1 is not set 1001# CONFIG_SENSORS_ATXP1 is not set
935# CONFIG_SENSORS_DS1621 is not set 1002# CONFIG_SENSORS_DS1621 is not set
936# CONFIG_SENSORS_I5K_AMB is not set 1003# CONFIG_SENSORS_I5K_AMB is not set
@@ -975,6 +1042,7 @@ CONFIG_HWMON=y
975# CONFIG_SENSORS_W83627EHF is not set 1042# CONFIG_SENSORS_W83627EHF is not set
976# CONFIG_HWMON_DEBUG_CHIP is not set 1043# CONFIG_HWMON_DEBUG_CHIP is not set
977# CONFIG_THERMAL is not set 1044# CONFIG_THERMAL is not set
1045# CONFIG_THERMAL_HWMON is not set
978CONFIG_WATCHDOG=y 1046CONFIG_WATCHDOG=y
979# CONFIG_WATCHDOG_NOWAYOUT is not set 1047# CONFIG_WATCHDOG_NOWAYOUT is not set
980 1048
@@ -982,6 +1050,9 @@ CONFIG_WATCHDOG=y
982# Watchdog Device Drivers 1050# Watchdog Device Drivers
983# 1051#
984CONFIG_SOFT_WATCHDOG=m 1052CONFIG_SOFT_WATCHDOG=m
1053# CONFIG_ALIM7101_WDT is not set
1054# CONFIG_8xxx_WDT is not set
1055# CONFIG_WATCHDOG_RTAS is not set
985 1056
986# 1057#
987# PCI-based Watchdog Cards 1058# PCI-based Watchdog Cards
@@ -998,8 +1069,10 @@ CONFIG_SSB_POSSIBLE=y
998# 1069#
999# Multifunction device drivers 1070# Multifunction device drivers
1000# 1071#
1072# CONFIG_MFD_CORE is not set
1001# CONFIG_MFD_SM501 is not set 1073# CONFIG_MFD_SM501 is not set
1002# CONFIG_HTC_PASIC3 is not set 1074# CONFIG_HTC_PASIC3 is not set
1075# CONFIG_MFD_TMIO is not set
1003 1076
1004# 1077#
1005# Multimedia devices 1078# Multimedia devices
@@ -1038,10 +1111,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
1038CONFIG_VGA_CONSOLE=y 1111CONFIG_VGA_CONSOLE=y
1039# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1112# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1040CONFIG_DUMMY_CONSOLE=y 1113CONFIG_DUMMY_CONSOLE=y
1041
1042#
1043# Sound
1044#
1045# CONFIG_SOUND is not set 1114# CONFIG_SOUND is not set
1046CONFIG_HID_SUPPORT=y 1115CONFIG_HID_SUPPORT=y
1047CONFIG_HID=y 1116CONFIG_HID=y
@@ -1056,6 +1125,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1056# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1125# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1057 1126
1058# 1127#
1128# Enable Host or Gadget support to see Inventra options
1129#
1130
1131#
1059# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1132# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1060# 1133#
1061# CONFIG_USB_GADGET is not set 1134# CONFIG_USB_GADGET is not set
@@ -1096,6 +1169,7 @@ CONFIG_FS_POSIX_ACL=y
1096# CONFIG_XFS_FS is not set 1169# CONFIG_XFS_FS is not set
1097CONFIG_OCFS2_FS=m 1170CONFIG_OCFS2_FS=m
1098CONFIG_OCFS2_FS_O2CB=m 1171CONFIG_OCFS2_FS_O2CB=m
1172CONFIG_OCFS2_FS_STATS=y
1099CONFIG_OCFS2_DEBUG_MASKLOG=y 1173CONFIG_OCFS2_DEBUG_MASKLOG=y
1100# CONFIG_OCFS2_DEBUG_FS is not set 1174# CONFIG_OCFS2_DEBUG_FS is not set
1101CONFIG_DNOTIFY=y 1175CONFIG_DNOTIFY=y
@@ -1145,6 +1219,7 @@ CONFIG_CONFIGFS_FS=m
1145# CONFIG_CRAMFS is not set 1219# CONFIG_CRAMFS is not set
1146# CONFIG_VXFS_FS is not set 1220# CONFIG_VXFS_FS is not set
1147CONFIG_MINIX_FS=m 1221CONFIG_MINIX_FS=m
1222# CONFIG_OMFS_FS is not set
1148# CONFIG_HPFS_FS is not set 1223# CONFIG_HPFS_FS is not set
1149# CONFIG_QNX4FS_FS is not set 1224# CONFIG_QNX4FS_FS is not set
1150CONFIG_ROMFS_FS=m 1225CONFIG_ROMFS_FS=m
@@ -1155,14 +1230,13 @@ CONFIG_NFS_FS=y
1155CONFIG_NFS_V3=y 1230CONFIG_NFS_V3=y
1156# CONFIG_NFS_V3_ACL is not set 1231# CONFIG_NFS_V3_ACL is not set
1157CONFIG_NFS_V4=y 1232CONFIG_NFS_V4=y
1158# CONFIG_NFSD is not set
1159CONFIG_ROOT_NFS=y 1233CONFIG_ROOT_NFS=y
1234# CONFIG_NFSD is not set
1160CONFIG_LOCKD=y 1235CONFIG_LOCKD=y
1161CONFIG_LOCKD_V4=y 1236CONFIG_LOCKD_V4=y
1162CONFIG_NFS_COMMON=y 1237CONFIG_NFS_COMMON=y
1163CONFIG_SUNRPC=y 1238CONFIG_SUNRPC=y
1164CONFIG_SUNRPC_GSS=y 1239CONFIG_SUNRPC_GSS=y
1165# CONFIG_SUNRPC_BIND34 is not set
1166CONFIG_RPCSEC_GSS_KRB5=y 1240CONFIG_RPCSEC_GSS_KRB5=y
1167# CONFIG_RPCSEC_GSS_SPKM3 is not set 1241# CONFIG_RPCSEC_GSS_SPKM3 is not set
1168CONFIG_SMB_FS=m 1242CONFIG_SMB_FS=m
@@ -1183,6 +1257,7 @@ CONFIG_CIFS_POSIX=y
1183# Partition Types 1257# Partition Types
1184# 1258#
1185# CONFIG_PARTITION_ADVANCED is not set 1259# CONFIG_PARTITION_ADVANCED is not set
1260CONFIG_MAC_PARTITION=y
1186CONFIG_MSDOS_PARTITION=y 1261CONFIG_MSDOS_PARTITION=y
1187CONFIG_NLS=m 1262CONFIG_NLS=m
1188CONFIG_NLS_DEFAULT="iso8859-1" 1263CONFIG_NLS_DEFAULT="iso8859-1"
@@ -1233,6 +1308,7 @@ CONFIG_BITREVERSE=y
1233# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1308# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1234CONFIG_CRC_CCITT=m 1309CONFIG_CRC_CCITT=m
1235# CONFIG_CRC16 is not set 1310# CONFIG_CRC16 is not set
1311# CONFIG_CRC_T10DIF is not set
1236# CONFIG_CRC_ITU_T is not set 1312# CONFIG_CRC_ITU_T is not set
1237CONFIG_CRC32=y 1313CONFIG_CRC32=y
1238# CONFIG_CRC7 is not set 1314# CONFIG_CRC7 is not set
@@ -1259,6 +1335,8 @@ CONFIG_DEBUG_FS=y
1259CONFIG_DEBUG_KERNEL=y 1335CONFIG_DEBUG_KERNEL=y
1260# CONFIG_DEBUG_SHIRQ is not set 1336# CONFIG_DEBUG_SHIRQ is not set
1261CONFIG_DETECT_SOFTLOCKUP=y 1337CONFIG_DETECT_SOFTLOCKUP=y
1338# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1339CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1262CONFIG_SCHED_DEBUG=y 1340CONFIG_SCHED_DEBUG=y
1263# CONFIG_SCHEDSTATS is not set 1341# CONFIG_SCHEDSTATS is not set
1264# CONFIG_TIMER_STATS is not set 1342# CONFIG_TIMER_STATS is not set
@@ -1275,21 +1353,34 @@ CONFIG_SCHED_DEBUG=y
1275CONFIG_DEBUG_INFO=y 1353CONFIG_DEBUG_INFO=y
1276# CONFIG_DEBUG_VM is not set 1354# CONFIG_DEBUG_VM is not set
1277# CONFIG_DEBUG_WRITECOUNT is not set 1355# CONFIG_DEBUG_WRITECOUNT is not set
1356# CONFIG_DEBUG_MEMORY_INIT is not set
1278# CONFIG_DEBUG_LIST is not set 1357# CONFIG_DEBUG_LIST is not set
1279# CONFIG_DEBUG_SG is not set 1358# CONFIG_DEBUG_SG is not set
1280# CONFIG_BOOT_PRINTK_DELAY is not set 1359# CONFIG_BOOT_PRINTK_DELAY is not set
1281# CONFIG_RCU_TORTURE_TEST is not set 1360# CONFIG_RCU_TORTURE_TEST is not set
1282# CONFIG_BACKTRACE_SELF_TEST is not set 1361# CONFIG_BACKTRACE_SELF_TEST is not set
1283# CONFIG_FAULT_INJECTION is not set 1362# CONFIG_FAULT_INJECTION is not set
1363# CONFIG_LATENCYTOP is not set
1364CONFIG_SYSCTL_SYSCALL_CHECK=y
1365CONFIG_HAVE_FTRACE=y
1366CONFIG_HAVE_DYNAMIC_FTRACE=y
1367# CONFIG_FTRACE is not set
1368# CONFIG_PREEMPT_TRACER is not set
1369# CONFIG_SCHED_TRACER is not set
1370# CONFIG_CONTEXT_SWITCH_TRACER is not set
1284# CONFIG_SAMPLES is not set 1371# CONFIG_SAMPLES is not set
1372CONFIG_HAVE_ARCH_KGDB=y
1373# CONFIG_KGDB is not set
1285# CONFIG_DEBUG_STACKOVERFLOW is not set 1374# CONFIG_DEBUG_STACKOVERFLOW is not set
1286# CONFIG_DEBUG_STACK_USAGE is not set 1375# CONFIG_DEBUG_STACK_USAGE is not set
1287# CONFIG_DEBUG_PAGEALLOC is not set 1376# CONFIG_DEBUG_PAGEALLOC is not set
1288CONFIG_DEBUGGER=y 1377# CONFIG_CODE_PATCHING_SELFTEST is not set
1378# CONFIG_FTR_FIXUP_SELFTEST is not set
1289# CONFIG_XMON is not set 1379# CONFIG_XMON is not set
1290# CONFIG_IRQSTACKS is not set 1380# CONFIG_IRQSTACKS is not set
1291# CONFIG_VIRQ_DEBUG is not set 1381# CONFIG_VIRQ_DEBUG is not set
1292# CONFIG_BDI_SWITCH is not set 1382# CONFIG_BDI_SWITCH is not set
1383# CONFIG_BOOTX_TEXT is not set
1293# CONFIG_PPC_EARLY_DEBUG is not set 1384# CONFIG_PPC_EARLY_DEBUG is not set
1294 1385
1295# 1386#
@@ -1299,7 +1390,6 @@ CONFIG_DEBUGGER=y
1299CONFIG_SECURITY=y 1390CONFIG_SECURITY=y
1300CONFIG_SECURITY_NETWORK=y 1391CONFIG_SECURITY_NETWORK=y
1301# CONFIG_SECURITY_NETWORK_XFRM is not set 1392# CONFIG_SECURITY_NETWORK_XFRM is not set
1302CONFIG_SECURITY_CAPABILITIES=y
1303# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1393# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1304CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1394CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1305CONFIG_CRYPTO=y 1395CONFIG_CRYPTO=y
@@ -1349,6 +1439,10 @@ CONFIG_CRYPTO_CRC32C=m
1349CONFIG_CRYPTO_MD4=m 1439CONFIG_CRYPTO_MD4=m
1350CONFIG_CRYPTO_MD5=y 1440CONFIG_CRYPTO_MD5=y
1351CONFIG_CRYPTO_MICHAEL_MIC=m 1441CONFIG_CRYPTO_MICHAEL_MIC=m
1442# CONFIG_CRYPTO_RMD128 is not set
1443# CONFIG_CRYPTO_RMD160 is not set
1444# CONFIG_CRYPTO_RMD256 is not set
1445# CONFIG_CRYPTO_RMD320 is not set
1352CONFIG_CRYPTO_SHA1=m 1446CONFIG_CRYPTO_SHA1=m
1353CONFIG_CRYPTO_SHA256=m 1447CONFIG_CRYPTO_SHA256=m
1354CONFIG_CRYPTO_SHA512=m 1448CONFIG_CRYPTO_SHA512=m
@@ -1382,5 +1476,6 @@ CONFIG_CRYPTO_DEFLATE=m
1382# CONFIG_CRYPTO_LZO is not set 1476# CONFIG_CRYPTO_LZO is not set
1383CONFIG_CRYPTO_HW=y 1477CONFIG_CRYPTO_HW=y
1384# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1478# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1479# CONFIG_CRYPTO_DEV_TALITOS is not set
1385# CONFIG_PPC_CLOCK is not set 1480# CONFIG_PPC_CLOCK is not set
1386# CONFIG_VIRTUALIZATION is not set 1481# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index 88f6aa8273b..4340cc1c5b6 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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:20 2008 4# Thu Aug 21 00:52:16 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -87,7 +88,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
87CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_SYSCTL_SYSCALL_CHECK=y
91# CONFIG_KALLSYMS is not set 91# CONFIG_KALLSYMS is not set
92CONFIG_HOTPLUG=y 92CONFIG_HOTPLUG=y
93CONFIG_PRINTK=y 93CONFIG_PRINTK=y
@@ -110,10 +110,16 @@ CONFIG_SLUB=y
110# CONFIG_PROFILING is not set 110# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set 111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y
115# CONFIG_HAVE_DMA_ATTRS is not set 118# CONFIG_HAVE_DMA_ATTRS is not set
119# CONFIG_USE_GENERIC_SMP_HELPERS is not set
120# CONFIG_HAVE_CLK is not set
116CONFIG_PROC_PAGE_MONITOR=y 121CONFIG_PROC_PAGE_MONITOR=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
117CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
119# CONFIG_TINY_SHMEM is not set 125# CONFIG_TINY_SHMEM is not set
@@ -130,6 +136,7 @@ CONFIG_LBD=y
130# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_LSF is not set 137# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set
133 140
134# 141#
135# IO Schedulers 142# IO Schedulers
@@ -149,25 +156,25 @@ CONFIG_CLASSIC_RCU=y
149# Platform support 156# Platform support
150# 157#
151CONFIG_PPC_MULTIPLATFORM=y 158CONFIG_PPC_MULTIPLATFORM=y
152# CONFIG_PPC_82xx is not set
153# CONFIG_PPC_83xx is not set
154# CONFIG_PPC_86xx is not set
155CONFIG_CLASSIC32=y 159CONFIG_CLASSIC32=y
156# CONFIG_PPC_CHRP is not set 160# CONFIG_PPC_CHRP is not set
157# CONFIG_PPC_MPC512x is not set
158# CONFIG_PPC_MPC5121 is not set
159# CONFIG_MPC5121_ADS is not set 161# CONFIG_MPC5121_ADS is not set
162# CONFIG_MPC5121_GENERIC is not set
160# CONFIG_PPC_MPC52xx is not set 163# CONFIG_PPC_MPC52xx is not set
161# CONFIG_PPC_PMAC is not set 164# CONFIG_PPC_PMAC is not set
162# CONFIG_PPC_CELL is not set 165# CONFIG_PPC_CELL is not set
163# CONFIG_PPC_CELL_NATIVE is not set 166# CONFIG_PPC_CELL_NATIVE is not set
167# CONFIG_PPC_82xx is not set
164# CONFIG_PQ2ADS is not set 168# CONFIG_PQ2ADS is not set
169# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set
165CONFIG_EMBEDDED6xx=y 171CONFIG_EMBEDDED6xx=y
166# CONFIG_LINKSTATION is not set 172# CONFIG_LINKSTATION is not set
167CONFIG_STORCENTER=y 173CONFIG_STORCENTER=y
168# CONFIG_MPC7448HPC2 is not set 174# CONFIG_MPC7448HPC2 is not set
169# CONFIG_PPC_HOLLY is not set 175# CONFIG_PPC_HOLLY is not set
170# CONFIG_PPC_PRPMC2800 is not set 176# CONFIG_PPC_PRPMC2800 is not set
177# CONFIG_PPC_C2K is not set
171CONFIG_MPC10X_BRIDGE=y 178CONFIG_MPC10X_BRIDGE=y
172CONFIG_MPC10X_OPENPIC=y 179CONFIG_MPC10X_OPENPIC=y
173# CONFIG_MPC10X_STORE_GATHERING is not set 180# CONFIG_MPC10X_STORE_GATHERING is not set
@@ -221,6 +228,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 228# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y 229CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 230CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y
224# CONFIG_RESOURCES_64BIT is not set 232# CONFIG_RESOURCES_64BIT is not set
225CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
226CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
@@ -229,6 +237,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 237CONFIG_PROC_DEVICETREE=y
230CONFIG_CMDLINE_BOOL=y 238CONFIG_CMDLINE_BOOL=y
231CONFIG_CMDLINE="console=ttyS0,115200" 239CONFIG_CMDLINE="console=ttyS0,115200"
240CONFIG_EXTRA_TARGETS=""
232# CONFIG_PM is not set 241# CONFIG_PM is not set
233# CONFIG_SECCOMP is not set 242# CONFIG_SECCOMP is not set
234CONFIG_ISA_DMA_API=y 243CONFIG_ISA_DMA_API=y
@@ -264,10 +273,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
264CONFIG_KERNEL_START=0xc0000000 273CONFIG_KERNEL_START=0xc0000000
265CONFIG_PHYSICAL_START=0x00000000 274CONFIG_PHYSICAL_START=0x00000000
266CONFIG_TASK_SIZE=0xc0000000 275CONFIG_TASK_SIZE=0xc0000000
267
268#
269# Networking
270#
271CONFIG_NET=y 276CONFIG_NET=y
272 277
273# 278#
@@ -456,20 +461,22 @@ CONFIG_BLK_DEV=y
456# CONFIG_BLK_DEV_RAM is not set 461# CONFIG_BLK_DEV_RAM is not set
457# CONFIG_CDROM_PKTCDVD is not set 462# CONFIG_CDROM_PKTCDVD is not set
458# CONFIG_ATA_OVER_ETH is not set 463# CONFIG_ATA_OVER_ETH is not set
464# CONFIG_BLK_DEV_HD is not set
459CONFIG_MISC_DEVICES=y 465CONFIG_MISC_DEVICES=y
460# CONFIG_PHANTOM is not set 466# CONFIG_PHANTOM is not set
461# CONFIG_EEPROM_93CX6 is not set 467# CONFIG_EEPROM_93CX6 is not set
462# CONFIG_SGI_IOC4 is not set 468# CONFIG_SGI_IOC4 is not set
463# CONFIG_TIFM_CORE is not set 469# CONFIG_TIFM_CORE is not set
464# CONFIG_ENCLOSURE_SERVICES is not set 470# CONFIG_ENCLOSURE_SERVICES is not set
471# CONFIG_HP_ILO is not set
465CONFIG_HAVE_IDE=y 472CONFIG_HAVE_IDE=y
466CONFIG_IDE=y 473CONFIG_IDE=y
467CONFIG_IDE_MAX_HWIFS=4
468CONFIG_BLK_DEV_IDE=y 474CONFIG_BLK_DEV_IDE=y
469 475
470# 476#
471# Please see Documentation/ide/ide.txt for help/info on IDE drives 477# Please see Documentation/ide/ide.txt for help/info on IDE drives
472# 478#
479CONFIG_IDE_TIMINGS=y
473# CONFIG_BLK_DEV_IDE_SATA is not set 480# CONFIG_BLK_DEV_IDE_SATA is not set
474CONFIG_BLK_DEV_IDEDISK=y 481CONFIG_BLK_DEV_IDEDISK=y
475CONFIG_IDEDISK_MULTI_MODE=y 482CONFIG_IDEDISK_MULTI_MODE=y
@@ -483,7 +490,6 @@ CONFIG_IDE_PROC_FS=y
483# 490#
484# IDE chipset support/bugfixes 491# IDE chipset support/bugfixes
485# 492#
486CONFIG_IDE_GENERIC=y
487# CONFIG_BLK_DEV_PLATFORM is not set 493# CONFIG_BLK_DEV_PLATFORM is not set
488CONFIG_BLK_DEV_IDEDMA_SFF=y 494CONFIG_BLK_DEV_IDEDMA_SFF=y
489 495
@@ -500,10 +506,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
500# CONFIG_BLK_DEV_AMD74XX is not set 506# CONFIG_BLK_DEV_AMD74XX is not set
501# CONFIG_BLK_DEV_CMD64X is not set 507# CONFIG_BLK_DEV_CMD64X is not set
502# CONFIG_BLK_DEV_TRIFLEX is not set 508# CONFIG_BLK_DEV_TRIFLEX is not set
503# CONFIG_BLK_DEV_CY82C693 is not set
504# CONFIG_BLK_DEV_CS5520 is not set 509# CONFIG_BLK_DEV_CS5520 is not set
505# CONFIG_BLK_DEV_CS5530 is not set 510# CONFIG_BLK_DEV_CS5530 is not set
506# CONFIG_BLK_DEV_HPT34X is not set
507# CONFIG_BLK_DEV_HPT366 is not set 511# CONFIG_BLK_DEV_HPT366 is not set
508# CONFIG_BLK_DEV_JMICRON is not set 512# CONFIG_BLK_DEV_JMICRON is not set
509# CONFIG_BLK_DEV_SC1200 is not set 513# CONFIG_BLK_DEV_SC1200 is not set
@@ -521,8 +525,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
521CONFIG_BLK_DEV_VIA82CXXX=y 525CONFIG_BLK_DEV_VIA82CXXX=y
522# CONFIG_BLK_DEV_TC86C001 is not set 526# CONFIG_BLK_DEV_TC86C001 is not set
523CONFIG_BLK_DEV_IDEDMA=y 527CONFIG_BLK_DEV_IDEDMA=y
524# CONFIG_BLK_DEV_HD_ONLY is not set
525# CONFIG_BLK_DEV_HD is not set
526 528
527# 529#
528# SCSI device support 530# SCSI device support
@@ -599,6 +601,7 @@ CONFIG_SCSI_LOWLEVEL=y
599# CONFIG_SCSI_NSP32 is not set 601# CONFIG_SCSI_NSP32 is not set
600# CONFIG_SCSI_DEBUG is not set 602# CONFIG_SCSI_DEBUG is not set
601# CONFIG_SCSI_SRP is not set 603# CONFIG_SCSI_SRP is not set
604# CONFIG_SCSI_DH is not set
602# CONFIG_ATA is not set 605# CONFIG_ATA is not set
603CONFIG_MD=y 606CONFIG_MD=y
604CONFIG_BLK_DEV_MD=y 607CONFIG_BLK_DEV_MD=y
@@ -616,12 +619,15 @@ CONFIG_MD_RAID5_RESHAPE=y
616# 619#
617# IEEE 1394 (FireWire) support 620# IEEE 1394 (FireWire) support
618# 621#
622
623#
624# Enable only one of the two stacks, unless you know what you are doing
625#
619# CONFIG_FIREWIRE is not set 626# CONFIG_FIREWIRE is not set
620# CONFIG_IEEE1394 is not set 627# CONFIG_IEEE1394 is not set
621# CONFIG_I2O is not set 628# CONFIG_I2O is not set
622# CONFIG_MACINTOSH_DRIVERS is not set 629# CONFIG_MACINTOSH_DRIVERS is not set
623CONFIG_NETDEVICES=y 630CONFIG_NETDEVICES=y
624# CONFIG_NETDEVICES_MULTIQUEUE is not set
625CONFIG_DUMMY=m 631CONFIG_DUMMY=m
626# CONFIG_BONDING is not set 632# CONFIG_BONDING is not set
627# CONFIG_MACVLAN is not set 633# CONFIG_MACVLAN is not set
@@ -635,14 +641,12 @@ CONFIG_NETDEV_1000=y
635# CONFIG_DL2K is not set 641# CONFIG_DL2K is not set
636# CONFIG_E1000 is not set 642# CONFIG_E1000 is not set
637# CONFIG_E1000E is not set 643# CONFIG_E1000E is not set
638# CONFIG_E1000E_ENABLED is not set
639# CONFIG_IP1000 is not set 644# CONFIG_IP1000 is not set
640# CONFIG_IGB is not set 645# CONFIG_IGB is not set
641# CONFIG_NS83820 is not set 646# CONFIG_NS83820 is not set
642# CONFIG_HAMACHI is not set 647# CONFIG_HAMACHI is not set
643# CONFIG_YELLOWFIN is not set 648# CONFIG_YELLOWFIN is not set
644CONFIG_R8169=y 649CONFIG_R8169=y
645# CONFIG_R8169_NAPI is not set
646# CONFIG_SIS190 is not set 650# CONFIG_SIS190 is not set
647# CONFIG_SKGE is not set 651# CONFIG_SKGE is not set
648# CONFIG_SKY2 is not set 652# CONFIG_SKY2 is not set
@@ -653,6 +657,7 @@ CONFIG_R8169=y
653# CONFIG_MV643XX_ETH is not set 657# CONFIG_MV643XX_ETH is not set
654# CONFIG_QLA3XXX is not set 658# CONFIG_QLA3XXX is not set
655# CONFIG_ATL1 is not set 659# CONFIG_ATL1 is not set
660# CONFIG_ATL1E is not set
656# CONFIG_NETDEV_10000 is not set 661# CONFIG_NETDEV_10000 is not set
657# CONFIG_TR is not set 662# CONFIG_TR is not set
658 663
@@ -734,43 +739,64 @@ CONFIG_DEVPORT=y
734CONFIG_I2C=y 739CONFIG_I2C=y
735CONFIG_I2C_BOARDINFO=y 740CONFIG_I2C_BOARDINFO=y
736CONFIG_I2C_CHARDEV=y 741CONFIG_I2C_CHARDEV=y
742CONFIG_I2C_HELPER_AUTO=y
737 743
738# 744#
739# I2C Hardware Bus support 745# I2C Hardware Bus support
740# 746#
747
748#
749# PC SMBus host controller drivers
750#
741# CONFIG_I2C_ALI1535 is not set 751# CONFIG_I2C_ALI1535 is not set
742# CONFIG_I2C_ALI1563 is not set 752# CONFIG_I2C_ALI1563 is not set
743# CONFIG_I2C_ALI15X3 is not set 753# CONFIG_I2C_ALI15X3 is not set
744# CONFIG_I2C_AMD756 is not set 754# CONFIG_I2C_AMD756 is not set
745# CONFIG_I2C_AMD8111 is not set 755# CONFIG_I2C_AMD8111 is not set
746# CONFIG_I2C_I801 is not set 756# CONFIG_I2C_I801 is not set
747# CONFIG_I2C_I810 is not set 757# CONFIG_I2C_ISCH is not set
748# CONFIG_I2C_PIIX4 is not set 758# CONFIG_I2C_PIIX4 is not set
749CONFIG_I2C_MPC=y
750# CONFIG_I2C_NFORCE2 is not set 759# 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 760# CONFIG_I2C_SIS5595 is not set
757# CONFIG_I2C_SIS630 is not set 761# CONFIG_I2C_SIS630 is not set
758# CONFIG_I2C_SIS96X is not set 762# 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 763# CONFIG_I2C_VIA is not set
763# CONFIG_I2C_VIAPRO is not set 764# CONFIG_I2C_VIAPRO is not set
765
766#
767# I2C system bus drivers (mostly embedded / system-on-chip)
768#
769CONFIG_I2C_MPC=y
770# CONFIG_I2C_OCORES is not set
771# CONFIG_I2C_SIMTEC is not set
772
773#
774# External I2C/SMBus adapter drivers
775#
776# CONFIG_I2C_PARPORT_LIGHT is not set
777# CONFIG_I2C_TAOS_EVM is not set
778# CONFIG_I2C_TINY_USB is not set
779
780#
781# Graphics adapter I2C/DDC channel drivers
782#
764# CONFIG_I2C_VOODOO3 is not set 783# CONFIG_I2C_VOODOO3 is not set
784
785#
786# Other I2C/SMBus bus drivers
787#
765# CONFIG_I2C_PCA_PLATFORM is not set 788# CONFIG_I2C_PCA_PLATFORM is not set
789# CONFIG_I2C_STUB is not set
766 790
767# 791#
768# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
769# 793#
770# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
795# CONFIG_AT24 is not set
771# CONFIG_SENSORS_EEPROM is not set 796# CONFIG_SENSORS_EEPROM is not set
772# CONFIG_SENSORS_PCF8574 is not set 797# CONFIG_SENSORS_PCF8574 is not set
773# CONFIG_PCF8575 is not set 798# CONFIG_PCF8575 is not set
799# CONFIG_SENSORS_PCA9539 is not set
774# CONFIG_SENSORS_PCF8591 is not set 800# CONFIG_SENSORS_PCF8591 is not set
775# CONFIG_SENSORS_MAX6875 is not set 801# CONFIG_SENSORS_MAX6875 is not set
776# CONFIG_SENSORS_TSL2550 is not set 802# CONFIG_SENSORS_TSL2550 is not set
@@ -779,10 +805,13 @@ CONFIG_I2C_MPC=y
779# CONFIG_I2C_DEBUG_BUS is not set 805# CONFIG_I2C_DEBUG_BUS is not set
780# CONFIG_I2C_DEBUG_CHIP is not set 806# CONFIG_I2C_DEBUG_CHIP is not set
781# CONFIG_SPI is not set 807# CONFIG_SPI is not set
808CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
809# CONFIG_GPIOLIB is not set
782# CONFIG_W1 is not set 810# CONFIG_W1 is not set
783# CONFIG_POWER_SUPPLY is not set 811# CONFIG_POWER_SUPPLY is not set
784# CONFIG_HWMON is not set 812# CONFIG_HWMON is not set
785# CONFIG_THERMAL is not set 813# CONFIG_THERMAL is not set
814# CONFIG_THERMAL_HWMON is not set
786# CONFIG_WATCHDOG is not set 815# CONFIG_WATCHDOG is not set
787 816
788# 817#
@@ -794,8 +823,10 @@ CONFIG_SSB_POSSIBLE=y
794# 823#
795# Multifunction device drivers 824# Multifunction device drivers
796# 825#
826# CONFIG_MFD_CORE is not set
797# CONFIG_MFD_SM501 is not set 827# CONFIG_MFD_SM501 is not set
798# CONFIG_HTC_PASIC3 is not set 828# CONFIG_HTC_PASIC3 is not set
829# CONFIG_MFD_TMIO is not set
799 830
800# 831#
801# Multimedia devices 832# Multimedia devices
@@ -827,10 +858,6 @@ CONFIG_SSB_POSSIBLE=y
827# Display device support 858# Display device support
828# 859#
829# CONFIG_DISPLAY_SUPPORT is not set 860# CONFIG_DISPLAY_SUPPORT is not set
830
831#
832# Sound
833#
834# CONFIG_SOUND is not set 861# CONFIG_SOUND is not set
835CONFIG_USB_SUPPORT=y 862CONFIG_USB_SUPPORT=y
836CONFIG_USB_ARCH_HAS_HCD=y 863CONFIG_USB_ARCH_HAS_HCD=y
@@ -849,6 +876,7 @@ CONFIG_USB_DEVICE_CLASS=y
849# CONFIG_USB_OTG is not set 876# CONFIG_USB_OTG is not set
850# CONFIG_USB_OTG_WHITELIST is not set 877# CONFIG_USB_OTG_WHITELIST is not set
851# CONFIG_USB_OTG_BLACKLIST_HUB is not set 878# CONFIG_USB_OTG_BLACKLIST_HUB is not set
879# CONFIG_USB_MON is not set
852 880
853# 881#
854# USB Host Controller Drivers 882# USB Host Controller Drivers
@@ -896,6 +924,7 @@ CONFIG_USB_STORAGE=y
896# CONFIG_USB_STORAGE_JUMPSHOT is not set 924# CONFIG_USB_STORAGE_JUMPSHOT is not set
897# CONFIG_USB_STORAGE_ALAUDA is not set 925# CONFIG_USB_STORAGE_ALAUDA is not set
898# CONFIG_USB_STORAGE_KARMA is not set 926# CONFIG_USB_STORAGE_KARMA is not set
927# CONFIG_USB_STORAGE_SIERRA is not set
899# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 928# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
900# CONFIG_USB_LIBUSUAL is not set 929# CONFIG_USB_LIBUSUAL is not set
901 930
@@ -904,7 +933,6 @@ CONFIG_USB_STORAGE=y
904# 933#
905# CONFIG_USB_MDC800 is not set 934# CONFIG_USB_MDC800 is not set
906# CONFIG_USB_MICROTEK is not set 935# CONFIG_USB_MICROTEK is not set
907# CONFIG_USB_MON is not set
908 936
909# 937#
910# USB port drivers 938# USB port drivers
@@ -917,7 +945,6 @@ CONFIG_USB_STORAGE=y
917# CONFIG_USB_EMI62 is not set 945# CONFIG_USB_EMI62 is not set
918# CONFIG_USB_EMI26 is not set 946# CONFIG_USB_EMI26 is not set
919# CONFIG_USB_ADUTUX is not set 947# CONFIG_USB_ADUTUX is not set
920# CONFIG_USB_AUERSWALD is not set
921# CONFIG_USB_RIO500 is not set 948# CONFIG_USB_RIO500 is not set
922# CONFIG_USB_LEGOTOWER is not set 949# CONFIG_USB_LEGOTOWER is not set
923# CONFIG_USB_LCD is not set 950# CONFIG_USB_LCD is not set
@@ -971,6 +998,7 @@ CONFIG_RTC_DRV_DS1307=y
971# CONFIG_RTC_DRV_PCF8583 is not set 998# CONFIG_RTC_DRV_PCF8583 is not set
972# CONFIG_RTC_DRV_M41T80 is not set 999# CONFIG_RTC_DRV_M41T80 is not set
973# CONFIG_RTC_DRV_S35390A is not set 1000# CONFIG_RTC_DRV_S35390A is not set
1001# CONFIG_RTC_DRV_FM3130 is not set
974 1002
975# 1003#
976# SPI RTC drivers 1004# SPI RTC drivers
@@ -1074,6 +1102,7 @@ CONFIG_JFFS2_RTIME=y
1074# CONFIG_CRAMFS is not set 1102# CONFIG_CRAMFS is not set
1075# CONFIG_VXFS_FS is not set 1103# CONFIG_VXFS_FS is not set
1076# CONFIG_MINIX_FS is not set 1104# CONFIG_MINIX_FS is not set
1105# CONFIG_OMFS_FS is not set
1077# CONFIG_HPFS_FS is not set 1106# CONFIG_HPFS_FS is not set
1078# CONFIG_QNX4FS_FS is not set 1107# CONFIG_QNX4FS_FS is not set
1079# CONFIG_ROMFS_FS is not set 1108# CONFIG_ROMFS_FS is not set
@@ -1151,6 +1180,7 @@ CONFIG_BITREVERSE=y
1151# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1180# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1152# CONFIG_CRC_CCITT is not set 1181# CONFIG_CRC_CCITT is not set
1153# CONFIG_CRC16 is not set 1182# CONFIG_CRC16 is not set
1183CONFIG_CRC_T10DIF=y
1154# CONFIG_CRC_ITU_T is not set 1184# CONFIG_CRC_ITU_T is not set
1155CONFIG_CRC32=y 1185CONFIG_CRC32=y
1156# CONFIG_CRC7 is not set 1186# CONFIG_CRC7 is not set
@@ -1178,7 +1208,16 @@ CONFIG_FRAME_WARN=1024
1178# CONFIG_SLUB_DEBUG_ON is not set 1208# CONFIG_SLUB_DEBUG_ON is not set
1179# CONFIG_SLUB_STATS is not set 1209# CONFIG_SLUB_STATS is not set
1180# CONFIG_DEBUG_BUGVERBOSE is not set 1210# CONFIG_DEBUG_BUGVERBOSE is not set
1211# CONFIG_DEBUG_MEMORY_INIT is not set
1212# CONFIG_LATENCYTOP is not set
1213CONFIG_SYSCTL_SYSCALL_CHECK=y
1214CONFIG_HAVE_FTRACE=y
1215CONFIG_HAVE_DYNAMIC_FTRACE=y
1216# CONFIG_FTRACE is not set
1217# CONFIG_SCHED_TRACER is not set
1218# CONFIG_CONTEXT_SWITCH_TRACER is not set
1181# CONFIG_SAMPLES is not set 1219# CONFIG_SAMPLES is not set
1220CONFIG_HAVE_ARCH_KGDB=y
1182# CONFIG_IRQSTACKS is not set 1221# CONFIG_IRQSTACKS is not set
1183# CONFIG_BOOTX_TEXT is not set 1222# CONFIG_BOOTX_TEXT is not set
1184# CONFIG_PPC_EARLY_DEBUG is not set 1223# CONFIG_PPC_EARLY_DEBUG is not set
diff --git a/arch/powerpc/include/asm/cpm2.h b/arch/powerpc/include/asm/cpm2.h
index 2a6fa0183ac..0f5e8ff59a8 100644
--- a/arch/powerpc/include/asm/cpm2.h
+++ b/arch/powerpc/include/asm/cpm2.h
@@ -337,6 +337,11 @@ typedef struct scc_param {
337 uint scc_tcrc; /* Internal */ 337 uint scc_tcrc; /* Internal */
338} sccp_t; 338} sccp_t;
339 339
340/* Function code bits.
341*/
342#define SCC_EB ((u_char) 0x10) /* Set big endian byte order */
343#define SCC_GBL ((u_char) 0x20) /* Snooping enabled */
344
340/* CPM Ethernet through SCC1. 345/* CPM Ethernet through SCC1.
341 */ 346 */
342typedef struct scc_enet { 347typedef struct scc_enet {
diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
index 80d1f399ee5..64c6ee22eef 100644
--- a/arch/powerpc/include/asm/elf.h
+++ b/arch/powerpc/include/asm/elf.h
@@ -409,6 +409,13 @@ do { \
409/* Keep this the last entry. */ 409/* Keep this the last entry. */
410#define R_PPC64_NUM 107 410#define R_PPC64_NUM 107
411 411
412/* There's actually a third entry here, but it's unused */
413struct ppc64_opd_entry
414{
415 unsigned long funcaddr;
416 unsigned long r2;
417};
418
412#ifdef __KERNEL__ 419#ifdef __KERNEL__
413 420
414#ifdef CONFIG_SPU_BASE 421#ifdef CONFIG_SPU_BASE
diff --git a/arch/powerpc/include/asm/pgtable-ppc64.h b/arch/powerpc/include/asm/pgtable-ppc64.h
index db0b8f3b880..4597c491e9b 100644
--- a/arch/powerpc/include/asm/pgtable-ppc64.h
+++ b/arch/powerpc/include/asm/pgtable-ppc64.h
@@ -153,12 +153,10 @@
153#define __S110 PAGE_SHARED_X 153#define __S110 PAGE_SHARED_X
154#define __S111 PAGE_SHARED_X 154#define __S111 PAGE_SHARED_X
155 155
156#ifdef CONFIG_HUGETLB_PAGE 156#ifdef CONFIG_PPC_MM_SLICES
157
158#define HAVE_ARCH_UNMAPPED_AREA 157#define HAVE_ARCH_UNMAPPED_AREA
159#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN 158#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
160 159#endif /* CONFIG_PPC_MM_SLICES */
161#endif
162 160
163#ifndef __ASSEMBLY__ 161#ifndef __ASSEMBLY__
164 162
diff --git a/arch/powerpc/include/asm/sections.h b/arch/powerpc/include/asm/sections.h
index 916018e425c..07956f3e784 100644
--- a/arch/powerpc/include/asm/sections.h
+++ b/arch/powerpc/include/asm/sections.h
@@ -2,6 +2,8 @@
2#define _ASM_POWERPC_SECTIONS_H 2#define _ASM_POWERPC_SECTIONS_H
3#ifdef __KERNEL__ 3#ifdef __KERNEL__
4 4
5#include <linux/elf.h>
6#include <linux/uaccess.h>
5#include <asm-generic/sections.h> 7#include <asm-generic/sections.h>
6 8
7#ifdef __powerpc64__ 9#ifdef __powerpc64__
@@ -16,6 +18,17 @@ static inline int in_kernel_text(unsigned long addr)
16 return 0; 18 return 0;
17} 19}
18 20
21#undef dereference_function_descriptor
22static inline void *dereference_function_descriptor(void *ptr)
23{
24 struct ppc64_opd_entry *desc = ptr;
25 void *p;
26
27 if (!probe_kernel_address(&desc->funcaddr, p))
28 ptr = p;
29 return ptr;
30}
31
19#endif 32#endif
20 33
21#endif /* __KERNEL__ */ 34#endif /* __KERNEL__ */
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index 64f5948ebc9..946daea780f 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -14,12 +14,13 @@ endif
14 14
15ifdef CONFIG_FTRACE 15ifdef CONFIG_FTRACE
16# Do not trace early boot code 16# Do not trace early boot code
17CFLAGS_REMOVE_cputable.o = -pg 17CFLAGS_REMOVE_cputable.o = -pg -mno-sched-epilog
18CFLAGS_REMOVE_prom_init.o = -pg 18CFLAGS_REMOVE_prom_init.o = -pg -mno-sched-epilog
19CFLAGS_REMOVE_btext.o = -pg -mno-sched-epilog
19 20
20ifdef CONFIG_DYNAMIC_FTRACE 21ifdef CONFIG_DYNAMIC_FTRACE
21# dynamic ftrace setup. 22# dynamic ftrace setup.
22CFLAGS_REMOVE_ftrace.o = -pg 23CFLAGS_REMOVE_ftrace.o = -pg -mno-sched-epilog
23endif 24endif
24 25
25endif 26endif
diff --git a/arch/powerpc/kernel/align.c b/arch/powerpc/kernel/align.c
index 367129789cc..5af4e9b2dbe 100644
--- a/arch/powerpc/kernel/align.c
+++ b/arch/powerpc/kernel/align.c
@@ -647,7 +647,7 @@ static int emulate_vsx(unsigned char __user *addr, unsigned int reg,
647 unsigned int flags, unsigned int length) 647 unsigned int flags, unsigned int length)
648{ 648{
649 char *ptr = (char *) &current->thread.TS_FPR(reg); 649 char *ptr = (char *) &current->thread.TS_FPR(reg);
650 int ret; 650 int ret = 0;
651 651
652 flush_vsx_to_thread(current); 652 flush_vsx_to_thread(current);
653 653
diff --git a/arch/powerpc/kernel/idle.c b/arch/powerpc/kernel/idle.c
index d308a9f70f1..31982d05d81 100644
--- a/arch/powerpc/kernel/idle.c
+++ b/arch/powerpc/kernel/idle.c
@@ -34,11 +34,7 @@
34#include <asm/smp.h> 34#include <asm/smp.h>
35 35
36#ifdef CONFIG_HOTPLUG_CPU 36#ifdef CONFIG_HOTPLUG_CPU
37/* this is used for software suspend, and that shuts down 37#define cpu_should_die() cpu_is_offline(smp_processor_id())
38 * CPUs even while the system is still booting... */
39#define cpu_should_die() (cpu_is_offline(smp_processor_id()) && \
40 (system_state == SYSTEM_RUNNING \
41 || system_state == SYSTEM_BOOTING))
42#else 38#else
43#define cpu_should_die() 0 39#define cpu_should_die() 0
44#endif 40#endif
diff --git a/arch/powerpc/kernel/idle_6xx.S b/arch/powerpc/kernel/idle_6xx.S
index 019b02d8844..15c611de1ee 100644
--- a/arch/powerpc/kernel/idle_6xx.S
+++ b/arch/powerpc/kernel/idle_6xx.S
@@ -158,7 +158,7 @@ _GLOBAL(power_save_ppc32_restore)
158 stw r9,_NIP(r11) /* make it do a blr */ 158 stw r9,_NIP(r11) /* make it do a blr */
159 159
160#ifdef CONFIG_SMP 160#ifdef CONFIG_SMP
161 mfspr r12,SPRN_SPRG3 161 rlwinm r12,r11,0,0,31-THREAD_SHIFT
162 lwz r11,TI_CPU(r12) /* get cpu number * 4 */ 162 lwz r11,TI_CPU(r12) /* get cpu number * 4 */
163 slwi r11,r11,2 163 slwi r11,r11,2
164#else 164#else
diff --git a/arch/powerpc/kernel/idle_e500.S b/arch/powerpc/kernel/idle_e500.S
index 06304034b39..47a1a983ff8 100644
--- a/arch/powerpc/kernel/idle_e500.S
+++ b/arch/powerpc/kernel/idle_e500.S
@@ -84,10 +84,11 @@ _GLOBAL(power_save_ppc32_restore)
84 stw r9,_NIP(r11) /* make it do a blr */ 84 stw r9,_NIP(r11) /* make it do a blr */
85 85
86#ifdef CONFIG_SMP 86#ifdef CONFIG_SMP
87 mfspr r12,SPRN_SPRG3 87 rlwinm r12,r1,0,0,31-THREAD_SHIFT
88 lwz r11,TI_CPU(r12) /* get cpu number * 4 */ 88 lwz r11,TI_CPU(r12) /* get cpu number * 4 */
89 slwi r11,r11,2 89 slwi r11,r11,2
90#else 90#else
91 li r11,0 91 li r11,0
92#endif 92#endif
93
93 b transfer_to_handler_cont 94 b transfer_to_handler_cont
diff --git a/arch/powerpc/kernel/kgdb.c b/arch/powerpc/kernel/kgdb.c
index b4fdf2f2743..fe8f71dd0b3 100644
--- a/arch/powerpc/kernel/kgdb.c
+++ b/arch/powerpc/kernel/kgdb.c
@@ -347,9 +347,8 @@ int kgdb_arch_handle_exception(int vector, int signo, int err_code,
347 linux_regs->msr |= MSR_SE; 347 linux_regs->msr |= MSR_SE;
348#endif 348#endif
349 kgdb_single_step = 1; 349 kgdb_single_step = 1;
350 if (kgdb_contthread) 350 atomic_set(&kgdb_cpu_doing_single_step,
351 atomic_set(&kgdb_cpu_doing_single_step, 351 raw_smp_processor_id());
352 raw_smp_processor_id());
353 } 352 }
354 return 0; 353 return 0;
355 } 354 }
diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c
index ee6a2982d56..1af2377e499 100644
--- a/arch/powerpc/kernel/module_64.c
+++ b/arch/powerpc/kernel/module_64.c
@@ -22,7 +22,6 @@
22#include <linux/vmalloc.h> 22#include <linux/vmalloc.h>
23#include <linux/bug.h> 23#include <linux/bug.h>
24#include <asm/module.h> 24#include <asm/module.h>
25#include <asm/uaccess.h>
26#include <asm/firmware.h> 25#include <asm/firmware.h>
27#include <asm/code-patching.h> 26#include <asm/code-patching.h>
28#include <linux/sort.h> 27#include <linux/sort.h>
@@ -42,13 +41,6 @@
42#define DEBUGP(fmt , ...) 41#define DEBUGP(fmt , ...)
43#endif 42#endif
44 43
45/* There's actually a third entry here, but it's unused */
46struct ppc64_opd_entry
47{
48 unsigned long funcaddr;
49 unsigned long r2;
50};
51
52/* Like PPC32, we need little trampolines to do > 24-bit jumps (into 44/* Like PPC32, we need little trampolines to do > 24-bit jumps (into
53 the kernel itself). But on PPC64, these need to be used for every 45 the kernel itself). But on PPC64, these need to be used for every
54 jump, actually, to reset r2 (TOC+0x8000). */ 46 jump, actually, to reset r2 (TOC+0x8000). */
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 4a8ce62fe11..9f6c1ca1739 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -66,11 +66,12 @@ SECTIONS
66 __got2_end = .; 66 __got2_end = .;
67#endif /* CONFIG_PPC32 */ 67#endif /* CONFIG_PPC32 */
68 68
69 . = ALIGN(PAGE_SIZE);
70 _etext = .;
71 PROVIDE32 (etext = .);
72 } :kernel 69 } :kernel
73 70
71 . = ALIGN(PAGE_SIZE);
72 _etext = .;
73 PROVIDE32 (etext = .);
74
74 /* Read-only data */ 75 /* Read-only data */
75 RODATA 76 RODATA
76 77
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index 14be408dfc9..8920eea3452 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -191,12 +191,17 @@ int htab_bolt_mapping(unsigned long vstart, unsigned long vend,
191 unsigned long hash, hpteg; 191 unsigned long hash, hpteg;
192 unsigned long vsid = get_kernel_vsid(vaddr, ssize); 192 unsigned long vsid = get_kernel_vsid(vaddr, ssize);
193 unsigned long va = hpt_va(vaddr, vsid, ssize); 193 unsigned long va = hpt_va(vaddr, vsid, ssize);
194 unsigned long tprot = prot;
195
196 /* Make kernel text executable */
197 if (in_kernel_text(vaddr))
198 tprot &= ~HPTE_R_N;
194 199
195 hash = hpt_hash(va, shift, ssize); 200 hash = hpt_hash(va, shift, ssize);
196 hpteg = ((hash & htab_hash_mask) * HPTES_PER_GROUP); 201 hpteg = ((hash & htab_hash_mask) * HPTES_PER_GROUP);
197 202
198 BUG_ON(!ppc_md.hpte_insert); 203 BUG_ON(!ppc_md.hpte_insert);
199 ret = ppc_md.hpte_insert(hpteg, va, paddr, prot, 204 ret = ppc_md.hpte_insert(hpteg, va, paddr, tprot,
200 HPTE_V_BOLTED, psize, ssize); 205 HPTE_V_BOLTED, psize, ssize);
201 206
202 if (ret < 0) 207 if (ret < 0)
@@ -584,7 +589,7 @@ void __init htab_initialize(void)
584{ 589{
585 unsigned long table; 590 unsigned long table;
586 unsigned long pteg_count; 591 unsigned long pteg_count;
587 unsigned long prot, tprot; 592 unsigned long prot;
588 unsigned long base = 0, size = 0, limit; 593 unsigned long base = 0, size = 0, limit;
589 int i; 594 int i;
590 595
@@ -660,10 +665,9 @@ void __init htab_initialize(void)
660 for (i=0; i < lmb.memory.cnt; i++) { 665 for (i=0; i < lmb.memory.cnt; i++) {
661 base = (unsigned long)__va(lmb.memory.region[i].base); 666 base = (unsigned long)__va(lmb.memory.region[i].base);
662 size = lmb.memory.region[i].size; 667 size = lmb.memory.region[i].size;
663 tprot = prot | (in_kernel_text(base) ? _PAGE_EXEC : 0);
664 668
665 DBG("creating mapping for region: %lx..%lx (prot: %x)\n", 669 DBG("creating mapping for region: %lx..%lx (prot: %x)\n",
666 base, size, tprot); 670 base, size, prot);
667 671
668#ifdef CONFIG_U3_DART 672#ifdef CONFIG_U3_DART
669 /* Do not map the DART space. Fortunately, it will be aligned 673 /* Do not map the DART space. Fortunately, it will be aligned
@@ -680,21 +684,21 @@ void __init htab_initialize(void)
680 unsigned long dart_table_end = dart_tablebase + 16 * MB; 684 unsigned long dart_table_end = dart_tablebase + 16 * MB;
681 if (base != dart_tablebase) 685 if (base != dart_tablebase)
682 BUG_ON(htab_bolt_mapping(base, dart_tablebase, 686 BUG_ON(htab_bolt_mapping(base, dart_tablebase,
683 __pa(base), tprot, 687 __pa(base), prot,
684 mmu_linear_psize, 688 mmu_linear_psize,
685 mmu_kernel_ssize)); 689 mmu_kernel_ssize));
686 if ((base + size) > dart_table_end) 690 if ((base + size) > dart_table_end)
687 BUG_ON(htab_bolt_mapping(dart_tablebase+16*MB, 691 BUG_ON(htab_bolt_mapping(dart_tablebase+16*MB,
688 base + size, 692 base + size,
689 __pa(dart_table_end), 693 __pa(dart_table_end),
690 tprot, 694 prot,
691 mmu_linear_psize, 695 mmu_linear_psize,
692 mmu_kernel_ssize)); 696 mmu_kernel_ssize));
693 continue; 697 continue;
694 } 698 }
695#endif /* CONFIG_U3_DART */ 699#endif /* CONFIG_U3_DART */
696 BUG_ON(htab_bolt_mapping(base, base + size, __pa(base), 700 BUG_ON(htab_bolt_mapping(base, base + size, __pa(base),
697 tprot, mmu_linear_psize, mmu_kernel_ssize)); 701 prot, mmu_linear_psize, mmu_kernel_ssize));
698 } 702 }
699 703
700 /* 704 /*
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c
index 1c1b627ee84..67595bc380d 100644
--- a/arch/powerpc/platforms/cell/spufs/sched.c
+++ b/arch/powerpc/platforms/cell/spufs/sched.c
@@ -643,9 +643,10 @@ static struct spu *find_victim(struct spu_context *ctx)
643 !(tmp->flags & SPU_CREATE_NOSCHED) && 643 !(tmp->flags & SPU_CREATE_NOSCHED) &&
644 (!victim || tmp->prio > victim->prio)) { 644 (!victim || tmp->prio > victim->prio)) {
645 victim = spu->ctx; 645 victim = spu->ctx;
646 get_spu_context(victim);
647 } 646 }
648 } 647 }
648 if (victim)
649 get_spu_context(victim);
649 mutex_unlock(&cbe_spu_info[node].list_mutex); 650 mutex_unlock(&cbe_spu_info[node].list_mutex);
650 651
651 if (victim) { 652 if (victim) {
@@ -727,17 +728,33 @@ static void spu_schedule(struct spu *spu, struct spu_context *ctx)
727 /* not a candidate for interruptible because it's called either 728 /* not a candidate for interruptible because it's called either
728 from the scheduler thread or from spu_deactivate */ 729 from the scheduler thread or from spu_deactivate */
729 mutex_lock(&ctx->state_mutex); 730 mutex_lock(&ctx->state_mutex);
730 __spu_schedule(spu, ctx); 731 if (ctx->state == SPU_STATE_SAVED)
732 __spu_schedule(spu, ctx);
731 spu_release(ctx); 733 spu_release(ctx);
732} 734}
733 735
734static void spu_unschedule(struct spu *spu, struct spu_context *ctx) 736/**
737 * spu_unschedule - remove a context from a spu, and possibly release it.
738 * @spu: The SPU to unschedule from
739 * @ctx: The context currently scheduled on the SPU
740 * @free_spu Whether to free the SPU for other contexts
741 *
742 * Unbinds the context @ctx from the SPU @spu. If @free_spu is non-zero, the
743 * SPU is made available for other contexts (ie, may be returned by
744 * spu_get_idle). If this is zero, the caller is expected to schedule another
745 * context to this spu.
746 *
747 * Should be called with ctx->state_mutex held.
748 */
749static void spu_unschedule(struct spu *spu, struct spu_context *ctx,
750 int free_spu)
735{ 751{
736 int node = spu->node; 752 int node = spu->node;
737 753
738 mutex_lock(&cbe_spu_info[node].list_mutex); 754 mutex_lock(&cbe_spu_info[node].list_mutex);
739 cbe_spu_info[node].nr_active--; 755 cbe_spu_info[node].nr_active--;
740 spu->alloc_state = SPU_FREE; 756 if (free_spu)
757 spu->alloc_state = SPU_FREE;
741 spu_unbind_context(spu, ctx); 758 spu_unbind_context(spu, ctx);
742 ctx->stats.invol_ctx_switch++; 759 ctx->stats.invol_ctx_switch++;
743 spu->stats.invol_ctx_switch++; 760 spu->stats.invol_ctx_switch++;
@@ -837,7 +854,7 @@ static int __spu_deactivate(struct spu_context *ctx, int force, int max_prio)
837 if (spu) { 854 if (spu) {
838 new = grab_runnable_context(max_prio, spu->node); 855 new = grab_runnable_context(max_prio, spu->node);
839 if (new || force) { 856 if (new || force) {
840 spu_unschedule(spu, ctx); 857 spu_unschedule(spu, ctx, new == NULL);
841 if (new) { 858 if (new) {
842 if (new->flags & SPU_CREATE_NOSCHED) 859 if (new->flags & SPU_CREATE_NOSCHED)
843 wake_up(&new->stop_wq); 860 wake_up(&new->stop_wq);
@@ -910,7 +927,7 @@ static noinline void spusched_tick(struct spu_context *ctx)
910 927
911 new = grab_runnable_context(ctx->prio + 1, spu->node); 928 new = grab_runnable_context(ctx->prio + 1, spu->node);
912 if (new) { 929 if (new) {
913 spu_unschedule(spu, ctx); 930 spu_unschedule(spu, ctx, 0);
914 if (test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags)) 931 if (test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags))
915 spu_add_to_rq(ctx); 932 spu_add_to_rq(ctx);
916 } else { 933 } else {
diff --git a/arch/powerpc/platforms/fsl_uli1575.c b/arch/powerpc/platforms/fsl_uli1575.c
index ef74a0763ec..8c619963bec 100644
--- a/arch/powerpc/platforms/fsl_uli1575.c
+++ b/arch/powerpc/platforms/fsl_uli1575.c
@@ -219,11 +219,21 @@ static void __devinit quirk_final_uli5249(struct pci_dev *dev)
219 int i; 219 int i;
220 u8 *dummy; 220 u8 *dummy;
221 struct pci_bus *bus = dev->bus; 221 struct pci_bus *bus = dev->bus;
222 resource_size_t end = 0;
223
224 for (i = PCI_BRIDGE_RESOURCES; i < PCI_BRIDGE_RESOURCES+3; i++) {
225 unsigned long flags = pci_resource_flags(dev, i);
226 if ((flags & (IORESOURCE_MEM|IORESOURCE_PREFETCH)) == IORESOURCE_MEM)
227 end = pci_resource_end(dev, i);
228 }
222 229
223 for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) { 230 for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
224 if ((bus->resource[i]) && 231 if ((bus->resource[i]) &&
225 (bus->resource[i]->flags & IORESOURCE_MEM)) { 232 (bus->resource[i]->flags & IORESOURCE_MEM)) {
226 dummy = ioremap(bus->resource[i]->end - 3, 0x4); 233 if (bus->resource[i]->end == end)
234 dummy = ioremap(bus->resource[i]->start, 0x4);
235 else
236 dummy = ioremap(bus->resource[i]->end - 3, 0x4);
227 if (dummy) { 237 if (dummy) {
228 in_8(dummy); 238 in_8(dummy);
229 iounmap(dummy); 239 iounmap(dummy);
diff --git a/arch/powerpc/platforms/powermac/Makefile b/arch/powerpc/platforms/powermac/Makefile
index 58ecdd72630..be60d64be7a 100644
--- a/arch/powerpc/platforms/powermac/Makefile
+++ b/arch/powerpc/platforms/powermac/Makefile
@@ -2,7 +2,7 @@ CFLAGS_bootx_init.o += -fPIC
2 2
3ifdef CONFIG_FTRACE 3ifdef CONFIG_FTRACE
4# Do not trace early boot code 4# Do not trace early boot code
5CFLAGS_REMOVE_bootx_init.o = -pg 5CFLAGS_REMOVE_bootx_init.o = -pg -mno-sched-epilog
6endif 6endif
7 7
8obj-y += pic.o setup.o time.o feature.o pci.o \ 8obj-y += pic.o setup.o time.o feature.o pci.o \
diff --git a/arch/powerpc/platforms/ps3/htab.c b/arch/powerpc/platforms/ps3/htab.c
index 1cf901fa903..6eb1d4d182c 100644
--- a/arch/powerpc/platforms/ps3/htab.c
+++ b/arch/powerpc/platforms/ps3/htab.c
@@ -29,138 +29,75 @@
29 29
30#include "platform.h" 30#include "platform.h"
31 31
32#if defined(DEBUG) 32/**
33#define DBG udbg_printf 33 * enum lpar_vas_id - id of LPAR virtual address space.
34#else 34 * @lpar_vas_id_current: Current selected virtual address space
35#define DBG pr_debug 35 *
36#endif 36 * Identify the target LPAR address space.
37 37 */
38static struct hash_pte *htab; 38
39static unsigned long htab_addr; 39enum ps3_lpar_vas_id {
40static unsigned char *bolttab; 40 PS3_LPAR_VAS_ID_CURRENT = 0,
41static unsigned char *inusetab; 41};
42 42
43static DEFINE_SPINLOCK(ps3_bolttab_lock); 43
44 44static DEFINE_SPINLOCK(ps3_htab_lock);
45#define debug_dump_hpte(_a, _b, _c, _d, _e, _f, _g) \
46 _debug_dump_hpte(_a, _b, _c, _d, _e, _f, _g, __func__, __LINE__)
47static void _debug_dump_hpte(unsigned long pa, unsigned long va,
48 unsigned long group, unsigned long bitmap, struct hash_pte lhpte,
49 int psize, unsigned long slot, const char* func, int line)
50{
51 DBG("%s:%d: pa = %lxh\n", func, line, pa);
52 DBG("%s:%d: lpar = %lxh\n", func, line,
53 ps3_mm_phys_to_lpar(pa));
54 DBG("%s:%d: va = %lxh\n", func, line, va);
55 DBG("%s:%d: group = %lxh\n", func, line, group);
56 DBG("%s:%d: bitmap = %lxh\n", func, line, bitmap);
57 DBG("%s:%d: hpte.v = %lxh\n", func, line, lhpte.v);
58 DBG("%s:%d: hpte.r = %lxh\n", func, line, lhpte.r);
59 DBG("%s:%d: psize = %xh\n", func, line, psize);
60 DBG("%s:%d: slot = %lxh\n", func, line, slot);
61}
62 45
63static long ps3_hpte_insert(unsigned long hpte_group, unsigned long va, 46static long ps3_hpte_insert(unsigned long hpte_group, unsigned long va,
64 unsigned long pa, unsigned long rflags, unsigned long vflags, 47 unsigned long pa, unsigned long rflags, unsigned long vflags,
65 int psize, int ssize) 48 int psize, int ssize)
66{ 49{
67 unsigned long slot; 50 int result;
68 struct hash_pte lhpte; 51 u64 hpte_v, hpte_r;
69 int secondary = 0; 52 u64 inserted_index;
70 unsigned long result; 53 u64 evicted_v, evicted_r;
71 unsigned long bitmap; 54 u64 hpte_v_array[4], hpte_rs;
72 unsigned long flags; 55 unsigned long flags;
73 unsigned long p_pteg, s_pteg, b_index, b_mask, cb, ci; 56 long ret = -1;
74
75 vflags &= ~HPTE_V_SECONDARY; /* this bit is ignored */
76
77 lhpte.v = hpte_encode_v(va, psize, MMU_SEGSIZE_256M) |
78 vflags | HPTE_V_VALID;
79 lhpte.r = hpte_encode_r(ps3_mm_phys_to_lpar(pa), psize) | rflags;
80
81 p_pteg = hpte_group / HPTES_PER_GROUP;
82 s_pteg = ~p_pteg & htab_hash_mask;
83
84 spin_lock_irqsave(&ps3_bolttab_lock, flags);
85
86 BUG_ON(bolttab[p_pteg] == 0xff && bolttab[s_pteg] == 0xff);
87 57
88 bitmap = (inusetab[p_pteg] << 8) | inusetab[s_pteg]; 58 /*
59 * lv1_insert_htab_entry() will search for victim
60 * entry in both primary and secondary pte group
61 */
62 vflags &= ~HPTE_V_SECONDARY;
89 63
90 if (bitmap == 0xffff) { 64 hpte_v = hpte_encode_v(va, psize, ssize) | vflags | HPTE_V_VALID;
91 /* 65 hpte_r = hpte_encode_r(ps3_mm_phys_to_lpar(pa), psize) | rflags;
92 * PTEG is full. Search for victim.
93 */
94 bitmap &= ~((bolttab[p_pteg] << 8) | bolttab[s_pteg]);
95 do {
96 ci = mftb() & 15;
97 cb = 0x8000UL >> ci;
98 } while ((cb & bitmap) == 0);
99 } else {
100 /*
101 * search free slot in hardware order
102 * [primary] 0, 2, 4, 6, 1, 3, 5, 7
103 * [secondary] 0, 2, 4, 6, 1, 3, 5, 7
104 */
105 for (ci = 0; ci < HPTES_PER_GROUP; ci += 2) {
106 cb = 0x8000UL >> ci;
107 if ((cb & bitmap) == 0)
108 goto found;
109 }
110 for (ci = 1; ci < HPTES_PER_GROUP; ci += 2) {
111 cb = 0x8000UL >> ci;
112 if ((cb & bitmap) == 0)
113 goto found;
114 }
115 for (ci = HPTES_PER_GROUP; ci < HPTES_PER_GROUP*2; ci += 2) {
116 cb = 0x8000UL >> ci;
117 if ((cb & bitmap) == 0)
118 goto found;
119 }
120 for (ci = HPTES_PER_GROUP+1; ci < HPTES_PER_GROUP*2; ci += 2) {
121 cb = 0x8000UL >> ci;
122 if ((cb & bitmap) == 0)
123 goto found;
124 }
125 }
126 66
127found: 67 spin_lock_irqsave(&ps3_htab_lock, flags);
128 if (ci < HPTES_PER_GROUP) {
129 slot = p_pteg * HPTES_PER_GROUP + ci;
130 } else {
131 slot = s_pteg * HPTES_PER_GROUP + (ci & 7);
132 /* lhpte.dw0.dw0.h = 1; */
133 vflags |= HPTE_V_SECONDARY;
134 lhpte.v |= HPTE_V_SECONDARY;
135 }
136 68
137 result = lv1_write_htab_entry(0, slot, lhpte.v, lhpte.r); 69 /* talk hvc to replace entries BOLTED == 0 */
70 result = lv1_insert_htab_entry(PS3_LPAR_VAS_ID_CURRENT, hpte_group,
71 hpte_v, hpte_r,
72 HPTE_V_BOLTED, 0,
73 &inserted_index,
74 &evicted_v, &evicted_r);
138 75
139 if (result) { 76 if (result) {
140 debug_dump_hpte(pa, va, hpte_group, bitmap, lhpte, psize, slot); 77 /* all entries bolted !*/
78 pr_info("%s:result=%d va=%lx pa=%lx ix=%lx v=%lx r=%lx\n",
79 __func__, result, va, pa, hpte_group, hpte_v, hpte_r);
141 BUG(); 80 BUG();
142 } 81 }
143 82
144 /* 83 /*
145 * If used slot is not in primary HPTE group, 84 * see if the entry is inserted into secondary pteg
146 * the slot should be in secondary HPTE group.
147 */ 85 */
86 result = lv1_read_htab_entries(PS3_LPAR_VAS_ID_CURRENT,
87 inserted_index & ~0x3UL,
88 &hpte_v_array[0], &hpte_v_array[1],
89 &hpte_v_array[2], &hpte_v_array[3],
90 &hpte_rs);
91 BUG_ON(result);
148 92
149 if ((hpte_group ^ slot) & ~(HPTES_PER_GROUP - 1)) { 93 if (hpte_v_array[inserted_index % 4] & HPTE_V_SECONDARY)
150 secondary = 1; 94 ret = (inserted_index & 7) | (1 << 3);
151 b_index = s_pteg; 95 else
152 } else { 96 ret = inserted_index & 7;
153 secondary = 0;
154 b_index = p_pteg;
155 }
156 97
157 b_mask = (lhpte.v & HPTE_V_BOLTED) ? 1 << 7 : 0 << 7; 98 spin_unlock_irqrestore(&ps3_htab_lock, flags);
158 bolttab[b_index] |= b_mask >> (slot & 7);
159 b_mask = 1 << 7;
160 inusetab[b_index] |= b_mask >> (slot & 7);
161 spin_unlock_irqrestore(&ps3_bolttab_lock, flags);
162 99
163 return (slot & 7) | (secondary << 3); 100 return ret;
164} 101}
165 102
166static long ps3_hpte_remove(unsigned long hpte_group) 103static long ps3_hpte_remove(unsigned long hpte_group)
@@ -172,39 +109,48 @@ static long ps3_hpte_remove(unsigned long hpte_group)
172static long ps3_hpte_updatepp(unsigned long slot, unsigned long newpp, 109static long ps3_hpte_updatepp(unsigned long slot, unsigned long newpp,
173 unsigned long va, int psize, int ssize, int local) 110 unsigned long va, int psize, int ssize, int local)
174{ 111{
112 int result;
113 u64 hpte_v, want_v, hpte_rs;
114 u64 hpte_v_array[4];
175 unsigned long flags; 115 unsigned long flags;
176 unsigned long result; 116 long ret;
177 unsigned long pteg, bit;
178 unsigned long hpte_v, want_v;
179 117
180 want_v = hpte_encode_v(va, psize, MMU_SEGSIZE_256M); 118 want_v = hpte_encode_v(va, psize, ssize);
181 119
182 spin_lock_irqsave(&ps3_bolttab_lock, flags); 120 spin_lock_irqsave(&ps3_htab_lock, flags);
183 121
184 hpte_v = htab[slot].v; 122 result = lv1_read_htab_entries(PS3_LPAR_VAS_ID_CURRENT, slot & ~0x3UL,
185 if (!HPTE_V_COMPARE(hpte_v, want_v) || !(hpte_v & HPTE_V_VALID)) { 123 &hpte_v_array[0], &hpte_v_array[1],
186 spin_unlock_irqrestore(&ps3_bolttab_lock, flags); 124 &hpte_v_array[2], &hpte_v_array[3],
187 125 &hpte_rs);
188 /* ps3_hpte_insert() will be used to update PTE */
189 return -1;
190 }
191
192 result = lv1_write_htab_entry(0, slot, 0, 0);
193 126
194 if (result) { 127 if (result) {
195 DBG("%s: va=%lx slot=%lx psize=%d result = %ld (0x%lx)\n", 128 pr_info("%s: res=%d read va=%lx slot=%lx psize=%d\n",
196 __func__, va, slot, psize, result, result); 129 __func__, result, va, slot, psize);
197 BUG(); 130 BUG();
198 } 131 }
199 132
200 pteg = slot / HPTES_PER_GROUP; 133 hpte_v = hpte_v_array[slot % 4];
201 bit = slot % HPTES_PER_GROUP;
202 inusetab[pteg] &= ~(0x80 >> bit);
203 134
204 spin_unlock_irqrestore(&ps3_bolttab_lock, flags); 135 /*
136 * As lv1_read_htab_entries() does not give us the RPN, we can
137 * not synthesize the new hpte_r value here, and therefore can
138 * not update the hpte with lv1_insert_htab_entry(), so we
139 * insted invalidate it and ask the caller to update it via
140 * ps3_hpte_insert() by returning a -1 value.
141 */
142 if (!HPTE_V_COMPARE(hpte_v, want_v) || !(hpte_v & HPTE_V_VALID)) {
143 /* not found */
144 ret = -1;
145 } else {
146 /* entry found, just invalidate it */
147 result = lv1_write_htab_entry(PS3_LPAR_VAS_ID_CURRENT,
148 slot, 0, 0);
149 ret = -1;
150 }
205 151
206 /* ps3_hpte_insert() will be used to update PTE */ 152 spin_unlock_irqrestore(&ps3_htab_lock, flags);
207 return -1; 153 return ret;
208} 154}
209 155
210static void ps3_hpte_updateboltedpp(unsigned long newpp, unsigned long ea, 156static void ps3_hpte_updateboltedpp(unsigned long newpp, unsigned long ea,
@@ -217,45 +163,35 @@ static void ps3_hpte_invalidate(unsigned long slot, unsigned long va,
217 int psize, int ssize, int local) 163 int psize, int ssize, int local)
218{ 164{
219 unsigned long flags; 165 unsigned long flags;
220 unsigned long result; 166 int result;
221 unsigned long pteg, bit; 167
168 spin_lock_irqsave(&ps3_htab_lock, flags);
222 169
223 spin_lock_irqsave(&ps3_bolttab_lock, flags); 170 result = lv1_write_htab_entry(PS3_LPAR_VAS_ID_CURRENT, slot, 0, 0);
224 result = lv1_write_htab_entry(0, slot, 0, 0);
225 171
226 if (result) { 172 if (result) {
227 DBG("%s: va=%lx slot=%lx psize=%d result = %ld (0x%lx)\n", 173 pr_info("%s: res=%d va=%lx slot=%lx psize=%d\n",
228 __func__, va, slot, psize, result, result); 174 __func__, result, va, slot, psize);
229 BUG(); 175 BUG();
230 } 176 }
231 177
232 pteg = slot / HPTES_PER_GROUP; 178 spin_unlock_irqrestore(&ps3_htab_lock, flags);
233 bit = slot % HPTES_PER_GROUP;
234 inusetab[pteg] &= ~(0x80 >> bit);
235 spin_unlock_irqrestore(&ps3_bolttab_lock, flags);
236} 179}
237 180
238static void ps3_hpte_clear(void) 181static void ps3_hpte_clear(void)
239{ 182{
240 int result; 183 unsigned long hpte_count = (1UL << ppc64_pft_size) >> 4;
241 184 u64 i;
242 DBG(" -> %s:%d\n", __func__, __LINE__);
243 185
244 result = lv1_unmap_htab(htab_addr); 186 for (i = 0; i < hpte_count; i++)
245 BUG_ON(result); 187 lv1_write_htab_entry(PS3_LPAR_VAS_ID_CURRENT, i, 0, 0);
246 188
247 ps3_mm_shutdown(); 189 ps3_mm_shutdown();
248 ps3_mm_vas_destroy(); 190 ps3_mm_vas_destroy();
249
250 DBG(" <- %s:%d\n", __func__, __LINE__);
251} 191}
252 192
253void __init ps3_hpte_init(unsigned long htab_size) 193void __init ps3_hpte_init(unsigned long htab_size)
254{ 194{
255 long bitmap_size;
256
257 DBG(" -> %s:%d\n", __func__, __LINE__);
258
259 ppc_md.hpte_invalidate = ps3_hpte_invalidate; 195 ppc_md.hpte_invalidate = ps3_hpte_invalidate;
260 ppc_md.hpte_updatepp = ps3_hpte_updatepp; 196 ppc_md.hpte_updatepp = ps3_hpte_updatepp;
261 ppc_md.hpte_updateboltedpp = ps3_hpte_updateboltedpp; 197 ppc_md.hpte_updateboltedpp = ps3_hpte_updateboltedpp;
@@ -264,28 +200,5 @@ void __init ps3_hpte_init(unsigned long htab_size)
264 ppc_md.hpte_clear_all = ps3_hpte_clear; 200 ppc_md.hpte_clear_all = ps3_hpte_clear;
265 201
266 ppc64_pft_size = __ilog2(htab_size); 202 ppc64_pft_size = __ilog2(htab_size);
267
268 bitmap_size = htab_size / sizeof(struct hash_pte) / 8;
269
270 bolttab = __va(lmb_alloc(bitmap_size, 1));
271 inusetab = __va(lmb_alloc(bitmap_size, 1));
272
273 memset(bolttab, 0, bitmap_size);
274 memset(inusetab, 0, bitmap_size);
275
276 DBG(" <- %s:%d\n", __func__, __LINE__);
277} 203}
278 204
279void __init ps3_map_htab(void)
280{
281 long result;
282 unsigned long htab_size = (1UL << ppc64_pft_size);
283
284 result = lv1_map_htab(0, &htab_addr);
285
286 htab = (__force struct hash_pte *)ioremap_flags(htab_addr, htab_size,
287 pgprot_val(PAGE_READONLY_X));
288
289 DBG("%s:%d: lpar %016lxh, virt %016lxh\n", __func__, __LINE__,
290 htab_addr, (unsigned long)htab);
291}
diff --git a/arch/powerpc/platforms/ps3/setup.c b/arch/powerpc/platforms/ps3/setup.c
index a413abbd412..77bc330263c 100644
--- a/arch/powerpc/platforms/ps3/setup.c
+++ b/arch/powerpc/platforms/ps3/setup.c
@@ -201,7 +201,6 @@ static void __init ps3_setup_arch(void)
201 ps3_firmware_version.rev); 201 ps3_firmware_version.rev);
202 202
203 ps3_spu_set_platform(); 203 ps3_spu_set_platform();
204 ps3_map_htab();
205 204
206#ifdef CONFIG_SMP 205#ifdef CONFIG_SMP
207 smp_init_ps3(); 206 smp_init_ps3();
diff --git a/arch/powerpc/platforms/ps3/spu.c b/arch/powerpc/platforms/ps3/spu.c
index d135cef9ed6..ccae3d446b9 100644
--- a/arch/powerpc/platforms/ps3/spu.c
+++ b/arch/powerpc/platforms/ps3/spu.c
@@ -186,14 +186,24 @@ static void spu_unmap(struct spu *spu)
186 iounmap(spu_pdata(spu)->shadow); 186 iounmap(spu_pdata(spu)->shadow);
187} 187}
188 188
189/**
190 * setup_areas - Map the spu regions into the address space.
191 *
192 * The current HV requires the spu shadow regs to be mapped with the
193 * PTE page protection bits set as read-only (PP=3). This implementation
194 * uses the low level __ioremap() to bypass the page protection settings
195 * inforced by ioremap_flags() to get the needed PTE bits set for the
196 * shadow regs.
197 */
198
189static int __init setup_areas(struct spu *spu) 199static int __init setup_areas(struct spu *spu)
190{ 200{
191 struct table {char* name; unsigned long addr; unsigned long size;}; 201 struct table {char* name; unsigned long addr; unsigned long size;};
202 static const unsigned long shadow_flags = _PAGE_NO_CACHE | 3;
192 203
193 spu_pdata(spu)->shadow = ioremap_flags(spu_pdata(spu)->shadow_addr, 204 spu_pdata(spu)->shadow = __ioremap(spu_pdata(spu)->shadow_addr,
194 sizeof(struct spe_shadow), 205 sizeof(struct spe_shadow),
195 pgprot_val(PAGE_READONLY) | 206 shadow_flags);
196 _PAGE_NO_CACHE);
197 if (!spu_pdata(spu)->shadow) { 207 if (!spu_pdata(spu)->shadow) {
198 pr_debug("%s:%d: ioremap shadow failed\n", __func__, __LINE__); 208 pr_debug("%s:%d: ioremap shadow failed\n", __func__, __LINE__);
199 goto fail_ioremap; 209 goto fail_ioremap;
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index 3ce8a139b85..7b01d67b4e4 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -71,6 +71,7 @@
71int CMO_PrPSP = -1; 71int CMO_PrPSP = -1;
72int CMO_SecPSP = -1; 72int CMO_SecPSP = -1;
73unsigned long CMO_PageSize = (ASM_CONST(1) << IOMMU_PAGE_SHIFT); 73unsigned long CMO_PageSize = (ASM_CONST(1) << IOMMU_PAGE_SHIFT);
74EXPORT_SYMBOL(CMO_PageSize);
74 75
75int fwnmi_active; /* TRUE if an FWNMI handler is present */ 76int fwnmi_active; /* TRUE if an FWNMI handler is present */
76 77
diff --git a/arch/powerpc/sysdev/bestcomm/gen_bd.c b/arch/powerpc/sysdev/bestcomm/gen_bd.c
index a3a134c35b0..e0a53e3147b 100644
--- a/arch/powerpc/sysdev/bestcomm/gen_bd.c
+++ b/arch/powerpc/sysdev/bestcomm/gen_bd.c
@@ -11,7 +11,6 @@
11 * 11 *
12 */ 12 */
13 13
14#include <linux/version.h>
15#include <linux/module.h> 14#include <linux/module.h>
16#include <linux/kernel.h> 15#include <linux/kernel.h>
17#include <linux/string.h> 16#include <linux/string.h>
diff --git a/arch/powerpc/sysdev/cpm_common.c b/arch/powerpc/sysdev/cpm_common.c
index 53da8a079f9..00d3d17c84a 100644
--- a/arch/powerpc/sysdev/cpm_common.c
+++ b/arch/powerpc/sysdev/cpm_common.c
@@ -254,15 +254,11 @@ static int cpm2_gpio32_get(struct gpio_chip *gc, unsigned int gpio)
254 return !!(in_be32(&iop->dat) & pin_mask); 254 return !!(in_be32(&iop->dat) & pin_mask);
255} 255}
256 256
257static void cpm2_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value) 257static void __cpm2_gpio32_set(struct of_mm_gpio_chip *mm_gc, u32 pin_mask,
258 int value)
258{ 259{
259 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
260 struct cpm2_gpio32_chip *cpm2_gc = to_cpm2_gpio32_chip(mm_gc); 260 struct cpm2_gpio32_chip *cpm2_gc = to_cpm2_gpio32_chip(mm_gc);
261 struct cpm2_ioports __iomem *iop = mm_gc->regs; 261 struct cpm2_ioports __iomem *iop = mm_gc->regs;
262 unsigned long flags;
263 u32 pin_mask = 1 << (31 - gpio);
264
265 spin_lock_irqsave(&cpm2_gc->lock, flags);
266 262
267 if (value) 263 if (value)
268 cpm2_gc->cpdata |= pin_mask; 264 cpm2_gc->cpdata |= pin_mask;
@@ -270,6 +266,18 @@ static void cpm2_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value)
270 cpm2_gc->cpdata &= ~pin_mask; 266 cpm2_gc->cpdata &= ~pin_mask;
271 267
272 out_be32(&iop->dat, cpm2_gc->cpdata); 268 out_be32(&iop->dat, cpm2_gc->cpdata);
269}
270
271static void cpm2_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value)
272{
273 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
274 struct cpm2_gpio32_chip *cpm2_gc = to_cpm2_gpio32_chip(mm_gc);
275 unsigned long flags;
276 u32 pin_mask = 1 << (31 - gpio);
277
278 spin_lock_irqsave(&cpm2_gc->lock, flags);
279
280 __cpm2_gpio32_set(mm_gc, pin_mask, value);
273 281
274 spin_unlock_irqrestore(&cpm2_gc->lock, flags); 282 spin_unlock_irqrestore(&cpm2_gc->lock, flags);
275} 283}
@@ -277,14 +285,17 @@ static void cpm2_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value)
277static int cpm2_gpio32_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) 285static int cpm2_gpio32_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
278{ 286{
279 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); 287 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
288 struct cpm2_gpio32_chip *cpm2_gc = to_cpm2_gpio32_chip(mm_gc);
280 struct cpm2_ioports __iomem *iop = mm_gc->regs; 289 struct cpm2_ioports __iomem *iop = mm_gc->regs;
281 u32 pin_mask; 290 unsigned long flags;
291 u32 pin_mask = 1 << (31 - gpio);
282 292
283 pin_mask = 1 << (31 - gpio); 293 spin_lock_irqsave(&cpm2_gc->lock, flags);
284 294
285 setbits32(&iop->dir, pin_mask); 295 setbits32(&iop->dir, pin_mask);
296 __cpm2_gpio32_set(mm_gc, pin_mask, val);
286 297
287 cpm2_gpio32_set(gc, gpio, val); 298 spin_unlock_irqrestore(&cpm2_gc->lock, flags);
288 299
289 return 0; 300 return 0;
290} 301}
@@ -292,13 +303,17 @@ static int cpm2_gpio32_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
292static int cpm2_gpio32_dir_in(struct gpio_chip *gc, unsigned int gpio) 303static int cpm2_gpio32_dir_in(struct gpio_chip *gc, unsigned int gpio)
293{ 304{
294 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); 305 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
306 struct cpm2_gpio32_chip *cpm2_gc = to_cpm2_gpio32_chip(mm_gc);
295 struct cpm2_ioports __iomem *iop = mm_gc->regs; 307 struct cpm2_ioports __iomem *iop = mm_gc->regs;
296 u32 pin_mask; 308 unsigned long flags;
309 u32 pin_mask = 1 << (31 - gpio);
297 310
298 pin_mask = 1 << (31 - gpio); 311 spin_lock_irqsave(&cpm2_gc->lock, flags);
299 312
300 clrbits32(&iop->dir, pin_mask); 313 clrbits32(&iop->dir, pin_mask);
301 314
315 spin_unlock_irqrestore(&cpm2_gc->lock, flags);
316
302 return 0; 317 return 0;
303} 318}
304 319
diff --git a/arch/powerpc/sysdev/qe_lib/ucc_fast.c b/arch/powerpc/sysdev/qe_lib/ucc_fast.c
index 1aecb075a72..25fbbfaa837 100644
--- a/arch/powerpc/sysdev/qe_lib/ucc_fast.c
+++ b/arch/powerpc/sysdev/qe_lib/ucc_fast.c
@@ -208,6 +208,7 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc
208 uccf->uf_regs = ioremap(uf_info->regs, sizeof(struct ucc_fast)); 208 uccf->uf_regs = ioremap(uf_info->regs, sizeof(struct ucc_fast));
209 if (uccf->uf_regs == NULL) { 209 if (uccf->uf_regs == NULL) {
210 printk(KERN_ERR "%s: Cannot map UCC registers\n", __func__); 210 printk(KERN_ERR "%s: Cannot map UCC registers\n", __func__);
211 kfree(uccf);
211 return -ENOMEM; 212 return -ENOMEM;
212 } 213 }
213 214
@@ -355,6 +356,9 @@ void ucc_fast_free(struct ucc_fast_private * uccf)
355 if (uccf->ucc_fast_rx_virtual_fifo_base_offset) 356 if (uccf->ucc_fast_rx_virtual_fifo_base_offset)
356 qe_muram_free(uccf->ucc_fast_rx_virtual_fifo_base_offset); 357 qe_muram_free(uccf->ucc_fast_rx_virtual_fifo_base_offset);
357 358
359 if (uccf->uf_regs)
360 iounmap(uccf->uf_regs);
361
358 kfree(uccf); 362 kfree(uccf);
359} 363}
360EXPORT_SYMBOL(ucc_fast_free); 364EXPORT_SYMBOL(ucc_fast_free);
diff --git a/arch/powerpc/sysdev/qe_lib/ucc_slow.c b/arch/powerpc/sysdev/qe_lib/ucc_slow.c
index a578bc77b9d..e1d6a134015 100644
--- a/arch/powerpc/sysdev/qe_lib/ucc_slow.c
+++ b/arch/powerpc/sysdev/qe_lib/ucc_slow.c
@@ -171,6 +171,7 @@ int ucc_slow_init(struct ucc_slow_info * us_info, struct ucc_slow_private ** ucc
171 uccs->us_regs = ioremap(us_info->regs, sizeof(struct ucc_slow)); 171 uccs->us_regs = ioremap(us_info->regs, sizeof(struct ucc_slow));
172 if (uccs->us_regs == NULL) { 172 if (uccs->us_regs == NULL) {
173 printk(KERN_ERR "%s: Cannot map UCC registers\n", __func__); 173 printk(KERN_ERR "%s: Cannot map UCC registers\n", __func__);
174 kfree(uccs);
174 return -ENOMEM; 175 return -ENOMEM;
175 } 176 }
176 177
@@ -367,10 +368,11 @@ void ucc_slow_free(struct ucc_slow_private * uccs)
367 if (uccs->tx_base_offset) 368 if (uccs->tx_base_offset)
368 qe_muram_free(uccs->tx_base_offset); 369 qe_muram_free(uccs->tx_base_offset);
369 370
370 if (uccs->us_pram) { 371 if (uccs->us_pram)
371 qe_muram_free(uccs->us_pram_offset); 372 qe_muram_free(uccs->us_pram_offset);
372 uccs->us_pram = NULL; 373
373 } 374 if (uccs->us_regs)
375 iounmap(uccs->us_regs);
374 376
375 kfree(uccs); 377 kfree(uccs);
376} 378}
diff --git a/arch/s390/defconfig b/arch/s390/defconfig
index c5cdb975d59..9b0bc2c9fba 100644
--- a/arch/s390/defconfig
+++ b/arch/s390/defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc4 3# Linux kernel version: 2.6.27-rc4
4# Fri May 30 09:49:33 2008 4# Thu Aug 21 19:43:29 2008
5# 5#
6CONFIG_SCHED_MC=y 6CONFIG_SCHED_MC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -68,7 +68,6 @@ CONFIG_INITRAMFS_SOURCE=""
68CONFIG_SYSCTL=y 68CONFIG_SYSCTL=y
69# CONFIG_EMBEDDED is not set 69# CONFIG_EMBEDDED is not set
70CONFIG_SYSCTL_SYSCALL=y 70CONFIG_SYSCTL_SYSCALL=y
71CONFIG_SYSCTL_SYSCALL_CHECK=y
72CONFIG_KALLSYMS=y 71CONFIG_KALLSYMS=y
73# CONFIG_KALLSYMS_ALL is not set 72# CONFIG_KALLSYMS_ALL is not set
74# CONFIG_KALLSYMS_EXTRA_PASS is not set 73# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -93,11 +92,17 @@ CONFIG_SLAB=y
93# CONFIG_MARKERS is not set 92# CONFIG_MARKERS is not set
94CONFIG_HAVE_OPROFILE=y 93CONFIG_HAVE_OPROFILE=y
95CONFIG_KPROBES=y 94CONFIG_KPROBES=y
95# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
96CONFIG_KRETPROBES=y 96CONFIG_KRETPROBES=y
97# CONFIG_HAVE_IOREMAP_PROT is not set
97CONFIG_HAVE_KPROBES=y 98CONFIG_HAVE_KPROBES=y
98CONFIG_HAVE_KRETPROBES=y 99CONFIG_HAVE_KRETPROBES=y
100# CONFIG_HAVE_ARCH_TRACEHOOK is not set
99# CONFIG_HAVE_DMA_ATTRS is not set 101# CONFIG_HAVE_DMA_ATTRS is not set
102# CONFIG_USE_GENERIC_SMP_HELPERS is not set
103# CONFIG_HAVE_CLK is not set
100CONFIG_PROC_PAGE_MONITOR=y 104CONFIG_PROC_PAGE_MONITOR=y
105# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
101CONFIG_SLABINFO=y 106CONFIG_SLABINFO=y
102CONFIG_RT_MUTEXES=y 107CONFIG_RT_MUTEXES=y
103# CONFIG_TINY_SHMEM is not set 108# CONFIG_TINY_SHMEM is not set
@@ -113,6 +118,7 @@ CONFIG_STOP_MACHINE=y
113CONFIG_BLOCK=y 118CONFIG_BLOCK=y
114# CONFIG_BLK_DEV_IO_TRACE is not set 119# CONFIG_BLK_DEV_IO_TRACE is not set
115CONFIG_BLK_DEV_BSG=y 120CONFIG_BLK_DEV_BSG=y
121# CONFIG_BLK_DEV_INTEGRITY is not set
116CONFIG_BLOCK_COMPAT=y 122CONFIG_BLOCK_COMPAT=y
117 123
118# 124#
@@ -175,6 +181,8 @@ CONFIG_PREEMPT=y
175CONFIG_ARCH_SPARSEMEM_ENABLE=y 181CONFIG_ARCH_SPARSEMEM_ENABLE=y
176CONFIG_ARCH_SPARSEMEM_DEFAULT=y 182CONFIG_ARCH_SPARSEMEM_DEFAULT=y
177CONFIG_ARCH_SELECT_MEMORY_MODEL=y 183CONFIG_ARCH_SELECT_MEMORY_MODEL=y
184CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
185CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
178CONFIG_SELECT_MEMORY_MODEL=y 186CONFIG_SELECT_MEMORY_MODEL=y
179# CONFIG_FLATMEM_MANUAL is not set 187# CONFIG_FLATMEM_MANUAL is not set
180# CONFIG_DISCONTIGMEM_MANUAL is not set 188# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -185,8 +193,12 @@ CONFIG_HAVE_MEMORY_PRESENT=y
185CONFIG_SPARSEMEM_EXTREME=y 193CONFIG_SPARSEMEM_EXTREME=y
186CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 194CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
187CONFIG_SPARSEMEM_VMEMMAP=y 195CONFIG_SPARSEMEM_VMEMMAP=y
196CONFIG_MEMORY_HOTPLUG=y
197CONFIG_MEMORY_HOTPLUG_SPARSE=y
198CONFIG_MEMORY_HOTREMOVE=y
188CONFIG_PAGEFLAGS_EXTENDED=y 199CONFIG_PAGEFLAGS_EXTENDED=y
189CONFIG_SPLIT_PTLOCK_CPUS=4 200CONFIG_SPLIT_PTLOCK_CPUS=4
201CONFIG_MIGRATION=y
190CONFIG_RESOURCES_64BIT=y 202CONFIG_RESOURCES_64BIT=y
191CONFIG_ZONE_DMA_FLAG=1 203CONFIG_ZONE_DMA_FLAG=1
192CONFIG_BOUNCE=y 204CONFIG_BOUNCE=y
@@ -198,6 +210,7 @@ CONFIG_VIRT_TO_BUS=y
198CONFIG_MACHCHK_WARNING=y 210CONFIG_MACHCHK_WARNING=y
199CONFIG_QDIO=y 211CONFIG_QDIO=y
200# CONFIG_QDIO_DEBUG is not set 212# CONFIG_QDIO_DEBUG is not set
213CONFIG_CHSC_SCH=m
201 214
202# 215#
203# Misc 216# Misc
@@ -206,6 +219,7 @@ CONFIG_IPL=y
206# CONFIG_IPL_TAPE is not set 219# CONFIG_IPL_TAPE is not set
207CONFIG_IPL_VM=y 220CONFIG_IPL_VM=y
208CONFIG_BINFMT_ELF=y 221CONFIG_BINFMT_ELF=y
222CONFIG_COMPAT_BINFMT_ELF=y
209CONFIG_BINFMT_MISC=m 223CONFIG_BINFMT_MISC=m
210CONFIG_FORCE_MAX_ZONEORDER=9 224CONFIG_FORCE_MAX_ZONEORDER=9
211# CONFIG_PROCESS_DEBUG is not set 225# CONFIG_PROCESS_DEBUG is not set
@@ -226,10 +240,6 @@ CONFIG_S390_HYPFS_FS=y
226CONFIG_KEXEC=y 240CONFIG_KEXEC=y
227# CONFIG_ZFCPDUMP is not set 241# CONFIG_ZFCPDUMP is not set
228CONFIG_S390_GUEST=y 242CONFIG_S390_GUEST=y
229
230#
231# Networking
232#
233CONFIG_NET=y 243CONFIG_NET=y
234 244
235# 245#
@@ -364,7 +374,6 @@ CONFIG_NET_SCH_CBQ=m
364# CONFIG_NET_SCH_HTB is not set 374# CONFIG_NET_SCH_HTB is not set
365# CONFIG_NET_SCH_HFSC is not set 375# CONFIG_NET_SCH_HFSC is not set
366CONFIG_NET_SCH_PRIO=m 376CONFIG_NET_SCH_PRIO=m
367CONFIG_NET_SCH_RR=m
368CONFIG_NET_SCH_RED=m 377CONFIG_NET_SCH_RED=m
369CONFIG_NET_SCH_SFQ=m 378CONFIG_NET_SCH_SFQ=m
370CONFIG_NET_SCH_TEQL=m 379CONFIG_NET_SCH_TEQL=m
@@ -430,7 +439,9 @@ CONFIG_CCW=y
430CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 439CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
431CONFIG_STANDALONE=y 440CONFIG_STANDALONE=y
432CONFIG_PREVENT_FIRMWARE_BUILD=y 441CONFIG_PREVENT_FIRMWARE_BUILD=y
433# CONFIG_FW_LOADER is not set 442CONFIG_FW_LOADER=y
443# CONFIG_FIRMWARE_IN_KERNEL is not set
444CONFIG_EXTRA_FIRMWARE=""
434# CONFIG_DEBUG_DRIVER is not set 445# CONFIG_DEBUG_DRIVER is not set
435# CONFIG_DEBUG_DEVRES is not set 446# CONFIG_DEBUG_DEVRES is not set
436CONFIG_SYS_HYPERVISOR=y 447CONFIG_SYS_HYPERVISOR=y
@@ -507,6 +518,11 @@ CONFIG_SCSI_LOWLEVEL=y
507# CONFIG_ISCSI_TCP is not set 518# CONFIG_ISCSI_TCP is not set
508# CONFIG_SCSI_DEBUG is not set 519# CONFIG_SCSI_DEBUG is not set
509CONFIG_ZFCP=y 520CONFIG_ZFCP=y
521CONFIG_SCSI_DH=m
522CONFIG_SCSI_DH_RDAC=m
523CONFIG_SCSI_DH_HP_SW=m
524CONFIG_SCSI_DH_EMC=m
525CONFIG_SCSI_DH_ALUA=m
510CONFIG_MD=y 526CONFIG_MD=y
511CONFIG_BLK_DEV_MD=y 527CONFIG_BLK_DEV_MD=y
512CONFIG_MD_LINEAR=m 528CONFIG_MD_LINEAR=m
@@ -522,14 +538,10 @@ CONFIG_DM_CRYPT=y
522CONFIG_DM_SNAPSHOT=y 538CONFIG_DM_SNAPSHOT=y
523CONFIG_DM_MIRROR=y 539CONFIG_DM_MIRROR=y
524CONFIG_DM_ZERO=y 540CONFIG_DM_ZERO=y
525CONFIG_DM_MULTIPATH=y 541CONFIG_DM_MULTIPATH=m
526# CONFIG_DM_MULTIPATH_EMC is not set
527# CONFIG_DM_MULTIPATH_RDAC is not set
528# CONFIG_DM_MULTIPATH_HP is not set
529# CONFIG_DM_DELAY is not set 542# CONFIG_DM_DELAY is not set
530# CONFIG_DM_UEVENT is not set 543# CONFIG_DM_UEVENT is not set
531CONFIG_NETDEVICES=y 544CONFIG_NETDEVICES=y
532# CONFIG_NETDEVICES_MULTIQUEUE is not set
533# CONFIG_IFB is not set 545# CONFIG_IFB is not set
534CONFIG_DUMMY=m 546CONFIG_DUMMY=m
535CONFIG_BONDING=m 547CONFIG_BONDING=m
@@ -544,7 +556,6 @@ CONFIG_NET_ETHERNET=y
544# CONFIG_IBM_NEW_EMAC_TAH is not set 556# CONFIG_IBM_NEW_EMAC_TAH is not set
545# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 557# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
546CONFIG_NETDEV_1000=y 558CONFIG_NETDEV_1000=y
547# CONFIG_E1000E_ENABLED is not set
548CONFIG_NETDEV_10000=y 559CONFIG_NETDEV_10000=y
549# CONFIG_TR is not set 560# CONFIG_TR is not set
550# CONFIG_WAN is not set 561# CONFIG_WAN is not set
@@ -576,7 +587,10 @@ CONFIG_DEVKMEM=y
576CONFIG_UNIX98_PTYS=y 587CONFIG_UNIX98_PTYS=y
577CONFIG_LEGACY_PTYS=y 588CONFIG_LEGACY_PTYS=y
578CONFIG_LEGACY_PTY_COUNT=256 589CONFIG_LEGACY_PTY_COUNT=256
590CONFIG_HVC_DRIVER=y
591CONFIG_VIRTIO_CONSOLE=y
579CONFIG_HW_RANDOM=m 592CONFIG_HW_RANDOM=m
593CONFIG_HW_RANDOM_VIRTIO=m
580# CONFIG_R3964 is not set 594# CONFIG_R3964 is not set
581CONFIG_RAW_DRIVER=m 595CONFIG_RAW_DRIVER=m
582CONFIG_MAX_RAW_DEVS=256 596CONFIG_MAX_RAW_DEVS=256
@@ -616,6 +630,7 @@ CONFIG_MONWRITER=m
616CONFIG_S390_VMUR=m 630CONFIG_S390_VMUR=m
617# CONFIG_POWER_SUPPLY is not set 631# CONFIG_POWER_SUPPLY is not set
618# CONFIG_THERMAL is not set 632# CONFIG_THERMAL is not set
633# CONFIG_THERMAL_HWMON is not set
619# CONFIG_WATCHDOG is not set 634# CONFIG_WATCHDOG is not set
620 635
621# 636#
@@ -693,6 +708,7 @@ CONFIG_CONFIGFS_FS=m
693# CONFIG_CRAMFS is not set 708# CONFIG_CRAMFS is not set
694# CONFIG_VXFS_FS is not set 709# CONFIG_VXFS_FS is not set
695# CONFIG_MINIX_FS is not set 710# CONFIG_MINIX_FS is not set
711# CONFIG_OMFS_FS is not set
696# CONFIG_HPFS_FS is not set 712# CONFIG_HPFS_FS is not set
697# CONFIG_QNX4FS_FS is not set 713# CONFIG_QNX4FS_FS is not set
698# CONFIG_ROMFS_FS is not set 714# CONFIG_ROMFS_FS is not set
@@ -712,7 +728,6 @@ CONFIG_LOCKD_V4=y
712CONFIG_EXPORTFS=y 728CONFIG_EXPORTFS=y
713CONFIG_NFS_COMMON=y 729CONFIG_NFS_COMMON=y
714CONFIG_SUNRPC=y 730CONFIG_SUNRPC=y
715# CONFIG_SUNRPC_BIND34 is not set
716# CONFIG_RPCSEC_GSS_KRB5 is not set 731# CONFIG_RPCSEC_GSS_KRB5 is not set
717# CONFIG_RPCSEC_GSS_SPKM3 is not set 732# CONFIG_RPCSEC_GSS_SPKM3 is not set
718# CONFIG_SMB_FS is not set 733# CONFIG_SMB_FS is not set
@@ -780,6 +795,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
780# CONFIG_DEBUG_INFO is not set 795# CONFIG_DEBUG_INFO is not set
781# CONFIG_DEBUG_VM is not set 796# CONFIG_DEBUG_VM is not set
782# CONFIG_DEBUG_WRITECOUNT is not set 797# CONFIG_DEBUG_WRITECOUNT is not set
798CONFIG_DEBUG_MEMORY_INIT=y
783# CONFIG_DEBUG_LIST is not set 799# CONFIG_DEBUG_LIST is not set
784# CONFIG_DEBUG_SG is not set 800# CONFIG_DEBUG_SG is not set
785# CONFIG_FRAME_POINTER is not set 801# CONFIG_FRAME_POINTER is not set
@@ -789,6 +805,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
789# CONFIG_LKDTM is not set 805# CONFIG_LKDTM is not set
790# CONFIG_FAULT_INJECTION is not set 806# CONFIG_FAULT_INJECTION is not set
791# CONFIG_LATENCYTOP is not set 807# CONFIG_LATENCYTOP is not set
808CONFIG_SYSCTL_SYSCALL_CHECK=y
792CONFIG_SAMPLES=y 809CONFIG_SAMPLES=y
793# CONFIG_SAMPLE_KOBJECT is not set 810# CONFIG_SAMPLE_KOBJECT is not set
794# CONFIG_SAMPLE_KPROBES is not set 811# CONFIG_SAMPLE_KPROBES is not set
@@ -847,6 +864,10 @@ CONFIG_CRYPTO_HMAC=m
847# CONFIG_CRYPTO_MD4 is not set 864# CONFIG_CRYPTO_MD4 is not set
848CONFIG_CRYPTO_MD5=m 865CONFIG_CRYPTO_MD5=m
849# CONFIG_CRYPTO_MICHAEL_MIC is not set 866# CONFIG_CRYPTO_MICHAEL_MIC is not set
867CONFIG_CRYPTO_RMD128=m
868CONFIG_CRYPTO_RMD160=m
869CONFIG_CRYPTO_RMD256=m
870CONFIG_CRYPTO_RMD320=m
850CONFIG_CRYPTO_SHA1=m 871CONFIG_CRYPTO_SHA1=m
851# CONFIG_CRYPTO_SHA256 is not set 872# CONFIG_CRYPTO_SHA256 is not set
852# CONFIG_CRYPTO_SHA512 is not set 873# CONFIG_CRYPTO_SHA512 is not set
@@ -895,6 +916,7 @@ CONFIG_BITREVERSE=m
895# CONFIG_GENERIC_FIND_NEXT_BIT is not set 916# CONFIG_GENERIC_FIND_NEXT_BIT is not set
896# CONFIG_CRC_CCITT is not set 917# CONFIG_CRC_CCITT is not set
897# CONFIG_CRC16 is not set 918# CONFIG_CRC16 is not set
919CONFIG_CRC_T10DIF=y
898# CONFIG_CRC_ITU_T is not set 920# CONFIG_CRC_ITU_T is not set
899CONFIG_CRC32=m 921CONFIG_CRC32=m
900CONFIG_CRC7=m 922CONFIG_CRC7=m
diff --git a/arch/s390/include/asm/bitops.h b/arch/s390/include/asm/bitops.h
index b4eb24ab5af..8e9243ae0c1 100644
--- a/arch/s390/include/asm/bitops.h
+++ b/arch/s390/include/asm/bitops.h
@@ -709,7 +709,7 @@ static inline int find_next_zero_bit (const unsigned long * addr,
709 * __ffz_word returns __BITOPS_WORDSIZE 709 * __ffz_word returns __BITOPS_WORDSIZE
710 * if no zero bit is present in the word. 710 * if no zero bit is present in the word.
711 */ 711 */
712 set = __ffz_word(0, *p >> bit) + bit; 712 set = __ffz_word(bit, *p >> bit);
713 if (set >= size) 713 if (set >= size)
714 return size + offset; 714 return size + offset;
715 if (set < __BITOPS_WORDSIZE) 715 if (set < __BITOPS_WORDSIZE)
@@ -824,7 +824,7 @@ static inline int ext2_find_next_zero_bit(void *vaddr, unsigned long size,
824 * s390 version of ffz returns __BITOPS_WORDSIZE 824 * s390 version of ffz returns __BITOPS_WORDSIZE
825 * if no zero bit is present in the word. 825 * if no zero bit is present in the word.
826 */ 826 */
827 set = ffz(__load_ulong_le(p, 0) >> bit) + bit; 827 set = __ffz_word(bit, __load_ulong_le(p, 0) >> bit);
828 if (set >= size) 828 if (set >= size)
829 return size + offset; 829 return size + offset;
830 if (set < __BITOPS_WORDSIZE) 830 if (set < __BITOPS_WORDSIZE)
@@ -865,7 +865,7 @@ static inline int ext2_find_next_bit(void *vaddr, unsigned long size,
865 * s390 version of ffz returns __BITOPS_WORDSIZE 865 * s390 version of ffz returns __BITOPS_WORDSIZE
866 * if no zero bit is present in the word. 866 * if no zero bit is present in the word.
867 */ 867 */
868 set = ffs(__load_ulong_le(p, 0) >> bit) + bit; 868 set = __ffs_word(0, __load_ulong_le(p, 0) & (~0UL << bit));
869 if (set >= size) 869 if (set >= size)
870 return size + offset; 870 return size + offset;
871 if (set < __BITOPS_WORDSIZE) 871 if (set < __BITOPS_WORDSIZE)
diff --git a/arch/s390/kernel/compat_ptrace.h b/arch/s390/kernel/compat_ptrace.h
index cde81fa64f8..a2be3a978d5 100644
--- a/arch/s390/kernel/compat_ptrace.h
+++ b/arch/s390/kernel/compat_ptrace.h
@@ -42,6 +42,7 @@ struct user_regs_struct32
42 u32 gprs[NUM_GPRS]; 42 u32 gprs[NUM_GPRS];
43 u32 acrs[NUM_ACRS]; 43 u32 acrs[NUM_ACRS];
44 u32 orig_gpr2; 44 u32 orig_gpr2;
45 /* nb: there's a 4-byte hole here */
45 s390_fp_regs fp_regs; 46 s390_fp_regs fp_regs;
46 /* 47 /*
47 * These per registers are in here so that gdb can modify them 48 * These per registers are in here so that gdb can modify them
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
index 9839767d084..3e2c05cb6a8 100644
--- a/arch/s390/kernel/process.c
+++ b/arch/s390/kernel/process.c
@@ -75,7 +75,9 @@ unsigned long thread_saved_pc(struct task_struct *tsk)
75 return sf->gprs[8]; 75 return sf->gprs[8];
76} 76}
77 77
78DEFINE_PER_CPU(struct s390_idle_data, s390_idle); 78DEFINE_PER_CPU(struct s390_idle_data, s390_idle) = {
79 .lock = __SPIN_LOCK_UNLOCKED(s390_idle.lock)
80};
79 81
80static int s390_idle_enter(void) 82static int s390_idle_enter(void)
81{ 83{
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c
index 2815bfe348a..c8b08289eb8 100644
--- a/arch/s390/kernel/ptrace.c
+++ b/arch/s390/kernel/ptrace.c
@@ -170,6 +170,13 @@ static unsigned long __peek_user(struct task_struct *child, addr_t addr)
170 */ 170 */
171 tmp = (addr_t) task_pt_regs(child)->orig_gpr2; 171 tmp = (addr_t) task_pt_regs(child)->orig_gpr2;
172 172
173 } else if (addr < (addr_t) &dummy->regs.fp_regs) {
174 /*
175 * prevent reads of padding hole between
176 * orig_gpr2 and fp_regs on s390.
177 */
178 tmp = 0;
179
173 } else if (addr < (addr_t) (&dummy->regs.fp_regs + 1)) { 180 } else if (addr < (addr_t) (&dummy->regs.fp_regs + 1)) {
174 /* 181 /*
175 * floating point regs. are stored in the thread structure 182 * floating point regs. are stored in the thread structure
@@ -270,6 +277,13 @@ static int __poke_user(struct task_struct *child, addr_t addr, addr_t data)
270 */ 277 */
271 task_pt_regs(child)->orig_gpr2 = data; 278 task_pt_regs(child)->orig_gpr2 = data;
272 279
280 } else if (addr < (addr_t) &dummy->regs.fp_regs) {
281 /*
282 * prevent writes of padding hole between
283 * orig_gpr2 and fp_regs on s390.
284 */
285 return 0;
286
273 } else if (addr < (addr_t) (&dummy->regs.fp_regs + 1)) { 287 } else if (addr < (addr_t) (&dummy->regs.fp_regs + 1)) {
274 /* 288 /*
275 * floating point regs. are stored in the thread structure 289 * floating point regs. are stored in the thread structure
@@ -428,6 +442,13 @@ static u32 __peek_user_compat(struct task_struct *child, addr_t addr)
428 */ 442 */
429 tmp = *(__u32*)((addr_t) &task_pt_regs(child)->orig_gpr2 + 4); 443 tmp = *(__u32*)((addr_t) &task_pt_regs(child)->orig_gpr2 + 4);
430 444
445 } else if (addr < (addr_t) &dummy32->regs.fp_regs) {
446 /*
447 * prevent reads of padding hole between
448 * orig_gpr2 and fp_regs on s390.
449 */
450 tmp = 0;
451
431 } else if (addr < (addr_t) (&dummy32->regs.fp_regs + 1)) { 452 } else if (addr < (addr_t) (&dummy32->regs.fp_regs + 1)) {
432 /* 453 /*
433 * floating point regs. are stored in the thread structure 454 * floating point regs. are stored in the thread structure
@@ -514,6 +535,13 @@ static int __poke_user_compat(struct task_struct *child,
514 */ 535 */
515 *(__u32*)((addr_t) &task_pt_regs(child)->orig_gpr2 + 4) = tmp; 536 *(__u32*)((addr_t) &task_pt_regs(child)->orig_gpr2 + 4) = tmp;
516 537
538 } else if (addr < (addr_t) &dummy32->regs.fp_regs) {
539 /*
540 * prevent writess of padding hole between
541 * orig_gpr2 and fp_regs on s390.
542 */
543 return 0;
544
517 } else if (addr < (addr_t) (&dummy32->regs.fp_regs + 1)) { 545 } else if (addr < (addr_t) (&dummy32->regs.fp_regs + 1)) {
518 /* 546 /*
519 * floating point regs. are stored in the thread structure 547 * floating point regs. are stored in the thread structure
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index b795b3e24af..00b9b4dec5e 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -610,7 +610,6 @@ static void __init smp_create_idle(unsigned int cpu)
610 if (IS_ERR(p)) 610 if (IS_ERR(p))
611 panic("failed fork for CPU %u: %li", cpu, PTR_ERR(p)); 611 panic("failed fork for CPU %u: %li", cpu, PTR_ERR(p));
612 current_set[cpu] = p; 612 current_set[cpu] = p;
613 spin_lock_init(&(&per_cpu(s390_idle, cpu))->lock);
614} 613}
615 614
616static int __cpuinit smp_alloc_lowcore(int cpu) 615static int __cpuinit smp_alloc_lowcore(int cpu)
@@ -845,7 +844,6 @@ void __init smp_prepare_boot_cpu(void)
845 current_set[0] = current; 844 current_set[0] = current;
846 smp_cpu_state[0] = CPU_STATE_CONFIGURED; 845 smp_cpu_state[0] = CPU_STATE_CONFIGURED;
847 smp_cpu_polarization[0] = POLARIZATION_UNKNWN; 846 smp_cpu_polarization[0] = POLARIZATION_UNKNWN;
848 spin_lock_init(&(&__get_cpu_var(s390_idle))->lock);
849} 847}
850 848
851void __init smp_cpus_done(unsigned int max_cpus) 849void __init smp_cpus_done(unsigned int max_cpus)
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index ca114fe46ff..06acb1a18bb 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -169,6 +169,8 @@ void init_cpu_timer(void)
169 169
170static void clock_comparator_interrupt(__u16 code) 170static void clock_comparator_interrupt(__u16 code)
171{ 171{
172 if (S390_lowcore.clock_comparator == -1ULL)
173 set_clock_comparator(S390_lowcore.clock_comparator);
172} 174}
173 175
174static void etr_timing_alert(struct etr_irq_parm *); 176static void etr_timing_alert(struct etr_irq_parm *);
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S
index 76c1e60c92f..607bd67a18c 100644
--- a/arch/s390/kernel/vmlinux.lds.S
+++ b/arch/s390/kernel/vmlinux.lds.S
@@ -55,7 +55,7 @@ SECTIONS
55 __start___ex_table = .; 55 __start___ex_table = .;
56 *(__ex_table) 56 *(__ex_table)
57 __stop___ex_table = .; 57 __stop___ex_table = .;
58 } 58 } :data
59 59
60 .data : { /* Data */ 60 .data : { /* Data */
61 DATA_DATA 61 DATA_DATA
diff --git a/arch/s390/lib/delay.c b/arch/s390/lib/delay.c
index fc6ab6094df..0953cee05ef 100644
--- a/arch/s390/lib/delay.c
+++ b/arch/s390/lib/delay.c
@@ -1,14 +1,9 @@
1/* 1/*
2 * arch/s390/lib/delay.c
3 * Precise Delay Loops for S390 2 * Precise Delay Loops for S390
4 * 3 *
5 * S390 version 4 * Copyright IBM Corp. 1999,2008
6 * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation 5 * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>,
7 * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com), 6 * Heiko Carstens <heiko.carstens@de.ibm.com>,
8 *
9 * Derived from "arch/i386/lib/delay.c"
10 * Copyright (C) 1993 Linus Torvalds
11 * Copyright (C) 1997 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
12 */ 7 */
13 8
14#include <linux/sched.h> 9#include <linux/sched.h>
@@ -29,30 +24,31 @@ void __delay(unsigned long loops)
29 asm volatile("0: brct %0,0b" : : "d" ((loops/2) + 1)); 24 asm volatile("0: brct %0,0b" : : "d" ((loops/2) + 1));
30} 25}
31 26
32/* 27static void __udelay_disabled(unsigned long usecs)
33 * Waits for 'usecs' microseconds using the TOD clock comparator.
34 */
35void __udelay(unsigned long usecs)
36{ 28{
37 u64 end, time, old_cc = 0; 29 unsigned long mask, cr0, cr0_saved;
38 unsigned long flags, cr0, mask, dummy; 30 u64 clock_saved;
39 int irq_context;
40 31
41 irq_context = in_interrupt(); 32 clock_saved = local_tick_disable();
42 if (!irq_context) 33 set_clock_comparator(get_clock() + ((u64) usecs << 12));
43 local_bh_disable(); 34 __ctl_store(cr0_saved, 0, 0);
44 local_irq_save(flags); 35 cr0 = (cr0_saved & 0xffff00e0) | 0x00000800;
45 if (raw_irqs_disabled_flags(flags)) { 36 __ctl_load(cr0 , 0, 0);
46 old_cc = local_tick_disable(); 37 mask = psw_kernel_bits | PSW_MASK_WAIT | PSW_MASK_EXT;
47 S390_lowcore.clock_comparator = -1ULL; 38 trace_hardirqs_on();
48 __ctl_store(cr0, 0, 0); 39 __load_psw_mask(mask);
49 dummy = (cr0 & 0xffff00e0) | 0x00000800; 40 local_irq_disable();
50 __ctl_load(dummy , 0, 0); 41 __ctl_load(cr0_saved, 0, 0);
51 mask = psw_kernel_bits | PSW_MASK_WAIT | PSW_MASK_EXT; 42 local_tick_enable(clock_saved);
52 } else 43 set_clock_comparator(S390_lowcore.clock_comparator);
53 mask = psw_kernel_bits | PSW_MASK_WAIT | 44}
54 PSW_MASK_EXT | PSW_MASK_IO;
55 45
46static void __udelay_enabled(unsigned long usecs)
47{
48 unsigned long mask;
49 u64 end, time;
50
51 mask = psw_kernel_bits | PSW_MASK_WAIT | PSW_MASK_EXT | PSW_MASK_IO;
56 end = get_clock() + ((u64) usecs << 12); 52 end = get_clock() + ((u64) usecs << 12);
57 do { 53 do {
58 time = end < S390_lowcore.clock_comparator ? 54 time = end < S390_lowcore.clock_comparator ?
@@ -62,13 +58,37 @@ void __udelay(unsigned long usecs)
62 __load_psw_mask(mask); 58 __load_psw_mask(mask);
63 local_irq_disable(); 59 local_irq_disable();
64 } while (get_clock() < end); 60 } while (get_clock() < end);
61 set_clock_comparator(S390_lowcore.clock_comparator);
62}
65 63
66 if (raw_irqs_disabled_flags(flags)) { 64/*
67 __ctl_load(cr0, 0, 0); 65 * Waits for 'usecs' microseconds using the TOD clock comparator.
68 local_tick_enable(old_cc); 66 */
67void __udelay(unsigned long usecs)
68{
69 unsigned long flags;
70
71 preempt_disable();
72 local_irq_save(flags);
73 if (in_irq()) {
74 __udelay_disabled(usecs);
75 goto out;
76 }
77 if (in_softirq()) {
78 if (raw_irqs_disabled_flags(flags))
79 __udelay_disabled(usecs);
80 else
81 __udelay_enabled(usecs);
82 goto out;
69 } 83 }
70 if (!irq_context) 84 if (raw_irqs_disabled_flags(flags)) {
85 local_bh_disable();
86 __udelay_disabled(usecs);
71 _local_bh_enable(); 87 _local_bh_enable();
72 set_clock_comparator(S390_lowcore.clock_comparator); 88 goto out;
89 }
90 __udelay_enabled(usecs);
91out:
73 local_irq_restore(flags); 92 local_irq_restore(flags);
93 preempt_enable();
74} 94}
diff --git a/arch/sh/configs/ap325rxa_defconfig b/arch/sh/configs/ap325rxa_defconfig
index 29926a9b9ce..851c870adf3 100644
--- a/arch/sh/configs/ap325rxa_defconfig
+++ b/arch/sh/configs/ap325rxa_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26 3# Linux kernel version: 2.6.27-rc4
4# Wed Jul 30 01:18:59 2008 4# Tue Aug 26 14:21:17 2008
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -11,6 +11,7 @@ CONFIG_GENERIC_BUG=y
11CONFIG_GENERIC_FIND_NEXT_BIT=y 11CONFIG_GENERIC_FIND_NEXT_BIT=y
12CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
14CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
15CONFIG_GENERIC_CALIBRATE_DELAY=y 16CONFIG_GENERIC_CALIBRATE_DELAY=y
16CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
@@ -20,7 +21,6 @@ CONFIG_LOCKDEP_SUPPORT=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set 21# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_ARCH_NO_VIRT_TO_BUS=y 23CONFIG_ARCH_NO_VIRT_TO_BUS=y
23CONFIG_ARCH_SUPPORTS_AOUT=y
24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
25 25
26# 26#
@@ -58,7 +58,6 @@ CONFIG_SYSCTL=y
58CONFIG_EMBEDDED=y 58CONFIG_EMBEDDED=y
59CONFIG_UID16=y 59CONFIG_UID16=y
60CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
61CONFIG_SYSCTL_SYSCALL_CHECK=y
62# CONFIG_KALLSYMS is not set 61# CONFIG_KALLSYMS is not set
63CONFIG_HOTPLUG=y 62CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 63CONFIG_PRINTK=y
@@ -89,6 +88,7 @@ CONFIG_HAVE_OPROFILE=y
89# CONFIG_USE_GENERIC_SMP_HELPERS is not set 88# CONFIG_USE_GENERIC_SMP_HELPERS is not set
90CONFIG_HAVE_CLK=y 89CONFIG_HAVE_CLK=y
91CONFIG_PROC_PAGE_MONITOR=y 90CONFIG_PROC_PAGE_MONITOR=y
91CONFIG_HAVE_GENERIC_DMA_COHERENT=y
92CONFIG_SLABINFO=y 92CONFIG_SLABINFO=y
93CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
94# CONFIG_TINY_SHMEM is not set 94# CONFIG_TINY_SHMEM is not set
@@ -261,9 +261,10 @@ CONFIG_HZ_250=y
261# CONFIG_HZ_300 is not set 261# CONFIG_HZ_300 is not set
262# CONFIG_HZ_1000 is not set 262# CONFIG_HZ_1000 is not set
263CONFIG_HZ=250 263CONFIG_HZ=250
264# CONFIG_SCHED_HRTICK is not set 264CONFIG_SCHED_HRTICK=y
265# CONFIG_KEXEC is not set 265# CONFIG_KEXEC is not set
266# CONFIG_CRASH_DUMP is not set 266# CONFIG_CRASH_DUMP is not set
267CONFIG_SECCOMP=y
267# CONFIG_PREEMPT_NONE is not set 268# CONFIG_PREEMPT_NONE is not set
268# CONFIG_PREEMPT_VOLUNTARY is not set 269# CONFIG_PREEMPT_VOLUNTARY is not set
269CONFIG_PREEMPT=y 270CONFIG_PREEMPT=y
@@ -289,10 +290,6 @@ CONFIG_CMDLINE="console=tty1 console=ttySC5,38400 root=/dev/nfs ip=dhcp"
289# 290#
290CONFIG_BINFMT_ELF=y 291CONFIG_BINFMT_ELF=y
291# CONFIG_BINFMT_MISC is not set 292# CONFIG_BINFMT_MISC is not set
292
293#
294# Networking
295#
296CONFIG_NET=y 293CONFIG_NET=y
297 294
298# 295#
@@ -647,6 +644,7 @@ CONFIG_SSB_POSSIBLE=y
647# CONFIG_MFD_CORE is not set 644# CONFIG_MFD_CORE is not set
648# CONFIG_MFD_SM501 is not set 645# CONFIG_MFD_SM501 is not set
649# CONFIG_HTC_PASIC3 is not set 646# CONFIG_HTC_PASIC3 is not set
647# CONFIG_MFD_TMIO is not set
650 648
651# 649#
652# Multimedia devices 650# Multimedia devices
@@ -690,7 +688,10 @@ CONFIG_DUMMY_CONSOLE=y
690# CONFIG_ACCESSIBILITY is not set 688# CONFIG_ACCESSIBILITY is not set
691# CONFIG_RTC_CLASS is not set 689# CONFIG_RTC_CLASS is not set
692# CONFIG_DMADEVICES is not set 690# CONFIG_DMADEVICES is not set
693# CONFIG_UIO is not set 691CONFIG_UIO=y
692# CONFIG_UIO_PDRV is not set
693CONFIG_UIO_PDRV_GENIRQ=y
694# CONFIG_UIO_SMX is not set
694 695
695# 696#
696# File systems 697# File systems
@@ -854,6 +855,7 @@ CONFIG_FRAME_WARN=1024
854# CONFIG_DEBUG_KERNEL is not set 855# CONFIG_DEBUG_KERNEL is not set
855# CONFIG_DEBUG_BUGVERBOSE is not set 856# CONFIG_DEBUG_BUGVERBOSE is not set
856# CONFIG_DEBUG_MEMORY_INIT is not set 857# CONFIG_DEBUG_MEMORY_INIT is not set
858CONFIG_SYSCTL_SYSCALL_CHECK=y
857# CONFIG_SAMPLES is not set 859# CONFIG_SAMPLES is not set
858# CONFIG_SH_STANDARD_BIOS is not set 860# CONFIG_SH_STANDARD_BIOS is not set
859# CONFIG_EARLY_SCIF_CONSOLE is not set 861# CONFIG_EARLY_SCIF_CONSOLE is not set
diff --git a/arch/sh/configs/migor_defconfig b/arch/sh/configs/migor_defconfig
index c4b3e1d8950..4f8b1974f2c 100644
--- a/arch/sh/configs/migor_defconfig
+++ b/arch/sh/configs/migor_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26 3# Linux kernel version: 2.6.27-rc4
4# Wed Jul 30 01:44:41 2008 4# Tue Aug 26 14:18:17 2008
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -11,6 +11,7 @@ CONFIG_GENERIC_BUG=y
11CONFIG_GENERIC_FIND_NEXT_BIT=y 11CONFIG_GENERIC_FIND_NEXT_BIT=y
12CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
14CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
15CONFIG_GENERIC_CALIBRATE_DELAY=y 16CONFIG_GENERIC_CALIBRATE_DELAY=y
16CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
@@ -21,7 +22,6 @@ CONFIG_LOCKDEP_SUPPORT=y
21# CONFIG_ARCH_HAS_ILOG2_U32 is not set 22# CONFIG_ARCH_HAS_ILOG2_U32 is not set
22# CONFIG_ARCH_HAS_ILOG2_U64 is not set 23# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23CONFIG_ARCH_NO_VIRT_TO_BUS=y 24CONFIG_ARCH_NO_VIRT_TO_BUS=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 25CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
26 26
27# 27#
@@ -87,6 +87,7 @@ CONFIG_HAVE_OPROFILE=y
87# CONFIG_USE_GENERIC_SMP_HELPERS is not set 87# CONFIG_USE_GENERIC_SMP_HELPERS is not set
88CONFIG_HAVE_CLK=y 88CONFIG_HAVE_CLK=y
89CONFIG_PROC_PAGE_MONITOR=y 89CONFIG_PROC_PAGE_MONITOR=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 91CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 92CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set 93# CONFIG_TINY_SHMEM is not set
@@ -270,6 +271,7 @@ CONFIG_HZ=250
270# CONFIG_SCHED_HRTICK is not set 271# CONFIG_SCHED_HRTICK is not set
271# CONFIG_KEXEC is not set 272# CONFIG_KEXEC is not set
272# CONFIG_CRASH_DUMP is not set 273# CONFIG_CRASH_DUMP is not set
274CONFIG_SECCOMP=y
273CONFIG_PREEMPT_NONE=y 275CONFIG_PREEMPT_NONE=y
274# CONFIG_PREEMPT_VOLUNTARY is not set 276# CONFIG_PREEMPT_VOLUNTARY is not set
275# CONFIG_PREEMPT is not set 277# CONFIG_PREEMPT is not set
@@ -294,10 +296,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ip=on"
294# 296#
295CONFIG_BINFMT_ELF=y 297CONFIG_BINFMT_ELF=y
296# CONFIG_BINFMT_MISC is not set 298# CONFIG_BINFMT_MISC is not set
297
298#
299# Networking
300#
301CONFIG_NET=y 299CONFIG_NET=y
302 300
303# 301#
@@ -649,6 +647,7 @@ CONFIG_HW_RANDOM=y
649CONFIG_I2C=y 647CONFIG_I2C=y
650CONFIG_I2C_BOARDINFO=y 648CONFIG_I2C_BOARDINFO=y
651# CONFIG_I2C_CHARDEV is not set 649# CONFIG_I2C_CHARDEV is not set
650CONFIG_I2C_HELPER_AUTO=y
652 651
653# 652#
654# I2C Hardware Bus support 653# I2C Hardware Bus support
@@ -709,6 +708,7 @@ CONFIG_SSB_POSSIBLE=y
709# CONFIG_MFD_CORE is not set 708# CONFIG_MFD_CORE is not set
710# CONFIG_MFD_SM501 is not set 709# CONFIG_MFD_SM501 is not set
711# CONFIG_HTC_PASIC3 is not set 710# CONFIG_HTC_PASIC3 is not set
711# CONFIG_MFD_TMIO is not set
712 712
713# 713#
714# Multimedia devices 714# Multimedia devices
@@ -755,6 +755,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
755# CONFIG_USB is not set 755# CONFIG_USB is not set
756# CONFIG_USB_OTG_WHITELIST is not set 756# CONFIG_USB_OTG_WHITELIST is not set
757# CONFIG_USB_OTG_BLACKLIST_HUB is not set 757# CONFIG_USB_OTG_BLACKLIST_HUB is not set
758# CONFIG_USB_MUSB_HDRC is not set
759# CONFIG_USB_GADGET_MUSB_HDRC is not set
758 760
759# 761#
760# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 762# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -842,7 +844,10 @@ CONFIG_RTC_DRV_RS5C372=y
842# 844#
843CONFIG_RTC_DRV_SH=y 845CONFIG_RTC_DRV_SH=y
844# CONFIG_DMADEVICES is not set 846# CONFIG_DMADEVICES is not set
845# CONFIG_UIO is not set 847CONFIG_UIO=y
848# CONFIG_UIO_PDRV is not set
849CONFIG_UIO_PDRV_GENIRQ=y
850# CONFIG_UIO_SMX is not set
846 851
847# 852#
848# File systems 853# File systems
diff --git a/arch/sh/include/asm/uaccess_64.h b/arch/sh/include/asm/uaccess_64.h
index 81b3d515fcb..5580fd47100 100644
--- a/arch/sh/include/asm/uaccess_64.h
+++ b/arch/sh/include/asm/uaccess_64.h
@@ -76,4 +76,6 @@ extern long __put_user_asm_l(void *, long);
76extern long __put_user_asm_q(void *, long); 76extern long __put_user_asm_q(void *, long);
77extern void __put_user_unknown(void); 77extern void __put_user_unknown(void);
78 78
79extern long __strnlen_user(const char *__s, long __n);
80
79#endif /* __ASM_SH_UACCESS_64_H */ 81#endif /* __ASM_SH_UACCESS_64_H */
diff --git a/arch/sh/kernel/cpu/sh5/entry.S b/arch/sh/kernel/cpu/sh5/entry.S
index 04c7da96814..e640c63d581 100644
--- a/arch/sh/kernel/cpu/sh5/entry.S
+++ b/arch/sh/kernel/cpu/sh5/entry.S
@@ -2,7 +2,7 @@
2 * arch/sh/kernel/cpu/sh5/entry.S 2 * arch/sh/kernel/cpu/sh5/entry.S
3 * 3 *
4 * Copyright (C) 2000, 2001 Paolo Alberelli 4 * Copyright (C) 2000, 2001 Paolo Alberelli
5 * Copyright (C) 2004 - 2007 Paul Mundt 5 * Copyright (C) 2004 - 2008 Paul Mundt
6 * Copyright (C) 2003, 2004 Richard Curnow 6 * Copyright (C) 2003, 2004 Richard Curnow
7 * 7 *
8 * This file is subject to the terms and conditions of the GNU General Public 8 * This file is subject to the terms and conditions of the GNU General Public
@@ -923,6 +923,8 @@ ret_from_exception:
923 blink tr0, ZERO 923 blink tr0, ZERO
924 924
925resume_kernel: 925resume_kernel:
926 CLI()
927
926 pta restore_all, tr0 928 pta restore_all, tr0
927 929
928 getcon KCR0, r6 930 getcon KCR0, r6
@@ -939,19 +941,11 @@ need_resched:
939 andi r7, 0xf0, r7 941 andi r7, 0xf0, r7
940 bne r7, ZERO, tr0 942 bne r7, ZERO, tr0
941 943
942 movi ((PREEMPT_ACTIVE >> 16) & 65535), r8 944 movi preempt_schedule_irq, r7
943 shori (PREEMPT_ACTIVE & 65535), r8
944 st.l r6, TI_PRE_COUNT, r8
945
946 STI()
947 movi schedule, r7
948 ori r7, 1, r7 945 ori r7, 1, r7
949 ptabs r7, tr1 946 ptabs r7, tr1
950 blink tr1, LINK 947 blink tr1, LINK
951 948
952 st.l r6, TI_PRE_COUNT, ZERO
953 CLI()
954
955 pta need_resched, tr1 949 pta need_resched, tr1
956 blink tr1, ZERO 950 blink tr1, ZERO
957#endif 951#endif
diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S
index 0bc17def55a..efbb4268875 100644
--- a/arch/sh/kernel/entry-common.S
+++ b/arch/sh/kernel/entry-common.S
@@ -92,6 +92,7 @@ ENTRY(ret_from_irq)
92 bra resume_userspace 92 bra resume_userspace
93 nop 93 nop
94ENTRY(resume_kernel) 94ENTRY(resume_kernel)
95 cli
95 mov.l @(TI_PRE_COUNT,r8), r0 ! current_thread_info->preempt_count 96 mov.l @(TI_PRE_COUNT,r8), r0 ! current_thread_info->preempt_count
96 tst r0, r0 97 tst r0, r0
97 bf noresched 98 bf noresched
@@ -105,28 +106,9 @@ need_resched:
105 and #0xf0, r0 ! interrupts off (exception path)? 106 and #0xf0, r0 ! interrupts off (exception path)?
106 cmp/eq #0xf0, r0 107 cmp/eq #0xf0, r0
107 bt noresched 108 bt noresched
108
109 mov.l 1f, r0
110 mov.l r0, @(TI_PRE_COUNT,r8)
111
112#ifdef CONFIG_TRACE_IRQFLAGS
113 mov.l 3f, r0 109 mov.l 3f, r0
114 jsr @r0 110 jsr @r0 ! call preempt_schedule_irq
115 nop
116#endif
117 sti
118 mov.l 2f, r0
119 jsr @r0
120 nop
121 mov #0, r0
122 mov.l r0, @(TI_PRE_COUNT,r8)
123 cli
124#ifdef CONFIG_TRACE_IRQFLAGS
125 mov.l 4f, r0
126 jsr @r0
127 nop 111 nop
128#endif
129
130 bra need_resched 112 bra need_resched
131 nop 113 nop
132 114
@@ -137,10 +119,7 @@ noresched:
137 .align 2 119 .align 2
1381: .long PREEMPT_ACTIVE 1201: .long PREEMPT_ACTIVE
1392: .long schedule 1212: .long schedule
140#ifdef CONFIG_TRACE_IRQFLAGS 1223: .long preempt_schedule_irq
1413: .long trace_hardirqs_on
1424: .long trace_hardirqs_off
143#endif
144#endif 123#endif
145 124
146ENTRY(resume_userspace) 125ENTRY(resume_userspace)
diff --git a/arch/sh/kernel/machine_kexec.c b/arch/sh/kernel/machine_kexec.c
index 4703dff174d..94df56b0d1f 100644
--- a/arch/sh/kernel/machine_kexec.c
+++ b/arch/sh/kernel/machine_kexec.c
@@ -102,7 +102,7 @@ void machine_kexec(struct kimage *image)
102 102
103 /* now call it */ 103 /* now call it */
104 rnk = (relocate_new_kernel_t) reboot_code_buffer; 104 rnk = (relocate_new_kernel_t) reboot_code_buffer;
105 (*rnk)(page_list, reboot_code_buffer, image->start, vbr_reg); 105 (*rnk)(page_list, reboot_code_buffer, P2SEGADDR(image->start), vbr_reg);
106} 106}
107 107
108void arch_crash_save_vmcoreinfo(void) 108void arch_crash_save_vmcoreinfo(void)
diff --git a/arch/sh/kernel/ptrace_64.c b/arch/sh/kernel/ptrace_64.c
index 5922edd416d..9c6424892bd 100644
--- a/arch/sh/kernel/ptrace_64.c
+++ b/arch/sh/kernel/ptrace_64.c
@@ -131,6 +131,8 @@ void user_enable_single_step(struct task_struct *child)
131 131
132void user_disable_single_step(struct task_struct *child) 132void user_disable_single_step(struct task_struct *child)
133{ 133{
134 struct pt_regs *regs = child->thread.uregs;
135
134 regs->sr &= ~SR_SSTEP; 136 regs->sr &= ~SR_SSTEP;
135} 137}
136 138
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index a35207655e7..de832056bf1 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -171,6 +171,7 @@ static void __init reserve_crashkernel(void)
171 (unsigned long)(free_mem >> 20)); 171 (unsigned long)(free_mem >> 20));
172 crashk_res.start = crash_base; 172 crashk_res.start = crash_base;
173 crashk_res.end = crash_base + crash_size - 1; 173 crashk_res.end = crash_base + crash_size - 1;
174 insert_resource(&iomem_resource, &crashk_res);
174 } 175 }
175} 176}
176#else 177#else
@@ -204,11 +205,6 @@ void __init __add_active_range(unsigned int nid, unsigned long start_pfn,
204 request_resource(res, &data_resource); 205 request_resource(res, &data_resource);
205 request_resource(res, &bss_resource); 206 request_resource(res, &bss_resource);
206 207
207#ifdef CONFIG_KEXEC
208 if (crashk_res.start != crashk_res.end)
209 request_resource(res, &crashk_res);
210#endif
211
212 add_active_range(nid, start_pfn, end_pfn); 208 add_active_range(nid, start_pfn, end_pfn);
213} 209}
214 210
diff --git a/arch/sh/kernel/sys_sh.c b/arch/sh/kernel/sys_sh.c
index 59cd2859ce9..9061b86d73f 100644
--- a/arch/sh/kernel/sys_sh.c
+++ b/arch/sh/kernel/sys_sh.c
@@ -170,7 +170,7 @@ asmlinkage int sys_ipc(uint call, int first, int second,
170 version = call >> 16; /* hack for backward compatibility */ 170 version = call >> 16; /* hack for backward compatibility */
171 call &= 0xffff; 171 call &= 0xffff;
172 172
173 if (call <= SEMCTL) 173 if (call <= SEMTIMEDOP)
174 switch (call) { 174 switch (call) {
175 case SEMOP: 175 case SEMOP:
176 return sys_semtimedop(first, 176 return sys_semtimedop(first,
diff --git a/arch/sh/mm/consistent.c b/arch/sh/mm/consistent.c
index 895bb3f335c..64b8f7f96f9 100644
--- a/arch/sh/mm/consistent.c
+++ b/arch/sh/mm/consistent.c
@@ -101,7 +101,7 @@ static int __init memchunk_setup(char *str)
101} 101}
102__setup("memchunk.", memchunk_setup); 102__setup("memchunk.", memchunk_setup);
103 103
104static void memchunk_cmdline_override(char *name, unsigned long *sizep) 104static void __init memchunk_cmdline_override(char *name, unsigned long *sizep)
105{ 105{
106 char *p = boot_command_line; 106 char *p = boot_command_line;
107 int k = strlen(name); 107 int k = strlen(name);
@@ -118,8 +118,8 @@ static void memchunk_cmdline_override(char *name, unsigned long *sizep)
118 } 118 }
119} 119}
120 120
121int platform_resource_setup_memory(struct platform_device *pdev, 121int __init platform_resource_setup_memory(struct platform_device *pdev,
122 char *name, unsigned long memsize) 122 char *name, unsigned long memsize)
123{ 123{
124 struct resource *r; 124 struct resource *r;
125 dma_addr_t dma_handle; 125 dma_addr_t dma_handle;
diff --git a/arch/sparc/Makefile b/arch/sparc/Makefile
index 6668e6037af..9592889a6fd 100644
--- a/arch/sparc/Makefile
+++ b/arch/sparc/Makefile
@@ -52,20 +52,24 @@ endif
52export INIT_Y CORE_Y DRIVERS_Y NET_Y LIBS_Y HEAD_Y kallsyms.o 52export INIT_Y CORE_Y DRIVERS_Y NET_Y LIBS_Y HEAD_Y kallsyms.o
53 53
54# Default target 54# Default target
55all: image 55all: zImage
56 56
57boot := arch/sparc/boot 57boot := arch/sparc/boot
58 58
59image tftpboot.img: vmlinux 59image zImage tftpboot.img: vmlinux
60 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 60 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
61 61
62archclean: 62archclean:
63 $(Q)$(MAKE) $(clean)=$(boot) 63 $(Q)$(MAKE) $(clean)=$(boot)
64 64
65# This is the image used for packaging
66KBUILD_IMAGE := $(boot)/zImage
67
65CLEAN_FILES += arch/$(ARCH)/boot/System.map 68CLEAN_FILES += arch/$(ARCH)/boot/System.map
66 69
67# Don't use tabs in echo arguments. 70# Don't use tabs in echo arguments.
68define archhelp 71define archhelp
69 echo '* image - kernel image ($(boot)/image)' 72 echo '* image - kernel image ($(boot)/image)'
73 echo '* zImage - stripped kernel image ($(boot)/zImage)'
70 echo ' tftpboot.img - image prepared for tftp' 74 echo ' tftpboot.img - image prepared for tftp'
71endef 75endef
diff --git a/arch/sparc/boot/Makefile b/arch/sparc/boot/Makefile
index 22d331e1e94..3e77a9f5224 100644
--- a/arch/sparc/boot/Makefile
+++ b/arch/sparc/boot/Makefile
@@ -19,6 +19,9 @@ quiet_cmd_sysmap = SYSMAP $(obj)/System.map
19 cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap 19 cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap
20quiet_cmd_image = LD $@ 20quiet_cmd_image = LD $@
21 cmd_image = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) -o $@ 21 cmd_image = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) -o $@
22quiet_cmd_strip = STRIP $@
23 cmd_strip = $(STRIP) -R .comment -R .note -K sun4u_init -K _end -K _start $(obj)/image -o $@
24
22 25
23define rule_image 26define rule_image
24 $(if $($(quiet)cmd_image), \ 27 $(if $($(quiet)cmd_image), \
@@ -49,6 +52,9 @@ LDFLAGS_image := -T arch/sparc/kernel/vmlinux.lds $(BTOBJS) \
49$(obj)/image: $(obj)/btfix.o FORCE 52$(obj)/image: $(obj)/btfix.o FORCE
50 $(call if_changed_rule,image) 53 $(call if_changed_rule,image)
51 54
55$(obj)/zImage: $(obj)/image
56 $(call if_changed,strip)
57
52$(obj)/tftpboot.img: $(obj)/piggyback $(obj)/System.map $(obj)/image FORCE 58$(obj)/tftpboot.img: $(obj)/piggyback $(obj)/System.map $(obj)/image FORCE
53 $(call if_changed,elftoaout) 59 $(call if_changed,elftoaout)
54 $(call if_changed,piggy) 60 $(call if_changed,piggy)
diff --git a/arch/sparc/include/asm/smp_32.h b/arch/sparc/include/asm/smp_32.h
index 7201752cf93..a8180e546a4 100644
--- a/arch/sparc/include/asm/smp_32.h
+++ b/arch/sparc/include/asm/smp_32.h
@@ -50,27 +50,24 @@ struct seq_file;
50void smp_bogo(struct seq_file *); 50void smp_bogo(struct seq_file *);
51void smp_info(struct seq_file *); 51void smp_info(struct seq_file *);
52 52
53BTFIXUPDEF_CALL(void, smp_cross_call, smpfunc_t, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) 53BTFIXUPDEF_CALL(void, smp_cross_call, smpfunc_t, cpumask_t, unsigned long, unsigned long, unsigned long, unsigned long)
54BTFIXUPDEF_CALL(int, __hard_smp_processor_id, void) 54BTFIXUPDEF_CALL(int, __hard_smp_processor_id, void)
55BTFIXUPDEF_BLACKBOX(hard_smp_processor_id) 55BTFIXUPDEF_BLACKBOX(hard_smp_processor_id)
56BTFIXUPDEF_BLACKBOX(load_current) 56BTFIXUPDEF_BLACKBOX(load_current)
57 57
58#define smp_cross_call(func,arg1,arg2,arg3,arg4,arg5) BTFIXUP_CALL(smp_cross_call)(func,arg1,arg2,arg3,arg4,arg5) 58#define smp_cross_call(func,mask,arg1,arg2,arg3,arg4) BTFIXUP_CALL(smp_cross_call)(func,mask,arg1,arg2,arg3,arg4)
59 59
60static inline void xc0(smpfunc_t func) { smp_cross_call(func, 0, 0, 0, 0, 0); } 60static inline void xc0(smpfunc_t func) { smp_cross_call(func, cpu_online_map, 0, 0, 0, 0); }
61static inline void xc1(smpfunc_t func, unsigned long arg1) 61static inline void xc1(smpfunc_t func, unsigned long arg1)
62{ smp_cross_call(func, arg1, 0, 0, 0, 0); } 62{ smp_cross_call(func, cpu_online_map, arg1, 0, 0, 0); }
63static inline void xc2(smpfunc_t func, unsigned long arg1, unsigned long arg2) 63static inline void xc2(smpfunc_t func, unsigned long arg1, unsigned long arg2)
64{ smp_cross_call(func, arg1, arg2, 0, 0, 0); } 64{ smp_cross_call(func, cpu_online_map, arg1, arg2, 0, 0); }
65static inline void xc3(smpfunc_t func, unsigned long arg1, unsigned long arg2, 65static inline void xc3(smpfunc_t func, unsigned long arg1, unsigned long arg2,
66 unsigned long arg3) 66 unsigned long arg3)
67{ smp_cross_call(func, arg1, arg2, arg3, 0, 0); } 67{ smp_cross_call(func, cpu_online_map, arg1, arg2, arg3, 0); }
68static inline void xc4(smpfunc_t func, unsigned long arg1, unsigned long arg2, 68static inline void xc4(smpfunc_t func, unsigned long arg1, unsigned long arg2,
69 unsigned long arg3, unsigned long arg4) 69 unsigned long arg3, unsigned long arg4)
70{ smp_cross_call(func, arg1, arg2, arg3, arg4, 0); } 70{ smp_cross_call(func, cpu_online_map, arg1, arg2, arg3, arg4); }
71static inline void xc5(smpfunc_t func, unsigned long arg1, unsigned long arg2,
72 unsigned long arg3, unsigned long arg4, unsigned long arg5)
73{ smp_cross_call(func, arg1, arg2, arg3, arg4, arg5); }
74 71
75static inline int smp_call_function(void (*func)(void *info), void *info, int wait) 72static inline int smp_call_function(void (*func)(void *info), void *info, int wait)
76{ 73{
@@ -78,6 +75,14 @@ static inline int smp_call_function(void (*func)(void *info), void *info, int wa
78 return 0; 75 return 0;
79} 76}
80 77
78static inline int smp_call_function_single(int cpuid, void (*func) (void *info),
79 void *info, int wait)
80{
81 smp_cross_call((smpfunc_t)func, cpumask_of_cpu(cpuid),
82 (unsigned long) info, 0, 0, 0);
83 return 0;
84}
85
81static inline int cpu_logical_map(int cpu) 86static inline int cpu_logical_map(int cpu)
82{ 87{
83 return cpu; 88 return cpu;
diff --git a/arch/sparc/kernel/of_device.c b/arch/sparc/kernel/of_device.c
index cc4c235c4f5..f58c537446a 100644
--- a/arch/sparc/kernel/of_device.c
+++ b/arch/sparc/kernel/of_device.c
@@ -70,7 +70,7 @@ struct of_bus {
70 int *addrc, int *sizec); 70 int *addrc, int *sizec);
71 int (*map)(u32 *addr, const u32 *range, 71 int (*map)(u32 *addr, const u32 *range,
72 int na, int ns, int pna); 72 int na, int ns, int pna);
73 unsigned int (*get_flags)(const u32 *addr); 73 unsigned long (*get_flags)(const u32 *addr, unsigned long);
74}; 74};
75 75
76/* 76/*
@@ -130,8 +130,10 @@ static int of_bus_default_map(u32 *addr, const u32 *range,
130 return 0; 130 return 0;
131} 131}
132 132
133static unsigned int of_bus_default_get_flags(const u32 *addr) 133static unsigned long of_bus_default_get_flags(const u32 *addr, unsigned long flags)
134{ 134{
135 if (flags)
136 return flags;
135 return IORESOURCE_MEM; 137 return IORESOURCE_MEM;
136} 138}
137 139
@@ -194,17 +196,21 @@ static int of_bus_pci_map(u32 *addr, const u32 *range,
194 return 0; 196 return 0;
195} 197}
196 198
197static unsigned int of_bus_pci_get_flags(const u32 *addr) 199static unsigned long of_bus_pci_get_flags(const u32 *addr, unsigned long flags)
198{ 200{
199 unsigned int flags = 0;
200 u32 w = addr[0]; 201 u32 w = addr[0];
201 202
203 /* For PCI, we override whatever child busses may have used. */
204 flags = 0;
202 switch((w >> 24) & 0x03) { 205 switch((w >> 24) & 0x03) {
203 case 0x01: 206 case 0x01:
204 flags |= IORESOURCE_IO; 207 flags |= IORESOURCE_IO;
208 break;
209
205 case 0x02: /* 32 bits */ 210 case 0x02: /* 32 bits */
206 case 0x03: /* 64 bits */ 211 case 0x03: /* 64 bits */
207 flags |= IORESOURCE_MEM; 212 flags |= IORESOURCE_MEM;
213 break;
208 } 214 }
209 if (w & 0x40000000) 215 if (w & 0x40000000)
210 flags |= IORESOURCE_PREFETCH; 216 flags |= IORESOURCE_PREFETCH;
@@ -235,7 +241,7 @@ static int of_bus_sbus_map(u32 *addr, const u32 *range, int na, int ns, int pna)
235 return of_bus_default_map(addr, range, na, ns, pna); 241 return of_bus_default_map(addr, range, na, ns, pna);
236} 242}
237 243
238static unsigned int of_bus_sbus_get_flags(const u32 *addr) 244static unsigned long of_bus_sbus_get_flags(const u32 *addr, unsigned long flags)
239{ 245{
240 return IORESOURCE_MEM; 246 return IORESOURCE_MEM;
241} 247}
@@ -362,10 +368,11 @@ static void __init build_device_resources(struct of_device *op,
362 int pna, pns; 368 int pna, pns;
363 369
364 size = of_read_addr(reg + na, ns); 370 size = of_read_addr(reg + na, ns);
365 flags = bus->get_flags(reg);
366 371
367 memcpy(addr, reg, na * 4); 372 memcpy(addr, reg, na * 4);
368 373
374 flags = bus->get_flags(reg, 0);
375
369 /* If the immediate parent has no ranges property to apply, 376 /* If the immediate parent has no ranges property to apply,
370 * just use a 1<->1 mapping. 377 * just use a 1<->1 mapping.
371 */ 378 */
@@ -393,6 +400,8 @@ static void __init build_device_resources(struct of_device *op,
393 dna, dns, pna)) 400 dna, dns, pna))
394 break; 401 break;
395 402
403 flags = pbus->get_flags(addr, flags);
404
396 dna = pna; 405 dna = pna;
397 dns = pns; 406 dns = pns;
398 dbus = pbus; 407 dbus = pbus;
diff --git a/arch/sparc/kernel/ptrace.c b/arch/sparc/kernel/ptrace.c
index 20699c70141..8ce6285a06d 100644
--- a/arch/sparc/kernel/ptrace.c
+++ b/arch/sparc/kernel/ptrace.c
@@ -288,7 +288,7 @@ static const struct user_regset sparc32_regsets[] = {
288 */ 288 */
289 [REGSET_GENERAL] = { 289 [REGSET_GENERAL] = {
290 .core_note_type = NT_PRSTATUS, 290 .core_note_type = NT_PRSTATUS,
291 .n = 38 * sizeof(u32), 291 .n = 38,
292 .size = sizeof(u32), .align = sizeof(u32), 292 .size = sizeof(u32), .align = sizeof(u32),
293 .get = genregs32_get, .set = genregs32_set 293 .get = genregs32_get, .set = genregs32_set
294 }, 294 },
@@ -304,7 +304,7 @@ static const struct user_regset sparc32_regsets[] = {
304 */ 304 */
305 [REGSET_FP] = { 305 [REGSET_FP] = {
306 .core_note_type = NT_PRFPREG, 306 .core_note_type = NT_PRFPREG,
307 .n = 99 * sizeof(u32), 307 .n = 99,
308 .size = sizeof(u32), .align = sizeof(u32), 308 .size = sizeof(u32), .align = sizeof(u32),
309 .get = fpregs32_get, .set = fpregs32_set 309 .get = fpregs32_get, .set = fpregs32_set
310 }, 310 },
diff --git a/arch/sparc/kernel/sun4d_smp.c b/arch/sparc/kernel/sun4d_smp.c
index dfde77ff084..69596402a50 100644
--- a/arch/sparc/kernel/sun4d_smp.c
+++ b/arch/sparc/kernel/sun4d_smp.c
@@ -262,8 +262,9 @@ static struct smp_funcall {
262static DEFINE_SPINLOCK(cross_call_lock); 262static DEFINE_SPINLOCK(cross_call_lock);
263 263
264/* Cross calls must be serialized, at least currently. */ 264/* Cross calls must be serialized, at least currently. */
265void smp4d_cross_call(smpfunc_t func, unsigned long arg1, unsigned long arg2, 265static void smp4d_cross_call(smpfunc_t func, cpumask_t mask, unsigned long arg1,
266 unsigned long arg3, unsigned long arg4, unsigned long arg5) 266 unsigned long arg2, unsigned long arg3,
267 unsigned long arg4)
267{ 268{
268 if(smp_processors_ready) { 269 if(smp_processors_ready) {
269 register int high = smp_highest_cpu; 270 register int high = smp_highest_cpu;
@@ -278,7 +279,7 @@ void smp4d_cross_call(smpfunc_t func, unsigned long arg1, unsigned long arg2,
278 register unsigned long a2 asm("i2") = arg2; 279 register unsigned long a2 asm("i2") = arg2;
279 register unsigned long a3 asm("i3") = arg3; 280 register unsigned long a3 asm("i3") = arg3;
280 register unsigned long a4 asm("i4") = arg4; 281 register unsigned long a4 asm("i4") = arg4;
281 register unsigned long a5 asm("i5") = arg5; 282 register unsigned long a5 asm("i5") = 0;
282 283
283 __asm__ __volatile__( 284 __asm__ __volatile__(
284 "std %0, [%6]\n\t" 285 "std %0, [%6]\n\t"
@@ -290,11 +291,10 @@ void smp4d_cross_call(smpfunc_t func, unsigned long arg1, unsigned long arg2,
290 291
291 /* Init receive/complete mapping, plus fire the IPI's off. */ 292 /* Init receive/complete mapping, plus fire the IPI's off. */
292 { 293 {
293 cpumask_t mask;
294 register int i; 294 register int i;
295 295
296 mask = cpumask_of_cpu(hard_smp4d_processor_id()); 296 cpu_clear(smp_processor_id(), mask);
297 cpus_andnot(mask, cpu_online_map, mask); 297 cpus_and(mask, cpu_online_map, mask);
298 for(i = 0; i <= high; i++) { 298 for(i = 0; i <= high; i++) {
299 if (cpu_isset(i, mask)) { 299 if (cpu_isset(i, mask)) {
300 ccall_info.processors_in[i] = 0; 300 ccall_info.processors_in[i] = 0;
@@ -309,12 +309,16 @@ void smp4d_cross_call(smpfunc_t func, unsigned long arg1, unsigned long arg2,
309 309
310 i = 0; 310 i = 0;
311 do { 311 do {
312 if (!cpu_isset(i, mask))
313 continue;
312 while(!ccall_info.processors_in[i]) 314 while(!ccall_info.processors_in[i])
313 barrier(); 315 barrier();
314 } while(++i <= high); 316 } while(++i <= high);
315 317
316 i = 0; 318 i = 0;
317 do { 319 do {
320 if (!cpu_isset(i, mask))
321 continue;
318 while(!ccall_info.processors_out[i]) 322 while(!ccall_info.processors_out[i])
319 barrier(); 323 barrier();
320 } while(++i <= high); 324 } while(++i <= high);
diff --git a/arch/sparc/kernel/sun4m_smp.c b/arch/sparc/kernel/sun4m_smp.c
index 406ac1abc83..a14a76ac7f3 100644
--- a/arch/sparc/kernel/sun4m_smp.c
+++ b/arch/sparc/kernel/sun4m_smp.c
@@ -244,9 +244,9 @@ static struct smp_funcall {
244static DEFINE_SPINLOCK(cross_call_lock); 244static DEFINE_SPINLOCK(cross_call_lock);
245 245
246/* Cross calls must be serialized, at least currently. */ 246/* Cross calls must be serialized, at least currently. */
247static void smp4m_cross_call(smpfunc_t func, unsigned long arg1, 247static void smp4m_cross_call(smpfunc_t func, cpumask_t mask, unsigned long arg1,
248 unsigned long arg2, unsigned long arg3, 248 unsigned long arg2, unsigned long arg3,
249 unsigned long arg4, unsigned long arg5) 249 unsigned long arg4)
250{ 250{
251 register int ncpus = SUN4M_NCPUS; 251 register int ncpus = SUN4M_NCPUS;
252 unsigned long flags; 252 unsigned long flags;
@@ -259,14 +259,14 @@ static void smp4m_cross_call(smpfunc_t func, unsigned long arg1,
259 ccall_info.arg2 = arg2; 259 ccall_info.arg2 = arg2;
260 ccall_info.arg3 = arg3; 260 ccall_info.arg3 = arg3;
261 ccall_info.arg4 = arg4; 261 ccall_info.arg4 = arg4;
262 ccall_info.arg5 = arg5; 262 ccall_info.arg5 = 0;
263 263
264 /* Init receive/complete mapping, plus fire the IPI's off. */ 264 /* Init receive/complete mapping, plus fire the IPI's off. */
265 { 265 {
266 cpumask_t mask = cpu_online_map;
267 register int i; 266 register int i;
268 267
269 cpu_clear(smp_processor_id(), mask); 268 cpu_clear(smp_processor_id(), mask);
269 cpus_and(mask, cpu_online_map, mask);
270 for(i = 0; i < ncpus; i++) { 270 for(i = 0; i < ncpus; i++) {
271 if (cpu_isset(i, mask)) { 271 if (cpu_isset(i, mask)) {
272 ccall_info.processors_in[i] = 0; 272 ccall_info.processors_in[i] = 0;
@@ -284,12 +284,16 @@ static void smp4m_cross_call(smpfunc_t func, unsigned long arg1,
284 284
285 i = 0; 285 i = 0;
286 do { 286 do {
287 if (!cpu_isset(i, mask))
288 continue;
287 while(!ccall_info.processors_in[i]) 289 while(!ccall_info.processors_in[i])
288 barrier(); 290 barrier();
289 } while(++i < ncpus); 291 } while(++i < ncpus);
290 292
291 i = 0; 293 i = 0;
292 do { 294 do {
295 if (!cpu_isset(i, mask))
296 continue;
293 while(!ccall_info.processors_out[i]) 297 while(!ccall_info.processors_out[i])
294 barrier(); 298 barrier();
295 } while(++i < ncpus); 299 } while(++i < ncpus);
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index 923a98959fa..36b4b7ab9cf 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -231,6 +231,7 @@ endmenu
231 231
232config NUMA 232config NUMA
233 bool "NUMA support" 233 bool "NUMA support"
234 depends on SMP
234 235
235config NODES_SHIFT 236config NODES_SHIFT
236 int 237 int
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c
index 9b6689d9d57..7495bc77468 100644
--- a/arch/sparc64/kernel/irq.c
+++ b/arch/sparc64/kernel/irq.c
@@ -7,6 +7,7 @@
7 7
8#include <linux/module.h> 8#include <linux/module.h>
9#include <linux/sched.h> 9#include <linux/sched.h>
10#include <linux/linkage.h>
10#include <linux/ptrace.h> 11#include <linux/ptrace.h>
11#include <linux/errno.h> 12#include <linux/errno.h>
12#include <linux/kernel_stat.h> 13#include <linux/kernel_stat.h>
@@ -792,6 +793,8 @@ void fixup_irqs(void)
792 } 793 }
793 spin_unlock_irqrestore(&irq_desc[irq].lock, flags); 794 spin_unlock_irqrestore(&irq_desc[irq].lock, flags);
794 } 795 }
796
797 tick_ops->disable_irq();
795} 798}
796#endif 799#endif
797 800
@@ -864,7 +867,7 @@ static void kill_prom_timer(void)
864 : "g1", "g2"); 867 : "g1", "g2");
865} 868}
866 869
867void init_irqwork_curcpu(void) 870void notrace init_irqwork_curcpu(void)
868{ 871{
869 int cpu = hard_smp_processor_id(); 872 int cpu = hard_smp_processor_id();
870 873
@@ -895,7 +898,7 @@ static void __cpuinit register_one_mondo(unsigned long paddr, unsigned long type
895 } 898 }
896} 899}
897 900
898void __cpuinit sun4v_register_mondo_queues(int this_cpu) 901void __cpuinit notrace sun4v_register_mondo_queues(int this_cpu)
899{ 902{
900 struct trap_per_cpu *tb = &trap_block[this_cpu]; 903 struct trap_per_cpu *tb = &trap_block[this_cpu];
901 904
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c
index f8b50cbf4bf..100ebd52749 100644
--- a/arch/sparc64/kernel/of_device.c
+++ b/arch/sparc64/kernel/of_device.c
@@ -96,7 +96,7 @@ struct of_bus {
96 int *addrc, int *sizec); 96 int *addrc, int *sizec);
97 int (*map)(u32 *addr, const u32 *range, 97 int (*map)(u32 *addr, const u32 *range,
98 int na, int ns, int pna); 98 int na, int ns, int pna);
99 unsigned int (*get_flags)(const u32 *addr); 99 unsigned long (*get_flags)(const u32 *addr, unsigned long);
100}; 100};
101 101
102/* 102/*
@@ -156,8 +156,10 @@ static int of_bus_default_map(u32 *addr, const u32 *range,
156 return 0; 156 return 0;
157} 157}
158 158
159static unsigned int of_bus_default_get_flags(const u32 *addr) 159static unsigned long of_bus_default_get_flags(const u32 *addr, unsigned long flags)
160{ 160{
161 if (flags)
162 return flags;
161 return IORESOURCE_MEM; 163 return IORESOURCE_MEM;
162} 164}
163 165
@@ -167,7 +169,7 @@ static unsigned int of_bus_default_get_flags(const u32 *addr)
167 169
168static int of_bus_pci_match(struct device_node *np) 170static int of_bus_pci_match(struct device_node *np)
169{ 171{
170 if (!strcmp(np->type, "pci") || !strcmp(np->type, "pciex")) { 172 if (!strcmp(np->name, "pci")) {
171 const char *model = of_get_property(np, "model", NULL); 173 const char *model = of_get_property(np, "model", NULL);
172 174
173 if (model && !strcmp(model, "SUNW,simba")) 175 if (model && !strcmp(model, "SUNW,simba"))
@@ -198,7 +200,7 @@ static int of_bus_simba_match(struct device_node *np)
198 /* Treat PCI busses lacking ranges property just like 200 /* Treat PCI busses lacking ranges property just like
199 * simba. 201 * simba.
200 */ 202 */
201 if (!strcmp(np->type, "pci") || !strcmp(np->type, "pciex")) { 203 if (!strcmp(np->name, "pci")) {
202 if (!of_find_property(np, "ranges", NULL)) 204 if (!of_find_property(np, "ranges", NULL))
203 return 1; 205 return 1;
204 } 206 }
@@ -249,17 +251,21 @@ static int of_bus_pci_map(u32 *addr, const u32 *range,
249 return 0; 251 return 0;
250} 252}
251 253
252static unsigned int of_bus_pci_get_flags(const u32 *addr) 254static unsigned long of_bus_pci_get_flags(const u32 *addr, unsigned long flags)
253{ 255{
254 unsigned int flags = 0;
255 u32 w = addr[0]; 256 u32 w = addr[0];
256 257
258 /* For PCI, we override whatever child busses may have used. */
259 flags = 0;
257 switch((w >> 24) & 0x03) { 260 switch((w >> 24) & 0x03) {
258 case 0x01: 261 case 0x01:
259 flags |= IORESOURCE_IO; 262 flags |= IORESOURCE_IO;
263 break;
264
260 case 0x02: /* 32 bits */ 265 case 0x02: /* 32 bits */
261 case 0x03: /* 64 bits */ 266 case 0x03: /* 64 bits */
262 flags |= IORESOURCE_MEM; 267 flags |= IORESOURCE_MEM;
268 break;
263 } 269 }
264 if (w & 0x40000000) 270 if (w & 0x40000000)
265 flags |= IORESOURCE_PREFETCH; 271 flags |= IORESOURCE_PREFETCH;
@@ -423,7 +429,7 @@ static int __init use_1to1_mapping(struct device_node *pp)
423 * it lacks a ranges property, and this will include 429 * it lacks a ranges property, and this will include
424 * cases like Simba. 430 * cases like Simba.
425 */ 431 */
426 if (!strcmp(pp->type, "pci") || !strcmp(pp->type, "pciex")) 432 if (!strcmp(pp->name, "pci"))
427 return 0; 433 return 0;
428 434
429 return 1; 435 return 1;
@@ -478,10 +484,10 @@ static void __init build_device_resources(struct of_device *op,
478 int pna, pns; 484 int pna, pns;
479 485
480 size = of_read_addr(reg + na, ns); 486 size = of_read_addr(reg + na, ns);
481 flags = bus->get_flags(reg);
482
483 memcpy(addr, reg, na * 4); 487 memcpy(addr, reg, na * 4);
484 488
489 flags = bus->get_flags(addr, 0);
490
485 if (use_1to1_mapping(pp)) { 491 if (use_1to1_mapping(pp)) {
486 result = of_read_addr(addr, na); 492 result = of_read_addr(addr, na);
487 goto build_res; 493 goto build_res;
@@ -506,6 +512,8 @@ static void __init build_device_resources(struct of_device *op,
506 dna, dns, pna)) 512 dna, dns, pna))
507 break; 513 break;
508 514
515 flags = pbus->get_flags(addr, flags);
516
509 dna = pna; 517 dna = pna;
510 dns = pns; 518 dns = pns;
511 dbus = pbus; 519 dbus = pbus;
@@ -706,8 +714,7 @@ static unsigned int __init build_one_device_irq(struct of_device *op,
706 break; 714 break;
707 } 715 }
708 } else { 716 } else {
709 if (!strcmp(pp->type, "pci") || 717 if (!strcmp(pp->name, "pci")) {
710 !strcmp(pp->type, "pciex")) {
711 unsigned int this_orig_irq = irq; 718 unsigned int this_orig_irq = irq;
712 719
713 irq = pci_irq_swizzle(dp, pp, irq); 720 irq = pci_irq_swizzle(dp, pp, irq);
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c
index 55096195458..80dad76f8b8 100644
--- a/arch/sparc64/kernel/pci.c
+++ b/arch/sparc64/kernel/pci.c
@@ -425,7 +425,7 @@ struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
425 dev->current_state = 4; /* unknown power state */ 425 dev->current_state = 4; /* unknown power state */
426 dev->error_state = pci_channel_io_normal; 426 dev->error_state = pci_channel_io_normal;
427 427
428 if (!strcmp(type, "pci") || !strcmp(type, "pciex")) { 428 if (!strcmp(node->name, "pci")) {
429 /* a PCI-PCI bridge */ 429 /* a PCI-PCI bridge */
430 dev->hdr_type = PCI_HEADER_TYPE_BRIDGE; 430 dev->hdr_type = PCI_HEADER_TYPE_BRIDGE;
431 dev->rom_base_reg = PCI_ROM_ADDRESS1; 431 dev->rom_base_reg = PCI_ROM_ADDRESS1;
diff --git a/arch/sparc64/kernel/pci_psycho.c b/arch/sparc64/kernel/pci_psycho.c
index ef5fe29202c..f85b6bebb0b 100644
--- a/arch/sparc64/kernel/pci_psycho.c
+++ b/arch/sparc64/kernel/pci_psycho.c
@@ -575,7 +575,7 @@ static irqreturn_t psycho_pcierr_intr_other(struct pci_pbm_info *pbm, int is_pbm
575{ 575{
576 unsigned long csr_reg, csr, csr_error_bits; 576 unsigned long csr_reg, csr, csr_error_bits;
577 irqreturn_t ret = IRQ_NONE; 577 irqreturn_t ret = IRQ_NONE;
578 u16 stat; 578 u16 stat, *addr;
579 579
580 if (is_pbm_a) { 580 if (is_pbm_a) {
581 csr_reg = pbm->controller_regs + PSYCHO_PCIA_CTRL; 581 csr_reg = pbm->controller_regs + PSYCHO_PCIA_CTRL;
@@ -597,7 +597,9 @@ static irqreturn_t psycho_pcierr_intr_other(struct pci_pbm_info *pbm, int is_pbm
597 printk("%s: PCI SERR signal asserted.\n", pbm->name); 597 printk("%s: PCI SERR signal asserted.\n", pbm->name);
598 ret = IRQ_HANDLED; 598 ret = IRQ_HANDLED;
599 } 599 }
600 pci_read_config_word(pbm->pci_bus->self, PCI_STATUS, &stat); 600 addr = psycho_pci_config_mkaddr(pbm, pbm->pci_first_busno,
601 0, PCI_STATUS);
602 pci_config_read16(addr, &stat);
601 if (stat & (PCI_STATUS_PARITY | 603 if (stat & (PCI_STATUS_PARITY |
602 PCI_STATUS_SIG_TARGET_ABORT | 604 PCI_STATUS_SIG_TARGET_ABORT |
603 PCI_STATUS_REC_TARGET_ABORT | 605 PCI_STATUS_REC_TARGET_ABORT |
@@ -605,7 +607,7 @@ static irqreturn_t psycho_pcierr_intr_other(struct pci_pbm_info *pbm, int is_pbm
605 PCI_STATUS_SIG_SYSTEM_ERROR)) { 607 PCI_STATUS_SIG_SYSTEM_ERROR)) {
606 printk("%s: PCI bus error, PCI_STATUS[%04x]\n", 608 printk("%s: PCI bus error, PCI_STATUS[%04x]\n",
607 pbm->name, stat); 609 pbm->name, stat);
608 pci_write_config_word(pbm->pci_bus->self, PCI_STATUS, 0xffff); 610 pci_config_write16(addr, 0xffff);
609 ret = IRQ_HANDLED; 611 ret = IRQ_HANDLED;
610 } 612 }
611 return ret; 613 return ret;
@@ -744,16 +746,16 @@ static void psycho_register_error_handlers(struct pci_pbm_info *pbm)
744 * the second will just error out since we do not pass in 746 * the second will just error out since we do not pass in
745 * IRQF_SHARED. 747 * IRQF_SHARED.
746 */ 748 */
747 err = request_irq(op->irqs[1], psycho_ue_intr, 0, 749 err = request_irq(op->irqs[1], psycho_ue_intr, IRQF_SHARED,
748 "PSYCHO_UE", pbm); 750 "PSYCHO_UE", pbm);
749 err = request_irq(op->irqs[2], psycho_ce_intr, 0, 751 err = request_irq(op->irqs[2], psycho_ce_intr, IRQF_SHARED,
750 "PSYCHO_CE", pbm); 752 "PSYCHO_CE", pbm);
751 753
752 /* This one, however, ought not to fail. We can just warn 754 /* This one, however, ought not to fail. We can just warn
753 * about it since the system can still operate properly even 755 * about it since the system can still operate properly even
754 * if this fails. 756 * if this fails.
755 */ 757 */
756 err = request_irq(op->irqs[0], psycho_pcierr_intr, 0, 758 err = request_irq(op->irqs[0], psycho_pcierr_intr, IRQF_SHARED,
757 "PSYCHO_PCIERR", pbm); 759 "PSYCHO_PCIERR", pbm);
758 if (err) 760 if (err)
759 printk(KERN_WARNING "%s: Could not register PCIERR, " 761 printk(KERN_WARNING "%s: Could not register PCIERR, "
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c
index 3c048ac4e63..7151513f156 100644
--- a/arch/sparc64/kernel/prom.c
+++ b/arch/sparc64/kernel/prom.c
@@ -156,55 +156,11 @@ static unsigned long psycho_pcislot_imap_offset(unsigned long ino)
156 return PSYCHO_IMAP_B_SLOT0 + (slot * 8); 156 return PSYCHO_IMAP_B_SLOT0 + (slot * 8);
157} 157}
158 158
159#define PSYCHO_IMAP_SCSI 0x1000UL 159#define PSYCHO_OBIO_IMAP_BASE 0x1000UL
160#define PSYCHO_IMAP_ETH 0x1008UL 160
161#define PSYCHO_IMAP_BPP 0x1010UL
162#define PSYCHO_IMAP_AU_REC 0x1018UL
163#define PSYCHO_IMAP_AU_PLAY 0x1020UL
164#define PSYCHO_IMAP_PFAIL 0x1028UL
165#define PSYCHO_IMAP_KMS 0x1030UL
166#define PSYCHO_IMAP_FLPY 0x1038UL
167#define PSYCHO_IMAP_SHW 0x1040UL
168#define PSYCHO_IMAP_KBD 0x1048UL
169#define PSYCHO_IMAP_MS 0x1050UL
170#define PSYCHO_IMAP_SER 0x1058UL
171#define PSYCHO_IMAP_TIM0 0x1060UL
172#define PSYCHO_IMAP_TIM1 0x1068UL
173#define PSYCHO_IMAP_UE 0x1070UL
174#define PSYCHO_IMAP_CE 0x1078UL
175#define PSYCHO_IMAP_A_ERR 0x1080UL
176#define PSYCHO_IMAP_B_ERR 0x1088UL
177#define PSYCHO_IMAP_PMGMT 0x1090UL
178#define PSYCHO_IMAP_GFX 0x1098UL
179#define PSYCHO_IMAP_EUPA 0x10a0UL
180
181static unsigned long __psycho_onboard_imap_off[] = {
182/*0x20*/ PSYCHO_IMAP_SCSI,
183/*0x21*/ PSYCHO_IMAP_ETH,
184/*0x22*/ PSYCHO_IMAP_BPP,
185/*0x23*/ PSYCHO_IMAP_AU_REC,
186/*0x24*/ PSYCHO_IMAP_AU_PLAY,
187/*0x25*/ PSYCHO_IMAP_PFAIL,
188/*0x26*/ PSYCHO_IMAP_KMS,
189/*0x27*/ PSYCHO_IMAP_FLPY,
190/*0x28*/ PSYCHO_IMAP_SHW,
191/*0x29*/ PSYCHO_IMAP_KBD,
192/*0x2a*/ PSYCHO_IMAP_MS,
193/*0x2b*/ PSYCHO_IMAP_SER,
194/*0x2c*/ PSYCHO_IMAP_TIM0,
195/*0x2d*/ PSYCHO_IMAP_TIM1,
196/*0x2e*/ PSYCHO_IMAP_UE,
197/*0x2f*/ PSYCHO_IMAP_CE,
198/*0x30*/ PSYCHO_IMAP_A_ERR,
199/*0x31*/ PSYCHO_IMAP_B_ERR,
200/*0x32*/ PSYCHO_IMAP_PMGMT,
201/*0x33*/ PSYCHO_IMAP_GFX,
202/*0x34*/ PSYCHO_IMAP_EUPA,
203};
204#define PSYCHO_ONBOARD_IRQ_BASE 0x20 161#define PSYCHO_ONBOARD_IRQ_BASE 0x20
205#define PSYCHO_ONBOARD_IRQ_LAST 0x34
206#define psycho_onboard_imap_offset(__ino) \ 162#define psycho_onboard_imap_offset(__ino) \
207 __psycho_onboard_imap_off[(__ino) - PSYCHO_ONBOARD_IRQ_BASE] 163 (PSYCHO_OBIO_IMAP_BASE + (((__ino) & 0x1f) << 3))
208 164
209#define PSYCHO_ICLR_A_SLOT0 0x1400UL 165#define PSYCHO_ICLR_A_SLOT0 0x1400UL
210#define PSYCHO_ICLR_SCSI 0x1800UL 166#define PSYCHO_ICLR_SCSI 0x1800UL
@@ -228,10 +184,6 @@ static unsigned int psycho_irq_build(struct device_node *dp,
228 imap_off = psycho_pcislot_imap_offset(ino); 184 imap_off = psycho_pcislot_imap_offset(ino);
229 } else { 185 } else {
230 /* Onboard device */ 186 /* Onboard device */
231 if (ino > PSYCHO_ONBOARD_IRQ_LAST) {
232 prom_printf("psycho_irq_build: Wacky INO [%x]\n", ino);
233 prom_halt();
234 }
235 imap_off = psycho_onboard_imap_offset(ino); 187 imap_off = psycho_onboard_imap_offset(ino);
236 } 188 }
237 189
@@ -318,23 +270,6 @@ static void sabre_wsync_handler(unsigned int ino, void *_arg1, void *_arg2)
318 270
319#define SABRE_IMAP_A_SLOT0 0x0c00UL 271#define SABRE_IMAP_A_SLOT0 0x0c00UL
320#define SABRE_IMAP_B_SLOT0 0x0c20UL 272#define SABRE_IMAP_B_SLOT0 0x0c20UL
321#define SABRE_IMAP_SCSI 0x1000UL
322#define SABRE_IMAP_ETH 0x1008UL
323#define SABRE_IMAP_BPP 0x1010UL
324#define SABRE_IMAP_AU_REC 0x1018UL
325#define SABRE_IMAP_AU_PLAY 0x1020UL
326#define SABRE_IMAP_PFAIL 0x1028UL
327#define SABRE_IMAP_KMS 0x1030UL
328#define SABRE_IMAP_FLPY 0x1038UL
329#define SABRE_IMAP_SHW 0x1040UL
330#define SABRE_IMAP_KBD 0x1048UL
331#define SABRE_IMAP_MS 0x1050UL
332#define SABRE_IMAP_SER 0x1058UL
333#define SABRE_IMAP_UE 0x1070UL
334#define SABRE_IMAP_CE 0x1078UL
335#define SABRE_IMAP_PCIERR 0x1080UL
336#define SABRE_IMAP_GFX 0x1098UL
337#define SABRE_IMAP_EUPA 0x10a0UL
338#define SABRE_ICLR_A_SLOT0 0x1400UL 273#define SABRE_ICLR_A_SLOT0 0x1400UL
339#define SABRE_ICLR_B_SLOT0 0x1480UL 274#define SABRE_ICLR_B_SLOT0 0x1480UL
340#define SABRE_ICLR_SCSI 0x1800UL 275#define SABRE_ICLR_SCSI 0x1800UL
@@ -364,33 +299,10 @@ static unsigned long sabre_pcislot_imap_offset(unsigned long ino)
364 return SABRE_IMAP_B_SLOT0 + (slot * 8); 299 return SABRE_IMAP_B_SLOT0 + (slot * 8);
365} 300}
366 301
367static unsigned long __sabre_onboard_imap_off[] = { 302#define SABRE_OBIO_IMAP_BASE 0x1000UL
368/*0x20*/ SABRE_IMAP_SCSI, 303#define SABRE_ONBOARD_IRQ_BASE 0x20
369/*0x21*/ SABRE_IMAP_ETH,
370/*0x22*/ SABRE_IMAP_BPP,
371/*0x23*/ SABRE_IMAP_AU_REC,
372/*0x24*/ SABRE_IMAP_AU_PLAY,
373/*0x25*/ SABRE_IMAP_PFAIL,
374/*0x26*/ SABRE_IMAP_KMS,
375/*0x27*/ SABRE_IMAP_FLPY,
376/*0x28*/ SABRE_IMAP_SHW,
377/*0x29*/ SABRE_IMAP_KBD,
378/*0x2a*/ SABRE_IMAP_MS,
379/*0x2b*/ SABRE_IMAP_SER,
380/*0x2c*/ 0 /* reserved */,
381/*0x2d*/ 0 /* reserved */,
382/*0x2e*/ SABRE_IMAP_UE,
383/*0x2f*/ SABRE_IMAP_CE,
384/*0x30*/ SABRE_IMAP_PCIERR,
385/*0x31*/ 0 /* reserved */,
386/*0x32*/ 0 /* reserved */,
387/*0x33*/ SABRE_IMAP_GFX,
388/*0x34*/ SABRE_IMAP_EUPA,
389};
390#define SABRE_ONBOARD_IRQ_BASE 0x20
391#define SABRE_ONBOARD_IRQ_LAST 0x30
392#define sabre_onboard_imap_offset(__ino) \ 304#define sabre_onboard_imap_offset(__ino) \
393 __sabre_onboard_imap_off[(__ino) - SABRE_ONBOARD_IRQ_BASE] 305 (SABRE_OBIO_IMAP_BASE + (((__ino) & 0x1f) << 3))
394 306
395#define sabre_iclr_offset(ino) \ 307#define sabre_iclr_offset(ino) \
396 ((ino & 0x20) ? (SABRE_ICLR_SCSI + (((ino) & 0x1f) << 3)) : \ 308 ((ino & 0x20) ? (SABRE_ICLR_SCSI + (((ino) & 0x1f) << 3)) : \
@@ -453,10 +365,6 @@ static unsigned int sabre_irq_build(struct device_node *dp,
453 imap_off = sabre_pcislot_imap_offset(ino); 365 imap_off = sabre_pcislot_imap_offset(ino);
454 } else { 366 } else {
455 /* onboard device */ 367 /* onboard device */
456 if (ino > SABRE_ONBOARD_IRQ_LAST) {
457 prom_printf("sabre_irq_build: Wacky INO [%x]\n", ino);
458 prom_halt();
459 }
460 imap_off = sabre_onboard_imap_offset(ino); 368 imap_off = sabre_onboard_imap_offset(ino);
461 } 369 }
462 370
diff --git a/arch/sparc64/kernel/ptrace.c b/arch/sparc64/kernel/ptrace.c
index bd578cc4856..10306e476e3 100644
--- a/arch/sparc64/kernel/ptrace.c
+++ b/arch/sparc64/kernel/ptrace.c
@@ -443,7 +443,7 @@ static const struct user_regset sparc64_regsets[] = {
443 */ 443 */
444 [REGSET_GENERAL] = { 444 [REGSET_GENERAL] = {
445 .core_note_type = NT_PRSTATUS, 445 .core_note_type = NT_PRSTATUS,
446 .n = 36 * sizeof(u64), 446 .n = 36,
447 .size = sizeof(u64), .align = sizeof(u64), 447 .size = sizeof(u64), .align = sizeof(u64),
448 .get = genregs64_get, .set = genregs64_set 448 .get = genregs64_get, .set = genregs64_set
449 }, 449 },
@@ -455,7 +455,7 @@ static const struct user_regset sparc64_regsets[] = {
455 */ 455 */
456 [REGSET_FP] = { 456 [REGSET_FP] = {
457 .core_note_type = NT_PRFPREG, 457 .core_note_type = NT_PRFPREG,
458 .n = 35 * sizeof(u64), 458 .n = 35,
459 .size = sizeof(u64), .align = sizeof(u64), 459 .size = sizeof(u64), .align = sizeof(u64),
460 .get = fpregs64_get, .set = fpregs64_set 460 .get = fpregs64_get, .set = fpregs64_set
461 }, 461 },
@@ -801,7 +801,7 @@ static const struct user_regset sparc32_regsets[] = {
801 */ 801 */
802 [REGSET_GENERAL] = { 802 [REGSET_GENERAL] = {
803 .core_note_type = NT_PRSTATUS, 803 .core_note_type = NT_PRSTATUS,
804 .n = 38 * sizeof(u32), 804 .n = 38,
805 .size = sizeof(u32), .align = sizeof(u32), 805 .size = sizeof(u32), .align = sizeof(u32),
806 .get = genregs32_get, .set = genregs32_set 806 .get = genregs32_get, .set = genregs32_set
807 }, 807 },
@@ -817,7 +817,7 @@ static const struct user_regset sparc32_regsets[] = {
817 */ 817 */
818 [REGSET_FP] = { 818 [REGSET_FP] = {
819 .core_note_type = NT_PRFPREG, 819 .core_note_type = NT_PRFPREG,
820 .n = 99 * sizeof(u32), 820 .n = 99,
821 .size = sizeof(u32), .align = sizeof(u32), 821 .size = sizeof(u32), .align = sizeof(u32),
822 .get = fpregs32_get, .set = fpregs32_set 822 .get = fpregs32_get, .set = fpregs32_set
823 }, 823 },
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index 743ccad61c6..2be166c544c 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -80,8 +80,6 @@ void smp_bogo(struct seq_file *m)
80 i, cpu_data(i).clock_tick); 80 i, cpu_data(i).clock_tick);
81} 81}
82 82
83static __cacheline_aligned_in_smp DEFINE_SPINLOCK(call_lock);
84
85extern void setup_sparc64_timer(void); 83extern void setup_sparc64_timer(void);
86 84
87static volatile unsigned long callin_flag = 0; 85static volatile unsigned long callin_flag = 0;
@@ -120,9 +118,9 @@ void __cpuinit smp_callin(void)
120 while (!cpu_isset(cpuid, smp_commenced_mask)) 118 while (!cpu_isset(cpuid, smp_commenced_mask))
121 rmb(); 119 rmb();
122 120
123 spin_lock(&call_lock); 121 ipi_call_lock();
124 cpu_set(cpuid, cpu_online_map); 122 cpu_set(cpuid, cpu_online_map);
125 spin_unlock(&call_lock); 123 ipi_call_unlock();
126 124
127 /* idle thread is expected to have preempt disabled */ 125 /* idle thread is expected to have preempt disabled */
128 preempt_disable(); 126 preempt_disable();
@@ -1305,10 +1303,6 @@ int __cpu_disable(void)
1305 c->core_id = 0; 1303 c->core_id = 0;
1306 c->proc_id = -1; 1304 c->proc_id = -1;
1307 1305
1308 spin_lock(&call_lock);
1309 cpu_clear(cpu, cpu_online_map);
1310 spin_unlock(&call_lock);
1311
1312 smp_wmb(); 1306 smp_wmb();
1313 1307
1314 /* Make sure no interrupts point to this cpu. */ 1308 /* Make sure no interrupts point to this cpu. */
@@ -1318,6 +1312,10 @@ int __cpu_disable(void)
1318 mdelay(1); 1312 mdelay(1);
1319 local_irq_disable(); 1313 local_irq_disable();
1320 1314
1315 ipi_call_lock();
1316 cpu_clear(cpu, cpu_online_map);
1317 ipi_call_unlock();
1318
1321 return 0; 1319 return 0;
1322} 1320}
1323 1321
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c
index 3d924121c79..c824df13f58 100644
--- a/arch/sparc64/kernel/traps.c
+++ b/arch/sparc64/kernel/traps.c
@@ -10,6 +10,7 @@
10 10
11#include <linux/module.h> 11#include <linux/module.h>
12#include <linux/sched.h> 12#include <linux/sched.h>
13#include <linux/linkage.h>
13#include <linux/kernel.h> 14#include <linux/kernel.h>
14#include <linux/signal.h> 15#include <linux/signal.h>
15#include <linux/smp.h> 16#include <linux/smp.h>
@@ -2453,7 +2454,7 @@ struct trap_per_cpu trap_block[NR_CPUS];
2453/* This can get invoked before sched_init() so play it super safe 2454/* This can get invoked before sched_init() so play it super safe
2454 * and use hard_smp_processor_id(). 2455 * and use hard_smp_processor_id().
2455 */ 2456 */
2456void init_cur_cpu_trap(struct thread_info *t) 2457void notrace init_cur_cpu_trap(struct thread_info *t)
2457{ 2458{
2458 int cpu = hard_smp_processor_id(); 2459 int cpu = hard_smp_processor_id();
2459 struct trap_per_cpu *p = &trap_block[cpu]; 2460 struct trap_per_cpu *p = &trap_block[cpu];
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index b4aeb0f696d..a41df7bef03 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -1843,7 +1843,7 @@ static int pavail_rescan_ents __initdata;
1843 * memory list again, and make sure it provides at least as much 1843 * memory list again, and make sure it provides at least as much
1844 * memory as 'pavail' does. 1844 * memory as 'pavail' does.
1845 */ 1845 */
1846static void setup_valid_addr_bitmap_from_pavail(void) 1846static void __init setup_valid_addr_bitmap_from_pavail(void)
1847{ 1847{
1848 int i; 1848 int i;
1849 1849
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 765ef6ae64e..97f0d2b6dc0 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -29,6 +29,7 @@ config X86
29 select HAVE_FTRACE 29 select HAVE_FTRACE
30 select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64) 30 select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64)
31 select HAVE_ARCH_KGDB if !X86_VOYAGER 31 select HAVE_ARCH_KGDB if !X86_VOYAGER
32 select HAVE_ARCH_TRACEHOOK
32 select HAVE_GENERIC_DMA_COHERENT if X86_32 33 select HAVE_GENERIC_DMA_COHERENT if X86_32
33 select HAVE_EFFICIENT_UNALIGNED_ACCESS 34 select HAVE_EFFICIENT_UNALIGNED_ACCESS
34 35
@@ -577,35 +578,29 @@ config SWIOTLB
577 578
578config IOMMU_HELPER 579config IOMMU_HELPER
579 def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU) 580 def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB || AMD_IOMMU)
581
580config MAXSMP 582config MAXSMP
581 bool "Configure Maximum number of SMP Processors and NUMA Nodes" 583 bool "Configure Maximum number of SMP Processors and NUMA Nodes"
582 depends on X86_64 && SMP 584 depends on X86_64 && SMP && BROKEN
583 default n 585 default n
584 help 586 help
585 Configure maximum number of CPUS and NUMA Nodes for this architecture. 587 Configure maximum number of CPUS and NUMA Nodes for this architecture.
586 If unsure, say N. 588 If unsure, say N.
587 589
588if MAXSMP
589config NR_CPUS 590config NR_CPUS
590 int 591 int "Maximum number of CPUs (2-512)" if !MAXSMP
591 default "4096" 592 range 2 512
592endif
593
594if !MAXSMP
595config NR_CPUS
596 int "Maximum number of CPUs (2-4096)"
597 range 2 4096
598 depends on SMP 593 depends on SMP
594 default "4096" if MAXSMP
599 default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000 595 default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
600 default "8" 596 default "8"
601 help 597 help
602 This allows you to specify the maximum number of CPUs which this 598 This allows you to specify the maximum number of CPUs which this
603 kernel will support. The maximum supported value is 4096 and the 599 kernel will support. The maximum supported value is 512 and the
604 minimum value which makes sense is 2. 600 minimum value which makes sense is 2.
605 601
606 This is purely to save memory - each supported CPU adds 602 This is purely to save memory - each supported CPU adds
607 approximately eight kilobytes to the kernel image. 603 approximately eight kilobytes to the kernel image.
608endif
609 604
610config SCHED_SMT 605config SCHED_SMT
611 bool "SMT (Hyperthreading) scheduler support" 606 bool "SMT (Hyperthreading) scheduler support"
@@ -996,17 +991,10 @@ config NUMA_EMU
996 into virtual nodes when booted with "numa=fake=N", where N is the 991 into virtual nodes when booted with "numa=fake=N", where N is the
997 number of nodes. This is only useful for debugging. 992 number of nodes. This is only useful for debugging.
998 993
999if MAXSMP
1000
1001config NODES_SHIFT 994config NODES_SHIFT
1002 int 995 int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
1003 default "9"
1004endif
1005
1006if !MAXSMP
1007config NODES_SHIFT
1008 int "Maximum NUMA Nodes (as a power of 2)"
1009 range 1 9 if X86_64 996 range 1 9 if X86_64
997 default "9" if MAXSMP
1010 default "6" if X86_64 998 default "6" if X86_64
1011 default "4" if X86_NUMAQ 999 default "4" if X86_NUMAQ
1012 default "3" 1000 default "3"
@@ -1014,7 +1002,6 @@ config NODES_SHIFT
1014 help 1002 help
1015 Specify the maximum number of NUMA Nodes available on the target 1003 Specify the maximum number of NUMA Nodes available on the target
1016 system. Increases memory reserved to accomodate various tables. 1004 system. Increases memory reserved to accomodate various tables.
1017endif
1018 1005
1019config HAVE_ARCH_BOOTMEM_NODE 1006config HAVE_ARCH_BOOTMEM_NODE
1020 def_bool y 1007 def_bool y
@@ -1034,7 +1021,7 @@ config HAVE_ARCH_ALLOC_REMAP
1034 1021
1035config ARCH_FLATMEM_ENABLE 1022config ARCH_FLATMEM_ENABLE
1036 def_bool y 1023 def_bool y
1037 depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && X86_PC && !NUMA 1024 depends on X86_32 && ARCH_SELECT_MEMORY_MODEL && !NUMA
1038 1025
1039config ARCH_DISCONTIGMEM_ENABLE 1026config ARCH_DISCONTIGMEM_ENABLE
1040 def_bool y 1027 def_bool y
@@ -1050,7 +1037,7 @@ config ARCH_SPARSEMEM_DEFAULT
1050 1037
1051config ARCH_SPARSEMEM_ENABLE 1038config ARCH_SPARSEMEM_ENABLE
1052 def_bool y 1039 def_bool y
1053 depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC) 1040 depends on X86_64 || NUMA || (EXPERIMENTAL && X86_PC) || X86_GENERICARCH
1054 select SPARSEMEM_STATIC if X86_32 1041 select SPARSEMEM_STATIC if X86_32
1055 select SPARSEMEM_VMEMMAP_ENABLE if X86_64 1042 select SPARSEMEM_VMEMMAP_ENABLE if X86_64
1056 1043
@@ -1134,7 +1121,7 @@ config MTRR
1134 See <file:Documentation/x86/mtrr.txt> for more information. 1121 See <file:Documentation/x86/mtrr.txt> for more information.
1135 1122
1136config MTRR_SANITIZER 1123config MTRR_SANITIZER
1137 bool 1124 def_bool y
1138 prompt "MTRR cleanup support" 1125 prompt "MTRR cleanup support"
1139 depends on MTRR 1126 depends on MTRR
1140 help 1127 help
@@ -1145,7 +1132,7 @@ config MTRR_SANITIZER
1145 The largest mtrr entry size for a continous block can be set with 1132 The largest mtrr entry size for a continous block can be set with
1146 mtrr_chunk_size. 1133 mtrr_chunk_size.
1147 1134
1148 If unsure, say N. 1135 If unsure, say Y.
1149 1136
1150config MTRR_SANITIZER_ENABLE_DEFAULT 1137config MTRR_SANITIZER_ENABLE_DEFAULT
1151 int "MTRR cleanup enable value (0-1)" 1138 int "MTRR cleanup enable value (0-1)"
@@ -1205,7 +1192,6 @@ config IRQBALANCE
1205config SECCOMP 1192config SECCOMP
1206 def_bool y 1193 def_bool y
1207 prompt "Enable seccomp to safely compute untrusted bytecode" 1194 prompt "Enable seccomp to safely compute untrusted bytecode"
1208 depends on PROC_FS
1209 help 1195 help
1210 This kernel feature is useful for number crunching applications 1196 This kernel feature is useful for number crunching applications
1211 that may need to compute untrusted bytecode during their 1197 that may need to compute untrusted bytecode during their
@@ -1213,7 +1199,7 @@ config SECCOMP
1213 the process as file descriptors supporting the read/write 1199 the process as file descriptors supporting the read/write
1214 syscalls, it's possible to isolate those applications in 1200 syscalls, it's possible to isolate those applications in
1215 their own address space using seccomp. Once seccomp is 1201 their own address space using seccomp. Once seccomp is
1216 enabled via /proc/<pid>/seccomp, it cannot be disabled 1202 enabled via prctl(PR_SET_SECCOMP), it cannot be disabled
1217 and the task is only allowed to execute a few safe syscalls 1203 and the task is only allowed to execute a few safe syscalls
1218 defined by each seccomp mode. 1204 defined by each seccomp mode.
1219 1205
@@ -1370,14 +1356,14 @@ config PHYSICAL_ALIGN
1370 Don't change this unless you know what you are doing. 1356 Don't change this unless you know what you are doing.
1371 1357
1372config HOTPLUG_CPU 1358config HOTPLUG_CPU
1373 bool "Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)" 1359 bool "Support for hot-pluggable CPUs"
1374 depends on SMP && HOTPLUG && EXPERIMENTAL && !X86_VOYAGER 1360 depends on SMP && HOTPLUG && !X86_VOYAGER
1375 ---help--- 1361 ---help---
1376 Say Y here to experiment with turning CPUs off and on, and to 1362 Say Y here to allow turning CPUs off and on. CPUs can be
1377 enable suspend on SMP systems. CPUs can be controlled through 1363 controlled through /sys/devices/system/cpu.
1378 /sys/devices/system/cpu. 1364 ( Note: power management support will enable this option
1379 Say N if you want to disable CPU hotplug and don't need to 1365 automatically on SMP systems. )
1380 suspend. 1366 Say N if you want to disable CPU hotplug.
1381 1367
1382config COMPAT_VDSO 1368config COMPAT_VDSO
1383 def_bool y 1369 def_bool y
@@ -1392,6 +1378,51 @@ config COMPAT_VDSO
1392 1378
1393 If unsure, say Y. 1379 If unsure, say Y.
1394 1380
1381config CMDLINE_BOOL
1382 bool "Built-in kernel command line"
1383 default n
1384 help
1385 Allow for specifying boot arguments to the kernel at
1386 build time. On some systems (e.g. embedded ones), it is
1387 necessary or convenient to provide some or all of the
1388 kernel boot arguments with the kernel itself (that is,
1389 to not rely on the boot loader to provide them.)
1390
1391 To compile command line arguments into the kernel,
1392 set this option to 'Y', then fill in the
1393 the boot arguments in CONFIG_CMDLINE.
1394
1395 Systems with fully functional boot loaders (i.e. non-embedded)
1396 should leave this option set to 'N'.
1397
1398config CMDLINE
1399 string "Built-in kernel command string"
1400 depends on CMDLINE_BOOL
1401 default ""
1402 help
1403 Enter arguments here that should be compiled into the kernel
1404 image and used at boot time. If the boot loader provides a
1405 command line at boot time, it is appended to this string to
1406 form the full kernel command line, when the system boots.
1407
1408 However, you can use the CONFIG_CMDLINE_OVERRIDE option to
1409 change this behavior.
1410
1411 In most cases, the command line (whether built-in or provided
1412 by the boot loader) should specify the device for the root
1413 file system.
1414
1415config CMDLINE_OVERRIDE
1416 bool "Built-in command line overrides boot loader arguments"
1417 default n
1418 depends on CMDLINE_BOOL
1419 help
1420 Set this option to 'Y' to have the kernel ignore the boot loader
1421 command line, and use ONLY the built-in command line.
1422
1423 This is used to work around broken boot loaders. This should
1424 be set to 'N' under normal conditions.
1425
1395endmenu 1426endmenu
1396 1427
1397config ARCH_ENABLE_MEMORY_HOTPLUG 1428config ARCH_ENABLE_MEMORY_HOTPLUG
@@ -1787,7 +1818,7 @@ config COMPAT_FOR_U64_ALIGNMENT
1787 1818
1788config SYSVIPC_COMPAT 1819config SYSVIPC_COMPAT
1789 def_bool y 1820 def_bool y
1790 depends on X86_64 && COMPAT && SYSVIPC 1821 depends on COMPAT && SYSVIPC
1791 1822
1792endmenu 1823endmenu
1793 1824
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 2c518fbc52e..60a85768cfc 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -382,14 +382,17 @@ config X86_OOSTORE
382# P6_NOPs are a relatively minor optimization that require a family >= 382# P6_NOPs are a relatively minor optimization that require a family >=
383# 6 processor, except that it is broken on certain VIA chips. 383# 6 processor, except that it is broken on certain VIA chips.
384# Furthermore, AMD chips prefer a totally different sequence of NOPs 384# Furthermore, AMD chips prefer a totally different sequence of NOPs
385# (which work on all CPUs). As a result, disallow these if we're 385# (which work on all CPUs). In addition, it looks like Virtual PC
386# compiling X86_GENERIC but not X86_64 (these NOPs do work on all 386# does not understand them.
387# x86-64 capable chips); the list of processors in the right-hand clause 387#
388# are the cores that benefit from this optimization. 388# As a result, disallow these if we're not compiling for X86_64 (these
389# NOPs do work on all x86-64 capable chips); the list of processors in
390# the right-hand clause are the cores that benefit from this optimization.
389# 391#
390config X86_P6_NOP 392config X86_P6_NOP
391 def_bool y 393 def_bool y
392 depends on (X86_64 || !X86_GENERIC) && (M686 || MPENTIUMII || MPENTIUMIII || MPENTIUMM || MCORE2 || MPENTIUM4 || MPSC) 394 depends on X86_64
395 depends on (MCORE2 || MPENTIUM4 || MPSC)
393 396
394config X86_TSC 397config X86_TSC
395 def_bool y 398 def_bool y
@@ -415,3 +418,21 @@ config X86_MINIMUM_CPU_FAMILY
415config X86_DEBUGCTLMSR 418config X86_DEBUGCTLMSR
416 def_bool y 419 def_bool y
417 depends on !(MK6 || MWINCHIPC6 || MWINCHIP2 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486 || M386) 420 depends on !(MK6 || MWINCHIPC6 || MWINCHIP2 || MWINCHIP3D || MCYRIXIII || M586MMX || M586TSC || M586 || M486 || M386)
421
422config X86_DS
423 bool "Debug Store support"
424 default y
425 help
426 Add support for Debug Store.
427 This allows the kernel to provide a memory buffer to the hardware
428 to store various profiling and tracing events.
429
430config X86_PTRACE_BTS
431 bool "ptrace interface to Branch Trace Store"
432 default y
433 depends on (X86_DS && X86_DEBUGCTLMSR)
434 help
435 Add a ptrace interface to allow collecting an execution trace
436 of the traced task.
437 This collects control flow changes in a (cyclic) buffer and allows
438 debuggers to fill in the gaps and show an execution trace of the debuggee.
diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
index ba7736cf2ec..29c5fbf0839 100644
--- a/arch/x86/boot/compressed/head_32.S
+++ b/arch/x86/boot/compressed/head_32.S
@@ -137,14 +137,15 @@ relocated:
137 */ 137 */
138 movl output_len(%ebx), %eax 138 movl output_len(%ebx), %eax
139 pushl %eax 139 pushl %eax
140 # push arguments for decompress_kernel:
140 pushl %ebp # output address 141 pushl %ebp # output address
141 movl input_len(%ebx), %eax 142 movl input_len(%ebx), %eax
142 pushl %eax # input_len 143 pushl %eax # input_len
143 leal input_data(%ebx), %eax 144 leal input_data(%ebx), %eax
144 pushl %eax # input_data 145 pushl %eax # input_data
145 leal boot_heap(%ebx), %eax 146 leal boot_heap(%ebx), %eax
146 pushl %eax # heap area as third argument 147 pushl %eax # heap area
147 pushl %esi # real mode pointer as second arg 148 pushl %esi # real mode pointer
148 call decompress_kernel 149 call decompress_kernel
149 addl $20, %esp 150 addl $20, %esp
150 popl %ecx 151 popl %ecx
diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
index 9fea7370647..5780d361105 100644
--- a/arch/x86/boot/compressed/misc.c
+++ b/arch/x86/boot/compressed/misc.c
@@ -16,7 +16,7 @@
16 */ 16 */
17#undef CONFIG_PARAVIRT 17#undef CONFIG_PARAVIRT
18#ifdef CONFIG_X86_32 18#ifdef CONFIG_X86_32
19#define _ASM_DESC_H_ 1 19#define ASM_X86__DESC_H 1
20#endif 20#endif
21 21
22#ifdef CONFIG_X86_64 22#ifdef CONFIG_X86_64
@@ -27,7 +27,7 @@
27#include <linux/linkage.h> 27#include <linux/linkage.h>
28#include <linux/screen_info.h> 28#include <linux/screen_info.h>
29#include <linux/elf.h> 29#include <linux/elf.h>
30#include <asm/io.h> 30#include <linux/io.h>
31#include <asm/page.h> 31#include <asm/page.h>
32#include <asm/boot.h> 32#include <asm/boot.h>
33#include <asm/bootparam.h> 33#include <asm/bootparam.h>
@@ -251,7 +251,7 @@ static void __putstr(int error, const char *s)
251 y--; 251 y--;
252 } 252 }
253 } else { 253 } else {
254 vidmem [(x + cols * y) * 2] = c; 254 vidmem[(x + cols * y) * 2] = c;
255 if (++x >= cols) { 255 if (++x >= cols) {
256 x = 0; 256 x = 0;
257 if (++y >= lines) { 257 if (++y >= lines) {
@@ -277,7 +277,8 @@ static void *memset(void *s, int c, unsigned n)
277 int i; 277 int i;
278 char *ss = s; 278 char *ss = s;
279 279
280 for (i = 0; i < n; i++) ss[i] = c; 280 for (i = 0; i < n; i++)
281 ss[i] = c;
281 return s; 282 return s;
282} 283}
283 284
@@ -287,7 +288,8 @@ static void *memcpy(void *dest, const void *src, unsigned n)
287 const char *s = src; 288 const char *s = src;
288 char *d = dest; 289 char *d = dest;
289 290
290 for (i = 0; i < n; i++) d[i] = s[i]; 291 for (i = 0; i < n; i++)
292 d[i] = s[i];
291 return dest; 293 return dest;
292} 294}
293 295
diff --git a/arch/x86/boot/compressed/relocs.c b/arch/x86/boot/compressed/relocs.c
index a1310c52fc0..857e492c571 100644
--- a/arch/x86/boot/compressed/relocs.c
+++ b/arch/x86/boot/compressed/relocs.c
@@ -492,7 +492,7 @@ static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym))
492 continue; 492 continue;
493 } 493 }
494 sh_symtab = sec_symtab->symtab; 494 sh_symtab = sec_symtab->symtab;
495 sym_strtab = sec->link->strtab; 495 sym_strtab = sec_symtab->link->strtab;
496 for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) { 496 for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) {
497 Elf32_Rel *rel; 497 Elf32_Rel *rel;
498 Elf32_Sym *sym; 498 Elf32_Sym *sym;
diff --git a/arch/x86/boot/cpucheck.c b/arch/x86/boot/cpucheck.c
index 4b9ae7c5674..4d3ff037201 100644
--- a/arch/x86/boot/cpucheck.c
+++ b/arch/x86/boot/cpucheck.c
@@ -38,12 +38,12 @@ static const u32 req_flags[NCAPINTS] =
38{ 38{
39 REQUIRED_MASK0, 39 REQUIRED_MASK0,
40 REQUIRED_MASK1, 40 REQUIRED_MASK1,
41 REQUIRED_MASK2, 41 0, /* REQUIRED_MASK2 not implemented in this file */
42 REQUIRED_MASK3, 42 0, /* REQUIRED_MASK3 not implemented in this file */
43 REQUIRED_MASK4, 43 REQUIRED_MASK4,
44 REQUIRED_MASK5, 44 0, /* REQUIRED_MASK5 not implemented in this file */
45 REQUIRED_MASK6, 45 REQUIRED_MASK6,
46 REQUIRED_MASK7, 46 0, /* REQUIRED_MASK7 not implemented in this file */
47}; 47};
48 48
49#define A32(a, b, c, d) (((d) << 24)+((c) << 16)+((b) << 8)+(a)) 49#define A32(a, b, c, d) (((d) << 24)+((c) << 16)+((b) << 8)+(a))
diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
index af86e431acf..b993062e9a5 100644
--- a/arch/x86/boot/header.S
+++ b/arch/x86/boot/header.S
@@ -30,7 +30,6 @@ SYSSEG = DEF_SYSSEG /* system loaded at 0x10000 (65536) */
30SYSSIZE = DEF_SYSSIZE /* system size: # of 16-byte clicks */ 30SYSSIZE = DEF_SYSSIZE /* system size: # of 16-byte clicks */
31 /* to be loaded */ 31 /* to be loaded */
32ROOT_DEV = 0 /* ROOT_DEV is now written by "build" */ 32ROOT_DEV = 0 /* ROOT_DEV is now written by "build" */
33SWAP_DEV = 0 /* SWAP_DEV is now written by "build" */
34 33
35#ifndef SVGA_MODE 34#ifndef SVGA_MODE
36#define SVGA_MODE ASK_VGA 35#define SVGA_MODE ASK_VGA
diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
index 4d73f53287b..ef9a52005ec 100644
--- a/arch/x86/configs/i386_defconfig
+++ b/arch/x86/configs/i386_defconfig
@@ -1,13 +1,13 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc1 3# Linux kernel version: 2.6.27-rc5
4# Sun May 4 19:59:02 2008 4# Wed Sep 3 17:23:09 2008
5# 5#
6# CONFIG_64BIT is not set 6# CONFIG_64BIT is not set
7CONFIG_X86_32=y 7CONFIG_X86_32=y
8# CONFIG_X86_64 is not set 8# CONFIG_X86_64 is not set
9CONFIG_X86=y 9CONFIG_X86=y
10CONFIG_DEFCONFIG_LIST="arch/x86/configs/i386_defconfig" 10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
11# CONFIG_GENERIC_LOCKBREAK is not set 11# CONFIG_GENERIC_LOCKBREAK is not set
12CONFIG_GENERIC_TIME=y 12CONFIG_GENERIC_TIME=y
13CONFIG_GENERIC_CMOS_UPDATE=y 13CONFIG_GENERIC_CMOS_UPDATE=y
@@ -53,6 +53,7 @@ CONFIG_X86_HT=y
53CONFIG_X86_BIOS_REBOOT=y 53CONFIG_X86_BIOS_REBOOT=y
54CONFIG_X86_TRAMPOLINE=y 54CONFIG_X86_TRAMPOLINE=y
55CONFIG_KTIME_SCALAR=y 55CONFIG_KTIME_SCALAR=y
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
56 57
57# 58#
58# General setup 59# General setup
@@ -82,6 +83,7 @@ CONFIG_CGROUPS=y
82CONFIG_CGROUP_NS=y 83CONFIG_CGROUP_NS=y
83# CONFIG_CGROUP_DEVICE is not set 84# CONFIG_CGROUP_DEVICE is not set
84CONFIG_CPUSETS=y 85CONFIG_CPUSETS=y
86CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
85CONFIG_GROUP_SCHED=y 87CONFIG_GROUP_SCHED=y
86CONFIG_FAIR_GROUP_SCHED=y 88CONFIG_FAIR_GROUP_SCHED=y
87# CONFIG_RT_GROUP_SCHED is not set 89# CONFIG_RT_GROUP_SCHED is not set
@@ -105,7 +107,6 @@ CONFIG_SYSCTL=y
105# CONFIG_EMBEDDED is not set 107# CONFIG_EMBEDDED is not set
106CONFIG_UID16=y 108CONFIG_UID16=y
107CONFIG_SYSCTL_SYSCALL=y 109CONFIG_SYSCTL_SYSCALL=y
108CONFIG_SYSCTL_SYSCALL_CHECK=y
109CONFIG_KALLSYMS=y 110CONFIG_KALLSYMS=y
110CONFIG_KALLSYMS_ALL=y 111CONFIG_KALLSYMS_ALL=y
111CONFIG_KALLSYMS_EXTRA_PASS=y 112CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -113,6 +114,7 @@ CONFIG_HOTPLUG=y
113CONFIG_PRINTK=y 114CONFIG_PRINTK=y
114CONFIG_BUG=y 115CONFIG_BUG=y
115CONFIG_ELF_CORE=y 116CONFIG_ELF_CORE=y
117CONFIG_PCSPKR_PLATFORM=y
116# CONFIG_COMPAT_BRK is not set 118# CONFIG_COMPAT_BRK is not set
117CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
118CONFIG_FUTEX=y 120CONFIG_FUTEX=y
@@ -132,27 +134,35 @@ CONFIG_MARKERS=y
132# CONFIG_OPROFILE is not set 134# CONFIG_OPROFILE is not set
133CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
134CONFIG_KPROBES=y 136CONFIG_KPROBES=y
137CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
135CONFIG_KRETPROBES=y 138CONFIG_KRETPROBES=y
139CONFIG_HAVE_IOREMAP_PROT=y
136CONFIG_HAVE_KPROBES=y 140CONFIG_HAVE_KPROBES=y
137CONFIG_HAVE_KRETPROBES=y 141CONFIG_HAVE_KRETPROBES=y
142# CONFIG_HAVE_ARCH_TRACEHOOK is not set
138# CONFIG_HAVE_DMA_ATTRS is not set 143# CONFIG_HAVE_DMA_ATTRS is not set
144CONFIG_USE_GENERIC_SMP_HELPERS=y
145# CONFIG_HAVE_CLK is not set
139CONFIG_PROC_PAGE_MONITOR=y 146CONFIG_PROC_PAGE_MONITOR=y
147CONFIG_HAVE_GENERIC_DMA_COHERENT=y
140CONFIG_SLABINFO=y 148CONFIG_SLABINFO=y
141CONFIG_RT_MUTEXES=y 149CONFIG_RT_MUTEXES=y
142# CONFIG_TINY_SHMEM is not set 150# CONFIG_TINY_SHMEM is not set
143CONFIG_BASE_SMALL=0 151CONFIG_BASE_SMALL=0
144CONFIG_MODULES=y 152CONFIG_MODULES=y
153# CONFIG_MODULE_FORCE_LOAD is not set
145CONFIG_MODULE_UNLOAD=y 154CONFIG_MODULE_UNLOAD=y
146CONFIG_MODULE_FORCE_UNLOAD=y 155CONFIG_MODULE_FORCE_UNLOAD=y
147# CONFIG_MODVERSIONS is not set 156# CONFIG_MODVERSIONS is not set
148# CONFIG_MODULE_SRCVERSION_ALL is not set 157# CONFIG_MODULE_SRCVERSION_ALL is not set
149# CONFIG_KMOD is not set 158CONFIG_KMOD=y
150CONFIG_STOP_MACHINE=y 159CONFIG_STOP_MACHINE=y
151CONFIG_BLOCK=y 160CONFIG_BLOCK=y
152# CONFIG_LBD is not set 161# CONFIG_LBD is not set
153CONFIG_BLK_DEV_IO_TRACE=y 162CONFIG_BLK_DEV_IO_TRACE=y
154# CONFIG_LSF is not set 163# CONFIG_LSF is not set
155CONFIG_BLK_DEV_BSG=y 164CONFIG_BLK_DEV_BSG=y
165# CONFIG_BLK_DEV_INTEGRITY is not set
156 166
157# 167#
158# IO Schedulers 168# IO Schedulers
@@ -176,25 +186,23 @@ CONFIG_NO_HZ=y
176CONFIG_HIGH_RES_TIMERS=y 186CONFIG_HIGH_RES_TIMERS=y
177CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 187CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
178CONFIG_SMP=y 188CONFIG_SMP=y
189CONFIG_X86_FIND_SMP_CONFIG=y
190CONFIG_X86_MPPARSE=y
179CONFIG_X86_PC=y 191CONFIG_X86_PC=y
180# CONFIG_X86_ELAN is not set 192# CONFIG_X86_ELAN is not set
181# CONFIG_X86_VOYAGER is not set 193# CONFIG_X86_VOYAGER is not set
182# CONFIG_X86_NUMAQ is not set
183# CONFIG_X86_SUMMIT is not set
184# CONFIG_X86_BIGSMP is not set
185# CONFIG_X86_VISWS is not set
186# CONFIG_X86_GENERICARCH is not set 194# CONFIG_X86_GENERICARCH is not set
187# CONFIG_X86_ES7000 is not set
188# CONFIG_X86_RDC321X is not set
189# CONFIG_X86_VSMP is not set 195# CONFIG_X86_VSMP is not set
196# CONFIG_X86_RDC321X is not set
190CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 197CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
191# CONFIG_PARAVIRT_GUEST is not set 198# CONFIG_PARAVIRT_GUEST is not set
199# CONFIG_MEMTEST is not set
192# CONFIG_M386 is not set 200# CONFIG_M386 is not set
193# CONFIG_M486 is not set 201# CONFIG_M486 is not set
194# CONFIG_M586 is not set 202# CONFIG_M586 is not set
195# CONFIG_M586TSC is not set 203# CONFIG_M586TSC is not set
196# CONFIG_M586MMX is not set 204# CONFIG_M586MMX is not set
197# CONFIG_M686 is not set 205CONFIG_M686=y
198# CONFIG_MPENTIUMII is not set 206# CONFIG_MPENTIUMII is not set
199# CONFIG_MPENTIUMIII is not set 207# CONFIG_MPENTIUMIII is not set
200# CONFIG_MPENTIUMM is not set 208# CONFIG_MPENTIUMM is not set
@@ -213,30 +221,30 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
213# CONFIG_MVIAC3_2 is not set 221# CONFIG_MVIAC3_2 is not set
214# CONFIG_MVIAC7 is not set 222# CONFIG_MVIAC7 is not set
215# CONFIG_MPSC is not set 223# CONFIG_MPSC is not set
216CONFIG_MCORE2=y 224# CONFIG_MCORE2 is not set
217# CONFIG_GENERIC_CPU is not set 225# CONFIG_GENERIC_CPU is not set
218# CONFIG_X86_GENERIC is not set 226CONFIG_X86_GENERIC=y
219CONFIG_X86_CPU=y 227CONFIG_X86_CPU=y
220CONFIG_X86_CMPXCHG=y 228CONFIG_X86_CMPXCHG=y
221CONFIG_X86_L1_CACHE_SHIFT=6 229CONFIG_X86_L1_CACHE_SHIFT=7
222CONFIG_X86_XADD=y 230CONFIG_X86_XADD=y
231# CONFIG_X86_PPRO_FENCE is not set
223CONFIG_X86_WP_WORKS_OK=y 232CONFIG_X86_WP_WORKS_OK=y
224CONFIG_X86_INVLPG=y 233CONFIG_X86_INVLPG=y
225CONFIG_X86_BSWAP=y 234CONFIG_X86_BSWAP=y
226CONFIG_X86_POPAD_OK=y 235CONFIG_X86_POPAD_OK=y
227CONFIG_X86_GOOD_APIC=y
228CONFIG_X86_INTEL_USERCOPY=y 236CONFIG_X86_INTEL_USERCOPY=y
229CONFIG_X86_USE_PPRO_CHECKSUM=y 237CONFIG_X86_USE_PPRO_CHECKSUM=y
230CONFIG_X86_P6_NOP=y
231CONFIG_X86_TSC=y 238CONFIG_X86_TSC=y
232CONFIG_X86_MINIMUM_CPU_FAMILY=6 239CONFIG_X86_CMOV=y
240CONFIG_X86_MINIMUM_CPU_FAMILY=4
233CONFIG_X86_DEBUGCTLMSR=y 241CONFIG_X86_DEBUGCTLMSR=y
234CONFIG_HPET_TIMER=y 242CONFIG_HPET_TIMER=y
235CONFIG_HPET_EMULATE_RTC=y 243CONFIG_HPET_EMULATE_RTC=y
236CONFIG_DMI=y 244CONFIG_DMI=y
237# CONFIG_IOMMU_HELPER is not set 245# CONFIG_IOMMU_HELPER is not set
238CONFIG_NR_CPUS=4 246CONFIG_NR_CPUS=64
239# CONFIG_SCHED_SMT is not set 247CONFIG_SCHED_SMT=y
240CONFIG_SCHED_MC=y 248CONFIG_SCHED_MC=y
241# CONFIG_PREEMPT_NONE is not set 249# CONFIG_PREEMPT_NONE is not set
242CONFIG_PREEMPT_VOLUNTARY=y 250CONFIG_PREEMPT_VOLUNTARY=y
@@ -247,8 +255,9 @@ CONFIG_X86_IO_APIC=y
247CONFIG_VM86=y 255CONFIG_VM86=y
248# CONFIG_TOSHIBA is not set 256# CONFIG_TOSHIBA is not set
249# CONFIG_I8K is not set 257# CONFIG_I8K is not set
250# CONFIG_X86_REBOOTFIXUPS is not set 258CONFIG_X86_REBOOTFIXUPS=y
251# CONFIG_MICROCODE is not set 259CONFIG_MICROCODE=y
260CONFIG_MICROCODE_OLD_INTERFACE=y
252CONFIG_X86_MSR=y 261CONFIG_X86_MSR=y
253CONFIG_X86_CPUID=y 262CONFIG_X86_CPUID=y
254# CONFIG_NOHIGHMEM is not set 263# CONFIG_NOHIGHMEM is not set
@@ -256,32 +265,28 @@ CONFIG_HIGHMEM4G=y
256# CONFIG_HIGHMEM64G is not set 265# CONFIG_HIGHMEM64G is not set
257CONFIG_PAGE_OFFSET=0xC0000000 266CONFIG_PAGE_OFFSET=0xC0000000
258CONFIG_HIGHMEM=y 267CONFIG_HIGHMEM=y
259CONFIG_NEED_NODE_MEMMAP_SIZE=y
260CONFIG_ARCH_FLATMEM_ENABLE=y 268CONFIG_ARCH_FLATMEM_ENABLE=y
261CONFIG_ARCH_SPARSEMEM_ENABLE=y 269CONFIG_ARCH_SPARSEMEM_ENABLE=y
262CONFIG_ARCH_SELECT_MEMORY_MODEL=y 270CONFIG_ARCH_SELECT_MEMORY_MODEL=y
263CONFIG_SELECT_MEMORY_MODEL=y 271CONFIG_SELECT_MEMORY_MODEL=y
264# CONFIG_FLATMEM_MANUAL is not set 272CONFIG_FLATMEM_MANUAL=y
265# CONFIG_DISCONTIGMEM_MANUAL is not set 273# CONFIG_DISCONTIGMEM_MANUAL is not set
266CONFIG_SPARSEMEM_MANUAL=y 274# CONFIG_SPARSEMEM_MANUAL is not set
267CONFIG_SPARSEMEM=y 275CONFIG_FLATMEM=y
268CONFIG_HAVE_MEMORY_PRESENT=y 276CONFIG_FLAT_NODE_MEM_MAP=y
269CONFIG_SPARSEMEM_STATIC=y 277CONFIG_SPARSEMEM_STATIC=y
270# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 278# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
271
272#
273# Memory hotplug is currently incompatible with Software Suspend
274#
275CONFIG_PAGEFLAGS_EXTENDED=y 279CONFIG_PAGEFLAGS_EXTENDED=y
276CONFIG_SPLIT_PTLOCK_CPUS=4 280CONFIG_SPLIT_PTLOCK_CPUS=4
277CONFIG_RESOURCES_64BIT=y 281CONFIG_RESOURCES_64BIT=y
278CONFIG_ZONE_DMA_FLAG=1 282CONFIG_ZONE_DMA_FLAG=1
279CONFIG_BOUNCE=y 283CONFIG_BOUNCE=y
280CONFIG_VIRT_TO_BUS=y 284CONFIG_VIRT_TO_BUS=y
281# CONFIG_HIGHPTE is not set 285CONFIG_HIGHPTE=y
282# CONFIG_MATH_EMULATION is not set 286# CONFIG_MATH_EMULATION is not set
283CONFIG_MTRR=y 287CONFIG_MTRR=y
284# CONFIG_X86_PAT is not set 288# CONFIG_MTRR_SANITIZER is not set
289CONFIG_X86_PAT=y
285CONFIG_EFI=y 290CONFIG_EFI=y
286# CONFIG_IRQBALANCE is not set 291# CONFIG_IRQBALANCE is not set
287CONFIG_SECCOMP=y 292CONFIG_SECCOMP=y
@@ -293,6 +298,7 @@ CONFIG_HZ=1000
293CONFIG_SCHED_HRTICK=y 298CONFIG_SCHED_HRTICK=y
294CONFIG_KEXEC=y 299CONFIG_KEXEC=y
295CONFIG_CRASH_DUMP=y 300CONFIG_CRASH_DUMP=y
301# CONFIG_KEXEC_JUMP is not set
296CONFIG_PHYSICAL_START=0x1000000 302CONFIG_PHYSICAL_START=0x1000000
297CONFIG_RELOCATABLE=y 303CONFIG_RELOCATABLE=y
298CONFIG_PHYSICAL_ALIGN=0x200000 304CONFIG_PHYSICAL_ALIGN=0x200000
@@ -312,6 +318,7 @@ CONFIG_PM_TRACE_RTC=y
312CONFIG_PM_SLEEP_SMP=y 318CONFIG_PM_SLEEP_SMP=y
313CONFIG_PM_SLEEP=y 319CONFIG_PM_SLEEP=y
314CONFIG_SUSPEND=y 320CONFIG_SUSPEND=y
321# CONFIG_PM_TEST_SUSPEND is not set
315CONFIG_SUSPEND_FREEZER=y 322CONFIG_SUSPEND_FREEZER=y
316CONFIG_HIBERNATION=y 323CONFIG_HIBERNATION=y
317CONFIG_PM_STD_PARTITION="" 324CONFIG_PM_STD_PARTITION=""
@@ -337,6 +344,7 @@ CONFIG_ACPI_THERMAL=y
337CONFIG_ACPI_BLACKLIST_YEAR=0 344CONFIG_ACPI_BLACKLIST_YEAR=0
338# CONFIG_ACPI_DEBUG is not set 345# CONFIG_ACPI_DEBUG is not set
339CONFIG_ACPI_EC=y 346CONFIG_ACPI_EC=y
347# CONFIG_ACPI_PCI_SLOT is not set
340CONFIG_ACPI_POWER=y 348CONFIG_ACPI_POWER=y
341CONFIG_ACPI_SYSTEM=y 349CONFIG_ACPI_SYSTEM=y
342CONFIG_X86_PM_TIMER=y 350CONFIG_X86_PM_TIMER=y
@@ -395,8 +403,8 @@ CONFIG_PCI=y
395# CONFIG_PCI_GOBIOS is not set 403# CONFIG_PCI_GOBIOS is not set
396# CONFIG_PCI_GOMMCONFIG is not set 404# CONFIG_PCI_GOMMCONFIG is not set
397# CONFIG_PCI_GODIRECT is not set 405# CONFIG_PCI_GODIRECT is not set
398CONFIG_PCI_GOANY=y
399# CONFIG_PCI_GOOLPC is not set 406# CONFIG_PCI_GOOLPC is not set
407CONFIG_PCI_GOANY=y
400CONFIG_PCI_BIOS=y 408CONFIG_PCI_BIOS=y
401CONFIG_PCI_DIRECT=y 409CONFIG_PCI_DIRECT=y
402CONFIG_PCI_MMCONFIG=y 410CONFIG_PCI_MMCONFIG=y
@@ -448,10 +456,6 @@ CONFIG_HOTPLUG_PCI=y
448CONFIG_BINFMT_ELF=y 456CONFIG_BINFMT_ELF=y
449# CONFIG_BINFMT_AOUT is not set 457# CONFIG_BINFMT_AOUT is not set
450CONFIG_BINFMT_MISC=y 458CONFIG_BINFMT_MISC=y
451
452#
453# Networking
454#
455CONFIG_NET=y 459CONFIG_NET=y
456 460
457# 461#
@@ -475,7 +479,10 @@ CONFIG_IP_FIB_HASH=y
475CONFIG_IP_MULTIPLE_TABLES=y 479CONFIG_IP_MULTIPLE_TABLES=y
476CONFIG_IP_ROUTE_MULTIPATH=y 480CONFIG_IP_ROUTE_MULTIPATH=y
477CONFIG_IP_ROUTE_VERBOSE=y 481CONFIG_IP_ROUTE_VERBOSE=y
478# CONFIG_IP_PNP is not set 482CONFIG_IP_PNP=y
483CONFIG_IP_PNP_DHCP=y
484CONFIG_IP_PNP_BOOTP=y
485CONFIG_IP_PNP_RARP=y
479# CONFIG_NET_IPIP is not set 486# CONFIG_NET_IPIP is not set
480# CONFIG_NET_IPGRE is not set 487# CONFIG_NET_IPGRE is not set
481CONFIG_IP_MROUTE=y 488CONFIG_IP_MROUTE=y
@@ -618,7 +625,6 @@ CONFIG_NET_SCHED=y
618# CONFIG_NET_SCH_HTB is not set 625# CONFIG_NET_SCH_HTB is not set
619# CONFIG_NET_SCH_HFSC is not set 626# CONFIG_NET_SCH_HFSC is not set
620# CONFIG_NET_SCH_PRIO is not set 627# CONFIG_NET_SCH_PRIO is not set
621# CONFIG_NET_SCH_RR is not set
622# CONFIG_NET_SCH_RED is not set 628# CONFIG_NET_SCH_RED is not set
623# CONFIG_NET_SCH_SFQ is not set 629# CONFIG_NET_SCH_SFQ is not set
624# CONFIG_NET_SCH_TEQL is not set 630# CONFIG_NET_SCH_TEQL is not set
@@ -680,28 +686,19 @@ CONFIG_FIB_RULES=y
680CONFIG_CFG80211=y 686CONFIG_CFG80211=y
681CONFIG_NL80211=y 687CONFIG_NL80211=y
682CONFIG_WIRELESS_EXT=y 688CONFIG_WIRELESS_EXT=y
689CONFIG_WIRELESS_EXT_SYSFS=y
683CONFIG_MAC80211=y 690CONFIG_MAC80211=y
684 691
685# 692#
686# Rate control algorithm selection 693# Rate control algorithm selection
687# 694#
695CONFIG_MAC80211_RC_PID=y
688CONFIG_MAC80211_RC_DEFAULT_PID=y 696CONFIG_MAC80211_RC_DEFAULT_PID=y
689# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
690
691#
692# Selecting 'y' for an algorithm will
693#
694
695#
696# build the algorithm into mac80211.
697#
698CONFIG_MAC80211_RC_DEFAULT="pid" 697CONFIG_MAC80211_RC_DEFAULT="pid"
699CONFIG_MAC80211_RC_PID=y
700# CONFIG_MAC80211_MESH is not set 698# CONFIG_MAC80211_MESH is not set
701CONFIG_MAC80211_LEDS=y 699CONFIG_MAC80211_LEDS=y
702# CONFIG_MAC80211_DEBUGFS is not set 700# CONFIG_MAC80211_DEBUGFS is not set
703# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set 701# CONFIG_MAC80211_DEBUG_MENU is not set
704# CONFIG_MAC80211_DEBUG is not set
705# CONFIG_IEEE80211 is not set 702# CONFIG_IEEE80211 is not set
706# CONFIG_RFKILL is not set 703# CONFIG_RFKILL is not set
707# CONFIG_NET_9P is not set 704# CONFIG_NET_9P is not set
@@ -717,6 +714,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
717CONFIG_STANDALONE=y 714CONFIG_STANDALONE=y
718CONFIG_PREVENT_FIRMWARE_BUILD=y 715CONFIG_PREVENT_FIRMWARE_BUILD=y
719CONFIG_FW_LOADER=y 716CONFIG_FW_LOADER=y
717CONFIG_FIRMWARE_IN_KERNEL=y
718CONFIG_EXTRA_FIRMWARE=""
720# CONFIG_DEBUG_DRIVER is not set 719# CONFIG_DEBUG_DRIVER is not set
721CONFIG_DEBUG_DEVRES=y 720CONFIG_DEBUG_DEVRES=y
722# CONFIG_SYS_HYPERVISOR is not set 721# CONFIG_SYS_HYPERVISOR is not set
@@ -749,6 +748,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
749# CONFIG_BLK_DEV_XIP is not set 748# CONFIG_BLK_DEV_XIP is not set
750# CONFIG_CDROM_PKTCDVD is not set 749# CONFIG_CDROM_PKTCDVD is not set
751# CONFIG_ATA_OVER_ETH is not set 750# CONFIG_ATA_OVER_ETH is not set
751# CONFIG_BLK_DEV_HD is not set
752CONFIG_MISC_DEVICES=y 752CONFIG_MISC_DEVICES=y
753# CONFIG_IBM_ASM is not set 753# CONFIG_IBM_ASM is not set
754# CONFIG_PHANTOM is not set 754# CONFIG_PHANTOM is not set
@@ -760,10 +760,12 @@ CONFIG_MISC_DEVICES=y
760# CONFIG_FUJITSU_LAPTOP is not set 760# CONFIG_FUJITSU_LAPTOP is not set
761# CONFIG_TC1100_WMI is not set 761# CONFIG_TC1100_WMI is not set
762# CONFIG_MSI_LAPTOP is not set 762# CONFIG_MSI_LAPTOP is not set
763# CONFIG_COMPAL_LAPTOP is not set
763# CONFIG_SONY_LAPTOP is not set 764# CONFIG_SONY_LAPTOP is not set
764# CONFIG_THINKPAD_ACPI is not set 765# CONFIG_THINKPAD_ACPI is not set
765# CONFIG_INTEL_MENLOW is not set 766# CONFIG_INTEL_MENLOW is not set
766# CONFIG_ENCLOSURE_SERVICES is not set 767# CONFIG_ENCLOSURE_SERVICES is not set
768# CONFIG_HP_ILO is not set
767CONFIG_HAVE_IDE=y 769CONFIG_HAVE_IDE=y
768# CONFIG_IDE is not set 770# CONFIG_IDE is not set
769 771
@@ -802,12 +804,13 @@ CONFIG_SCSI_WAIT_SCAN=m
802# 804#
803CONFIG_SCSI_SPI_ATTRS=y 805CONFIG_SCSI_SPI_ATTRS=y
804# CONFIG_SCSI_FC_ATTRS is not set 806# CONFIG_SCSI_FC_ATTRS is not set
805# CONFIG_SCSI_ISCSI_ATTRS is not set 807CONFIG_SCSI_ISCSI_ATTRS=y
806# CONFIG_SCSI_SAS_ATTRS is not set 808# CONFIG_SCSI_SAS_ATTRS is not set
807# CONFIG_SCSI_SAS_LIBSAS is not set 809# CONFIG_SCSI_SAS_LIBSAS is not set
808# CONFIG_SCSI_SRP_ATTRS is not set 810# CONFIG_SCSI_SRP_ATTRS is not set
809# CONFIG_SCSI_LOWLEVEL is not set 811# CONFIG_SCSI_LOWLEVEL is not set
810# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 812# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
813# CONFIG_SCSI_DH is not set
811CONFIG_ATA=y 814CONFIG_ATA=y
812# CONFIG_ATA_NONSTANDARD is not set 815# CONFIG_ATA_NONSTANDARD is not set
813CONFIG_ATA_ACPI=y 816CONFIG_ATA_ACPI=y
@@ -842,7 +845,7 @@ CONFIG_PATA_AMD=y
842# CONFIG_PATA_CS5536 is not set 845# CONFIG_PATA_CS5536 is not set
843# CONFIG_PATA_CYPRESS is not set 846# CONFIG_PATA_CYPRESS is not set
844# CONFIG_PATA_EFAR is not set 847# CONFIG_PATA_EFAR is not set
845# CONFIG_ATA_GENERIC is not set 848CONFIG_ATA_GENERIC=y
846# CONFIG_PATA_HPT366 is not set 849# CONFIG_PATA_HPT366 is not set
847# CONFIG_PATA_HPT37X is not set 850# CONFIG_PATA_HPT37X is not set
848# CONFIG_PATA_HPT3X2N is not set 851# CONFIG_PATA_HPT3X2N is not set
@@ -852,7 +855,7 @@ CONFIG_PATA_AMD=y
852# CONFIG_PATA_JMICRON is not set 855# CONFIG_PATA_JMICRON is not set
853# CONFIG_PATA_TRIFLEX is not set 856# CONFIG_PATA_TRIFLEX is not set
854# CONFIG_PATA_MARVELL is not set 857# CONFIG_PATA_MARVELL is not set
855# CONFIG_PATA_MPIIX is not set 858CONFIG_PATA_MPIIX=y
856CONFIG_PATA_OLDPIIX=y 859CONFIG_PATA_OLDPIIX=y
857# CONFIG_PATA_NETCELL is not set 860# CONFIG_PATA_NETCELL is not set
858# CONFIG_PATA_NINJA32 is not set 861# CONFIG_PATA_NINJA32 is not set
@@ -871,6 +874,7 @@ CONFIG_PATA_OLDPIIX=y
871# CONFIG_PATA_SIS is not set 874# CONFIG_PATA_SIS is not set
872# CONFIG_PATA_VIA is not set 875# CONFIG_PATA_VIA is not set
873# CONFIG_PATA_WINBOND is not set 876# CONFIG_PATA_WINBOND is not set
877CONFIG_PATA_SCH=y
874CONFIG_MD=y 878CONFIG_MD=y
875CONFIG_BLK_DEV_MD=y 879CONFIG_BLK_DEV_MD=y
876# CONFIG_MD_LINEAR is not set 880# CONFIG_MD_LINEAR is not set
@@ -894,13 +898,16 @@ CONFIG_DM_ZERO=y
894# 898#
895# IEEE 1394 (FireWire) support 899# IEEE 1394 (FireWire) support
896# 900#
901
902#
903# Enable only one of the two stacks, unless you know what you are doing
904#
897# CONFIG_FIREWIRE is not set 905# CONFIG_FIREWIRE is not set
898# CONFIG_IEEE1394 is not set 906# CONFIG_IEEE1394 is not set
899# CONFIG_I2O is not set 907# CONFIG_I2O is not set
900CONFIG_MACINTOSH_DRIVERS=y 908CONFIG_MACINTOSH_DRIVERS=y
901CONFIG_MAC_EMUMOUSEBTN=y 909CONFIG_MAC_EMUMOUSEBTN=y
902CONFIG_NETDEVICES=y 910CONFIG_NETDEVICES=y
903# CONFIG_NETDEVICES_MULTIQUEUE is not set
904# CONFIG_IFB is not set 911# CONFIG_IFB is not set
905# CONFIG_DUMMY is not set 912# CONFIG_DUMMY is not set
906# CONFIG_BONDING is not set 913# CONFIG_BONDING is not set
@@ -910,7 +917,23 @@ CONFIG_NETDEVICES=y
910# CONFIG_VETH is not set 917# CONFIG_VETH is not set
911# CONFIG_NET_SB1000 is not set 918# CONFIG_NET_SB1000 is not set
912# CONFIG_ARCNET is not set 919# CONFIG_ARCNET is not set
913# CONFIG_PHYLIB is not set 920CONFIG_PHYLIB=y
921
922#
923# MII PHY device drivers
924#
925# CONFIG_MARVELL_PHY is not set
926# CONFIG_DAVICOM_PHY is not set
927# CONFIG_QSEMI_PHY is not set
928# CONFIG_LXT_PHY is not set
929# CONFIG_CICADA_PHY is not set
930# CONFIG_VITESSE_PHY is not set
931# CONFIG_SMSC_PHY is not set
932# CONFIG_BROADCOM_PHY is not set
933# CONFIG_ICPLUS_PHY is not set
934# CONFIG_REALTEK_PHY is not set
935# CONFIG_FIXED_PHY is not set
936# CONFIG_MDIO_BITBANG is not set
914CONFIG_NET_ETHERNET=y 937CONFIG_NET_ETHERNET=y
915CONFIG_MII=y 938CONFIG_MII=y
916# CONFIG_HAPPYMEAL is not set 939# CONFIG_HAPPYMEAL is not set
@@ -943,10 +966,10 @@ CONFIG_FORCEDETH=y
943CONFIG_E100=y 966CONFIG_E100=y
944# CONFIG_FEALNX is not set 967# CONFIG_FEALNX is not set
945# CONFIG_NATSEMI is not set 968# CONFIG_NATSEMI is not set
946# CONFIG_NE2K_PCI is not set 969CONFIG_NE2K_PCI=y
947# CONFIG_8139CP is not set 970# CONFIG_8139CP is not set
948CONFIG_8139TOO=y 971CONFIG_8139TOO=y
949CONFIG_8139TOO_PIO=y 972# CONFIG_8139TOO_PIO is not set
950# CONFIG_8139TOO_TUNE_TWISTER is not set 973# CONFIG_8139TOO_TUNE_TWISTER is not set
951# CONFIG_8139TOO_8129 is not set 974# CONFIG_8139TOO_8129 is not set
952# CONFIG_8139_OLD_RX_RESET is not set 975# CONFIG_8139_OLD_RX_RESET is not set
@@ -961,25 +984,24 @@ CONFIG_NETDEV_1000=y
961# CONFIG_ACENIC is not set 984# CONFIG_ACENIC is not set
962# CONFIG_DL2K is not set 985# CONFIG_DL2K is not set
963CONFIG_E1000=y 986CONFIG_E1000=y
964# CONFIG_E1000_NAPI is not set
965# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 987# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
966# CONFIG_E1000E is not set 988CONFIG_E1000E=y
967# CONFIG_E1000E_ENABLED is not set
968# CONFIG_IP1000 is not set 989# CONFIG_IP1000 is not set
969# CONFIG_IGB is not set 990# CONFIG_IGB is not set
970# CONFIG_NS83820 is not set 991# CONFIG_NS83820 is not set
971# CONFIG_HAMACHI is not set 992# CONFIG_HAMACHI is not set
972# CONFIG_YELLOWFIN is not set 993# CONFIG_YELLOWFIN is not set
973# CONFIG_R8169 is not set 994CONFIG_R8169=y
974# CONFIG_SIS190 is not set 995# CONFIG_SIS190 is not set
975# CONFIG_SKGE is not set 996# CONFIG_SKGE is not set
976CONFIG_SKY2=y 997CONFIG_SKY2=y
977# CONFIG_SKY2_DEBUG is not set 998# CONFIG_SKY2_DEBUG is not set
978# CONFIG_VIA_VELOCITY is not set 999# CONFIG_VIA_VELOCITY is not set
979CONFIG_TIGON3=y 1000CONFIG_TIGON3=y
980# CONFIG_BNX2 is not set 1001CONFIG_BNX2=y
981# CONFIG_QLA3XXX is not set 1002# CONFIG_QLA3XXX is not set
982# CONFIG_ATL1 is not set 1003# CONFIG_ATL1 is not set
1004# CONFIG_ATL1E is not set
983CONFIG_NETDEV_10000=y 1005CONFIG_NETDEV_10000=y
984# CONFIG_CHELSIO_T1 is not set 1006# CONFIG_CHELSIO_T1 is not set
985# CONFIG_CHELSIO_T3 is not set 1007# CONFIG_CHELSIO_T3 is not set
@@ -1019,13 +1041,14 @@ CONFIG_WLAN_80211=y
1019# CONFIG_RTL8180 is not set 1041# CONFIG_RTL8180 is not set
1020# CONFIG_RTL8187 is not set 1042# CONFIG_RTL8187 is not set
1021# CONFIG_ADM8211 is not set 1043# CONFIG_ADM8211 is not set
1044# CONFIG_MAC80211_HWSIM is not set
1022# CONFIG_P54_COMMON is not set 1045# CONFIG_P54_COMMON is not set
1023CONFIG_ATH5K=y 1046CONFIG_ATH5K=y
1024# CONFIG_ATH5K_DEBUG is not set 1047# CONFIG_ATH5K_DEBUG is not set
1025# CONFIG_IWLWIFI is not set 1048# CONFIG_ATH9K is not set
1026# CONFIG_IWLCORE is not set 1049# CONFIG_IWLCORE is not set
1027# CONFIG_IWLWIFI_LEDS is not set 1050# CONFIG_IWLWIFI_LEDS is not set
1028# CONFIG_IWL4965 is not set 1051# CONFIG_IWLAGN is not set
1029# CONFIG_IWL3945 is not set 1052# CONFIG_IWL3945 is not set
1030# CONFIG_HOSTAP is not set 1053# CONFIG_HOSTAP is not set
1031# CONFIG_B43 is not set 1054# CONFIG_B43 is not set
@@ -1105,6 +1128,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
1105# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1128# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1106# CONFIG_MOUSE_SERIAL is not set 1129# CONFIG_MOUSE_SERIAL is not set
1107# CONFIG_MOUSE_APPLETOUCH is not set 1130# CONFIG_MOUSE_APPLETOUCH is not set
1131# CONFIG_MOUSE_BCM5974 is not set
1108# CONFIG_MOUSE_VSXXXAA is not set 1132# CONFIG_MOUSE_VSXXXAA is not set
1109CONFIG_INPUT_JOYSTICK=y 1133CONFIG_INPUT_JOYSTICK=y
1110# CONFIG_JOYSTICK_ANALOG is not set 1134# CONFIG_JOYSTICK_ANALOG is not set
@@ -1139,12 +1163,14 @@ CONFIG_INPUT_TOUCHSCREEN=y
1139# CONFIG_TOUCHSCREEN_GUNZE is not set 1163# CONFIG_TOUCHSCREEN_GUNZE is not set
1140# CONFIG_TOUCHSCREEN_ELO is not set 1164# CONFIG_TOUCHSCREEN_ELO is not set
1141# CONFIG_TOUCHSCREEN_MTOUCH is not set 1165# CONFIG_TOUCHSCREEN_MTOUCH is not set
1166# CONFIG_TOUCHSCREEN_INEXIO is not set
1142# CONFIG_TOUCHSCREEN_MK712 is not set 1167# CONFIG_TOUCHSCREEN_MK712 is not set
1143# CONFIG_TOUCHSCREEN_PENMOUNT is not set 1168# CONFIG_TOUCHSCREEN_PENMOUNT is not set
1144# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 1169# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
1145# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 1170# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
1146# CONFIG_TOUCHSCREEN_UCB1400 is not set 1171# CONFIG_TOUCHSCREEN_UCB1400 is not set
1147# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 1172# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
1173# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
1148CONFIG_INPUT_MISC=y 1174CONFIG_INPUT_MISC=y
1149# CONFIG_INPUT_PCSPKR is not set 1175# CONFIG_INPUT_PCSPKR is not set
1150# CONFIG_INPUT_APANEL is not set 1176# CONFIG_INPUT_APANEL is not set
@@ -1173,6 +1199,7 @@ CONFIG_SERIO_LIBPS2=y
1173# Character devices 1199# Character devices
1174# 1200#
1175CONFIG_VT=y 1201CONFIG_VT=y
1202CONFIG_CONSOLE_TRANSLATIONS=y
1176CONFIG_VT_CONSOLE=y 1203CONFIG_VT_CONSOLE=y
1177CONFIG_HW_CONSOLE=y 1204CONFIG_HW_CONSOLE=y
1178CONFIG_VT_HW_CONSOLE_BINDING=y 1205CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -1223,8 +1250,8 @@ CONFIG_UNIX98_PTYS=y
1223# CONFIG_LEGACY_PTYS is not set 1250# CONFIG_LEGACY_PTYS is not set
1224# CONFIG_IPMI_HANDLER is not set 1251# CONFIG_IPMI_HANDLER is not set
1225CONFIG_HW_RANDOM=y 1252CONFIG_HW_RANDOM=y
1226# CONFIG_HW_RANDOM_INTEL is not set 1253CONFIG_HW_RANDOM_INTEL=y
1227# CONFIG_HW_RANDOM_AMD is not set 1254CONFIG_HW_RANDOM_AMD=y
1228CONFIG_HW_RANDOM_GEODE=y 1255CONFIG_HW_RANDOM_GEODE=y
1229CONFIG_HW_RANDOM_VIA=y 1256CONFIG_HW_RANDOM_VIA=y
1230CONFIG_NVRAM=y 1257CONFIG_NVRAM=y
@@ -1245,7 +1272,6 @@ CONFIG_NVRAM=y
1245# CONFIG_CS5535_GPIO is not set 1272# CONFIG_CS5535_GPIO is not set
1246# CONFIG_RAW_DRIVER is not set 1273# CONFIG_RAW_DRIVER is not set
1247CONFIG_HPET=y 1274CONFIG_HPET=y
1248# CONFIG_HPET_RTC_IRQ is not set
1249# CONFIG_HPET_MMAP is not set 1275# CONFIG_HPET_MMAP is not set
1250# CONFIG_HANGCHECK_TIMER is not set 1276# CONFIG_HANGCHECK_TIMER is not set
1251# CONFIG_TCG_TPM is not set 1277# CONFIG_TCG_TPM is not set
@@ -1254,43 +1280,64 @@ CONFIG_DEVPORT=y
1254CONFIG_I2C=y 1280CONFIG_I2C=y
1255CONFIG_I2C_BOARDINFO=y 1281CONFIG_I2C_BOARDINFO=y
1256# CONFIG_I2C_CHARDEV is not set 1282# CONFIG_I2C_CHARDEV is not set
1283CONFIG_I2C_HELPER_AUTO=y
1257 1284
1258# 1285#
1259# I2C Hardware Bus support 1286# I2C Hardware Bus support
1260# 1287#
1288
1289#
1290# PC SMBus host controller drivers
1291#
1261# CONFIG_I2C_ALI1535 is not set 1292# CONFIG_I2C_ALI1535 is not set
1262# CONFIG_I2C_ALI1563 is not set 1293# CONFIG_I2C_ALI1563 is not set
1263# CONFIG_I2C_ALI15X3 is not set 1294# CONFIG_I2C_ALI15X3 is not set
1264# CONFIG_I2C_AMD756 is not set 1295# CONFIG_I2C_AMD756 is not set
1265# CONFIG_I2C_AMD8111 is not set 1296# CONFIG_I2C_AMD8111 is not set
1266CONFIG_I2C_I801=y 1297CONFIG_I2C_I801=y
1267# CONFIG_I2C_I810 is not set 1298# CONFIG_I2C_ISCH is not set
1268# CONFIG_I2C_PIIX4 is not set 1299# CONFIG_I2C_PIIX4 is not set
1269# CONFIG_I2C_NFORCE2 is not set 1300# CONFIG_I2C_NFORCE2 is not set
1270# CONFIG_I2C_OCORES is not set
1271# CONFIG_I2C_PARPORT_LIGHT is not set
1272# CONFIG_I2C_PROSAVAGE is not set
1273# CONFIG_I2C_SAVAGE4 is not set
1274# CONFIG_I2C_SIMTEC is not set
1275# CONFIG_SCx200_ACB is not set
1276# CONFIG_I2C_SIS5595 is not set 1301# CONFIG_I2C_SIS5595 is not set
1277# CONFIG_I2C_SIS630 is not set 1302# CONFIG_I2C_SIS630 is not set
1278# CONFIG_I2C_SIS96X is not set 1303# CONFIG_I2C_SIS96X is not set
1279# CONFIG_I2C_TAOS_EVM is not set
1280# CONFIG_I2C_STUB is not set
1281# CONFIG_I2C_TINY_USB is not set
1282# CONFIG_I2C_VIA is not set 1304# CONFIG_I2C_VIA is not set
1283# CONFIG_I2C_VIAPRO is not set 1305# CONFIG_I2C_VIAPRO is not set
1306
1307#
1308# I2C system bus drivers (mostly embedded / system-on-chip)
1309#
1310# CONFIG_I2C_OCORES is not set
1311# CONFIG_I2C_SIMTEC is not set
1312
1313#
1314# External I2C/SMBus adapter drivers
1315#
1316# CONFIG_I2C_PARPORT_LIGHT is not set
1317# CONFIG_I2C_TAOS_EVM is not set
1318# CONFIG_I2C_TINY_USB is not set
1319
1320#
1321# Graphics adapter I2C/DDC channel drivers
1322#
1284# CONFIG_I2C_VOODOO3 is not set 1323# CONFIG_I2C_VOODOO3 is not set
1324
1325#
1326# Other I2C/SMBus bus drivers
1327#
1285# CONFIG_I2C_PCA_PLATFORM is not set 1328# CONFIG_I2C_PCA_PLATFORM is not set
1329# CONFIG_I2C_STUB is not set
1330# CONFIG_SCx200_ACB is not set
1286 1331
1287# 1332#
1288# Miscellaneous I2C Chip support 1333# Miscellaneous I2C Chip support
1289# 1334#
1290# CONFIG_DS1682 is not set 1335# CONFIG_DS1682 is not set
1336# CONFIG_AT24 is not set
1291# CONFIG_SENSORS_EEPROM is not set 1337# CONFIG_SENSORS_EEPROM is not set
1292# CONFIG_SENSORS_PCF8574 is not set 1338# CONFIG_SENSORS_PCF8574 is not set
1293# CONFIG_PCF8575 is not set 1339# CONFIG_PCF8575 is not set
1340# CONFIG_SENSORS_PCA9539 is not set
1294# CONFIG_SENSORS_PCF8591 is not set 1341# CONFIG_SENSORS_PCF8591 is not set
1295# CONFIG_SENSORS_MAX6875 is not set 1342# CONFIG_SENSORS_MAX6875 is not set
1296# CONFIG_SENSORS_TSL2550 is not set 1343# CONFIG_SENSORS_TSL2550 is not set
@@ -1299,6 +1346,8 @@ CONFIG_I2C_I801=y
1299# CONFIG_I2C_DEBUG_BUS is not set 1346# CONFIG_I2C_DEBUG_BUS is not set
1300# CONFIG_I2C_DEBUG_CHIP is not set 1347# CONFIG_I2C_DEBUG_CHIP is not set
1301# CONFIG_SPI is not set 1348# CONFIG_SPI is not set
1349CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1350# CONFIG_GPIOLIB is not set
1302# CONFIG_W1 is not set 1351# CONFIG_W1 is not set
1303CONFIG_POWER_SUPPLY=y 1352CONFIG_POWER_SUPPLY=y
1304# CONFIG_POWER_SUPPLY_DEBUG is not set 1353# CONFIG_POWER_SUPPLY_DEBUG is not set
@@ -1360,8 +1409,10 @@ CONFIG_SSB_POSSIBLE=y
1360# 1409#
1361# Multifunction device drivers 1410# Multifunction device drivers
1362# 1411#
1412# CONFIG_MFD_CORE is not set
1363# CONFIG_MFD_SM501 is not set 1413# CONFIG_MFD_SM501 is not set
1364# CONFIG_HTC_PASIC3 is not set 1414# CONFIG_HTC_PASIC3 is not set
1415# CONFIG_MFD_TMIO is not set
1365 1416
1366# 1417#
1367# Multimedia devices 1418# Multimedia devices
@@ -1372,6 +1423,7 @@ CONFIG_SSB_POSSIBLE=y
1372# 1423#
1373# CONFIG_VIDEO_DEV is not set 1424# CONFIG_VIDEO_DEV is not set
1374# CONFIG_DVB_CORE is not set 1425# CONFIG_DVB_CORE is not set
1426# CONFIG_VIDEO_MEDIA is not set
1375 1427
1376# 1428#
1377# Multimedia drivers 1429# Multimedia drivers
@@ -1418,7 +1470,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y
1418# CONFIG_FB_SYS_IMAGEBLIT is not set 1470# CONFIG_FB_SYS_IMAGEBLIT is not set
1419# CONFIG_FB_FOREIGN_ENDIAN is not set 1471# CONFIG_FB_FOREIGN_ENDIAN is not set
1420# CONFIG_FB_SYS_FOPS is not set 1472# CONFIG_FB_SYS_FOPS is not set
1421CONFIG_FB_DEFERRED_IO=y
1422# CONFIG_FB_SVGALIB is not set 1473# CONFIG_FB_SVGALIB is not set
1423# CONFIG_FB_MACMODES is not set 1474# CONFIG_FB_MACMODES is not set
1424# CONFIG_FB_BACKLIGHT is not set 1475# CONFIG_FB_BACKLIGHT is not set
@@ -1463,6 +1514,7 @@ CONFIG_FB_EFI=y
1463# CONFIG_FB_TRIDENT is not set 1514# CONFIG_FB_TRIDENT is not set
1464# CONFIG_FB_ARK is not set 1515# CONFIG_FB_ARK is not set
1465# CONFIG_FB_PM3 is not set 1516# CONFIG_FB_PM3 is not set
1517# CONFIG_FB_CARMINE is not set
1466# CONFIG_FB_GEODE is not set 1518# CONFIG_FB_GEODE is not set
1467# CONFIG_FB_VIRTUAL is not set 1519# CONFIG_FB_VIRTUAL is not set
1468CONFIG_BACKLIGHT_LCD_SUPPORT=y 1520CONFIG_BACKLIGHT_LCD_SUPPORT=y
@@ -1470,6 +1522,7 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y
1470CONFIG_BACKLIGHT_CLASS_DEVICE=y 1522CONFIG_BACKLIGHT_CLASS_DEVICE=y
1471# CONFIG_BACKLIGHT_CORGI is not set 1523# CONFIG_BACKLIGHT_CORGI is not set
1472# CONFIG_BACKLIGHT_PROGEAR is not set 1524# CONFIG_BACKLIGHT_PROGEAR is not set
1525# CONFIG_BACKLIGHT_MBP_NVIDIA is not set
1473 1526
1474# 1527#
1475# Display device support 1528# Display device support
@@ -1489,15 +1542,7 @@ CONFIG_LOGO=y
1489# CONFIG_LOGO_LINUX_MONO is not set 1542# CONFIG_LOGO_LINUX_MONO is not set
1490# CONFIG_LOGO_LINUX_VGA16 is not set 1543# CONFIG_LOGO_LINUX_VGA16 is not set
1491CONFIG_LOGO_LINUX_CLUT224=y 1544CONFIG_LOGO_LINUX_CLUT224=y
1492
1493#
1494# Sound
1495#
1496CONFIG_SOUND=y 1545CONFIG_SOUND=y
1497
1498#
1499# Advanced Linux Sound Architecture
1500#
1501CONFIG_SND=y 1546CONFIG_SND=y
1502CONFIG_SND_TIMER=y 1547CONFIG_SND_TIMER=y
1503CONFIG_SND_PCM=y 1548CONFIG_SND_PCM=y
@@ -1515,20 +1560,14 @@ CONFIG_SND_VERBOSE_PROCFS=y
1515# CONFIG_SND_VERBOSE_PRINTK is not set 1560# CONFIG_SND_VERBOSE_PRINTK is not set
1516# CONFIG_SND_DEBUG is not set 1561# CONFIG_SND_DEBUG is not set
1517CONFIG_SND_VMASTER=y 1562CONFIG_SND_VMASTER=y
1518 1563CONFIG_SND_DRIVERS=y
1519#
1520# Generic devices
1521#
1522# CONFIG_SND_PCSP is not set 1564# CONFIG_SND_PCSP is not set
1523# CONFIG_SND_DUMMY is not set 1565# CONFIG_SND_DUMMY is not set
1524# CONFIG_SND_VIRMIDI is not set 1566# CONFIG_SND_VIRMIDI is not set
1525# CONFIG_SND_MTPAV is not set 1567# CONFIG_SND_MTPAV is not set
1526# CONFIG_SND_SERIAL_U16550 is not set 1568# CONFIG_SND_SERIAL_U16550 is not set
1527# CONFIG_SND_MPU401 is not set 1569# CONFIG_SND_MPU401 is not set
1528 1570CONFIG_SND_PCI=y
1529#
1530# PCI devices
1531#
1532# CONFIG_SND_AD1889 is not set 1571# CONFIG_SND_AD1889 is not set
1533# CONFIG_SND_ALS300 is not set 1572# CONFIG_SND_ALS300 is not set
1534# CONFIG_SND_ALS4000 is not set 1573# CONFIG_SND_ALS4000 is not set
@@ -1603,36 +1642,14 @@ CONFIG_SND_HDA_GENERIC=y
1603# CONFIG_SND_VIRTUOSO is not set 1642# CONFIG_SND_VIRTUOSO is not set
1604# CONFIG_SND_VX222 is not set 1643# CONFIG_SND_VX222 is not set
1605# CONFIG_SND_YMFPCI is not set 1644# CONFIG_SND_YMFPCI is not set
1606 1645CONFIG_SND_USB=y
1607#
1608# USB devices
1609#
1610# CONFIG_SND_USB_AUDIO is not set 1646# CONFIG_SND_USB_AUDIO is not set
1611# CONFIG_SND_USB_USX2Y is not set 1647# CONFIG_SND_USB_USX2Y is not set
1612# CONFIG_SND_USB_CAIAQ is not set 1648# CONFIG_SND_USB_CAIAQ is not set
1613 1649CONFIG_SND_PCMCIA=y
1614#
1615# PCMCIA devices
1616#
1617# CONFIG_SND_VXPOCKET is not set 1650# CONFIG_SND_VXPOCKET is not set
1618# CONFIG_SND_PDAUDIOCF is not set 1651# CONFIG_SND_PDAUDIOCF is not set
1619
1620#
1621# System on Chip audio support
1622#
1623# CONFIG_SND_SOC is not set 1652# CONFIG_SND_SOC is not set
1624
1625#
1626# ALSA SoC audio for Freescale SOCs
1627#
1628
1629#
1630# SoC Audio for the Texas Instruments OMAP
1631#
1632
1633#
1634# Open Sound System
1635#
1636# CONFIG_SOUND_PRIME is not set 1653# CONFIG_SOUND_PRIME is not set
1637CONFIG_HID_SUPPORT=y 1654CONFIG_HID_SUPPORT=y
1638CONFIG_HID=y 1655CONFIG_HID=y
@@ -1668,6 +1685,7 @@ CONFIG_USB_DEVICEFS=y
1668# CONFIG_USB_DYNAMIC_MINORS is not set 1685# CONFIG_USB_DYNAMIC_MINORS is not set
1669CONFIG_USB_SUSPEND=y 1686CONFIG_USB_SUSPEND=y
1670# CONFIG_USB_OTG is not set 1687# CONFIG_USB_OTG is not set
1688CONFIG_USB_MON=y
1671 1689
1672# 1690#
1673# USB Host Controller Drivers 1691# USB Host Controller Drivers
@@ -1691,6 +1709,7 @@ CONFIG_USB_UHCI_HCD=y
1691# 1709#
1692# CONFIG_USB_ACM is not set 1710# CONFIG_USB_ACM is not set
1693CONFIG_USB_PRINTER=y 1711CONFIG_USB_PRINTER=y
1712# CONFIG_USB_WDM is not set
1694 1713
1695# 1714#
1696# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1715# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1712,6 +1731,7 @@ CONFIG_USB_STORAGE=y
1712# CONFIG_USB_STORAGE_ALAUDA is not set 1731# CONFIG_USB_STORAGE_ALAUDA is not set
1713# CONFIG_USB_STORAGE_ONETOUCH is not set 1732# CONFIG_USB_STORAGE_ONETOUCH is not set
1714# CONFIG_USB_STORAGE_KARMA is not set 1733# CONFIG_USB_STORAGE_KARMA is not set
1734# CONFIG_USB_STORAGE_SIERRA is not set
1715# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1735# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1716CONFIG_USB_LIBUSUAL=y 1736CONFIG_USB_LIBUSUAL=y
1717 1737
@@ -1720,7 +1740,6 @@ CONFIG_USB_LIBUSUAL=y
1720# 1740#
1721# CONFIG_USB_MDC800 is not set 1741# CONFIG_USB_MDC800 is not set
1722# CONFIG_USB_MICROTEK is not set 1742# CONFIG_USB_MICROTEK is not set
1723CONFIG_USB_MON=y
1724 1743
1725# 1744#
1726# USB port drivers 1745# USB port drivers
@@ -1733,7 +1752,6 @@ CONFIG_USB_MON=y
1733# CONFIG_USB_EMI62 is not set 1752# CONFIG_USB_EMI62 is not set
1734# CONFIG_USB_EMI26 is not set 1753# CONFIG_USB_EMI26 is not set
1735# CONFIG_USB_ADUTUX is not set 1754# CONFIG_USB_ADUTUX is not set
1736# CONFIG_USB_AUERSWALD is not set
1737# CONFIG_USB_RIO500 is not set 1755# CONFIG_USB_RIO500 is not set
1738# CONFIG_USB_LEGOTOWER is not set 1756# CONFIG_USB_LEGOTOWER is not set
1739# CONFIG_USB_LCD is not set 1757# CONFIG_USB_LCD is not set
@@ -1750,6 +1768,7 @@ CONFIG_USB_MON=y
1750# CONFIG_USB_TRANCEVIBRATOR is not set 1768# CONFIG_USB_TRANCEVIBRATOR is not set
1751# CONFIG_USB_IOWARRIOR is not set 1769# CONFIG_USB_IOWARRIOR is not set
1752# CONFIG_USB_TEST is not set 1770# CONFIG_USB_TEST is not set
1771# CONFIG_USB_ISIGHTFW is not set
1753# CONFIG_USB_GADGET is not set 1772# CONFIG_USB_GADGET is not set
1754# CONFIG_MMC is not set 1773# CONFIG_MMC is not set
1755# CONFIG_MEMSTICK is not set 1774# CONFIG_MEMSTICK is not set
@@ -1759,7 +1778,9 @@ CONFIG_LEDS_CLASS=y
1759# 1778#
1760# LED drivers 1779# LED drivers
1761# 1780#
1781# CONFIG_LEDS_PCA9532 is not set
1762# CONFIG_LEDS_CLEVO_MAIL is not set 1782# CONFIG_LEDS_CLEVO_MAIL is not set
1783# CONFIG_LEDS_PCA955X is not set
1763 1784
1764# 1785#
1765# LED Triggers 1786# LED Triggers
@@ -1805,6 +1826,7 @@ CONFIG_RTC_INTF_DEV=y
1805# CONFIG_RTC_DRV_PCF8583 is not set 1826# CONFIG_RTC_DRV_PCF8583 is not set
1806# CONFIG_RTC_DRV_M41T80 is not set 1827# CONFIG_RTC_DRV_M41T80 is not set
1807# CONFIG_RTC_DRV_S35390A is not set 1828# CONFIG_RTC_DRV_S35390A is not set
1829# CONFIG_RTC_DRV_FM3130 is not set
1808 1830
1809# 1831#
1810# SPI RTC drivers 1832# SPI RTC drivers
@@ -1837,11 +1859,13 @@ CONFIG_DMADEVICES=y
1837# Firmware Drivers 1859# Firmware Drivers
1838# 1860#
1839# CONFIG_EDD is not set 1861# CONFIG_EDD is not set
1862CONFIG_FIRMWARE_MEMMAP=y
1840CONFIG_EFI_VARS=y 1863CONFIG_EFI_VARS=y
1841# CONFIG_DELL_RBU is not set 1864# CONFIG_DELL_RBU is not set
1842# CONFIG_DCDBAS is not set 1865# CONFIG_DCDBAS is not set
1843CONFIG_DMIID=y 1866CONFIG_DMIID=y
1844# CONFIG_ISCSI_IBFT_FIND is not set 1867CONFIG_ISCSI_IBFT_FIND=y
1868CONFIG_ISCSI_IBFT=y
1845 1869
1846# 1870#
1847# File systems 1871# File systems
@@ -1920,14 +1944,27 @@ CONFIG_HUGETLB_PAGE=y
1920# CONFIG_CRAMFS is not set 1944# CONFIG_CRAMFS is not set
1921# CONFIG_VXFS_FS is not set 1945# CONFIG_VXFS_FS is not set
1922# CONFIG_MINIX_FS is not set 1946# CONFIG_MINIX_FS is not set
1947# CONFIG_OMFS_FS is not set
1923# CONFIG_HPFS_FS is not set 1948# CONFIG_HPFS_FS is not set
1924# CONFIG_QNX4FS_FS is not set 1949# CONFIG_QNX4FS_FS is not set
1925# CONFIG_ROMFS_FS is not set 1950# CONFIG_ROMFS_FS is not set
1926# CONFIG_SYSV_FS is not set 1951# CONFIG_SYSV_FS is not set
1927# CONFIG_UFS_FS is not set 1952# CONFIG_UFS_FS is not set
1928CONFIG_NETWORK_FILESYSTEMS=y 1953CONFIG_NETWORK_FILESYSTEMS=y
1929# CONFIG_NFS_FS is not set 1954CONFIG_NFS_FS=y
1955CONFIG_NFS_V3=y
1956CONFIG_NFS_V3_ACL=y
1957CONFIG_NFS_V4=y
1958CONFIG_ROOT_NFS=y
1930# CONFIG_NFSD is not set 1959# CONFIG_NFSD is not set
1960CONFIG_LOCKD=y
1961CONFIG_LOCKD_V4=y
1962CONFIG_NFS_ACL_SUPPORT=y
1963CONFIG_NFS_COMMON=y
1964CONFIG_SUNRPC=y
1965CONFIG_SUNRPC_GSS=y
1966CONFIG_RPCSEC_GSS_KRB5=y
1967# CONFIG_RPCSEC_GSS_SPKM3 is not set
1931# CONFIG_SMB_FS is not set 1968# CONFIG_SMB_FS is not set
1932# CONFIG_CIFS is not set 1969# CONFIG_CIFS is not set
1933# CONFIG_NCP_FS is not set 1970# CONFIG_NCP_FS is not set
@@ -2001,9 +2038,9 @@ CONFIG_NLS_UTF8=y
2001# Kernel hacking 2038# Kernel hacking
2002# 2039#
2003CONFIG_TRACE_IRQFLAGS_SUPPORT=y 2040CONFIG_TRACE_IRQFLAGS_SUPPORT=y
2004# CONFIG_PRINTK_TIME is not set 2041CONFIG_PRINTK_TIME=y
2005# CONFIG_ENABLE_WARN_DEPRECATED is not set 2042CONFIG_ENABLE_WARN_DEPRECATED=y
2006# CONFIG_ENABLE_MUST_CHECK is not set 2043CONFIG_ENABLE_MUST_CHECK=y
2007CONFIG_FRAME_WARN=2048 2044CONFIG_FRAME_WARN=2048
2008CONFIG_MAGIC_SYSRQ=y 2045CONFIG_MAGIC_SYSRQ=y
2009# CONFIG_UNUSED_SYMBOLS is not set 2046# CONFIG_UNUSED_SYMBOLS is not set
@@ -2033,6 +2070,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
2033# CONFIG_DEBUG_INFO is not set 2070# CONFIG_DEBUG_INFO is not set
2034# CONFIG_DEBUG_VM is not set 2071# CONFIG_DEBUG_VM is not set
2035# CONFIG_DEBUG_WRITECOUNT is not set 2072# CONFIG_DEBUG_WRITECOUNT is not set
2073CONFIG_DEBUG_MEMORY_INIT=y
2036# CONFIG_DEBUG_LIST is not set 2074# CONFIG_DEBUG_LIST is not set
2037# CONFIG_DEBUG_SG is not set 2075# CONFIG_DEBUG_SG is not set
2038CONFIG_FRAME_POINTER=y 2076CONFIG_FRAME_POINTER=y
@@ -2043,23 +2081,32 @@ CONFIG_FRAME_POINTER=y
2043# CONFIG_LKDTM is not set 2081# CONFIG_LKDTM is not set
2044# CONFIG_FAULT_INJECTION is not set 2082# CONFIG_FAULT_INJECTION is not set
2045# CONFIG_LATENCYTOP is not set 2083# CONFIG_LATENCYTOP is not set
2084CONFIG_SYSCTL_SYSCALL_CHECK=y
2085CONFIG_HAVE_FTRACE=y
2086CONFIG_HAVE_DYNAMIC_FTRACE=y
2087# CONFIG_FTRACE is not set
2088# CONFIG_IRQSOFF_TRACER is not set
2089# CONFIG_SYSPROF_TRACER is not set
2090# CONFIG_SCHED_TRACER is not set
2091# CONFIG_CONTEXT_SWITCH_TRACER is not set
2046CONFIG_PROVIDE_OHCI1394_DMA_INIT=y 2092CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
2047# CONFIG_SAMPLES is not set 2093# CONFIG_SAMPLES is not set
2048# CONFIG_KGDB is not set
2049CONFIG_HAVE_ARCH_KGDB=y 2094CONFIG_HAVE_ARCH_KGDB=y
2095# CONFIG_KGDB is not set
2050# CONFIG_STRICT_DEVMEM is not set 2096# CONFIG_STRICT_DEVMEM is not set
2097CONFIG_X86_VERBOSE_BOOTUP=y
2051CONFIG_EARLY_PRINTK=y 2098CONFIG_EARLY_PRINTK=y
2052CONFIG_DEBUG_STACKOVERFLOW=y 2099CONFIG_DEBUG_STACKOVERFLOW=y
2053CONFIG_DEBUG_STACK_USAGE=y 2100CONFIG_DEBUG_STACK_USAGE=y
2054# CONFIG_DEBUG_PAGEALLOC is not set 2101# CONFIG_DEBUG_PAGEALLOC is not set
2102# CONFIG_DEBUG_PER_CPU_MAPS is not set
2055# CONFIG_X86_PTDUMP is not set 2103# CONFIG_X86_PTDUMP is not set
2056CONFIG_DEBUG_RODATA=y 2104CONFIG_DEBUG_RODATA=y
2057# CONFIG_DEBUG_RODATA_TEST is not set 2105# CONFIG_DEBUG_RODATA_TEST is not set
2058CONFIG_DEBUG_NX_TEST=m 2106CONFIG_DEBUG_NX_TEST=m
2059# CONFIG_4KSTACKS is not set 2107# CONFIG_4KSTACKS is not set
2060CONFIG_X86_FIND_SMP_CONFIG=y
2061CONFIG_X86_MPPARSE=y
2062CONFIG_DOUBLEFAULT=y 2108CONFIG_DOUBLEFAULT=y
2109# CONFIG_MMIOTRACE is not set
2063CONFIG_IO_DELAY_TYPE_0X80=0 2110CONFIG_IO_DELAY_TYPE_0X80=0
2064CONFIG_IO_DELAY_TYPE_0XED=1 2111CONFIG_IO_DELAY_TYPE_0XED=1
2065CONFIG_IO_DELAY_TYPE_UDELAY=2 2112CONFIG_IO_DELAY_TYPE_UDELAY=2
@@ -2071,6 +2118,7 @@ CONFIG_IO_DELAY_0X80=y
2071CONFIG_DEFAULT_IO_DELAY_TYPE=0 2118CONFIG_DEFAULT_IO_DELAY_TYPE=0
2072CONFIG_DEBUG_BOOT_PARAMS=y 2119CONFIG_DEBUG_BOOT_PARAMS=y
2073# CONFIG_CPA_DEBUG is not set 2120# CONFIG_CPA_DEBUG is not set
2121CONFIG_OPTIMIZE_INLINING=y
2074 2122
2075# 2123#
2076# Security options 2124# Security options
@@ -2080,7 +2128,6 @@ CONFIG_KEYS_DEBUG_PROC_KEYS=y
2080CONFIG_SECURITY=y 2128CONFIG_SECURITY=y
2081CONFIG_SECURITY_NETWORK=y 2129CONFIG_SECURITY_NETWORK=y
2082# CONFIG_SECURITY_NETWORK_XFRM is not set 2130# CONFIG_SECURITY_NETWORK_XFRM is not set
2083CONFIG_SECURITY_CAPABILITIES=y
2084CONFIG_SECURITY_FILE_CAPABILITIES=y 2131CONFIG_SECURITY_FILE_CAPABILITIES=y
2085# CONFIG_SECURITY_ROOTPLUG is not set 2132# CONFIG_SECURITY_ROOTPLUG is not set
2086CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 2133CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536
@@ -2141,6 +2188,10 @@ CONFIG_CRYPTO_HMAC=y
2141# CONFIG_CRYPTO_MD4 is not set 2188# CONFIG_CRYPTO_MD4 is not set
2142CONFIG_CRYPTO_MD5=y 2189CONFIG_CRYPTO_MD5=y
2143# CONFIG_CRYPTO_MICHAEL_MIC is not set 2190# CONFIG_CRYPTO_MICHAEL_MIC is not set
2191# CONFIG_CRYPTO_RMD128 is not set
2192# CONFIG_CRYPTO_RMD160 is not set
2193# CONFIG_CRYPTO_RMD256 is not set
2194# CONFIG_CRYPTO_RMD320 is not set
2144CONFIG_CRYPTO_SHA1=y 2195CONFIG_CRYPTO_SHA1=y
2145# CONFIG_CRYPTO_SHA256 is not set 2196# CONFIG_CRYPTO_SHA256 is not set
2146# CONFIG_CRYPTO_SHA512 is not set 2197# CONFIG_CRYPTO_SHA512 is not set
@@ -2151,7 +2202,7 @@ CONFIG_CRYPTO_SHA1=y
2151# Ciphers 2202# Ciphers
2152# 2203#
2153CONFIG_CRYPTO_AES=y 2204CONFIG_CRYPTO_AES=y
2154# CONFIG_CRYPTO_AES_586 is not set 2205CONFIG_CRYPTO_AES_586=y
2155# CONFIG_CRYPTO_ANUBIS is not set 2206# CONFIG_CRYPTO_ANUBIS is not set
2156CONFIG_CRYPTO_ARC4=y 2207CONFIG_CRYPTO_ARC4=y
2157# CONFIG_CRYPTO_BLOWFISH is not set 2208# CONFIG_CRYPTO_BLOWFISH is not set
@@ -2193,6 +2244,7 @@ CONFIG_GENERIC_FIND_FIRST_BIT=y
2193CONFIG_GENERIC_FIND_NEXT_BIT=y 2244CONFIG_GENERIC_FIND_NEXT_BIT=y
2194# CONFIG_CRC_CCITT is not set 2245# CONFIG_CRC_CCITT is not set
2195# CONFIG_CRC16 is not set 2246# CONFIG_CRC16 is not set
2247CONFIG_CRC_T10DIF=y
2196# CONFIG_CRC_ITU_T is not set 2248# CONFIG_CRC_ITU_T is not set
2197CONFIG_CRC32=y 2249CONFIG_CRC32=y
2198# CONFIG_CRC7 is not set 2250# CONFIG_CRC7 is not set
diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig
index a4045242962..e620ea6e2a7 100644
--- a/arch/x86/configs/x86_64_defconfig
+++ b/arch/x86/configs/x86_64_defconfig
@@ -1,13 +1,13 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.26-rc1 3# Linux kernel version: 2.6.27-rc5
4# Sun May 4 19:59:57 2008 4# Wed Sep 3 17:13:39 2008
5# 5#
6CONFIG_64BIT=y 6CONFIG_64BIT=y
7# CONFIG_X86_32 is not set 7# CONFIG_X86_32 is not set
8CONFIG_X86_64=y 8CONFIG_X86_64=y
9CONFIG_X86=y 9CONFIG_X86=y
10CONFIG_DEFCONFIG_LIST="arch/x86/configs/x86_64_defconfig" 10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
11# CONFIG_GENERIC_LOCKBREAK is not set 11# CONFIG_GENERIC_LOCKBREAK is not set
12CONFIG_GENERIC_TIME=y 12CONFIG_GENERIC_TIME=y
13CONFIG_GENERIC_CMOS_UPDATE=y 13CONFIG_GENERIC_CMOS_UPDATE=y
@@ -53,6 +53,7 @@ CONFIG_X86_HT=y
53CONFIG_X86_BIOS_REBOOT=y 53CONFIG_X86_BIOS_REBOOT=y
54CONFIG_X86_TRAMPOLINE=y 54CONFIG_X86_TRAMPOLINE=y
55# CONFIG_KTIME_SCALAR is not set 55# CONFIG_KTIME_SCALAR is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
56 57
57# 58#
58# General setup 59# General setup
@@ -82,6 +83,7 @@ CONFIG_CGROUPS=y
82CONFIG_CGROUP_NS=y 83CONFIG_CGROUP_NS=y
83# CONFIG_CGROUP_DEVICE is not set 84# CONFIG_CGROUP_DEVICE is not set
84CONFIG_CPUSETS=y 85CONFIG_CPUSETS=y
86CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
85CONFIG_GROUP_SCHED=y 87CONFIG_GROUP_SCHED=y
86CONFIG_FAIR_GROUP_SCHED=y 88CONFIG_FAIR_GROUP_SCHED=y
87# CONFIG_RT_GROUP_SCHED is not set 89# CONFIG_RT_GROUP_SCHED is not set
@@ -105,7 +107,6 @@ CONFIG_SYSCTL=y
105# CONFIG_EMBEDDED is not set 107# CONFIG_EMBEDDED is not set
106CONFIG_UID16=y 108CONFIG_UID16=y
107CONFIG_SYSCTL_SYSCALL=y 109CONFIG_SYSCTL_SYSCALL=y
108CONFIG_SYSCTL_SYSCALL_CHECK=y
109CONFIG_KALLSYMS=y 110CONFIG_KALLSYMS=y
110CONFIG_KALLSYMS_ALL=y 111CONFIG_KALLSYMS_ALL=y
111CONFIG_KALLSYMS_EXTRA_PASS=y 112CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -113,6 +114,7 @@ CONFIG_HOTPLUG=y
113CONFIG_PRINTK=y 114CONFIG_PRINTK=y
114CONFIG_BUG=y 115CONFIG_BUG=y
115CONFIG_ELF_CORE=y 116CONFIG_ELF_CORE=y
117CONFIG_PCSPKR_PLATFORM=y
116# CONFIG_COMPAT_BRK is not set 118# CONFIG_COMPAT_BRK is not set
117CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
118CONFIG_FUTEX=y 120CONFIG_FUTEX=y
@@ -132,25 +134,33 @@ CONFIG_MARKERS=y
132# CONFIG_OPROFILE is not set 134# CONFIG_OPROFILE is not set
133CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
134CONFIG_KPROBES=y 136CONFIG_KPROBES=y
137CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
135CONFIG_KRETPROBES=y 138CONFIG_KRETPROBES=y
139CONFIG_HAVE_IOREMAP_PROT=y
136CONFIG_HAVE_KPROBES=y 140CONFIG_HAVE_KPROBES=y
137CONFIG_HAVE_KRETPROBES=y 141CONFIG_HAVE_KRETPROBES=y
142# CONFIG_HAVE_ARCH_TRACEHOOK is not set
138# CONFIG_HAVE_DMA_ATTRS is not set 143# CONFIG_HAVE_DMA_ATTRS is not set
144CONFIG_USE_GENERIC_SMP_HELPERS=y
145# CONFIG_HAVE_CLK is not set
139CONFIG_PROC_PAGE_MONITOR=y 146CONFIG_PROC_PAGE_MONITOR=y
147# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
140CONFIG_SLABINFO=y 148CONFIG_SLABINFO=y
141CONFIG_RT_MUTEXES=y 149CONFIG_RT_MUTEXES=y
142# CONFIG_TINY_SHMEM is not set 150# CONFIG_TINY_SHMEM is not set
143CONFIG_BASE_SMALL=0 151CONFIG_BASE_SMALL=0
144CONFIG_MODULES=y 152CONFIG_MODULES=y
153# CONFIG_MODULE_FORCE_LOAD is not set
145CONFIG_MODULE_UNLOAD=y 154CONFIG_MODULE_UNLOAD=y
146CONFIG_MODULE_FORCE_UNLOAD=y 155CONFIG_MODULE_FORCE_UNLOAD=y
147# CONFIG_MODVERSIONS is not set 156# CONFIG_MODVERSIONS is not set
148# CONFIG_MODULE_SRCVERSION_ALL is not set 157# CONFIG_MODULE_SRCVERSION_ALL is not set
149# CONFIG_KMOD is not set 158CONFIG_KMOD=y
150CONFIG_STOP_MACHINE=y 159CONFIG_STOP_MACHINE=y
151CONFIG_BLOCK=y 160CONFIG_BLOCK=y
152CONFIG_BLK_DEV_IO_TRACE=y 161CONFIG_BLK_DEV_IO_TRACE=y
153CONFIG_BLK_DEV_BSG=y 162CONFIG_BLK_DEV_BSG=y
163# CONFIG_BLK_DEV_INTEGRITY is not set
154CONFIG_BLOCK_COMPAT=y 164CONFIG_BLOCK_COMPAT=y
155 165
156# 166#
@@ -175,20 +185,15 @@ CONFIG_NO_HZ=y
175CONFIG_HIGH_RES_TIMERS=y 185CONFIG_HIGH_RES_TIMERS=y
176CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 186CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
177CONFIG_SMP=y 187CONFIG_SMP=y
188CONFIG_X86_FIND_SMP_CONFIG=y
189CONFIG_X86_MPPARSE=y
178CONFIG_X86_PC=y 190CONFIG_X86_PC=y
179# CONFIG_X86_ELAN is not set 191# CONFIG_X86_ELAN is not set
180# CONFIG_X86_VOYAGER is not set 192# CONFIG_X86_VOYAGER is not set
181# CONFIG_X86_NUMAQ is not set
182# CONFIG_X86_SUMMIT is not set
183# CONFIG_X86_BIGSMP is not set
184# CONFIG_X86_VISWS is not set
185# CONFIG_X86_GENERICARCH is not set 193# CONFIG_X86_GENERICARCH is not set
186# CONFIG_X86_ES7000 is not set
187# CONFIG_X86_RDC321X is not set
188# CONFIG_X86_VSMP is not set 194# CONFIG_X86_VSMP is not set
189# CONFIG_PARAVIRT_GUEST is not set 195# CONFIG_PARAVIRT_GUEST is not set
190CONFIG_MEMTEST_BOOTPARAM=y 196# CONFIG_MEMTEST is not set
191CONFIG_MEMTEST_BOOTPARAM_VALUE=0
192# CONFIG_M386 is not set 197# CONFIG_M386 is not set
193# CONFIG_M486 is not set 198# CONFIG_M486 is not set
194# CONFIG_M586 is not set 199# CONFIG_M586 is not set
@@ -213,18 +218,16 @@ CONFIG_MEMTEST_BOOTPARAM_VALUE=0
213# CONFIG_MVIAC3_2 is not set 218# CONFIG_MVIAC3_2 is not set
214# CONFIG_MVIAC7 is not set 219# CONFIG_MVIAC7 is not set
215# CONFIG_MPSC is not set 220# CONFIG_MPSC is not set
216CONFIG_MCORE2=y 221# CONFIG_MCORE2 is not set
217# CONFIG_GENERIC_CPU is not set 222CONFIG_GENERIC_CPU=y
218CONFIG_X86_CPU=y 223CONFIG_X86_CPU=y
219CONFIG_X86_L1_CACHE_BYTES=64 224CONFIG_X86_L1_CACHE_BYTES=128
220CONFIG_X86_INTERNODE_CACHE_BYTES=64 225CONFIG_X86_INTERNODE_CACHE_BYTES=128
221CONFIG_X86_CMPXCHG=y 226CONFIG_X86_CMPXCHG=y
222CONFIG_X86_L1_CACHE_SHIFT=6 227CONFIG_X86_L1_CACHE_SHIFT=7
223CONFIG_X86_GOOD_APIC=y 228CONFIG_X86_WP_WORKS_OK=y
224CONFIG_X86_INTEL_USERCOPY=y
225CONFIG_X86_USE_PPRO_CHECKSUM=y
226CONFIG_X86_P6_NOP=y
227CONFIG_X86_TSC=y 229CONFIG_X86_TSC=y
230CONFIG_X86_CMPXCHG64=y
228CONFIG_X86_CMOV=y 231CONFIG_X86_CMOV=y
229CONFIG_X86_MINIMUM_CPU_FAMILY=64 232CONFIG_X86_MINIMUM_CPU_FAMILY=64
230CONFIG_X86_DEBUGCTLMSR=y 233CONFIG_X86_DEBUGCTLMSR=y
@@ -234,10 +237,11 @@ CONFIG_DMI=y
234CONFIG_GART_IOMMU=y 237CONFIG_GART_IOMMU=y
235CONFIG_CALGARY_IOMMU=y 238CONFIG_CALGARY_IOMMU=y
236CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y 239CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
240CONFIG_AMD_IOMMU=y
237CONFIG_SWIOTLB=y 241CONFIG_SWIOTLB=y
238CONFIG_IOMMU_HELPER=y 242CONFIG_IOMMU_HELPER=y
239CONFIG_NR_CPUS=4 243CONFIG_NR_CPUS=64
240# CONFIG_SCHED_SMT is not set 244CONFIG_SCHED_SMT=y
241CONFIG_SCHED_MC=y 245CONFIG_SCHED_MC=y
242# CONFIG_PREEMPT_NONE is not set 246# CONFIG_PREEMPT_NONE is not set
243CONFIG_PREEMPT_VOLUNTARY=y 247CONFIG_PREEMPT_VOLUNTARY=y
@@ -246,7 +250,8 @@ CONFIG_X86_LOCAL_APIC=y
246CONFIG_X86_IO_APIC=y 250CONFIG_X86_IO_APIC=y
247# CONFIG_X86_MCE is not set 251# CONFIG_X86_MCE is not set
248# CONFIG_I8K is not set 252# CONFIG_I8K is not set
249# CONFIG_MICROCODE is not set 253CONFIG_MICROCODE=y
254CONFIG_MICROCODE_OLD_INTERFACE=y
250CONFIG_X86_MSR=y 255CONFIG_X86_MSR=y
251CONFIG_X86_CPUID=y 256CONFIG_X86_CPUID=y
252CONFIG_NUMA=y 257CONFIG_NUMA=y
@@ -281,7 +286,8 @@ CONFIG_ZONE_DMA_FLAG=1
281CONFIG_BOUNCE=y 286CONFIG_BOUNCE=y
282CONFIG_VIRT_TO_BUS=y 287CONFIG_VIRT_TO_BUS=y
283CONFIG_MTRR=y 288CONFIG_MTRR=y
284# CONFIG_X86_PAT is not set 289# CONFIG_MTRR_SANITIZER is not set
290CONFIG_X86_PAT=y
285CONFIG_EFI=y 291CONFIG_EFI=y
286CONFIG_SECCOMP=y 292CONFIG_SECCOMP=y
287# CONFIG_HZ_100 is not set 293# CONFIG_HZ_100 is not set
@@ -313,6 +319,7 @@ CONFIG_PM_TRACE_RTC=y
313CONFIG_PM_SLEEP_SMP=y 319CONFIG_PM_SLEEP_SMP=y
314CONFIG_PM_SLEEP=y 320CONFIG_PM_SLEEP=y
315CONFIG_SUSPEND=y 321CONFIG_SUSPEND=y
322# CONFIG_PM_TEST_SUSPEND is not set
316CONFIG_SUSPEND_FREEZER=y 323CONFIG_SUSPEND_FREEZER=y
317CONFIG_HIBERNATION=y 324CONFIG_HIBERNATION=y
318CONFIG_PM_STD_PARTITION="" 325CONFIG_PM_STD_PARTITION=""
@@ -339,6 +346,7 @@ CONFIG_ACPI_NUMA=y
339CONFIG_ACPI_BLACKLIST_YEAR=0 346CONFIG_ACPI_BLACKLIST_YEAR=0
340# CONFIG_ACPI_DEBUG is not set 347# CONFIG_ACPI_DEBUG is not set
341CONFIG_ACPI_EC=y 348CONFIG_ACPI_EC=y
349# CONFIG_ACPI_PCI_SLOT is not set
342CONFIG_ACPI_POWER=y 350CONFIG_ACPI_POWER=y
343CONFIG_ACPI_SYSTEM=y 351CONFIG_ACPI_SYSTEM=y
344CONFIG_X86_PM_TIMER=y 352CONFIG_X86_PM_TIMER=y
@@ -437,10 +445,6 @@ CONFIG_IA32_EMULATION=y
437CONFIG_COMPAT=y 445CONFIG_COMPAT=y
438CONFIG_COMPAT_FOR_U64_ALIGNMENT=y 446CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
439CONFIG_SYSVIPC_COMPAT=y 447CONFIG_SYSVIPC_COMPAT=y
440
441#
442# Networking
443#
444CONFIG_NET=y 448CONFIG_NET=y
445 449
446# 450#
@@ -464,7 +468,10 @@ CONFIG_IP_FIB_HASH=y
464CONFIG_IP_MULTIPLE_TABLES=y 468CONFIG_IP_MULTIPLE_TABLES=y
465CONFIG_IP_ROUTE_MULTIPATH=y 469CONFIG_IP_ROUTE_MULTIPATH=y
466CONFIG_IP_ROUTE_VERBOSE=y 470CONFIG_IP_ROUTE_VERBOSE=y
467# CONFIG_IP_PNP is not set 471CONFIG_IP_PNP=y
472CONFIG_IP_PNP_DHCP=y
473CONFIG_IP_PNP_BOOTP=y
474CONFIG_IP_PNP_RARP=y
468# CONFIG_NET_IPIP is not set 475# CONFIG_NET_IPIP is not set
469# CONFIG_NET_IPGRE is not set 476# CONFIG_NET_IPGRE is not set
470CONFIG_IP_MROUTE=y 477CONFIG_IP_MROUTE=y
@@ -607,7 +614,6 @@ CONFIG_NET_SCHED=y
607# CONFIG_NET_SCH_HTB is not set 614# CONFIG_NET_SCH_HTB is not set
608# CONFIG_NET_SCH_HFSC is not set 615# CONFIG_NET_SCH_HFSC is not set
609# CONFIG_NET_SCH_PRIO is not set 616# CONFIG_NET_SCH_PRIO is not set
610# CONFIG_NET_SCH_RR is not set
611# CONFIG_NET_SCH_RED is not set 617# CONFIG_NET_SCH_RED is not set
612# CONFIG_NET_SCH_SFQ is not set 618# CONFIG_NET_SCH_SFQ is not set
613# CONFIG_NET_SCH_TEQL is not set 619# CONFIG_NET_SCH_TEQL is not set
@@ -669,28 +675,19 @@ CONFIG_FIB_RULES=y
669CONFIG_CFG80211=y 675CONFIG_CFG80211=y
670CONFIG_NL80211=y 676CONFIG_NL80211=y
671CONFIG_WIRELESS_EXT=y 677CONFIG_WIRELESS_EXT=y
678CONFIG_WIRELESS_EXT_SYSFS=y
672CONFIG_MAC80211=y 679CONFIG_MAC80211=y
673 680
674# 681#
675# Rate control algorithm selection 682# Rate control algorithm selection
676# 683#
684CONFIG_MAC80211_RC_PID=y
677CONFIG_MAC80211_RC_DEFAULT_PID=y 685CONFIG_MAC80211_RC_DEFAULT_PID=y
678# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
679
680#
681# Selecting 'y' for an algorithm will
682#
683
684#
685# build the algorithm into mac80211.
686#
687CONFIG_MAC80211_RC_DEFAULT="pid" 686CONFIG_MAC80211_RC_DEFAULT="pid"
688CONFIG_MAC80211_RC_PID=y
689# CONFIG_MAC80211_MESH is not set 687# CONFIG_MAC80211_MESH is not set
690CONFIG_MAC80211_LEDS=y 688CONFIG_MAC80211_LEDS=y
691# CONFIG_MAC80211_DEBUGFS is not set 689# CONFIG_MAC80211_DEBUGFS is not set
692# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set 690# CONFIG_MAC80211_DEBUG_MENU is not set
693# CONFIG_MAC80211_DEBUG is not set
694# CONFIG_IEEE80211 is not set 691# CONFIG_IEEE80211 is not set
695# CONFIG_RFKILL is not set 692# CONFIG_RFKILL is not set
696# CONFIG_NET_9P is not set 693# CONFIG_NET_9P is not set
@@ -706,6 +703,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
706CONFIG_STANDALONE=y 703CONFIG_STANDALONE=y
707CONFIG_PREVENT_FIRMWARE_BUILD=y 704CONFIG_PREVENT_FIRMWARE_BUILD=y
708CONFIG_FW_LOADER=y 705CONFIG_FW_LOADER=y
706CONFIG_FIRMWARE_IN_KERNEL=y
707CONFIG_EXTRA_FIRMWARE=""
709# CONFIG_DEBUG_DRIVER is not set 708# CONFIG_DEBUG_DRIVER is not set
710CONFIG_DEBUG_DEVRES=y 709CONFIG_DEBUG_DEVRES=y
711# CONFIG_SYS_HYPERVISOR is not set 710# CONFIG_SYS_HYPERVISOR is not set
@@ -738,6 +737,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
738# CONFIG_BLK_DEV_XIP is not set 737# CONFIG_BLK_DEV_XIP is not set
739# CONFIG_CDROM_PKTCDVD is not set 738# CONFIG_CDROM_PKTCDVD is not set
740# CONFIG_ATA_OVER_ETH is not set 739# CONFIG_ATA_OVER_ETH is not set
740# CONFIG_BLK_DEV_HD is not set
741CONFIG_MISC_DEVICES=y 741CONFIG_MISC_DEVICES=y
742# CONFIG_IBM_ASM is not set 742# CONFIG_IBM_ASM is not set
743# CONFIG_PHANTOM is not set 743# CONFIG_PHANTOM is not set
@@ -748,10 +748,14 @@ CONFIG_MISC_DEVICES=y
748# CONFIG_ASUS_LAPTOP is not set 748# CONFIG_ASUS_LAPTOP is not set
749# CONFIG_FUJITSU_LAPTOP is not set 749# CONFIG_FUJITSU_LAPTOP is not set
750# CONFIG_MSI_LAPTOP is not set 750# CONFIG_MSI_LAPTOP is not set
751# CONFIG_COMPAL_LAPTOP is not set
751# CONFIG_SONY_LAPTOP is not set 752# CONFIG_SONY_LAPTOP is not set
752# CONFIG_THINKPAD_ACPI is not set 753# CONFIG_THINKPAD_ACPI is not set
753# CONFIG_INTEL_MENLOW is not set 754# CONFIG_INTEL_MENLOW is not set
754# CONFIG_ENCLOSURE_SERVICES is not set 755# CONFIG_ENCLOSURE_SERVICES is not set
756# CONFIG_SGI_XP is not set
757# CONFIG_HP_ILO is not set
758# CONFIG_SGI_GRU is not set
755CONFIG_HAVE_IDE=y 759CONFIG_HAVE_IDE=y
756# CONFIG_IDE is not set 760# CONFIG_IDE is not set
757 761
@@ -790,12 +794,13 @@ CONFIG_SCSI_WAIT_SCAN=m
790# 794#
791CONFIG_SCSI_SPI_ATTRS=y 795CONFIG_SCSI_SPI_ATTRS=y
792# CONFIG_SCSI_FC_ATTRS is not set 796# CONFIG_SCSI_FC_ATTRS is not set
793# CONFIG_SCSI_ISCSI_ATTRS is not set 797CONFIG_SCSI_ISCSI_ATTRS=y
794# CONFIG_SCSI_SAS_ATTRS is not set 798# CONFIG_SCSI_SAS_ATTRS is not set
795# CONFIG_SCSI_SAS_LIBSAS is not set 799# CONFIG_SCSI_SAS_LIBSAS is not set
796# CONFIG_SCSI_SRP_ATTRS is not set 800# CONFIG_SCSI_SRP_ATTRS is not set
797# CONFIG_SCSI_LOWLEVEL is not set 801# CONFIG_SCSI_LOWLEVEL is not set
798# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 802# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
803# CONFIG_SCSI_DH is not set
799CONFIG_ATA=y 804CONFIG_ATA=y
800# CONFIG_ATA_NONSTANDARD is not set 805# CONFIG_ATA_NONSTANDARD is not set
801CONFIG_ATA_ACPI=y 806CONFIG_ATA_ACPI=y
@@ -857,6 +862,7 @@ CONFIG_PATA_OLDPIIX=y
857# CONFIG_PATA_SIS is not set 862# CONFIG_PATA_SIS is not set
858# CONFIG_PATA_VIA is not set 863# CONFIG_PATA_VIA is not set
859# CONFIG_PATA_WINBOND is not set 864# CONFIG_PATA_WINBOND is not set
865CONFIG_PATA_SCH=y
860CONFIG_MD=y 866CONFIG_MD=y
861CONFIG_BLK_DEV_MD=y 867CONFIG_BLK_DEV_MD=y
862# CONFIG_MD_LINEAR is not set 868# CONFIG_MD_LINEAR is not set
@@ -880,13 +886,16 @@ CONFIG_DM_ZERO=y
880# 886#
881# IEEE 1394 (FireWire) support 887# IEEE 1394 (FireWire) support
882# 888#
889
890#
891# Enable only one of the two stacks, unless you know what you are doing
892#
883# CONFIG_FIREWIRE is not set 893# CONFIG_FIREWIRE is not set
884# CONFIG_IEEE1394 is not set 894# CONFIG_IEEE1394 is not set
885# CONFIG_I2O is not set 895# CONFIG_I2O is not set
886CONFIG_MACINTOSH_DRIVERS=y 896CONFIG_MACINTOSH_DRIVERS=y
887CONFIG_MAC_EMUMOUSEBTN=y 897CONFIG_MAC_EMUMOUSEBTN=y
888CONFIG_NETDEVICES=y 898CONFIG_NETDEVICES=y
889# CONFIG_NETDEVICES_MULTIQUEUE is not set
890# CONFIG_IFB is not set 899# CONFIG_IFB is not set
891# CONFIG_DUMMY is not set 900# CONFIG_DUMMY is not set
892# CONFIG_BONDING is not set 901# CONFIG_BONDING is not set
@@ -896,7 +905,23 @@ CONFIG_NETDEVICES=y
896# CONFIG_VETH is not set 905# CONFIG_VETH is not set
897# CONFIG_NET_SB1000 is not set 906# CONFIG_NET_SB1000 is not set
898# CONFIG_ARCNET is not set 907# CONFIG_ARCNET is not set
899# CONFIG_PHYLIB is not set 908CONFIG_PHYLIB=y
909
910#
911# MII PHY device drivers
912#
913# CONFIG_MARVELL_PHY is not set
914# CONFIG_DAVICOM_PHY is not set
915# CONFIG_QSEMI_PHY is not set
916# CONFIG_LXT_PHY is not set
917# CONFIG_CICADA_PHY is not set
918# CONFIG_VITESSE_PHY is not set
919# CONFIG_SMSC_PHY is not set
920# CONFIG_BROADCOM_PHY is not set
921# CONFIG_ICPLUS_PHY is not set
922# CONFIG_REALTEK_PHY is not set
923# CONFIG_FIXED_PHY is not set
924# CONFIG_MDIO_BITBANG is not set
900CONFIG_NET_ETHERNET=y 925CONFIG_NET_ETHERNET=y
901CONFIG_MII=y 926CONFIG_MII=y
902# CONFIG_HAPPYMEAL is not set 927# CONFIG_HAPPYMEAL is not set
@@ -940,16 +965,15 @@ CONFIG_8139TOO_PIO=y
940# CONFIG_SIS900 is not set 965# CONFIG_SIS900 is not set
941# CONFIG_EPIC100 is not set 966# CONFIG_EPIC100 is not set
942# CONFIG_SUNDANCE is not set 967# CONFIG_SUNDANCE is not set
968# CONFIG_TLAN is not set
943# CONFIG_VIA_RHINE is not set 969# CONFIG_VIA_RHINE is not set
944# CONFIG_SC92031 is not set 970# CONFIG_SC92031 is not set
945CONFIG_NETDEV_1000=y 971CONFIG_NETDEV_1000=y
946# CONFIG_ACENIC is not set 972# CONFIG_ACENIC is not set
947# CONFIG_DL2K is not set 973# CONFIG_DL2K is not set
948CONFIG_E1000=y 974CONFIG_E1000=y
949# CONFIG_E1000_NAPI is not set
950# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 975# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
951# CONFIG_E1000E is not set 976# CONFIG_E1000E is not set
952# CONFIG_E1000E_ENABLED is not set
953# CONFIG_IP1000 is not set 977# CONFIG_IP1000 is not set
954# CONFIG_IGB is not set 978# CONFIG_IGB is not set
955# CONFIG_NS83820 is not set 979# CONFIG_NS83820 is not set
@@ -965,6 +989,7 @@ CONFIG_TIGON3=y
965# CONFIG_BNX2 is not set 989# CONFIG_BNX2 is not set
966# CONFIG_QLA3XXX is not set 990# CONFIG_QLA3XXX is not set
967# CONFIG_ATL1 is not set 991# CONFIG_ATL1 is not set
992# CONFIG_ATL1E is not set
968CONFIG_NETDEV_10000=y 993CONFIG_NETDEV_10000=y
969# CONFIG_CHELSIO_T1 is not set 994# CONFIG_CHELSIO_T1 is not set
970# CONFIG_CHELSIO_T3 is not set 995# CONFIG_CHELSIO_T3 is not set
@@ -1003,13 +1028,14 @@ CONFIG_WLAN_80211=y
1003# CONFIG_RTL8180 is not set 1028# CONFIG_RTL8180 is not set
1004# CONFIG_RTL8187 is not set 1029# CONFIG_RTL8187 is not set
1005# CONFIG_ADM8211 is not set 1030# CONFIG_ADM8211 is not set
1031# CONFIG_MAC80211_HWSIM is not set
1006# CONFIG_P54_COMMON is not set 1032# CONFIG_P54_COMMON is not set
1007CONFIG_ATH5K=y 1033CONFIG_ATH5K=y
1008# CONFIG_ATH5K_DEBUG is not set 1034# CONFIG_ATH5K_DEBUG is not set
1009# CONFIG_IWLWIFI is not set 1035# CONFIG_ATH9K is not set
1010# CONFIG_IWLCORE is not set 1036# CONFIG_IWLCORE is not set
1011# CONFIG_IWLWIFI_LEDS is not set 1037# CONFIG_IWLWIFI_LEDS is not set
1012# CONFIG_IWL4965 is not set 1038# CONFIG_IWLAGN is not set
1013# CONFIG_IWL3945 is not set 1039# CONFIG_IWL3945 is not set
1014# CONFIG_HOSTAP is not set 1040# CONFIG_HOSTAP is not set
1015# CONFIG_B43 is not set 1041# CONFIG_B43 is not set
@@ -1088,6 +1114,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
1088# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1114# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1089# CONFIG_MOUSE_SERIAL is not set 1115# CONFIG_MOUSE_SERIAL is not set
1090# CONFIG_MOUSE_APPLETOUCH is not set 1116# CONFIG_MOUSE_APPLETOUCH is not set
1117# CONFIG_MOUSE_BCM5974 is not set
1091# CONFIG_MOUSE_VSXXXAA is not set 1118# CONFIG_MOUSE_VSXXXAA is not set
1092CONFIG_INPUT_JOYSTICK=y 1119CONFIG_INPUT_JOYSTICK=y
1093# CONFIG_JOYSTICK_ANALOG is not set 1120# CONFIG_JOYSTICK_ANALOG is not set
@@ -1122,12 +1149,14 @@ CONFIG_INPUT_TOUCHSCREEN=y
1122# CONFIG_TOUCHSCREEN_GUNZE is not set 1149# CONFIG_TOUCHSCREEN_GUNZE is not set
1123# CONFIG_TOUCHSCREEN_ELO is not set 1150# CONFIG_TOUCHSCREEN_ELO is not set
1124# CONFIG_TOUCHSCREEN_MTOUCH is not set 1151# CONFIG_TOUCHSCREEN_MTOUCH is not set
1152# CONFIG_TOUCHSCREEN_INEXIO is not set
1125# CONFIG_TOUCHSCREEN_MK712 is not set 1153# CONFIG_TOUCHSCREEN_MK712 is not set
1126# CONFIG_TOUCHSCREEN_PENMOUNT is not set 1154# CONFIG_TOUCHSCREEN_PENMOUNT is not set
1127# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 1155# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
1128# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 1156# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
1129# CONFIG_TOUCHSCREEN_UCB1400 is not set 1157# CONFIG_TOUCHSCREEN_UCB1400 is not set
1130# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 1158# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
1159# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
1131CONFIG_INPUT_MISC=y 1160CONFIG_INPUT_MISC=y
1132# CONFIG_INPUT_PCSPKR is not set 1161# CONFIG_INPUT_PCSPKR is not set
1133# CONFIG_INPUT_APANEL is not set 1162# CONFIG_INPUT_APANEL is not set
@@ -1155,6 +1184,7 @@ CONFIG_SERIO_LIBPS2=y
1155# Character devices 1184# Character devices
1156# 1185#
1157CONFIG_VT=y 1186CONFIG_VT=y
1187CONFIG_CONSOLE_TRANSLATIONS=y
1158CONFIG_VT_CONSOLE=y 1188CONFIG_VT_CONSOLE=y
1159CONFIG_HW_CONSOLE=y 1189CONFIG_HW_CONSOLE=y
1160CONFIG_VT_HW_CONSOLE_BINDING=y 1190CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -1222,7 +1252,6 @@ CONFIG_NVRAM=y
1222# CONFIG_PC8736x_GPIO is not set 1252# CONFIG_PC8736x_GPIO is not set
1223# CONFIG_RAW_DRIVER is not set 1253# CONFIG_RAW_DRIVER is not set
1224CONFIG_HPET=y 1254CONFIG_HPET=y
1225# CONFIG_HPET_RTC_IRQ is not set
1226# CONFIG_HPET_MMAP is not set 1255# CONFIG_HPET_MMAP is not set
1227# CONFIG_HANGCHECK_TIMER is not set 1256# CONFIG_HANGCHECK_TIMER is not set
1228# CONFIG_TCG_TPM is not set 1257# CONFIG_TCG_TPM is not set
@@ -1231,42 +1260,63 @@ CONFIG_DEVPORT=y
1231CONFIG_I2C=y 1260CONFIG_I2C=y
1232CONFIG_I2C_BOARDINFO=y 1261CONFIG_I2C_BOARDINFO=y
1233# CONFIG_I2C_CHARDEV is not set 1262# CONFIG_I2C_CHARDEV is not set
1263CONFIG_I2C_HELPER_AUTO=y
1234 1264
1235# 1265#
1236# I2C Hardware Bus support 1266# I2C Hardware Bus support
1237# 1267#
1268
1269#
1270# PC SMBus host controller drivers
1271#
1238# CONFIG_I2C_ALI1535 is not set 1272# CONFIG_I2C_ALI1535 is not set
1239# CONFIG_I2C_ALI1563 is not set 1273# CONFIG_I2C_ALI1563 is not set
1240# CONFIG_I2C_ALI15X3 is not set 1274# CONFIG_I2C_ALI15X3 is not set
1241# CONFIG_I2C_AMD756 is not set 1275# CONFIG_I2C_AMD756 is not set
1242# CONFIG_I2C_AMD8111 is not set 1276# CONFIG_I2C_AMD8111 is not set
1243CONFIG_I2C_I801=y 1277CONFIG_I2C_I801=y
1244# CONFIG_I2C_I810 is not set 1278# CONFIG_I2C_ISCH is not set
1245# CONFIG_I2C_PIIX4 is not set 1279# CONFIG_I2C_PIIX4 is not set
1246# CONFIG_I2C_NFORCE2 is not set 1280# CONFIG_I2C_NFORCE2 is not set
1247# CONFIG_I2C_OCORES is not set
1248# CONFIG_I2C_PARPORT_LIGHT is not set
1249# CONFIG_I2C_PROSAVAGE is not set
1250# CONFIG_I2C_SAVAGE4 is not set
1251# CONFIG_I2C_SIMTEC is not set
1252# CONFIG_I2C_SIS5595 is not set 1281# CONFIG_I2C_SIS5595 is not set
1253# CONFIG_I2C_SIS630 is not set 1282# CONFIG_I2C_SIS630 is not set
1254# CONFIG_I2C_SIS96X is not set 1283# CONFIG_I2C_SIS96X is not set
1255# CONFIG_I2C_TAOS_EVM is not set
1256# CONFIG_I2C_STUB is not set
1257# CONFIG_I2C_TINY_USB is not set
1258# CONFIG_I2C_VIA is not set 1284# CONFIG_I2C_VIA is not set
1259# CONFIG_I2C_VIAPRO is not set 1285# CONFIG_I2C_VIAPRO is not set
1286
1287#
1288# I2C system bus drivers (mostly embedded / system-on-chip)
1289#
1290# CONFIG_I2C_OCORES is not set
1291# CONFIG_I2C_SIMTEC is not set
1292
1293#
1294# External I2C/SMBus adapter drivers
1295#
1296# CONFIG_I2C_PARPORT_LIGHT is not set
1297# CONFIG_I2C_TAOS_EVM is not set
1298# CONFIG_I2C_TINY_USB is not set
1299
1300#
1301# Graphics adapter I2C/DDC channel drivers
1302#
1260# CONFIG_I2C_VOODOO3 is not set 1303# CONFIG_I2C_VOODOO3 is not set
1304
1305#
1306# Other I2C/SMBus bus drivers
1307#
1261# CONFIG_I2C_PCA_PLATFORM is not set 1308# CONFIG_I2C_PCA_PLATFORM is not set
1309# CONFIG_I2C_STUB is not set
1262 1310
1263# 1311#
1264# Miscellaneous I2C Chip support 1312# Miscellaneous I2C Chip support
1265# 1313#
1266# CONFIG_DS1682 is not set 1314# CONFIG_DS1682 is not set
1315# CONFIG_AT24 is not set
1267# CONFIG_SENSORS_EEPROM is not set 1316# CONFIG_SENSORS_EEPROM is not set
1268# CONFIG_SENSORS_PCF8574 is not set 1317# CONFIG_SENSORS_PCF8574 is not set
1269# CONFIG_PCF8575 is not set 1318# CONFIG_PCF8575 is not set
1319# CONFIG_SENSORS_PCA9539 is not set
1270# CONFIG_SENSORS_PCF8591 is not set 1320# CONFIG_SENSORS_PCF8591 is not set
1271# CONFIG_SENSORS_MAX6875 is not set 1321# CONFIG_SENSORS_MAX6875 is not set
1272# CONFIG_SENSORS_TSL2550 is not set 1322# CONFIG_SENSORS_TSL2550 is not set
@@ -1275,6 +1325,8 @@ CONFIG_I2C_I801=y
1275# CONFIG_I2C_DEBUG_BUS is not set 1325# CONFIG_I2C_DEBUG_BUS is not set
1276# CONFIG_I2C_DEBUG_CHIP is not set 1326# CONFIG_I2C_DEBUG_CHIP is not set
1277# CONFIG_SPI is not set 1327# CONFIG_SPI is not set
1328CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1329# CONFIG_GPIOLIB is not set
1278# CONFIG_W1 is not set 1330# CONFIG_W1 is not set
1279CONFIG_POWER_SUPPLY=y 1331CONFIG_POWER_SUPPLY=y
1280# CONFIG_POWER_SUPPLY_DEBUG is not set 1332# CONFIG_POWER_SUPPLY_DEBUG is not set
@@ -1335,8 +1387,10 @@ CONFIG_SSB_POSSIBLE=y
1335# 1387#
1336# Multifunction device drivers 1388# Multifunction device drivers
1337# 1389#
1390# CONFIG_MFD_CORE is not set
1338# CONFIG_MFD_SM501 is not set 1391# CONFIG_MFD_SM501 is not set
1339# CONFIG_HTC_PASIC3 is not set 1392# CONFIG_HTC_PASIC3 is not set
1393# CONFIG_MFD_TMIO is not set
1340 1394
1341# 1395#
1342# Multimedia devices 1396# Multimedia devices
@@ -1347,6 +1401,7 @@ CONFIG_SSB_POSSIBLE=y
1347# 1401#
1348# CONFIG_VIDEO_DEV is not set 1402# CONFIG_VIDEO_DEV is not set
1349# CONFIG_DVB_CORE is not set 1403# CONFIG_DVB_CORE is not set
1404# CONFIG_VIDEO_MEDIA is not set
1350 1405
1351# 1406#
1352# Multimedia drivers 1407# Multimedia drivers
@@ -1387,7 +1442,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y
1387# CONFIG_FB_SYS_IMAGEBLIT is not set 1442# CONFIG_FB_SYS_IMAGEBLIT is not set
1388# CONFIG_FB_FOREIGN_ENDIAN is not set 1443# CONFIG_FB_FOREIGN_ENDIAN is not set
1389# CONFIG_FB_SYS_FOPS is not set 1444# CONFIG_FB_SYS_FOPS is not set
1390CONFIG_FB_DEFERRED_IO=y
1391# CONFIG_FB_SVGALIB is not set 1445# CONFIG_FB_SVGALIB is not set
1392# CONFIG_FB_MACMODES is not set 1446# CONFIG_FB_MACMODES is not set
1393# CONFIG_FB_BACKLIGHT is not set 1447# CONFIG_FB_BACKLIGHT is not set
@@ -1430,6 +1484,7 @@ CONFIG_FB_EFI=y
1430# CONFIG_FB_TRIDENT is not set 1484# CONFIG_FB_TRIDENT is not set
1431# CONFIG_FB_ARK is not set 1485# CONFIG_FB_ARK is not set
1432# CONFIG_FB_PM3 is not set 1486# CONFIG_FB_PM3 is not set
1487# CONFIG_FB_CARMINE is not set
1433# CONFIG_FB_GEODE is not set 1488# CONFIG_FB_GEODE is not set
1434# CONFIG_FB_VIRTUAL is not set 1489# CONFIG_FB_VIRTUAL is not set
1435CONFIG_BACKLIGHT_LCD_SUPPORT=y 1490CONFIG_BACKLIGHT_LCD_SUPPORT=y
@@ -1437,6 +1492,7 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y
1437CONFIG_BACKLIGHT_CLASS_DEVICE=y 1492CONFIG_BACKLIGHT_CLASS_DEVICE=y
1438# CONFIG_BACKLIGHT_CORGI is not set 1493# CONFIG_BACKLIGHT_CORGI is not set
1439# CONFIG_BACKLIGHT_PROGEAR is not set 1494# CONFIG_BACKLIGHT_PROGEAR is not set
1495# CONFIG_BACKLIGHT_MBP_NVIDIA is not set
1440 1496
1441# 1497#
1442# Display device support 1498# Display device support
@@ -1456,15 +1512,7 @@ CONFIG_LOGO=y
1456# CONFIG_LOGO_LINUX_MONO is not set 1512# CONFIG_LOGO_LINUX_MONO is not set
1457# CONFIG_LOGO_LINUX_VGA16 is not set 1513# CONFIG_LOGO_LINUX_VGA16 is not set
1458CONFIG_LOGO_LINUX_CLUT224=y 1514CONFIG_LOGO_LINUX_CLUT224=y
1459
1460#
1461# Sound
1462#
1463CONFIG_SOUND=y 1515CONFIG_SOUND=y
1464
1465#
1466# Advanced Linux Sound Architecture
1467#
1468CONFIG_SND=y 1516CONFIG_SND=y
1469CONFIG_SND_TIMER=y 1517CONFIG_SND_TIMER=y
1470CONFIG_SND_PCM=y 1518CONFIG_SND_PCM=y
@@ -1482,20 +1530,14 @@ CONFIG_SND_VERBOSE_PROCFS=y
1482# CONFIG_SND_VERBOSE_PRINTK is not set 1530# CONFIG_SND_VERBOSE_PRINTK is not set
1483# CONFIG_SND_DEBUG is not set 1531# CONFIG_SND_DEBUG is not set
1484CONFIG_SND_VMASTER=y 1532CONFIG_SND_VMASTER=y
1485 1533CONFIG_SND_DRIVERS=y
1486#
1487# Generic devices
1488#
1489# CONFIG_SND_PCSP is not set 1534# CONFIG_SND_PCSP is not set
1490# CONFIG_SND_DUMMY is not set 1535# CONFIG_SND_DUMMY is not set
1491# CONFIG_SND_VIRMIDI is not set 1536# CONFIG_SND_VIRMIDI is not set
1492# CONFIG_SND_MTPAV is not set 1537# CONFIG_SND_MTPAV is not set
1493# CONFIG_SND_SERIAL_U16550 is not set 1538# CONFIG_SND_SERIAL_U16550 is not set
1494# CONFIG_SND_MPU401 is not set 1539# CONFIG_SND_MPU401 is not set
1495 1540CONFIG_SND_PCI=y
1496#
1497# PCI devices
1498#
1499# CONFIG_SND_AD1889 is not set 1541# CONFIG_SND_AD1889 is not set
1500# CONFIG_SND_ALS300 is not set 1542# CONFIG_SND_ALS300 is not set
1501# CONFIG_SND_ALS4000 is not set 1543# CONFIG_SND_ALS4000 is not set
@@ -1568,36 +1610,14 @@ CONFIG_SND_HDA_GENERIC=y
1568# CONFIG_SND_VIRTUOSO is not set 1610# CONFIG_SND_VIRTUOSO is not set
1569# CONFIG_SND_VX222 is not set 1611# CONFIG_SND_VX222 is not set
1570# CONFIG_SND_YMFPCI is not set 1612# CONFIG_SND_YMFPCI is not set
1571 1613CONFIG_SND_USB=y
1572#
1573# USB devices
1574#
1575# CONFIG_SND_USB_AUDIO is not set 1614# CONFIG_SND_USB_AUDIO is not set
1576# CONFIG_SND_USB_USX2Y is not set 1615# CONFIG_SND_USB_USX2Y is not set
1577# CONFIG_SND_USB_CAIAQ is not set 1616# CONFIG_SND_USB_CAIAQ is not set
1578 1617CONFIG_SND_PCMCIA=y
1579#
1580# PCMCIA devices
1581#
1582# CONFIG_SND_VXPOCKET is not set 1618# CONFIG_SND_VXPOCKET is not set
1583# CONFIG_SND_PDAUDIOCF is not set 1619# CONFIG_SND_PDAUDIOCF is not set
1584
1585#
1586# System on Chip audio support
1587#
1588# CONFIG_SND_SOC is not set 1620# CONFIG_SND_SOC is not set
1589
1590#
1591# ALSA SoC audio for Freescale SOCs
1592#
1593
1594#
1595# SoC Audio for the Texas Instruments OMAP
1596#
1597
1598#
1599# Open Sound System
1600#
1601# CONFIG_SOUND_PRIME is not set 1621# CONFIG_SOUND_PRIME is not set
1602CONFIG_HID_SUPPORT=y 1622CONFIG_HID_SUPPORT=y
1603CONFIG_HID=y 1623CONFIG_HID=y
@@ -1633,6 +1653,7 @@ CONFIG_USB_DEVICEFS=y
1633# CONFIG_USB_DYNAMIC_MINORS is not set 1653# CONFIG_USB_DYNAMIC_MINORS is not set
1634CONFIG_USB_SUSPEND=y 1654CONFIG_USB_SUSPEND=y
1635# CONFIG_USB_OTG is not set 1655# CONFIG_USB_OTG is not set
1656CONFIG_USB_MON=y
1636 1657
1637# 1658#
1638# USB Host Controller Drivers 1659# USB Host Controller Drivers
@@ -1656,6 +1677,7 @@ CONFIG_USB_UHCI_HCD=y
1656# 1677#
1657# CONFIG_USB_ACM is not set 1678# CONFIG_USB_ACM is not set
1658CONFIG_USB_PRINTER=y 1679CONFIG_USB_PRINTER=y
1680# CONFIG_USB_WDM is not set
1659 1681
1660# 1682#
1661# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1683# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1677,6 +1699,7 @@ CONFIG_USB_STORAGE=y
1677# CONFIG_USB_STORAGE_ALAUDA is not set 1699# CONFIG_USB_STORAGE_ALAUDA is not set
1678# CONFIG_USB_STORAGE_ONETOUCH is not set 1700# CONFIG_USB_STORAGE_ONETOUCH is not set
1679# CONFIG_USB_STORAGE_KARMA is not set 1701# CONFIG_USB_STORAGE_KARMA is not set
1702# CONFIG_USB_STORAGE_SIERRA is not set
1680# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1703# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1681CONFIG_USB_LIBUSUAL=y 1704CONFIG_USB_LIBUSUAL=y
1682 1705
@@ -1685,7 +1708,6 @@ CONFIG_USB_LIBUSUAL=y
1685# 1708#
1686# CONFIG_USB_MDC800 is not set 1709# CONFIG_USB_MDC800 is not set
1687# CONFIG_USB_MICROTEK is not set 1710# CONFIG_USB_MICROTEK is not set
1688CONFIG_USB_MON=y
1689 1711
1690# 1712#
1691# USB port drivers 1713# USB port drivers
@@ -1698,7 +1720,6 @@ CONFIG_USB_MON=y
1698# CONFIG_USB_EMI62 is not set 1720# CONFIG_USB_EMI62 is not set
1699# CONFIG_USB_EMI26 is not set 1721# CONFIG_USB_EMI26 is not set
1700# CONFIG_USB_ADUTUX is not set 1722# CONFIG_USB_ADUTUX is not set
1701# CONFIG_USB_AUERSWALD is not set
1702# CONFIG_USB_RIO500 is not set 1723# CONFIG_USB_RIO500 is not set
1703# CONFIG_USB_LEGOTOWER is not set 1724# CONFIG_USB_LEGOTOWER is not set
1704# CONFIG_USB_LCD is not set 1725# CONFIG_USB_LCD is not set
@@ -1715,6 +1736,7 @@ CONFIG_USB_MON=y
1715# CONFIG_USB_TRANCEVIBRATOR is not set 1736# CONFIG_USB_TRANCEVIBRATOR is not set
1716# CONFIG_USB_IOWARRIOR is not set 1737# CONFIG_USB_IOWARRIOR is not set
1717# CONFIG_USB_TEST is not set 1738# CONFIG_USB_TEST is not set
1739# CONFIG_USB_ISIGHTFW is not set
1718# CONFIG_USB_GADGET is not set 1740# CONFIG_USB_GADGET is not set
1719# CONFIG_MMC is not set 1741# CONFIG_MMC is not set
1720# CONFIG_MEMSTICK is not set 1742# CONFIG_MEMSTICK is not set
@@ -1724,7 +1746,9 @@ CONFIG_LEDS_CLASS=y
1724# 1746#
1725# LED drivers 1747# LED drivers
1726# 1748#
1749# CONFIG_LEDS_PCA9532 is not set
1727# CONFIG_LEDS_CLEVO_MAIL is not set 1750# CONFIG_LEDS_CLEVO_MAIL is not set
1751# CONFIG_LEDS_PCA955X is not set
1728 1752
1729# 1753#
1730# LED Triggers 1754# LED Triggers
@@ -1770,6 +1794,7 @@ CONFIG_RTC_INTF_DEV=y
1770# CONFIG_RTC_DRV_PCF8583 is not set 1794# CONFIG_RTC_DRV_PCF8583 is not set
1771# CONFIG_RTC_DRV_M41T80 is not set 1795# CONFIG_RTC_DRV_M41T80 is not set
1772# CONFIG_RTC_DRV_S35390A is not set 1796# CONFIG_RTC_DRV_S35390A is not set
1797# CONFIG_RTC_DRV_FM3130 is not set
1773 1798
1774# 1799#
1775# SPI RTC drivers 1800# SPI RTC drivers
@@ -1802,11 +1827,13 @@ CONFIG_DMADEVICES=y
1802# Firmware Drivers 1827# Firmware Drivers
1803# 1828#
1804# CONFIG_EDD is not set 1829# CONFIG_EDD is not set
1830CONFIG_FIRMWARE_MEMMAP=y
1805CONFIG_EFI_VARS=y 1831CONFIG_EFI_VARS=y
1806# CONFIG_DELL_RBU is not set 1832# CONFIG_DELL_RBU is not set
1807# CONFIG_DCDBAS is not set 1833# CONFIG_DCDBAS is not set
1808CONFIG_DMIID=y 1834CONFIG_DMIID=y
1809# CONFIG_ISCSI_IBFT_FIND is not set 1835CONFIG_ISCSI_IBFT_FIND=y
1836CONFIG_ISCSI_IBFT=y
1810 1837
1811# 1838#
1812# File systems 1839# File systems
@@ -1886,14 +1913,27 @@ CONFIG_HUGETLB_PAGE=y
1886# CONFIG_CRAMFS is not set 1913# CONFIG_CRAMFS is not set
1887# CONFIG_VXFS_FS is not set 1914# CONFIG_VXFS_FS is not set
1888# CONFIG_MINIX_FS is not set 1915# CONFIG_MINIX_FS is not set
1916# CONFIG_OMFS_FS is not set
1889# CONFIG_HPFS_FS is not set 1917# CONFIG_HPFS_FS is not set
1890# CONFIG_QNX4FS_FS is not set 1918# CONFIG_QNX4FS_FS is not set
1891# CONFIG_ROMFS_FS is not set 1919# CONFIG_ROMFS_FS is not set
1892# CONFIG_SYSV_FS is not set 1920# CONFIG_SYSV_FS is not set
1893# CONFIG_UFS_FS is not set 1921# CONFIG_UFS_FS is not set
1894CONFIG_NETWORK_FILESYSTEMS=y 1922CONFIG_NETWORK_FILESYSTEMS=y
1895# CONFIG_NFS_FS is not set 1923CONFIG_NFS_FS=y
1924CONFIG_NFS_V3=y
1925CONFIG_NFS_V3_ACL=y
1926CONFIG_NFS_V4=y
1927CONFIG_ROOT_NFS=y
1896# CONFIG_NFSD is not set 1928# CONFIG_NFSD is not set
1929CONFIG_LOCKD=y
1930CONFIG_LOCKD_V4=y
1931CONFIG_NFS_ACL_SUPPORT=y
1932CONFIG_NFS_COMMON=y
1933CONFIG_SUNRPC=y
1934CONFIG_SUNRPC_GSS=y
1935CONFIG_RPCSEC_GSS_KRB5=y
1936# CONFIG_RPCSEC_GSS_SPKM3 is not set
1897# CONFIG_SMB_FS is not set 1937# CONFIG_SMB_FS is not set
1898# CONFIG_CIFS is not set 1938# CONFIG_CIFS is not set
1899# CONFIG_NCP_FS is not set 1939# CONFIG_NCP_FS is not set
@@ -1967,9 +2007,9 @@ CONFIG_NLS_UTF8=y
1967# Kernel hacking 2007# Kernel hacking
1968# 2008#
1969CONFIG_TRACE_IRQFLAGS_SUPPORT=y 2009CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1970# CONFIG_PRINTK_TIME is not set 2010CONFIG_PRINTK_TIME=y
1971# CONFIG_ENABLE_WARN_DEPRECATED is not set 2011CONFIG_ENABLE_WARN_DEPRECATED=y
1972# CONFIG_ENABLE_MUST_CHECK is not set 2012CONFIG_ENABLE_MUST_CHECK=y
1973CONFIG_FRAME_WARN=2048 2013CONFIG_FRAME_WARN=2048
1974CONFIG_MAGIC_SYSRQ=y 2014CONFIG_MAGIC_SYSRQ=y
1975# CONFIG_UNUSED_SYMBOLS is not set 2015# CONFIG_UNUSED_SYMBOLS is not set
@@ -1998,6 +2038,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1998# CONFIG_DEBUG_INFO is not set 2038# CONFIG_DEBUG_INFO is not set
1999# CONFIG_DEBUG_VM is not set 2039# CONFIG_DEBUG_VM is not set
2000# CONFIG_DEBUG_WRITECOUNT is not set 2040# CONFIG_DEBUG_WRITECOUNT is not set
2041CONFIG_DEBUG_MEMORY_INIT=y
2001# CONFIG_DEBUG_LIST is not set 2042# CONFIG_DEBUG_LIST is not set
2002# CONFIG_DEBUG_SG is not set 2043# CONFIG_DEBUG_SG is not set
2003CONFIG_FRAME_POINTER=y 2044CONFIG_FRAME_POINTER=y
@@ -2008,11 +2049,20 @@ CONFIG_FRAME_POINTER=y
2008# CONFIG_LKDTM is not set 2049# CONFIG_LKDTM is not set
2009# CONFIG_FAULT_INJECTION is not set 2050# CONFIG_FAULT_INJECTION is not set
2010# CONFIG_LATENCYTOP is not set 2051# CONFIG_LATENCYTOP is not set
2052CONFIG_SYSCTL_SYSCALL_CHECK=y
2053CONFIG_HAVE_FTRACE=y
2054CONFIG_HAVE_DYNAMIC_FTRACE=y
2055# CONFIG_FTRACE is not set
2056# CONFIG_IRQSOFF_TRACER is not set
2057# CONFIG_SYSPROF_TRACER is not set
2058# CONFIG_SCHED_TRACER is not set
2059# CONFIG_CONTEXT_SWITCH_TRACER is not set
2011CONFIG_PROVIDE_OHCI1394_DMA_INIT=y 2060CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
2012# CONFIG_SAMPLES is not set 2061# CONFIG_SAMPLES is not set
2013# CONFIG_KGDB is not set
2014CONFIG_HAVE_ARCH_KGDB=y 2062CONFIG_HAVE_ARCH_KGDB=y
2063# CONFIG_KGDB is not set
2015# CONFIG_STRICT_DEVMEM is not set 2064# CONFIG_STRICT_DEVMEM is not set
2065CONFIG_X86_VERBOSE_BOOTUP=y
2016CONFIG_EARLY_PRINTK=y 2066CONFIG_EARLY_PRINTK=y
2017CONFIG_DEBUG_STACKOVERFLOW=y 2067CONFIG_DEBUG_STACKOVERFLOW=y
2018CONFIG_DEBUG_STACK_USAGE=y 2068CONFIG_DEBUG_STACK_USAGE=y
@@ -2023,8 +2073,8 @@ CONFIG_DEBUG_RODATA=y
2023# CONFIG_DIRECT_GBPAGES is not set 2073# CONFIG_DIRECT_GBPAGES is not set
2024# CONFIG_DEBUG_RODATA_TEST is not set 2074# CONFIG_DEBUG_RODATA_TEST is not set
2025CONFIG_DEBUG_NX_TEST=m 2075CONFIG_DEBUG_NX_TEST=m
2026CONFIG_X86_MPPARSE=y
2027# CONFIG_IOMMU_DEBUG is not set 2076# CONFIG_IOMMU_DEBUG is not set
2077# CONFIG_MMIOTRACE is not set
2028CONFIG_IO_DELAY_TYPE_0X80=0 2078CONFIG_IO_DELAY_TYPE_0X80=0
2029CONFIG_IO_DELAY_TYPE_0XED=1 2079CONFIG_IO_DELAY_TYPE_0XED=1
2030CONFIG_IO_DELAY_TYPE_UDELAY=2 2080CONFIG_IO_DELAY_TYPE_UDELAY=2
@@ -2036,6 +2086,7 @@ CONFIG_IO_DELAY_0X80=y
2036CONFIG_DEFAULT_IO_DELAY_TYPE=0 2086CONFIG_DEFAULT_IO_DELAY_TYPE=0
2037CONFIG_DEBUG_BOOT_PARAMS=y 2087CONFIG_DEBUG_BOOT_PARAMS=y
2038# CONFIG_CPA_DEBUG is not set 2088# CONFIG_CPA_DEBUG is not set
2089CONFIG_OPTIMIZE_INLINING=y
2039 2090
2040# 2091#
2041# Security options 2092# Security options
@@ -2045,7 +2096,6 @@ CONFIG_KEYS_DEBUG_PROC_KEYS=y
2045CONFIG_SECURITY=y 2096CONFIG_SECURITY=y
2046CONFIG_SECURITY_NETWORK=y 2097CONFIG_SECURITY_NETWORK=y
2047# CONFIG_SECURITY_NETWORK_XFRM is not set 2098# CONFIG_SECURITY_NETWORK_XFRM is not set
2048CONFIG_SECURITY_CAPABILITIES=y
2049CONFIG_SECURITY_FILE_CAPABILITIES=y 2099CONFIG_SECURITY_FILE_CAPABILITIES=y
2050# CONFIG_SECURITY_ROOTPLUG is not set 2100# CONFIG_SECURITY_ROOTPLUG is not set
2051CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 2101CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536
@@ -2106,6 +2156,10 @@ CONFIG_CRYPTO_HMAC=y
2106# CONFIG_CRYPTO_MD4 is not set 2156# CONFIG_CRYPTO_MD4 is not set
2107CONFIG_CRYPTO_MD5=y 2157CONFIG_CRYPTO_MD5=y
2108# CONFIG_CRYPTO_MICHAEL_MIC is not set 2158# CONFIG_CRYPTO_MICHAEL_MIC is not set
2159# CONFIG_CRYPTO_RMD128 is not set
2160# CONFIG_CRYPTO_RMD160 is not set
2161# CONFIG_CRYPTO_RMD256 is not set
2162# CONFIG_CRYPTO_RMD320 is not set
2109CONFIG_CRYPTO_SHA1=y 2163CONFIG_CRYPTO_SHA1=y
2110# CONFIG_CRYPTO_SHA256 is not set 2164# CONFIG_CRYPTO_SHA256 is not set
2111# CONFIG_CRYPTO_SHA512 is not set 2165# CONFIG_CRYPTO_SHA512 is not set
@@ -2155,6 +2209,7 @@ CONFIG_GENERIC_FIND_FIRST_BIT=y
2155CONFIG_GENERIC_FIND_NEXT_BIT=y 2209CONFIG_GENERIC_FIND_NEXT_BIT=y
2156# CONFIG_CRC_CCITT is not set 2210# CONFIG_CRC_CCITT is not set
2157# CONFIG_CRC16 is not set 2211# CONFIG_CRC16 is not set
2212CONFIG_CRC_T10DIF=y
2158# CONFIG_CRC_ITU_T is not set 2213# CONFIG_CRC_ITU_T is not set
2159CONFIG_CRC32=y 2214CONFIG_CRC32=y
2160# CONFIG_CRC7 is not set 2215# CONFIG_CRC7 is not set
diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c
index a0e1dbe67dc..127ec3f0721 100644
--- a/arch/x86/ia32/ia32_aout.c
+++ b/arch/x86/ia32/ia32_aout.c
@@ -85,8 +85,10 @@ static void dump_thread32(struct pt_regs *regs, struct user32 *dump)
85 dump->regs.ax = regs->ax; 85 dump->regs.ax = regs->ax;
86 dump->regs.ds = current->thread.ds; 86 dump->regs.ds = current->thread.ds;
87 dump->regs.es = current->thread.es; 87 dump->regs.es = current->thread.es;
88 asm("movl %%fs,%0" : "=r" (fs)); dump->regs.fs = fs; 88 savesegment(fs, fs);
89 asm("movl %%gs,%0" : "=r" (gs)); dump->regs.gs = gs; 89 dump->regs.fs = fs;
90 savesegment(gs, gs);
91 dump->regs.gs = gs;
90 dump->regs.orig_ax = regs->orig_ax; 92 dump->regs.orig_ax = regs->orig_ax;
91 dump->regs.ip = regs->ip; 93 dump->regs.ip = regs->ip;
92 dump->regs.cs = regs->cs; 94 dump->regs.cs = regs->cs;
@@ -430,8 +432,9 @@ beyond_if:
430 current->mm->start_stack = 432 current->mm->start_stack =
431 (unsigned long)create_aout_tables((char __user *)bprm->p, bprm); 433 (unsigned long)create_aout_tables((char __user *)bprm->p, bprm);
432 /* start thread */ 434 /* start thread */
433 asm volatile("movl %0,%%fs" :: "r" (0)); \ 435 loadsegment(fs, 0);
434 asm volatile("movl %0,%%es; movl %0,%%ds": :"r" (__USER32_DS)); 436 loadsegment(ds, __USER32_DS);
437 loadsegment(es, __USER32_DS);
435 load_gs_index(0); 438 load_gs_index(0);
436 (regs)->ip = ex.a_entry; 439 (regs)->ip = ex.a_entry;
437 (regs)->sp = current->mm->start_stack; 440 (regs)->sp = current->mm->start_stack;
diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
index 20af4c79579..f1a2ac777fa 100644
--- a/arch/x86/ia32/ia32_signal.c
+++ b/arch/x86/ia32/ia32_signal.c
@@ -206,7 +206,7 @@ struct rt_sigframe
206 { unsigned int cur; \ 206 { unsigned int cur; \
207 unsigned short pre; \ 207 unsigned short pre; \
208 err |= __get_user(pre, &sc->seg); \ 208 err |= __get_user(pre, &sc->seg); \
209 asm volatile("movl %%" #seg ",%0" : "=r" (cur)); \ 209 savesegment(seg, cur); \
210 pre |= mask; \ 210 pre |= mask; \
211 if (pre != cur) loadsegment(seg, pre); } 211 if (pre != cur) loadsegment(seg, pre); }
212 212
@@ -235,7 +235,7 @@ static int ia32_restore_sigcontext(struct pt_regs *regs,
235 */ 235 */
236 err |= __get_user(gs, &sc->gs); 236 err |= __get_user(gs, &sc->gs);
237 gs |= 3; 237 gs |= 3;
238 asm("movl %%gs,%0" : "=r" (oldgs)); 238 savesegment(gs, oldgs);
239 if (gs != oldgs) 239 if (gs != oldgs)
240 load_gs_index(gs); 240 load_gs_index(gs);
241 241
@@ -355,14 +355,13 @@ static int ia32_setup_sigcontext(struct sigcontext_ia32 __user *sc,
355{ 355{
356 int tmp, err = 0; 356 int tmp, err = 0;
357 357
358 tmp = 0; 358 savesegment(gs, tmp);
359 __asm__("movl %%gs,%0" : "=r"(tmp): "0"(tmp));
360 err |= __put_user(tmp, (unsigned int __user *)&sc->gs); 359 err |= __put_user(tmp, (unsigned int __user *)&sc->gs);
361 __asm__("movl %%fs,%0" : "=r"(tmp): "0"(tmp)); 360 savesegment(fs, tmp);
362 err |= __put_user(tmp, (unsigned int __user *)&sc->fs); 361 err |= __put_user(tmp, (unsigned int __user *)&sc->fs);
363 __asm__("movl %%ds,%0" : "=r"(tmp): "0"(tmp)); 362 savesegment(ds, tmp);
364 err |= __put_user(tmp, (unsigned int __user *)&sc->ds); 363 err |= __put_user(tmp, (unsigned int __user *)&sc->ds);
365 __asm__("movl %%es,%0" : "=r"(tmp): "0"(tmp)); 364 savesegment(es, tmp);
366 err |= __put_user(tmp, (unsigned int __user *)&sc->es); 365 err |= __put_user(tmp, (unsigned int __user *)&sc->es);
367 366
368 err |= __put_user((u32)regs->di, &sc->di); 367 err |= __put_user((u32)regs->di, &sc->di);
@@ -498,8 +497,8 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
498 regs->dx = 0; 497 regs->dx = 0;
499 regs->cx = 0; 498 regs->cx = 0;
500 499
501 asm volatile("movl %0,%%ds" :: "r" (__USER32_DS)); 500 loadsegment(ds, __USER32_DS);
502 asm volatile("movl %0,%%es" :: "r" (__USER32_DS)); 501 loadsegment(es, __USER32_DS);
503 502
504 regs->cs = __USER32_CS; 503 regs->cs = __USER32_CS;
505 regs->ss = __USER32_DS; 504 regs->ss = __USER32_DS;
@@ -591,8 +590,8 @@ int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
591 regs->dx = (unsigned long) &frame->info; 590 regs->dx = (unsigned long) &frame->info;
592 regs->cx = (unsigned long) &frame->uc; 591 regs->cx = (unsigned long) &frame->uc;
593 592
594 asm volatile("movl %0,%%ds" :: "r" (__USER32_DS)); 593 loadsegment(ds, __USER32_DS);
595 asm volatile("movl %0,%%es" :: "r" (__USER32_DS)); 594 loadsegment(es, __USER32_DS);
596 595
597 regs->cs = __USER32_CS; 596 regs->cs = __USER32_CS;
598 regs->ss = __USER32_DS; 597 regs->ss = __USER32_DS;
diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c
index d3c64088b98..beda4232ce6 100644
--- a/arch/x86/ia32/sys_ia32.c
+++ b/arch/x86/ia32/sys_ia32.c
@@ -556,15 +556,6 @@ asmlinkage long sys32_rt_sigqueueinfo(int pid, int sig,
556 return ret; 556 return ret;
557} 557}
558 558
559/* These are here just in case some old ia32 binary calls it. */
560asmlinkage long sys32_pause(void)
561{
562 current->state = TASK_INTERRUPTIBLE;
563 schedule();
564 return -ERESTARTNOHAND;
565}
566
567
568#ifdef CONFIG_SYSCTL_SYSCALL 559#ifdef CONFIG_SYSCTL_SYSCALL
569struct sysctl_ia32 { 560struct sysctl_ia32 {
570 unsigned int name; 561 unsigned int name;
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index bfd10fd211c..e5032d7b391 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -58,7 +58,6 @@ EXPORT_SYMBOL(acpi_disabled);
58#ifdef CONFIG_X86_64 58#ifdef CONFIG_X86_64
59 59
60#include <asm/proto.h> 60#include <asm/proto.h>
61#include <asm/genapic.h>
62 61
63#else /* X86 */ 62#else /* X86 */
64 63
@@ -97,8 +96,6 @@ static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE;
97#warning ACPI uses CMPXCHG, i486 and later hardware 96#warning ACPI uses CMPXCHG, i486 and later hardware
98#endif 97#endif
99 98
100static int acpi_mcfg_64bit_base_addr __initdata = FALSE;
101
102/* -------------------------------------------------------------------------- 99/* --------------------------------------------------------------------------
103 Boot-time Configuration 100 Boot-time Configuration
104 -------------------------------------------------------------------------- */ 101 -------------------------------------------------------------------------- */
@@ -160,6 +157,8 @@ char *__init __acpi_map_table(unsigned long phys, unsigned long size)
160struct acpi_mcfg_allocation *pci_mmcfg_config; 157struct acpi_mcfg_allocation *pci_mmcfg_config;
161int pci_mmcfg_config_num; 158int pci_mmcfg_config_num;
162 159
160static int acpi_mcfg_64bit_base_addr __initdata = FALSE;
161
163static int __init acpi_mcfg_oem_check(struct acpi_table_mcfg *mcfg) 162static int __init acpi_mcfg_oem_check(struct acpi_table_mcfg *mcfg)
164{ 163{
165 if (!strcmp(mcfg->header.oem_id, "SGI")) 164 if (!strcmp(mcfg->header.oem_id, "SGI"))
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
index 2763cb37b55..fb04e49776b 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -145,35 +145,25 @@ static const unsigned char *const p6_nops[ASM_NOP_MAX+1] = {
145extern char __vsyscall_0; 145extern char __vsyscall_0;
146const unsigned char *const *find_nop_table(void) 146const unsigned char *const *find_nop_table(void)
147{ 147{
148 return boot_cpu_data.x86_vendor != X86_VENDOR_INTEL || 148 if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
149 boot_cpu_data.x86 < 6 ? k8_nops : p6_nops; 149 boot_cpu_has(X86_FEATURE_NOPL))
150 return p6_nops;
151 else
152 return k8_nops;
150} 153}
151 154
152#else /* CONFIG_X86_64 */ 155#else /* CONFIG_X86_64 */
153 156
154static const struct nop {
155 int cpuid;
156 const unsigned char *const *noptable;
157} noptypes[] = {
158 { X86_FEATURE_K8, k8_nops },
159 { X86_FEATURE_K7, k7_nops },
160 { X86_FEATURE_P4, p6_nops },
161 { X86_FEATURE_P3, p6_nops },
162 { -1, NULL }
163};
164
165const unsigned char *const *find_nop_table(void) 157const unsigned char *const *find_nop_table(void)
166{ 158{
167 const unsigned char *const *noptable = intel_nops; 159 if (boot_cpu_has(X86_FEATURE_K8))
168 int i; 160 return k8_nops;
169 161 else if (boot_cpu_has(X86_FEATURE_K7))
170 for (i = 0; noptypes[i].cpuid >= 0; i++) { 162 return k7_nops;
171 if (boot_cpu_has(noptypes[i].cpuid)) { 163 else if (boot_cpu_has(X86_FEATURE_NOPL))
172 noptable = noptypes[i].noptable; 164 return p6_nops;
173 break; 165 else
174 } 166 return intel_nops;
175 }
176 return noptable;
177} 167}
178 168
179#endif /* CONFIG_X86_64 */ 169#endif /* CONFIG_X86_64 */
@@ -241,25 +231,25 @@ static void alternatives_smp_lock(u8 **start, u8 **end, u8 *text, u8 *text_end)
241 continue; 231 continue;
242 if (*ptr > text_end) 232 if (*ptr > text_end)
243 continue; 233 continue;
244 text_poke(*ptr, ((unsigned char []){0xf0}), 1); /* add lock prefix */ 234 /* turn DS segment override prefix into lock prefix */
235 text_poke(*ptr, ((unsigned char []){0xf0}), 1);
245 }; 236 };
246} 237}
247 238
248static void alternatives_smp_unlock(u8 **start, u8 **end, u8 *text, u8 *text_end) 239static void alternatives_smp_unlock(u8 **start, u8 **end, u8 *text, u8 *text_end)
249{ 240{
250 u8 **ptr; 241 u8 **ptr;
251 char insn[1];
252 242
253 if (noreplace_smp) 243 if (noreplace_smp)
254 return; 244 return;
255 245
256 add_nops(insn, 1);
257 for (ptr = start; ptr < end; ptr++) { 246 for (ptr = start; ptr < end; ptr++) {
258 if (*ptr < text) 247 if (*ptr < text)
259 continue; 248 continue;
260 if (*ptr > text_end) 249 if (*ptr > text_end)
261 continue; 250 continue;
262 text_poke(*ptr, insn, 1); 251 /* turn lock prefix into DS segment override prefix */
252 text_poke(*ptr, ((unsigned char []){0x3E}), 1);
263 }; 253 };
264} 254}
265 255
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
index de39e1f2ede..042fdc27bc9 100644
--- a/arch/x86/kernel/amd_iommu.c
+++ b/arch/x86/kernel/amd_iommu.c
@@ -65,7 +65,7 @@ static int __iommu_queue_command(struct amd_iommu *iommu, struct iommu_cmd *cmd)
65 u8 *target; 65 u8 *target;
66 66
67 tail = readl(iommu->mmio_base + MMIO_CMD_TAIL_OFFSET); 67 tail = readl(iommu->mmio_base + MMIO_CMD_TAIL_OFFSET);
68 target = (iommu->cmd_buf + tail); 68 target = iommu->cmd_buf + tail;
69 memcpy_toio(target, cmd, sizeof(*cmd)); 69 memcpy_toio(target, cmd, sizeof(*cmd));
70 tail = (tail + sizeof(*cmd)) % iommu->cmd_buf_size; 70 tail = (tail + sizeof(*cmd)) % iommu->cmd_buf_size;
71 head = readl(iommu->mmio_base + MMIO_CMD_HEAD_OFFSET); 71 head = readl(iommu->mmio_base + MMIO_CMD_HEAD_OFFSET);
@@ -101,10 +101,10 @@ static int iommu_queue_command(struct amd_iommu *iommu, struct iommu_cmd *cmd)
101 */ 101 */
102static int iommu_completion_wait(struct amd_iommu *iommu) 102static int iommu_completion_wait(struct amd_iommu *iommu)
103{ 103{
104 int ret, ready = 0; 104 int ret = 0, ready = 0;
105 unsigned status = 0; 105 unsigned status = 0;
106 struct iommu_cmd cmd; 106 struct iommu_cmd cmd;
107 unsigned long i = 0; 107 unsigned long flags, i = 0;
108 108
109 memset(&cmd, 0, sizeof(cmd)); 109 memset(&cmd, 0, sizeof(cmd));
110 cmd.data[0] = CMD_COMPL_WAIT_INT_MASK; 110 cmd.data[0] = CMD_COMPL_WAIT_INT_MASK;
@@ -112,10 +112,12 @@ static int iommu_completion_wait(struct amd_iommu *iommu)
112 112
113 iommu->need_sync = 0; 113 iommu->need_sync = 0;
114 114
115 ret = iommu_queue_command(iommu, &cmd); 115 spin_lock_irqsave(&iommu->lock, flags);
116
117 ret = __iommu_queue_command(iommu, &cmd);
116 118
117 if (ret) 119 if (ret)
118 return ret; 120 goto out;
119 121
120 while (!ready && (i < EXIT_LOOP_COUNT)) { 122 while (!ready && (i < EXIT_LOOP_COUNT)) {
121 ++i; 123 ++i;
@@ -130,6 +132,8 @@ static int iommu_completion_wait(struct amd_iommu *iommu)
130 132
131 if (unlikely((i == EXIT_LOOP_COUNT) && printk_ratelimit())) 133 if (unlikely((i == EXIT_LOOP_COUNT) && printk_ratelimit()))
132 printk(KERN_WARNING "AMD IOMMU: Completion wait loop failed\n"); 134 printk(KERN_WARNING "AMD IOMMU: Completion wait loop failed\n");
135out:
136 spin_unlock_irqrestore(&iommu->lock, flags);
133 137
134 return 0; 138 return 0;
135} 139}
@@ -140,6 +144,7 @@ static int iommu_completion_wait(struct amd_iommu *iommu)
140static int iommu_queue_inv_dev_entry(struct amd_iommu *iommu, u16 devid) 144static int iommu_queue_inv_dev_entry(struct amd_iommu *iommu, u16 devid)
141{ 145{
142 struct iommu_cmd cmd; 146 struct iommu_cmd cmd;
147 int ret;
143 148
144 BUG_ON(iommu == NULL); 149 BUG_ON(iommu == NULL);
145 150
@@ -147,9 +152,11 @@ static int iommu_queue_inv_dev_entry(struct amd_iommu *iommu, u16 devid)
147 CMD_SET_TYPE(&cmd, CMD_INV_DEV_ENTRY); 152 CMD_SET_TYPE(&cmd, CMD_INV_DEV_ENTRY);
148 cmd.data[0] = devid; 153 cmd.data[0] = devid;
149 154
155 ret = iommu_queue_command(iommu, &cmd);
156
150 iommu->need_sync = 1; 157 iommu->need_sync = 1;
151 158
152 return iommu_queue_command(iommu, &cmd); 159 return ret;
153} 160}
154 161
155/* 162/*
@@ -159,6 +166,7 @@ static int iommu_queue_inv_iommu_pages(struct amd_iommu *iommu,
159 u64 address, u16 domid, int pde, int s) 166 u64 address, u16 domid, int pde, int s)
160{ 167{
161 struct iommu_cmd cmd; 168 struct iommu_cmd cmd;
169 int ret;
162 170
163 memset(&cmd, 0, sizeof(cmd)); 171 memset(&cmd, 0, sizeof(cmd));
164 address &= PAGE_MASK; 172 address &= PAGE_MASK;
@@ -171,9 +179,11 @@ static int iommu_queue_inv_iommu_pages(struct amd_iommu *iommu,
171 if (pde) /* PDE bit - we wan't flush everything not only the PTEs */ 179 if (pde) /* PDE bit - we wan't flush everything not only the PTEs */
172 cmd.data[2] |= CMD_INV_IOMMU_PAGES_PDE_MASK; 180 cmd.data[2] |= CMD_INV_IOMMU_PAGES_PDE_MASK;
173 181
182 ret = iommu_queue_command(iommu, &cmd);
183
174 iommu->need_sync = 1; 184 iommu->need_sync = 1;
175 185
176 return iommu_queue_command(iommu, &cmd); 186 return ret;
177} 187}
178 188
179/* 189/*
diff --git a/arch/x86/kernel/aperture_64.c b/arch/x86/kernel/aperture_64.c
index 44e21826db1..9a32b37ee2e 100644
--- a/arch/x86/kernel/aperture_64.c
+++ b/arch/x86/kernel/aperture_64.c
@@ -455,11 +455,11 @@ out:
455 force_iommu || 455 force_iommu ||
456 valid_agp || 456 valid_agp ||
457 fallback_aper_force) { 457 fallback_aper_force) {
458 printk(KERN_ERR 458 printk(KERN_INFO
459 "Your BIOS doesn't leave a aperture memory hole\n"); 459 "Your BIOS doesn't leave a aperture memory hole\n");
460 printk(KERN_ERR 460 printk(KERN_INFO
461 "Please enable the IOMMU option in the BIOS setup\n"); 461 "Please enable the IOMMU option in the BIOS setup\n");
462 printk(KERN_ERR 462 printk(KERN_INFO
463 "This costs you %d MB of RAM\n", 463 "This costs you %d MB of RAM\n",
464 32 << fallback_aper_order); 464 32 << fallback_aper_order);
465 465
diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
index 9ee24e6bc4b..5145a6e72bb 100644
--- a/arch/x86/kernel/apm_32.c
+++ b/arch/x86/kernel/apm_32.c
@@ -228,12 +228,12 @@
228#include <linux/suspend.h> 228#include <linux/suspend.h>
229#include <linux/kthread.h> 229#include <linux/kthread.h>
230#include <linux/jiffies.h> 230#include <linux/jiffies.h>
231#include <linux/smp_lock.h>
232 231
233#include <asm/system.h> 232#include <asm/system.h>
234#include <asm/uaccess.h> 233#include <asm/uaccess.h>
235#include <asm/desc.h> 234#include <asm/desc.h>
236#include <asm/i8253.h> 235#include <asm/i8253.h>
236#include <asm/olpc.h>
237#include <asm/paravirt.h> 237#include <asm/paravirt.h>
238#include <asm/reboot.h> 238#include <asm/reboot.h>
239 239
@@ -2217,7 +2217,7 @@ static int __init apm_init(void)
2217 2217
2218 dmi_check_system(apm_dmi_table); 2218 dmi_check_system(apm_dmi_table);
2219 2219
2220 if (apm_info.bios.version == 0 || paravirt_enabled()) { 2220 if (apm_info.bios.version == 0 || paravirt_enabled() || machine_is_olpc()) {
2221 printk(KERN_INFO "apm: BIOS not found.\n"); 2221 printk(KERN_INFO "apm: BIOS not found.\n");
2222 return -ENODEV; 2222 return -ENODEV;
2223 } 2223 }
diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c
index aa89387006f..505543a75a5 100644
--- a/arch/x86/kernel/asm-offsets_64.c
+++ b/arch/x86/kernel/asm-offsets_64.c
@@ -22,7 +22,7 @@
22 22
23#define __NO_STUBS 1 23#define __NO_STUBS 1
24#undef __SYSCALL 24#undef __SYSCALL
25#undef _ASM_X86_64_UNISTD_H_ 25#undef ASM_X86__UNISTD_64_H
26#define __SYSCALL(nr, sym) [nr] = 1, 26#define __SYSCALL(nr, sym) [nr] = 1,
27static char syscalls[] = { 27static char syscalls[] = {
28#include <asm/unistd.h> 28#include <asm/unistd.h>
diff --git a/arch/x86/kernel/bios_uv.c b/arch/x86/kernel/bios_uv.c
index c639bd55391..fdd585f9c53 100644
--- a/arch/x86/kernel/bios_uv.c
+++ b/arch/x86/kernel/bios_uv.c
@@ -25,11 +25,11 @@ x86_bios_strerror(long status)
25{ 25{
26 const char *str; 26 const char *str;
27 switch (status) { 27 switch (status) {
28 case 0: str = "Call completed without error"; break; 28 case 0: str = "Call completed without error"; break;
29 case -1: str = "Not implemented"; break; 29 case -1: str = "Not implemented"; break;
30 case -2: str = "Invalid argument"; break; 30 case -2: str = "Invalid argument"; break;
31 case -3: str = "Call completed with error"; break; 31 case -3: str = "Call completed with error"; break;
32 default: str = "Unknown BIOS status code"; break; 32 default: str = "Unknown BIOS status code"; break;
33 } 33 }
34 return str; 34 return str;
35} 35}
diff --git a/arch/x86/kernel/cpu/addon_cpuid_features.c b/arch/x86/kernel/cpu/addon_cpuid_features.c
index 84a8220a607..a6ef672adbb 100644
--- a/arch/x86/kernel/cpu/addon_cpuid_features.c
+++ b/arch/x86/kernel/cpu/addon_cpuid_features.c
@@ -56,9 +56,22 @@ void __cpuinit validate_pat_support(struct cpuinfo_x86 *c)
56 56
57 switch (c->x86_vendor) { 57 switch (c->x86_vendor) {
58 case X86_VENDOR_INTEL: 58 case X86_VENDOR_INTEL:
59 if (c->x86 == 0xF || (c->x86 == 6 && c->x86_model >= 15)) 59 /*
60 * There is a known erratum on Pentium III and Core Solo
61 * and Core Duo CPUs.
62 * " Page with PAT set to WC while associated MTRR is UC
63 * may consolidate to UC "
64 * Because of this erratum, it is better to stick with
65 * setting WC in MTRR rather than using PAT on these CPUs.
66 *
67 * Enable PAT WC only on P4, Core 2 or later CPUs.
68 */
69 if (c->x86 > 0x6 || (c->x86 == 6 && c->x86_model >= 15))
60 return; 70 return;
61 break; 71
72 pat_disable("PAT WC disabled due to known CPU erratum.");
73 return;
74
62 case X86_VENDOR_AMD: 75 case X86_VENDOR_AMD:
63 case X86_VENDOR_CENTAUR: 76 case X86_VENDOR_CENTAUR:
64 case X86_VENDOR_TRANSMETA: 77 case X86_VENDOR_TRANSMETA:
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index cae9cabc303..18514ed2610 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -31,6 +31,11 @@ static void __cpuinit early_init_amd(struct cpuinfo_x86 *c)
31 if (c->x86_power & (1<<8)) 31 if (c->x86_power & (1<<8))
32 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); 32 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
33 } 33 }
34
35 /* Set MTRR capability flag if appropriate */
36 if (c->x86_model == 13 || c->x86_model == 9 ||
37 (c->x86_model == 8 && c->x86_mask >= 8))
38 set_cpu_cap(c, X86_FEATURE_K6_MTRR);
34} 39}
35 40
36static void __cpuinit init_amd(struct cpuinfo_x86 *c) 41static void __cpuinit init_amd(struct cpuinfo_x86 *c)
@@ -166,10 +171,6 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c)
166 mbytes); 171 mbytes);
167 } 172 }
168 173
169 /* Set MTRR capability flag if appropriate */
170 if (c->x86_model == 13 || c->x86_model == 9 ||
171 (c->x86_model == 8 && c->x86_mask >= 8))
172 set_cpu_cap(c, X86_FEATURE_K6_MTRR);
173 break; 174 break;
174 } 175 }
175 176
diff --git a/arch/x86/kernel/cpu/centaur.c b/arch/x86/kernel/cpu/centaur.c
index e0f45edd6a5..a0534c04d38 100644
--- a/arch/x86/kernel/cpu/centaur.c
+++ b/arch/x86/kernel/cpu/centaur.c
@@ -314,6 +314,16 @@ enum {
314 EAMD3D = 1<<20, 314 EAMD3D = 1<<20,
315}; 315};
316 316
317static void __cpuinit early_init_centaur(struct cpuinfo_x86 *c)
318{
319 switch (c->x86) {
320 case 5:
321 /* Emulate MTRRs using Centaur's MCR. */
322 set_cpu_cap(c, X86_FEATURE_CENTAUR_MCR);
323 break;
324 }
325}
326
317static void __cpuinit init_centaur(struct cpuinfo_x86 *c) 327static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
318{ 328{
319 329
@@ -462,6 +472,7 @@ centaur_size_cache(struct cpuinfo_x86 *c, unsigned int size)
462static struct cpu_dev centaur_cpu_dev __cpuinitdata = { 472static struct cpu_dev centaur_cpu_dev __cpuinitdata = {
463 .c_vendor = "Centaur", 473 .c_vendor = "Centaur",
464 .c_ident = { "CentaurHauls" }, 474 .c_ident = { "CentaurHauls" },
475 .c_early_init = early_init_centaur,
465 .c_init = init_centaur, 476 .c_init = init_centaur,
466 .c_size_cache = centaur_size_cache, 477 .c_size_cache = centaur_size_cache,
467}; 478};
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 80ab20d4fa3..4e456bd955b 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -13,6 +13,7 @@
13#include <asm/mtrr.h> 13#include <asm/mtrr.h>
14#include <asm/mce.h> 14#include <asm/mce.h>
15#include <asm/pat.h> 15#include <asm/pat.h>
16#include <asm/asm.h>
16#ifdef CONFIG_X86_LOCAL_APIC 17#ifdef CONFIG_X86_LOCAL_APIC
17#include <asm/mpspec.h> 18#include <asm/mpspec.h>
18#include <asm/apic.h> 19#include <asm/apic.h>
@@ -334,11 +335,24 @@ static void __init early_cpu_detect(void)
334 335
335 get_cpu_vendor(c, 1); 336 get_cpu_vendor(c, 1);
336 337
338 early_get_cap(c);
339
337 if (c->x86_vendor != X86_VENDOR_UNKNOWN && 340 if (c->x86_vendor != X86_VENDOR_UNKNOWN &&
338 cpu_devs[c->x86_vendor]->c_early_init) 341 cpu_devs[c->x86_vendor]->c_early_init)
339 cpu_devs[c->x86_vendor]->c_early_init(c); 342 cpu_devs[c->x86_vendor]->c_early_init(c);
343}
340 344
341 early_get_cap(c); 345/*
346 * The NOPL instruction is supposed to exist on all CPUs with
347 * family >= 6; unfortunately, that's not true in practice because
348 * of early VIA chips and (more importantly) broken virtualizers that
349 * are not easy to detect. In the latter case it doesn't even *fail*
350 * reliably, so probing for it doesn't even work. Disable it completely
351 * unless we can find a reliable way to detect all the broken cases.
352 */
353static void __cpuinit detect_nopl(struct cpuinfo_x86 *c)
354{
355 clear_cpu_cap(c, X86_FEATURE_NOPL);
342} 356}
343 357
344static void __cpuinit generic_identify(struct cpuinfo_x86 *c) 358static void __cpuinit generic_identify(struct cpuinfo_x86 *c)
@@ -395,8 +409,8 @@ static void __cpuinit generic_identify(struct cpuinfo_x86 *c)
395 } 409 }
396 410
397 init_scattered_cpuid_features(c); 411 init_scattered_cpuid_features(c);
412 detect_nopl(c);
398 } 413 }
399
400} 414}
401 415
402static void __cpuinit squash_the_stupid_serial_number(struct cpuinfo_x86 *c) 416static void __cpuinit squash_the_stupid_serial_number(struct cpuinfo_x86 *c)
diff --git a/arch/x86/kernel/cpu/common_64.c b/arch/x86/kernel/cpu/common_64.c
index dd6e3f15017..305b465889b 100644
--- a/arch/x86/kernel/cpu/common_64.c
+++ b/arch/x86/kernel/cpu/common_64.c
@@ -18,6 +18,7 @@
18#include <asm/mtrr.h> 18#include <asm/mtrr.h>
19#include <asm/mce.h> 19#include <asm/mce.h>
20#include <asm/pat.h> 20#include <asm/pat.h>
21#include <asm/asm.h>
21#include <asm/numa.h> 22#include <asm/numa.h>
22#ifdef CONFIG_X86_LOCAL_APIC 23#ifdef CONFIG_X86_LOCAL_APIC
23#include <asm/mpspec.h> 24#include <asm/mpspec.h>
@@ -215,6 +216,39 @@ static void __init early_cpu_support_print(void)
215 } 216 }
216} 217}
217 218
219/*
220 * The NOPL instruction is supposed to exist on all CPUs with
221 * family >= 6, unfortunately, that's not true in practice because
222 * of early VIA chips and (more importantly) broken virtualizers that
223 * are not easy to detect. Hence, probe for it based on first
224 * principles.
225 *
226 * Note: no 64-bit chip is known to lack these, but put the code here
227 * for consistency with 32 bits, and to make it utterly trivial to
228 * diagnose the problem should it ever surface.
229 */
230static void __cpuinit detect_nopl(struct cpuinfo_x86 *c)
231{
232 const u32 nopl_signature = 0x888c53b1; /* Random number */
233 u32 has_nopl = nopl_signature;
234
235 clear_cpu_cap(c, X86_FEATURE_NOPL);
236 if (c->x86 >= 6) {
237 asm volatile("\n"
238 "1: .byte 0x0f,0x1f,0xc0\n" /* nopl %eax */
239 "2:\n"
240 " .section .fixup,\"ax\"\n"
241 "3: xor %0,%0\n"
242 " jmp 2b\n"
243 " .previous\n"
244 _ASM_EXTABLE(1b,3b)
245 : "+a" (has_nopl));
246
247 if (has_nopl == nopl_signature)
248 set_cpu_cap(c, X86_FEATURE_NOPL);
249 }
250}
251
218static void __cpuinit early_identify_cpu(struct cpuinfo_x86 *c); 252static void __cpuinit early_identify_cpu(struct cpuinfo_x86 *c);
219 253
220void __init early_cpu_init(void) 254void __init early_cpu_init(void)
@@ -313,6 +347,8 @@ static void __cpuinit early_identify_cpu(struct cpuinfo_x86 *c)
313 c->x86_phys_bits = eax & 0xff; 347 c->x86_phys_bits = eax & 0xff;
314 } 348 }
315 349
350 detect_nopl(c);
351
316 if (c->x86_vendor != X86_VENDOR_UNKNOWN && 352 if (c->x86_vendor != X86_VENDOR_UNKNOWN &&
317 cpu_devs[c->x86_vendor]->c_early_init) 353 cpu_devs[c->x86_vendor]->c_early_init)
318 cpu_devs[c->x86_vendor]->c_early_init(c); 354 cpu_devs[c->x86_vendor]->c_early_init(c);
@@ -394,6 +430,49 @@ static __init int setup_noclflush(char *arg)
394} 430}
395__setup("noclflush", setup_noclflush); 431__setup("noclflush", setup_noclflush);
396 432
433struct msr_range {
434 unsigned min;
435 unsigned max;
436};
437
438static struct msr_range msr_range_array[] __cpuinitdata = {
439 { 0x00000000, 0x00000418},
440 { 0xc0000000, 0xc000040b},
441 { 0xc0010000, 0xc0010142},
442 { 0xc0011000, 0xc001103b},
443};
444
445static void __cpuinit print_cpu_msr(void)
446{
447 unsigned index;
448 u64 val;
449 int i;
450 unsigned index_min, index_max;
451
452 for (i = 0; i < ARRAY_SIZE(msr_range_array); i++) {
453 index_min = msr_range_array[i].min;
454 index_max = msr_range_array[i].max;
455 for (index = index_min; index < index_max; index++) {
456 if (rdmsrl_amd_safe(index, &val))
457 continue;
458 printk(KERN_INFO " MSR%08x: %016llx\n", index, val);
459 }
460 }
461}
462
463static int show_msr __cpuinitdata;
464static __init int setup_show_msr(char *arg)
465{
466 int num;
467
468 get_option(&arg, &num);
469
470 if (num > 0)
471 show_msr = num;
472 return 1;
473}
474__setup("show_msr=", setup_show_msr);
475
397void __cpuinit print_cpu_info(struct cpuinfo_x86 *c) 476void __cpuinit print_cpu_info(struct cpuinfo_x86 *c)
398{ 477{
399 if (c->x86_model_id[0]) 478 if (c->x86_model_id[0])
@@ -403,6 +482,14 @@ void __cpuinit print_cpu_info(struct cpuinfo_x86 *c)
403 printk(KERN_CONT " stepping %02x\n", c->x86_mask); 482 printk(KERN_CONT " stepping %02x\n", c->x86_mask);
404 else 483 else
405 printk(KERN_CONT "\n"); 484 printk(KERN_CONT "\n");
485
486#ifdef CONFIG_SMP
487 if (c->cpu_index < show_msr)
488 print_cpu_msr();
489#else
490 if (show_msr)
491 print_cpu_msr();
492#endif
406} 493}
407 494
408static __init int setup_disablecpuid(char *arg) 495static __init int setup_disablecpuid(char *arg)
@@ -493,17 +580,20 @@ void pda_init(int cpu)
493 /* others are initialized in smpboot.c */ 580 /* others are initialized in smpboot.c */
494 pda->pcurrent = &init_task; 581 pda->pcurrent = &init_task;
495 pda->irqstackptr = boot_cpu_stack; 582 pda->irqstackptr = boot_cpu_stack;
583 pda->irqstackptr += IRQSTACKSIZE - 64;
496 } else { 584 } else {
497 pda->irqstackptr = (char *) 585 if (!pda->irqstackptr) {
498 __get_free_pages(GFP_ATOMIC, IRQSTACK_ORDER); 586 pda->irqstackptr = (char *)
499 if (!pda->irqstackptr) 587 __get_free_pages(GFP_ATOMIC, IRQSTACK_ORDER);
500 panic("cannot allocate irqstack for cpu %d", cpu); 588 if (!pda->irqstackptr)
589 panic("cannot allocate irqstack for cpu %d",
590 cpu);
591 pda->irqstackptr += IRQSTACKSIZE - 64;
592 }
501 593
502 if (pda->nodenumber == 0 && cpu_to_node(cpu) != NUMA_NO_NODE) 594 if (pda->nodenumber == 0 && cpu_to_node(cpu) != NUMA_NO_NODE)
503 pda->nodenumber = cpu_to_node(cpu); 595 pda->nodenumber = cpu_to_node(cpu);
504 } 596 }
505
506 pda->irqstackptr += IRQSTACKSIZE-64;
507} 597}
508 598
509char boot_exception_stacks[(N_EXCEPTION_STACKS - 1) * EXCEPTION_STKSZ + 599char boot_exception_stacks[(N_EXCEPTION_STACKS - 1) * EXCEPTION_STKSZ +
@@ -601,19 +691,22 @@ void __cpuinit cpu_init(void)
601 /* 691 /*
602 * set up and load the per-CPU TSS 692 * set up and load the per-CPU TSS
603 */ 693 */
604 for (v = 0; v < N_EXCEPTION_STACKS; v++) { 694 if (!orig_ist->ist[0]) {
605 static const unsigned int order[N_EXCEPTION_STACKS] = { 695 static const unsigned int order[N_EXCEPTION_STACKS] = {
606 [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, 696 [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER,
607 [DEBUG_STACK - 1] = DEBUG_STACK_ORDER 697 [DEBUG_STACK - 1] = DEBUG_STACK_ORDER
608 }; 698 };
609 if (cpu) { 699 for (v = 0; v < N_EXCEPTION_STACKS; v++) {
610 estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]); 700 if (cpu) {
611 if (!estacks) 701 estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]);
612 panic("Cannot allocate exception stack %ld %d\n", 702 if (!estacks)
613 v, cpu); 703 panic("Cannot allocate exception "
704 "stack %ld %d\n", v, cpu);
705 }
706 estacks += PAGE_SIZE << order[v];
707 orig_ist->ist[v] = t->x86_tss.ist[v] =
708 (unsigned long)estacks;
614 } 709 }
615 estacks += PAGE_SIZE << order[v];
616 orig_ist->ist[v] = t->x86_tss.ist[v] = (unsigned long)estacks;
617 } 710 }
618 711
619 t->x86_tss.io_bitmap_base = offsetof(struct tss_struct, io_bitmap); 712 t->x86_tss.io_bitmap_base = offsetof(struct tss_struct, io_bitmap);
diff --git a/arch/x86/kernel/cpu/cyrix.c b/arch/x86/kernel/cpu/cyrix.c
index 3fd7a67bb06..898a5a2002e 100644
--- a/arch/x86/kernel/cpu/cyrix.c
+++ b/arch/x86/kernel/cpu/cyrix.c
@@ -15,13 +15,11 @@
15/* 15/*
16 * Read NSC/Cyrix DEVID registers (DIR) to get more detailed info. about the CPU 16 * Read NSC/Cyrix DEVID registers (DIR) to get more detailed info. about the CPU
17 */ 17 */
18static void __cpuinit do_cyrix_devid(unsigned char *dir0, unsigned char *dir1) 18static void __cpuinit __do_cyrix_devid(unsigned char *dir0, unsigned char *dir1)
19{ 19{
20 unsigned char ccr2, ccr3; 20 unsigned char ccr2, ccr3;
21 unsigned long flags;
22 21
23 /* we test for DEVID by checking whether CCR3 is writable */ 22 /* we test for DEVID by checking whether CCR3 is writable */
24 local_irq_save(flags);
25 ccr3 = getCx86(CX86_CCR3); 23 ccr3 = getCx86(CX86_CCR3);
26 setCx86(CX86_CCR3, ccr3 ^ 0x80); 24 setCx86(CX86_CCR3, ccr3 ^ 0x80);
27 getCx86(0xc0); /* dummy to change bus */ 25 getCx86(0xc0); /* dummy to change bus */
@@ -44,9 +42,16 @@ static void __cpuinit do_cyrix_devid(unsigned char *dir0, unsigned char *dir1)
44 *dir0 = getCx86(CX86_DIR0); 42 *dir0 = getCx86(CX86_DIR0);
45 *dir1 = getCx86(CX86_DIR1); 43 *dir1 = getCx86(CX86_DIR1);
46 } 44 }
47 local_irq_restore(flags);
48} 45}
49 46
47static void __cpuinit do_cyrix_devid(unsigned char *dir0, unsigned char *dir1)
48{
49 unsigned long flags;
50
51 local_irq_save(flags);
52 __do_cyrix_devid(dir0, dir1);
53 local_irq_restore(flags);
54}
50/* 55/*
51 * Cx86_dir0_msb is a HACK needed by check_cx686_cpuid/slop in bugs.h in 56 * Cx86_dir0_msb is a HACK needed by check_cx686_cpuid/slop in bugs.h in
52 * order to identify the Cyrix CPU model after we're out of setup.c 57 * order to identify the Cyrix CPU model after we're out of setup.c
@@ -134,23 +139,6 @@ static void __cpuinit set_cx86_memwb(void)
134 setCx86(CX86_CCR2, getCx86(CX86_CCR2) | 0x14); 139 setCx86(CX86_CCR2, getCx86(CX86_CCR2) | 0x14);
135} 140}
136 141
137static void __cpuinit set_cx86_inc(void)
138{
139 unsigned char ccr3;
140
141 printk(KERN_INFO "Enable Incrementor on Cyrix/NSC processor.\n");
142
143 ccr3 = getCx86(CX86_CCR3);
144 setCx86(CX86_CCR3, (ccr3 & 0x0f) | 0x10); /* enable MAPEN */
145 /* PCR1 -- Performance Control */
146 /* Incrementor on, whatever that is */
147 setCx86(CX86_PCR1, getCx86(CX86_PCR1) | 0x02);
148 /* PCR0 -- Performance Control */
149 /* Incrementor Margin 10 */
150 setCx86(CX86_PCR0, getCx86(CX86_PCR0) | 0x04);
151 setCx86(CX86_CCR3, ccr3); /* disable MAPEN */
152}
153
154/* 142/*
155 * Configure later MediaGX and/or Geode processor. 143 * Configure later MediaGX and/or Geode processor.
156 */ 144 */
@@ -174,11 +162,28 @@ static void __cpuinit geode_configure(void)
174 162
175 set_cx86_memwb(); 163 set_cx86_memwb();
176 set_cx86_reorder(); 164 set_cx86_reorder();
177 set_cx86_inc();
178 165
179 local_irq_restore(flags); 166 local_irq_restore(flags);
180} 167}
181 168
169static void __cpuinit early_init_cyrix(struct cpuinfo_x86 *c)
170{
171 unsigned char dir0, dir0_msn, dir1 = 0;
172
173 __do_cyrix_devid(&dir0, &dir1);
174 dir0_msn = dir0 >> 4; /* identifies CPU "family" */
175
176 switch (dir0_msn) {
177 case 3: /* 6x86/6x86L */
178 /* Emulate MTRRs using Cyrix's ARRs. */
179 set_cpu_cap(c, X86_FEATURE_CYRIX_ARR);
180 break;
181 case 5: /* 6x86MX/M II */
182 /* Emulate MTRRs using Cyrix's ARRs. */
183 set_cpu_cap(c, X86_FEATURE_CYRIX_ARR);
184 break;
185 }
186}
182 187
183static void __cpuinit init_cyrix(struct cpuinfo_x86 *c) 188static void __cpuinit init_cyrix(struct cpuinfo_x86 *c)
184{ 189{
@@ -434,6 +439,7 @@ static void __cpuinit cyrix_identify(struct cpuinfo_x86 *c)
434static struct cpu_dev cyrix_cpu_dev __cpuinitdata = { 439static struct cpu_dev cyrix_cpu_dev __cpuinitdata = {
435 .c_vendor = "Cyrix", 440 .c_vendor = "Cyrix",
436 .c_ident = { "CyrixInstead" }, 441 .c_ident = { "CyrixInstead" },
442 .c_early_init = early_init_cyrix,
437 .c_init = init_cyrix, 443 .c_init = init_cyrix,
438 .c_identify = cyrix_identify, 444 .c_identify = cyrix_identify,
439}; 445};
diff --git a/arch/x86/kernel/cpu/feature_names.c b/arch/x86/kernel/cpu/feature_names.c
index e43ad4ad4cb..c9017799497 100644
--- a/arch/x86/kernel/cpu/feature_names.c
+++ b/arch/x86/kernel/cpu/feature_names.c
@@ -39,7 +39,8 @@ const char * const x86_cap_flags[NCAPINTS*32] = {
39 NULL, NULL, NULL, NULL, 39 NULL, NULL, NULL, NULL,
40 "constant_tsc", "up", NULL, "arch_perfmon", 40 "constant_tsc", "up", NULL, "arch_perfmon",
41 "pebs", "bts", NULL, NULL, 41 "pebs", "bts", NULL, NULL,
42 "rep_good", NULL, NULL, NULL, NULL, NULL, NULL, NULL, 42 "rep_good", NULL, NULL, NULL,
43 "nopl", NULL, NULL, NULL,
43 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 44 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
44 45
45 /* Intel-defined (#2) */ 46 /* Intel-defined (#2) */
diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
index b75f2569b8f..f113ef4595f 100644
--- a/arch/x86/kernel/cpu/intel.c
+++ b/arch/x86/kernel/cpu/intel.c
@@ -222,10 +222,11 @@ static void __cpuinit init_intel(struct cpuinfo_x86 *c)
222 set_cpu_cap(c, X86_FEATURE_BTS); 222 set_cpu_cap(c, X86_FEATURE_BTS);
223 if (!(l1 & (1<<12))) 223 if (!(l1 & (1<<12)))
224 set_cpu_cap(c, X86_FEATURE_PEBS); 224 set_cpu_cap(c, X86_FEATURE_PEBS);
225 ds_init_intel(c);
225 } 226 }
226 227
227 if (cpu_has_bts) 228 if (cpu_has_bts)
228 ds_init_intel(c); 229 ptrace_bts_init_intel(c);
229 230
230 /* 231 /*
231 * See if we have a good local APIC by checking for buggy Pentia, 232 * See if we have a good local APIC by checking for buggy Pentia,
diff --git a/arch/x86/kernel/cpu/mcheck/mce_64.c b/arch/x86/kernel/cpu/mcheck/mce_64.c
index 65a339678ec..726a5fcdf34 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_64.c
@@ -759,6 +759,7 @@ static struct sysdev_class mce_sysclass = {
759}; 759};
760 760
761DEFINE_PER_CPU(struct sys_device, device_mce); 761DEFINE_PER_CPU(struct sys_device, device_mce);
762void (*threshold_cpu_callback)(unsigned long action, unsigned int cpu) __cpuinitdata;
762 763
763/* Why are there no generic functions for this? */ 764/* Why are there no generic functions for this? */
764#define ACCESSOR(name, var, start) \ 765#define ACCESSOR(name, var, start) \
@@ -883,9 +884,13 @@ static int __cpuinit mce_cpu_callback(struct notifier_block *nfb,
883 case CPU_ONLINE: 884 case CPU_ONLINE:
884 case CPU_ONLINE_FROZEN: 885 case CPU_ONLINE_FROZEN:
885 mce_create_device(cpu); 886 mce_create_device(cpu);
887 if (threshold_cpu_callback)
888 threshold_cpu_callback(action, cpu);
886 break; 889 break;
887 case CPU_DEAD: 890 case CPU_DEAD:
888 case CPU_DEAD_FROZEN: 891 case CPU_DEAD_FROZEN:
892 if (threshold_cpu_callback)
893 threshold_cpu_callback(action, cpu);
889 mce_remove_device(cpu); 894 mce_remove_device(cpu);
890 break; 895 break;
891 } 896 }
diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd_64.c b/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
index 88736cadbaa..5eb390a4b2e 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
@@ -628,6 +628,7 @@ static void threshold_remove_bank(unsigned int cpu, int bank)
628 deallocate_threshold_block(cpu, bank); 628 deallocate_threshold_block(cpu, bank);
629 629
630free_out: 630free_out:
631 kobject_del(b->kobj);
631 kobject_put(b->kobj); 632 kobject_put(b->kobj);
632 kfree(b); 633 kfree(b);
633 per_cpu(threshold_banks, cpu)[bank] = NULL; 634 per_cpu(threshold_banks, cpu)[bank] = NULL;
@@ -645,14 +646,11 @@ static void threshold_remove_device(unsigned int cpu)
645} 646}
646 647
647/* get notified when a cpu comes on/off */ 648/* get notified when a cpu comes on/off */
648static int __cpuinit threshold_cpu_callback(struct notifier_block *nfb, 649static void __cpuinit amd_64_threshold_cpu_callback(unsigned long action,
649 unsigned long action, void *hcpu) 650 unsigned int cpu)
650{ 651{
651 /* cpu was unsigned int to begin with */
652 unsigned int cpu = (unsigned long)hcpu;
653
654 if (cpu >= NR_CPUS) 652 if (cpu >= NR_CPUS)
655 goto out; 653 return;
656 654
657 switch (action) { 655 switch (action) {
658 case CPU_ONLINE: 656 case CPU_ONLINE:
@@ -666,14 +664,8 @@ static int __cpuinit threshold_cpu_callback(struct notifier_block *nfb,
666 default: 664 default:
667 break; 665 break;
668 } 666 }
669 out:
670 return NOTIFY_OK;
671} 667}
672 668
673static struct notifier_block threshold_cpu_notifier __cpuinitdata = {
674 .notifier_call = threshold_cpu_callback,
675};
676
677static __init int threshold_init_device(void) 669static __init int threshold_init_device(void)
678{ 670{
679 unsigned lcpu = 0; 671 unsigned lcpu = 0;
@@ -684,7 +676,7 @@ static __init int threshold_init_device(void)
684 if (err) 676 if (err)
685 return err; 677 return err;
686 } 678 }
687 register_hotcpu_notifier(&threshold_cpu_notifier); 679 threshold_cpu_callback = amd_64_threshold_cpu_callback;
688 return 0; 680 return 0;
689} 681}
690 682
diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
index 509bd3d9eac..4e8d77f01ee 100644
--- a/arch/x86/kernel/cpu/mtrr/generic.c
+++ b/arch/x86/kernel/cpu/mtrr/generic.c
@@ -379,6 +379,7 @@ static void generic_get_mtrr(unsigned int reg, unsigned long *base,
379 unsigned long *size, mtrr_type *type) 379 unsigned long *size, mtrr_type *type)
380{ 380{
381 unsigned int mask_lo, mask_hi, base_lo, base_hi; 381 unsigned int mask_lo, mask_hi, base_lo, base_hi;
382 unsigned int tmp, hi;
382 383
383 rdmsr(MTRRphysMask_MSR(reg), mask_lo, mask_hi); 384 rdmsr(MTRRphysMask_MSR(reg), mask_lo, mask_hi);
384 if ((mask_lo & 0x800) == 0) { 385 if ((mask_lo & 0x800) == 0) {
@@ -392,8 +393,18 @@ static void generic_get_mtrr(unsigned int reg, unsigned long *base,
392 rdmsr(MTRRphysBase_MSR(reg), base_lo, base_hi); 393 rdmsr(MTRRphysBase_MSR(reg), base_lo, base_hi);
393 394
394 /* Work out the shifted address mask. */ 395 /* Work out the shifted address mask. */
395 mask_lo = size_or_mask | mask_hi << (32 - PAGE_SHIFT) 396 tmp = mask_hi << (32 - PAGE_SHIFT) | mask_lo >> PAGE_SHIFT;
396 | mask_lo >> PAGE_SHIFT; 397 mask_lo = size_or_mask | tmp;
398 /* Expand tmp with high bits to all 1s*/
399 hi = fls(tmp);
400 if (hi > 0) {
401 tmp |= ~((1<<(hi - 1)) - 1);
402
403 if (tmp != mask_lo) {
404 WARN_ONCE(1, KERN_INFO "mtrr: your BIOS has set up an incorrect mask, fixing it up.\n");
405 mask_lo = tmp;
406 }
407 }
397 408
398 /* This works correctly if size is a power of two, i.e. a 409 /* This works correctly if size is a power of two, i.e. a
399 contiguous range. */ 410 contiguous range. */
diff --git a/arch/x86/kernel/cpu/mtrr/if.c b/arch/x86/kernel/cpu/mtrr/if.c
index 84c480bb371..4c4214690dd 100644
--- a/arch/x86/kernel/cpu/mtrr/if.c
+++ b/arch/x86/kernel/cpu/mtrr/if.c
@@ -405,9 +405,9 @@ static int mtrr_seq_show(struct seq_file *seq, void *offset)
405 } 405 }
406 /* RED-PEN: base can be > 32bit */ 406 /* RED-PEN: base can be > 32bit */
407 len += seq_printf(seq, 407 len += seq_printf(seq,
408 "reg%02i: base=0x%05lx000 (%4luMB), size=%4lu%cB: %s, count=%d\n", 408 "reg%02i: base=0x%06lx000 (%5luMB), size=%5lu%cB, count=%d: %s\n",
409 i, base, base >> (20 - PAGE_SHIFT), size, factor, 409 i, base, base >> (20 - PAGE_SHIFT), size, factor,
410 mtrr_attrib_to_str(type), mtrr_usage_table[i]); 410 mtrr_usage_table[i], mtrr_attrib_to_str(type));
411 } 411 }
412 } 412 }
413 return 0; 413 return 0;
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
index 6f23969c8fa..c78c04821ea 100644
--- a/arch/x86/kernel/cpu/mtrr/main.c
+++ b/arch/x86/kernel/cpu/mtrr/main.c
@@ -729,7 +729,7 @@ struct var_mtrr_range_state {
729 mtrr_type type; 729 mtrr_type type;
730}; 730};
731 731
732struct var_mtrr_range_state __initdata range_state[RANGE_NUM]; 732static struct var_mtrr_range_state __initdata range_state[RANGE_NUM];
733static int __initdata debug_print; 733static int __initdata debug_print;
734 734
735static int __init 735static int __init
@@ -759,7 +759,8 @@ x86_get_mtrr_mem_range(struct res_range *range, int nr_range,
759 /* take out UC ranges */ 759 /* take out UC ranges */
760 for (i = 0; i < num_var_ranges; i++) { 760 for (i = 0; i < num_var_ranges; i++) {
761 type = range_state[i].type; 761 type = range_state[i].type;
762 if (type != MTRR_TYPE_UNCACHABLE) 762 if (type != MTRR_TYPE_UNCACHABLE &&
763 type != MTRR_TYPE_WRPROT)
763 continue; 764 continue;
764 size = range_state[i].size_pfn; 765 size = range_state[i].size_pfn;
765 if (!size) 766 if (!size)
@@ -834,7 +835,14 @@ static int __init enable_mtrr_cleanup_setup(char *str)
834 enable_mtrr_cleanup = 1; 835 enable_mtrr_cleanup = 1;
835 return 0; 836 return 0;
836} 837}
837early_param("enble_mtrr_cleanup", enable_mtrr_cleanup_setup); 838early_param("enable_mtrr_cleanup", enable_mtrr_cleanup_setup);
839
840static int __init mtrr_cleanup_debug_setup(char *str)
841{
842 debug_print = 1;
843 return 0;
844}
845early_param("mtrr_cleanup_debug", mtrr_cleanup_debug_setup);
838 846
839struct var_mtrr_state { 847struct var_mtrr_state {
840 unsigned long range_startk; 848 unsigned long range_startk;
@@ -898,6 +906,27 @@ set_var_mtrr_all(unsigned int address_bits)
898 } 906 }
899} 907}
900 908
909static unsigned long to_size_factor(unsigned long sizek, char *factorp)
910{
911 char factor;
912 unsigned long base = sizek;
913
914 if (base & ((1<<10) - 1)) {
915 /* not MB alignment */
916 factor = 'K';
917 } else if (base & ((1<<20) - 1)){
918 factor = 'M';
919 base >>= 10;
920 } else {
921 factor = 'G';
922 base >>= 20;
923 }
924
925 *factorp = factor;
926
927 return base;
928}
929
901static unsigned int __init 930static unsigned int __init
902range_to_mtrr(unsigned int reg, unsigned long range_startk, 931range_to_mtrr(unsigned int reg, unsigned long range_startk,
903 unsigned long range_sizek, unsigned char type) 932 unsigned long range_sizek, unsigned char type)
@@ -919,13 +948,21 @@ range_to_mtrr(unsigned int reg, unsigned long range_startk,
919 align = max_align; 948 align = max_align;
920 949
921 sizek = 1 << align; 950 sizek = 1 << align;
922 if (debug_print) 951 if (debug_print) {
952 char start_factor = 'K', size_factor = 'K';
953 unsigned long start_base, size_base;
954
955 start_base = to_size_factor(range_startk, &start_factor),
956 size_base = to_size_factor(sizek, &size_factor),
957
923 printk(KERN_DEBUG "Setting variable MTRR %d, " 958 printk(KERN_DEBUG "Setting variable MTRR %d, "
924 "base: %ldMB, range: %ldMB, type %s\n", 959 "base: %ld%cB, range: %ld%cB, type %s\n",
925 reg, range_startk >> 10, sizek >> 10, 960 reg, start_base, start_factor,
961 size_base, size_factor,
926 (type == MTRR_TYPE_UNCACHABLE)?"UC": 962 (type == MTRR_TYPE_UNCACHABLE)?"UC":
927 ((type == MTRR_TYPE_WRBACK)?"WB":"Other") 963 ((type == MTRR_TYPE_WRBACK)?"WB":"Other")
928 ); 964 );
965 }
929 save_var_mtrr(reg++, range_startk, sizek, type); 966 save_var_mtrr(reg++, range_startk, sizek, type);
930 range_startk += sizek; 967 range_startk += sizek;
931 range_sizek -= sizek; 968 range_sizek -= sizek;
@@ -970,6 +1007,8 @@ range_to_mtrr_with_hole(struct var_mtrr_state *state, unsigned long basek,
970 /* try to append some small hole */ 1007 /* try to append some small hole */
971 range0_basek = state->range_startk; 1008 range0_basek = state->range_startk;
972 range0_sizek = ALIGN(state->range_sizek, chunk_sizek); 1009 range0_sizek = ALIGN(state->range_sizek, chunk_sizek);
1010
1011 /* no increase */
973 if (range0_sizek == state->range_sizek) { 1012 if (range0_sizek == state->range_sizek) {
974 if (debug_print) 1013 if (debug_print)
975 printk(KERN_DEBUG "rangeX: %016lx - %016lx\n", 1014 printk(KERN_DEBUG "rangeX: %016lx - %016lx\n",
@@ -980,13 +1019,40 @@ range_to_mtrr_with_hole(struct var_mtrr_state *state, unsigned long basek,
980 return 0; 1019 return 0;
981 } 1020 }
982 1021
983 range0_sizek -= chunk_sizek; 1022 /* only cut back, when it is not the last */
984 if (range0_sizek && sizek) { 1023 if (sizek) {
985 while (range0_basek + range0_sizek > (basek + sizek)) { 1024 while (range0_basek + range0_sizek > (basek + sizek)) {
986 range0_sizek -= chunk_sizek; 1025 if (range0_sizek >= chunk_sizek)
987 if (!range0_sizek) 1026 range0_sizek -= chunk_sizek;
988 break; 1027 else
989 } 1028 range0_sizek = 0;
1029
1030 if (!range0_sizek)
1031 break;
1032 }
1033 }
1034
1035second_try:
1036 range_basek = range0_basek + range0_sizek;
1037
1038 /* one hole in the middle */
1039 if (range_basek > basek && range_basek <= (basek + sizek))
1040 second_sizek = range_basek - basek;
1041
1042 if (range0_sizek > state->range_sizek) {
1043
1044 /* one hole in middle or at end */
1045 hole_sizek = range0_sizek - state->range_sizek - second_sizek;
1046
1047 /* hole size should be less than half of range0 size */
1048 if (hole_sizek >= (range0_sizek >> 1) &&
1049 range0_sizek >= chunk_sizek) {
1050 range0_sizek -= chunk_sizek;
1051 second_sizek = 0;
1052 hole_sizek = 0;
1053
1054 goto second_try;
1055 }
990 } 1056 }
991 1057
992 if (range0_sizek) { 1058 if (range0_sizek) {
@@ -996,50 +1062,28 @@ range_to_mtrr_with_hole(struct var_mtrr_state *state, unsigned long basek,
996 (range0_basek + range0_sizek)<<10); 1062 (range0_basek + range0_sizek)<<10);
997 state->reg = range_to_mtrr(state->reg, range0_basek, 1063 state->reg = range_to_mtrr(state->reg, range0_basek,
998 range0_sizek, MTRR_TYPE_WRBACK); 1064 range0_sizek, MTRR_TYPE_WRBACK);
999
1000 }
1001
1002 range_basek = range0_basek + range0_sizek;
1003 range_sizek = chunk_sizek;
1004
1005 if (range_basek + range_sizek > basek &&
1006 range_basek + range_sizek <= (basek + sizek)) {
1007 /* one hole */
1008 second_basek = basek;
1009 second_sizek = range_basek + range_sizek - basek;
1010 } 1065 }
1011 1066
1012 /* if last piece, only could one hole near end */ 1067 if (range0_sizek < state->range_sizek) {
1013 if ((second_basek || !basek) && 1068 /* need to handle left over */
1014 range_sizek - (state->range_sizek - range0_sizek) - second_sizek <
1015 (chunk_sizek >> 1)) {
1016 /*
1017 * one hole in middle (second_sizek is 0) or at end
1018 * (second_sizek is 0 )
1019 */
1020 hole_sizek = range_sizek - (state->range_sizek - range0_sizek)
1021 - second_sizek;
1022 hole_basek = range_basek + range_sizek - hole_sizek
1023 - second_sizek;
1024 } else {
1025 /* fallback for big hole, or several holes */
1026 range_sizek = state->range_sizek - range0_sizek; 1069 range_sizek = state->range_sizek - range0_sizek;
1027 second_basek = 0; 1070
1028 second_sizek = 0; 1071 if (debug_print)
1072 printk(KERN_DEBUG "range: %016lx - %016lx\n",
1073 range_basek<<10,
1074 (range_basek + range_sizek)<<10);
1075 state->reg = range_to_mtrr(state->reg, range_basek,
1076 range_sizek, MTRR_TYPE_WRBACK);
1029 } 1077 }
1030 1078
1031 if (debug_print)
1032 printk(KERN_DEBUG "range: %016lx - %016lx\n", range_basek<<10,
1033 (range_basek + range_sizek)<<10);
1034 state->reg = range_to_mtrr(state->reg, range_basek, range_sizek,
1035 MTRR_TYPE_WRBACK);
1036 if (hole_sizek) { 1079 if (hole_sizek) {
1080 hole_basek = range_basek - hole_sizek - second_sizek;
1037 if (debug_print) 1081 if (debug_print)
1038 printk(KERN_DEBUG "hole: %016lx - %016lx\n", 1082 printk(KERN_DEBUG "hole: %016lx - %016lx\n",
1039 hole_basek<<10, (hole_basek + hole_sizek)<<10); 1083 hole_basek<<10,
1040 state->reg = range_to_mtrr(state->reg, hole_basek, hole_sizek, 1084 (hole_basek + hole_sizek)<<10);
1041 MTRR_TYPE_UNCACHABLE); 1085 state->reg = range_to_mtrr(state->reg, hole_basek,
1042 1086 hole_sizek, MTRR_TYPE_UNCACHABLE);
1043 } 1087 }
1044 1088
1045 return second_sizek; 1089 return second_sizek;
@@ -1154,11 +1198,11 @@ struct mtrr_cleanup_result {
1154}; 1198};
1155 1199
1156/* 1200/*
1157 * gran_size: 1M, 2M, ..., 2G 1201 * gran_size: 64K, 128K, 256K, 512K, 1M, 2M, ..., 2G
1158 * chunk size: gran_size, ..., 4G 1202 * chunk size: gran_size, ..., 2G
1159 * so we need (2+13)*6 1203 * so we need (1+16)*8
1160 */ 1204 */
1161#define NUM_RESULT 90 1205#define NUM_RESULT 136
1162#define PSHIFT (PAGE_SHIFT - 10) 1206#define PSHIFT (PAGE_SHIFT - 10)
1163 1207
1164static struct mtrr_cleanup_result __initdata result[NUM_RESULT]; 1208static struct mtrr_cleanup_result __initdata result[NUM_RESULT];
@@ -1168,13 +1212,14 @@ static unsigned long __initdata min_loss_pfn[RANGE_NUM];
1168static int __init mtrr_cleanup(unsigned address_bits) 1212static int __init mtrr_cleanup(unsigned address_bits)
1169{ 1213{
1170 unsigned long extra_remove_base, extra_remove_size; 1214 unsigned long extra_remove_base, extra_remove_size;
1171 unsigned long i, base, size, def, dummy; 1215 unsigned long base, size, def, dummy;
1172 mtrr_type type; 1216 mtrr_type type;
1173 int nr_range, nr_range_new; 1217 int nr_range, nr_range_new;
1174 u64 chunk_size, gran_size; 1218 u64 chunk_size, gran_size;
1175 unsigned long range_sums, range_sums_new; 1219 unsigned long range_sums, range_sums_new;
1176 int index_good; 1220 int index_good;
1177 int num_reg_good; 1221 int num_reg_good;
1222 int i;
1178 1223
1179 /* extra one for all 0 */ 1224 /* extra one for all 0 */
1180 int num[MTRR_NUM_TYPES + 1]; 1225 int num[MTRR_NUM_TYPES + 1];
@@ -1204,6 +1249,8 @@ static int __init mtrr_cleanup(unsigned address_bits)
1204 continue; 1249 continue;
1205 if (!size) 1250 if (!size)
1206 type = MTRR_NUM_TYPES; 1251 type = MTRR_NUM_TYPES;
1252 if (type == MTRR_TYPE_WRPROT)
1253 type = MTRR_TYPE_UNCACHABLE;
1207 num[type]++; 1254 num[type]++;
1208 } 1255 }
1209 1256
@@ -1216,23 +1263,57 @@ static int __init mtrr_cleanup(unsigned address_bits)
1216 num_var_ranges - num[MTRR_NUM_TYPES]) 1263 num_var_ranges - num[MTRR_NUM_TYPES])
1217 return 0; 1264 return 0;
1218 1265
1266 /* print original var MTRRs at first, for debugging: */
1267 printk(KERN_DEBUG "original variable MTRRs\n");
1268 for (i = 0; i < num_var_ranges; i++) {
1269 char start_factor = 'K', size_factor = 'K';
1270 unsigned long start_base, size_base;
1271
1272 size_base = range_state[i].size_pfn << (PAGE_SHIFT - 10);
1273 if (!size_base)
1274 continue;
1275
1276 size_base = to_size_factor(size_base, &size_factor),
1277 start_base = range_state[i].base_pfn << (PAGE_SHIFT - 10);
1278 start_base = to_size_factor(start_base, &start_factor),
1279 type = range_state[i].type;
1280
1281 printk(KERN_DEBUG "reg %d, base: %ld%cB, range: %ld%cB, type %s\n",
1282 i, start_base, start_factor,
1283 size_base, size_factor,
1284 (type == MTRR_TYPE_UNCACHABLE) ? "UC" :
1285 ((type == MTRR_TYPE_WRPROT) ? "WP" :
1286 ((type == MTRR_TYPE_WRBACK) ? "WB" : "Other"))
1287 );
1288 }
1289
1219 memset(range, 0, sizeof(range)); 1290 memset(range, 0, sizeof(range));
1220 extra_remove_size = 0; 1291 extra_remove_size = 0;
1221 if (mtrr_tom2) { 1292 extra_remove_base = 1 << (32 - PAGE_SHIFT);
1222 extra_remove_base = 1 << (32 - PAGE_SHIFT); 1293 if (mtrr_tom2)
1223 extra_remove_size = 1294 extra_remove_size =
1224 (mtrr_tom2 >> PAGE_SHIFT) - extra_remove_base; 1295 (mtrr_tom2 >> PAGE_SHIFT) - extra_remove_base;
1225 }
1226 nr_range = x86_get_mtrr_mem_range(range, 0, extra_remove_base, 1296 nr_range = x86_get_mtrr_mem_range(range, 0, extra_remove_base,
1227 extra_remove_size); 1297 extra_remove_size);
1298 /*
1299 * [0, 1M) should always be coverred by var mtrr with WB
1300 * and fixed mtrrs should take effective before var mtrr for it
1301 */
1302 nr_range = add_range_with_merge(range, nr_range, 0,
1303 (1ULL<<(20 - PAGE_SHIFT)) - 1);
1304 /* sort the ranges */
1305 sort(range, nr_range, sizeof(struct res_range), cmp_range, NULL);
1306
1228 range_sums = sum_ranges(range, nr_range); 1307 range_sums = sum_ranges(range, nr_range);
1229 printk(KERN_INFO "total RAM coverred: %ldM\n", 1308 printk(KERN_INFO "total RAM coverred: %ldM\n",
1230 range_sums >> (20 - PAGE_SHIFT)); 1309 range_sums >> (20 - PAGE_SHIFT));
1231 1310
1232 if (mtrr_chunk_size && mtrr_gran_size) { 1311 if (mtrr_chunk_size && mtrr_gran_size) {
1233 int num_reg; 1312 int num_reg;
1313 char gran_factor, chunk_factor, lose_factor;
1314 unsigned long gran_base, chunk_base, lose_base;
1234 1315
1235 debug_print = 1; 1316 debug_print++;
1236 /* convert ranges to var ranges state */ 1317 /* convert ranges to var ranges state */
1237 num_reg = x86_setup_var_mtrrs(range, nr_range, mtrr_chunk_size, 1318 num_reg = x86_setup_var_mtrrs(range, nr_range, mtrr_chunk_size,
1238 mtrr_gran_size); 1319 mtrr_gran_size);
@@ -1256,34 +1337,48 @@ static int __init mtrr_cleanup(unsigned address_bits)
1256 result[i].lose_cover_sizek = 1337 result[i].lose_cover_sizek =
1257 (range_sums - range_sums_new) << PSHIFT; 1338 (range_sums - range_sums_new) << PSHIFT;
1258 1339
1259 printk(KERN_INFO "%sgran_size: %ldM \tchunk_size: %ldM \t", 1340 gran_base = to_size_factor(result[i].gran_sizek, &gran_factor),
1260 result[i].bad?"*BAD*":" ", result[i].gran_sizek >> 10, 1341 chunk_base = to_size_factor(result[i].chunk_sizek, &chunk_factor),
1261 result[i].chunk_sizek >> 10); 1342 lose_base = to_size_factor(result[i].lose_cover_sizek, &lose_factor),
1262 printk(KERN_CONT "num_reg: %d \tlose cover RAM: %s%ldM \n", 1343 printk(KERN_INFO "%sgran_size: %ld%c \tchunk_size: %ld%c \t",
1344 result[i].bad?"*BAD*":" ",
1345 gran_base, gran_factor, chunk_base, chunk_factor);
1346 printk(KERN_CONT "num_reg: %d \tlose cover RAM: %s%ld%c\n",
1263 result[i].num_reg, result[i].bad?"-":"", 1347 result[i].num_reg, result[i].bad?"-":"",
1264 result[i].lose_cover_sizek >> 10); 1348 lose_base, lose_factor);
1265 if (!result[i].bad) { 1349 if (!result[i].bad) {
1266 set_var_mtrr_all(address_bits); 1350 set_var_mtrr_all(address_bits);
1267 return 1; 1351 return 1;
1268 } 1352 }
1269 printk(KERN_INFO "invalid mtrr_gran_size or mtrr_chunk_size, " 1353 printk(KERN_INFO "invalid mtrr_gran_size or mtrr_chunk_size, "
1270 "will find optimal one\n"); 1354 "will find optimal one\n");
1271 debug_print = 0; 1355 debug_print--;
1272 memset(result, 0, sizeof(result[0])); 1356 memset(result, 0, sizeof(result[0]));
1273 } 1357 }
1274 1358
1275 i = 0; 1359 i = 0;
1276 memset(min_loss_pfn, 0xff, sizeof(min_loss_pfn)); 1360 memset(min_loss_pfn, 0xff, sizeof(min_loss_pfn));
1277 memset(result, 0, sizeof(result)); 1361 memset(result, 0, sizeof(result));
1278 for (gran_size = (1ULL<<20); gran_size < (1ULL<<32); gran_size <<= 1) { 1362 for (gran_size = (1ULL<<16); gran_size < (1ULL<<32); gran_size <<= 1) {
1279 for (chunk_size = gran_size; chunk_size < (1ULL<<33); 1363 char gran_factor;
1364 unsigned long gran_base;
1365
1366 if (debug_print)
1367 gran_base = to_size_factor(gran_size >> 10, &gran_factor);
1368
1369 for (chunk_size = gran_size; chunk_size < (1ULL<<32);
1280 chunk_size <<= 1) { 1370 chunk_size <<= 1) {
1281 int num_reg; 1371 int num_reg;
1282 1372
1283 if (debug_print) 1373 if (debug_print) {
1284 printk(KERN_INFO 1374 char chunk_factor;
1285 "\ngran_size: %lldM chunk_size_size: %lldM\n", 1375 unsigned long chunk_base;
1286 gran_size >> 20, chunk_size >> 20); 1376
1377 chunk_base = to_size_factor(chunk_size>>10, &chunk_factor),
1378 printk(KERN_INFO "\n");
1379 printk(KERN_INFO "gran_size: %ld%c chunk_size: %ld%c \n",
1380 gran_base, gran_factor, chunk_base, chunk_factor);
1381 }
1287 if (i >= NUM_RESULT) 1382 if (i >= NUM_RESULT)
1288 continue; 1383 continue;
1289 1384
@@ -1326,12 +1421,18 @@ static int __init mtrr_cleanup(unsigned address_bits)
1326 1421
1327 /* print out all */ 1422 /* print out all */
1328 for (i = 0; i < NUM_RESULT; i++) { 1423 for (i = 0; i < NUM_RESULT; i++) {
1329 printk(KERN_INFO "%sgran_size: %ldM \tchunk_size: %ldM \t", 1424 char gran_factor, chunk_factor, lose_factor;
1330 result[i].bad?"*BAD* ":" ", result[i].gran_sizek >> 10, 1425 unsigned long gran_base, chunk_base, lose_base;
1331 result[i].chunk_sizek >> 10); 1426
1332 printk(KERN_CONT "num_reg: %d \tlose RAM: %s%ldM\n", 1427 gran_base = to_size_factor(result[i].gran_sizek, &gran_factor),
1333 result[i].num_reg, result[i].bad?"-":"", 1428 chunk_base = to_size_factor(result[i].chunk_sizek, &chunk_factor),
1334 result[i].lose_cover_sizek >> 10); 1429 lose_base = to_size_factor(result[i].lose_cover_sizek, &lose_factor),
1430 printk(KERN_INFO "%sgran_size: %ld%c \tchunk_size: %ld%c \t",
1431 result[i].bad?"*BAD*":" ",
1432 gran_base, gran_factor, chunk_base, chunk_factor);
1433 printk(KERN_CONT "num_reg: %d \tlose cover RAM: %s%ld%c\n",
1434 result[i].num_reg, result[i].bad?"-":"",
1435 lose_base, lose_factor);
1335 } 1436 }
1336 1437
1337 /* try to find the optimal index */ 1438 /* try to find the optimal index */
@@ -1339,10 +1440,8 @@ static int __init mtrr_cleanup(unsigned address_bits)
1339 nr_mtrr_spare_reg = num_var_ranges - 1; 1440 nr_mtrr_spare_reg = num_var_ranges - 1;
1340 num_reg_good = -1; 1441 num_reg_good = -1;
1341 for (i = num_var_ranges - nr_mtrr_spare_reg; i > 0; i--) { 1442 for (i = num_var_ranges - nr_mtrr_spare_reg; i > 0; i--) {
1342 if (!min_loss_pfn[i]) { 1443 if (!min_loss_pfn[i])
1343 num_reg_good = i; 1444 num_reg_good = i;
1344 break;
1345 }
1346 } 1445 }
1347 1446
1348 index_good = -1; 1447 index_good = -1;
@@ -1358,21 +1457,26 @@ static int __init mtrr_cleanup(unsigned address_bits)
1358 } 1457 }
1359 1458
1360 if (index_good != -1) { 1459 if (index_good != -1) {
1460 char gran_factor, chunk_factor, lose_factor;
1461 unsigned long gran_base, chunk_base, lose_base;
1462
1361 printk(KERN_INFO "Found optimal setting for mtrr clean up\n"); 1463 printk(KERN_INFO "Found optimal setting for mtrr clean up\n");
1362 i = index_good; 1464 i = index_good;
1363 printk(KERN_INFO "gran_size: %ldM \tchunk_size: %ldM \t", 1465 gran_base = to_size_factor(result[i].gran_sizek, &gran_factor),
1364 result[i].gran_sizek >> 10, 1466 chunk_base = to_size_factor(result[i].chunk_sizek, &chunk_factor),
1365 result[i].chunk_sizek >> 10); 1467 lose_base = to_size_factor(result[i].lose_cover_sizek, &lose_factor),
1366 printk(KERN_CONT "num_reg: %d \tlose RAM: %ldM\n", 1468 printk(KERN_INFO "gran_size: %ld%c \tchunk_size: %ld%c \t",
1367 result[i].num_reg, 1469 gran_base, gran_factor, chunk_base, chunk_factor);
1368 result[i].lose_cover_sizek >> 10); 1470 printk(KERN_CONT "num_reg: %d \tlose RAM: %ld%c\n",
1471 result[i].num_reg, lose_base, lose_factor);
1369 /* convert ranges to var ranges state */ 1472 /* convert ranges to var ranges state */
1370 chunk_size = result[i].chunk_sizek; 1473 chunk_size = result[i].chunk_sizek;
1371 chunk_size <<= 10; 1474 chunk_size <<= 10;
1372 gran_size = result[i].gran_sizek; 1475 gran_size = result[i].gran_sizek;
1373 gran_size <<= 10; 1476 gran_size <<= 10;
1374 debug_print = 1; 1477 debug_print++;
1375 x86_setup_var_mtrrs(range, nr_range, chunk_size, gran_size); 1478 x86_setup_var_mtrrs(range, nr_range, chunk_size, gran_size);
1479 debug_print--;
1376 set_var_mtrr_all(address_bits); 1480 set_var_mtrr_all(address_bits);
1377 return 1; 1481 return 1;
1378 } 1482 }
@@ -1496,11 +1600,8 @@ int __init mtrr_trim_uncached_memory(unsigned long end_pfn)
1496 1600
1497 /* kvm/qemu doesn't have mtrr set right, don't trim them all */ 1601 /* kvm/qemu doesn't have mtrr set right, don't trim them all */
1498 if (!highest_pfn) { 1602 if (!highest_pfn) {
1499 if (!kvm_para_available()) { 1603 WARN(!kvm_para_available(), KERN_WARNING
1500 printk(KERN_WARNING
1501 "WARNING: strange, CPU MTRRs all blank?\n"); 1604 "WARNING: strange, CPU MTRRs all blank?\n");
1502 WARN_ON(1);
1503 }
1504 return 0; 1605 return 0;
1505 } 1606 }
1506 1607
diff --git a/arch/x86/kernel/cpu/perfctr-watchdog.c b/arch/x86/kernel/cpu/perfctr-watchdog.c
index 05cc22dbd4f..6bff382094f 100644
--- a/arch/x86/kernel/cpu/perfctr-watchdog.c
+++ b/arch/x86/kernel/cpu/perfctr-watchdog.c
@@ -295,13 +295,19 @@ static int setup_k7_watchdog(unsigned nmi_hz)
295 /* setup the timer */ 295 /* setup the timer */
296 wrmsr(evntsel_msr, evntsel, 0); 296 wrmsr(evntsel_msr, evntsel, 0);
297 write_watchdog_counter(perfctr_msr, "K7_PERFCTR0",nmi_hz); 297 write_watchdog_counter(perfctr_msr, "K7_PERFCTR0",nmi_hz);
298 apic_write(APIC_LVTPC, APIC_DM_NMI);
299 evntsel |= K7_EVNTSEL_ENABLE;
300 wrmsr(evntsel_msr, evntsel, 0);
301 298
299 /* initialize the wd struct before enabling */
302 wd->perfctr_msr = perfctr_msr; 300 wd->perfctr_msr = perfctr_msr;
303 wd->evntsel_msr = evntsel_msr; 301 wd->evntsel_msr = evntsel_msr;
304 wd->cccr_msr = 0; /* unused */ 302 wd->cccr_msr = 0; /* unused */
303
304 /* ok, everything is initialized, announce that we're set */
305 cpu_nmi_set_wd_enabled();
306
307 apic_write(APIC_LVTPC, APIC_DM_NMI);
308 evntsel |= K7_EVNTSEL_ENABLE;
309 wrmsr(evntsel_msr, evntsel, 0);
310
305 return 1; 311 return 1;
306} 312}
307 313
@@ -379,13 +385,19 @@ static int setup_p6_watchdog(unsigned nmi_hz)
379 wrmsr(evntsel_msr, evntsel, 0); 385 wrmsr(evntsel_msr, evntsel, 0);
380 nmi_hz = adjust_for_32bit_ctr(nmi_hz); 386 nmi_hz = adjust_for_32bit_ctr(nmi_hz);
381 write_watchdog_counter32(perfctr_msr, "P6_PERFCTR0",nmi_hz); 387 write_watchdog_counter32(perfctr_msr, "P6_PERFCTR0",nmi_hz);
382 apic_write(APIC_LVTPC, APIC_DM_NMI);
383 evntsel |= P6_EVNTSEL0_ENABLE;
384 wrmsr(evntsel_msr, evntsel, 0);
385 388
389 /* initialize the wd struct before enabling */
386 wd->perfctr_msr = perfctr_msr; 390 wd->perfctr_msr = perfctr_msr;
387 wd->evntsel_msr = evntsel_msr; 391 wd->evntsel_msr = evntsel_msr;
388 wd->cccr_msr = 0; /* unused */ 392 wd->cccr_msr = 0; /* unused */
393
394 /* ok, everything is initialized, announce that we're set */
395 cpu_nmi_set_wd_enabled();
396
397 apic_write(APIC_LVTPC, APIC_DM_NMI);
398 evntsel |= P6_EVNTSEL0_ENABLE;
399 wrmsr(evntsel_msr, evntsel, 0);
400
389 return 1; 401 return 1;
390} 402}
391 403
@@ -432,6 +444,27 @@ static const struct wd_ops p6_wd_ops = {
432#define P4_CCCR_ENABLE (1 << 12) 444#define P4_CCCR_ENABLE (1 << 12)
433#define P4_CCCR_OVF (1 << 31) 445#define P4_CCCR_OVF (1 << 31)
434 446
447#define P4_CONTROLS 18
448static unsigned int p4_controls[18] = {
449 MSR_P4_BPU_CCCR0,
450 MSR_P4_BPU_CCCR1,
451 MSR_P4_BPU_CCCR2,
452 MSR_P4_BPU_CCCR3,
453 MSR_P4_MS_CCCR0,
454 MSR_P4_MS_CCCR1,
455 MSR_P4_MS_CCCR2,
456 MSR_P4_MS_CCCR3,
457 MSR_P4_FLAME_CCCR0,
458 MSR_P4_FLAME_CCCR1,
459 MSR_P4_FLAME_CCCR2,
460 MSR_P4_FLAME_CCCR3,
461 MSR_P4_IQ_CCCR0,
462 MSR_P4_IQ_CCCR1,
463 MSR_P4_IQ_CCCR2,
464 MSR_P4_IQ_CCCR3,
465 MSR_P4_IQ_CCCR4,
466 MSR_P4_IQ_CCCR5,
467};
435/* 468/*
436 * Set up IQ_COUNTER0 to behave like a clock, by having IQ_CCCR0 filter 469 * Set up IQ_COUNTER0 to behave like a clock, by having IQ_CCCR0 filter
437 * CRU_ESCR0 (with any non-null event selector) through a complemented 470 * CRU_ESCR0 (with any non-null event selector) through a complemented
@@ -473,6 +506,26 @@ static int setup_p4_watchdog(unsigned nmi_hz)
473 evntsel_msr = MSR_P4_CRU_ESCR0; 506 evntsel_msr = MSR_P4_CRU_ESCR0;
474 cccr_msr = MSR_P4_IQ_CCCR0; 507 cccr_msr = MSR_P4_IQ_CCCR0;
475 cccr_val = P4_CCCR_OVF_PMI0 | P4_CCCR_ESCR_SELECT(4); 508 cccr_val = P4_CCCR_OVF_PMI0 | P4_CCCR_ESCR_SELECT(4);
509
510 /*
511 * If we're on the kdump kernel or other situation, we may
512 * still have other performance counter registers set to
513 * interrupt and they'll keep interrupting forever because
514 * of the P4_CCCR_OVF quirk. So we need to ACK all the
515 * pending interrupts and disable all the registers here,
516 * before reenabling the NMI delivery. Refer to p4_rearm()
517 * about the P4_CCCR_OVF quirk.
518 */
519 if (reset_devices) {
520 unsigned int low, high;
521 int i;
522
523 for (i = 0; i < P4_CONTROLS; i++) {
524 rdmsr(p4_controls[i], low, high);
525 low &= ~(P4_CCCR_ENABLE | P4_CCCR_OVF);
526 wrmsr(p4_controls[i], low, high);
527 }
528 }
476 } else { 529 } else {
477 /* logical cpu 1 */ 530 /* logical cpu 1 */
478 perfctr_msr = MSR_P4_IQ_PERFCTR1; 531 perfctr_msr = MSR_P4_IQ_PERFCTR1;
@@ -499,12 +552,17 @@ static int setup_p4_watchdog(unsigned nmi_hz)
499 wrmsr(evntsel_msr, evntsel, 0); 552 wrmsr(evntsel_msr, evntsel, 0);
500 wrmsr(cccr_msr, cccr_val, 0); 553 wrmsr(cccr_msr, cccr_val, 0);
501 write_watchdog_counter(perfctr_msr, "P4_IQ_COUNTER0", nmi_hz); 554 write_watchdog_counter(perfctr_msr, "P4_IQ_COUNTER0", nmi_hz);
502 apic_write(APIC_LVTPC, APIC_DM_NMI); 555
503 cccr_val |= P4_CCCR_ENABLE;
504 wrmsr(cccr_msr, cccr_val, 0);
505 wd->perfctr_msr = perfctr_msr; 556 wd->perfctr_msr = perfctr_msr;
506 wd->evntsel_msr = evntsel_msr; 557 wd->evntsel_msr = evntsel_msr;
507 wd->cccr_msr = cccr_msr; 558 wd->cccr_msr = cccr_msr;
559
560 /* ok, everything is initialized, announce that we're set */
561 cpu_nmi_set_wd_enabled();
562
563 apic_write(APIC_LVTPC, APIC_DM_NMI);
564 cccr_val |= P4_CCCR_ENABLE;
565 wrmsr(cccr_msr, cccr_val, 0);
508 return 1; 566 return 1;
509} 567}
510 568
@@ -620,13 +678,17 @@ static int setup_intel_arch_watchdog(unsigned nmi_hz)
620 wrmsr(evntsel_msr, evntsel, 0); 678 wrmsr(evntsel_msr, evntsel, 0);
621 nmi_hz = adjust_for_32bit_ctr(nmi_hz); 679 nmi_hz = adjust_for_32bit_ctr(nmi_hz);
622 write_watchdog_counter32(perfctr_msr, "INTEL_ARCH_PERFCTR0", nmi_hz); 680 write_watchdog_counter32(perfctr_msr, "INTEL_ARCH_PERFCTR0", nmi_hz);
623 apic_write(APIC_LVTPC, APIC_DM_NMI);
624 evntsel |= ARCH_PERFMON_EVENTSEL0_ENABLE;
625 wrmsr(evntsel_msr, evntsel, 0);
626 681
627 wd->perfctr_msr = perfctr_msr; 682 wd->perfctr_msr = perfctr_msr;
628 wd->evntsel_msr = evntsel_msr; 683 wd->evntsel_msr = evntsel_msr;
629 wd->cccr_msr = 0; /* unused */ 684 wd->cccr_msr = 0; /* unused */
685
686 /* ok, everything is initialized, announce that we're set */
687 cpu_nmi_set_wd_enabled();
688
689 apic_write(APIC_LVTPC, APIC_DM_NMI);
690 evntsel |= ARCH_PERFMON_EVENTSEL0_ENABLE;
691 wrmsr(evntsel_msr, evntsel, 0);
630 intel_arch_wd_ops.checkbit = 1ULL << (eax.split.bit_width - 1); 692 intel_arch_wd_ops.checkbit = 1ULL << (eax.split.bit_width - 1);
631 return 1; 693 return 1;
632} 694}
diff --git a/arch/x86/kernel/cpuid.c b/arch/x86/kernel/cpuid.c
index 14b11b3be31..6a44d646599 100644
--- a/arch/x86/kernel/cpuid.c
+++ b/arch/x86/kernel/cpuid.c
@@ -36,7 +36,6 @@
36#include <linux/smp_lock.h> 36#include <linux/smp_lock.h>
37#include <linux/major.h> 37#include <linux/major.h>
38#include <linux/fs.h> 38#include <linux/fs.h>
39#include <linux/smp_lock.h>
40#include <linux/device.h> 39#include <linux/device.h>
41#include <linux/cpu.h> 40#include <linux/cpu.h>
42#include <linux/notifier.h> 41#include <linux/notifier.h>
@@ -89,6 +88,8 @@ static ssize_t cpuid_read(struct file *file, char __user *buf,
89 struct cpuid_regs cmd; 88 struct cpuid_regs cmd;
90 int cpu = iminor(file->f_path.dentry->d_inode); 89 int cpu = iminor(file->f_path.dentry->d_inode);
91 u64 pos = *ppos; 90 u64 pos = *ppos;
91 ssize_t bytes = 0;
92 int err = 0;
92 93
93 if (count % 16) 94 if (count % 16)
94 return -EINVAL; /* Invalid chunk size */ 95 return -EINVAL; /* Invalid chunk size */
@@ -96,14 +97,19 @@ static ssize_t cpuid_read(struct file *file, char __user *buf,
96 for (; count; count -= 16) { 97 for (; count; count -= 16) {
97 cmd.eax = pos; 98 cmd.eax = pos;
98 cmd.ecx = pos >> 32; 99 cmd.ecx = pos >> 32;
99 smp_call_function_single(cpu, cpuid_smp_cpuid, &cmd, 1); 100 err = smp_call_function_single(cpu, cpuid_smp_cpuid, &cmd, 1);
100 if (copy_to_user(tmp, &cmd, 16)) 101 if (err)
101 return -EFAULT; 102 break;
103 if (copy_to_user(tmp, &cmd, 16)) {
104 err = -EFAULT;
105 break;
106 }
102 tmp += 16; 107 tmp += 16;
108 bytes += 16;
103 *ppos = ++pos; 109 *ppos = ++pos;
104 } 110 }
105 111
106 return tmp - buf; 112 return bytes ? bytes : err;
107} 113}
108 114
109static int cpuid_open(struct inode *inode, struct file *file) 115static int cpuid_open(struct inode *inode, struct file *file)
diff --git a/arch/x86/kernel/crash_dump_64.c b/arch/x86/kernel/crash_dump_64.c
index 15e6c6bc4a4..e90a60ef10c 100644
--- a/arch/x86/kernel/crash_dump_64.c
+++ b/arch/x86/kernel/crash_dump_64.c
@@ -7,9 +7,8 @@
7 7
8#include <linux/errno.h> 8#include <linux/errno.h>
9#include <linux/crash_dump.h> 9#include <linux/crash_dump.h>
10 10#include <linux/uaccess.h>
11#include <asm/uaccess.h> 11#include <linux/io.h>
12#include <asm/io.h>
13 12
14/** 13/**
15 * copy_oldmem_page - copy one page from "oldmem" 14 * copy_oldmem_page - copy one page from "oldmem"
@@ -25,7 +24,7 @@
25 * in the current kernel. We stitch up a pte, similar to kmap_atomic. 24 * in the current kernel. We stitch up a pte, similar to kmap_atomic.
26 */ 25 */
27ssize_t copy_oldmem_page(unsigned long pfn, char *buf, 26ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
28 size_t csize, unsigned long offset, int userbuf) 27 size_t csize, unsigned long offset, int userbuf)
29{ 28{
30 void *vaddr; 29 void *vaddr;
31 30
@@ -33,14 +32,16 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
33 return 0; 32 return 0;
34 33
35 vaddr = ioremap(pfn << PAGE_SHIFT, PAGE_SIZE); 34 vaddr = ioremap(pfn << PAGE_SHIFT, PAGE_SIZE);
35 if (!vaddr)
36 return -ENOMEM;
36 37
37 if (userbuf) { 38 if (userbuf) {
38 if (copy_to_user(buf, (vaddr + offset), csize)) { 39 if (copy_to_user(buf, vaddr + offset, csize)) {
39 iounmap(vaddr); 40 iounmap(vaddr);
40 return -EFAULT; 41 return -EFAULT;
41 } 42 }
42 } else 43 } else
43 memcpy(buf, (vaddr + offset), csize); 44 memcpy(buf, vaddr + offset, csize);
44 45
45 iounmap(vaddr); 46 iounmap(vaddr);
46 return csize; 47 return csize;
diff --git a/arch/x86/kernel/ds.c b/arch/x86/kernel/ds.c
index 11c11b8ec48..2b69994fd3a 100644
--- a/arch/x86/kernel/ds.c
+++ b/arch/x86/kernel/ds.c
@@ -2,26 +2,49 @@
2 * Debug Store support 2 * Debug Store support
3 * 3 *
4 * This provides a low-level interface to the hardware's Debug Store 4 * This provides a low-level interface to the hardware's Debug Store
5 * feature that is used for last branch recording (LBR) and 5 * feature that is used for branch trace store (BTS) and
6 * precise-event based sampling (PEBS). 6 * precise-event based sampling (PEBS).
7 * 7 *
8 * Different architectures use a different DS layout/pointer size. 8 * It manages:
9 * The below functions therefore work on a void*. 9 * - per-thread and per-cpu allocation of BTS and PEBS
10 * - buffer memory allocation (optional)
11 * - buffer overflow handling
12 * - buffer access
10 * 13 *
14 * It assumes:
15 * - get_task_struct on all parameter tasks
16 * - current is allowed to trace parameter tasks
11 * 17 *
12 * Since there is no user for PEBS, yet, only LBR (or branch
13 * trace store, BTS) is supported.
14 * 18 *
15 * 19 * Copyright (C) 2007-2008 Intel Corporation.
16 * Copyright (C) 2007 Intel Corporation. 20 * Markus Metzger <markus.t.metzger@intel.com>, 2007-2008
17 * Markus Metzger <markus.t.metzger@intel.com>, Dec 2007
18 */ 21 */
19 22
23
24#ifdef CONFIG_X86_DS
25
20#include <asm/ds.h> 26#include <asm/ds.h>
21 27
22#include <linux/errno.h> 28#include <linux/errno.h>
23#include <linux/string.h> 29#include <linux/string.h>
24#include <linux/slab.h> 30#include <linux/slab.h>
31#include <linux/sched.h>
32#include <linux/mm.h>
33
34
35/*
36 * The configuration for a particular DS hardware implementation.
37 */
38struct ds_configuration {
39 /* the size of the DS structure in bytes */
40 unsigned char sizeof_ds;
41 /* the size of one pointer-typed field in the DS structure in bytes;
42 this covers the first 8 fields related to buffer management. */
43 unsigned char sizeof_field;
44 /* the size of a BTS/PEBS record in bytes */
45 unsigned char sizeof_rec[2];
46};
47static struct ds_configuration ds_cfg;
25 48
26 49
27/* 50/*
@@ -44,378 +67,747 @@
44 * (interrupt occurs when write pointer passes interrupt pointer) 67 * (interrupt occurs when write pointer passes interrupt pointer)
45 * - value to which counter is reset following counter overflow 68 * - value to which counter is reset following counter overflow
46 * 69 *
47 * On later architectures, the last branch recording hardware uses 70 * Later architectures use 64bit pointers throughout, whereas earlier
48 * 64bit pointers even in 32bit mode. 71 * architectures use 32bit pointers in 32bit mode.
49 *
50 *
51 * Branch Trace Store (BTS) records store information about control
52 * flow changes. They at least provide the following information:
53 * - source linear address
54 * - destination linear address
55 * 72 *
56 * Netburst supported a predicated bit that had been dropped in later
57 * architectures. We do not suppor it.
58 * 73 *
74 * We compute the base address for the first 8 fields based on:
75 * - the field size stored in the DS configuration
76 * - the relative field position
77 * - an offset giving the start of the respective region
59 * 78 *
60 * In order to abstract from the actual DS and BTS layout, we describe 79 * This offset is further used to index various arrays holding
61 * the access to the relevant fields. 80 * information for BTS and PEBS at the respective index.
62 * Thanks to Andi Kleen for proposing this design.
63 * 81 *
64 * The implementation, however, is not as general as it might seem. In 82 * On later 32bit processors, we only access the lower 32bit of the
65 * order to stay somewhat simple and efficient, we assume an 83 * 64bit pointer fields. The upper halves will be zeroed out.
66 * underlying unsigned type (mostly a pointer type) and we expect the
67 * field to be at least as big as that type.
68 */ 84 */
69 85
70/* 86enum ds_field {
71 * A special from_ip address to indicate that the BTS record is an 87 ds_buffer_base = 0,
72 * info record that needs to be interpreted or skipped. 88 ds_index,
73 */ 89 ds_absolute_maximum,
74#define BTS_ESCAPE_ADDRESS (-1) 90 ds_interrupt_threshold,
91};
75 92
76/* 93enum ds_qualifier {
77 * A field access descriptor 94 ds_bts = 0,
78 */ 95 ds_pebs
79struct access_desc {
80 unsigned char offset;
81 unsigned char size;
82}; 96};
83 97
98static inline unsigned long ds_get(const unsigned char *base,
99 enum ds_qualifier qual, enum ds_field field)
100{
101 base += (ds_cfg.sizeof_field * (field + (4 * qual)));
102 return *(unsigned long *)base;
103}
104
105static inline void ds_set(unsigned char *base, enum ds_qualifier qual,
106 enum ds_field field, unsigned long value)
107{
108 base += (ds_cfg.sizeof_field * (field + (4 * qual)));
109 (*(unsigned long *)base) = value;
110}
111
112
84/* 113/*
85 * The configuration for a particular DS/BTS hardware implementation. 114 * Locking is done only for allocating BTS or PEBS resources and for
115 * guarding context and buffer memory allocation.
116 *
117 * Most functions require the current task to own the ds context part
118 * they are going to access. All the locking is done when validating
119 * access to the context.
86 */ 120 */
87struct ds_configuration { 121static spinlock_t ds_lock = __SPIN_LOCK_UNLOCKED(ds_lock);
88 /* the DS configuration */
89 unsigned char sizeof_ds;
90 struct access_desc bts_buffer_base;
91 struct access_desc bts_index;
92 struct access_desc bts_absolute_maximum;
93 struct access_desc bts_interrupt_threshold;
94 /* the BTS configuration */
95 unsigned char sizeof_bts;
96 struct access_desc from_ip;
97 struct access_desc to_ip;
98 /* BTS variants used to store additional information like
99 timestamps */
100 struct access_desc info_type;
101 struct access_desc info_data;
102 unsigned long debugctl_mask;
103};
104 122
105/* 123/*
106 * The global configuration used by the below accessor functions 124 * Validate that the current task is allowed to access the BTS/PEBS
125 * buffer of the parameter task.
126 *
127 * Returns 0, if access is granted; -Eerrno, otherwise.
107 */ 128 */
108static struct ds_configuration ds_cfg; 129static inline int ds_validate_access(struct ds_context *context,
130 enum ds_qualifier qual)
131{
132 if (!context)
133 return -EPERM;
134
135 if (context->owner[qual] == current)
136 return 0;
137
138 return -EPERM;
139}
140
109 141
110/* 142/*
111 * Accessor functions for some DS and BTS fields using the above 143 * We either support (system-wide) per-cpu or per-thread allocation.
112 * global ptrace_bts_cfg. 144 * We distinguish the two based on the task_struct pointer, where a
145 * NULL pointer indicates per-cpu allocation for the current cpu.
146 *
147 * Allocations are use-counted. As soon as resources are allocated,
148 * further allocations must be of the same type (per-cpu or
149 * per-thread). We model this by counting allocations (i.e. the number
150 * of tracers of a certain type) for one type negatively:
151 * =0 no tracers
152 * >0 number of per-thread tracers
153 * <0 number of per-cpu tracers
154 *
155 * The below functions to get and put tracers and to check the
156 * allocation type require the ds_lock to be held by the caller.
157 *
158 * Tracers essentially gives the number of ds contexts for a certain
159 * type of allocation.
113 */ 160 */
114static inline unsigned long get_bts_buffer_base(char *base) 161static long tracers;
162
163static inline void get_tracer(struct task_struct *task)
115{ 164{
116 return *(unsigned long *)(base + ds_cfg.bts_buffer_base.offset); 165 tracers += (task ? 1 : -1);
117} 166}
118static inline void set_bts_buffer_base(char *base, unsigned long value) 167
168static inline void put_tracer(struct task_struct *task)
119{ 169{
120 (*(unsigned long *)(base + ds_cfg.bts_buffer_base.offset)) = value; 170 tracers -= (task ? 1 : -1);
121} 171}
122static inline unsigned long get_bts_index(char *base) 172
173static inline int check_tracer(struct task_struct *task)
123{ 174{
124 return *(unsigned long *)(base + ds_cfg.bts_index.offset); 175 return (task ? (tracers >= 0) : (tracers <= 0));
125} 176}
126static inline void set_bts_index(char *base, unsigned long value) 177
178
179/*
180 * The DS context is either attached to a thread or to a cpu:
181 * - in the former case, the thread_struct contains a pointer to the
182 * attached context.
183 * - in the latter case, we use a static array of per-cpu context
184 * pointers.
185 *
186 * Contexts are use-counted. They are allocated on first access and
187 * deallocated when the last user puts the context.
188 *
189 * We distinguish between an allocating and a non-allocating get of a
190 * context:
191 * - the allocating get is used for requesting BTS/PEBS resources. It
192 * requires the caller to hold the global ds_lock.
193 * - the non-allocating get is used for all other cases. A
194 * non-existing context indicates an error. It acquires and releases
195 * the ds_lock itself for obtaining the context.
196 *
197 * A context and its DS configuration are allocated and deallocated
198 * together. A context always has a DS configuration of the
199 * appropriate size.
200 */
201static DEFINE_PER_CPU(struct ds_context *, system_context);
202
203#define this_system_context per_cpu(system_context, smp_processor_id())
204
205/*
206 * Returns the pointer to the parameter task's context or to the
207 * system-wide context, if task is NULL.
208 *
209 * Increases the use count of the returned context, if not NULL.
210 */
211static inline struct ds_context *ds_get_context(struct task_struct *task)
127{ 212{
128 (*(unsigned long *)(base + ds_cfg.bts_index.offset)) = value; 213 struct ds_context *context;
214
215 spin_lock(&ds_lock);
216
217 context = (task ? task->thread.ds_ctx : this_system_context);
218 if (context)
219 context->count++;
220
221 spin_unlock(&ds_lock);
222
223 return context;
129} 224}
130static inline unsigned long get_bts_absolute_maximum(char *base) 225
226/*
227 * Same as ds_get_context, but allocates the context and it's DS
228 * structure, if necessary; returns NULL; if out of memory.
229 *
230 * pre: requires ds_lock to be held
231 */
232static inline struct ds_context *ds_alloc_context(struct task_struct *task)
131{ 233{
132 return *(unsigned long *)(base + ds_cfg.bts_absolute_maximum.offset); 234 struct ds_context **p_context =
235 (task ? &task->thread.ds_ctx : &this_system_context);
236 struct ds_context *context = *p_context;
237
238 if (!context) {
239 context = kzalloc(sizeof(*context), GFP_KERNEL);
240
241 if (!context)
242 return NULL;
243
244 context->ds = kzalloc(ds_cfg.sizeof_ds, GFP_KERNEL);
245 if (!context->ds) {
246 kfree(context);
247 return NULL;
248 }
249
250 *p_context = context;
251
252 context->this = p_context;
253 context->task = task;
254
255 if (task)
256 set_tsk_thread_flag(task, TIF_DS_AREA_MSR);
257
258 if (!task || (task == current))
259 wrmsr(MSR_IA32_DS_AREA, (unsigned long)context->ds, 0);
260
261 get_tracer(task);
262 }
263
264 context->count++;
265
266 return context;
133} 267}
134static inline void set_bts_absolute_maximum(char *base, unsigned long value) 268
269/*
270 * Decreases the use count of the parameter context, if not NULL.
271 * Deallocates the context, if the use count reaches zero.
272 */
273static inline void ds_put_context(struct ds_context *context)
135{ 274{
136 (*(unsigned long *)(base + ds_cfg.bts_absolute_maximum.offset)) = value; 275 if (!context)
276 return;
277
278 spin_lock(&ds_lock);
279
280 if (--context->count)
281 goto out;
282
283 *(context->this) = NULL;
284
285 if (context->task)
286 clear_tsk_thread_flag(context->task, TIF_DS_AREA_MSR);
287
288 if (!context->task || (context->task == current))
289 wrmsrl(MSR_IA32_DS_AREA, 0);
290
291 put_tracer(context->task);
292
293 /* free any leftover buffers from tracers that did not
294 * deallocate them properly. */
295 kfree(context->buffer[ds_bts]);
296 kfree(context->buffer[ds_pebs]);
297 kfree(context->ds);
298 kfree(context);
299 out:
300 spin_unlock(&ds_lock);
137} 301}
138static inline unsigned long get_bts_interrupt_threshold(char *base) 302
303
304/*
305 * Handle a buffer overflow
306 *
307 * task: the task whose buffers are overflowing;
308 * NULL for a buffer overflow on the current cpu
309 * context: the ds context
310 * qual: the buffer type
311 */
312static void ds_overflow(struct task_struct *task, struct ds_context *context,
313 enum ds_qualifier qual)
139{ 314{
140 return *(unsigned long *)(base + ds_cfg.bts_interrupt_threshold.offset); 315 if (!context)
316 return;
317
318 if (context->callback[qual])
319 (*context->callback[qual])(task);
320
321 /* todo: do some more overflow handling */
141} 322}
142static inline void set_bts_interrupt_threshold(char *base, unsigned long value) 323
324
325/*
326 * Allocate a non-pageable buffer of the parameter size.
327 * Checks the memory and the locked memory rlimit.
328 *
329 * Returns the buffer, if successful;
330 * NULL, if out of memory or rlimit exceeded.
331 *
332 * size: the requested buffer size in bytes
333 * pages (out): if not NULL, contains the number of pages reserved
334 */
335static inline void *ds_allocate_buffer(size_t size, unsigned int *pages)
143{ 336{
144 (*(unsigned long *)(base + ds_cfg.bts_interrupt_threshold.offset)) = value; 337 unsigned long rlim, vm, pgsz;
338 void *buffer;
339
340 pgsz = PAGE_ALIGN(size) >> PAGE_SHIFT;
341
342 rlim = current->signal->rlim[RLIMIT_AS].rlim_cur >> PAGE_SHIFT;
343 vm = current->mm->total_vm + pgsz;
344 if (rlim < vm)
345 return NULL;
346
347 rlim = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur >> PAGE_SHIFT;
348 vm = current->mm->locked_vm + pgsz;
349 if (rlim < vm)
350 return NULL;
351
352 buffer = kzalloc(size, GFP_KERNEL);
353 if (!buffer)
354 return NULL;
355
356 current->mm->total_vm += pgsz;
357 current->mm->locked_vm += pgsz;
358
359 if (pages)
360 *pages = pgsz;
361
362 return buffer;
145} 363}
146static inline unsigned long get_from_ip(char *base) 364
365static int ds_request(struct task_struct *task, void *base, size_t size,
366 ds_ovfl_callback_t ovfl, enum ds_qualifier qual)
147{ 367{
148 return *(unsigned long *)(base + ds_cfg.from_ip.offset); 368 struct ds_context *context;
369 unsigned long buffer, adj;
370 const unsigned long alignment = (1 << 3);
371 int error = 0;
372
373 if (!ds_cfg.sizeof_ds)
374 return -EOPNOTSUPP;
375
376 /* we require some space to do alignment adjustments below */
377 if (size < (alignment + ds_cfg.sizeof_rec[qual]))
378 return -EINVAL;
379
380 /* buffer overflow notification is not yet implemented */
381 if (ovfl)
382 return -EOPNOTSUPP;
383
384
385 spin_lock(&ds_lock);
386
387 if (!check_tracer(task))
388 return -EPERM;
389
390 error = -ENOMEM;
391 context = ds_alloc_context(task);
392 if (!context)
393 goto out_unlock;
394
395 error = -EALREADY;
396 if (context->owner[qual] == current)
397 goto out_unlock;
398 error = -EPERM;
399 if (context->owner[qual] != NULL)
400 goto out_unlock;
401 context->owner[qual] = current;
402
403 spin_unlock(&ds_lock);
404
405
406 error = -ENOMEM;
407 if (!base) {
408 base = ds_allocate_buffer(size, &context->pages[qual]);
409 if (!base)
410 goto out_release;
411
412 context->buffer[qual] = base;
413 }
414 error = 0;
415
416 context->callback[qual] = ovfl;
417
418 /* adjust the buffer address and size to meet alignment
419 * constraints:
420 * - buffer is double-word aligned
421 * - size is multiple of record size
422 *
423 * We checked the size at the very beginning; we have enough
424 * space to do the adjustment.
425 */
426 buffer = (unsigned long)base;
427
428 adj = ALIGN(buffer, alignment) - buffer;
429 buffer += adj;
430 size -= adj;
431
432 size /= ds_cfg.sizeof_rec[qual];
433 size *= ds_cfg.sizeof_rec[qual];
434
435 ds_set(context->ds, qual, ds_buffer_base, buffer);
436 ds_set(context->ds, qual, ds_index, buffer);
437 ds_set(context->ds, qual, ds_absolute_maximum, buffer + size);
438
439 if (ovfl) {
440 /* todo: select a suitable interrupt threshold */
441 } else
442 ds_set(context->ds, qual,
443 ds_interrupt_threshold, buffer + size + 1);
444
445 /* we keep the context until ds_release */
446 return error;
447
448 out_release:
449 context->owner[qual] = NULL;
450 ds_put_context(context);
451 return error;
452
453 out_unlock:
454 spin_unlock(&ds_lock);
455 ds_put_context(context);
456 return error;
149} 457}
150static inline void set_from_ip(char *base, unsigned long value) 458
459int ds_request_bts(struct task_struct *task, void *base, size_t size,
460 ds_ovfl_callback_t ovfl)
151{ 461{
152 (*(unsigned long *)(base + ds_cfg.from_ip.offset)) = value; 462 return ds_request(task, base, size, ovfl, ds_bts);
153} 463}
154static inline unsigned long get_to_ip(char *base) 464
465int ds_request_pebs(struct task_struct *task, void *base, size_t size,
466 ds_ovfl_callback_t ovfl)
155{ 467{
156 return *(unsigned long *)(base + ds_cfg.to_ip.offset); 468 return ds_request(task, base, size, ovfl, ds_pebs);
157} 469}
158static inline void set_to_ip(char *base, unsigned long value) 470
471static int ds_release(struct task_struct *task, enum ds_qualifier qual)
159{ 472{
160 (*(unsigned long *)(base + ds_cfg.to_ip.offset)) = value; 473 struct ds_context *context;
474 int error;
475
476 context = ds_get_context(task);
477 error = ds_validate_access(context, qual);
478 if (error < 0)
479 goto out;
480
481 kfree(context->buffer[qual]);
482 context->buffer[qual] = NULL;
483
484 current->mm->total_vm -= context->pages[qual];
485 current->mm->locked_vm -= context->pages[qual];
486 context->pages[qual] = 0;
487 context->owner[qual] = NULL;
488
489 /*
490 * we put the context twice:
491 * once for the ds_get_context
492 * once for the corresponding ds_request
493 */
494 ds_put_context(context);
495 out:
496 ds_put_context(context);
497 return error;
161} 498}
162static inline unsigned char get_info_type(char *base) 499
500int ds_release_bts(struct task_struct *task)
163{ 501{
164 return *(unsigned char *)(base + ds_cfg.info_type.offset); 502 return ds_release(task, ds_bts);
165} 503}
166static inline void set_info_type(char *base, unsigned char value) 504
505int ds_release_pebs(struct task_struct *task)
167{ 506{
168 (*(unsigned char *)(base + ds_cfg.info_type.offset)) = value; 507 return ds_release(task, ds_pebs);
169} 508}
170static inline unsigned long get_info_data(char *base) 509
510static int ds_get_index(struct task_struct *task, size_t *pos,
511 enum ds_qualifier qual)
171{ 512{
172 return *(unsigned long *)(base + ds_cfg.info_data.offset); 513 struct ds_context *context;
514 unsigned long base, index;
515 int error;
516
517 context = ds_get_context(task);
518 error = ds_validate_access(context, qual);
519 if (error < 0)
520 goto out;
521
522 base = ds_get(context->ds, qual, ds_buffer_base);
523 index = ds_get(context->ds, qual, ds_index);
524
525 error = ((index - base) / ds_cfg.sizeof_rec[qual]);
526 if (pos)
527 *pos = error;
528 out:
529 ds_put_context(context);
530 return error;
173} 531}
174static inline void set_info_data(char *base, unsigned long value) 532
533int ds_get_bts_index(struct task_struct *task, size_t *pos)
175{ 534{
176 (*(unsigned long *)(base + ds_cfg.info_data.offset)) = value; 535 return ds_get_index(task, pos, ds_bts);
177} 536}
178 537
538int ds_get_pebs_index(struct task_struct *task, size_t *pos)
539{
540 return ds_get_index(task, pos, ds_pebs);
541}
179 542
180int ds_allocate(void **dsp, size_t bts_size_in_bytes) 543static int ds_get_end(struct task_struct *task, size_t *pos,
544 enum ds_qualifier qual)
181{ 545{
182 size_t bts_size_in_records; 546 struct ds_context *context;
183 unsigned long bts; 547 unsigned long base, end;
184 void *ds; 548 int error;
549
550 context = ds_get_context(task);
551 error = ds_validate_access(context, qual);
552 if (error < 0)
553 goto out;
554
555 base = ds_get(context->ds, qual, ds_buffer_base);
556 end = ds_get(context->ds, qual, ds_absolute_maximum);
557
558 error = ((end - base) / ds_cfg.sizeof_rec[qual]);
559 if (pos)
560 *pos = error;
561 out:
562 ds_put_context(context);
563 return error;
564}
185 565
186 if (!ds_cfg.sizeof_ds || !ds_cfg.sizeof_bts) 566int ds_get_bts_end(struct task_struct *task, size_t *pos)
187 return -EOPNOTSUPP; 567{
568 return ds_get_end(task, pos, ds_bts);
569}
188 570
189 if (bts_size_in_bytes < 0) 571int ds_get_pebs_end(struct task_struct *task, size_t *pos)
190 return -EINVAL; 572{
573 return ds_get_end(task, pos, ds_pebs);
574}
191 575
192 bts_size_in_records = 576static int ds_access(struct task_struct *task, size_t index,
193 bts_size_in_bytes / ds_cfg.sizeof_bts; 577 const void **record, enum ds_qualifier qual)
194 bts_size_in_bytes = 578{
195 bts_size_in_records * ds_cfg.sizeof_bts; 579 struct ds_context *context;
580 unsigned long base, idx;
581 int error;
196 582
197 if (bts_size_in_bytes <= 0) 583 if (!record)
198 return -EINVAL; 584 return -EINVAL;
199 585
200 bts = (unsigned long)kzalloc(bts_size_in_bytes, GFP_KERNEL); 586 context = ds_get_context(task);
201 587 error = ds_validate_access(context, qual);
202 if (!bts) 588 if (error < 0)
203 return -ENOMEM; 589 goto out;
204 590
205 ds = kzalloc(ds_cfg.sizeof_ds, GFP_KERNEL); 591 base = ds_get(context->ds, qual, ds_buffer_base);
592 idx = base + (index * ds_cfg.sizeof_rec[qual]);
206 593
207 if (!ds) { 594 error = -EINVAL;
208 kfree((void *)bts); 595 if (idx > ds_get(context->ds, qual, ds_absolute_maximum))
209 return -ENOMEM; 596 goto out;
210 }
211
212 set_bts_buffer_base(ds, bts);
213 set_bts_index(ds, bts);
214 set_bts_absolute_maximum(ds, bts + bts_size_in_bytes);
215 set_bts_interrupt_threshold(ds, bts + bts_size_in_bytes + 1);
216 597
217 *dsp = ds; 598 *record = (const void *)idx;
218 return 0; 599 error = ds_cfg.sizeof_rec[qual];
600 out:
601 ds_put_context(context);
602 return error;
219} 603}
220 604
221int ds_free(void **dsp) 605int ds_access_bts(struct task_struct *task, size_t index, const void **record)
222{ 606{
223 if (*dsp) { 607 return ds_access(task, index, record, ds_bts);
224 kfree((void *)get_bts_buffer_base(*dsp));
225 kfree(*dsp);
226 *dsp = NULL;
227 }
228 return 0;
229} 608}
230 609
231int ds_get_bts_size(void *ds) 610int ds_access_pebs(struct task_struct *task, size_t index, const void **record)
232{ 611{
233 int size_in_bytes; 612 return ds_access(task, index, record, ds_pebs);
234
235 if (!ds_cfg.sizeof_ds || !ds_cfg.sizeof_bts)
236 return -EOPNOTSUPP;
237
238 if (!ds)
239 return 0;
240
241 size_in_bytes =
242 get_bts_absolute_maximum(ds) -
243 get_bts_buffer_base(ds);
244 return size_in_bytes;
245} 613}
246 614
247int ds_get_bts_end(void *ds) 615static int ds_write(struct task_struct *task, const void *record, size_t size,
616 enum ds_qualifier qual, int force)
248{ 617{
249 int size_in_bytes = ds_get_bts_size(ds); 618 struct ds_context *context;
250 619 int error;
251 if (size_in_bytes <= 0)
252 return size_in_bytes;
253 620
254 return size_in_bytes / ds_cfg.sizeof_bts; 621 if (!record)
255} 622 return -EINVAL;
256 623
257int ds_get_bts_index(void *ds) 624 error = -EPERM;
258{ 625 context = ds_get_context(task);
259 int index_offset_in_bytes; 626 if (!context)
627 goto out;
260 628
261 if (!ds_cfg.sizeof_ds || !ds_cfg.sizeof_bts) 629 if (!force) {
262 return -EOPNOTSUPP; 630 error = ds_validate_access(context, qual);
631 if (error < 0)
632 goto out;
633 }
263 634
264 index_offset_in_bytes = 635 error = 0;
265 get_bts_index(ds) - 636 while (size) {
266 get_bts_buffer_base(ds); 637 unsigned long base, index, end, write_end, int_th;
638 unsigned long write_size, adj_write_size;
639
640 /*
641 * write as much as possible without producing an
642 * overflow interrupt.
643 *
644 * interrupt_threshold must either be
645 * - bigger than absolute_maximum or
646 * - point to a record between buffer_base and absolute_maximum
647 *
648 * index points to a valid record.
649 */
650 base = ds_get(context->ds, qual, ds_buffer_base);
651 index = ds_get(context->ds, qual, ds_index);
652 end = ds_get(context->ds, qual, ds_absolute_maximum);
653 int_th = ds_get(context->ds, qual, ds_interrupt_threshold);
654
655 write_end = min(end, int_th);
656
657 /* if we are already beyond the interrupt threshold,
658 * we fill the entire buffer */
659 if (write_end <= index)
660 write_end = end;
661
662 if (write_end <= index)
663 goto out;
664
665 write_size = min((unsigned long) size, write_end - index);
666 memcpy((void *)index, record, write_size);
667
668 record = (const char *)record + write_size;
669 size -= write_size;
670 error += write_size;
671
672 adj_write_size = write_size / ds_cfg.sizeof_rec[qual];
673 adj_write_size *= ds_cfg.sizeof_rec[qual];
674
675 /* zero out trailing bytes */
676 memset((char *)index + write_size, 0,
677 adj_write_size - write_size);
678 index += adj_write_size;
679
680 if (index >= end)
681 index = base;
682 ds_set(context->ds, qual, ds_index, index);
683
684 if (index >= int_th)
685 ds_overflow(task, context, qual);
686 }
267 687
268 return index_offset_in_bytes / ds_cfg.sizeof_bts; 688 out:
689 ds_put_context(context);
690 return error;
269} 691}
270 692
271int ds_set_overflow(void *ds, int method) 693int ds_write_bts(struct task_struct *task, const void *record, size_t size)
272{ 694{
273 switch (method) { 695 return ds_write(task, record, size, ds_bts, /* force = */ 0);
274 case DS_O_SIGNAL:
275 return -EOPNOTSUPP;
276 case DS_O_WRAP:
277 return 0;
278 default:
279 return -EINVAL;
280 }
281} 696}
282 697
283int ds_get_overflow(void *ds) 698int ds_write_pebs(struct task_struct *task, const void *record, size_t size)
284{ 699{
285 return DS_O_WRAP; 700 return ds_write(task, record, size, ds_pebs, /* force = */ 0);
286} 701}
287 702
288int ds_clear(void *ds) 703int ds_unchecked_write_bts(struct task_struct *task,
704 const void *record, size_t size)
289{ 705{
290 int bts_size = ds_get_bts_size(ds); 706 return ds_write(task, record, size, ds_bts, /* force = */ 1);
291 unsigned long bts_base;
292
293 if (bts_size <= 0)
294 return bts_size;
295
296 bts_base = get_bts_buffer_base(ds);
297 memset((void *)bts_base, 0, bts_size);
298
299 set_bts_index(ds, bts_base);
300 return 0;
301} 707}
302 708
303int ds_read_bts(void *ds, int index, struct bts_struct *out) 709int ds_unchecked_write_pebs(struct task_struct *task,
710 const void *record, size_t size)
304{ 711{
305 void *bts; 712 return ds_write(task, record, size, ds_pebs, /* force = */ 1);
713}
306 714
307 if (!ds_cfg.sizeof_ds || !ds_cfg.sizeof_bts) 715static int ds_reset_or_clear(struct task_struct *task,
308 return -EOPNOTSUPP; 716 enum ds_qualifier qual, int clear)
717{
718 struct ds_context *context;
719 unsigned long base, end;
720 int error;
309 721
310 if (index < 0) 722 context = ds_get_context(task);
311 return -EINVAL; 723 error = ds_validate_access(context, qual);
724 if (error < 0)
725 goto out;
312 726
313 if (index >= ds_get_bts_size(ds)) 727 base = ds_get(context->ds, qual, ds_buffer_base);
314 return -EINVAL; 728 end = ds_get(context->ds, qual, ds_absolute_maximum);
315 729
316 bts = (void *)(get_bts_buffer_base(ds) + (index * ds_cfg.sizeof_bts)); 730 if (clear)
731 memset((void *)base, 0, end - base);
317 732
318 memset(out, 0, sizeof(*out)); 733 ds_set(context->ds, qual, ds_index, base);
319 if (get_from_ip(bts) == BTS_ESCAPE_ADDRESS) {
320 out->qualifier = get_info_type(bts);
321 out->variant.jiffies = get_info_data(bts);
322 } else {
323 out->qualifier = BTS_BRANCH;
324 out->variant.lbr.from_ip = get_from_ip(bts);
325 out->variant.lbr.to_ip = get_to_ip(bts);
326 }
327 734
328 return sizeof(*out);; 735 error = 0;
736 out:
737 ds_put_context(context);
738 return error;
329} 739}
330 740
331int ds_write_bts(void *ds, const struct bts_struct *in) 741int ds_reset_bts(struct task_struct *task)
332{ 742{
333 unsigned long bts; 743 return ds_reset_or_clear(task, ds_bts, /* clear = */ 0);
334 744}
335 if (!ds_cfg.sizeof_ds || !ds_cfg.sizeof_bts)
336 return -EOPNOTSUPP;
337
338 if (ds_get_bts_size(ds) <= 0)
339 return -ENXIO;
340 745
341 bts = get_bts_index(ds); 746int ds_reset_pebs(struct task_struct *task)
747{
748 return ds_reset_or_clear(task, ds_pebs, /* clear = */ 0);
749}
342 750
343 memset((void *)bts, 0, ds_cfg.sizeof_bts); 751int ds_clear_bts(struct task_struct *task)
344 switch (in->qualifier) { 752{
345 case BTS_INVALID: 753 return ds_reset_or_clear(task, ds_bts, /* clear = */ 1);
346 break; 754}
347 755
348 case BTS_BRANCH: 756int ds_clear_pebs(struct task_struct *task)
349 set_from_ip((void *)bts, in->variant.lbr.from_ip); 757{
350 set_to_ip((void *)bts, in->variant.lbr.to_ip); 758 return ds_reset_or_clear(task, ds_pebs, /* clear = */ 1);
351 break; 759}
352 760
353 case BTS_TASK_ARRIVES: 761int ds_get_pebs_reset(struct task_struct *task, u64 *value)
354 case BTS_TASK_DEPARTS: 762{
355 set_from_ip((void *)bts, BTS_ESCAPE_ADDRESS); 763 struct ds_context *context;
356 set_info_type((void *)bts, in->qualifier); 764 int error;
357 set_info_data((void *)bts, in->variant.jiffies);
358 break;
359 765
360 default: 766 if (!value)
361 return -EINVAL; 767 return -EINVAL;
362 }
363 768
364 bts = bts + ds_cfg.sizeof_bts; 769 context = ds_get_context(task);
365 if (bts >= get_bts_absolute_maximum(ds)) 770 error = ds_validate_access(context, ds_pebs);
366 bts = get_bts_buffer_base(ds); 771 if (error < 0)
367 set_bts_index(ds, bts); 772 goto out;
368 773
369 return ds_cfg.sizeof_bts; 774 *value = *(u64 *)(context->ds + (ds_cfg.sizeof_field * 8));
775
776 error = 0;
777 out:
778 ds_put_context(context);
779 return error;
370} 780}
371 781
372unsigned long ds_debugctl_mask(void) 782int ds_set_pebs_reset(struct task_struct *task, u64 value)
373{ 783{
374 return ds_cfg.debugctl_mask; 784 struct ds_context *context;
375} 785 int error;
376 786
377#ifdef __i386__ 787 context = ds_get_context(task);
378static const struct ds_configuration ds_cfg_netburst = { 788 error = ds_validate_access(context, ds_pebs);
379 .sizeof_ds = 9 * 4, 789 if (error < 0)
380 .bts_buffer_base = { 0, 4 }, 790 goto out;
381 .bts_index = { 4, 4 },
382 .bts_absolute_maximum = { 8, 4 },
383 .bts_interrupt_threshold = { 12, 4 },
384 .sizeof_bts = 3 * 4,
385 .from_ip = { 0, 4 },
386 .to_ip = { 4, 4 },
387 .info_type = { 4, 1 },
388 .info_data = { 8, 4 },
389 .debugctl_mask = (1<<2)|(1<<3)
390};
391 791
392static const struct ds_configuration ds_cfg_pentium_m = { 792 *(u64 *)(context->ds + (ds_cfg.sizeof_field * 8)) = value;
393 .sizeof_ds = 9 * 4, 793
394 .bts_buffer_base = { 0, 4 }, 794 error = 0;
395 .bts_index = { 4, 4 }, 795 out:
396 .bts_absolute_maximum = { 8, 4 }, 796 ds_put_context(context);
397 .bts_interrupt_threshold = { 12, 4 }, 797 return error;
398 .sizeof_bts = 3 * 4, 798}
399 .from_ip = { 0, 4 }, 799
400 .to_ip = { 4, 4 }, 800static const struct ds_configuration ds_cfg_var = {
401 .info_type = { 4, 1 }, 801 .sizeof_ds = sizeof(long) * 12,
402 .info_data = { 8, 4 }, 802 .sizeof_field = sizeof(long),
403 .debugctl_mask = (1<<6)|(1<<7) 803 .sizeof_rec[ds_bts] = sizeof(long) * 3,
804 .sizeof_rec[ds_pebs] = sizeof(long) * 10
404}; 805};
405#endif /* _i386_ */ 806static const struct ds_configuration ds_cfg_64 = {
406 807 .sizeof_ds = 8 * 12,
407static const struct ds_configuration ds_cfg_core2 = { 808 .sizeof_field = 8,
408 .sizeof_ds = 9 * 8, 809 .sizeof_rec[ds_bts] = 8 * 3,
409 .bts_buffer_base = { 0, 8 }, 810 .sizeof_rec[ds_pebs] = 8 * 10
410 .bts_index = { 8, 8 },
411 .bts_absolute_maximum = { 16, 8 },
412 .bts_interrupt_threshold = { 24, 8 },
413 .sizeof_bts = 3 * 8,
414 .from_ip = { 0, 8 },
415 .to_ip = { 8, 8 },
416 .info_type = { 8, 1 },
417 .info_data = { 16, 8 },
418 .debugctl_mask = (1<<6)|(1<<7)|(1<<9)
419}; 811};
420 812
421static inline void 813static inline void
@@ -429,14 +821,13 @@ void __cpuinit ds_init_intel(struct cpuinfo_x86 *c)
429 switch (c->x86) { 821 switch (c->x86) {
430 case 0x6: 822 case 0x6:
431 switch (c->x86_model) { 823 switch (c->x86_model) {
432#ifdef __i386__
433 case 0xD: 824 case 0xD:
434 case 0xE: /* Pentium M */ 825 case 0xE: /* Pentium M */
435 ds_configure(&ds_cfg_pentium_m); 826 ds_configure(&ds_cfg_var);
436 break; 827 break;
437#endif /* _i386_ */
438 case 0xF: /* Core2 */ 828 case 0xF: /* Core2 */
439 ds_configure(&ds_cfg_core2); 829 case 0x1C: /* Atom */
830 ds_configure(&ds_cfg_64);
440 break; 831 break;
441 default: 832 default:
442 /* sorry, don't know about them */ 833 /* sorry, don't know about them */
@@ -445,13 +836,11 @@ void __cpuinit ds_init_intel(struct cpuinfo_x86 *c)
445 break; 836 break;
446 case 0xF: 837 case 0xF:
447 switch (c->x86_model) { 838 switch (c->x86_model) {
448#ifdef __i386__
449 case 0x0: 839 case 0x0:
450 case 0x1: 840 case 0x1:
451 case 0x2: /* Netburst */ 841 case 0x2: /* Netburst */
452 ds_configure(&ds_cfg_netburst); 842 ds_configure(&ds_cfg_var);
453 break; 843 break;
454#endif /* _i386_ */
455 default: 844 default:
456 /* sorry, don't know about them */ 845 /* sorry, don't know about them */
457 break; 846 break;
@@ -462,3 +851,14 @@ void __cpuinit ds_init_intel(struct cpuinfo_x86 *c)
462 break; 851 break;
463 } 852 }
464} 853}
854
855void ds_free(struct ds_context *context)
856{
857 /* This is called when the task owning the parameter context
858 * is dying. There should not be any user of that context left
859 * to disturb us, anymore. */
860 unsigned long leftovers = context->count;
861 while (leftovers--)
862 ds_put_context(context);
863}
864#endif /* CONFIG_X86_DS */
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index 9af89078f7b..66e48aa2dd1 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -1203,7 +1203,7 @@ static int __init parse_memmap_opt(char *p)
1203 if (!p) 1203 if (!p)
1204 return -EINVAL; 1204 return -EINVAL;
1205 1205
1206 if (!strcmp(p, "exactmap")) { 1206 if (!strncmp(p, "exactmap", 8)) {
1207#ifdef CONFIG_CRASH_DUMP 1207#ifdef CONFIG_CRASH_DUMP
1208 /* 1208 /*
1209 * If we are doing a crash dump, we still need to know 1209 * If we are doing a crash dump, we still need to know
diff --git a/arch/x86/kernel/efi.c b/arch/x86/kernel/efi.c
index 06cc8d4254b..945a31cdd81 100644
--- a/arch/x86/kernel/efi.c
+++ b/arch/x86/kernel/efi.c
@@ -414,9 +414,11 @@ void __init efi_init(void)
414 if (memmap.map == NULL) 414 if (memmap.map == NULL)
415 printk(KERN_ERR "Could not map the EFI memory map!\n"); 415 printk(KERN_ERR "Could not map the EFI memory map!\n");
416 memmap.map_end = memmap.map + (memmap.nr_map * memmap.desc_size); 416 memmap.map_end = memmap.map + (memmap.nr_map * memmap.desc_size);
417
417 if (memmap.desc_size != sizeof(efi_memory_desc_t)) 418 if (memmap.desc_size != sizeof(efi_memory_desc_t))
418 printk(KERN_WARNING "Kernel-defined memdesc" 419 printk(KERN_WARNING
419 "doesn't match the one from EFI!\n"); 420 "Kernel-defined memdesc doesn't match the one from EFI!\n");
421
420 if (add_efi_memmap) 422 if (add_efi_memmap)
421 do_add_efi_memmap(); 423 do_add_efi_memmap();
422 424
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index 89434d43960..cf3a0b2d005 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -275,9 +275,9 @@ ENTRY(native_usergs_sysret64)
275ENTRY(ret_from_fork) 275ENTRY(ret_from_fork)
276 CFI_DEFAULT_STACK 276 CFI_DEFAULT_STACK
277 push kernel_eflags(%rip) 277 push kernel_eflags(%rip)
278 CFI_ADJUST_CFA_OFFSET 4 278 CFI_ADJUST_CFA_OFFSET 8
279 popf # reset kernel eflags 279 popf # reset kernel eflags
280 CFI_ADJUST_CFA_OFFSET -4 280 CFI_ADJUST_CFA_OFFSET -8
281 call schedule_tail 281 call schedule_tail
282 GET_THREAD_INFO(%rcx) 282 GET_THREAD_INFO(%rcx)
283 testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT),TI_flags(%rcx) 283 testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT),TI_flags(%rcx)
diff --git a/arch/x86/kernel/genx2apic_uv_x.c b/arch/x86/kernel/genx2apic_uv_x.c
index 2d7e307c777..bfa837cb16b 100644
--- a/arch/x86/kernel/genx2apic_uv_x.c
+++ b/arch/x86/kernel/genx2apic_uv_x.c
@@ -293,7 +293,9 @@ static __init void uv_rtc_init(void)
293 sn_rtc_cycles_per_second = ticks_per_sec; 293 sn_rtc_cycles_per_second = ticks_per_sec;
294} 294}
295 295
296static __init void uv_system_init(void) 296static bool uv_system_inited;
297
298void __init uv_system_init(void)
297{ 299{
298 union uvh_si_addr_map_config_u m_n_config; 300 union uvh_si_addr_map_config_u m_n_config;
299 union uvh_node_id_u node_id; 301 union uvh_node_id_u node_id;
@@ -383,6 +385,7 @@ static __init void uv_system_init(void)
383 map_mmr_high(max_pnode); 385 map_mmr_high(max_pnode);
384 map_config_high(max_pnode); 386 map_config_high(max_pnode);
385 map_mmioh_high(max_pnode); 387 map_mmioh_high(max_pnode);
388 uv_system_inited = true;
386} 389}
387 390
388/* 391/*
@@ -391,8 +394,7 @@ static __init void uv_system_init(void)
391 */ 394 */
392void __cpuinit uv_cpu_init(void) 395void __cpuinit uv_cpu_init(void)
393{ 396{
394 if (!uv_node_to_blade) 397 BUG_ON(!uv_system_inited);
395 uv_system_init();
396 398
397 uv_blade_info[uv_numa_blade_id()].nr_online_cpus++; 399 uv_blade_info[uv_numa_blade_id()].nr_online_cpus++;
398 400
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index 9bfc4d72fb2..d16084f9064 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -108,12 +108,11 @@ void __init x86_64_start_kernel(char * real_mode_data)
108 } 108 }
109 load_idt((const struct desc_ptr *)&idt_descr); 109 load_idt((const struct desc_ptr *)&idt_descr);
110 110
111 early_printk("Kernel alive\n"); 111 if (console_loglevel == 10)
112 early_printk("Kernel alive\n");
112 113
113 x86_64_init_pda(); 114 x86_64_init_pda();
114 115
115 early_printk("Kernel really alive\n");
116
117 x86_64_start_reservations(real_mode_data); 116 x86_64_start_reservations(real_mode_data);
118} 117}
119 118
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index 59fd3b6b130..73deaffadd0 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -210,8 +210,8 @@ static void hpet_legacy_clockevent_register(void)
210 /* Calculate the min / max delta */ 210 /* Calculate the min / max delta */
211 hpet_clockevent.max_delta_ns = clockevent_delta2ns(0x7FFFFFFF, 211 hpet_clockevent.max_delta_ns = clockevent_delta2ns(0x7FFFFFFF,
212 &hpet_clockevent); 212 &hpet_clockevent);
213 hpet_clockevent.min_delta_ns = clockevent_delta2ns(0x30, 213 /* 5 usec minimum reprogramming delta. */
214 &hpet_clockevent); 214 hpet_clockevent.min_delta_ns = 5000;
215 215
216 /* 216 /*
217 * Start hpet with the boot cpu mask and make it 217 * Start hpet with the boot cpu mask and make it
@@ -270,15 +270,22 @@ static void hpet_legacy_set_mode(enum clock_event_mode mode,
270} 270}
271 271
272static int hpet_legacy_next_event(unsigned long delta, 272static int hpet_legacy_next_event(unsigned long delta,
273 struct clock_event_device *evt) 273 struct clock_event_device *evt)
274{ 274{
275 unsigned long cnt; 275 u32 cnt;
276 276
277 cnt = hpet_readl(HPET_COUNTER); 277 cnt = hpet_readl(HPET_COUNTER);
278 cnt += delta; 278 cnt += (u32) delta;
279 hpet_writel(cnt, HPET_T0_CMP); 279 hpet_writel(cnt, HPET_T0_CMP);
280 280
281 return ((long)(hpet_readl(HPET_COUNTER) - cnt ) > 0) ? -ETIME : 0; 281 /*
282 * We need to read back the CMP register to make sure that
283 * what we wrote hit the chip before we compare it to the
284 * counter.
285 */
286 WARN_ON((u32)hpet_readl(HPET_T0_CMP) != cnt);
287
288 return (s32)((u32)hpet_readl(HPET_COUNTER) - cnt) >= 0 ? -ETIME : 0;
282} 289}
283 290
284/* 291/*
diff --git a/arch/x86/kernel/io_delay.c b/arch/x86/kernel/io_delay.c
index 1c3a66a67f8..720d2607aac 100644
--- a/arch/x86/kernel/io_delay.c
+++ b/arch/x86/kernel/io_delay.c
@@ -92,6 +92,14 @@ static struct dmi_system_id __initdata io_delay_0xed_port_dmi_table[] = {
92 DMI_MATCH(DMI_BOARD_NAME, "30BF") 92 DMI_MATCH(DMI_BOARD_NAME, "30BF")
93 } 93 }
94 }, 94 },
95 {
96 .callback = dmi_io_delay_0xed_port,
97 .ident = "Presario F700",
98 .matches = {
99 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"),
100 DMI_MATCH(DMI_BOARD_NAME, "30D3")
101 }
102 },
95 { } 103 { }
96}; 104};
97 105
diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
index 50e5e4a31c8..19191430274 100644
--- a/arch/x86/kernel/ioport.c
+++ b/arch/x86/kernel/ioport.c
@@ -14,6 +14,7 @@
14#include <linux/slab.h> 14#include <linux/slab.h>
15#include <linux/thread_info.h> 15#include <linux/thread_info.h>
16#include <linux/syscalls.h> 16#include <linux/syscalls.h>
17#include <asm/syscalls.h>
17 18
18/* Set EXTENT bits starting at BASE in BITMAP to value TURN_ON. */ 19/* Set EXTENT bits starting at BASE in BITMAP to value TURN_ON. */
19static void set_bitmap(unsigned long *bitmap, unsigned int base, 20static void set_bitmap(unsigned long *bitmap, unsigned int base,
diff --git a/arch/x86/kernel/ipi.c b/arch/x86/kernel/ipi.c
index 3f7537b669d..f1c688e46f3 100644
--- a/arch/x86/kernel/ipi.c
+++ b/arch/x86/kernel/ipi.c
@@ -20,6 +20,8 @@
20 20
21#ifdef CONFIG_X86_32 21#ifdef CONFIG_X86_32
22#include <mach_apic.h> 22#include <mach_apic.h>
23#include <mach_ipi.h>
24
23/* 25/*
24 * the following functions deal with sending IPIs between CPUs. 26 * the following functions deal with sending IPIs between CPUs.
25 * 27 *
@@ -147,7 +149,6 @@ void send_IPI_mask_sequence(cpumask_t mask, int vector)
147} 149}
148 150
149/* must come after the send_IPI functions above for inlining */ 151/* must come after the send_IPI functions above for inlining */
150#include <mach_ipi.h>
151static int convert_apicid_to_cpu(int apic_id) 152static int convert_apicid_to_cpu(int apic_id)
152{ 153{
153 int i; 154 int i;
diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
index 1cf8c1fcc08..b71e02d42f4 100644
--- a/arch/x86/kernel/irq_32.c
+++ b/arch/x86/kernel/irq_32.c
@@ -325,7 +325,7 @@ skip:
325 for_each_online_cpu(j) 325 for_each_online_cpu(j)
326 seq_printf(p, "%10u ", 326 seq_printf(p, "%10u ",
327 per_cpu(irq_stat,j).irq_call_count); 327 per_cpu(irq_stat,j).irq_call_count);
328 seq_printf(p, " function call interrupts\n"); 328 seq_printf(p, " Function call interrupts\n");
329 seq_printf(p, "TLB: "); 329 seq_printf(p, "TLB: ");
330 for_each_online_cpu(j) 330 for_each_online_cpu(j)
331 seq_printf(p, "%10u ", 331 seq_printf(p, "%10u ",
diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
index 1f78b238d8d..f065fe9071b 100644
--- a/arch/x86/kernel/irq_64.c
+++ b/arch/x86/kernel/irq_64.c
@@ -129,7 +129,7 @@ skip:
129 seq_printf(p, "CAL: "); 129 seq_printf(p, "CAL: ");
130 for_each_online_cpu(j) 130 for_each_online_cpu(j)
131 seq_printf(p, "%10u ", cpu_pda(j)->irq_call_count); 131 seq_printf(p, "%10u ", cpu_pda(j)->irq_call_count);
132 seq_printf(p, " function call interrupts\n"); 132 seq_printf(p, " Function call interrupts\n");
133 seq_printf(p, "TLB: "); 133 seq_printf(p, "TLB: ");
134 for_each_online_cpu(j) 134 for_each_online_cpu(j)
135 seq_printf(p, "%10u ", cpu_pda(j)->irq_tlb_count); 135 seq_printf(p, "%10u ", cpu_pda(j)->irq_tlb_count);
diff --git a/arch/x86/kernel/kdebugfs.c b/arch/x86/kernel/kdebugfs.c
index f2d43bc7551..ff7d3b0124f 100644
--- a/arch/x86/kernel/kdebugfs.c
+++ b/arch/x86/kernel/kdebugfs.c
@@ -139,6 +139,7 @@ static int __init create_setup_data_nodes(struct dentry *parent)
139 if (PageHighMem(pg)) { 139 if (PageHighMem(pg)) {
140 data = ioremap_cache(pa_data, sizeof(*data)); 140 data = ioremap_cache(pa_data, sizeof(*data));
141 if (!data) { 141 if (!data) {
142 kfree(node);
142 error = -ENXIO; 143 error = -ENXIO;
143 goto err_dir; 144 goto err_dir;
144 } 145 }
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
index f47f0eb886b..8282a213968 100644
--- a/arch/x86/kernel/kgdb.c
+++ b/arch/x86/kernel/kgdb.c
@@ -69,6 +69,9 @@ static int gdb_x86vector = -1;
69 */ 69 */
70void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs) 70void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
71{ 71{
72#ifndef CONFIG_X86_32
73 u32 *gdb_regs32 = (u32 *)gdb_regs;
74#endif
72 gdb_regs[GDB_AX] = regs->ax; 75 gdb_regs[GDB_AX] = regs->ax;
73 gdb_regs[GDB_BX] = regs->bx; 76 gdb_regs[GDB_BX] = regs->bx;
74 gdb_regs[GDB_CX] = regs->cx; 77 gdb_regs[GDB_CX] = regs->cx;
@@ -76,9 +79,9 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
76 gdb_regs[GDB_SI] = regs->si; 79 gdb_regs[GDB_SI] = regs->si;
77 gdb_regs[GDB_DI] = regs->di; 80 gdb_regs[GDB_DI] = regs->di;
78 gdb_regs[GDB_BP] = regs->bp; 81 gdb_regs[GDB_BP] = regs->bp;
79 gdb_regs[GDB_PS] = regs->flags;
80 gdb_regs[GDB_PC] = regs->ip; 82 gdb_regs[GDB_PC] = regs->ip;
81#ifdef CONFIG_X86_32 83#ifdef CONFIG_X86_32
84 gdb_regs[GDB_PS] = regs->flags;
82 gdb_regs[GDB_DS] = regs->ds; 85 gdb_regs[GDB_DS] = regs->ds;
83 gdb_regs[GDB_ES] = regs->es; 86 gdb_regs[GDB_ES] = regs->es;
84 gdb_regs[GDB_CS] = regs->cs; 87 gdb_regs[GDB_CS] = regs->cs;
@@ -94,6 +97,9 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
94 gdb_regs[GDB_R13] = regs->r13; 97 gdb_regs[GDB_R13] = regs->r13;
95 gdb_regs[GDB_R14] = regs->r14; 98 gdb_regs[GDB_R14] = regs->r14;
96 gdb_regs[GDB_R15] = regs->r15; 99 gdb_regs[GDB_R15] = regs->r15;
100 gdb_regs32[GDB_PS] = regs->flags;
101 gdb_regs32[GDB_CS] = regs->cs;
102 gdb_regs32[GDB_SS] = regs->ss;
97#endif 103#endif
98 gdb_regs[GDB_SP] = regs->sp; 104 gdb_regs[GDB_SP] = regs->sp;
99} 105}
@@ -112,6 +118,9 @@ void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs)
112 */ 118 */
113void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p) 119void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p)
114{ 120{
121#ifndef CONFIG_X86_32
122 u32 *gdb_regs32 = (u32 *)gdb_regs;
123#endif
115 gdb_regs[GDB_AX] = 0; 124 gdb_regs[GDB_AX] = 0;
116 gdb_regs[GDB_BX] = 0; 125 gdb_regs[GDB_BX] = 0;
117 gdb_regs[GDB_CX] = 0; 126 gdb_regs[GDB_CX] = 0;
@@ -129,8 +138,10 @@ void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p)
129 gdb_regs[GDB_FS] = 0xFFFF; 138 gdb_regs[GDB_FS] = 0xFFFF;
130 gdb_regs[GDB_GS] = 0xFFFF; 139 gdb_regs[GDB_GS] = 0xFFFF;
131#else 140#else
132 gdb_regs[GDB_PS] = *(unsigned long *)(p->thread.sp + 8); 141 gdb_regs32[GDB_PS] = *(unsigned long *)(p->thread.sp + 8);
133 gdb_regs[GDB_PC] = 0; 142 gdb_regs32[GDB_CS] = __KERNEL_CS;
143 gdb_regs32[GDB_SS] = __KERNEL_DS;
144 gdb_regs[GDB_PC] = p->thread.ip;
134 gdb_regs[GDB_R8] = 0; 145 gdb_regs[GDB_R8] = 0;
135 gdb_regs[GDB_R9] = 0; 146 gdb_regs[GDB_R9] = 0;
136 gdb_regs[GDB_R10] = 0; 147 gdb_regs[GDB_R10] = 0;
@@ -153,6 +164,9 @@ void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *p)
153 */ 164 */
154void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs) 165void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs)
155{ 166{
167#ifndef CONFIG_X86_32
168 u32 *gdb_regs32 = (u32 *)gdb_regs;
169#endif
156 regs->ax = gdb_regs[GDB_AX]; 170 regs->ax = gdb_regs[GDB_AX];
157 regs->bx = gdb_regs[GDB_BX]; 171 regs->bx = gdb_regs[GDB_BX];
158 regs->cx = gdb_regs[GDB_CX]; 172 regs->cx = gdb_regs[GDB_CX];
@@ -160,9 +174,9 @@ void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs)
160 regs->si = gdb_regs[GDB_SI]; 174 regs->si = gdb_regs[GDB_SI];
161 regs->di = gdb_regs[GDB_DI]; 175 regs->di = gdb_regs[GDB_DI];
162 regs->bp = gdb_regs[GDB_BP]; 176 regs->bp = gdb_regs[GDB_BP];
163 regs->flags = gdb_regs[GDB_PS];
164 regs->ip = gdb_regs[GDB_PC]; 177 regs->ip = gdb_regs[GDB_PC];
165#ifdef CONFIG_X86_32 178#ifdef CONFIG_X86_32
179 regs->flags = gdb_regs[GDB_PS];
166 regs->ds = gdb_regs[GDB_DS]; 180 regs->ds = gdb_regs[GDB_DS];
167 regs->es = gdb_regs[GDB_ES]; 181 regs->es = gdb_regs[GDB_ES];
168 regs->cs = gdb_regs[GDB_CS]; 182 regs->cs = gdb_regs[GDB_CS];
@@ -175,6 +189,9 @@ void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs)
175 regs->r13 = gdb_regs[GDB_R13]; 189 regs->r13 = gdb_regs[GDB_R13];
176 regs->r14 = gdb_regs[GDB_R14]; 190 regs->r14 = gdb_regs[GDB_R14];
177 regs->r15 = gdb_regs[GDB_R15]; 191 regs->r15 = gdb_regs[GDB_R15];
192 regs->flags = gdb_regs32[GDB_PS];
193 regs->cs = gdb_regs32[GDB_CS];
194 regs->ss = gdb_regs32[GDB_SS];
178#endif 195#endif
179} 196}
180 197
@@ -378,10 +395,8 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code,
378 if (remcomInBuffer[0] == 's') { 395 if (remcomInBuffer[0] == 's') {
379 linux_regs->flags |= X86_EFLAGS_TF; 396 linux_regs->flags |= X86_EFLAGS_TF;
380 kgdb_single_step = 1; 397 kgdb_single_step = 1;
381 if (kgdb_contthread) { 398 atomic_set(&kgdb_cpu_doing_single_step,
382 atomic_set(&kgdb_cpu_doing_single_step, 399 raw_smp_processor_id());
383 raw_smp_processor_id());
384 }
385 } 400 }
386 401
387 get_debugreg(dr6, 6); 402 get_debugreg(dr6, 6);
@@ -466,9 +481,15 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd)
466 481
467 case DIE_DEBUG: 482 case DIE_DEBUG:
468 if (atomic_read(&kgdb_cpu_doing_single_step) == 483 if (atomic_read(&kgdb_cpu_doing_single_step) ==
469 raw_smp_processor_id() && 484 raw_smp_processor_id()) {
470 user_mode(regs)) 485 if (user_mode(regs))
471 return single_step_cont(regs, args); 486 return single_step_cont(regs, args);
487 break;
488 } else if (test_thread_flag(TIF_SINGLESTEP))
489 /* This means a user thread is single stepping
490 * a system call which should be ignored
491 */
492 return NOTIFY_DONE;
472 /* fall through */ 493 /* fall through */
473 default: 494 default:
474 if (user_mode(regs)) 495 if (user_mode(regs))
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 8b7a3cf37d2..478bca986ec 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -178,7 +178,7 @@ static void kvm_flush_tlb(void)
178 kvm_deferred_mmu_op(&ftlb, sizeof ftlb); 178 kvm_deferred_mmu_op(&ftlb, sizeof ftlb);
179} 179}
180 180
181static void kvm_release_pt(u32 pfn) 181static void kvm_release_pt(unsigned long pfn)
182{ 182{
183 struct kvm_mmu_op_release_pt rpt = { 183 struct kvm_mmu_op_release_pt rpt = {
184 .header.op = KVM_MMU_OP_RELEASE_PT, 184 .header.op = KVM_MMU_OP_RELEASE_PT,
diff --git a/arch/x86/kernel/ldt.c b/arch/x86/kernel/ldt.c
index b68e21f06f4..0ed5f939b90 100644
--- a/arch/x86/kernel/ldt.c
+++ b/arch/x86/kernel/ldt.c
@@ -18,6 +18,7 @@
18#include <asm/ldt.h> 18#include <asm/ldt.h>
19#include <asm/desc.h> 19#include <asm/desc.h>
20#include <asm/mmu_context.h> 20#include <asm/mmu_context.h>
21#include <asm/syscalls.h>
21 22
22#ifdef CONFIG_SMP 23#ifdef CONFIG_SMP
23static void flush_ldt(void *current_mm) 24static void flush_ldt(void *current_mm)
diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c
index e4393808688..2e2af5d1819 100644
--- a/arch/x86/kernel/msr.c
+++ b/arch/x86/kernel/msr.c
@@ -72,21 +72,28 @@ static ssize_t msr_read(struct file *file, char __user *buf,
72 u32 data[2]; 72 u32 data[2];
73 u32 reg = *ppos; 73 u32 reg = *ppos;
74 int cpu = iminor(file->f_path.dentry->d_inode); 74 int cpu = iminor(file->f_path.dentry->d_inode);
75 int err; 75 int err = 0;
76 ssize_t bytes = 0;
76 77
77 if (count % 8) 78 if (count % 8)
78 return -EINVAL; /* Invalid chunk size */ 79 return -EINVAL; /* Invalid chunk size */
79 80
80 for (; count; count -= 8) { 81 for (; count; count -= 8) {
81 err = rdmsr_safe_on_cpu(cpu, reg, &data[0], &data[1]); 82 err = rdmsr_safe_on_cpu(cpu, reg, &data[0], &data[1]);
82 if (err) 83 if (err) {
83 return -EIO; 84 if (err == -EFAULT) /* Fix idiotic error code */
84 if (copy_to_user(tmp, &data, 8)) 85 err = -EIO;
85 return -EFAULT; 86 break;
87 }
88 if (copy_to_user(tmp, &data, 8)) {
89 err = -EFAULT;
90 break;
91 }
86 tmp += 2; 92 tmp += 2;
93 bytes += 8;
87 } 94 }
88 95
89 return ((char __user *)tmp) - buf; 96 return bytes ? bytes : err;
90} 97}
91 98
92static ssize_t msr_write(struct file *file, const char __user *buf, 99static ssize_t msr_write(struct file *file, const char __user *buf,
@@ -96,21 +103,28 @@ static ssize_t msr_write(struct file *file, const char __user *buf,
96 u32 data[2]; 103 u32 data[2];
97 u32 reg = *ppos; 104 u32 reg = *ppos;
98 int cpu = iminor(file->f_path.dentry->d_inode); 105 int cpu = iminor(file->f_path.dentry->d_inode);
99 int err; 106 int err = 0;
107 ssize_t bytes = 0;
100 108
101 if (count % 8) 109 if (count % 8)
102 return -EINVAL; /* Invalid chunk size */ 110 return -EINVAL; /* Invalid chunk size */
103 111
104 for (; count; count -= 8) { 112 for (; count; count -= 8) {
105 if (copy_from_user(&data, tmp, 8)) 113 if (copy_from_user(&data, tmp, 8)) {
106 return -EFAULT; 114 err = -EFAULT;
115 break;
116 }
107 err = wrmsr_safe_on_cpu(cpu, reg, data[0], data[1]); 117 err = wrmsr_safe_on_cpu(cpu, reg, data[0], data[1]);
108 if (err) 118 if (err) {
109 return -EIO; 119 if (err == -EFAULT) /* Fix idiotic error code */
120 err = -EIO;
121 break;
122 }
110 tmp += 2; 123 tmp += 2;
124 bytes += 8;
111 } 125 }
112 126
113 return ((char __user *)tmp) - buf; 127 return bytes ? bytes : err;
114} 128}
115 129
116static int msr_open(struct inode *inode, struct file *file) 130static int msr_open(struct inode *inode, struct file *file)
diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
index abb78a2cc4a..2c97f07f1c2 100644
--- a/arch/x86/kernel/nmi.c
+++ b/arch/x86/kernel/nmi.c
@@ -299,6 +299,15 @@ void acpi_nmi_disable(void)
299 on_each_cpu(__acpi_nmi_disable, NULL, 1); 299 on_each_cpu(__acpi_nmi_disable, NULL, 1);
300} 300}
301 301
302/*
303 * This function is called as soon the LAPIC NMI watchdog driver has everything
304 * in place and it's ready to check if the NMIs belong to the NMI watchdog
305 */
306void cpu_nmi_set_wd_enabled(void)
307{
308 __get_cpu_var(wd_enabled) = 1;
309}
310
302void setup_apic_nmi_watchdog(void *unused) 311void setup_apic_nmi_watchdog(void *unused)
303{ 312{
304 if (__get_cpu_var(wd_enabled)) 313 if (__get_cpu_var(wd_enabled))
@@ -311,8 +320,6 @@ void setup_apic_nmi_watchdog(void *unused)
311 320
312 switch (nmi_watchdog) { 321 switch (nmi_watchdog) {
313 case NMI_LOCAL_APIC: 322 case NMI_LOCAL_APIC:
314 /* enable it before to avoid race with handler */
315 __get_cpu_var(wd_enabled) = 1;
316 if (lapic_watchdog_init(nmi_hz) < 0) { 323 if (lapic_watchdog_init(nmi_hz) < 0) {
317 __get_cpu_var(wd_enabled) = 0; 324 __get_cpu_var(wd_enabled) = 0;
318 return; 325 return;
diff --git a/arch/x86/kernel/numaq_32.c b/arch/x86/kernel/numaq_32.c
index b8c45610b20..eecc8c18f01 100644
--- a/arch/x86/kernel/numaq_32.c
+++ b/arch/x86/kernel/numaq_32.c
@@ -73,7 +73,7 @@ static void __init smp_dump_qct(void)
73} 73}
74 74
75 75
76void __init numaq_tsc_disable(void) 76void __cpuinit numaq_tsc_disable(void)
77{ 77{
78 if (!found_numaq) 78 if (!found_numaq)
79 return; 79 return;
diff --git a/arch/x86/kernel/olpc.c b/arch/x86/kernel/olpc.c
index 3e667227480..7a13fac63a1 100644
--- a/arch/x86/kernel/olpc.c
+++ b/arch/x86/kernel/olpc.c
@@ -190,12 +190,12 @@ EXPORT_SYMBOL_GPL(olpc_ec_cmd);
190static void __init platform_detect(void) 190static void __init platform_detect(void)
191{ 191{
192 size_t propsize; 192 size_t propsize;
193 u32 rev; 193 __be32 rev;
194 194
195 if (ofw("getprop", 4, 1, NULL, "board-revision-int", &rev, 4, 195 if (ofw("getprop", 4, 1, NULL, "board-revision-int", &rev, 4,
196 &propsize) || propsize != 4) { 196 &propsize) || propsize != 4) {
197 printk(KERN_ERR "ofw: getprop call failed!\n"); 197 printk(KERN_ERR "ofw: getprop call failed!\n");
198 rev = 0; 198 rev = cpu_to_be32(0);
199 } 199 }
200 olpc_platform_info.boardrev = be32_to_cpu(rev); 200 olpc_platform_info.boardrev = be32_to_cpu(rev);
201} 201}
@@ -203,7 +203,7 @@ static void __init platform_detect(void)
203static void __init platform_detect(void) 203static void __init platform_detect(void)
204{ 204{
205 /* stopgap until OFW support is added to the kernel */ 205 /* stopgap until OFW support is added to the kernel */
206 olpc_platform_info.boardrev = be32_to_cpu(0xc2); 206 olpc_platform_info.boardrev = 0xc2;
207} 207}
208#endif 208#endif
209 209
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 94da4d52d79..e2f43768723 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -330,6 +330,7 @@ struct pv_cpu_ops pv_cpu_ops = {
330#endif 330#endif
331 .wbinvd = native_wbinvd, 331 .wbinvd = native_wbinvd,
332 .read_msr = native_read_msr_safe, 332 .read_msr = native_read_msr_safe,
333 .read_msr_amd = native_read_msr_amd_safe,
333 .write_msr = native_write_msr_safe, 334 .write_msr = native_write_msr_safe,
334 .read_tsc = native_read_tsc, 335 .read_tsc = native_read_tsc,
335 .read_pmc = native_read_pmc, 336 .read_pmc = native_read_pmc,
@@ -471,7 +472,7 @@ struct pv_lock_ops pv_lock_ops = {
471 .spin_unlock = __ticket_spin_unlock, 472 .spin_unlock = __ticket_spin_unlock,
472#endif 473#endif
473}; 474};
474EXPORT_SYMBOL_GPL(pv_lock_ops); 475EXPORT_SYMBOL(pv_lock_ops);
475 476
476EXPORT_SYMBOL_GPL(pv_time_ops); 477EXPORT_SYMBOL_GPL(pv_time_ops);
477EXPORT_SYMBOL (pv_cpu_ops); 478EXPORT_SYMBOL (pv_cpu_ops);
diff --git a/arch/x86/kernel/paravirt_patch_32.c b/arch/x86/kernel/paravirt_patch_32.c
index 58262218781..9fe644f4861 100644
--- a/arch/x86/kernel/paravirt_patch_32.c
+++ b/arch/x86/kernel/paravirt_patch_32.c
@@ -23,7 +23,7 @@ unsigned native_patch(u8 type, u16 clobbers, void *ibuf,
23 start = start_##ops##_##x; \ 23 start = start_##ops##_##x; \
24 end = end_##ops##_##x; \ 24 end = end_##ops##_##x; \
25 goto patch_site 25 goto patch_site
26 switch(type) { 26 switch (type) {
27 PATCH_SITE(pv_irq_ops, irq_disable); 27 PATCH_SITE(pv_irq_ops, irq_disable);
28 PATCH_SITE(pv_irq_ops, irq_enable); 28 PATCH_SITE(pv_irq_ops, irq_enable);
29 PATCH_SITE(pv_irq_ops, restore_fl); 29 PATCH_SITE(pv_irq_ops, restore_fl);
diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c
index 218d783ed7a..dcdac6c826e 100644
--- a/arch/x86/kernel/pci-calgary_64.c
+++ b/arch/x86/kernel/pci-calgary_64.c
@@ -343,9 +343,8 @@ static void iommu_free(struct iommu_table *tbl, dma_addr_t dma_addr,
343 /* were we called with bad_dma_address? */ 343 /* were we called with bad_dma_address? */
344 badend = bad_dma_address + (EMERGENCY_PAGES * PAGE_SIZE); 344 badend = bad_dma_address + (EMERGENCY_PAGES * PAGE_SIZE);
345 if (unlikely((dma_addr >= bad_dma_address) && (dma_addr < badend))) { 345 if (unlikely((dma_addr >= bad_dma_address) && (dma_addr < badend))) {
346 printk(KERN_ERR "Calgary: driver tried unmapping bad DMA " 346 WARN(1, KERN_ERR "Calgary: driver tried unmapping bad DMA "
347 "address 0x%Lx\n", dma_addr); 347 "address 0x%Lx\n", dma_addr);
348 WARN_ON(1);
349 return; 348 return;
350 } 349 }
351 350
@@ -1269,13 +1268,15 @@ static inline int __init determine_tce_table_size(u64 ram)
1269static int __init build_detail_arrays(void) 1268static int __init build_detail_arrays(void)
1270{ 1269{
1271 unsigned long ptr; 1270 unsigned long ptr;
1272 int i, scal_detail_size, rio_detail_size; 1271 unsigned numnodes, i;
1272 int scal_detail_size, rio_detail_size;
1273 1273
1274 if (rio_table_hdr->num_scal_dev > MAX_NUMNODES){ 1274 numnodes = rio_table_hdr->num_scal_dev;
1275 if (numnodes > MAX_NUMNODES){
1275 printk(KERN_WARNING 1276 printk(KERN_WARNING
1276 "Calgary: MAX_NUMNODES too low! Defined as %d, " 1277 "Calgary: MAX_NUMNODES too low! Defined as %d, "
1277 "but system has %d nodes.\n", 1278 "but system has %d nodes.\n",
1278 MAX_NUMNODES, rio_table_hdr->num_scal_dev); 1279 MAX_NUMNODES, numnodes);
1279 return -ENODEV; 1280 return -ENODEV;
1280 } 1281 }
1281 1282
@@ -1296,8 +1297,7 @@ static int __init build_detail_arrays(void)
1296 } 1297 }
1297 1298
1298 ptr = ((unsigned long)rio_table_hdr) + 3; 1299 ptr = ((unsigned long)rio_table_hdr) + 3;
1299 for (i = 0; i < rio_table_hdr->num_scal_dev; 1300 for (i = 0; i < numnodes; i++, ptr += scal_detail_size)
1300 i++, ptr += scal_detail_size)
1301 scal_devs[i] = (struct scal_detail *)ptr; 1301 scal_devs[i] = (struct scal_detail *)ptr;
1302 1302
1303 for (i = 0; i < rio_table_hdr->num_rio_dev; 1303 for (i = 0; i < rio_table_hdr->num_rio_dev;
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c
index 87d4d6964ec..f704cb51ff8 100644
--- a/arch/x86/kernel/pci-dma.c
+++ b/arch/x86/kernel/pci-dma.c
@@ -82,7 +82,7 @@ void __init dma32_reserve_bootmem(void)
82 * using 512M as goal 82 * using 512M as goal
83 */ 83 */
84 align = 64ULL<<20; 84 align = 64ULL<<20;
85 size = round_up(dma32_bootmem_size, align); 85 size = roundup(dma32_bootmem_size, align);
86 dma32_bootmem_ptr = __alloc_bootmem_nopanic(size, align, 86 dma32_bootmem_ptr = __alloc_bootmem_nopanic(size, align,
87 512ULL<<20); 87 512ULL<<20);
88 if (dma32_bootmem_ptr) 88 if (dma32_bootmem_ptr)
diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c
index 49285f8fd4d..1a895a58253 100644
--- a/arch/x86/kernel/pci-gart_64.c
+++ b/arch/x86/kernel/pci-gart_64.c
@@ -82,7 +82,8 @@ AGPEXTERN __u32 *agp_gatt_table;
82static unsigned long next_bit; /* protected by iommu_bitmap_lock */ 82static unsigned long next_bit; /* protected by iommu_bitmap_lock */
83static int need_flush; /* global flush state. set for each gart wrap */ 83static int need_flush; /* global flush state. set for each gart wrap */
84 84
85static unsigned long alloc_iommu(struct device *dev, int size) 85static unsigned long alloc_iommu(struct device *dev, int size,
86 unsigned long align_mask)
86{ 87{
87 unsigned long offset, flags; 88 unsigned long offset, flags;
88 unsigned long boundary_size; 89 unsigned long boundary_size;
@@ -90,16 +91,17 @@ static unsigned long alloc_iommu(struct device *dev, int size)
90 91
91 base_index = ALIGN(iommu_bus_base & dma_get_seg_boundary(dev), 92 base_index = ALIGN(iommu_bus_base & dma_get_seg_boundary(dev),
92 PAGE_SIZE) >> PAGE_SHIFT; 93 PAGE_SIZE) >> PAGE_SHIFT;
93 boundary_size = ALIGN(dma_get_seg_boundary(dev) + 1, 94 boundary_size = ALIGN((unsigned long long)dma_get_seg_boundary(dev) + 1,
94 PAGE_SIZE) >> PAGE_SHIFT; 95 PAGE_SIZE) >> PAGE_SHIFT;
95 96
96 spin_lock_irqsave(&iommu_bitmap_lock, flags); 97 spin_lock_irqsave(&iommu_bitmap_lock, flags);
97 offset = iommu_area_alloc(iommu_gart_bitmap, iommu_pages, next_bit, 98 offset = iommu_area_alloc(iommu_gart_bitmap, iommu_pages, next_bit,
98 size, base_index, boundary_size, 0); 99 size, base_index, boundary_size, align_mask);
99 if (offset == -1) { 100 if (offset == -1) {
100 need_flush = 1; 101 need_flush = 1;
101 offset = iommu_area_alloc(iommu_gart_bitmap, iommu_pages, 0, 102 offset = iommu_area_alloc(iommu_gart_bitmap, iommu_pages, 0,
102 size, base_index, boundary_size, 0); 103 size, base_index, boundary_size,
104 align_mask);
103 } 105 }
104 if (offset != -1) { 106 if (offset != -1) {
105 next_bit = offset+size; 107 next_bit = offset+size;
@@ -236,10 +238,10 @@ nonforced_iommu(struct device *dev, unsigned long addr, size_t size)
236 * Caller needs to check if the iommu is needed and flush. 238 * Caller needs to check if the iommu is needed and flush.
237 */ 239 */
238static dma_addr_t dma_map_area(struct device *dev, dma_addr_t phys_mem, 240static dma_addr_t dma_map_area(struct device *dev, dma_addr_t phys_mem,
239 size_t size, int dir) 241 size_t size, int dir, unsigned long align_mask)
240{ 242{
241 unsigned long npages = iommu_num_pages(phys_mem, size); 243 unsigned long npages = iommu_num_pages(phys_mem, size);
242 unsigned long iommu_page = alloc_iommu(dev, npages); 244 unsigned long iommu_page = alloc_iommu(dev, npages, align_mask);
243 int i; 245 int i;
244 246
245 if (iommu_page == -1) { 247 if (iommu_page == -1) {
@@ -262,7 +264,11 @@ static dma_addr_t dma_map_area(struct device *dev, dma_addr_t phys_mem,
262static dma_addr_t 264static dma_addr_t
263gart_map_simple(struct device *dev, phys_addr_t paddr, size_t size, int dir) 265gart_map_simple(struct device *dev, phys_addr_t paddr, size_t size, int dir)
264{ 266{
265 dma_addr_t map = dma_map_area(dev, paddr, size, dir); 267 dma_addr_t map;
268 unsigned long align_mask;
269
270 align_mask = (1UL << get_order(size)) - 1;
271 map = dma_map_area(dev, paddr, size, dir, align_mask);
266 272
267 flush_gart(); 273 flush_gart();
268 274
@@ -281,7 +287,8 @@ gart_map_single(struct device *dev, phys_addr_t paddr, size_t size, int dir)
281 if (!need_iommu(dev, paddr, size)) 287 if (!need_iommu(dev, paddr, size))
282 return paddr; 288 return paddr;
283 289
284 bus = gart_map_simple(dev, paddr, size, dir); 290 bus = dma_map_area(dev, paddr, size, dir, 0);
291 flush_gart();
285 292
286 return bus; 293 return bus;
287} 294}
@@ -340,7 +347,7 @@ static int dma_map_sg_nonforce(struct device *dev, struct scatterlist *sg,
340 unsigned long addr = sg_phys(s); 347 unsigned long addr = sg_phys(s);
341 348
342 if (nonforced_iommu(dev, addr, s->length)) { 349 if (nonforced_iommu(dev, addr, s->length)) {
343 addr = dma_map_area(dev, addr, s->length, dir); 350 addr = dma_map_area(dev, addr, s->length, dir, 0);
344 if (addr == bad_dma_address) { 351 if (addr == bad_dma_address) {
345 if (i > 0) 352 if (i > 0)
346 gart_unmap_sg(dev, sg, i, dir); 353 gart_unmap_sg(dev, sg, i, dir);
@@ -362,7 +369,7 @@ static int __dma_map_cont(struct device *dev, struct scatterlist *start,
362 int nelems, struct scatterlist *sout, 369 int nelems, struct scatterlist *sout,
363 unsigned long pages) 370 unsigned long pages)
364{ 371{
365 unsigned long iommu_start = alloc_iommu(dev, pages); 372 unsigned long iommu_start = alloc_iommu(dev, pages, 0);
366 unsigned long iommu_page = iommu_start; 373 unsigned long iommu_page = iommu_start;
367 struct scatterlist *s; 374 struct scatterlist *s;
368 int i; 375 int i;
@@ -626,7 +633,6 @@ static __init int init_k8_gatt(struct agp_kern_info *info)
626 struct pci_dev *dev; 633 struct pci_dev *dev;
627 void *gatt; 634 void *gatt;
628 int i, error; 635 int i, error;
629 unsigned long start_pfn, end_pfn;
630 636
631 printk(KERN_INFO "PCI-DMA: Disabling AGP.\n"); 637 printk(KERN_INFO "PCI-DMA: Disabling AGP.\n");
632 aper_size = aper_base = info->aper_size = 0; 638 aper_size = aper_base = info->aper_size = 0;
@@ -672,12 +678,6 @@ static __init int init_k8_gatt(struct agp_kern_info *info)
672 printk(KERN_INFO "PCI-DMA: aperture base @ %x size %u KB\n", 678 printk(KERN_INFO "PCI-DMA: aperture base @ %x size %u KB\n",
673 aper_base, aper_size>>10); 679 aper_base, aper_size>>10);
674 680
675 /* need to map that range */
676 end_pfn = (aper_base>>PAGE_SHIFT) + (aper_size>>PAGE_SHIFT);
677 if (end_pfn > max_low_pfn_mapped) {
678 start_pfn = (aper_base>>PAGE_SHIFT);
679 init_memory_mapping(start_pfn<<PAGE_SHIFT, end_pfn<<PAGE_SHIFT);
680 }
681 return 0; 681 return 0;
682 682
683 nommu: 683 nommu:
@@ -727,7 +727,8 @@ void __init gart_iommu_init(void)
727{ 727{
728 struct agp_kern_info info; 728 struct agp_kern_info info;
729 unsigned long iommu_start; 729 unsigned long iommu_start;
730 unsigned long aper_size; 730 unsigned long aper_base, aper_size;
731 unsigned long start_pfn, end_pfn;
731 unsigned long scratch; 732 unsigned long scratch;
732 long i; 733 long i;
733 734
@@ -765,8 +766,16 @@ void __init gart_iommu_init(void)
765 return; 766 return;
766 } 767 }
767 768
769 /* need to map that range */
770 aper_size = info.aper_size << 20;
771 aper_base = info.aper_base;
772 end_pfn = (aper_base>>PAGE_SHIFT) + (aper_size>>PAGE_SHIFT);
773 if (end_pfn > max_low_pfn_mapped) {
774 start_pfn = (aper_base>>PAGE_SHIFT);
775 init_memory_mapping(start_pfn<<PAGE_SHIFT, end_pfn<<PAGE_SHIFT);
776 }
777
768 printk(KERN_INFO "PCI-DMA: using GART IOMMU.\n"); 778 printk(KERN_INFO "PCI-DMA: using GART IOMMU.\n");
769 aper_size = info.aper_size * 1024 * 1024;
770 iommu_size = check_iommu_size(info.aper_base, aper_size); 779 iommu_size = check_iommu_size(info.aper_base, aper_size);
771 iommu_pages = iommu_size >> PAGE_SHIFT; 780 iommu_pages = iommu_size >> PAGE_SHIFT;
772 781
diff --git a/arch/x86/kernel/pcspeaker.c b/arch/x86/kernel/pcspeaker.c
index bc1f2d3ea27..a311ffcaad1 100644
--- a/arch/x86/kernel/pcspeaker.c
+++ b/arch/x86/kernel/pcspeaker.c
@@ -1,20 +1,13 @@
1#include <linux/platform_device.h> 1#include <linux/platform_device.h>
2#include <linux/errno.h> 2#include <linux/err.h>
3#include <linux/init.h> 3#include <linux/init.h>
4 4
5static __init int add_pcspkr(void) 5static __init int add_pcspkr(void)
6{ 6{
7 struct platform_device *pd; 7 struct platform_device *pd;
8 int ret;
9 8
10 pd = platform_device_alloc("pcspkr", -1); 9 pd = platform_device_register_simple("pcspkr", -1, NULL, 0);
11 if (!pd)
12 return -ENOMEM;
13 10
14 ret = platform_device_add(pd); 11 return IS_ERR(pd) ? PTR_ERR(pd) : 0;
15 if (ret)
16 platform_device_put(pd);
17
18 return ret;
19} 12}
20device_initcall(add_pcspkr); 13device_initcall(add_pcspkr);
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 7fc4d5b0a6a..ec7a2ba9bce 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -185,7 +185,8 @@ static void mwait_idle(void)
185static void poll_idle(void) 185static void poll_idle(void)
186{ 186{
187 local_irq_enable(); 187 local_irq_enable();
188 cpu_relax(); 188 while (!need_resched())
189 cpu_relax();
189} 190}
190 191
191/* 192/*
@@ -246,6 +247,14 @@ static int __cpuinit check_c1e_idle(const struct cpuinfo_x86 *c)
246 return 1; 247 return 1;
247} 248}
248 249
250static cpumask_t c1e_mask = CPU_MASK_NONE;
251static int c1e_detected;
252
253void c1e_remove_cpu(int cpu)
254{
255 cpu_clear(cpu, c1e_mask);
256}
257
249/* 258/*
250 * C1E aware idle routine. We check for C1E active in the interrupt 259 * C1E aware idle routine. We check for C1E active in the interrupt
251 * pending message MSR. If we detect C1E, then we handle it the same 260 * pending message MSR. If we detect C1E, then we handle it the same
@@ -253,9 +262,6 @@ static int __cpuinit check_c1e_idle(const struct cpuinfo_x86 *c)
253 */ 262 */
254static void c1e_idle(void) 263static void c1e_idle(void)
255{ 264{
256 static cpumask_t c1e_mask = CPU_MASK_NONE;
257 static int c1e_detected;
258
259 if (need_resched()) 265 if (need_resched())
260 return; 266 return;
261 267
@@ -265,8 +271,10 @@ static void c1e_idle(void)
265 rdmsr(MSR_K8_INT_PENDING_MSG, lo, hi); 271 rdmsr(MSR_K8_INT_PENDING_MSG, lo, hi);
266 if (lo & K8_INTP_C1E_ACTIVE_MASK) { 272 if (lo & K8_INTP_C1E_ACTIVE_MASK) {
267 c1e_detected = 1; 273 c1e_detected = 1;
268 mark_tsc_unstable("TSC halt in C1E"); 274 if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC))
269 printk(KERN_INFO "System has C1E enabled\n"); 275 mark_tsc_unstable("TSC halt in AMD C1E");
276 printk(KERN_INFO "System has AMD C1E enabled\n");
277 set_cpu_cap(&boot_cpu_data, X86_FEATURE_AMDC1E);
270 } 278 }
271 } 279 }
272 280
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index 3b7a1ddcc0b..205188db962 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -37,6 +37,7 @@
37#include <linux/tick.h> 37#include <linux/tick.h>
38#include <linux/percpu.h> 38#include <linux/percpu.h>
39#include <linux/prctl.h> 39#include <linux/prctl.h>
40#include <linux/dmi.h>
40 41
41#include <asm/uaccess.h> 42#include <asm/uaccess.h>
42#include <asm/pgtable.h> 43#include <asm/pgtable.h>
@@ -55,6 +56,9 @@
55#include <asm/tlbflush.h> 56#include <asm/tlbflush.h>
56#include <asm/cpu.h> 57#include <asm/cpu.h>
57#include <asm/kdebug.h> 58#include <asm/kdebug.h>
59#include <asm/idle.h>
60#include <asm/syscalls.h>
61#include <asm/smp.h>
58 62
59asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); 63asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
60 64
@@ -88,6 +92,7 @@ static void cpu_exit_clear(void)
88 cpu_clear(cpu, cpu_callin_map); 92 cpu_clear(cpu, cpu_callin_map);
89 93
90 numa_remove_cpu(cpu); 94 numa_remove_cpu(cpu);
95 c1e_remove_cpu(cpu);
91} 96}
92 97
93/* We don't actually take CPU down, just spin without interrupts. */ 98/* We don't actually take CPU down, just spin without interrupts. */
@@ -159,6 +164,7 @@ void __show_registers(struct pt_regs *regs, int all)
159 unsigned long d0, d1, d2, d3, d6, d7; 164 unsigned long d0, d1, d2, d3, d6, d7;
160 unsigned long sp; 165 unsigned long sp;
161 unsigned short ss, gs; 166 unsigned short ss, gs;
167 const char *board;
162 168
163 if (user_mode_vm(regs)) { 169 if (user_mode_vm(regs)) {
164 sp = regs->sp; 170 sp = regs->sp;
@@ -171,11 +177,15 @@ void __show_registers(struct pt_regs *regs, int all)
171 } 177 }
172 178
173 printk("\n"); 179 printk("\n");
174 printk("Pid: %d, comm: %s %s (%s %.*s)\n", 180
181 board = dmi_get_system_info(DMI_PRODUCT_NAME);
182 if (!board)
183 board = "";
184 printk("Pid: %d, comm: %s %s (%s %.*s) %s\n",
175 task_pid_nr(current), current->comm, 185 task_pid_nr(current), current->comm,
176 print_tainted(), init_utsname()->release, 186 print_tainted(), init_utsname()->release,
177 (int)strcspn(init_utsname()->version, " "), 187 (int)strcspn(init_utsname()->version, " "),
178 init_utsname()->version); 188 init_utsname()->version, board);
179 189
180 printk("EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n", 190 printk("EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n",
181 (u16)regs->cs, regs->ip, regs->flags, 191 (u16)regs->cs, regs->ip, regs->flags,
@@ -275,6 +285,14 @@ void exit_thread(void)
275 tss->x86_tss.io_bitmap_base = INVALID_IO_BITMAP_OFFSET; 285 tss->x86_tss.io_bitmap_base = INVALID_IO_BITMAP_OFFSET;
276 put_cpu(); 286 put_cpu();
277 } 287 }
288#ifdef CONFIG_X86_DS
289 /* Free any DS contexts that have not been properly released. */
290 if (unlikely(current->thread.ds_ctx)) {
291 /* we clear debugctl to make sure DS is not used. */
292 update_debugctlmsr(0);
293 ds_free(current->thread.ds_ctx);
294 }
295#endif /* CONFIG_X86_DS */
278} 296}
279 297
280void flush_thread(void) 298void flush_thread(void)
@@ -436,6 +454,35 @@ int set_tsc_mode(unsigned int val)
436 return 0; 454 return 0;
437} 455}
438 456
457#ifdef CONFIG_X86_DS
458static int update_debugctl(struct thread_struct *prev,
459 struct thread_struct *next, unsigned long debugctl)
460{
461 unsigned long ds_prev = 0;
462 unsigned long ds_next = 0;
463
464 if (prev->ds_ctx)
465 ds_prev = (unsigned long)prev->ds_ctx->ds;
466 if (next->ds_ctx)
467 ds_next = (unsigned long)next->ds_ctx->ds;
468
469 if (ds_next != ds_prev) {
470 /* we clear debugctl to make sure DS
471 * is not in use when we change it */
472 debugctl = 0;
473 update_debugctlmsr(0);
474 wrmsr(MSR_IA32_DS_AREA, ds_next, 0);
475 }
476 return debugctl;
477}
478#else
479static int update_debugctl(struct thread_struct *prev,
480 struct thread_struct *next, unsigned long debugctl)
481{
482 return debugctl;
483}
484#endif /* CONFIG_X86_DS */
485
439static noinline void 486static noinline void
440__switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p, 487__switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p,
441 struct tss_struct *tss) 488 struct tss_struct *tss)
@@ -446,14 +493,7 @@ __switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p,
446 prev = &prev_p->thread; 493 prev = &prev_p->thread;
447 next = &next_p->thread; 494 next = &next_p->thread;
448 495
449 debugctl = prev->debugctlmsr; 496 debugctl = update_debugctl(prev, next, prev->debugctlmsr);
450 if (next->ds_area_msr != prev->ds_area_msr) {
451 /* we clear debugctl to make sure DS
452 * is not in use when we change it */
453 debugctl = 0;
454 update_debugctlmsr(0);
455 wrmsr(MSR_IA32_DS_AREA, next->ds_area_msr, 0);
456 }
457 497
458 if (next->debugctlmsr != debugctl) 498 if (next->debugctlmsr != debugctl)
459 update_debugctlmsr(next->debugctlmsr); 499 update_debugctlmsr(next->debugctlmsr);
@@ -477,13 +517,13 @@ __switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p,
477 hard_enable_TSC(); 517 hard_enable_TSC();
478 } 518 }
479 519
480#ifdef X86_BTS 520#ifdef CONFIG_X86_PTRACE_BTS
481 if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS)) 521 if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS))
482 ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS); 522 ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS);
483 523
484 if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS)) 524 if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS))
485 ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES); 525 ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES);
486#endif 526#endif /* CONFIG_X86_PTRACE_BTS */
487 527
488 528
489 if (!test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) { 529 if (!test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) {
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
index 71553b664e2..2a8ccb9238b 100644
--- a/arch/x86/kernel/process_64.c
+++ b/arch/x86/kernel/process_64.c
@@ -37,11 +37,11 @@
37#include <linux/kdebug.h> 37#include <linux/kdebug.h>
38#include <linux/tick.h> 38#include <linux/tick.h>
39#include <linux/prctl.h> 39#include <linux/prctl.h>
40#include <linux/uaccess.h>
41#include <linux/io.h>
40 42
41#include <asm/uaccess.h>
42#include <asm/pgtable.h> 43#include <asm/pgtable.h>
43#include <asm/system.h> 44#include <asm/system.h>
44#include <asm/io.h>
45#include <asm/processor.h> 45#include <asm/processor.h>
46#include <asm/i387.h> 46#include <asm/i387.h>
47#include <asm/mmu_context.h> 47#include <asm/mmu_context.h>
@@ -51,6 +51,7 @@
51#include <asm/proto.h> 51#include <asm/proto.h>
52#include <asm/ia32.h> 52#include <asm/ia32.h>
53#include <asm/idle.h> 53#include <asm/idle.h>
54#include <asm/syscalls.h>
54 55
55asmlinkage extern void ret_from_fork(void); 56asmlinkage extern void ret_from_fork(void);
56 57
@@ -88,11 +89,13 @@ void exit_idle(void)
88#ifdef CONFIG_HOTPLUG_CPU 89#ifdef CONFIG_HOTPLUG_CPU
89DECLARE_PER_CPU(int, cpu_state); 90DECLARE_PER_CPU(int, cpu_state);
90 91
91#include <asm/nmi.h> 92#include <linux/nmi.h>
92/* We halt the CPU with physical CPU hotplug */ 93/* We halt the CPU with physical CPU hotplug */
93static inline void play_dead(void) 94static inline void play_dead(void)
94{ 95{
95 idle_task_exit(); 96 idle_task_exit();
97 c1e_remove_cpu(raw_smp_processor_id());
98
96 mb(); 99 mb();
97 /* Ack it */ 100 /* Ack it */
98 __get_cpu_var(cpu_state) = CPU_DEAD; 101 __get_cpu_var(cpu_state) = CPU_DEAD;
@@ -151,7 +154,7 @@ void cpu_idle(void)
151} 154}
152 155
153/* Prints also some state that isn't saved in the pt_regs */ 156/* Prints also some state that isn't saved in the pt_regs */
154void __show_regs(struct pt_regs * regs) 157void __show_regs(struct pt_regs *regs)
155{ 158{
156 unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L, fs, gs, shadowgs; 159 unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L, fs, gs, shadowgs;
157 unsigned long d0, d1, d2, d3, d6, d7; 160 unsigned long d0, d1, d2, d3, d6, d7;
@@ -160,59 +163,61 @@ void __show_regs(struct pt_regs * regs)
160 163
161 printk("\n"); 164 printk("\n");
162 print_modules(); 165 print_modules();
163 printk("Pid: %d, comm: %.20s %s %s %.*s\n", 166 printk(KERN_INFO "Pid: %d, comm: %.20s %s %s %.*s\n",
164 current->pid, current->comm, print_tainted(), 167 current->pid, current->comm, print_tainted(),
165 init_utsname()->release, 168 init_utsname()->release,
166 (int)strcspn(init_utsname()->version, " "), 169 (int)strcspn(init_utsname()->version, " "),
167 init_utsname()->version); 170 init_utsname()->version);
168 printk("RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip); 171 printk(KERN_INFO "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip);
169 printk_address(regs->ip, 1); 172 printk_address(regs->ip, 1);
170 printk("RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss, regs->sp, 173 printk(KERN_INFO "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss,
171 regs->flags); 174 regs->sp, regs->flags);
172 printk("RAX: %016lx RBX: %016lx RCX: %016lx\n", 175 printk(KERN_INFO "RAX: %016lx RBX: %016lx RCX: %016lx\n",
173 regs->ax, regs->bx, regs->cx); 176 regs->ax, regs->bx, regs->cx);
174 printk("RDX: %016lx RSI: %016lx RDI: %016lx\n", 177 printk(KERN_INFO "RDX: %016lx RSI: %016lx RDI: %016lx\n",
175 regs->dx, regs->si, regs->di); 178 regs->dx, regs->si, regs->di);
176 printk("RBP: %016lx R08: %016lx R09: %016lx\n", 179 printk(KERN_INFO "RBP: %016lx R08: %016lx R09: %016lx\n",
177 regs->bp, regs->r8, regs->r9); 180 regs->bp, regs->r8, regs->r9);
178 printk("R10: %016lx R11: %016lx R12: %016lx\n", 181 printk(KERN_INFO "R10: %016lx R11: %016lx R12: %016lx\n",
179 regs->r10, regs->r11, regs->r12); 182 regs->r10, regs->r11, regs->r12);
180 printk("R13: %016lx R14: %016lx R15: %016lx\n", 183 printk(KERN_INFO "R13: %016lx R14: %016lx R15: %016lx\n",
181 regs->r13, regs->r14, regs->r15); 184 regs->r13, regs->r14, regs->r15);
182 185
183 asm("movl %%ds,%0" : "=r" (ds)); 186 asm("movl %%ds,%0" : "=r" (ds));
184 asm("movl %%cs,%0" : "=r" (cs)); 187 asm("movl %%cs,%0" : "=r" (cs));
185 asm("movl %%es,%0" : "=r" (es)); 188 asm("movl %%es,%0" : "=r" (es));
186 asm("movl %%fs,%0" : "=r" (fsindex)); 189 asm("movl %%fs,%0" : "=r" (fsindex));
187 asm("movl %%gs,%0" : "=r" (gsindex)); 190 asm("movl %%gs,%0" : "=r" (gsindex));
188 191
189 rdmsrl(MSR_FS_BASE, fs); 192 rdmsrl(MSR_FS_BASE, fs);
190 rdmsrl(MSR_GS_BASE, gs); 193 rdmsrl(MSR_GS_BASE, gs);
191 rdmsrl(MSR_KERNEL_GS_BASE, shadowgs); 194 rdmsrl(MSR_KERNEL_GS_BASE, shadowgs);
192 195
193 cr0 = read_cr0(); 196 cr0 = read_cr0();
194 cr2 = read_cr2(); 197 cr2 = read_cr2();
195 cr3 = read_cr3(); 198 cr3 = read_cr3();
196 cr4 = read_cr4(); 199 cr4 = read_cr4();
197 200
198 printk("FS: %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n", 201 printk(KERN_INFO "FS: %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n",
199 fs,fsindex,gs,gsindex,shadowgs); 202 fs, fsindex, gs, gsindex, shadowgs);
200 printk("CS: %04x DS: %04x ES: %04x CR0: %016lx\n", cs, ds, es, cr0); 203 printk(KERN_INFO "CS: %04x DS: %04x ES: %04x CR0: %016lx\n", cs, ds,
201 printk("CR2: %016lx CR3: %016lx CR4: %016lx\n", cr2, cr3, cr4); 204 es, cr0);
205 printk(KERN_INFO "CR2: %016lx CR3: %016lx CR4: %016lx\n", cr2, cr3,
206 cr4);
202 207
203 get_debugreg(d0, 0); 208 get_debugreg(d0, 0);
204 get_debugreg(d1, 1); 209 get_debugreg(d1, 1);
205 get_debugreg(d2, 2); 210 get_debugreg(d2, 2);
206 printk("DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2); 211 printk(KERN_INFO "DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2);
207 get_debugreg(d3, 3); 212 get_debugreg(d3, 3);
208 get_debugreg(d6, 6); 213 get_debugreg(d6, 6);
209 get_debugreg(d7, 7); 214 get_debugreg(d7, 7);
210 printk("DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7); 215 printk(KERN_INFO "DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7);
211} 216}
212 217
213void show_regs(struct pt_regs *regs) 218void show_regs(struct pt_regs *regs)
214{ 219{
215 printk("CPU %d:", smp_processor_id()); 220 printk(KERN_INFO "CPU %d:", smp_processor_id());
216 __show_regs(regs); 221 __show_regs(regs);
217 show_trace(NULL, regs, (void *)(regs + 1), regs->bp); 222 show_trace(NULL, regs, (void *)(regs + 1), regs->bp);
218} 223}
@@ -238,6 +243,14 @@ void exit_thread(void)
238 t->io_bitmap_max = 0; 243 t->io_bitmap_max = 0;
239 put_cpu(); 244 put_cpu();
240 } 245 }
246#ifdef CONFIG_X86_DS
247 /* Free any DS contexts that have not been properly released. */
248 if (unlikely(t->ds_ctx)) {
249 /* we clear debugctl to make sure DS is not used. */
250 update_debugctlmsr(0);
251 ds_free(t->ds_ctx);
252 }
253#endif /* CONFIG_X86_DS */
241} 254}
242 255
243void flush_thread(void) 256void flush_thread(void)
@@ -313,10 +326,10 @@ void prepare_to_copy(struct task_struct *tsk)
313 326
314int copy_thread(int nr, unsigned long clone_flags, unsigned long sp, 327int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
315 unsigned long unused, 328 unsigned long unused,
316 struct task_struct * p, struct pt_regs * regs) 329 struct task_struct *p, struct pt_regs *regs)
317{ 330{
318 int err; 331 int err;
319 struct pt_regs * childregs; 332 struct pt_regs *childregs;
320 struct task_struct *me = current; 333 struct task_struct *me = current;
321 334
322 childregs = ((struct pt_regs *) 335 childregs = ((struct pt_regs *)
@@ -361,10 +374,10 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
361 if (test_thread_flag(TIF_IA32)) 374 if (test_thread_flag(TIF_IA32))
362 err = do_set_thread_area(p, -1, 375 err = do_set_thread_area(p, -1,
363 (struct user_desc __user *)childregs->si, 0); 376 (struct user_desc __user *)childregs->si, 0);
364 else 377 else
365#endif 378#endif
366 err = do_arch_prctl(p, ARCH_SET_FS, childregs->r8); 379 err = do_arch_prctl(p, ARCH_SET_FS, childregs->r8);
367 if (err) 380 if (err)
368 goto out; 381 goto out;
369 } 382 }
370 err = 0; 383 err = 0;
@@ -471,13 +484,27 @@ static inline void __switch_to_xtra(struct task_struct *prev_p,
471 next = &next_p->thread; 484 next = &next_p->thread;
472 485
473 debugctl = prev->debugctlmsr; 486 debugctl = prev->debugctlmsr;
474 if (next->ds_area_msr != prev->ds_area_msr) { 487
475 /* we clear debugctl to make sure DS 488#ifdef CONFIG_X86_DS
476 * is not in use when we change it */ 489 {
477 debugctl = 0; 490 unsigned long ds_prev = 0, ds_next = 0;
478 update_debugctlmsr(0); 491
479 wrmsrl(MSR_IA32_DS_AREA, next->ds_area_msr); 492 if (prev->ds_ctx)
493 ds_prev = (unsigned long)prev->ds_ctx->ds;
494 if (next->ds_ctx)
495 ds_next = (unsigned long)next->ds_ctx->ds;
496
497 if (ds_next != ds_prev) {
498 /*
499 * We clear debugctl to make sure DS
500 * is not in use when we change it:
501 */
502 debugctl = 0;
503 update_debugctlmsr(0);
504 wrmsrl(MSR_IA32_DS_AREA, ds_next);
505 }
480 } 506 }
507#endif /* CONFIG_X86_DS */
481 508
482 if (next->debugctlmsr != debugctl) 509 if (next->debugctlmsr != debugctl)
483 update_debugctlmsr(next->debugctlmsr); 510 update_debugctlmsr(next->debugctlmsr);
@@ -515,13 +542,13 @@ static inline void __switch_to_xtra(struct task_struct *prev_p,
515 memset(tss->io_bitmap, 0xff, prev->io_bitmap_max); 542 memset(tss->io_bitmap, 0xff, prev->io_bitmap_max);
516 } 543 }
517 544
518#ifdef X86_BTS 545#ifdef CONFIG_X86_PTRACE_BTS
519 if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS)) 546 if (test_tsk_thread_flag(prev_p, TIF_BTS_TRACE_TS))
520 ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS); 547 ptrace_bts_take_timestamp(prev_p, BTS_TASK_DEPARTS);
521 548
522 if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS)) 549 if (test_tsk_thread_flag(next_p, TIF_BTS_TRACE_TS))
523 ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES); 550 ptrace_bts_take_timestamp(next_p, BTS_TASK_ARRIVES);
524#endif 551#endif /* CONFIG_X86_PTRACE_BTS */
525} 552}
526 553
527/* 554/*
@@ -543,7 +570,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
543 unsigned fsindex, gsindex; 570 unsigned fsindex, gsindex;
544 571
545 /* we're going to use this soon, after a few expensive things */ 572 /* we're going to use this soon, after a few expensive things */
546 if (next_p->fpu_counter>5) 573 if (next_p->fpu_counter > 5)
547 prefetch(next->xstate); 574 prefetch(next->xstate);
548 575
549 /* 576 /*
@@ -551,13 +578,13 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
551 */ 578 */
552 load_sp0(tss, next); 579 load_sp0(tss, next);
553 580
554 /* 581 /*
555 * Switch DS and ES. 582 * Switch DS and ES.
556 * This won't pick up thread selector changes, but I guess that is ok. 583 * This won't pick up thread selector changes, but I guess that is ok.
557 */ 584 */
558 savesegment(es, prev->es); 585 savesegment(es, prev->es);
559 if (unlikely(next->es | prev->es)) 586 if (unlikely(next->es | prev->es))
560 loadsegment(es, next->es); 587 loadsegment(es, next->es);
561 588
562 savesegment(ds, prev->ds); 589 savesegment(ds, prev->ds);
563 if (unlikely(next->ds | prev->ds)) 590 if (unlikely(next->ds | prev->ds))
@@ -583,7 +610,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
583 */ 610 */
584 arch_leave_lazy_cpu_mode(); 611 arch_leave_lazy_cpu_mode();
585 612
586 /* 613 /*
587 * Switch FS and GS. 614 * Switch FS and GS.
588 * 615 *
589 * Segment register != 0 always requires a reload. Also 616 * Segment register != 0 always requires a reload. Also
@@ -592,13 +619,13 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
592 */ 619 */
593 if (unlikely(fsindex | next->fsindex | prev->fs)) { 620 if (unlikely(fsindex | next->fsindex | prev->fs)) {
594 loadsegment(fs, next->fsindex); 621 loadsegment(fs, next->fsindex);
595 /* 622 /*
596 * Check if the user used a selector != 0; if yes 623 * Check if the user used a selector != 0; if yes
597 * clear 64bit base, since overloaded base is always 624 * clear 64bit base, since overloaded base is always
598 * mapped to the Null selector 625 * mapped to the Null selector
599 */ 626 */
600 if (fsindex) 627 if (fsindex)
601 prev->fs = 0; 628 prev->fs = 0;
602 } 629 }
603 /* when next process has a 64bit base use it */ 630 /* when next process has a 64bit base use it */
604 if (next->fs) 631 if (next->fs)
@@ -608,7 +635,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
608 if (unlikely(gsindex | next->gsindex | prev->gs)) { 635 if (unlikely(gsindex | next->gsindex | prev->gs)) {
609 load_gs_index(next->gsindex); 636 load_gs_index(next->gsindex);
610 if (gsindex) 637 if (gsindex)
611 prev->gs = 0; 638 prev->gs = 0;
612 } 639 }
613 if (next->gs) 640 if (next->gs)
614 wrmsrl(MSR_KERNEL_GS_BASE, next->gs); 641 wrmsrl(MSR_KERNEL_GS_BASE, next->gs);
@@ -617,12 +644,12 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
617 /* Must be after DS reload */ 644 /* Must be after DS reload */
618 unlazy_fpu(prev_p); 645 unlazy_fpu(prev_p);
619 646
620 /* 647 /*
621 * Switch the PDA and FPU contexts. 648 * Switch the PDA and FPU contexts.
622 */ 649 */
623 prev->usersp = read_pda(oldrsp); 650 prev->usersp = read_pda(oldrsp);
624 write_pda(oldrsp, next->usersp); 651 write_pda(oldrsp, next->usersp);
625 write_pda(pcurrent, next_p); 652 write_pda(pcurrent, next_p);
626 653
627 write_pda(kernelstack, 654 write_pda(kernelstack,
628 (unsigned long)task_stack_page(next_p) + 655 (unsigned long)task_stack_page(next_p) +
@@ -663,7 +690,7 @@ long sys_execve(char __user *name, char __user * __user *argv,
663 char __user * __user *envp, struct pt_regs *regs) 690 char __user * __user *envp, struct pt_regs *regs)
664{ 691{
665 long error; 692 long error;
666 char * filename; 693 char *filename;
667 694
668 filename = getname(name); 695 filename = getname(name);
669 error = PTR_ERR(filename); 696 error = PTR_ERR(filename);
@@ -721,55 +748,55 @@ asmlinkage long sys_vfork(struct pt_regs *regs)
721unsigned long get_wchan(struct task_struct *p) 748unsigned long get_wchan(struct task_struct *p)
722{ 749{
723 unsigned long stack; 750 unsigned long stack;
724 u64 fp,ip; 751 u64 fp, ip;
725 int count = 0; 752 int count = 0;
726 753
727 if (!p || p == current || p->state==TASK_RUNNING) 754 if (!p || p == current || p->state == TASK_RUNNING)
728 return 0; 755 return 0;
729 stack = (unsigned long)task_stack_page(p); 756 stack = (unsigned long)task_stack_page(p);
730 if (p->thread.sp < stack || p->thread.sp > stack+THREAD_SIZE) 757 if (p->thread.sp < stack || p->thread.sp > stack+THREAD_SIZE)
731 return 0; 758 return 0;
732 fp = *(u64 *)(p->thread.sp); 759 fp = *(u64 *)(p->thread.sp);
733 do { 760 do {
734 if (fp < (unsigned long)stack || 761 if (fp < (unsigned long)stack ||
735 fp > (unsigned long)stack+THREAD_SIZE) 762 fp > (unsigned long)stack+THREAD_SIZE)
736 return 0; 763 return 0;
737 ip = *(u64 *)(fp+8); 764 ip = *(u64 *)(fp+8);
738 if (!in_sched_functions(ip)) 765 if (!in_sched_functions(ip))
739 return ip; 766 return ip;
740 fp = *(u64 *)fp; 767 fp = *(u64 *)fp;
741 } while (count++ < 16); 768 } while (count++ < 16);
742 return 0; 769 return 0;
743} 770}
744 771
745long do_arch_prctl(struct task_struct *task, int code, unsigned long addr) 772long do_arch_prctl(struct task_struct *task, int code, unsigned long addr)
746{ 773{
747 int ret = 0; 774 int ret = 0;
748 int doit = task == current; 775 int doit = task == current;
749 int cpu; 776 int cpu;
750 777
751 switch (code) { 778 switch (code) {
752 case ARCH_SET_GS: 779 case ARCH_SET_GS:
753 if (addr >= TASK_SIZE_OF(task)) 780 if (addr >= TASK_SIZE_OF(task))
754 return -EPERM; 781 return -EPERM;
755 cpu = get_cpu(); 782 cpu = get_cpu();
756 /* handle small bases via the GDT because that's faster to 783 /* handle small bases via the GDT because that's faster to
757 switch. */ 784 switch. */
758 if (addr <= 0xffffffff) { 785 if (addr <= 0xffffffff) {
759 set_32bit_tls(task, GS_TLS, addr); 786 set_32bit_tls(task, GS_TLS, addr);
760 if (doit) { 787 if (doit) {
761 load_TLS(&task->thread, cpu); 788 load_TLS(&task->thread, cpu);
762 load_gs_index(GS_TLS_SEL); 789 load_gs_index(GS_TLS_SEL);
763 } 790 }
764 task->thread.gsindex = GS_TLS_SEL; 791 task->thread.gsindex = GS_TLS_SEL;
765 task->thread.gs = 0; 792 task->thread.gs = 0;
766 } else { 793 } else {
767 task->thread.gsindex = 0; 794 task->thread.gsindex = 0;
768 task->thread.gs = addr; 795 task->thread.gs = addr;
769 if (doit) { 796 if (doit) {
770 load_gs_index(0); 797 load_gs_index(0);
771 ret = checking_wrmsrl(MSR_KERNEL_GS_BASE, addr); 798 ret = checking_wrmsrl(MSR_KERNEL_GS_BASE, addr);
772 } 799 }
773 } 800 }
774 put_cpu(); 801 put_cpu();
775 break; 802 break;
@@ -823,8 +850,7 @@ long do_arch_prctl(struct task_struct *task, int code, unsigned long addr)
823 rdmsrl(MSR_KERNEL_GS_BASE, base); 850 rdmsrl(MSR_KERNEL_GS_BASE, base);
824 else 851 else
825 base = task->thread.gs; 852 base = task->thread.gs;
826 } 853 } else
827 else
828 base = task->thread.gs; 854 base = task->thread.gs;
829 ret = put_user(base, (unsigned long __user *)addr); 855 ret = put_user(base, (unsigned long __user *)addr);
830 break; 856 break;
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
index e37dccce85d..e375b658efc 100644
--- a/arch/x86/kernel/ptrace.c
+++ b/arch/x86/kernel/ptrace.c
@@ -14,6 +14,7 @@
14#include <linux/errno.h> 14#include <linux/errno.h>
15#include <linux/ptrace.h> 15#include <linux/ptrace.h>
16#include <linux/regset.h> 16#include <linux/regset.h>
17#include <linux/tracehook.h>
17#include <linux/user.h> 18#include <linux/user.h>
18#include <linux/elf.h> 19#include <linux/elf.h>
19#include <linux/security.h> 20#include <linux/security.h>
@@ -69,7 +70,7 @@ static inline bool invalid_selector(u16 value)
69 70
70#define FLAG_MASK FLAG_MASK_32 71#define FLAG_MASK FLAG_MASK_32
71 72
72static long *pt_regs_access(struct pt_regs *regs, unsigned long regno) 73static unsigned long *pt_regs_access(struct pt_regs *regs, unsigned long regno)
73{ 74{
74 BUILD_BUG_ON(offsetof(struct pt_regs, bx) != 0); 75 BUILD_BUG_ON(offsetof(struct pt_regs, bx) != 0);
75 regno >>= 2; 76 regno >>= 2;
@@ -554,45 +555,115 @@ static int ptrace_set_debugreg(struct task_struct *child,
554 return 0; 555 return 0;
555} 556}
556 557
557#ifdef X86_BTS 558#ifdef CONFIG_X86_PTRACE_BTS
559/*
560 * The configuration for a particular BTS hardware implementation.
561 */
562struct bts_configuration {
563 /* the size of a BTS record in bytes; at most BTS_MAX_RECORD_SIZE */
564 unsigned char sizeof_bts;
565 /* the size of a field in the BTS record in bytes */
566 unsigned char sizeof_field;
567 /* a bitmask to enable/disable BTS in DEBUGCTL MSR */
568 unsigned long debugctl_mask;
569};
570static struct bts_configuration bts_cfg;
571
572#define BTS_MAX_RECORD_SIZE (8 * 3)
573
574
575/*
576 * Branch Trace Store (BTS) uses the following format. Different
577 * architectures vary in the size of those fields.
578 * - source linear address
579 * - destination linear address
580 * - flags
581 *
582 * Later architectures use 64bit pointers throughout, whereas earlier
583 * architectures use 32bit pointers in 32bit mode.
584 *
585 * We compute the base address for the first 8 fields based on:
586 * - the field size stored in the DS configuration
587 * - the relative field position
588 *
589 * In order to store additional information in the BTS buffer, we use
590 * a special source address to indicate that the record requires
591 * special interpretation.
592 *
593 * Netburst indicated via a bit in the flags field whether the branch
594 * was predicted; this is ignored.
595 */
596
597enum bts_field {
598 bts_from = 0,
599 bts_to,
600 bts_flags,
601
602 bts_escape = (unsigned long)-1,
603 bts_qual = bts_to,
604 bts_jiffies = bts_flags
605};
606
607static inline unsigned long bts_get(const char *base, enum bts_field field)
608{
609 base += (bts_cfg.sizeof_field * field);
610 return *(unsigned long *)base;
611}
558 612
559static int ptrace_bts_get_size(struct task_struct *child) 613static inline void bts_set(char *base, enum bts_field field, unsigned long val)
560{ 614{
561 if (!child->thread.ds_area_msr) 615 base += (bts_cfg.sizeof_field * field);;
562 return -ENXIO; 616 (*(unsigned long *)base) = val;
617}
563 618
564 return ds_get_bts_index((void *)child->thread.ds_area_msr); 619/*
620 * Translate a BTS record from the raw format into the bts_struct format
621 *
622 * out (out): bts_struct interpretation
623 * raw: raw BTS record
624 */
625static void ptrace_bts_translate_record(struct bts_struct *out, const void *raw)
626{
627 memset(out, 0, sizeof(*out));
628 if (bts_get(raw, bts_from) == bts_escape) {
629 out->qualifier = bts_get(raw, bts_qual);
630 out->variant.jiffies = bts_get(raw, bts_jiffies);
631 } else {
632 out->qualifier = BTS_BRANCH;
633 out->variant.lbr.from_ip = bts_get(raw, bts_from);
634 out->variant.lbr.to_ip = bts_get(raw, bts_to);
635 }
565} 636}
566 637
567static int ptrace_bts_read_record(struct task_struct *child, 638static int ptrace_bts_read_record(struct task_struct *child, size_t index,
568 long index,
569 struct bts_struct __user *out) 639 struct bts_struct __user *out)
570{ 640{
571 struct bts_struct ret; 641 struct bts_struct ret;
572 int retval; 642 const void *bts_record;
573 int bts_end; 643 size_t bts_index, bts_end;
574 int bts_index; 644 int error;
575
576 if (!child->thread.ds_area_msr)
577 return -ENXIO;
578 645
579 if (index < 0) 646 error = ds_get_bts_end(child, &bts_end);
580 return -EINVAL; 647 if (error < 0)
648 return error;
581 649
582 bts_end = ds_get_bts_end((void *)child->thread.ds_area_msr);
583 if (bts_end <= index) 650 if (bts_end <= index)
584 return -EINVAL; 651 return -EINVAL;
585 652
653 error = ds_get_bts_index(child, &bts_index);
654 if (error < 0)
655 return error;
656
586 /* translate the ptrace bts index into the ds bts index */ 657 /* translate the ptrace bts index into the ds bts index */
587 bts_index = ds_get_bts_index((void *)child->thread.ds_area_msr); 658 bts_index += bts_end - (index + 1);
588 bts_index -= (index + 1); 659 if (bts_end <= bts_index)
589 if (bts_index < 0) 660 bts_index -= bts_end;
590 bts_index += bts_end;
591 661
592 retval = ds_read_bts((void *)child->thread.ds_area_msr, 662 error = ds_access_bts(child, bts_index, &bts_record);
593 bts_index, &ret); 663 if (error < 0)
594 if (retval < 0) 664 return error;
595 return retval; 665
666 ptrace_bts_translate_record(&ret, bts_record);
596 667
597 if (copy_to_user(out, &ret, sizeof(ret))) 668 if (copy_to_user(out, &ret, sizeof(ret)))
598 return -EFAULT; 669 return -EFAULT;
@@ -600,101 +671,106 @@ static int ptrace_bts_read_record(struct task_struct *child,
600 return sizeof(ret); 671 return sizeof(ret);
601} 672}
602 673
603static int ptrace_bts_clear(struct task_struct *child)
604{
605 if (!child->thread.ds_area_msr)
606 return -ENXIO;
607
608 return ds_clear((void *)child->thread.ds_area_msr);
609}
610
611static int ptrace_bts_drain(struct task_struct *child, 674static int ptrace_bts_drain(struct task_struct *child,
612 long size, 675 long size,
613 struct bts_struct __user *out) 676 struct bts_struct __user *out)
614{ 677{
615 int end, i; 678 struct bts_struct ret;
616 void *ds = (void *)child->thread.ds_area_msr; 679 const unsigned char *raw;
617 680 size_t end, i;
618 if (!ds) 681 int error;
619 return -ENXIO;
620 682
621 end = ds_get_bts_index(ds); 683 error = ds_get_bts_index(child, &end);
622 if (end <= 0) 684 if (error < 0)
623 return end; 685 return error;
624 686
625 if (size < (end * sizeof(struct bts_struct))) 687 if (size < (end * sizeof(struct bts_struct)))
626 return -EIO; 688 return -EIO;
627 689
628 for (i = 0; i < end; i++, out++) { 690 error = ds_access_bts(child, 0, (const void **)&raw);
629 struct bts_struct ret; 691 if (error < 0)
630 int retval; 692 return error;
631 693
632 retval = ds_read_bts(ds, i, &ret); 694 for (i = 0; i < end; i++, out++, raw += bts_cfg.sizeof_bts) {
633 if (retval < 0) 695 ptrace_bts_translate_record(&ret, raw);
634 return retval;
635 696
636 if (copy_to_user(out, &ret, sizeof(ret))) 697 if (copy_to_user(out, &ret, sizeof(ret)))
637 return -EFAULT; 698 return -EFAULT;
638 } 699 }
639 700
640 ds_clear(ds); 701 error = ds_clear_bts(child);
702 if (error < 0)
703 return error;
641 704
642 return end; 705 return end;
643} 706}
644 707
708static void ptrace_bts_ovfl(struct task_struct *child)
709{
710 send_sig(child->thread.bts_ovfl_signal, child, 0);
711}
712
645static int ptrace_bts_config(struct task_struct *child, 713static int ptrace_bts_config(struct task_struct *child,
646 long cfg_size, 714 long cfg_size,
647 const struct ptrace_bts_config __user *ucfg) 715 const struct ptrace_bts_config __user *ucfg)
648{ 716{
649 struct ptrace_bts_config cfg; 717 struct ptrace_bts_config cfg;
650 int bts_size, ret = 0; 718 int error = 0;
651 void *ds; 719
720 error = -EOPNOTSUPP;
721 if (!bts_cfg.sizeof_bts)
722 goto errout;
652 723
724 error = -EIO;
653 if (cfg_size < sizeof(cfg)) 725 if (cfg_size < sizeof(cfg))
654 return -EIO; 726 goto errout;
655 727
728 error = -EFAULT;
656 if (copy_from_user(&cfg, ucfg, sizeof(cfg))) 729 if (copy_from_user(&cfg, ucfg, sizeof(cfg)))
657 return -EFAULT; 730 goto errout;
658 731
659 if ((int)cfg.size < 0) 732 error = -EINVAL;
660 return -EINVAL; 733 if ((cfg.flags & PTRACE_BTS_O_SIGNAL) &&
734 !(cfg.flags & PTRACE_BTS_O_ALLOC))
735 goto errout;
661 736
662 bts_size = 0; 737 if (cfg.flags & PTRACE_BTS_O_ALLOC) {
663 ds = (void *)child->thread.ds_area_msr; 738 ds_ovfl_callback_t ovfl = NULL;
664 if (ds) { 739 unsigned int sig = 0;
665 bts_size = ds_get_bts_size(ds); 740
666 if (bts_size < 0) 741 /* we ignore the error in case we were not tracing child */
667 return bts_size; 742 (void)ds_release_bts(child);
668 }
669 cfg.size = PAGE_ALIGN(cfg.size);
670 743
671 if (bts_size != cfg.size) { 744 if (cfg.flags & PTRACE_BTS_O_SIGNAL) {
672 ret = ptrace_bts_realloc(child, cfg.size, 745 if (!cfg.signal)
673 cfg.flags & PTRACE_BTS_O_CUT_SIZE); 746 goto errout;
674 if (ret < 0) 747
748 sig = cfg.signal;
749 ovfl = ptrace_bts_ovfl;
750 }
751
752 error = ds_request_bts(child, /* base = */ NULL, cfg.size, ovfl);
753 if (error < 0)
675 goto errout; 754 goto errout;
676 755
677 ds = (void *)child->thread.ds_area_msr; 756 child->thread.bts_ovfl_signal = sig;
678 } 757 }
679 758
680 if (cfg.flags & PTRACE_BTS_O_SIGNAL) 759 error = -EINVAL;
681 ret = ds_set_overflow(ds, DS_O_SIGNAL); 760 if (!child->thread.ds_ctx && cfg.flags)
682 else
683 ret = ds_set_overflow(ds, DS_O_WRAP);
684 if (ret < 0)
685 goto errout; 761 goto errout;
686 762
687 if (cfg.flags & PTRACE_BTS_O_TRACE) 763 if (cfg.flags & PTRACE_BTS_O_TRACE)
688 child->thread.debugctlmsr |= ds_debugctl_mask(); 764 child->thread.debugctlmsr |= bts_cfg.debugctl_mask;
689 else 765 else
690 child->thread.debugctlmsr &= ~ds_debugctl_mask(); 766 child->thread.debugctlmsr &= ~bts_cfg.debugctl_mask;
691 767
692 if (cfg.flags & PTRACE_BTS_O_SCHED) 768 if (cfg.flags & PTRACE_BTS_O_SCHED)
693 set_tsk_thread_flag(child, TIF_BTS_TRACE_TS); 769 set_tsk_thread_flag(child, TIF_BTS_TRACE_TS);
694 else 770 else
695 clear_tsk_thread_flag(child, TIF_BTS_TRACE_TS); 771 clear_tsk_thread_flag(child, TIF_BTS_TRACE_TS);
696 772
697 ret = sizeof(cfg); 773 error = sizeof(cfg);
698 774
699out: 775out:
700 if (child->thread.debugctlmsr) 776 if (child->thread.debugctlmsr)
@@ -702,10 +778,10 @@ out:
702 else 778 else
703 clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); 779 clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR);
704 780
705 return ret; 781 return error;
706 782
707errout: 783errout:
708 child->thread.debugctlmsr &= ~ds_debugctl_mask(); 784 child->thread.debugctlmsr &= ~bts_cfg.debugctl_mask;
709 clear_tsk_thread_flag(child, TIF_BTS_TRACE_TS); 785 clear_tsk_thread_flag(child, TIF_BTS_TRACE_TS);
710 goto out; 786 goto out;
711} 787}
@@ -714,29 +790,40 @@ static int ptrace_bts_status(struct task_struct *child,
714 long cfg_size, 790 long cfg_size,
715 struct ptrace_bts_config __user *ucfg) 791 struct ptrace_bts_config __user *ucfg)
716{ 792{
717 void *ds = (void *)child->thread.ds_area_msr;
718 struct ptrace_bts_config cfg; 793 struct ptrace_bts_config cfg;
794 size_t end;
795 const void *base, *max;
796 int error;
719 797
720 if (cfg_size < sizeof(cfg)) 798 if (cfg_size < sizeof(cfg))
721 return -EIO; 799 return -EIO;
722 800
723 memset(&cfg, 0, sizeof(cfg)); 801 error = ds_get_bts_end(child, &end);
802 if (error < 0)
803 return error;
724 804
725 if (ds) { 805 error = ds_access_bts(child, /* index = */ 0, &base);
726 cfg.size = ds_get_bts_size(ds); 806 if (error < 0)
807 return error;
727 808
728 if (ds_get_overflow(ds) == DS_O_SIGNAL) 809 error = ds_access_bts(child, /* index = */ end, &max);
729 cfg.flags |= PTRACE_BTS_O_SIGNAL; 810 if (error < 0)
811 return error;
730 812
731 if (test_tsk_thread_flag(child, TIF_DEBUGCTLMSR) && 813 memset(&cfg, 0, sizeof(cfg));
732 child->thread.debugctlmsr & ds_debugctl_mask()) 814 cfg.size = (max - base);
733 cfg.flags |= PTRACE_BTS_O_TRACE; 815 cfg.signal = child->thread.bts_ovfl_signal;
816 cfg.bts_size = sizeof(struct bts_struct);
734 817
735 if (test_tsk_thread_flag(child, TIF_BTS_TRACE_TS)) 818 if (cfg.signal)
736 cfg.flags |= PTRACE_BTS_O_SCHED; 819 cfg.flags |= PTRACE_BTS_O_SIGNAL;
737 }
738 820
739 cfg.bts_size = sizeof(struct bts_struct); 821 if (test_tsk_thread_flag(child, TIF_DEBUGCTLMSR) &&
822 child->thread.debugctlmsr & bts_cfg.debugctl_mask)
823 cfg.flags |= PTRACE_BTS_O_TRACE;
824
825 if (test_tsk_thread_flag(child, TIF_BTS_TRACE_TS))
826 cfg.flags |= PTRACE_BTS_O_SCHED;
740 827
741 if (copy_to_user(ucfg, &cfg, sizeof(cfg))) 828 if (copy_to_user(ucfg, &cfg, sizeof(cfg)))
742 return -EFAULT; 829 return -EFAULT;
@@ -744,89 +831,38 @@ static int ptrace_bts_status(struct task_struct *child,
744 return sizeof(cfg); 831 return sizeof(cfg);
745} 832}
746 833
747
748static int ptrace_bts_write_record(struct task_struct *child, 834static int ptrace_bts_write_record(struct task_struct *child,
749 const struct bts_struct *in) 835 const struct bts_struct *in)
750{ 836{
751 int retval; 837 unsigned char bts_record[BTS_MAX_RECORD_SIZE];
752 838
753 if (!child->thread.ds_area_msr) 839 BUG_ON(BTS_MAX_RECORD_SIZE < bts_cfg.sizeof_bts);
754 return -ENXIO;
755 840
756 retval = ds_write_bts((void *)child->thread.ds_area_msr, in); 841 memset(bts_record, 0, bts_cfg.sizeof_bts);
757 if (retval) 842 switch (in->qualifier) {
758 return retval; 843 case BTS_INVALID:
844 break;
759 845
760 return sizeof(*in); 846 case BTS_BRANCH:
761} 847 bts_set(bts_record, bts_from, in->variant.lbr.from_ip);
848 bts_set(bts_record, bts_to, in->variant.lbr.to_ip);
849 break;
762 850
763static int ptrace_bts_realloc(struct task_struct *child, 851 case BTS_TASK_ARRIVES:
764 int size, int reduce_size) 852 case BTS_TASK_DEPARTS:
765{ 853 bts_set(bts_record, bts_from, bts_escape);
766 unsigned long rlim, vm; 854 bts_set(bts_record, bts_qual, in->qualifier);
767 int ret, old_size; 855 bts_set(bts_record, bts_jiffies, in->variant.jiffies);
856 break;
768 857
769 if (size < 0) 858 default:
770 return -EINVAL; 859 return -EINVAL;
771
772 old_size = ds_get_bts_size((void *)child->thread.ds_area_msr);
773 if (old_size < 0)
774 return old_size;
775
776 ret = ds_free((void **)&child->thread.ds_area_msr);
777 if (ret < 0)
778 goto out;
779
780 size >>= PAGE_SHIFT;
781 old_size >>= PAGE_SHIFT;
782
783 current->mm->total_vm -= old_size;
784 current->mm->locked_vm -= old_size;
785
786 if (size == 0)
787 goto out;
788
789 rlim = current->signal->rlim[RLIMIT_AS].rlim_cur >> PAGE_SHIFT;
790 vm = current->mm->total_vm + size;
791 if (rlim < vm) {
792 ret = -ENOMEM;
793
794 if (!reduce_size)
795 goto out;
796
797 size = rlim - current->mm->total_vm;
798 if (size <= 0)
799 goto out;
800 }
801
802 rlim = current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur >> PAGE_SHIFT;
803 vm = current->mm->locked_vm + size;
804 if (rlim < vm) {
805 ret = -ENOMEM;
806
807 if (!reduce_size)
808 goto out;
809
810 size = rlim - current->mm->locked_vm;
811 if (size <= 0)
812 goto out;
813 } 860 }
814 861
815 ret = ds_allocate((void **)&child->thread.ds_area_msr, 862 /* The writing task will be the switched-to task on a context
816 size << PAGE_SHIFT); 863 * switch. It needs to write into the switched-from task's BTS
817 if (ret < 0) 864 * buffer. */
818 goto out; 865 return ds_unchecked_write_bts(child, bts_record, bts_cfg.sizeof_bts);
819
820 current->mm->total_vm += size;
821 current->mm->locked_vm += size;
822
823out:
824 if (child->thread.ds_area_msr)
825 set_tsk_thread_flag(child, TIF_DS_AREA_MSR);
826 else
827 clear_tsk_thread_flag(child, TIF_DS_AREA_MSR);
828
829 return ret;
830} 866}
831 867
832void ptrace_bts_take_timestamp(struct task_struct *tsk, 868void ptrace_bts_take_timestamp(struct task_struct *tsk,
@@ -839,7 +875,66 @@ void ptrace_bts_take_timestamp(struct task_struct *tsk,
839 875
840 ptrace_bts_write_record(tsk, &rec); 876 ptrace_bts_write_record(tsk, &rec);
841} 877}
842#endif /* X86_BTS */ 878
879static const struct bts_configuration bts_cfg_netburst = {
880 .sizeof_bts = sizeof(long) * 3,
881 .sizeof_field = sizeof(long),
882 .debugctl_mask = (1<<2)|(1<<3)|(1<<5)
883};
884
885static const struct bts_configuration bts_cfg_pentium_m = {
886 .sizeof_bts = sizeof(long) * 3,
887 .sizeof_field = sizeof(long),
888 .debugctl_mask = (1<<6)|(1<<7)
889};
890
891static const struct bts_configuration bts_cfg_core2 = {
892 .sizeof_bts = 8 * 3,
893 .sizeof_field = 8,
894 .debugctl_mask = (1<<6)|(1<<7)|(1<<9)
895};
896
897static inline void bts_configure(const struct bts_configuration *cfg)
898{
899 bts_cfg = *cfg;
900}
901
902void __cpuinit ptrace_bts_init_intel(struct cpuinfo_x86 *c)
903{
904 switch (c->x86) {
905 case 0x6:
906 switch (c->x86_model) {
907 case 0xD:
908 case 0xE: /* Pentium M */
909 bts_configure(&bts_cfg_pentium_m);
910 break;
911 case 0xF: /* Core2 */
912 case 0x1C: /* Atom */
913 bts_configure(&bts_cfg_core2);
914 break;
915 default:
916 /* sorry, don't know about them */
917 break;
918 }
919 break;
920 case 0xF:
921 switch (c->x86_model) {
922 case 0x0:
923 case 0x1:
924 case 0x2: /* Netburst */
925 bts_configure(&bts_cfg_netburst);
926 break;
927 default:
928 /* sorry, don't know about them */
929 break;
930 }
931 break;
932 default:
933 /* sorry, don't know about them */
934 break;
935 }
936}
937#endif /* CONFIG_X86_PTRACE_BTS */
843 938
844/* 939/*
845 * Called by kernel/ptrace.c when detaching.. 940 * Called by kernel/ptrace.c when detaching..
@@ -852,15 +947,15 @@ void ptrace_disable(struct task_struct *child)
852#ifdef TIF_SYSCALL_EMU 947#ifdef TIF_SYSCALL_EMU
853 clear_tsk_thread_flag(child, TIF_SYSCALL_EMU); 948 clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
854#endif 949#endif
855 if (child->thread.ds_area_msr) { 950#ifdef CONFIG_X86_PTRACE_BTS
856#ifdef X86_BTS 951 (void)ds_release_bts(child);
857 ptrace_bts_realloc(child, 0, 0); 952
858#endif 953 child->thread.debugctlmsr &= ~bts_cfg.debugctl_mask;
859 child->thread.debugctlmsr &= ~ds_debugctl_mask(); 954 if (!child->thread.debugctlmsr)
860 if (!child->thread.debugctlmsr) 955 clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR);
861 clear_tsk_thread_flag(child, TIF_DEBUGCTLMSR); 956
862 clear_tsk_thread_flag(child, TIF_BTS_TRACE_TS); 957 clear_tsk_thread_flag(child, TIF_BTS_TRACE_TS);
863 } 958#endif /* CONFIG_X86_PTRACE_BTS */
864} 959}
865 960
866#if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION 961#if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION
@@ -980,7 +1075,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
980 /* 1075 /*
981 * These bits need more cooking - not enabled yet: 1076 * These bits need more cooking - not enabled yet:
982 */ 1077 */
983#ifdef X86_BTS 1078#ifdef CONFIG_X86_PTRACE_BTS
984 case PTRACE_BTS_CONFIG: 1079 case PTRACE_BTS_CONFIG:
985 ret = ptrace_bts_config 1080 ret = ptrace_bts_config
986 (child, data, (struct ptrace_bts_config __user *)addr); 1081 (child, data, (struct ptrace_bts_config __user *)addr);
@@ -992,7 +1087,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
992 break; 1087 break;
993 1088
994 case PTRACE_BTS_SIZE: 1089 case PTRACE_BTS_SIZE:
995 ret = ptrace_bts_get_size(child); 1090 ret = ds_get_bts_index(child, /* pos = */ NULL);
996 break; 1091 break;
997 1092
998 case PTRACE_BTS_GET: 1093 case PTRACE_BTS_GET:
@@ -1001,14 +1096,14 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
1001 break; 1096 break;
1002 1097
1003 case PTRACE_BTS_CLEAR: 1098 case PTRACE_BTS_CLEAR:
1004 ret = ptrace_bts_clear(child); 1099 ret = ds_clear_bts(child);
1005 break; 1100 break;
1006 1101
1007 case PTRACE_BTS_DRAIN: 1102 case PTRACE_BTS_DRAIN:
1008 ret = ptrace_bts_drain 1103 ret = ptrace_bts_drain
1009 (child, data, (struct bts_struct __user *) addr); 1104 (child, data, (struct bts_struct __user *) addr);
1010 break; 1105 break;
1011#endif 1106#endif /* CONFIG_X86_PTRACE_BTS */
1012 1107
1013 default: 1108 default:
1014 ret = ptrace_request(child, request, addr, data); 1109 ret = ptrace_request(child, request, addr, data);
@@ -1375,30 +1470,6 @@ void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, int error_code)
1375 force_sig_info(SIGTRAP, &info, tsk); 1470 force_sig_info(SIGTRAP, &info, tsk);
1376} 1471}
1377 1472
1378static void syscall_trace(struct pt_regs *regs)
1379{
1380 if (!(current->ptrace & PT_PTRACED))
1381 return;
1382
1383#if 0
1384 printk("trace %s ip %lx sp %lx ax %d origrax %d caller %lx tiflags %x ptrace %x\n",
1385 current->comm,
1386 regs->ip, regs->sp, regs->ax, regs->orig_ax, __builtin_return_address(0),
1387 current_thread_info()->flags, current->ptrace);
1388#endif
1389
1390 ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
1391 ? 0x80 : 0));
1392 /*
1393 * this isn't the same as continuing with a signal, but it will do
1394 * for normal use. strace only continues with a signal if the
1395 * stopping signal is not SIGTRAP. -brl
1396 */
1397 if (current->exit_code) {
1398 send_sig(current->exit_code, current, 1);
1399 current->exit_code = 0;
1400 }
1401}
1402 1473
1403#ifdef CONFIG_X86_32 1474#ifdef CONFIG_X86_32
1404# define IS_IA32 1 1475# define IS_IA32 1
@@ -1432,8 +1503,9 @@ asmregparm long syscall_trace_enter(struct pt_regs *regs)
1432 if (unlikely(test_thread_flag(TIF_SYSCALL_EMU))) 1503 if (unlikely(test_thread_flag(TIF_SYSCALL_EMU)))
1433 ret = -1L; 1504 ret = -1L;
1434 1505
1435 if (ret || test_thread_flag(TIF_SYSCALL_TRACE)) 1506 if ((ret || test_thread_flag(TIF_SYSCALL_TRACE)) &&
1436 syscall_trace(regs); 1507 tracehook_report_syscall_entry(regs))
1508 ret = -1L;
1437 1509
1438 if (unlikely(current->audit_context)) { 1510 if (unlikely(current->audit_context)) {
1439 if (IS_IA32) 1511 if (IS_IA32)
@@ -1459,7 +1531,7 @@ asmregparm void syscall_trace_leave(struct pt_regs *regs)
1459 audit_syscall_exit(AUDITSC_RESULT(regs->ax), regs->ax); 1531 audit_syscall_exit(AUDITSC_RESULT(regs->ax), regs->ax);
1460 1532
1461 if (test_thread_flag(TIF_SYSCALL_TRACE)) 1533 if (test_thread_flag(TIF_SYSCALL_TRACE))
1462 syscall_trace(regs); 1534 tracehook_report_syscall_exit(regs, 0);
1463 1535
1464 /* 1536 /*
1465 * If TIF_SYSCALL_EMU is set, we only get here because of 1537 * If TIF_SYSCALL_EMU is set, we only get here because of
@@ -1475,6 +1547,6 @@ asmregparm void syscall_trace_leave(struct pt_regs *regs)
1475 * system call instruction. 1547 * system call instruction.
1476 */ 1548 */
1477 if (test_thread_flag(TIF_SINGLESTEP) && 1549 if (test_thread_flag(TIF_SINGLESTEP) &&
1478 (current->ptrace & PT_PTRACED)) 1550 tracehook_consider_fatal_signal(current, SIGTRAP, SIG_DFL))
1479 send_sigtrap(current, regs, 0); 1551 send_sigtrap(current, regs, 0);
1480} 1552}
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 724adfc63cb..f4c93f1cfc1 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -29,7 +29,11 @@ EXPORT_SYMBOL(pm_power_off);
29 29
30static const struct desc_ptr no_idt = {}; 30static const struct desc_ptr no_idt = {};
31static int reboot_mode; 31static int reboot_mode;
32enum reboot_type reboot_type = BOOT_KBD; 32/*
33 * Keyboard reset and triple fault may result in INIT, not RESET, which
34 * doesn't work when we're in vmx root mode. Try ACPI first.
35 */
36enum reboot_type reboot_type = BOOT_ACPI;
33int reboot_force; 37int reboot_force;
34 38
35#if defined(CONFIG_X86_32) && defined(CONFIG_SMP) 39#if defined(CONFIG_X86_32) && defined(CONFIG_SMP)
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index a4656adab53..141efab5240 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -223,6 +223,9 @@ unsigned long saved_video_mode;
223#define RAMDISK_LOAD_FLAG 0x4000 223#define RAMDISK_LOAD_FLAG 0x4000
224 224
225static char __initdata command_line[COMMAND_LINE_SIZE]; 225static char __initdata command_line[COMMAND_LINE_SIZE];
226#ifdef CONFIG_CMDLINE_BOOL
227static char __initdata builtin_cmdline[COMMAND_LINE_SIZE] = CONFIG_CMDLINE;
228#endif
226 229
227#if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE) 230#if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE)
228struct edd edd; 231struct edd edd;
@@ -604,14 +607,6 @@ void __init setup_arch(char **cmdline_p)
604 early_cpu_init(); 607 early_cpu_init();
605 early_ioremap_init(); 608 early_ioremap_init();
606 609
607#if defined(CONFIG_VMI) && defined(CONFIG_X86_32)
608 /*
609 * Must be before kernel pagetables are setup
610 * or fixmap area is touched.
611 */
612 vmi_init();
613#endif
614
615 ROOT_DEV = old_decode_dev(boot_params.hdr.root_dev); 610 ROOT_DEV = old_decode_dev(boot_params.hdr.root_dev);
616 screen_info = boot_params.screen_info; 611 screen_info = boot_params.screen_info;
617 edid_info = boot_params.edid_info; 612 edid_info = boot_params.edid_info;
@@ -673,11 +668,36 @@ void __init setup_arch(char **cmdline_p)
673 bss_resource.start = virt_to_phys(&__bss_start); 668 bss_resource.start = virt_to_phys(&__bss_start);
674 bss_resource.end = virt_to_phys(&__bss_stop)-1; 669 bss_resource.end = virt_to_phys(&__bss_stop)-1;
675 670
671#ifdef CONFIG_CMDLINE_BOOL
672#ifdef CONFIG_CMDLINE_OVERRIDE
673 strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
674#else
675 if (builtin_cmdline[0]) {
676 /* append boot loader cmdline to builtin */
677 strlcat(builtin_cmdline, " ", COMMAND_LINE_SIZE);
678 strlcat(builtin_cmdline, boot_command_line, COMMAND_LINE_SIZE);
679 strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
680 }
681#endif
682#endif
683
676 strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE); 684 strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
677 *cmdline_p = command_line; 685 *cmdline_p = command_line;
678 686
679 parse_early_param(); 687 parse_early_param();
680 688
689#ifdef CONFIG_X86_64
690 check_efer();
691#endif
692
693#if defined(CONFIG_VMI) && defined(CONFIG_X86_32)
694 /*
695 * Must be before kernel pagetables are setup
696 * or fixmap area is touched.
697 */
698 vmi_init();
699#endif
700
681 /* after early param, so could get panic from serial */ 701 /* after early param, so could get panic from serial */
682 reserve_early_setup_data(); 702 reserve_early_setup_data();
683 703
@@ -738,7 +758,6 @@ void __init setup_arch(char **cmdline_p)
738#else 758#else
739 num_physpages = max_pfn; 759 num_physpages = max_pfn;
740 760
741 check_efer();
742 761
743 /* How many end-of-memory variables you have, grandma! */ 762 /* How many end-of-memory variables you have, grandma! */
744 /* need this before calling reserve_initrd */ 763 /* need this before calling reserve_initrd */
diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
index 76e305e064f..0e67f72d931 100644
--- a/arch/x86/kernel/setup_percpu.c
+++ b/arch/x86/kernel/setup_percpu.c
@@ -162,9 +162,16 @@ void __init setup_per_cpu_areas(void)
162 printk(KERN_INFO 162 printk(KERN_INFO
163 "cpu %d has no node %d or node-local memory\n", 163 "cpu %d has no node %d or node-local memory\n",
164 cpu, node); 164 cpu, node);
165 if (ptr)
166 printk(KERN_DEBUG "per cpu data for cpu%d at %016lx\n",
167 cpu, __pa(ptr));
165 } 168 }
166 else 169 else {
167 ptr = alloc_bootmem_pages_node(NODE_DATA(node), size); 170 ptr = alloc_bootmem_pages_node(NODE_DATA(node), size);
171 if (ptr)
172 printk(KERN_DEBUG "per cpu data for cpu%d on node%d at %016lx\n",
173 cpu, node, __pa(ptr));
174 }
168#endif 175#endif
169 per_cpu_offset(cpu) = ptr - __per_cpu_start; 176 per_cpu_offset(cpu) = ptr - __per_cpu_start;
170 memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start); 177 memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start);
diff --git a/arch/x86/kernel/sigframe.h b/arch/x86/kernel/sigframe.h
index 72bbb519d2d..8b4956e800a 100644
--- a/arch/x86/kernel/sigframe.h
+++ b/arch/x86/kernel/sigframe.h
@@ -24,4 +24,9 @@ struct rt_sigframe {
24 struct ucontext uc; 24 struct ucontext uc;
25 struct siginfo info; 25 struct siginfo info;
26}; 26};
27
28int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
29 sigset_t *set, struct pt_regs *regs);
30int ia32_setup_frame(int sig, struct k_sigaction *ka,
31 sigset_t *set, struct pt_regs *regs);
27#endif 32#endif
diff --git a/arch/x86/kernel/signal_32.c b/arch/x86/kernel/signal_32.c
index 6fb5bcdd893..2a2435d3037 100644
--- a/arch/x86/kernel/signal_32.c
+++ b/arch/x86/kernel/signal_32.c
@@ -17,6 +17,7 @@
17#include <linux/errno.h> 17#include <linux/errno.h>
18#include <linux/sched.h> 18#include <linux/sched.h>
19#include <linux/wait.h> 19#include <linux/wait.h>
20#include <linux/tracehook.h>
20#include <linux/elf.h> 21#include <linux/elf.h>
21#include <linux/smp.h> 22#include <linux/smp.h>
22#include <linux/mm.h> 23#include <linux/mm.h>
@@ -26,6 +27,7 @@
26#include <asm/uaccess.h> 27#include <asm/uaccess.h>
27#include <asm/i387.h> 28#include <asm/i387.h>
28#include <asm/vdso.h> 29#include <asm/vdso.h>
30#include <asm/syscalls.h>
29 31
30#include "sigframe.h" 32#include "sigframe.h"
31 33
@@ -558,8 +560,6 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
558 * handler too. 560 * handler too.
559 */ 561 */
560 regs->flags &= ~X86_EFLAGS_TF; 562 regs->flags &= ~X86_EFLAGS_TF;
561 if (test_thread_flag(TIF_SINGLESTEP))
562 ptrace_notify(SIGTRAP);
563 563
564 spin_lock_irq(&current->sighand->siglock); 564 spin_lock_irq(&current->sighand->siglock);
565 sigorsets(&current->blocked, &current->blocked, &ka->sa.sa_mask); 565 sigorsets(&current->blocked, &current->blocked, &ka->sa.sa_mask);
@@ -568,6 +568,9 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
568 recalc_sigpending(); 568 recalc_sigpending();
569 spin_unlock_irq(&current->sighand->siglock); 569 spin_unlock_irq(&current->sighand->siglock);
570 570
571 tracehook_signal_handler(sig, info, ka, regs,
572 test_thread_flag(TIF_SINGLESTEP));
573
571 return 0; 574 return 0;
572} 575}
573 576
@@ -661,5 +664,10 @@ do_notify_resume(struct pt_regs *regs, void *unused, __u32 thread_info_flags)
661 if (thread_info_flags & _TIF_SIGPENDING) 664 if (thread_info_flags & _TIF_SIGPENDING)
662 do_signal(regs); 665 do_signal(regs);
663 666
667 if (thread_info_flags & _TIF_NOTIFY_RESUME) {
668 clear_thread_flag(TIF_NOTIFY_RESUME);
669 tracehook_notify_resume(regs);
670 }
671
664 clear_thread_flag(TIF_IRET); 672 clear_thread_flag(TIF_IRET);
665} 673}
diff --git a/arch/x86/kernel/signal_64.c b/arch/x86/kernel/signal_64.c
index ca316b5b742..694aa888bb1 100644
--- a/arch/x86/kernel/signal_64.c
+++ b/arch/x86/kernel/signal_64.c
@@ -15,17 +15,21 @@
15#include <linux/errno.h> 15#include <linux/errno.h>
16#include <linux/wait.h> 16#include <linux/wait.h>
17#include <linux/ptrace.h> 17#include <linux/ptrace.h>
18#include <linux/tracehook.h>
18#include <linux/unistd.h> 19#include <linux/unistd.h>
19#include <linux/stddef.h> 20#include <linux/stddef.h>
20#include <linux/personality.h> 21#include <linux/personality.h>
21#include <linux/compiler.h> 22#include <linux/compiler.h>
23#include <linux/uaccess.h>
24
22#include <asm/processor.h> 25#include <asm/processor.h>
23#include <asm/ucontext.h> 26#include <asm/ucontext.h>
24#include <asm/uaccess.h>
25#include <asm/i387.h> 27#include <asm/i387.h>
26#include <asm/proto.h> 28#include <asm/proto.h>
27#include <asm/ia32_unistd.h> 29#include <asm/ia32_unistd.h>
28#include <asm/mce.h> 30#include <asm/mce.h>
31#include <asm/syscall.h>
32#include <asm/syscalls.h>
29#include "sigframe.h" 33#include "sigframe.h"
30 34
31#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) 35#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
@@ -41,11 +45,6 @@
41# define FIX_EFLAGS __FIX_EFLAGS 45# define FIX_EFLAGS __FIX_EFLAGS
42#endif 46#endif
43 47
44int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
45 sigset_t *set, struct pt_regs * regs);
46int ia32_setup_frame(int sig, struct k_sigaction *ka,
47 sigset_t *set, struct pt_regs * regs);
48
49asmlinkage long 48asmlinkage long
50sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, 49sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss,
51 struct pt_regs *regs) 50 struct pt_regs *regs)
@@ -128,7 +127,7 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc,
128 /* Always make any pending restarted system calls return -EINTR */ 127 /* Always make any pending restarted system calls return -EINTR */
129 current_thread_info()->restart_block.fn = do_no_restart_syscall; 128 current_thread_info()->restart_block.fn = do_no_restart_syscall;
130 129
131#define COPY(x) err |= __get_user(regs->x, &sc->x) 130#define COPY(x) (err |= __get_user(regs->x, &sc->x))
132 131
133 COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx); 132 COPY(di); COPY(si); COPY(bp); COPY(sp); COPY(bx);
134 COPY(dx); COPY(cx); COPY(ip); 133 COPY(dx); COPY(cx); COPY(ip);
@@ -158,7 +157,7 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc,
158 } 157 }
159 158
160 { 159 {
161 struct _fpstate __user * buf; 160 struct _fpstate __user *buf;
162 err |= __get_user(buf, &sc->fpstate); 161 err |= __get_user(buf, &sc->fpstate);
163 162
164 if (buf) { 163 if (buf) {
@@ -198,7 +197,7 @@ asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
198 current->blocked = set; 197 current->blocked = set;
199 recalc_sigpending(); 198 recalc_sigpending();
200 spin_unlock_irq(&current->sighand->siglock); 199 spin_unlock_irq(&current->sighand->siglock);
201 200
202 if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &ax)) 201 if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &ax))
203 goto badframe; 202 goto badframe;
204 203
@@ -208,16 +207,17 @@ asmlinkage long sys_rt_sigreturn(struct pt_regs *regs)
208 return ax; 207 return ax;
209 208
210badframe: 209badframe:
211 signal_fault(regs,frame,"sigreturn"); 210 signal_fault(regs, frame, "sigreturn");
212 return 0; 211 return 0;
213} 212}
214 213
215/* 214/*
216 * Set up a signal frame. 215 * Set up a signal frame.
217 */ 216 */
218 217
219static inline int 218static inline int
220setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs, unsigned long mask, struct task_struct *me) 219setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs,
220 unsigned long mask, struct task_struct *me)
221{ 221{
222 int err = 0; 222 int err = 0;
223 223
@@ -273,35 +273,35 @@ get_stack(struct k_sigaction *ka, struct pt_regs *regs, unsigned long size)
273} 273}
274 274
275static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, 275static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
276 sigset_t *set, struct pt_regs * regs) 276 sigset_t *set, struct pt_regs *regs)
277{ 277{
278 struct rt_sigframe __user *frame; 278 struct rt_sigframe __user *frame;
279 struct _fpstate __user *fp = NULL; 279 struct _fpstate __user *fp = NULL;
280 int err = 0; 280 int err = 0;
281 struct task_struct *me = current; 281 struct task_struct *me = current;
282 282
283 if (used_math()) { 283 if (used_math()) {
284 fp = get_stack(ka, regs, sizeof(struct _fpstate)); 284 fp = get_stack(ka, regs, sizeof(struct _fpstate));
285 frame = (void __user *)round_down( 285 frame = (void __user *)round_down(
286 (unsigned long)fp - sizeof(struct rt_sigframe), 16) - 8; 286 (unsigned long)fp - sizeof(struct rt_sigframe), 16) - 8;
287 287
288 if (!access_ok(VERIFY_WRITE, fp, sizeof(struct _fpstate))) 288 if (!access_ok(VERIFY_WRITE, fp, sizeof(struct _fpstate)))
289 goto give_sigsegv; 289 goto give_sigsegv;
290 290
291 if (save_i387(fp) < 0) 291 if (save_i387(fp) < 0)
292 err |= -1; 292 err |= -1;
293 } else 293 } else
294 frame = get_stack(ka, regs, sizeof(struct rt_sigframe)) - 8; 294 frame = get_stack(ka, regs, sizeof(struct rt_sigframe)) - 8;
295 295
296 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 296 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
297 goto give_sigsegv; 297 goto give_sigsegv;
298 298
299 if (ka->sa.sa_flags & SA_SIGINFO) { 299 if (ka->sa.sa_flags & SA_SIGINFO) {
300 err |= copy_siginfo_to_user(&frame->info, info); 300 err |= copy_siginfo_to_user(&frame->info, info);
301 if (err) 301 if (err)
302 goto give_sigsegv; 302 goto give_sigsegv;
303 } 303 }
304 304
305 /* Create the ucontext. */ 305 /* Create the ucontext. */
306 err |= __put_user(0, &frame->uc.uc_flags); 306 err |= __put_user(0, &frame->uc.uc_flags);
307 err |= __put_user(0, &frame->uc.uc_link); 307 err |= __put_user(0, &frame->uc.uc_link);
@@ -311,9 +311,9 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
311 err |= __put_user(me->sas_ss_size, &frame->uc.uc_stack.ss_size); 311 err |= __put_user(me->sas_ss_size, &frame->uc.uc_stack.ss_size);
312 err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0], me); 312 err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0], me);
313 err |= __put_user(fp, &frame->uc.uc_mcontext.fpstate); 313 err |= __put_user(fp, &frame->uc.uc_mcontext.fpstate);
314 if (sizeof(*set) == 16) { 314 if (sizeof(*set) == 16) {
315 __put_user(set->sig[0], &frame->uc.uc_sigmask.sig[0]); 315 __put_user(set->sig[0], &frame->uc.uc_sigmask.sig[0]);
316 __put_user(set->sig[1], &frame->uc.uc_sigmask.sig[1]); 316 __put_user(set->sig[1], &frame->uc.uc_sigmask.sig[1]);
317 } else 317 } else
318 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); 318 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
319 319
@@ -324,7 +324,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
324 err |= __put_user(ka->sa.sa_restorer, &frame->pretcode); 324 err |= __put_user(ka->sa.sa_restorer, &frame->pretcode);
325 } else { 325 } else {
326 /* could use a vstub here */ 326 /* could use a vstub here */
327 goto give_sigsegv; 327 goto give_sigsegv;
328 } 328 }
329 329
330 if (err) 330 if (err)
@@ -332,7 +332,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
332 332
333 /* Set up registers for signal handler */ 333 /* Set up registers for signal handler */
334 regs->di = sig; 334 regs->di = sig;
335 /* In case the signal handler was declared without prototypes */ 335 /* In case the signal handler was declared without prototypes */
336 regs->ax = 0; 336 regs->ax = 0;
337 337
338 /* This also works for non SA_SIGINFO handlers because they expect the 338 /* This also works for non SA_SIGINFO handlers because they expect the
@@ -355,37 +355,8 @@ give_sigsegv:
355} 355}
356 356
357/* 357/*
358 * Return -1L or the syscall number that @regs is executing.
359 */
360static long current_syscall(struct pt_regs *regs)
361{
362 /*
363 * We always sign-extend a -1 value being set here,
364 * so this is always either -1L or a syscall number.
365 */
366 return regs->orig_ax;
367}
368
369/*
370 * Return a value that is -EFOO if the system call in @regs->orig_ax
371 * returned an error. This only works for @regs from @current.
372 */
373static long current_syscall_ret(struct pt_regs *regs)
374{
375#ifdef CONFIG_IA32_EMULATION
376 if (test_thread_flag(TIF_IA32))
377 /*
378 * Sign-extend the value so (int)-EFOO becomes (long)-EFOO
379 * and will match correctly in comparisons.
380 */
381 return (int) regs->ax;
382#endif
383 return regs->ax;
384}
385
386/*
387 * OK, we're invoking a handler 358 * OK, we're invoking a handler
388 */ 359 */
389 360
390static int 361static int
391handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka, 362handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
@@ -394,9 +365,9 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
394 int ret; 365 int ret;
395 366
396 /* Are we from a system call? */ 367 /* Are we from a system call? */
397 if (current_syscall(regs) >= 0) { 368 if (syscall_get_nr(current, regs) >= 0) {
398 /* If so, check system call restarting.. */ 369 /* If so, check system call restarting.. */
399 switch (current_syscall_ret(regs)) { 370 switch (syscall_get_error(current, regs)) {
400 case -ERESTART_RESTARTBLOCK: 371 case -ERESTART_RESTARTBLOCK:
401 case -ERESTARTNOHAND: 372 case -ERESTARTNOHAND:
402 regs->ax = -EINTR; 373 regs->ax = -EINTR;
@@ -429,7 +400,7 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
429 ret = ia32_setup_rt_frame(sig, ka, info, oldset, regs); 400 ret = ia32_setup_rt_frame(sig, ka, info, oldset, regs);
430 else 401 else
431 ret = ia32_setup_frame(sig, ka, oldset, regs); 402 ret = ia32_setup_frame(sig, ka, oldset, regs);
432 } else 403 } else
433#endif 404#endif
434 ret = setup_rt_frame(sig, ka, info, oldset, regs); 405 ret = setup_rt_frame(sig, ka, info, oldset, regs);
435 406
@@ -453,15 +424,16 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
453 * handler too. 424 * handler too.
454 */ 425 */
455 regs->flags &= ~X86_EFLAGS_TF; 426 regs->flags &= ~X86_EFLAGS_TF;
456 if (test_thread_flag(TIF_SINGLESTEP))
457 ptrace_notify(SIGTRAP);
458 427
459 spin_lock_irq(&current->sighand->siglock); 428 spin_lock_irq(&current->sighand->siglock);
460 sigorsets(&current->blocked,&current->blocked,&ka->sa.sa_mask); 429 sigorsets(&current->blocked, &current->blocked, &ka->sa.sa_mask);
461 if (!(ka->sa.sa_flags & SA_NODEFER)) 430 if (!(ka->sa.sa_flags & SA_NODEFER))
462 sigaddset(&current->blocked,sig); 431 sigaddset(&current->blocked, sig);
463 recalc_sigpending(); 432 recalc_sigpending();
464 spin_unlock_irq(&current->sighand->siglock); 433 spin_unlock_irq(&current->sighand->siglock);
434
435 tracehook_signal_handler(sig, info, ka, regs,
436 test_thread_flag(TIF_SINGLESTEP));
465 } 437 }
466 438
467 return ret; 439 return ret;
@@ -518,9 +490,9 @@ static void do_signal(struct pt_regs *regs)
518 } 490 }
519 491
520 /* Did we come from a system call? */ 492 /* Did we come from a system call? */
521 if (current_syscall(regs) >= 0) { 493 if (syscall_get_nr(current, regs) >= 0) {
522 /* Restart the system call - no handlers present */ 494 /* Restart the system call - no handlers present */
523 switch (current_syscall_ret(regs)) { 495 switch (syscall_get_error(current, regs)) {
524 case -ERESTARTNOHAND: 496 case -ERESTARTNOHAND:
525 case -ERESTARTSYS: 497 case -ERESTARTSYS:
526 case -ERESTARTNOINTR: 498 case -ERESTARTNOINTR:
@@ -558,17 +530,23 @@ void do_notify_resume(struct pt_regs *regs, void *unused,
558 /* deal with pending signal delivery */ 530 /* deal with pending signal delivery */
559 if (thread_info_flags & _TIF_SIGPENDING) 531 if (thread_info_flags & _TIF_SIGPENDING)
560 do_signal(regs); 532 do_signal(regs);
533
534 if (thread_info_flags & _TIF_NOTIFY_RESUME) {
535 clear_thread_flag(TIF_NOTIFY_RESUME);
536 tracehook_notify_resume(regs);
537 }
561} 538}
562 539
563void signal_fault(struct pt_regs *regs, void __user *frame, char *where) 540void signal_fault(struct pt_regs *regs, void __user *frame, char *where)
564{ 541{
565 struct task_struct *me = current; 542 struct task_struct *me = current;
566 if (show_unhandled_signals && printk_ratelimit()) { 543 if (show_unhandled_signals && printk_ratelimit()) {
567 printk("%s[%d] bad frame in %s frame:%p ip:%lx sp:%lx orax:%lx", 544 printk("%s[%d] bad frame in %s frame:%p ip:%lx sp:%lx orax:%lx",
568 me->comm,me->pid,where,frame,regs->ip,regs->sp,regs->orig_ax); 545 me->comm, me->pid, where, frame, regs->ip,
546 regs->sp, regs->orig_ax);
569 print_vma_addr(" in ", regs->ip); 547 print_vma_addr(" in ", regs->ip);
570 printk("\n"); 548 printk("\n");
571 } 549 }
572 550
573 force_sig(SIGSEGV, me); 551 force_sig(SIGSEGV, me);
574} 552}
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index e139e617f42..45531e3ba19 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -88,7 +88,7 @@ static DEFINE_PER_CPU(struct task_struct *, idle_thread_array);
88#define get_idle_for_cpu(x) (per_cpu(idle_thread_array, x)) 88#define get_idle_for_cpu(x) (per_cpu(idle_thread_array, x))
89#define set_idle_for_cpu(x, p) (per_cpu(idle_thread_array, x) = (p)) 89#define set_idle_for_cpu(x, p) (per_cpu(idle_thread_array, x) = (p))
90#else 90#else
91struct task_struct *idle_thread_array[NR_CPUS] __cpuinitdata ; 91static struct task_struct *idle_thread_array[NR_CPUS] __cpuinitdata ;
92#define get_idle_for_cpu(x) (idle_thread_array[(x)]) 92#define get_idle_for_cpu(x) (idle_thread_array[(x)])
93#define set_idle_for_cpu(x, p) (idle_thread_array[(x)] = (p)) 93#define set_idle_for_cpu(x, p) (idle_thread_array[(x)] = (p))
94#endif 94#endif
@@ -129,7 +129,7 @@ static int boot_cpu_logical_apicid;
129static cpumask_t cpu_sibling_setup_map; 129static cpumask_t cpu_sibling_setup_map;
130 130
131/* Set if we find a B stepping CPU */ 131/* Set if we find a B stepping CPU */
132int __cpuinitdata smp_b_stepping; 132static int __cpuinitdata smp_b_stepping;
133 133
134#if defined(CONFIG_NUMA) && defined(CONFIG_X86_32) 134#if defined(CONFIG_NUMA) && defined(CONFIG_X86_32)
135 135
@@ -1221,6 +1221,9 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus)
1221 printk(KERN_INFO "CPU%d: ", 0); 1221 printk(KERN_INFO "CPU%d: ", 0);
1222 print_cpu_info(&cpu_data(0)); 1222 print_cpu_info(&cpu_data(0));
1223 setup_boot_clock(); 1223 setup_boot_clock();
1224
1225 if (is_uv_system())
1226 uv_system_init();
1224out: 1227out:
1225 preempt_enable(); 1228 preempt_enable();
1226} 1229}
@@ -1310,16 +1313,13 @@ __init void prefill_possible_map(void)
1310 if (!num_processors) 1313 if (!num_processors)
1311 num_processors = 1; 1314 num_processors = 1;
1312 1315
1313#ifdef CONFIG_HOTPLUG_CPU
1314 if (additional_cpus == -1) { 1316 if (additional_cpus == -1) {
1315 if (disabled_cpus > 0) 1317 if (disabled_cpus > 0)
1316 additional_cpus = disabled_cpus; 1318 additional_cpus = disabled_cpus;
1317 else 1319 else
1318 additional_cpus = 0; 1320 additional_cpus = 0;
1319 } 1321 }
1320#else 1322
1321 additional_cpus = 0;
1322#endif
1323 possible = num_processors + additional_cpus; 1323 possible = num_processors + additional_cpus;
1324 if (possible > NR_CPUS) 1324 if (possible > NR_CPUS)
1325 possible = NR_CPUS; 1325 possible = NR_CPUS;
diff --git a/arch/x86/kernel/sys_i386_32.c b/arch/x86/kernel/sys_i386_32.c
index 7066cb855a6..1884a8d12bf 100644
--- a/arch/x86/kernel/sys_i386_32.c
+++ b/arch/x86/kernel/sys_i386_32.c
@@ -22,6 +22,8 @@
22#include <linux/uaccess.h> 22#include <linux/uaccess.h>
23#include <linux/unistd.h> 23#include <linux/unistd.h>
24 24
25#include <asm/syscalls.h>
26
25asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, 27asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
26 unsigned long prot, unsigned long flags, 28 unsigned long prot, unsigned long flags,
27 unsigned long fd, unsigned long pgoff) 29 unsigned long fd, unsigned long pgoff)
diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c
index 3b360ef3381..6bc211accf0 100644
--- a/arch/x86/kernel/sys_x86_64.c
+++ b/arch/x86/kernel/sys_x86_64.c
@@ -13,15 +13,17 @@
13#include <linux/utsname.h> 13#include <linux/utsname.h>
14#include <linux/personality.h> 14#include <linux/personality.h>
15#include <linux/random.h> 15#include <linux/random.h>
16#include <linux/uaccess.h>
16 17
17#include <asm/uaccess.h>
18#include <asm/ia32.h> 18#include <asm/ia32.h>
19#include <asm/syscalls.h>
19 20
20asmlinkage long sys_mmap(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, 21asmlinkage long sys_mmap(unsigned long addr, unsigned long len,
21 unsigned long fd, unsigned long off) 22 unsigned long prot, unsigned long flags,
23 unsigned long fd, unsigned long off)
22{ 24{
23 long error; 25 long error;
24 struct file * file; 26 struct file *file;
25 27
26 error = -EINVAL; 28 error = -EINVAL;
27 if (off & ~PAGE_MASK) 29 if (off & ~PAGE_MASK)
@@ -56,9 +58,9 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
56 unmapped base down for this case. This can give 58 unmapped base down for this case. This can give
57 conflicts with the heap, but we assume that glibc 59 conflicts with the heap, but we assume that glibc
58 malloc knows how to fall back to mmap. Give it 1GB 60 malloc knows how to fall back to mmap. Give it 1GB
59 of playground for now. -AK */ 61 of playground for now. -AK */
60 *begin = 0x40000000; 62 *begin = 0x40000000;
61 *end = 0x80000000; 63 *end = 0x80000000;
62 if (current->flags & PF_RANDOMIZE) { 64 if (current->flags & PF_RANDOMIZE) {
63 new_begin = randomize_range(*begin, *begin + 0x02000000, 0); 65 new_begin = randomize_range(*begin, *begin + 0x02000000, 0);
64 if (new_begin) 66 if (new_begin)
@@ -66,9 +68,9 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
66 } 68 }
67 } else { 69 } else {
68 *begin = TASK_UNMAPPED_BASE; 70 *begin = TASK_UNMAPPED_BASE;
69 *end = TASK_SIZE; 71 *end = TASK_SIZE;
70 } 72 }
71} 73}
72 74
73unsigned long 75unsigned long
74arch_get_unmapped_area(struct file *filp, unsigned long addr, 76arch_get_unmapped_area(struct file *filp, unsigned long addr,
@@ -78,11 +80,11 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
78 struct vm_area_struct *vma; 80 struct vm_area_struct *vma;
79 unsigned long start_addr; 81 unsigned long start_addr;
80 unsigned long begin, end; 82 unsigned long begin, end;
81 83
82 if (flags & MAP_FIXED) 84 if (flags & MAP_FIXED)
83 return addr; 85 return addr;
84 86
85 find_start_end(flags, &begin, &end); 87 find_start_end(flags, &begin, &end);
86 88
87 if (len > end) 89 if (len > end)
88 return -ENOMEM; 90 return -ENOMEM;
@@ -96,12 +98,12 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
96 } 98 }
97 if (((flags & MAP_32BIT) || test_thread_flag(TIF_IA32)) 99 if (((flags & MAP_32BIT) || test_thread_flag(TIF_IA32))
98 && len <= mm->cached_hole_size) { 100 && len <= mm->cached_hole_size) {
99 mm->cached_hole_size = 0; 101 mm->cached_hole_size = 0;
100 mm->free_area_cache = begin; 102 mm->free_area_cache = begin;
101 } 103 }
102 addr = mm->free_area_cache; 104 addr = mm->free_area_cache;
103 if (addr < begin) 105 if (addr < begin)
104 addr = begin; 106 addr = begin;
105 start_addr = addr; 107 start_addr = addr;
106 108
107full_search: 109full_search:
@@ -127,7 +129,7 @@ full_search:
127 return addr; 129 return addr;
128 } 130 }
129 if (addr + mm->cached_hole_size < vma->vm_start) 131 if (addr + mm->cached_hole_size < vma->vm_start)
130 mm->cached_hole_size = vma->vm_start - addr; 132 mm->cached_hole_size = vma->vm_start - addr;
131 133
132 addr = vma->vm_end; 134 addr = vma->vm_end;
133 } 135 }
@@ -177,7 +179,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
177 vma = find_vma(mm, addr-len); 179 vma = find_vma(mm, addr-len);
178 if (!vma || addr <= vma->vm_start) 180 if (!vma || addr <= vma->vm_start)
179 /* remember the address as a hint for next time */ 181 /* remember the address as a hint for next time */
180 return (mm->free_area_cache = addr-len); 182 return mm->free_area_cache = addr-len;
181 } 183 }
182 184
183 if (mm->mmap_base < len) 185 if (mm->mmap_base < len)
@@ -194,7 +196,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
194 vma = find_vma(mm, addr); 196 vma = find_vma(mm, addr);
195 if (!vma || addr+len <= vma->vm_start) 197 if (!vma || addr+len <= vma->vm_start)
196 /* remember the address as a hint for next time */ 198 /* remember the address as a hint for next time */
197 return (mm->free_area_cache = addr); 199 return mm->free_area_cache = addr;
198 200
199 /* remember the largest hole we saw so far */ 201 /* remember the largest hole we saw so far */
200 if (addr + mm->cached_hole_size < vma->vm_start) 202 if (addr + mm->cached_hole_size < vma->vm_start)
@@ -224,13 +226,13 @@ bottomup:
224} 226}
225 227
226 228
227asmlinkage long sys_uname(struct new_utsname __user * name) 229asmlinkage long sys_uname(struct new_utsname __user *name)
228{ 230{
229 int err; 231 int err;
230 down_read(&uts_sem); 232 down_read(&uts_sem);
231 err = copy_to_user(name, utsname(), sizeof (*name)); 233 err = copy_to_user(name, utsname(), sizeof(*name));
232 up_read(&uts_sem); 234 up_read(&uts_sem);
233 if (personality(current->personality) == PER_LINUX32) 235 if (personality(current->personality) == PER_LINUX32)
234 err |= copy_to_user(&name->machine, "i686", 5); 236 err |= copy_to_user(&name->machine, "i686", 5);
235 return err ? -EFAULT : 0; 237 return err ? -EFAULT : 0;
236} 238}
diff --git a/arch/x86/kernel/syscall_64.c b/arch/x86/kernel/syscall_64.c
index 170d43c1748..3d1be4f0fac 100644
--- a/arch/x86/kernel/syscall_64.c
+++ b/arch/x86/kernel/syscall_64.c
@@ -8,12 +8,12 @@
8#define __NO_STUBS 8#define __NO_STUBS
9 9
10#define __SYSCALL(nr, sym) extern asmlinkage void sym(void) ; 10#define __SYSCALL(nr, sym) extern asmlinkage void sym(void) ;
11#undef _ASM_X86_64_UNISTD_H_ 11#undef ASM_X86__UNISTD_64_H
12#include <asm/unistd_64.h> 12#include <asm/unistd_64.h>
13 13
14#undef __SYSCALL 14#undef __SYSCALL
15#define __SYSCALL(nr, sym) [nr] = sym, 15#define __SYSCALL(nr, sym) [nr] = sym,
16#undef _ASM_X86_64_UNISTD_H_ 16#undef ASM_X86__UNISTD_64_H
17 17
18typedef void (*sys_call_ptr_t)(void); 18typedef void (*sys_call_ptr_t)(void);
19 19
diff --git a/arch/x86/kernel/time_32.c b/arch/x86/kernel/time_32.c
index ffe3c664afc..bbecf8b6bf9 100644
--- a/arch/x86/kernel/time_32.c
+++ b/arch/x86/kernel/time_32.c
@@ -36,6 +36,7 @@
36#include <asm/arch_hooks.h> 36#include <asm/arch_hooks.h>
37#include <asm/hpet.h> 37#include <asm/hpet.h>
38#include <asm/time.h> 38#include <asm/time.h>
39#include <asm/timer.h>
39 40
40#include "do_timer.h" 41#include "do_timer.h"
41 42
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index d0fbb7712ab..8b8c0d6640f 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -17,6 +17,7 @@
17#include <asm/genapic.h> 17#include <asm/genapic.h>
18#include <asm/idle.h> 18#include <asm/idle.h>
19#include <asm/tsc.h> 19#include <asm/tsc.h>
20#include <asm/irq_vectors.h>
20 21
21#include <mach_apic.h> 22#include <mach_apic.h>
22 23
@@ -783,7 +784,7 @@ static int __init uv_bau_init(void)
783 uv_init_blade(blade, node, cur_cpu); 784 uv_init_blade(blade, node, cur_cpu);
784 cur_cpu += uv_blade_nr_possible_cpus(blade); 785 cur_cpu += uv_blade_nr_possible_cpus(blade);
785 } 786 }
786 set_intr_gate(UV_BAU_MESSAGE, uv_bau_message_intr1); 787 alloc_intr_gate(UV_BAU_MESSAGE, uv_bau_message_intr1);
787 uv_enable_timeouts(); 788 uv_enable_timeouts();
788 789
789 return 0; 790 return 0;
diff --git a/arch/x86/kernel/tls.c b/arch/x86/kernel/tls.c
index ab6bf375a30..6bb7b8579e7 100644
--- a/arch/x86/kernel/tls.c
+++ b/arch/x86/kernel/tls.c
@@ -10,6 +10,7 @@
10#include <asm/ldt.h> 10#include <asm/ldt.h>
11#include <asm/processor.h> 11#include <asm/processor.h>
12#include <asm/proto.h> 12#include <asm/proto.h>
13#include <asm/syscalls.h>
13 14
14#include "tls.h" 15#include "tls.h"
15 16
diff --git a/arch/x86/kernel/traps_64.c b/arch/x86/kernel/traps_64.c
index 513caaca711..7a31f104bef 100644
--- a/arch/x86/kernel/traps_64.c
+++ b/arch/x86/kernel/traps_64.c
@@ -32,6 +32,8 @@
32#include <linux/bug.h> 32#include <linux/bug.h>
33#include <linux/nmi.h> 33#include <linux/nmi.h>
34#include <linux/mm.h> 34#include <linux/mm.h>
35#include <linux/smp.h>
36#include <linux/io.h>
35 37
36#if defined(CONFIG_EDAC) 38#if defined(CONFIG_EDAC)
37#include <linux/edac.h> 39#include <linux/edac.h>
@@ -45,9 +47,6 @@
45#include <asm/unwind.h> 47#include <asm/unwind.h>
46#include <asm/desc.h> 48#include <asm/desc.h>
47#include <asm/i387.h> 49#include <asm/i387.h>
48#include <asm/nmi.h>
49#include <asm/smp.h>
50#include <asm/io.h>
51#include <asm/pgalloc.h> 50#include <asm/pgalloc.h>
52#include <asm/proto.h> 51#include <asm/proto.h>
53#include <asm/pda.h> 52#include <asm/pda.h>
@@ -85,7 +84,8 @@ static inline void preempt_conditional_cli(struct pt_regs *regs)
85 84
86void printk_address(unsigned long address, int reliable) 85void printk_address(unsigned long address, int reliable)
87{ 86{
88 printk(" [<%016lx>] %s%pS\n", address, reliable ? "": "? ", (void *) address); 87 printk(" [<%016lx>] %s%pS\n",
88 address, reliable ? "" : "? ", (void *) address);
89} 89}
90 90
91static unsigned long *in_exception_stack(unsigned cpu, unsigned long stack, 91static unsigned long *in_exception_stack(unsigned cpu, unsigned long stack,
@@ -98,7 +98,8 @@ static unsigned long *in_exception_stack(unsigned cpu, unsigned long stack,
98 [STACKFAULT_STACK - 1] = "#SS", 98 [STACKFAULT_STACK - 1] = "#SS",
99 [MCE_STACK - 1] = "#MC", 99 [MCE_STACK - 1] = "#MC",
100#if DEBUG_STKSZ > EXCEPTION_STKSZ 100#if DEBUG_STKSZ > EXCEPTION_STKSZ
101 [N_EXCEPTION_STACKS ... N_EXCEPTION_STACKS + DEBUG_STKSZ / EXCEPTION_STKSZ - 2] = "#DB[?]" 101 [N_EXCEPTION_STACKS ...
102 N_EXCEPTION_STACKS + DEBUG_STKSZ / EXCEPTION_STKSZ - 2] = "#DB[?]"
102#endif 103#endif
103 }; 104 };
104 unsigned k; 105 unsigned k;
@@ -163,7 +164,7 @@ static unsigned long *in_exception_stack(unsigned cpu, unsigned long stack,
163} 164}
164 165
165/* 166/*
166 * x86-64 can have up to three kernel stacks: 167 * x86-64 can have up to three kernel stacks:
167 * process stack 168 * process stack
168 * interrupt stack 169 * interrupt stack
169 * severe exception (double fault, nmi, stack fault, debug, mce) hardware stack 170 * severe exception (double fault, nmi, stack fault, debug, mce) hardware stack
@@ -219,7 +220,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
219 const struct stacktrace_ops *ops, void *data) 220 const struct stacktrace_ops *ops, void *data)
220{ 221{
221 const unsigned cpu = get_cpu(); 222 const unsigned cpu = get_cpu();
222 unsigned long *irqstack_end = (unsigned long*)cpu_pda(cpu)->irqstackptr; 223 unsigned long *irqstack_end = (unsigned long *)cpu_pda(cpu)->irqstackptr;
223 unsigned used = 0; 224 unsigned used = 0;
224 struct thread_info *tinfo; 225 struct thread_info *tinfo;
225 226
@@ -237,7 +238,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
237 if (!bp) { 238 if (!bp) {
238 if (task == current) { 239 if (task == current) {
239 /* Grab bp right from our regs */ 240 /* Grab bp right from our regs */
240 asm("movq %%rbp, %0" : "=r" (bp) :); 241 asm("movq %%rbp, %0" : "=r" (bp) : );
241 } else { 242 } else {
242 /* bp is the last reg pushed by switch_to */ 243 /* bp is the last reg pushed by switch_to */
243 bp = *(unsigned long *) task->thread.sp; 244 bp = *(unsigned long *) task->thread.sp;
@@ -339,9 +340,8 @@ static void
339show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs, 340show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,
340 unsigned long *stack, unsigned long bp, char *log_lvl) 341 unsigned long *stack, unsigned long bp, char *log_lvl)
341{ 342{
342 printk("\nCall Trace:\n"); 343 printk("Call Trace:\n");
343 dump_trace(task, regs, stack, bp, &print_trace_ops, log_lvl); 344 dump_trace(task, regs, stack, bp, &print_trace_ops, log_lvl);
344 printk("\n");
345} 345}
346 346
347void show_trace(struct task_struct *task, struct pt_regs *regs, 347void show_trace(struct task_struct *task, struct pt_regs *regs,
@@ -357,11 +357,15 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs,
357 unsigned long *stack; 357 unsigned long *stack;
358 int i; 358 int i;
359 const int cpu = smp_processor_id(); 359 const int cpu = smp_processor_id();
360 unsigned long *irqstack_end = (unsigned long *) (cpu_pda(cpu)->irqstackptr); 360 unsigned long *irqstack_end =
361 unsigned long *irqstack = (unsigned long *) (cpu_pda(cpu)->irqstackptr - IRQSTACKSIZE); 361 (unsigned long *) (cpu_pda(cpu)->irqstackptr);
362 unsigned long *irqstack =
363 (unsigned long *) (cpu_pda(cpu)->irqstackptr - IRQSTACKSIZE);
362 364
363 // debugging aid: "show_stack(NULL, NULL);" prints the 365 /*
364 // back trace for this cpu. 366 * debugging aid: "show_stack(NULL, NULL);" prints the
367 * back trace for this cpu.
368 */
365 369
366 if (sp == NULL) { 370 if (sp == NULL) {
367 if (task) 371 if (task)
@@ -386,6 +390,7 @@ show_stack_log_lvl(struct task_struct *task, struct pt_regs *regs,
386 printk(" %016lx", *stack++); 390 printk(" %016lx", *stack++);
387 touch_nmi_watchdog(); 391 touch_nmi_watchdog();
388 } 392 }
393 printk("\n");
389 show_trace_log_lvl(task, regs, sp, bp, log_lvl); 394 show_trace_log_lvl(task, regs, sp, bp, log_lvl);
390} 395}
391 396
@@ -404,7 +409,7 @@ void dump_stack(void)
404 409
405#ifdef CONFIG_FRAME_POINTER 410#ifdef CONFIG_FRAME_POINTER
406 if (!bp) 411 if (!bp)
407 asm("movq %%rbp, %0" : "=r" (bp):); 412 asm("movq %%rbp, %0" : "=r" (bp) : );
408#endif 413#endif
409 414
410 printk("Pid: %d, comm: %.20s %s %s %.*s\n", 415 printk("Pid: %d, comm: %.20s %s %s %.*s\n",
@@ -414,7 +419,6 @@ void dump_stack(void)
414 init_utsname()->version); 419 init_utsname()->version);
415 show_trace(NULL, NULL, &stack, bp); 420 show_trace(NULL, NULL, &stack, bp);
416} 421}
417
418EXPORT_SYMBOL(dump_stack); 422EXPORT_SYMBOL(dump_stack);
419 423
420void show_registers(struct pt_regs *regs) 424void show_registers(struct pt_regs *regs)
@@ -443,7 +447,6 @@ void show_registers(struct pt_regs *regs)
443 printk("Stack: "); 447 printk("Stack: ");
444 show_stack_log_lvl(NULL, regs, (unsigned long *)sp, 448 show_stack_log_lvl(NULL, regs, (unsigned long *)sp,
445 regs->bp, ""); 449 regs->bp, "");
446 printk("\n");
447 450
448 printk(KERN_EMERG "Code: "); 451 printk(KERN_EMERG "Code: ");
449 452
@@ -493,7 +496,7 @@ unsigned __kprobes long oops_begin(void)
493 raw_local_irq_save(flags); 496 raw_local_irq_save(flags);
494 cpu = smp_processor_id(); 497 cpu = smp_processor_id();
495 if (!__raw_spin_trylock(&die_lock)) { 498 if (!__raw_spin_trylock(&die_lock)) {
496 if (cpu == die_owner) 499 if (cpu == die_owner)
497 /* nested oops. should stop eventually */; 500 /* nested oops. should stop eventually */;
498 else 501 else
499 __raw_spin_lock(&die_lock); 502 __raw_spin_lock(&die_lock);
@@ -638,7 +641,7 @@ kernel_trap:
638} 641}
639 642
640#define DO_ERROR(trapnr, signr, str, name) \ 643#define DO_ERROR(trapnr, signr, str, name) \
641asmlinkage void do_##name(struct pt_regs * regs, long error_code) \ 644asmlinkage void do_##name(struct pt_regs *regs, long error_code) \
642{ \ 645{ \
643 if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, signr) \ 646 if (notify_die(DIE_TRAP, str, regs, error_code, trapnr, signr) \
644 == NOTIFY_STOP) \ 647 == NOTIFY_STOP) \
@@ -648,7 +651,7 @@ asmlinkage void do_##name(struct pt_regs * regs, long error_code) \
648} 651}
649 652
650#define DO_ERROR_INFO(trapnr, signr, str, name, sicode, siaddr) \ 653#define DO_ERROR_INFO(trapnr, signr, str, name, sicode, siaddr) \
651asmlinkage void do_##name(struct pt_regs * regs, long error_code) \ 654asmlinkage void do_##name(struct pt_regs *regs, long error_code) \
652{ \ 655{ \
653 siginfo_t info; \ 656 siginfo_t info; \
654 info.si_signo = signr; \ 657 info.si_signo = signr; \
@@ -683,7 +686,7 @@ asmlinkage void do_stack_segment(struct pt_regs *regs, long error_code)
683 preempt_conditional_cli(regs); 686 preempt_conditional_cli(regs);
684} 687}
685 688
686asmlinkage void do_double_fault(struct pt_regs * regs, long error_code) 689asmlinkage void do_double_fault(struct pt_regs *regs, long error_code)
687{ 690{
688 static const char str[] = "double fault"; 691 static const char str[] = "double fault";
689 struct task_struct *tsk = current; 692 struct task_struct *tsk = current;
@@ -778,9 +781,10 @@ io_check_error(unsigned char reason, struct pt_regs *regs)
778} 781}
779 782
780static notrace __kprobes void 783static notrace __kprobes void
781unknown_nmi_error(unsigned char reason, struct pt_regs * regs) 784unknown_nmi_error(unsigned char reason, struct pt_regs *regs)
782{ 785{
783 if (notify_die(DIE_NMIUNKNOWN, "nmi", regs, reason, 2, SIGINT) == NOTIFY_STOP) 786 if (notify_die(DIE_NMIUNKNOWN, "nmi", regs, reason, 2, SIGINT) ==
787 NOTIFY_STOP)
784 return; 788 return;
785 printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n", 789 printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n",
786 reason); 790 reason);
@@ -882,7 +886,7 @@ asmlinkage __kprobes struct pt_regs *sync_regs(struct pt_regs *eregs)
882 else if (user_mode(eregs)) 886 else if (user_mode(eregs))
883 regs = task_pt_regs(current); 887 regs = task_pt_regs(current);
884 /* Exception from kernel and interrupts are enabled. Move to 888 /* Exception from kernel and interrupts are enabled. Move to
885 kernel process stack. */ 889 kernel process stack. */
886 else if (eregs->flags & X86_EFLAGS_IF) 890 else if (eregs->flags & X86_EFLAGS_IF)
887 regs = (struct pt_regs *)(eregs->sp -= sizeof(struct pt_regs)); 891 regs = (struct pt_regs *)(eregs->sp -= sizeof(struct pt_regs));
888 if (eregs != regs) 892 if (eregs != regs)
@@ -891,7 +895,7 @@ asmlinkage __kprobes struct pt_regs *sync_regs(struct pt_regs *eregs)
891} 895}
892 896
893/* runs on IST stack. */ 897/* runs on IST stack. */
894asmlinkage void __kprobes do_debug(struct pt_regs * regs, 898asmlinkage void __kprobes do_debug(struct pt_regs *regs,
895 unsigned long error_code) 899 unsigned long error_code)
896{ 900{
897 struct task_struct *tsk = current; 901 struct task_struct *tsk = current;
@@ -1035,7 +1039,7 @@ asmlinkage void do_coprocessor_error(struct pt_regs *regs)
1035 1039
1036asmlinkage void bad_intr(void) 1040asmlinkage void bad_intr(void)
1037{ 1041{
1038 printk("bad interrupt"); 1042 printk("bad interrupt");
1039} 1043}
1040 1044
1041asmlinkage void do_simd_coprocessor_error(struct pt_regs *regs) 1045asmlinkage void do_simd_coprocessor_error(struct pt_regs *regs)
@@ -1047,7 +1051,7 @@ asmlinkage void do_simd_coprocessor_error(struct pt_regs *regs)
1047 1051
1048 conditional_sti(regs); 1052 conditional_sti(regs);
1049 if (!user_mode(regs) && 1053 if (!user_mode(regs) &&
1050 kernel_math_error(regs, "kernel simd math error", 19)) 1054 kernel_math_error(regs, "kernel simd math error", 19))
1051 return; 1055 return;
1052 1056
1053 /* 1057 /*
@@ -1092,7 +1096,7 @@ asmlinkage void do_simd_coprocessor_error(struct pt_regs *regs)
1092 force_sig_info(SIGFPE, &info, task); 1096 force_sig_info(SIGFPE, &info, task);
1093} 1097}
1094 1098
1095asmlinkage void do_spurious_interrupt_bug(struct pt_regs * regs) 1099asmlinkage void do_spurious_interrupt_bug(struct pt_regs *regs)
1096{ 1100{
1097} 1101}
1098 1102
@@ -1149,8 +1153,10 @@ void __init trap_init(void)
1149 set_intr_gate(0, &divide_error); 1153 set_intr_gate(0, &divide_error);
1150 set_intr_gate_ist(1, &debug, DEBUG_STACK); 1154 set_intr_gate_ist(1, &debug, DEBUG_STACK);
1151 set_intr_gate_ist(2, &nmi, NMI_STACK); 1155 set_intr_gate_ist(2, &nmi, NMI_STACK);
1152 set_system_gate_ist(3, &int3, DEBUG_STACK); /* int3 can be called from all */ 1156 /* int3 can be called from all */
1153 set_system_gate(4, &overflow); /* int4 can be called from all */ 1157 set_system_gate_ist(3, &int3, DEBUG_STACK);
1158 /* int4 can be called from all */
1159 set_system_gate(4, &overflow);
1154 set_intr_gate(5, &bounds); 1160 set_intr_gate(5, &bounds);
1155 set_intr_gate(6, &invalid_op); 1161 set_intr_gate(6, &invalid_op);
1156 set_intr_gate(7, &device_not_available); 1162 set_intr_gate(7, &device_not_available);
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 46af7167673..161bb850fc4 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -104,7 +104,7 @@ __setup("notsc", notsc_setup);
104/* 104/*
105 * Read TSC and the reference counters. Take care of SMI disturbance 105 * Read TSC and the reference counters. Take care of SMI disturbance
106 */ 106 */
107static u64 tsc_read_refs(u64 *pm, u64 *hpet) 107static u64 tsc_read_refs(u64 *p, int hpet)
108{ 108{
109 u64 t1, t2; 109 u64 t1, t2;
110 int i; 110 int i;
@@ -112,9 +112,9 @@ static u64 tsc_read_refs(u64 *pm, u64 *hpet)
112 for (i = 0; i < MAX_RETRIES; i++) { 112 for (i = 0; i < MAX_RETRIES; i++) {
113 t1 = get_cycles(); 113 t1 = get_cycles();
114 if (hpet) 114 if (hpet)
115 *hpet = hpet_readl(HPET_COUNTER) & 0xFFFFFFFF; 115 *p = hpet_readl(HPET_COUNTER) & 0xFFFFFFFF;
116 else 116 else
117 *pm = acpi_pm_read_early(); 117 *p = acpi_pm_read_early();
118 t2 = get_cycles(); 118 t2 = get_cycles();
119 if ((t2 - t1) < SMI_TRESHOLD) 119 if ((t2 - t1) < SMI_TRESHOLD)
120 return t2; 120 return t2;
@@ -122,80 +122,390 @@ static u64 tsc_read_refs(u64 *pm, u64 *hpet)
122 return ULLONG_MAX; 122 return ULLONG_MAX;
123} 123}
124 124
125/** 125/*
126 * native_calibrate_tsc - calibrate the tsc on boot 126 * Calculate the TSC frequency from HPET reference
127 */ 127 */
128unsigned long native_calibrate_tsc(void) 128static unsigned long calc_hpet_ref(u64 deltatsc, u64 hpet1, u64 hpet2)
129{ 129{
130 unsigned long flags; 130 u64 tmp;
131 u64 tsc1, tsc2, tr1, tr2, delta, pm1, pm2, hpet1, hpet2;
132 int hpet = is_hpet_enabled();
133 unsigned int tsc_khz_val = 0;
134 131
135 local_irq_save(flags); 132 if (hpet2 < hpet1)
133 hpet2 += 0x100000000ULL;
134 hpet2 -= hpet1;
135 tmp = ((u64)hpet2 * hpet_readl(HPET_PERIOD));
136 do_div(tmp, 1000000);
137 do_div(deltatsc, tmp);
138
139 return (unsigned long) deltatsc;
140}
141
142/*
143 * Calculate the TSC frequency from PMTimer reference
144 */
145static unsigned long calc_pmtimer_ref(u64 deltatsc, u64 pm1, u64 pm2)
146{
147 u64 tmp;
136 148
137 tsc1 = tsc_read_refs(&pm1, hpet ? &hpet1 : NULL); 149 if (!pm1 && !pm2)
150 return ULONG_MAX;
151
152 if (pm2 < pm1)
153 pm2 += (u64)ACPI_PM_OVRRUN;
154 pm2 -= pm1;
155 tmp = pm2 * 1000000000LL;
156 do_div(tmp, PMTMR_TICKS_PER_SEC);
157 do_div(deltatsc, tmp);
158
159 return (unsigned long) deltatsc;
160}
161
162#define CAL_MS 10
163#define CAL_LATCH (CLOCK_TICK_RATE / (1000 / CAL_MS))
164#define CAL_PIT_LOOPS 1000
165
166#define CAL2_MS 50
167#define CAL2_LATCH (CLOCK_TICK_RATE / (1000 / CAL2_MS))
168#define CAL2_PIT_LOOPS 5000
169
170
171/*
172 * Try to calibrate the TSC against the Programmable
173 * Interrupt Timer and return the frequency of the TSC
174 * in kHz.
175 *
176 * Return ULONG_MAX on failure to calibrate.
177 */
178static unsigned long pit_calibrate_tsc(u32 latch, unsigned long ms, int loopmin)
179{
180 u64 tsc, t1, t2, delta;
181 unsigned long tscmin, tscmax;
182 int pitcnt;
138 183
184 /* Set the Gate high, disable speaker */
139 outb((inb(0x61) & ~0x02) | 0x01, 0x61); 185 outb((inb(0x61) & ~0x02) | 0x01, 0x61);
140 186
187 /*
188 * Setup CTC channel 2* for mode 0, (interrupt on terminal
189 * count mode), binary count. Set the latch register to 50ms
190 * (LSB then MSB) to begin countdown.
191 */
141 outb(0xb0, 0x43); 192 outb(0xb0, 0x43);
142 outb((CLOCK_TICK_RATE / (1000 / 50)) & 0xff, 0x42); 193 outb(latch & 0xff, 0x42);
143 outb((CLOCK_TICK_RATE / (1000 / 50)) >> 8, 0x42); 194 outb(latch >> 8, 0x42);
144 tr1 = get_cycles(); 195
145 while ((inb(0x61) & 0x20) == 0); 196 tsc = t1 = t2 = get_cycles();
146 tr2 = get_cycles(); 197
198 pitcnt = 0;
199 tscmax = 0;
200 tscmin = ULONG_MAX;
201 while ((inb(0x61) & 0x20) == 0) {
202 t2 = get_cycles();
203 delta = t2 - tsc;
204 tsc = t2;
205 if ((unsigned long) delta < tscmin)
206 tscmin = (unsigned int) delta;
207 if ((unsigned long) delta > tscmax)
208 tscmax = (unsigned int) delta;
209 pitcnt++;
210 }
211
212 /*
213 * Sanity checks:
214 *
215 * If we were not able to read the PIT more than loopmin
216 * times, then we have been hit by a massive SMI
217 *
218 * If the maximum is 10 times larger than the minimum,
219 * then we got hit by an SMI as well.
220 */
221 if (pitcnt < loopmin || tscmax > 10 * tscmin)
222 return ULONG_MAX;
223
224 /* Calculate the PIT value */
225 delta = t2 - t1;
226 do_div(delta, ms);
227 return delta;
228}
147 229
148 tsc2 = tsc_read_refs(&pm2, hpet ? &hpet2 : NULL); 230/*
231 * This reads the current MSB of the PIT counter, and
232 * checks if we are running on sufficiently fast and
233 * non-virtualized hardware.
234 *
235 * Our expectations are:
236 *
237 * - the PIT is running at roughly 1.19MHz
238 *
239 * - each IO is going to take about 1us on real hardware,
240 * but we allow it to be much faster (by a factor of 10) or
241 * _slightly_ slower (ie we allow up to a 2us read+counter
242 * update - anything else implies a unacceptably slow CPU
243 * or PIT for the fast calibration to work.
244 *
245 * - with 256 PIT ticks to read the value, we have 214us to
246 * see the same MSB (and overhead like doing a single TSC
247 * read per MSB value etc).
248 *
249 * - We're doing 2 reads per loop (LSB, MSB), and we expect
250 * them each to take about a microsecond on real hardware.
251 * So we expect a count value of around 100. But we'll be
252 * generous, and accept anything over 50.
253 *
254 * - if the PIT is stuck, and we see *many* more reads, we
255 * return early (and the next caller of pit_expect_msb()
256 * then consider it a failure when they don't see the
257 * next expected value).
258 *
259 * These expectations mean that we know that we have seen the
260 * transition from one expected value to another with a fairly
261 * high accuracy, and we didn't miss any events. We can thus
262 * use the TSC value at the transitions to calculate a pretty
263 * good value for the TSC frequencty.
264 */
265static inline int pit_expect_msb(unsigned char val)
266{
267 int count = 0;
149 268
269 for (count = 0; count < 50000; count++) {
270 /* Ignore LSB */
271 inb(0x42);
272 if (inb(0x42) != val)
273 break;
274 }
275 return count > 50;
276}
277
278/*
279 * How many MSB values do we want to see? We aim for a
280 * 15ms calibration, which assuming a 2us counter read
281 * error should give us roughly 150 ppm precision for
282 * the calibration.
283 */
284#define QUICK_PIT_MS 15
285#define QUICK_PIT_ITERATIONS (QUICK_PIT_MS * PIT_TICK_RATE / 1000 / 256)
286
287static unsigned long quick_pit_calibrate(void)
288{
289 /* Set the Gate high, disable speaker */
290 outb((inb(0x61) & ~0x02) | 0x01, 0x61);
291
292 /*
293 * Counter 2, mode 0 (one-shot), binary count
294 *
295 * NOTE! Mode 2 decrements by two (and then the
296 * output is flipped each time, giving the same
297 * final output frequency as a decrement-by-one),
298 * so mode 0 is much better when looking at the
299 * individual counts.
300 */
301 outb(0xb0, 0x43);
302
303 /* Start at 0xffff */
304 outb(0xff, 0x42);
305 outb(0xff, 0x42);
306
307 if (pit_expect_msb(0xff)) {
308 int i;
309 u64 t1, t2, delta;
310 unsigned char expect = 0xfe;
311
312 t1 = get_cycles();
313 for (i = 0; i < QUICK_PIT_ITERATIONS; i++, expect--) {
314 if (!pit_expect_msb(expect))
315 goto failed;
316 }
317 t2 = get_cycles();
318
319 /*
320 * Make sure we can rely on the second TSC timestamp:
321 */
322 if (!pit_expect_msb(expect))
323 goto failed;
324
325 /*
326 * Ok, if we get here, then we've seen the
327 * MSB of the PIT decrement QUICK_PIT_ITERATIONS
328 * times, and each MSB had many hits, so we never
329 * had any sudden jumps.
330 *
331 * As a result, we can depend on there not being
332 * any odd delays anywhere, and the TSC reads are
333 * reliable.
334 *
335 * kHz = ticks / time-in-seconds / 1000;
336 * kHz = (t2 - t1) / (QPI * 256 / PIT_TICK_RATE) / 1000
337 * kHz = ((t2 - t1) * PIT_TICK_RATE) / (QPI * 256 * 1000)
338 */
339 delta = (t2 - t1)*PIT_TICK_RATE;
340 do_div(delta, QUICK_PIT_ITERATIONS*256*1000);
341 printk("Fast TSC calibration using PIT\n");
342 return delta;
343 }
344failed:
345 return 0;
346}
347
348/**
349 * native_calibrate_tsc - calibrate the tsc on boot
350 */
351unsigned long native_calibrate_tsc(void)
352{
353 u64 tsc1, tsc2, delta, ref1, ref2;
354 unsigned long tsc_pit_min = ULONG_MAX, tsc_ref_min = ULONG_MAX;
355 unsigned long flags, latch, ms, fast_calibrate;
356 int hpet = is_hpet_enabled(), i, loopmin;
357
358 local_irq_save(flags);
359 fast_calibrate = quick_pit_calibrate();
150 local_irq_restore(flags); 360 local_irq_restore(flags);
361 if (fast_calibrate)
362 return fast_calibrate;
151 363
152 /* 364 /*
153 * Preset the result with the raw and inaccurate PIT 365 * Run 5 calibration loops to get the lowest frequency value
154 * calibration value 366 * (the best estimate). We use two different calibration modes
367 * here:
368 *
369 * 1) PIT loop. We set the PIT Channel 2 to oneshot mode and
370 * load a timeout of 50ms. We read the time right after we
371 * started the timer and wait until the PIT count down reaches
372 * zero. In each wait loop iteration we read the TSC and check
373 * the delta to the previous read. We keep track of the min
374 * and max values of that delta. The delta is mostly defined
375 * by the IO time of the PIT access, so we can detect when a
376 * SMI/SMM disturbance happend between the two reads. If the
377 * maximum time is significantly larger than the minimum time,
378 * then we discard the result and have another try.
379 *
380 * 2) Reference counter. If available we use the HPET or the
381 * PMTIMER as a reference to check the sanity of that value.
382 * We use separate TSC readouts and check inside of the
383 * reference read for a SMI/SMM disturbance. We dicard
384 * disturbed values here as well. We do that around the PIT
385 * calibration delay loop as we have to wait for a certain
386 * amount of time anyway.
155 */ 387 */
156 delta = (tr2 - tr1); 388
157 do_div(delta, 50); 389 /* Preset PIT loop values */
158 tsc_khz_val = delta; 390 latch = CAL_LATCH;
159 391 ms = CAL_MS;
160 /* hpet or pmtimer available ? */ 392 loopmin = CAL_PIT_LOOPS;
161 if (!hpet && !pm1 && !pm2) { 393
162 printk(KERN_INFO "TSC calibrated against PIT\n"); 394 for (i = 0; i < 3; i++) {
163 goto out; 395 unsigned long tsc_pit_khz;
396
397 /*
398 * Read the start value and the reference count of
399 * hpet/pmtimer when available. Then do the PIT
400 * calibration, which will take at least 50ms, and
401 * read the end value.
402 */
403 local_irq_save(flags);
404 tsc1 = tsc_read_refs(&ref1, hpet);
405 tsc_pit_khz = pit_calibrate_tsc(latch, ms, loopmin);
406 tsc2 = tsc_read_refs(&ref2, hpet);
407 local_irq_restore(flags);
408
409 /* Pick the lowest PIT TSC calibration so far */
410 tsc_pit_min = min(tsc_pit_min, tsc_pit_khz);
411
412 /* hpet or pmtimer available ? */
413 if (!hpet && !ref1 && !ref2)
414 continue;
415
416 /* Check, whether the sampling was disturbed by an SMI */
417 if (tsc1 == ULLONG_MAX || tsc2 == ULLONG_MAX)
418 continue;
419
420 tsc2 = (tsc2 - tsc1) * 1000000LL;
421 if (hpet)
422 tsc2 = calc_hpet_ref(tsc2, ref1, ref2);
423 else
424 tsc2 = calc_pmtimer_ref(tsc2, ref1, ref2);
425
426 tsc_ref_min = min(tsc_ref_min, (unsigned long) tsc2);
427
428 /* Check the reference deviation */
429 delta = ((u64) tsc_pit_min) * 100;
430 do_div(delta, tsc_ref_min);
431
432 /*
433 * If both calibration results are inside a 10% window
434 * then we can be sure, that the calibration
435 * succeeded. We break out of the loop right away. We
436 * use the reference value, as it is more precise.
437 */
438 if (delta >= 90 && delta <= 110) {
439 printk(KERN_INFO
440 "TSC: PIT calibration matches %s. %d loops\n",
441 hpet ? "HPET" : "PMTIMER", i + 1);
442 return tsc_ref_min;
443 }
444
445 /*
446 * Check whether PIT failed more than once. This
447 * happens in virtualized environments. We need to
448 * give the virtual PC a slightly longer timeframe for
449 * the HPET/PMTIMER to make the result precise.
450 */
451 if (i == 1 && tsc_pit_min == ULONG_MAX) {
452 latch = CAL2_LATCH;
453 ms = CAL2_MS;
454 loopmin = CAL2_PIT_LOOPS;
455 }
164 } 456 }
165 457
166 /* Check, whether the sampling was disturbed by an SMI */ 458 /*
167 if (tsc1 == ULLONG_MAX || tsc2 == ULLONG_MAX) { 459 * Now check the results.
168 printk(KERN_WARNING "TSC calibration disturbed by SMI, " 460 */
169 "using PIT calibration result\n"); 461 if (tsc_pit_min == ULONG_MAX) {
170 goto out; 462 /* PIT gave no useful value */
463 printk(KERN_WARNING "TSC: Unable to calibrate against PIT\n");
464
465 /* We don't have an alternative source, disable TSC */
466 if (!hpet && !ref1 && !ref2) {
467 printk("TSC: No reference (HPET/PMTIMER) available\n");
468 return 0;
469 }
470
471 /* The alternative source failed as well, disable TSC */
472 if (tsc_ref_min == ULONG_MAX) {
473 printk(KERN_WARNING "TSC: HPET/PMTIMER calibration "
474 "failed.\n");
475 return 0;
476 }
477
478 /* Use the alternative source */
479 printk(KERN_INFO "TSC: using %s reference calibration\n",
480 hpet ? "HPET" : "PMTIMER");
481
482 return tsc_ref_min;
171 } 483 }
172 484
173 tsc2 = (tsc2 - tsc1) * 1000000LL; 485 /* We don't have an alternative source, use the PIT calibration value */
174 486 if (!hpet && !ref1 && !ref2) {
175 if (hpet) { 487 printk(KERN_INFO "TSC: Using PIT calibration value\n");
176 printk(KERN_INFO "TSC calibrated against HPET\n"); 488 return tsc_pit_min;
177 if (hpet2 < hpet1)
178 hpet2 += 0x100000000ULL;
179 hpet2 -= hpet1;
180 tsc1 = ((u64)hpet2 * hpet_readl(HPET_PERIOD));
181 do_div(tsc1, 1000000);
182 } else {
183 printk(KERN_INFO "TSC calibrated against PM_TIMER\n");
184 if (pm2 < pm1)
185 pm2 += (u64)ACPI_PM_OVRRUN;
186 pm2 -= pm1;
187 tsc1 = pm2 * 1000000000LL;
188 do_div(tsc1, PMTMR_TICKS_PER_SEC);
189 } 489 }
190 490
191 do_div(tsc2, tsc1); 491 /* The alternative source failed, use the PIT calibration value */
192 tsc_khz_val = tsc2; 492 if (tsc_ref_min == ULONG_MAX) {
493 printk(KERN_WARNING "TSC: HPET/PMTIMER calibration failed. "
494 "Using PIT calibration\n");
495 return tsc_pit_min;
496 }
193 497
194out: 498 /*
195 return tsc_khz_val; 499 * The calibration values differ too much. In doubt, we use
500 * the PIT value as we know that there are PMTIMERs around
501 * running at double speed. At least we let the user know:
502 */
503 printk(KERN_WARNING "TSC: PIT calibration deviates from %s: %lu %lu.\n",
504 hpet ? "HPET" : "PMTIMER", tsc_pit_min, tsc_ref_min);
505 printk(KERN_INFO "TSC: Using PIT calibration value\n");
506 return tsc_pit_min;
196} 507}
197 508
198
199#ifdef CONFIG_X86_32 509#ifdef CONFIG_X86_32
200/* Only called from the Powernow K7 cpu freq driver */ 510/* Only called from the Powernow K7 cpu freq driver */
201int recalibrate_cpu_khz(void) 511int recalibrate_cpu_khz(void)
@@ -314,7 +624,7 @@ static int time_cpufreq_notifier(struct notifier_block *nb, unsigned long val,
314 mark_tsc_unstable("cpufreq changes"); 624 mark_tsc_unstable("cpufreq changes");
315 } 625 }
316 626
317 set_cyc2ns_scale(tsc_khz_ref, freq->cpu); 627 set_cyc2ns_scale(tsc_khz, freq->cpu);
318 628
319 return 0; 629 return 0;
320} 630}
@@ -325,6 +635,10 @@ static struct notifier_block time_cpufreq_notifier_block = {
325 635
326static int __init cpufreq_tsc(void) 636static int __init cpufreq_tsc(void)
327{ 637{
638 if (!cpu_has_tsc)
639 return 0;
640 if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC))
641 return 0;
328 cpufreq_register_notifier(&time_cpufreq_notifier_block, 642 cpufreq_register_notifier(&time_cpufreq_notifier_block,
329 CPUFREQ_TRANSITION_NOTIFIER); 643 CPUFREQ_TRANSITION_NOTIFIER);
330 return 0; 644 return 0;
diff --git a/arch/x86/kernel/tsc_sync.c b/arch/x86/kernel/tsc_sync.c
index 0577825cf89..9ffb01c31c4 100644
--- a/arch/x86/kernel/tsc_sync.c
+++ b/arch/x86/kernel/tsc_sync.c
@@ -88,11 +88,9 @@ static __cpuinit void check_tsc_warp(void)
88 __raw_spin_unlock(&sync_lock); 88 __raw_spin_unlock(&sync_lock);
89 } 89 }
90 } 90 }
91 if (!(now-start)) { 91 WARN(!(now-start),
92 printk("Warning: zero tsc calibration delta: %Ld [max: %Ld]\n", 92 "Warning: zero tsc calibration delta: %Ld [max: %Ld]\n",
93 now-start, end-start); 93 now-start, end-start);
94 WARN_ON(1);
95 }
96} 94}
97 95
98/* 96/*
diff --git a/arch/x86/kernel/visws_quirks.c b/arch/x86/kernel/visws_quirks.c
index 594ef47f0a6..61a97e616f7 100644
--- a/arch/x86/kernel/visws_quirks.c
+++ b/arch/x86/kernel/visws_quirks.c
@@ -25,45 +25,31 @@
25#include <asm/visws/cobalt.h> 25#include <asm/visws/cobalt.h>
26#include <asm/visws/piix4.h> 26#include <asm/visws/piix4.h>
27#include <asm/arch_hooks.h> 27#include <asm/arch_hooks.h>
28#include <asm/io_apic.h>
28#include <asm/fixmap.h> 29#include <asm/fixmap.h>
29#include <asm/reboot.h> 30#include <asm/reboot.h>
30#include <asm/setup.h> 31#include <asm/setup.h>
31#include <asm/e820.h> 32#include <asm/e820.h>
32#include <asm/smp.h>
33#include <asm/io.h> 33#include <asm/io.h>
34 34
35#include <mach_ipi.h> 35#include <mach_ipi.h>
36 36
37#include "mach_apic.h" 37#include "mach_apic.h"
38 38
39#include <linux/init.h>
40#include <linux/smp.h>
41
42#include <linux/kernel_stat.h> 39#include <linux/kernel_stat.h>
43#include <linux/interrupt.h>
44#include <linux/init.h>
45 40
46#include <asm/io.h>
47#include <asm/apic.h>
48#include <asm/i8259.h> 41#include <asm/i8259.h>
49#include <asm/irq_vectors.h> 42#include <asm/irq_vectors.h>
50#include <asm/visws/cobalt.h>
51#include <asm/visws/lithium.h> 43#include <asm/visws/lithium.h>
52#include <asm/visws/piix4.h>
53 44
54#include <linux/sched.h> 45#include <linux/sched.h>
55#include <linux/kernel.h> 46#include <linux/kernel.h>
56#include <linux/init.h>
57#include <linux/pci.h> 47#include <linux/pci.h>
58#include <linux/pci_ids.h> 48#include <linux/pci_ids.h>
59 49
60extern int no_broadcast; 50extern int no_broadcast;
61 51
62#include <asm/io.h>
63#include <asm/apic.h> 52#include <asm/apic.h>
64#include <asm/arch_hooks.h>
65#include <asm/visws/cobalt.h>
66#include <asm/visws/lithium.h>
67 53
68char visws_board_type = -1; 54char visws_board_type = -1;
69char visws_board_rev = -1; 55char visws_board_rev = -1;
diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
index 38f566fa27d..4eeb5cf9720 100644
--- a/arch/x86/kernel/vm86_32.c
+++ b/arch/x86/kernel/vm86_32.c
@@ -46,6 +46,7 @@
46#include <asm/io.h> 46#include <asm/io.h>
47#include <asm/tlbflush.h> 47#include <asm/tlbflush.h>
48#include <asm/irq.h> 48#include <asm/irq.h>
49#include <asm/syscalls.h>
49 50
50/* 51/*
51 * Known problems: 52 * Known problems:
diff --git a/arch/x86/kernel/vmi_32.c b/arch/x86/kernel/vmi_32.c
index 6ca515d6db5..8c9ad02af5a 100644
--- a/arch/x86/kernel/vmi_32.c
+++ b/arch/x86/kernel/vmi_32.c
@@ -235,7 +235,7 @@ static void vmi_write_ldt_entry(struct desc_struct *dt, int entry,
235 const void *desc) 235 const void *desc)
236{ 236{
237 u32 *ldt_entry = (u32 *)desc; 237 u32 *ldt_entry = (u32 *)desc;
238 vmi_ops.write_idt_entry(dt, entry, ldt_entry[0], ldt_entry[1]); 238 vmi_ops.write_ldt_entry(dt, entry, ldt_entry[0], ldt_entry[1]);
239} 239}
240 240
241static void vmi_load_sp0(struct tss_struct *tss, 241static void vmi_load_sp0(struct tss_struct *tss,
@@ -393,13 +393,13 @@ static void *vmi_kmap_atomic_pte(struct page *page, enum km_type type)
393} 393}
394#endif 394#endif
395 395
396static void vmi_allocate_pte(struct mm_struct *mm, u32 pfn) 396static void vmi_allocate_pte(struct mm_struct *mm, unsigned long pfn)
397{ 397{
398 vmi_set_page_type(pfn, VMI_PAGE_L1); 398 vmi_set_page_type(pfn, VMI_PAGE_L1);
399 vmi_ops.allocate_page(pfn, VMI_PAGE_L1, 0, 0, 0); 399 vmi_ops.allocate_page(pfn, VMI_PAGE_L1, 0, 0, 0);
400} 400}
401 401
402static void vmi_allocate_pmd(struct mm_struct *mm, u32 pfn) 402static void vmi_allocate_pmd(struct mm_struct *mm, unsigned long pfn)
403{ 403{
404 /* 404 /*
405 * This call comes in very early, before mem_map is setup. 405 * This call comes in very early, before mem_map is setup.
@@ -410,20 +410,20 @@ static void vmi_allocate_pmd(struct mm_struct *mm, u32 pfn)
410 vmi_ops.allocate_page(pfn, VMI_PAGE_L2, 0, 0, 0); 410 vmi_ops.allocate_page(pfn, VMI_PAGE_L2, 0, 0, 0);
411} 411}
412 412
413static void vmi_allocate_pmd_clone(u32 pfn, u32 clonepfn, u32 start, u32 count) 413static void vmi_allocate_pmd_clone(unsigned long pfn, unsigned long clonepfn, unsigned long start, unsigned long count)
414{ 414{
415 vmi_set_page_type(pfn, VMI_PAGE_L2 | VMI_PAGE_CLONE); 415 vmi_set_page_type(pfn, VMI_PAGE_L2 | VMI_PAGE_CLONE);
416 vmi_check_page_type(clonepfn, VMI_PAGE_L2); 416 vmi_check_page_type(clonepfn, VMI_PAGE_L2);
417 vmi_ops.allocate_page(pfn, VMI_PAGE_L2 | VMI_PAGE_CLONE, clonepfn, start, count); 417 vmi_ops.allocate_page(pfn, VMI_PAGE_L2 | VMI_PAGE_CLONE, clonepfn, start, count);
418} 418}
419 419
420static void vmi_release_pte(u32 pfn) 420static void vmi_release_pte(unsigned long pfn)
421{ 421{
422 vmi_ops.release_page(pfn, VMI_PAGE_L1); 422 vmi_ops.release_page(pfn, VMI_PAGE_L1);
423 vmi_set_page_type(pfn, VMI_PAGE_NORMAL); 423 vmi_set_page_type(pfn, VMI_PAGE_NORMAL);
424} 424}
425 425
426static void vmi_release_pmd(u32 pfn) 426static void vmi_release_pmd(unsigned long pfn)
427{ 427{
428 vmi_ops.release_page(pfn, VMI_PAGE_L2); 428 vmi_ops.release_page(pfn, VMI_PAGE_L2);
429 vmi_set_page_type(pfn, VMI_PAGE_NORMAL); 429 vmi_set_page_type(pfn, VMI_PAGE_NORMAL);
diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c
index 0c029e8959c..7766d36983f 100644
--- a/arch/x86/kernel/vsmp_64.c
+++ b/arch/x86/kernel/vsmp_64.c
@@ -61,7 +61,7 @@ static void vsmp_irq_enable(void)
61 native_restore_fl((flags | X86_EFLAGS_IF) & (~X86_EFLAGS_AC)); 61 native_restore_fl((flags | X86_EFLAGS_IF) & (~X86_EFLAGS_AC));
62} 62}
63 63
64static unsigned __init vsmp_patch(u8 type, u16 clobbers, void *ibuf, 64static unsigned __init_or_module vsmp_patch(u8 type, u16 clobbers, void *ibuf,
65 unsigned long addr, unsigned len) 65 unsigned long addr, unsigned len)
66{ 66{
67 switch (type) { 67 switch (type) {
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 0bfe2bd305e..3da2508eb22 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -711,6 +711,10 @@ static int kvm_age_rmapp(struct kvm *kvm, unsigned long *rmapp)
711 u64 *spte; 711 u64 *spte;
712 int young = 0; 712 int young = 0;
713 713
714 /* always return old for EPT */
715 if (!shadow_accessed_mask)
716 return 0;
717
714 spte = rmap_next(kvm, rmapp, NULL); 718 spte = rmap_next(kvm, rmapp, NULL);
715 while (spte) { 719 while (spte) {
716 int _young; 720 int _young;
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
index f72ac1fa35f..4a814bff21f 100644
--- a/arch/x86/kvm/paging_tmpl.h
+++ b/arch/x86/kvm/paging_tmpl.h
@@ -345,7 +345,7 @@ static u64 *FNAME(fetch)(struct kvm_vcpu *vcpu, gva_t addr,
345 shadow_addr = __pa(shadow_page->spt); 345 shadow_addr = __pa(shadow_page->spt);
346 shadow_pte = shadow_addr | PT_PRESENT_MASK | PT_ACCESSED_MASK 346 shadow_pte = shadow_addr | PT_PRESENT_MASK | PT_ACCESSED_MASK
347 | PT_WRITABLE_MASK | PT_USER_MASK; 347 | PT_WRITABLE_MASK | PT_USER_MASK;
348 *shadow_ent = shadow_pte; 348 set_shadow_pte(shadow_ent, shadow_pte);
349 } 349 }
350 350
351 mmu_set_spte(vcpu, shadow_ent, access, walker->pte_access & access, 351 mmu_set_spte(vcpu, shadow_ent, access, walker->pte_access & access,
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index e2ee264740c..8233b86c778 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -62,6 +62,7 @@ static int npt = 1;
62module_param(npt, int, S_IRUGO); 62module_param(npt, int, S_IRUGO);
63 63
64static void kvm_reput_irq(struct vcpu_svm *svm); 64static void kvm_reput_irq(struct vcpu_svm *svm);
65static void svm_flush_tlb(struct kvm_vcpu *vcpu);
65 66
66static inline struct vcpu_svm *to_svm(struct kvm_vcpu *vcpu) 67static inline struct vcpu_svm *to_svm(struct kvm_vcpu *vcpu)
67{ 68{
@@ -878,6 +879,10 @@ set:
878static void svm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) 879static void svm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
879{ 880{
880 unsigned long host_cr4_mce = read_cr4() & X86_CR4_MCE; 881 unsigned long host_cr4_mce = read_cr4() & X86_CR4_MCE;
882 unsigned long old_cr4 = to_svm(vcpu)->vmcb->save.cr4;
883
884 if (npt_enabled && ((old_cr4 ^ cr4) & X86_CR4_PGE))
885 force_new_asid(vcpu);
881 886
882 vcpu->arch.cr4 = cr4; 887 vcpu->arch.cr4 = cr4;
883 if (!npt_enabled) 888 if (!npt_enabled)
@@ -1027,6 +1032,13 @@ static int pf_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run)
1027 KVMTRACE_3D(TDP_FAULT, &svm->vcpu, error_code, 1032 KVMTRACE_3D(TDP_FAULT, &svm->vcpu, error_code,
1028 (u32)fault_address, (u32)(fault_address >> 32), 1033 (u32)fault_address, (u32)(fault_address >> 32),
1029 handler); 1034 handler);
1035 /*
1036 * FIXME: Tis shouldn't be necessary here, but there is a flush
1037 * missing in the MMU code. Until we find this bug, flush the
1038 * complete TLB here on an NPF
1039 */
1040 if (npt_enabled)
1041 svm_flush_tlb(&svm->vcpu);
1030 1042
1031 if (event_injection) 1043 if (event_injection)
1032 kvm_mmu_unprotect_page_virt(&svm->vcpu, fault_address); 1044 kvm_mmu_unprotect_page_virt(&svm->vcpu, fault_address);
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 2a69773e3b2..7041cc52b56 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -3301,8 +3301,7 @@ static int __init vmx_init(void)
3301 kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK | 3301 kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK |
3302 VMX_EPT_WRITABLE_MASK | 3302 VMX_EPT_WRITABLE_MASK |
3303 VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT); 3303 VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT);
3304 kvm_mmu_set_mask_ptes(0ull, VMX_EPT_FAKE_ACCESSED_MASK, 3304 kvm_mmu_set_mask_ptes(0ull, 0ull, 0ull, 0ull,
3305 VMX_EPT_FAKE_DIRTY_MASK, 0ull,
3306 VMX_EPT_EXECUTABLE_MASK); 3305 VMX_EPT_EXECUTABLE_MASK);
3307 kvm_enable_tdp(); 3306 kvm_enable_tdp();
3308 } else 3307 } else
diff --git a/arch/x86/kvm/vmx.h b/arch/x86/kvm/vmx.h
index 425a13436b3..23e8373507a 100644
--- a/arch/x86/kvm/vmx.h
+++ b/arch/x86/kvm/vmx.h
@@ -370,8 +370,6 @@ enum vmcs_field {
370#define VMX_EPT_READABLE_MASK 0x1ull 370#define VMX_EPT_READABLE_MASK 0x1ull
371#define VMX_EPT_WRITABLE_MASK 0x2ull 371#define VMX_EPT_WRITABLE_MASK 0x2ull
372#define VMX_EPT_EXECUTABLE_MASK 0x4ull 372#define VMX_EPT_EXECUTABLE_MASK 0x4ull
373#define VMX_EPT_FAKE_ACCESSED_MASK (1ull << 62)
374#define VMX_EPT_FAKE_DIRTY_MASK (1ull << 63)
375 373
376#define VMX_EPT_IDENTITY_PAGETABLE_ADDR 0xfffbc000ul 374#define VMX_EPT_IDENTITY_PAGETABLE_ADDR 0xfffbc000ul
377 375
diff --git a/arch/x86/lib/msr-on-cpu.c b/arch/x86/lib/msr-on-cpu.c
index d5a2b39f882..321cf720dbb 100644
--- a/arch/x86/lib/msr-on-cpu.c
+++ b/arch/x86/lib/msr-on-cpu.c
@@ -16,36 +16,46 @@ static void __rdmsr_on_cpu(void *info)
16 rdmsr(rv->msr_no, rv->l, rv->h); 16 rdmsr(rv->msr_no, rv->l, rv->h);
17} 17}
18 18
19static void __rdmsr_safe_on_cpu(void *info) 19static void __wrmsr_on_cpu(void *info)
20{ 20{
21 struct msr_info *rv = info; 21 struct msr_info *rv = info;
22 22
23 rv->err = rdmsr_safe(rv->msr_no, &rv->l, &rv->h); 23 wrmsr(rv->msr_no, rv->l, rv->h);
24} 24}
25 25
26static int _rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h, int safe) 26int rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h)
27{ 27{
28 int err = 0; 28 int err;
29 struct msr_info rv; 29 struct msr_info rv;
30 30
31 rv.msr_no = msr_no; 31 rv.msr_no = msr_no;
32 if (safe) { 32 err = smp_call_function_single(cpu, __rdmsr_on_cpu, &rv, 1);
33 smp_call_function_single(cpu, __rdmsr_safe_on_cpu, &rv, 1);
34 err = rv.err;
35 } else {
36 smp_call_function_single(cpu, __rdmsr_on_cpu, &rv, 1);
37 }
38 *l = rv.l; 33 *l = rv.l;
39 *h = rv.h; 34 *h = rv.h;
40 35
41 return err; 36 return err;
42} 37}
43 38
44static void __wrmsr_on_cpu(void *info) 39int wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
40{
41 int err;
42 struct msr_info rv;
43
44 rv.msr_no = msr_no;
45 rv.l = l;
46 rv.h = h;
47 err = smp_call_function_single(cpu, __wrmsr_on_cpu, &rv, 1);
48
49 return err;
50}
51
52/* These "safe" variants are slower and should be used when the target MSR
53 may not actually exist. */
54static void __rdmsr_safe_on_cpu(void *info)
45{ 55{
46 struct msr_info *rv = info; 56 struct msr_info *rv = info;
47 57
48 wrmsr(rv->msr_no, rv->l, rv->h); 58 rv->err = rdmsr_safe(rv->msr_no, &rv->l, &rv->h);
49} 59}
50 60
51static void __wrmsr_safe_on_cpu(void *info) 61static void __wrmsr_safe_on_cpu(void *info)
@@ -55,44 +65,30 @@ static void __wrmsr_safe_on_cpu(void *info)
55 rv->err = wrmsr_safe(rv->msr_no, rv->l, rv->h); 65 rv->err = wrmsr_safe(rv->msr_no, rv->l, rv->h);
56} 66}
57 67
58static int _wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h, int safe) 68int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h)
59{ 69{
60 int err = 0; 70 int err;
61 struct msr_info rv; 71 struct msr_info rv;
62 72
63 rv.msr_no = msr_no; 73 rv.msr_no = msr_no;
64 rv.l = l; 74 err = smp_call_function_single(cpu, __rdmsr_safe_on_cpu, &rv, 1);
65 rv.h = h; 75 *l = rv.l;
66 if (safe) { 76 *h = rv.h;
67 smp_call_function_single(cpu, __wrmsr_safe_on_cpu, &rv, 1);
68 err = rv.err;
69 } else {
70 smp_call_function_single(cpu, __wrmsr_on_cpu, &rv, 1);
71 }
72
73 return err;
74}
75
76void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
77{
78 _wrmsr_on_cpu(cpu, msr_no, l, h, 0);
79}
80 77
81void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h) 78 return err ? err : rv.err;
82{
83 _rdmsr_on_cpu(cpu, msr_no, l, h, 0);
84} 79}
85 80
86/* These "safe" variants are slower and should be used when the target MSR
87 may not actually exist. */
88int wrmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h) 81int wrmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
89{ 82{
90 return _wrmsr_on_cpu(cpu, msr_no, l, h, 1); 83 int err;
91} 84 struct msr_info rv;
92 85
93int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h) 86 rv.msr_no = msr_no;
94{ 87 rv.l = l;
95 return _rdmsr_on_cpu(cpu, msr_no, l, h, 1); 88 rv.h = h;
89 err = smp_call_function_single(cpu, __wrmsr_safe_on_cpu, &rv, 1);
90
91 return err ? err : rv.err;
96} 92}
97 93
98EXPORT_SYMBOL(rdmsr_on_cpu); 94EXPORT_SYMBOL(rdmsr_on_cpu);
diff --git a/arch/x86/lib/string_32.c b/arch/x86/lib/string_32.c
index 94972e7c094..82004d2bf05 100644
--- a/arch/x86/lib/string_32.c
+++ b/arch/x86/lib/string_32.c
@@ -22,7 +22,7 @@ char *strcpy(char *dest, const char *src)
22 "testb %%al,%%al\n\t" 22 "testb %%al,%%al\n\t"
23 "jne 1b" 23 "jne 1b"
24 : "=&S" (d0), "=&D" (d1), "=&a" (d2) 24 : "=&S" (d0), "=&D" (d1), "=&a" (d2)
25 :"0" (src), "1" (dest) : "memory"); 25 : "0" (src), "1" (dest) : "memory");
26 return dest; 26 return dest;
27} 27}
28EXPORT_SYMBOL(strcpy); 28EXPORT_SYMBOL(strcpy);
@@ -42,7 +42,7 @@ char *strncpy(char *dest, const char *src, size_t count)
42 "stosb\n" 42 "stosb\n"
43 "2:" 43 "2:"
44 : "=&S" (d0), "=&D" (d1), "=&c" (d2), "=&a" (d3) 44 : "=&S" (d0), "=&D" (d1), "=&c" (d2), "=&a" (d3)
45 :"0" (src), "1" (dest), "2" (count) : "memory"); 45 : "0" (src), "1" (dest), "2" (count) : "memory");
46 return dest; 46 return dest;
47} 47}
48EXPORT_SYMBOL(strncpy); 48EXPORT_SYMBOL(strncpy);
@@ -60,7 +60,7 @@ char *strcat(char *dest, const char *src)
60 "testb %%al,%%al\n\t" 60 "testb %%al,%%al\n\t"
61 "jne 1b" 61 "jne 1b"
62 : "=&S" (d0), "=&D" (d1), "=&a" (d2), "=&c" (d3) 62 : "=&S" (d0), "=&D" (d1), "=&a" (d2), "=&c" (d3)
63 : "0" (src), "1" (dest), "2" (0), "3" (0xffffffffu): "memory"); 63 : "0" (src), "1" (dest), "2" (0), "3" (0xffffffffu) : "memory");
64 return dest; 64 return dest;
65} 65}
66EXPORT_SYMBOL(strcat); 66EXPORT_SYMBOL(strcat);
@@ -105,9 +105,9 @@ int strcmp(const char *cs, const char *ct)
105 "2:\tsbbl %%eax,%%eax\n\t" 105 "2:\tsbbl %%eax,%%eax\n\t"
106 "orb $1,%%al\n" 106 "orb $1,%%al\n"
107 "3:" 107 "3:"
108 :"=a" (res), "=&S" (d0), "=&D" (d1) 108 : "=a" (res), "=&S" (d0), "=&D" (d1)
109 :"1" (cs), "2" (ct) 109 : "1" (cs), "2" (ct)
110 :"memory"); 110 : "memory");
111 return res; 111 return res;
112} 112}
113EXPORT_SYMBOL(strcmp); 113EXPORT_SYMBOL(strcmp);
@@ -130,9 +130,9 @@ int strncmp(const char *cs, const char *ct, size_t count)
130 "3:\tsbbl %%eax,%%eax\n\t" 130 "3:\tsbbl %%eax,%%eax\n\t"
131 "orb $1,%%al\n" 131 "orb $1,%%al\n"
132 "4:" 132 "4:"
133 :"=a" (res), "=&S" (d0), "=&D" (d1), "=&c" (d2) 133 : "=a" (res), "=&S" (d0), "=&D" (d1), "=&c" (d2)
134 :"1" (cs), "2" (ct), "3" (count) 134 : "1" (cs), "2" (ct), "3" (count)
135 :"memory"); 135 : "memory");
136 return res; 136 return res;
137} 137}
138EXPORT_SYMBOL(strncmp); 138EXPORT_SYMBOL(strncmp);
@@ -152,9 +152,9 @@ char *strchr(const char *s, int c)
152 "movl $1,%1\n" 152 "movl $1,%1\n"
153 "2:\tmovl %1,%0\n\t" 153 "2:\tmovl %1,%0\n\t"
154 "decl %0" 154 "decl %0"
155 :"=a" (res), "=&S" (d0) 155 : "=a" (res), "=&S" (d0)
156 :"1" (s), "0" (c) 156 : "1" (s), "0" (c)
157 :"memory"); 157 : "memory");
158 return res; 158 return res;
159} 159}
160EXPORT_SYMBOL(strchr); 160EXPORT_SYMBOL(strchr);
@@ -169,9 +169,9 @@ size_t strlen(const char *s)
169 "scasb\n\t" 169 "scasb\n\t"
170 "notl %0\n\t" 170 "notl %0\n\t"
171 "decl %0" 171 "decl %0"
172 :"=c" (res), "=&D" (d0) 172 : "=c" (res), "=&D" (d0)
173 :"1" (s), "a" (0), "0" (0xffffffffu) 173 : "1" (s), "a" (0), "0" (0xffffffffu)
174 :"memory"); 174 : "memory");
175 return res; 175 return res;
176} 176}
177EXPORT_SYMBOL(strlen); 177EXPORT_SYMBOL(strlen);
@@ -189,9 +189,9 @@ void *memchr(const void *cs, int c, size_t count)
189 "je 1f\n\t" 189 "je 1f\n\t"
190 "movl $1,%0\n" 190 "movl $1,%0\n"
191 "1:\tdecl %0" 191 "1:\tdecl %0"
192 :"=D" (res), "=&c" (d0) 192 : "=D" (res), "=&c" (d0)
193 :"a" (c), "0" (cs), "1" (count) 193 : "a" (c), "0" (cs), "1" (count)
194 :"memory"); 194 : "memory");
195 return res; 195 return res;
196} 196}
197EXPORT_SYMBOL(memchr); 197EXPORT_SYMBOL(memchr);
@@ -228,9 +228,9 @@ size_t strnlen(const char *s, size_t count)
228 "cmpl $-1,%1\n\t" 228 "cmpl $-1,%1\n\t"
229 "jne 1b\n" 229 "jne 1b\n"
230 "3:\tsubl %2,%0" 230 "3:\tsubl %2,%0"
231 :"=a" (res), "=&d" (d0) 231 : "=a" (res), "=&d" (d0)
232 :"c" (s), "1" (count) 232 : "c" (s), "1" (count)
233 :"memory"); 233 : "memory");
234 return res; 234 return res;
235} 235}
236EXPORT_SYMBOL(strnlen); 236EXPORT_SYMBOL(strnlen);
diff --git a/arch/x86/lib/strstr_32.c b/arch/x86/lib/strstr_32.c
index 42e8a50303f..8e2d55f754b 100644
--- a/arch/x86/lib/strstr_32.c
+++ b/arch/x86/lib/strstr_32.c
@@ -23,9 +23,9 @@ __asm__ __volatile__(
23 "jne 1b\n\t" 23 "jne 1b\n\t"
24 "xorl %%eax,%%eax\n\t" 24 "xorl %%eax,%%eax\n\t"
25 "2:" 25 "2:"
26 :"=a" (__res), "=&c" (d0), "=&S" (d1) 26 : "=a" (__res), "=&c" (d0), "=&S" (d1)
27 :"0" (0), "1" (0xffffffff), "2" (cs), "g" (ct) 27 : "0" (0), "1" (0xffffffff), "2" (cs), "g" (ct)
28 :"dx", "di"); 28 : "dx", "di");
29return __res; 29return __res;
30} 30}
31 31
diff --git a/arch/x86/mach-default/setup.c b/arch/x86/mach-default/setup.c
index 3d317836be9..3f2cf11f201 100644
--- a/arch/x86/mach-default/setup.c
+++ b/arch/x86/mach-default/setup.c
@@ -10,13 +10,15 @@
10#include <asm/e820.h> 10#include <asm/e820.h>
11#include <asm/setup.h> 11#include <asm/setup.h>
12 12
13#include <mach_ipi.h>
14
13#ifdef CONFIG_HOTPLUG_CPU 15#ifdef CONFIG_HOTPLUG_CPU
14#define DEFAULT_SEND_IPI (1) 16#define DEFAULT_SEND_IPI (1)
15#else 17#else
16#define DEFAULT_SEND_IPI (0) 18#define DEFAULT_SEND_IPI (0)
17#endif 19#endif
18 20
19int no_broadcast=DEFAULT_SEND_IPI; 21int no_broadcast = DEFAULT_SEND_IPI;
20 22
21/** 23/**
22 * pre_intr_init_hook - initialisation prior to setting up interrupt vectors 24 * pre_intr_init_hook - initialisation prior to setting up interrupt vectors
diff --git a/arch/x86/mach-rdc321x/platform.c b/arch/x86/mach-rdc321x/platform.c
index a037041817c..4f4e50c3ad3 100644
--- a/arch/x86/mach-rdc321x/platform.c
+++ b/arch/x86/mach-rdc321x/platform.c
@@ -25,7 +25,6 @@
25#include <linux/list.h> 25#include <linux/list.h>
26#include <linux/device.h> 26#include <linux/device.h>
27#include <linux/platform_device.h> 27#include <linux/platform_device.h>
28#include <linux/version.h>
29#include <linux/leds.h> 28#include <linux/leds.h>
30 29
31#include <asm/gpio.h> 30#include <asm/gpio.h>
diff --git a/arch/x86/mm/discontig_32.c b/arch/x86/mm/discontig_32.c
index 62fa440678d..847c164725f 100644
--- a/arch/x86/mm/discontig_32.c
+++ b/arch/x86/mm/discontig_32.c
@@ -328,7 +328,7 @@ void __init initmem_init(unsigned long start_pfn,
328 328
329 get_memcfg_numa(); 329 get_memcfg_numa();
330 330
331 kva_pages = round_up(calculate_numa_remap_pages(), PTRS_PER_PTE); 331 kva_pages = roundup(calculate_numa_remap_pages(), PTRS_PER_PTE);
332 332
333 kva_target_pfn = round_down(max_low_pfn - kva_pages, PTRS_PER_PTE); 333 kva_target_pfn = round_down(max_low_pfn - kva_pages, PTRS_PER_PTE);
334 do { 334 do {
diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c
index a20d1fa64b4..e7277cbcfb4 100644
--- a/arch/x86/mm/dump_pagetables.c
+++ b/arch/x86/mm/dump_pagetables.c
@@ -148,8 +148,8 @@ static void note_page(struct seq_file *m, struct pg_state *st,
148 * we have now. "break" is either changing perms, levels or 148 * we have now. "break" is either changing perms, levels or
149 * address space marker. 149 * address space marker.
150 */ 150 */
151 prot = pgprot_val(new_prot) & ~(PTE_PFN_MASK); 151 prot = pgprot_val(new_prot) & PTE_FLAGS_MASK;
152 cur = pgprot_val(st->current_prot) & ~(PTE_PFN_MASK); 152 cur = pgprot_val(st->current_prot) & PTE_FLAGS_MASK;
153 153
154 if (!st->level) { 154 if (!st->level) {
155 /* First entry */ 155 /* First entry */
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 455f3fe67b4..8f92cac4e6d 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -35,6 +35,7 @@
35#include <asm/tlbflush.h> 35#include <asm/tlbflush.h>
36#include <asm/proto.h> 36#include <asm/proto.h>
37#include <asm-generic/sections.h> 37#include <asm-generic/sections.h>
38#include <asm/traps.h>
38 39
39/* 40/*
40 * Page fault error code bits 41 * Page fault error code bits
@@ -357,8 +358,6 @@ static int is_errata100(struct pt_regs *regs, unsigned long address)
357 return 0; 358 return 0;
358} 359}
359 360
360void do_invalid_op(struct pt_regs *, unsigned long);
361
362static int is_f00f_bug(struct pt_regs *regs, unsigned long address) 361static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
363{ 362{
364#ifdef CONFIG_X86_F00F_BUG 363#ifdef CONFIG_X86_F00F_BUG
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index d37f29376b0..6b9a9358b33 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -47,6 +47,7 @@
47#include <asm/paravirt.h> 47#include <asm/paravirt.h>
48#include <asm/setup.h> 48#include <asm/setup.h>
49#include <asm/cacheflush.h> 49#include <asm/cacheflush.h>
50#include <asm/smp.h>
50 51
51unsigned int __VMALLOC_RESERVE = 128 << 20; 52unsigned int __VMALLOC_RESERVE = 128 << 20;
52 53
@@ -458,11 +459,7 @@ static void __init pagetable_init(void)
458{ 459{
459 pgd_t *pgd_base = swapper_pg_dir; 460 pgd_t *pgd_base = swapper_pg_dir;
460 461
461 paravirt_pagetable_setup_start(pgd_base);
462
463 permanent_kmaps_init(pgd_base); 462 permanent_kmaps_init(pgd_base);
464
465 paravirt_pagetable_setup_done(pgd_base);
466} 463}
467 464
468#ifdef CONFIG_ACPI_SLEEP 465#ifdef CONFIG_ACPI_SLEEP
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index a87ea0e4b3d..770536ebf7e 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -225,7 +225,7 @@ void __init init_extra_mapping_uc(unsigned long phys, unsigned long size)
225void __init cleanup_highmap(void) 225void __init cleanup_highmap(void)
226{ 226{
227 unsigned long vaddr = __START_KERNEL_map; 227 unsigned long vaddr = __START_KERNEL_map;
228 unsigned long end = round_up((unsigned long)_end, PMD_SIZE) - 1; 228 unsigned long end = roundup((unsigned long)_end, PMD_SIZE) - 1;
229 pmd_t *pmd = level2_kernel_pgt; 229 pmd_t *pmd = level2_kernel_pgt;
230 pmd_t *last_pmd = pmd + PTRS_PER_PMD; 230 pmd_t *last_pmd = pmd + PTRS_PER_PMD;
231 231
@@ -241,7 +241,7 @@ static unsigned long __initdata table_start;
241static unsigned long __meminitdata table_end; 241static unsigned long __meminitdata table_end;
242static unsigned long __meminitdata table_top; 242static unsigned long __meminitdata table_top;
243 243
244static __meminit void *alloc_low_page(unsigned long *phys) 244static __ref void *alloc_low_page(unsigned long *phys)
245{ 245{
246 unsigned long pfn = table_end++; 246 unsigned long pfn = table_end++;
247 void *adr; 247 void *adr;
@@ -262,7 +262,7 @@ static __meminit void *alloc_low_page(unsigned long *phys)
262 return adr; 262 return adr;
263} 263}
264 264
265static __meminit void unmap_low_page(void *adr) 265static __ref void unmap_low_page(void *adr)
266{ 266{
267 if (after_bootmem) 267 if (after_bootmem)
268 return; 268 return;
@@ -336,9 +336,12 @@ phys_pmd_init(pmd_t *pmd_page, unsigned long address, unsigned long end,
336 } 336 }
337 337
338 if (pmd_val(*pmd)) { 338 if (pmd_val(*pmd)) {
339 if (!pmd_large(*pmd)) 339 if (!pmd_large(*pmd)) {
340 spin_lock(&init_mm.page_table_lock);
340 last_map_addr = phys_pte_update(pmd, address, 341 last_map_addr = phys_pte_update(pmd, address,
341 end); 342 end);
343 spin_unlock(&init_mm.page_table_lock);
344 }
342 /* Count entries we're using from level2_ident_pgt */ 345 /* Count entries we're using from level2_ident_pgt */
343 if (start == 0) 346 if (start == 0)
344 pages++; 347 pages++;
@@ -347,8 +350,10 @@ phys_pmd_init(pmd_t *pmd_page, unsigned long address, unsigned long end,
347 350
348 if (page_size_mask & (1<<PG_LEVEL_2M)) { 351 if (page_size_mask & (1<<PG_LEVEL_2M)) {
349 pages++; 352 pages++;
353 spin_lock(&init_mm.page_table_lock);
350 set_pte((pte_t *)pmd, 354 set_pte((pte_t *)pmd,
351 pfn_pte(address >> PAGE_SHIFT, PAGE_KERNEL_LARGE)); 355 pfn_pte(address >> PAGE_SHIFT, PAGE_KERNEL_LARGE));
356 spin_unlock(&init_mm.page_table_lock);
352 last_map_addr = (address & PMD_MASK) + PMD_SIZE; 357 last_map_addr = (address & PMD_MASK) + PMD_SIZE;
353 continue; 358 continue;
354 } 359 }
@@ -357,7 +362,9 @@ phys_pmd_init(pmd_t *pmd_page, unsigned long address, unsigned long end,
357 last_map_addr = phys_pte_init(pte, address, end); 362 last_map_addr = phys_pte_init(pte, address, end);
358 unmap_low_page(pte); 363 unmap_low_page(pte);
359 364
365 spin_lock(&init_mm.page_table_lock);
360 pmd_populate_kernel(&init_mm, pmd, __va(pte_phys)); 366 pmd_populate_kernel(&init_mm, pmd, __va(pte_phys));
367 spin_unlock(&init_mm.page_table_lock);
361 } 368 }
362 update_page_count(PG_LEVEL_2M, pages); 369 update_page_count(PG_LEVEL_2M, pages);
363 return last_map_addr; 370 return last_map_addr;
@@ -370,9 +377,7 @@ phys_pmd_update(pud_t *pud, unsigned long address, unsigned long end,
370 pmd_t *pmd = pmd_offset(pud, 0); 377 pmd_t *pmd = pmd_offset(pud, 0);
371 unsigned long last_map_addr; 378 unsigned long last_map_addr;
372 379
373 spin_lock(&init_mm.page_table_lock);
374 last_map_addr = phys_pmd_init(pmd, address, end, page_size_mask); 380 last_map_addr = phys_pmd_init(pmd, address, end, page_size_mask);
375 spin_unlock(&init_mm.page_table_lock);
376 __flush_tlb_all(); 381 __flush_tlb_all();
377 return last_map_addr; 382 return last_map_addr;
378} 383}
@@ -408,20 +413,21 @@ phys_pud_init(pud_t *pud_page, unsigned long addr, unsigned long end,
408 413
409 if (page_size_mask & (1<<PG_LEVEL_1G)) { 414 if (page_size_mask & (1<<PG_LEVEL_1G)) {
410 pages++; 415 pages++;
416 spin_lock(&init_mm.page_table_lock);
411 set_pte((pte_t *)pud, 417 set_pte((pte_t *)pud,
412 pfn_pte(addr >> PAGE_SHIFT, PAGE_KERNEL_LARGE)); 418 pfn_pte(addr >> PAGE_SHIFT, PAGE_KERNEL_LARGE));
419 spin_unlock(&init_mm.page_table_lock);
413 last_map_addr = (addr & PUD_MASK) + PUD_SIZE; 420 last_map_addr = (addr & PUD_MASK) + PUD_SIZE;
414 continue; 421 continue;
415 } 422 }
416 423
417 pmd = alloc_low_page(&pmd_phys); 424 pmd = alloc_low_page(&pmd_phys);
418
419 spin_lock(&init_mm.page_table_lock);
420 last_map_addr = phys_pmd_init(pmd, addr, end, page_size_mask); 425 last_map_addr = phys_pmd_init(pmd, addr, end, page_size_mask);
421 unmap_low_page(pmd); 426 unmap_low_page(pmd);
427
428 spin_lock(&init_mm.page_table_lock);
422 pud_populate(&init_mm, pud, __va(pmd_phys)); 429 pud_populate(&init_mm, pud, __va(pmd_phys));
423 spin_unlock(&init_mm.page_table_lock); 430 spin_unlock(&init_mm.page_table_lock);
424
425 } 431 }
426 __flush_tlb_all(); 432 __flush_tlb_all();
427 update_page_count(PG_LEVEL_1G, pages); 433 update_page_count(PG_LEVEL_1G, pages);
@@ -445,14 +451,14 @@ static void __init find_early_table_space(unsigned long end)
445 unsigned long puds, pmds, ptes, tables, start; 451 unsigned long puds, pmds, ptes, tables, start;
446 452
447 puds = (end + PUD_SIZE - 1) >> PUD_SHIFT; 453 puds = (end + PUD_SIZE - 1) >> PUD_SHIFT;
448 tables = round_up(puds * sizeof(pud_t), PAGE_SIZE); 454 tables = roundup(puds * sizeof(pud_t), PAGE_SIZE);
449 if (direct_gbpages) { 455 if (direct_gbpages) {
450 unsigned long extra; 456 unsigned long extra;
451 extra = end - ((end>>PUD_SHIFT) << PUD_SHIFT); 457 extra = end - ((end>>PUD_SHIFT) << PUD_SHIFT);
452 pmds = (extra + PMD_SIZE - 1) >> PMD_SHIFT; 458 pmds = (extra + PMD_SIZE - 1) >> PMD_SHIFT;
453 } else 459 } else
454 pmds = (end + PMD_SIZE - 1) >> PMD_SHIFT; 460 pmds = (end + PMD_SIZE - 1) >> PMD_SHIFT;
455 tables += round_up(pmds * sizeof(pmd_t), PAGE_SIZE); 461 tables += roundup(pmds * sizeof(pmd_t), PAGE_SIZE);
456 462
457 if (cpu_has_pse) { 463 if (cpu_has_pse) {
458 unsigned long extra; 464 unsigned long extra;
@@ -460,7 +466,7 @@ static void __init find_early_table_space(unsigned long end)
460 ptes = (extra + PAGE_SIZE - 1) >> PAGE_SHIFT; 466 ptes = (extra + PAGE_SIZE - 1) >> PAGE_SHIFT;
461 } else 467 } else
462 ptes = (end + PAGE_SIZE - 1) >> PAGE_SHIFT; 468 ptes = (end + PAGE_SIZE - 1) >> PAGE_SHIFT;
463 tables += round_up(ptes * sizeof(pte_t), PAGE_SIZE); 469 tables += roundup(ptes * sizeof(pte_t), PAGE_SIZE);
464 470
465 /* 471 /*
466 * RED-PEN putting page tables only on node 0 could 472 * RED-PEN putting page tables only on node 0 could
@@ -513,16 +519,14 @@ static unsigned long __init kernel_physical_mapping_init(unsigned long start,
513 continue; 519 continue;
514 } 520 }
515 521
516 if (after_bootmem) 522 pud = alloc_low_page(&pud_phys);
517 pud = pud_offset(pgd, start & PGDIR_MASK);
518 else
519 pud = alloc_low_page(&pud_phys);
520
521 last_map_addr = phys_pud_init(pud, __pa(start), __pa(next), 523 last_map_addr = phys_pud_init(pud, __pa(start), __pa(next),
522 page_size_mask); 524 page_size_mask);
523 unmap_low_page(pud); 525 unmap_low_page(pud);
524 pgd_populate(&init_mm, pgd_offset_k(start), 526
525 __va(pud_phys)); 527 spin_lock(&init_mm.page_table_lock);
528 pgd_populate(&init_mm, pgd, __va(pud_phys));
529 spin_unlock(&init_mm.page_table_lock);
526 } 530 }
527 531
528 return last_map_addr; 532 return last_map_addr;
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 6ba6f889c79..cac6da54203 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -421,7 +421,7 @@ void unxlate_dev_mem_ptr(unsigned long phys, void *addr)
421 return; 421 return;
422} 422}
423 423
424int __initdata early_ioremap_debug; 424static int __initdata early_ioremap_debug;
425 425
426static int __init early_ioremap_debug_setup(char *str) 426static int __init early_ioremap_debug_setup(char *str)
427{ 427{
@@ -547,19 +547,17 @@ static inline void __init early_clear_fixmap(enum fixed_addresses idx)
547} 547}
548 548
549 549
550int __initdata early_ioremap_nested; 550static int __initdata early_ioremap_nested;
551 551
552static int __init check_early_ioremap_leak(void) 552static int __init check_early_ioremap_leak(void)
553{ 553{
554 if (!early_ioremap_nested) 554 if (!early_ioremap_nested)
555 return 0; 555 return 0;
556 556 WARN(1, KERN_WARNING
557 printk(KERN_WARNING
558 "Debug warning: early ioremap leak of %d areas detected.\n", 557 "Debug warning: early ioremap leak of %d areas detected.\n",
559 early_ioremap_nested); 558 early_ioremap_nested);
560 printk(KERN_WARNING 559 printk(KERN_WARNING
561 "please boot with early_ioremap_debug and report the dmesg.\n"); 560 "please boot with early_ioremap_debug and report the dmesg.\n");
562 WARN_ON(1);
563 561
564 return 1; 562 return 1;
565} 563}
diff --git a/arch/x86/mm/mmio-mod.c b/arch/x86/mm/mmio-mod.c
index e7397e108be..635b50e8558 100644
--- a/arch/x86/mm/mmio-mod.c
+++ b/arch/x86/mm/mmio-mod.c
@@ -430,7 +430,9 @@ static void enter_uniprocessor(void)
430 "may miss events.\n"); 430 "may miss events.\n");
431} 431}
432 432
433static void leave_uniprocessor(void) 433/* __ref because leave_uniprocessor calls cpu_up which is __cpuinit,
434 but this whole function is ifdefed CONFIG_HOTPLUG_CPU */
435static void __ref leave_uniprocessor(void)
434{ 436{
435 int cpu; 437 int cpu;
436 int err; 438 int err;
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c
index a4dd793d600..cebcbf152d4 100644
--- a/arch/x86/mm/numa_64.c
+++ b/arch/x86/mm/numa_64.c
@@ -79,7 +79,7 @@ static int __init allocate_cachealigned_memnodemap(void)
79 return 0; 79 return 0;
80 80
81 addr = 0x8000; 81 addr = 0x8000;
82 nodemap_size = round_up(sizeof(s16) * memnodemapsize, L1_CACHE_BYTES); 82 nodemap_size = roundup(sizeof(s16) * memnodemapsize, L1_CACHE_BYTES);
83 nodemap_addr = find_e820_area(addr, max_pfn<<PAGE_SHIFT, 83 nodemap_addr = find_e820_area(addr, max_pfn<<PAGE_SHIFT,
84 nodemap_size, L1_CACHE_BYTES); 84 nodemap_size, L1_CACHE_BYTES);
85 if (nodemap_addr == -1UL) { 85 if (nodemap_addr == -1UL) {
@@ -176,10 +176,10 @@ void __init setup_node_bootmem(int nodeid, unsigned long start,
176 unsigned long start_pfn, last_pfn, bootmap_pages, bootmap_size; 176 unsigned long start_pfn, last_pfn, bootmap_pages, bootmap_size;
177 unsigned long bootmap_start, nodedata_phys; 177 unsigned long bootmap_start, nodedata_phys;
178 void *bootmap; 178 void *bootmap;
179 const int pgdat_size = round_up(sizeof(pg_data_t), PAGE_SIZE); 179 const int pgdat_size = roundup(sizeof(pg_data_t), PAGE_SIZE);
180 int nid; 180 int nid;
181 181
182 start = round_up(start, ZONE_ALIGN); 182 start = roundup(start, ZONE_ALIGN);
183 183
184 printk(KERN_INFO "Bootmem setup node %d %016lx-%016lx\n", nodeid, 184 printk(KERN_INFO "Bootmem setup node %d %016lx-%016lx\n", nodeid,
185 start, end); 185 start, end);
@@ -210,9 +210,9 @@ void __init setup_node_bootmem(int nodeid, unsigned long start,
210 bootmap_pages = bootmem_bootmap_pages(last_pfn - start_pfn); 210 bootmap_pages = bootmem_bootmap_pages(last_pfn - start_pfn);
211 nid = phys_to_nid(nodedata_phys); 211 nid = phys_to_nid(nodedata_phys);
212 if (nid == nodeid) 212 if (nid == nodeid)
213 bootmap_start = round_up(nodedata_phys + pgdat_size, PAGE_SIZE); 213 bootmap_start = roundup(nodedata_phys + pgdat_size, PAGE_SIZE);
214 else 214 else
215 bootmap_start = round_up(start, PAGE_SIZE); 215 bootmap_start = roundup(start, PAGE_SIZE);
216 /* 216 /*
217 * SMP_CACHE_BYTES could be enough, but init_bootmem_node like 217 * SMP_CACHE_BYTES could be enough, but init_bootmem_node like
218 * to use that to align to PAGE_SIZE 218 * to use that to align to PAGE_SIZE
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index f5f5154ea11..898fad617ab 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -84,7 +84,7 @@ static inline unsigned long highmap_start_pfn(void)
84 84
85static inline unsigned long highmap_end_pfn(void) 85static inline unsigned long highmap_end_pfn(void)
86{ 86{
87 return __pa(round_up((unsigned long)_end, PMD_SIZE)) >> PAGE_SHIFT; 87 return __pa(roundup((unsigned long)_end, PMD_SIZE)) >> PAGE_SHIFT;
88} 88}
89 89
90#endif 90#endif
@@ -849,7 +849,7 @@ int set_memory_uc(unsigned long addr, int numpages)
849 /* 849 /*
850 * for now UC MINUS. see comments in ioremap_nocache() 850 * for now UC MINUS. see comments in ioremap_nocache()
851 */ 851 */
852 if (reserve_memtype(addr, addr + numpages * PAGE_SIZE, 852 if (reserve_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE,
853 _PAGE_CACHE_UC_MINUS, NULL)) 853 _PAGE_CACHE_UC_MINUS, NULL))
854 return -EINVAL; 854 return -EINVAL;
855 855
@@ -868,7 +868,7 @@ int set_memory_wc(unsigned long addr, int numpages)
868 if (!pat_enabled) 868 if (!pat_enabled)
869 return set_memory_uc(addr, numpages); 869 return set_memory_uc(addr, numpages);
870 870
871 if (reserve_memtype(addr, addr + numpages * PAGE_SIZE, 871 if (reserve_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE,
872 _PAGE_CACHE_WC, NULL)) 872 _PAGE_CACHE_WC, NULL))
873 return -EINVAL; 873 return -EINVAL;
874 874
@@ -884,7 +884,7 @@ int _set_memory_wb(unsigned long addr, int numpages)
884 884
885int set_memory_wb(unsigned long addr, int numpages) 885int set_memory_wb(unsigned long addr, int numpages)
886{ 886{
887 free_memtype(addr, addr + numpages * PAGE_SIZE); 887 free_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE);
888 888
889 return _set_memory_wb(addr, numpages); 889 return _set_memory_wb(addr, numpages);
890} 890}
@@ -906,11 +906,13 @@ int set_memory_ro(unsigned long addr, int numpages)
906{ 906{
907 return change_page_attr_clear(addr, numpages, __pgprot(_PAGE_RW)); 907 return change_page_attr_clear(addr, numpages, __pgprot(_PAGE_RW));
908} 908}
909EXPORT_SYMBOL_GPL(set_memory_ro);
909 910
910int set_memory_rw(unsigned long addr, int numpages) 911int set_memory_rw(unsigned long addr, int numpages)
911{ 912{
912 return change_page_attr_set(addr, numpages, __pgprot(_PAGE_RW)); 913 return change_page_attr_set(addr, numpages, __pgprot(_PAGE_RW));
913} 914}
915EXPORT_SYMBOL_GPL(set_memory_rw);
914 916
915int set_memory_np(unsigned long addr, int numpages) 917int set_memory_np(unsigned long addr, int numpages)
916{ 918{
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
index 2fe30916d4b..2a50e0fa64a 100644
--- a/arch/x86/mm/pat.c
+++ b/arch/x86/mm/pat.c
@@ -207,6 +207,9 @@ static int chk_conflict(struct memtype *new, struct memtype *entry,
207 return -EBUSY; 207 return -EBUSY;
208} 208}
209 209
210static struct memtype *cached_entry;
211static u64 cached_start;
212
210/* 213/*
211 * req_type typically has one of the: 214 * req_type typically has one of the:
212 * - _PAGE_CACHE_WB 215 * - _PAGE_CACHE_WB
@@ -280,11 +283,17 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
280 283
281 spin_lock(&memtype_lock); 284 spin_lock(&memtype_lock);
282 285
286 if (cached_entry && start >= cached_start)
287 entry = cached_entry;
288 else
289 entry = list_entry(&memtype_list, struct memtype, nd);
290
283 /* Search for existing mapping that overlaps the current range */ 291 /* Search for existing mapping that overlaps the current range */
284 where = NULL; 292 where = NULL;
285 list_for_each_entry(entry, &memtype_list, nd) { 293 list_for_each_entry_continue(entry, &memtype_list, nd) {
286 if (end <= entry->start) { 294 if (end <= entry->start) {
287 where = entry->nd.prev; 295 where = entry->nd.prev;
296 cached_entry = list_entry(where, struct memtype, nd);
288 break; 297 break;
289 } else if (start <= entry->start) { /* end > entry->start */ 298 } else if (start <= entry->start) { /* end > entry->start */
290 err = chk_conflict(new, entry, new_type); 299 err = chk_conflict(new, entry, new_type);
@@ -292,6 +301,8 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
292 dprintk("Overlap at 0x%Lx-0x%Lx\n", 301 dprintk("Overlap at 0x%Lx-0x%Lx\n",
293 entry->start, entry->end); 302 entry->start, entry->end);
294 where = entry->nd.prev; 303 where = entry->nd.prev;
304 cached_entry = list_entry(where,
305 struct memtype, nd);
295 } 306 }
296 break; 307 break;
297 } else if (start < entry->end) { /* start > entry->start */ 308 } else if (start < entry->end) { /* start > entry->start */
@@ -299,7 +310,20 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
299 if (!err) { 310 if (!err) {
300 dprintk("Overlap at 0x%Lx-0x%Lx\n", 311 dprintk("Overlap at 0x%Lx-0x%Lx\n",
301 entry->start, entry->end); 312 entry->start, entry->end);
302 where = &entry->nd; 313 cached_entry = list_entry(entry->nd.prev,
314 struct memtype, nd);
315
316 /*
317 * Move to right position in the linked
318 * list to add this new entry
319 */
320 list_for_each_entry_continue(entry,
321 &memtype_list, nd) {
322 if (start <= entry->start) {
323 where = entry->nd.prev;
324 break;
325 }
326 }
303 } 327 }
304 break; 328 break;
305 } 329 }
@@ -314,6 +338,8 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
314 return err; 338 return err;
315 } 339 }
316 340
341 cached_start = start;
342
317 if (where) 343 if (where)
318 list_add(&new->nd, where); 344 list_add(&new->nd, where);
319 else 345 else
@@ -343,6 +369,9 @@ int free_memtype(u64 start, u64 end)
343 spin_lock(&memtype_lock); 369 spin_lock(&memtype_lock);
344 list_for_each_entry(entry, &memtype_list, nd) { 370 list_for_each_entry(entry, &memtype_list, nd) {
345 if (entry->start == start && entry->end == end) { 371 if (entry->start == start && entry->end == end) {
372 if (cached_entry == entry || cached_start == start)
373 cached_entry = NULL;
374
346 list_del(&entry->nd); 375 list_del(&entry->nd);
347 kfree(entry); 376 kfree(entry);
348 err = 0; 377 err = 0;
@@ -361,14 +390,6 @@ int free_memtype(u64 start, u64 end)
361} 390}
362 391
363 392
364/*
365 * /dev/mem mmap interface. The memtype used for mapping varies:
366 * - Use UC for mappings with O_SYNC flag
367 * - Without O_SYNC flag, if there is any conflict in reserve_memtype,
368 * inherit the memtype from existing mapping.
369 * - Else use UC_MINUS memtype (for backward compatibility with existing
370 * X drivers.
371 */
372pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, 393pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
373 unsigned long size, pgprot_t vma_prot) 394 unsigned long size, pgprot_t vma_prot)
374{ 395{
@@ -406,14 +427,14 @@ int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
406 unsigned long size, pgprot_t *vma_prot) 427 unsigned long size, pgprot_t *vma_prot)
407{ 428{
408 u64 offset = ((u64) pfn) << PAGE_SHIFT; 429 u64 offset = ((u64) pfn) << PAGE_SHIFT;
409 unsigned long flags = _PAGE_CACHE_UC_MINUS; 430 unsigned long flags = -1;
410 int retval; 431 int retval;
411 432
412 if (!range_is_allowed(pfn, size)) 433 if (!range_is_allowed(pfn, size))
413 return 0; 434 return 0;
414 435
415 if (file->f_flags & O_SYNC) { 436 if (file->f_flags & O_SYNC) {
416 flags = _PAGE_CACHE_UC; 437 flags = _PAGE_CACHE_UC_MINUS;
417 } 438 }
418 439
419#ifdef CONFIG_X86_32 440#ifdef CONFIG_X86_32
@@ -436,13 +457,14 @@ int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
436#endif 457#endif
437 458
438 /* 459 /*
439 * With O_SYNC, we can only take UC mapping. Fail if we cannot. 460 * With O_SYNC, we can only take UC_MINUS mapping. Fail if we cannot.
461 *
440 * Without O_SYNC, we want to get 462 * Without O_SYNC, we want to get
441 * - WB for WB-able memory and no other conflicting mappings 463 * - WB for WB-able memory and no other conflicting mappings
442 * - UC_MINUS for non-WB-able memory with no other conflicting mappings 464 * - UC_MINUS for non-WB-able memory with no other conflicting mappings
443 * - Inherit from confliting mappings otherwise 465 * - Inherit from confliting mappings otherwise
444 */ 466 */
445 if (flags != _PAGE_CACHE_UC_MINUS) { 467 if (flags != -1) {
446 retval = reserve_memtype(offset, offset + size, flags, NULL); 468 retval = reserve_memtype(offset, offset + size, flags, NULL);
447 } else { 469 } else {
448 retval = reserve_memtype(offset, offset + size, -1, &flags); 470 retval = reserve_memtype(offset, offset + size, -1, &flags);
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index d50302774fe..86f2ffc43c3 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -63,10 +63,8 @@ static inline void pgd_list_del(pgd_t *pgd)
63#define UNSHARED_PTRS_PER_PGD \ 63#define UNSHARED_PTRS_PER_PGD \
64 (SHARED_KERNEL_PMD ? KERNEL_PGD_BOUNDARY : PTRS_PER_PGD) 64 (SHARED_KERNEL_PMD ? KERNEL_PGD_BOUNDARY : PTRS_PER_PGD)
65 65
66static void pgd_ctor(void *p) 66static void pgd_ctor(pgd_t *pgd)
67{ 67{
68 pgd_t *pgd = p;
69
70 /* If the pgd points to a shared pagetable level (either the 68 /* If the pgd points to a shared pagetable level (either the
71 ptes in non-PAE, or shared PMD in PAE), then just copy the 69 ptes in non-PAE, or shared PMD in PAE), then just copy the
72 references from swapper_pg_dir. */ 70 references from swapper_pg_dir. */
@@ -87,7 +85,7 @@ static void pgd_ctor(void *p)
87 pgd_list_add(pgd); 85 pgd_list_add(pgd);
88} 86}
89 87
90static void pgd_dtor(void *pgd) 88static void pgd_dtor(pgd_t *pgd)
91{ 89{
92 unsigned long flags; /* can be called from interrupt context */ 90 unsigned long flags; /* can be called from interrupt context */
93 91
diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c
index cab0abbd1eb..0951db9ee51 100644
--- a/arch/x86/mm/pgtable_32.c
+++ b/arch/x86/mm/pgtable_32.c
@@ -123,7 +123,8 @@ static int __init parse_vmalloc(char *arg)
123 if (!arg) 123 if (!arg)
124 return -EINVAL; 124 return -EINVAL;
125 125
126 __VMALLOC_RESERVE = memparse(arg, &arg); 126 /* Add VMALLOC_OFFSET to the parsed value due to vm area guard hole*/
127 __VMALLOC_RESERVE = memparse(arg, &arg) + VMALLOC_OFFSET;
127 return 0; 128 return 0;
128} 129}
129early_param("vmalloc", parse_vmalloc); 130early_param("vmalloc", parse_vmalloc);
diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
index 3f90289410e..8a5f1614a3d 100644
--- a/arch/x86/oprofile/nmi_int.c
+++ b/arch/x86/oprofile/nmi_int.c
@@ -15,6 +15,7 @@
15#include <linux/slab.h> 15#include <linux/slab.h>
16#include <linux/moduleparam.h> 16#include <linux/moduleparam.h>
17#include <linux/kdebug.h> 17#include <linux/kdebug.h>
18#include <linux/cpu.h>
18#include <asm/nmi.h> 19#include <asm/nmi.h>
19#include <asm/msr.h> 20#include <asm/msr.h>
20#include <asm/apic.h> 21#include <asm/apic.h>
@@ -28,23 +29,48 @@ static DEFINE_PER_CPU(unsigned long, saved_lvtpc);
28 29
29static int nmi_start(void); 30static int nmi_start(void);
30static void nmi_stop(void); 31static void nmi_stop(void);
32static void nmi_cpu_start(void *dummy);
33static void nmi_cpu_stop(void *dummy);
31 34
32/* 0 == registered but off, 1 == registered and on */ 35/* 0 == registered but off, 1 == registered and on */
33static int nmi_enabled = 0; 36static int nmi_enabled = 0;
34 37
38#ifdef CONFIG_SMP
39static int oprofile_cpu_notifier(struct notifier_block *b, unsigned long action,
40 void *data)
41{
42 int cpu = (unsigned long)data;
43 switch (action) {
44 case CPU_DOWN_FAILED:
45 case CPU_ONLINE:
46 smp_call_function_single(cpu, nmi_cpu_start, NULL, 0);
47 break;
48 case CPU_DOWN_PREPARE:
49 smp_call_function_single(cpu, nmi_cpu_stop, NULL, 1);
50 break;
51 }
52 return NOTIFY_DONE;
53}
54
55static struct notifier_block oprofile_cpu_nb = {
56 .notifier_call = oprofile_cpu_notifier
57};
58#endif
59
35#ifdef CONFIG_PM 60#ifdef CONFIG_PM
36 61
37static int nmi_suspend(struct sys_device *dev, pm_message_t state) 62static int nmi_suspend(struct sys_device *dev, pm_message_t state)
38{ 63{
64 /* Only one CPU left, just stop that one */
39 if (nmi_enabled == 1) 65 if (nmi_enabled == 1)
40 nmi_stop(); 66 nmi_cpu_stop(NULL);
41 return 0; 67 return 0;
42} 68}
43 69
44static int nmi_resume(struct sys_device *dev) 70static int nmi_resume(struct sys_device *dev)
45{ 71{
46 if (nmi_enabled == 1) 72 if (nmi_enabled == 1)
47 nmi_start(); 73 nmi_cpu_start(NULL);
48 return 0; 74 return 0;
49} 75}
50 76
@@ -269,10 +295,12 @@ static void nmi_cpu_shutdown(void *dummy)
269 295
270static void nmi_shutdown(void) 296static void nmi_shutdown(void)
271{ 297{
272 struct op_msrs *msrs = &get_cpu_var(cpu_msrs); 298 struct op_msrs *msrs;
299
273 nmi_enabled = 0; 300 nmi_enabled = 0;
274 on_each_cpu(nmi_cpu_shutdown, NULL, 1); 301 on_each_cpu(nmi_cpu_shutdown, NULL, 1);
275 unregister_die_notifier(&profile_exceptions_nb); 302 unregister_die_notifier(&profile_exceptions_nb);
303 msrs = &get_cpu_var(cpu_msrs);
276 model->shutdown(msrs); 304 model->shutdown(msrs);
277 free_msrs(); 305 free_msrs();
278 put_cpu_var(cpu_msrs); 306 put_cpu_var(cpu_msrs);
@@ -463,6 +491,9 @@ int __init op_nmi_init(struct oprofile_operations *ops)
463 } 491 }
464 492
465 init_sysfs(); 493 init_sysfs();
494#ifdef CONFIG_SMP
495 register_cpu_notifier(&oprofile_cpu_nb);
496#endif
466 using_nmi = 1; 497 using_nmi = 1;
467 ops->create_files = nmi_create_files; 498 ops->create_files = nmi_create_files;
468 ops->setup = nmi_setup; 499 ops->setup = nmi_setup;
@@ -476,6 +507,10 @@ int __init op_nmi_init(struct oprofile_operations *ops)
476 507
477void op_nmi_exit(void) 508void op_nmi_exit(void)
478{ 509{
479 if (using_nmi) 510 if (using_nmi) {
480 exit_sysfs(); 511 exit_sysfs();
512#ifdef CONFIG_SMP
513 unregister_cpu_notifier(&oprofile_cpu_nb);
514#endif
515 }
481} 516}
diff --git a/arch/x86/oprofile/op_model_p4.c b/arch/x86/oprofile/op_model_p4.c
index 56b4757a1f4..43ac5af338d 100644
--- a/arch/x86/oprofile/op_model_p4.c
+++ b/arch/x86/oprofile/op_model_p4.c
@@ -10,11 +10,12 @@
10 10
11#include <linux/oprofile.h> 11#include <linux/oprofile.h>
12#include <linux/smp.h> 12#include <linux/smp.h>
13#include <linux/ptrace.h>
14#include <linux/nmi.h>
13#include <asm/msr.h> 15#include <asm/msr.h>
14#include <asm/ptrace.h>
15#include <asm/fixmap.h> 16#include <asm/fixmap.h>
16#include <asm/apic.h> 17#include <asm/apic.h>
17#include <asm/nmi.h> 18
18 19
19#include "op_x86_model.h" 20#include "op_x86_model.h"
20#include "op_counter.h" 21#include "op_counter.h"
@@ -40,7 +41,7 @@ static unsigned int num_controls = NUM_CONTROLS_NON_HT;
40static inline void setup_num_counters(void) 41static inline void setup_num_counters(void)
41{ 42{
42#ifdef CONFIG_SMP 43#ifdef CONFIG_SMP
43 if (smp_num_siblings == 2){ 44 if (smp_num_siblings == 2) {
44 num_counters = NUM_COUNTERS_HT2; 45 num_counters = NUM_COUNTERS_HT2;
45 num_controls = NUM_CONTROLS_HT2; 46 num_controls = NUM_CONTROLS_HT2;
46 } 47 }
@@ -86,7 +87,7 @@ struct p4_event_binding {
86#define CTR_FLAME_2 (1 << 6) 87#define CTR_FLAME_2 (1 << 6)
87#define CTR_IQ_5 (1 << 7) 88#define CTR_IQ_5 (1 << 7)
88 89
89static struct p4_counter_binding p4_counters [NUM_COUNTERS_NON_HT] = { 90static struct p4_counter_binding p4_counters[NUM_COUNTERS_NON_HT] = {
90 { CTR_BPU_0, MSR_P4_BPU_PERFCTR0, MSR_P4_BPU_CCCR0 }, 91 { CTR_BPU_0, MSR_P4_BPU_PERFCTR0, MSR_P4_BPU_CCCR0 },
91 { CTR_MS_0, MSR_P4_MS_PERFCTR0, MSR_P4_MS_CCCR0 }, 92 { CTR_MS_0, MSR_P4_MS_PERFCTR0, MSR_P4_MS_CCCR0 },
92 { CTR_FLAME_0, MSR_P4_FLAME_PERFCTR0, MSR_P4_FLAME_CCCR0 }, 93 { CTR_FLAME_0, MSR_P4_FLAME_PERFCTR0, MSR_P4_FLAME_CCCR0 },
@@ -97,32 +98,32 @@ static struct p4_counter_binding p4_counters [NUM_COUNTERS_NON_HT] = {
97 { CTR_IQ_5, MSR_P4_IQ_PERFCTR5, MSR_P4_IQ_CCCR5 } 98 { CTR_IQ_5, MSR_P4_IQ_PERFCTR5, MSR_P4_IQ_CCCR5 }
98}; 99};
99 100
100#define NUM_UNUSED_CCCRS NUM_CCCRS_NON_HT - NUM_COUNTERS_NON_HT 101#define NUM_UNUSED_CCCRS (NUM_CCCRS_NON_HT - NUM_COUNTERS_NON_HT)
101 102
102/* p4 event codes in libop/op_event.h are indices into this table. */ 103/* p4 event codes in libop/op_event.h are indices into this table. */
103 104
104static struct p4_event_binding p4_events[NUM_EVENTS] = { 105static struct p4_event_binding p4_events[NUM_EVENTS] = {
105 106
106 { /* BRANCH_RETIRED */ 107 { /* BRANCH_RETIRED */
107 0x05, 0x06, 108 0x05, 0x06,
108 { {CTR_IQ_4, MSR_P4_CRU_ESCR2}, 109 { {CTR_IQ_4, MSR_P4_CRU_ESCR2},
109 {CTR_IQ_5, MSR_P4_CRU_ESCR3} } 110 {CTR_IQ_5, MSR_P4_CRU_ESCR3} }
110 }, 111 },
111 112
112 { /* MISPRED_BRANCH_RETIRED */ 113 { /* MISPRED_BRANCH_RETIRED */
113 0x04, 0x03, 114 0x04, 0x03,
114 { { CTR_IQ_4, MSR_P4_CRU_ESCR0}, 115 { { CTR_IQ_4, MSR_P4_CRU_ESCR0},
115 { CTR_IQ_5, MSR_P4_CRU_ESCR1} } 116 { CTR_IQ_5, MSR_P4_CRU_ESCR1} }
116 }, 117 },
117 118
118 { /* TC_DELIVER_MODE */ 119 { /* TC_DELIVER_MODE */
119 0x01, 0x01, 120 0x01, 0x01,
120 { { CTR_MS_0, MSR_P4_TC_ESCR0}, 121 { { CTR_MS_0, MSR_P4_TC_ESCR0},
121 { CTR_MS_2, MSR_P4_TC_ESCR1} } 122 { CTR_MS_2, MSR_P4_TC_ESCR1} }
122 }, 123 },
123 124
124 { /* BPU_FETCH_REQUEST */ 125 { /* BPU_FETCH_REQUEST */
125 0x00, 0x03, 126 0x00, 0x03,
126 { { CTR_BPU_0, MSR_P4_BPU_ESCR0}, 127 { { CTR_BPU_0, MSR_P4_BPU_ESCR0},
127 { CTR_BPU_2, MSR_P4_BPU_ESCR1} } 128 { CTR_BPU_2, MSR_P4_BPU_ESCR1} }
128 }, 129 },
@@ -146,7 +147,7 @@ static struct p4_event_binding p4_events[NUM_EVENTS] = {
146 }, 147 },
147 148
148 { /* LOAD_PORT_REPLAY */ 149 { /* LOAD_PORT_REPLAY */
149 0x02, 0x04, 150 0x02, 0x04,
150 { { CTR_FLAME_0, MSR_P4_SAAT_ESCR0}, 151 { { CTR_FLAME_0, MSR_P4_SAAT_ESCR0},
151 { CTR_FLAME_2, MSR_P4_SAAT_ESCR1} } 152 { CTR_FLAME_2, MSR_P4_SAAT_ESCR1} }
152 }, 153 },
@@ -170,43 +171,43 @@ static struct p4_event_binding p4_events[NUM_EVENTS] = {
170 }, 171 },
171 172
172 { /* BSQ_CACHE_REFERENCE */ 173 { /* BSQ_CACHE_REFERENCE */
173 0x07, 0x0c, 174 0x07, 0x0c,
174 { { CTR_BPU_0, MSR_P4_BSU_ESCR0}, 175 { { CTR_BPU_0, MSR_P4_BSU_ESCR0},
175 { CTR_BPU_2, MSR_P4_BSU_ESCR1} } 176 { CTR_BPU_2, MSR_P4_BSU_ESCR1} }
176 }, 177 },
177 178
178 { /* IOQ_ALLOCATION */ 179 { /* IOQ_ALLOCATION */
179 0x06, 0x03, 180 0x06, 0x03,
180 { { CTR_BPU_0, MSR_P4_FSB_ESCR0}, 181 { { CTR_BPU_0, MSR_P4_FSB_ESCR0},
181 { 0, 0 } } 182 { 0, 0 } }
182 }, 183 },
183 184
184 { /* IOQ_ACTIVE_ENTRIES */ 185 { /* IOQ_ACTIVE_ENTRIES */
185 0x06, 0x1a, 186 0x06, 0x1a,
186 { { CTR_BPU_2, MSR_P4_FSB_ESCR1}, 187 { { CTR_BPU_2, MSR_P4_FSB_ESCR1},
187 { 0, 0 } } 188 { 0, 0 } }
188 }, 189 },
189 190
190 { /* FSB_DATA_ACTIVITY */ 191 { /* FSB_DATA_ACTIVITY */
191 0x06, 0x17, 192 0x06, 0x17,
192 { { CTR_BPU_0, MSR_P4_FSB_ESCR0}, 193 { { CTR_BPU_0, MSR_P4_FSB_ESCR0},
193 { CTR_BPU_2, MSR_P4_FSB_ESCR1} } 194 { CTR_BPU_2, MSR_P4_FSB_ESCR1} }
194 }, 195 },
195 196
196 { /* BSQ_ALLOCATION */ 197 { /* BSQ_ALLOCATION */
197 0x07, 0x05, 198 0x07, 0x05,
198 { { CTR_BPU_0, MSR_P4_BSU_ESCR0}, 199 { { CTR_BPU_0, MSR_P4_BSU_ESCR0},
199 { 0, 0 } } 200 { 0, 0 } }
200 }, 201 },
201 202
202 { /* BSQ_ACTIVE_ENTRIES */ 203 { /* BSQ_ACTIVE_ENTRIES */
203 0x07, 0x06, 204 0x07, 0x06,
204 { { CTR_BPU_2, MSR_P4_BSU_ESCR1 /* guess */}, 205 { { CTR_BPU_2, MSR_P4_BSU_ESCR1 /* guess */},
205 { 0, 0 } } 206 { 0, 0 } }
206 }, 207 },
207 208
208 { /* X87_ASSIST */ 209 { /* X87_ASSIST */
209 0x05, 0x03, 210 0x05, 0x03,
210 { { CTR_IQ_4, MSR_P4_CRU_ESCR2}, 211 { { CTR_IQ_4, MSR_P4_CRU_ESCR2},
211 { CTR_IQ_5, MSR_P4_CRU_ESCR3} } 212 { CTR_IQ_5, MSR_P4_CRU_ESCR3} }
212 }, 213 },
@@ -216,21 +217,21 @@ static struct p4_event_binding p4_events[NUM_EVENTS] = {
216 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0}, 217 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0},
217 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} } 218 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} }
218 }, 219 },
219 220
220 { /* PACKED_SP_UOP */ 221 { /* PACKED_SP_UOP */
221 0x01, 0x08, 222 0x01, 0x08,
222 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0}, 223 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0},
223 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} } 224 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} }
224 }, 225 },
225 226
226 { /* PACKED_DP_UOP */ 227 { /* PACKED_DP_UOP */
227 0x01, 0x0c, 228 0x01, 0x0c,
228 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0}, 229 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0},
229 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} } 230 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} }
230 }, 231 },
231 232
232 { /* SCALAR_SP_UOP */ 233 { /* SCALAR_SP_UOP */
233 0x01, 0x0a, 234 0x01, 0x0a,
234 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0}, 235 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0},
235 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} } 236 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} }
236 }, 237 },
@@ -242,31 +243,31 @@ static struct p4_event_binding p4_events[NUM_EVENTS] = {
242 }, 243 },
243 244
244 { /* 64BIT_MMX_UOP */ 245 { /* 64BIT_MMX_UOP */
245 0x01, 0x02, 246 0x01, 0x02,
246 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0}, 247 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0},
247 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} } 248 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} }
248 }, 249 },
249 250
250 { /* 128BIT_MMX_UOP */ 251 { /* 128BIT_MMX_UOP */
251 0x01, 0x1a, 252 0x01, 0x1a,
252 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0}, 253 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0},
253 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} } 254 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} }
254 }, 255 },
255 256
256 { /* X87_FP_UOP */ 257 { /* X87_FP_UOP */
257 0x01, 0x04, 258 0x01, 0x04,
258 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0}, 259 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0},
259 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} } 260 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} }
260 }, 261 },
261 262
262 { /* X87_SIMD_MOVES_UOP */ 263 { /* X87_SIMD_MOVES_UOP */
263 0x01, 0x2e, 264 0x01, 0x2e,
264 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0}, 265 { { CTR_FLAME_0, MSR_P4_FIRM_ESCR0},
265 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} } 266 { CTR_FLAME_2, MSR_P4_FIRM_ESCR1} }
266 }, 267 },
267 268
268 { /* MACHINE_CLEAR */ 269 { /* MACHINE_CLEAR */
269 0x05, 0x02, 270 0x05, 0x02,
270 { { CTR_IQ_4, MSR_P4_CRU_ESCR2}, 271 { { CTR_IQ_4, MSR_P4_CRU_ESCR2},
271 { CTR_IQ_5, MSR_P4_CRU_ESCR3} } 272 { CTR_IQ_5, MSR_P4_CRU_ESCR3} }
272 }, 273 },
@@ -276,9 +277,9 @@ static struct p4_event_binding p4_events[NUM_EVENTS] = {
276 { { CTR_BPU_0, MSR_P4_FSB_ESCR0}, 277 { { CTR_BPU_0, MSR_P4_FSB_ESCR0},
277 { CTR_BPU_2, MSR_P4_FSB_ESCR1} } 278 { CTR_BPU_2, MSR_P4_FSB_ESCR1} }
278 }, 279 },
279 280
280 { /* TC_MS_XFER */ 281 { /* TC_MS_XFER */
281 0x00, 0x05, 282 0x00, 0x05,
282 { { CTR_MS_0, MSR_P4_MS_ESCR0}, 283 { { CTR_MS_0, MSR_P4_MS_ESCR0},
283 { CTR_MS_2, MSR_P4_MS_ESCR1} } 284 { CTR_MS_2, MSR_P4_MS_ESCR1} }
284 }, 285 },
@@ -308,7 +309,7 @@ static struct p4_event_binding p4_events[NUM_EVENTS] = {
308 }, 309 },
309 310
310 { /* INSTR_RETIRED */ 311 { /* INSTR_RETIRED */
311 0x04, 0x02, 312 0x04, 0x02,
312 { { CTR_IQ_4, MSR_P4_CRU_ESCR0}, 313 { { CTR_IQ_4, MSR_P4_CRU_ESCR0},
313 { CTR_IQ_5, MSR_P4_CRU_ESCR1} } 314 { CTR_IQ_5, MSR_P4_CRU_ESCR1} }
314 }, 315 },
@@ -319,14 +320,14 @@ static struct p4_event_binding p4_events[NUM_EVENTS] = {
319 { CTR_IQ_5, MSR_P4_CRU_ESCR1} } 320 { CTR_IQ_5, MSR_P4_CRU_ESCR1} }
320 }, 321 },
321 322
322 { /* UOP_TYPE */ 323 { /* UOP_TYPE */
323 0x02, 0x02, 324 0x02, 0x02,
324 { { CTR_IQ_4, MSR_P4_RAT_ESCR0}, 325 { { CTR_IQ_4, MSR_P4_RAT_ESCR0},
325 { CTR_IQ_5, MSR_P4_RAT_ESCR1} } 326 { CTR_IQ_5, MSR_P4_RAT_ESCR1} }
326 }, 327 },
327 328
328 { /* RETIRED_MISPRED_BRANCH_TYPE */ 329 { /* RETIRED_MISPRED_BRANCH_TYPE */
329 0x02, 0x05, 330 0x02, 0x05,
330 { { CTR_MS_0, MSR_P4_TBPU_ESCR0}, 331 { { CTR_MS_0, MSR_P4_TBPU_ESCR0},
331 { CTR_MS_2, MSR_P4_TBPU_ESCR1} } 332 { CTR_MS_2, MSR_P4_TBPU_ESCR1} }
332 }, 333 },
@@ -349,8 +350,8 @@ static struct p4_event_binding p4_events[NUM_EVENTS] = {
349#define ESCR_SET_OS_1(escr, os) ((escr) |= (((os) & 1) << 1)) 350#define ESCR_SET_OS_1(escr, os) ((escr) |= (((os) & 1) << 1))
350#define ESCR_SET_EVENT_SELECT(escr, sel) ((escr) |= (((sel) & 0x3f) << 25)) 351#define ESCR_SET_EVENT_SELECT(escr, sel) ((escr) |= (((sel) & 0x3f) << 25))
351#define ESCR_SET_EVENT_MASK(escr, mask) ((escr) |= (((mask) & 0xffff) << 9)) 352#define ESCR_SET_EVENT_MASK(escr, mask) ((escr) |= (((mask) & 0xffff) << 9))
352#define ESCR_READ(escr,high,ev,i) do {rdmsr(ev->bindings[(i)].escr_address, (escr), (high));} while (0) 353#define ESCR_READ(escr, high, ev, i) do {rdmsr(ev->bindings[(i)].escr_address, (escr), (high)); } while (0)
353#define ESCR_WRITE(escr,high,ev,i) do {wrmsr(ev->bindings[(i)].escr_address, (escr), (high));} while (0) 354#define ESCR_WRITE(escr, high, ev, i) do {wrmsr(ev->bindings[(i)].escr_address, (escr), (high)); } while (0)
354 355
355#define CCCR_RESERVED_BITS 0x38030FFF 356#define CCCR_RESERVED_BITS 0x38030FFF
356#define CCCR_CLEAR(cccr) ((cccr) &= CCCR_RESERVED_BITS) 357#define CCCR_CLEAR(cccr) ((cccr) &= CCCR_RESERVED_BITS)
@@ -360,15 +361,15 @@ static struct p4_event_binding p4_events[NUM_EVENTS] = {
360#define CCCR_SET_PMI_OVF_1(cccr) ((cccr) |= (1<<27)) 361#define CCCR_SET_PMI_OVF_1(cccr) ((cccr) |= (1<<27))
361#define CCCR_SET_ENABLE(cccr) ((cccr) |= (1<<12)) 362#define CCCR_SET_ENABLE(cccr) ((cccr) |= (1<<12))
362#define CCCR_SET_DISABLE(cccr) ((cccr) &= ~(1<<12)) 363#define CCCR_SET_DISABLE(cccr) ((cccr) &= ~(1<<12))
363#define CCCR_READ(low, high, i) do {rdmsr(p4_counters[(i)].cccr_address, (low), (high));} while (0) 364#define CCCR_READ(low, high, i) do {rdmsr(p4_counters[(i)].cccr_address, (low), (high)); } while (0)
364#define CCCR_WRITE(low, high, i) do {wrmsr(p4_counters[(i)].cccr_address, (low), (high));} while (0) 365#define CCCR_WRITE(low, high, i) do {wrmsr(p4_counters[(i)].cccr_address, (low), (high)); } while (0)
365#define CCCR_OVF_P(cccr) ((cccr) & (1U<<31)) 366#define CCCR_OVF_P(cccr) ((cccr) & (1U<<31))
366#define CCCR_CLEAR_OVF(cccr) ((cccr) &= (~(1U<<31))) 367#define CCCR_CLEAR_OVF(cccr) ((cccr) &= (~(1U<<31)))
367 368
368#define CTRL_IS_RESERVED(msrs,c) (msrs->controls[(c)].addr ? 1 : 0) 369#define CTRL_IS_RESERVED(msrs, c) (msrs->controls[(c)].addr ? 1 : 0)
369#define CTR_IS_RESERVED(msrs,c) (msrs->counters[(c)].addr ? 1 : 0) 370#define CTR_IS_RESERVED(msrs, c) (msrs->counters[(c)].addr ? 1 : 0)
370#define CTR_READ(l,h,i) do {rdmsr(p4_counters[(i)].counter_address, (l), (h));} while (0) 371#define CTR_READ(l, h, i) do {rdmsr(p4_counters[(i)].counter_address, (l), (h)); } while (0)
371#define CTR_WRITE(l,i) do {wrmsr(p4_counters[(i)].counter_address, -(u32)(l), -1);} while (0) 372#define CTR_WRITE(l, i) do {wrmsr(p4_counters[(i)].counter_address, -(u32)(l), -1); } while (0)
372#define CTR_OVERFLOW_P(ctr) (!((ctr) & 0x80000000)) 373#define CTR_OVERFLOW_P(ctr) (!((ctr) & 0x80000000))
373 374
374 375
@@ -380,7 +381,7 @@ static unsigned int get_stagger(void)
380#ifdef CONFIG_SMP 381#ifdef CONFIG_SMP
381 int cpu = smp_processor_id(); 382 int cpu = smp_processor_id();
382 return (cpu != first_cpu(per_cpu(cpu_sibling_map, cpu))); 383 return (cpu != first_cpu(per_cpu(cpu_sibling_map, cpu)));
383#endif 384#endif
384 return 0; 385 return 0;
385} 386}
386 387
@@ -395,25 +396,23 @@ static unsigned long reset_value[NUM_COUNTERS_NON_HT];
395 396
396static void p4_fill_in_addresses(struct op_msrs * const msrs) 397static void p4_fill_in_addresses(struct op_msrs * const msrs)
397{ 398{
398 unsigned int i; 399 unsigned int i;
399 unsigned int addr, cccraddr, stag; 400 unsigned int addr, cccraddr, stag;
400 401
401 setup_num_counters(); 402 setup_num_counters();
402 stag = get_stagger(); 403 stag = get_stagger();
403 404
404 /* initialize some registers */ 405 /* initialize some registers */
405 for (i = 0; i < num_counters; ++i) { 406 for (i = 0; i < num_counters; ++i)
406 msrs->counters[i].addr = 0; 407 msrs->counters[i].addr = 0;
407 } 408 for (i = 0; i < num_controls; ++i)
408 for (i = 0; i < num_controls; ++i) {
409 msrs->controls[i].addr = 0; 409 msrs->controls[i].addr = 0;
410 } 410
411
412 /* the counter & cccr registers we pay attention to */ 411 /* the counter & cccr registers we pay attention to */
413 for (i = 0; i < num_counters; ++i) { 412 for (i = 0; i < num_counters; ++i) {
414 addr = p4_counters[VIRT_CTR(stag, i)].counter_address; 413 addr = p4_counters[VIRT_CTR(stag, i)].counter_address;
415 cccraddr = p4_counters[VIRT_CTR(stag, i)].cccr_address; 414 cccraddr = p4_counters[VIRT_CTR(stag, i)].cccr_address;
416 if (reserve_perfctr_nmi(addr)){ 415 if (reserve_perfctr_nmi(addr)) {
417 msrs->counters[i].addr = addr; 416 msrs->counters[i].addr = addr;
418 msrs->controls[i].addr = cccraddr; 417 msrs->controls[i].addr = cccraddr;
419 } 418 }
@@ -447,22 +446,22 @@ static void p4_fill_in_addresses(struct op_msrs * const msrs)
447 if (reserve_evntsel_nmi(addr)) 446 if (reserve_evntsel_nmi(addr))
448 msrs->controls[i].addr = addr; 447 msrs->controls[i].addr = addr;
449 } 448 }
450 449
451 for (addr = MSR_P4_MS_ESCR0 + stag; 450 for (addr = MSR_P4_MS_ESCR0 + stag;
452 addr <= MSR_P4_TC_ESCR1; ++i, addr += addr_increment()) { 451 addr <= MSR_P4_TC_ESCR1; ++i, addr += addr_increment()) {
453 if (reserve_evntsel_nmi(addr)) 452 if (reserve_evntsel_nmi(addr))
454 msrs->controls[i].addr = addr; 453 msrs->controls[i].addr = addr;
455 } 454 }
456 455
457 for (addr = MSR_P4_IX_ESCR0 + stag; 456 for (addr = MSR_P4_IX_ESCR0 + stag;
458 addr <= MSR_P4_CRU_ESCR3; ++i, addr += addr_increment()) { 457 addr <= MSR_P4_CRU_ESCR3; ++i, addr += addr_increment()) {
459 if (reserve_evntsel_nmi(addr)) 458 if (reserve_evntsel_nmi(addr))
460 msrs->controls[i].addr = addr; 459 msrs->controls[i].addr = addr;
461 } 460 }
462 461
463 /* there are 2 remaining non-contiguously located ESCRs */ 462 /* there are 2 remaining non-contiguously located ESCRs */
464 463
465 if (num_counters == NUM_COUNTERS_NON_HT) { 464 if (num_counters == NUM_COUNTERS_NON_HT) {
466 /* standard non-HT CPUs handle both remaining ESCRs*/ 465 /* standard non-HT CPUs handle both remaining ESCRs*/
467 if (reserve_evntsel_nmi(MSR_P4_CRU_ESCR5)) 466 if (reserve_evntsel_nmi(MSR_P4_CRU_ESCR5))
468 msrs->controls[i++].addr = MSR_P4_CRU_ESCR5; 467 msrs->controls[i++].addr = MSR_P4_CRU_ESCR5;
@@ -498,20 +497,20 @@ static void pmc_setup_one_p4_counter(unsigned int ctr)
498 unsigned int stag; 497 unsigned int stag;
499 498
500 stag = get_stagger(); 499 stag = get_stagger();
501 500
502 /* convert from counter *number* to counter *bit* */ 501 /* convert from counter *number* to counter *bit* */
503 counter_bit = 1 << VIRT_CTR(stag, ctr); 502 counter_bit = 1 << VIRT_CTR(stag, ctr);
504 503
505 /* find our event binding structure. */ 504 /* find our event binding structure. */
506 if (counter_config[ctr].event <= 0 || counter_config[ctr].event > NUM_EVENTS) { 505 if (counter_config[ctr].event <= 0 || counter_config[ctr].event > NUM_EVENTS) {
507 printk(KERN_ERR 506 printk(KERN_ERR
508 "oprofile: P4 event code 0x%lx out of range\n", 507 "oprofile: P4 event code 0x%lx out of range\n",
509 counter_config[ctr].event); 508 counter_config[ctr].event);
510 return; 509 return;
511 } 510 }
512 511
513 ev = &(p4_events[counter_config[ctr].event - 1]); 512 ev = &(p4_events[counter_config[ctr].event - 1]);
514 513
515 for (i = 0; i < maxbind; i++) { 514 for (i = 0; i < maxbind; i++) {
516 if (ev->bindings[i].virt_counter & counter_bit) { 515 if (ev->bindings[i].virt_counter & counter_bit) {
517 516
@@ -526,25 +525,24 @@ static void pmc_setup_one_p4_counter(unsigned int ctr)
526 ESCR_SET_OS_1(escr, counter_config[ctr].kernel); 525 ESCR_SET_OS_1(escr, counter_config[ctr].kernel);
527 } 526 }
528 ESCR_SET_EVENT_SELECT(escr, ev->event_select); 527 ESCR_SET_EVENT_SELECT(escr, ev->event_select);
529 ESCR_SET_EVENT_MASK(escr, counter_config[ctr].unit_mask); 528 ESCR_SET_EVENT_MASK(escr, counter_config[ctr].unit_mask);
530 ESCR_WRITE(escr, high, ev, i); 529 ESCR_WRITE(escr, high, ev, i);
531 530
532 /* modify CCCR */ 531 /* modify CCCR */
533 CCCR_READ(cccr, high, VIRT_CTR(stag, ctr)); 532 CCCR_READ(cccr, high, VIRT_CTR(stag, ctr));
534 CCCR_CLEAR(cccr); 533 CCCR_CLEAR(cccr);
535 CCCR_SET_REQUIRED_BITS(cccr); 534 CCCR_SET_REQUIRED_BITS(cccr);
536 CCCR_SET_ESCR_SELECT(cccr, ev->escr_select); 535 CCCR_SET_ESCR_SELECT(cccr, ev->escr_select);
537 if (stag == 0) { 536 if (stag == 0)
538 CCCR_SET_PMI_OVF_0(cccr); 537 CCCR_SET_PMI_OVF_0(cccr);
539 } else { 538 else
540 CCCR_SET_PMI_OVF_1(cccr); 539 CCCR_SET_PMI_OVF_1(cccr);
541 }
542 CCCR_WRITE(cccr, high, VIRT_CTR(stag, ctr)); 540 CCCR_WRITE(cccr, high, VIRT_CTR(stag, ctr));
543 return; 541 return;
544 } 542 }
545 } 543 }
546 544
547 printk(KERN_ERR 545 printk(KERN_ERR
548 "oprofile: P4 event code 0x%lx no binding, stag %d ctr %d\n", 546 "oprofile: P4 event code 0x%lx no binding, stag %d ctr %d\n",
549 counter_config[ctr].event, stag, ctr); 547 counter_config[ctr].event, stag, ctr);
550} 548}
@@ -559,14 +557,14 @@ static void p4_setup_ctrs(struct op_msrs const * const msrs)
559 stag = get_stagger(); 557 stag = get_stagger();
560 558
561 rdmsr(MSR_IA32_MISC_ENABLE, low, high); 559 rdmsr(MSR_IA32_MISC_ENABLE, low, high);
562 if (! MISC_PMC_ENABLED_P(low)) { 560 if (!MISC_PMC_ENABLED_P(low)) {
563 printk(KERN_ERR "oprofile: P4 PMC not available\n"); 561 printk(KERN_ERR "oprofile: P4 PMC not available\n");
564 return; 562 return;
565 } 563 }
566 564
567 /* clear the cccrs we will use */ 565 /* clear the cccrs we will use */
568 for (i = 0 ; i < num_counters ; i++) { 566 for (i = 0 ; i < num_counters ; i++) {
569 if (unlikely(!CTRL_IS_RESERVED(msrs,i))) 567 if (unlikely(!CTRL_IS_RESERVED(msrs, i)))
570 continue; 568 continue;
571 rdmsr(p4_counters[VIRT_CTR(stag, i)].cccr_address, low, high); 569 rdmsr(p4_counters[VIRT_CTR(stag, i)].cccr_address, low, high);
572 CCCR_CLEAR(low); 570 CCCR_CLEAR(low);
@@ -576,14 +574,14 @@ static void p4_setup_ctrs(struct op_msrs const * const msrs)
576 574
577 /* clear all escrs (including those outside our concern) */ 575 /* clear all escrs (including those outside our concern) */
578 for (i = num_counters; i < num_controls; i++) { 576 for (i = num_counters; i < num_controls; i++) {
579 if (unlikely(!CTRL_IS_RESERVED(msrs,i))) 577 if (unlikely(!CTRL_IS_RESERVED(msrs, i)))
580 continue; 578 continue;
581 wrmsr(msrs->controls[i].addr, 0, 0); 579 wrmsr(msrs->controls[i].addr, 0, 0);
582 } 580 }
583 581
584 /* setup all counters */ 582 /* setup all counters */
585 for (i = 0 ; i < num_counters ; ++i) { 583 for (i = 0 ; i < num_counters ; ++i) {
586 if ((counter_config[i].enabled) && (CTRL_IS_RESERVED(msrs,i))) { 584 if ((counter_config[i].enabled) && (CTRL_IS_RESERVED(msrs, i))) {
587 reset_value[i] = counter_config[i].count; 585 reset_value[i] = counter_config[i].count;
588 pmc_setup_one_p4_counter(i); 586 pmc_setup_one_p4_counter(i);
589 CTR_WRITE(counter_config[i].count, VIRT_CTR(stag, i)); 587 CTR_WRITE(counter_config[i].count, VIRT_CTR(stag, i));
@@ -603,11 +601,11 @@ static int p4_check_ctrs(struct pt_regs * const regs,
603 stag = get_stagger(); 601 stag = get_stagger();
604 602
605 for (i = 0; i < num_counters; ++i) { 603 for (i = 0; i < num_counters; ++i) {
606 604
607 if (!reset_value[i]) 605 if (!reset_value[i])
608 continue; 606 continue;
609 607
610 /* 608 /*
611 * there is some eccentricity in the hardware which 609 * there is some eccentricity in the hardware which
612 * requires that we perform 2 extra corrections: 610 * requires that we perform 2 extra corrections:
613 * 611 *
@@ -616,24 +614,24 @@ static int p4_check_ctrs(struct pt_regs * const regs,
616 * 614 *
617 * - write the counter back twice to ensure it gets 615 * - write the counter back twice to ensure it gets
618 * updated properly. 616 * updated properly.
619 * 617 *
620 * the former seems to be related to extra NMIs happening 618 * the former seems to be related to extra NMIs happening
621 * during the current NMI; the latter is reported as errata 619 * during the current NMI; the latter is reported as errata
622 * N15 in intel doc 249199-029, pentium 4 specification 620 * N15 in intel doc 249199-029, pentium 4 specification
623 * update, though their suggested work-around does not 621 * update, though their suggested work-around does not
624 * appear to solve the problem. 622 * appear to solve the problem.
625 */ 623 */
626 624
627 real = VIRT_CTR(stag, i); 625 real = VIRT_CTR(stag, i);
628 626
629 CCCR_READ(low, high, real); 627 CCCR_READ(low, high, real);
630 CTR_READ(ctr, high, real); 628 CTR_READ(ctr, high, real);
631 if (CCCR_OVF_P(low) || CTR_OVERFLOW_P(ctr)) { 629 if (CCCR_OVF_P(low) || CTR_OVERFLOW_P(ctr)) {
632 oprofile_add_sample(regs, i); 630 oprofile_add_sample(regs, i);
633 CTR_WRITE(reset_value[i], real); 631 CTR_WRITE(reset_value[i], real);
634 CCCR_CLEAR_OVF(low); 632 CCCR_CLEAR_OVF(low);
635 CCCR_WRITE(low, high, real); 633 CCCR_WRITE(low, high, real);
636 CTR_WRITE(reset_value[i], real); 634 CTR_WRITE(reset_value[i], real);
637 } 635 }
638 } 636 }
639 637
@@ -683,15 +681,16 @@ static void p4_shutdown(struct op_msrs const * const msrs)
683 int i; 681 int i;
684 682
685 for (i = 0 ; i < num_counters ; ++i) { 683 for (i = 0 ; i < num_counters ; ++i) {
686 if (CTR_IS_RESERVED(msrs,i)) 684 if (CTR_IS_RESERVED(msrs, i))
687 release_perfctr_nmi(msrs->counters[i].addr); 685 release_perfctr_nmi(msrs->counters[i].addr);
688 } 686 }
689 /* some of the control registers are specially reserved in 687 /*
688 * some of the control registers are specially reserved in
690 * conjunction with the counter registers (hence the starting offset). 689 * conjunction with the counter registers (hence the starting offset).
691 * This saves a few bits. 690 * This saves a few bits.
692 */ 691 */
693 for (i = num_counters ; i < num_controls ; ++i) { 692 for (i = num_counters ; i < num_controls ; ++i) {
694 if (CTRL_IS_RESERVED(msrs,i)) 693 if (CTRL_IS_RESERVED(msrs, i))
695 release_evntsel_nmi(msrs->controls[i].addr); 694 release_evntsel_nmi(msrs->controls[i].addr);
696 } 695 }
697} 696}
diff --git a/arch/x86/pci/amd_bus.c b/arch/x86/pci/amd_bus.c
index dbf53236971..22e057665e5 100644
--- a/arch/x86/pci/amd_bus.c
+++ b/arch/x86/pci/amd_bus.c
@@ -1,6 +1,7 @@
1#include <linux/init.h> 1#include <linux/init.h>
2#include <linux/pci.h> 2#include <linux/pci.h>
3#include <linux/topology.h> 3#include <linux/topology.h>
4#include <linux/cpu.h>
4#include "pci.h" 5#include "pci.h"
5 6
6#ifdef CONFIG_X86_64 7#ifdef CONFIG_X86_64
@@ -555,15 +556,17 @@ static int __init early_fill_mp_bus_info(void)
555 return 0; 556 return 0;
556} 557}
557 558
558postcore_initcall(early_fill_mp_bus_info); 559#else /* !CONFIG_X86_64 */
559 560
560#endif 561static int __init early_fill_mp_bus_info(void) { return 0; }
562
563#endif /* !CONFIG_X86_64 */
561 564
562/* common 32/64 bit code */ 565/* common 32/64 bit code */
563 566
564#define ENABLE_CF8_EXT_CFG (1ULL << 46) 567#define ENABLE_CF8_EXT_CFG (1ULL << 46)
565 568
566static void enable_pci_io_ecs_per_cpu(void *unused) 569static void enable_pci_io_ecs(void *unused)
567{ 570{
568 u64 reg; 571 u64 reg;
569 rdmsrl(MSR_AMD64_NB_CFG, reg); 572 rdmsrl(MSR_AMD64_NB_CFG, reg);
@@ -573,14 +576,51 @@ static void enable_pci_io_ecs_per_cpu(void *unused)
573 } 576 }
574} 577}
575 578
576static int __init enable_pci_io_ecs(void) 579static int __cpuinit amd_cpu_notify(struct notifier_block *self,
580 unsigned long action, void *hcpu)
577{ 581{
582 int cpu = (long)hcpu;
583 switch (action) {
584 case CPU_ONLINE:
585 case CPU_ONLINE_FROZEN:
586 smp_call_function_single(cpu, enable_pci_io_ecs, NULL, 0);
587 break;
588 default:
589 break;
590 }
591 return NOTIFY_OK;
592}
593
594static struct notifier_block __cpuinitdata amd_cpu_notifier = {
595 .notifier_call = amd_cpu_notify,
596};
597
598static int __init pci_io_ecs_init(void)
599{
600 int cpu;
601
578 /* assume all cpus from fam10h have IO ECS */ 602 /* assume all cpus from fam10h have IO ECS */
579 if (boot_cpu_data.x86 < 0x10) 603 if (boot_cpu_data.x86 < 0x10)
580 return 0; 604 return 0;
581 on_each_cpu(enable_pci_io_ecs_per_cpu, NULL, 1); 605
606 register_cpu_notifier(&amd_cpu_notifier);
607 for_each_online_cpu(cpu)
608 amd_cpu_notify(&amd_cpu_notifier, (unsigned long)CPU_ONLINE,
609 (void *)(long)cpu);
582 pci_probe |= PCI_HAS_IO_ECS; 610 pci_probe |= PCI_HAS_IO_ECS;
611
612 return 0;
613}
614
615static int __init amd_postcore_init(void)
616{
617 if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
618 return 0;
619
620 early_fill_mp_bus_info();
621 pci_io_ecs_init();
622
583 return 0; 623 return 0;
584} 624}
585 625
586postcore_initcall(enable_pci_io_ecs); 626postcore_initcall(amd_postcore_init);
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index 5807d1bc73f..8791fc55e71 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -128,8 +128,7 @@ static void __init pcibios_allocate_bus_resources(struct list_head *bus_list)
128 pr = pci_find_parent_resource(dev, r); 128 pr = pci_find_parent_resource(dev, r);
129 if (!r->start || !pr || 129 if (!r->start || !pr ||
130 request_resource(pr, r) < 0) { 130 request_resource(pr, r) < 0) {
131 dev_err(&dev->dev, "BAR %d: can't " 131 dev_err(&dev->dev, "BAR %d: can't allocate resource\n", idx);
132 "allocate resource\n", idx);
133 /* 132 /*
134 * Something is wrong with the region. 133 * Something is wrong with the region.
135 * Invalidate the resource to prevent 134 * Invalidate the resource to prevent
@@ -164,15 +163,13 @@ static void __init pcibios_allocate_resources(int pass)
164 else 163 else
165 disabled = !(command & PCI_COMMAND_MEMORY); 164 disabled = !(command & PCI_COMMAND_MEMORY);
166 if (pass == disabled) { 165 if (pass == disabled) {
167 dev_dbg(&dev->dev, "resource %#08llx-%#08llx " 166 dev_dbg(&dev->dev, "resource %#08llx-%#08llx (f=%lx, d=%d, p=%d)\n",
168 "(f=%lx, d=%d, p=%d)\n",
169 (unsigned long long) r->start, 167 (unsigned long long) r->start,
170 (unsigned long long) r->end, 168 (unsigned long long) r->end,
171 r->flags, disabled, pass); 169 r->flags, disabled, pass);
172 pr = pci_find_parent_resource(dev, r); 170 pr = pci_find_parent_resource(dev, r);
173 if (!pr || request_resource(pr, r) < 0) { 171 if (!pr || request_resource(pr, r) < 0) {
174 dev_err(&dev->dev, "BAR %d: can't " 172 dev_err(&dev->dev, "BAR %d: can't allocate resource\n", idx);
175 "allocate resource\n", idx);
176 /* We'll assign a new address later */ 173 /* We'll assign a new address later */
177 r->end -= r->start; 174 r->end -= r->start;
178 r->start = 0; 175 r->start = 0;
diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
index 8e077185e18..006599db0dc 100644
--- a/arch/x86/pci/irq.c
+++ b/arch/x86/pci/irq.c
@@ -1043,35 +1043,44 @@ static void __init pcibios_fixup_irqs(void)
1043 if (io_apic_assign_pci_irqs) { 1043 if (io_apic_assign_pci_irqs) {
1044 int irq; 1044 int irq;
1045 1045
1046 if (pin) { 1046 if (!pin)
1047 /* 1047 continue;
1048 * interrupt pins are numbered starting 1048
1049 * from 1 1049 /*
1050 */ 1050 * interrupt pins are numbered starting from 1
1051 pin--; 1051 */
1052 irq = IO_APIC_get_PCI_irq_vector(dev->bus->number, 1052 pin--;
1053 PCI_SLOT(dev->devfn), pin); 1053 irq = IO_APIC_get_PCI_irq_vector(dev->bus->number,
1054 /* 1054 PCI_SLOT(dev->devfn), pin);
1055 * Busses behind bridges are typically not listed in the MP-table. 1055 /*
1056 * In this case we have to look up the IRQ based on the parent bus, 1056 * Busses behind bridges are typically not listed in the
1057 * parent slot, and pin number. The SMP code detects such bridged 1057 * MP-table. In this case we have to look up the IRQ
1058 * busses itself so we should get into this branch reliably. 1058 * based on the parent bus, parent slot, and pin number.
1059 */ 1059 * The SMP code detects such bridged busses itself so we
1060 if (irq < 0 && dev->bus->parent) { /* go back to the bridge */ 1060 * should get into this branch reliably.
1061 struct pci_dev *bridge = dev->bus->self; 1061 */
1062 1062 if (irq < 0 && dev->bus->parent) {
1063 pin = (pin + PCI_SLOT(dev->devfn)) % 4; 1063 /* go back to the bridge */
1064 irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number, 1064 struct pci_dev *bridge = dev->bus->self;
1065 PCI_SLOT(bridge->devfn), pin); 1065 int bus;
1066 if (irq >= 0) 1066
1067 dev_warn(&dev->dev, "using bridge %s INT %c to get IRQ %d\n", 1067 pin = (pin + PCI_SLOT(dev->devfn)) % 4;
1068 pci_name(bridge), 1068 bus = bridge->bus->number;
1069 'A' + pin, irq); 1069 irq = IO_APIC_get_PCI_irq_vector(bus,
1070 } 1070 PCI_SLOT(bridge->devfn), pin);
1071 if (irq >= 0) { 1071 if (irq >= 0)
1072 dev_info(&dev->dev, "PCI->APIC IRQ transform: INT %c -> IRQ %d\n", 'A' + pin, irq); 1072 dev_warn(&dev->dev,
1073 dev->irq = irq; 1073 "using bridge %s INT %c to "
1074 } 1074 "get IRQ %d\n",
1075 pci_name(bridge),
1076 'A' + pin, irq);
1077 }
1078 if (irq >= 0) {
1079 dev_info(&dev->dev,
1080 "PCI->APIC IRQ transform: INT %c "
1081 "-> IRQ %d\n",
1082 'A' + pin, irq);
1083 dev->irq = irq;
1075 } 1084 }
1076 } 1085 }
1077#endif 1086#endif
diff --git a/arch/x86/power/hibernate_asm_32.S b/arch/x86/power/hibernate_asm_32.S
index 4fc7e872c85..d1e9b53f9d3 100644
--- a/arch/x86/power/hibernate_asm_32.S
+++ b/arch/x86/power/hibernate_asm_32.S
@@ -1,5 +1,3 @@
1.text
2
3/* 1/*
4 * This may not use any stack, nor any variable that is not "NoSave": 2 * This may not use any stack, nor any variable that is not "NoSave":
5 * 3 *
@@ -12,17 +10,18 @@
12#include <asm/segment.h> 10#include <asm/segment.h>
13#include <asm/page.h> 11#include <asm/page.h>
14#include <asm/asm-offsets.h> 12#include <asm/asm-offsets.h>
13#include <asm/processor-flags.h>
15 14
16 .text 15.text
17 16
18ENTRY(swsusp_arch_suspend) 17ENTRY(swsusp_arch_suspend)
19
20 movl %esp, saved_context_esp 18 movl %esp, saved_context_esp
21 movl %ebx, saved_context_ebx 19 movl %ebx, saved_context_ebx
22 movl %ebp, saved_context_ebp 20 movl %ebp, saved_context_ebp
23 movl %esi, saved_context_esi 21 movl %esi, saved_context_esi
24 movl %edi, saved_context_edi 22 movl %edi, saved_context_edi
25 pushfl ; popl saved_context_eflags 23 pushfl
24 popl saved_context_eflags
26 25
27 call swsusp_save 26 call swsusp_save
28 ret 27 ret
@@ -59,7 +58,7 @@ done:
59 movl mmu_cr4_features, %ecx 58 movl mmu_cr4_features, %ecx
60 jecxz 1f # cr4 Pentium and higher, skip if zero 59 jecxz 1f # cr4 Pentium and higher, skip if zero
61 movl %ecx, %edx 60 movl %ecx, %edx
62 andl $~(1<<7), %edx; # PGE 61 andl $~(X86_CR4_PGE), %edx
63 movl %edx, %cr4; # turn off PGE 62 movl %edx, %cr4; # turn off PGE
641: 631:
65 movl %cr3, %eax; # flush TLB 64 movl %cr3, %eax; # flush TLB
@@ -74,7 +73,8 @@ done:
74 movl saved_context_esi, %esi 73 movl saved_context_esi, %esi
75 movl saved_context_edi, %edi 74 movl saved_context_edi, %edi
76 75
77 pushl saved_context_eflags ; popfl 76 pushl saved_context_eflags
77 popfl
78 78
79 xorl %eax, %eax 79 xorl %eax, %eax
80 80
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 9ff6e3cbf08..7dcd321a050 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -812,7 +812,7 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
812 812
813/* Early in boot, while setting up the initial pagetable, assume 813/* Early in boot, while setting up the initial pagetable, assume
814 everything is pinned. */ 814 everything is pinned. */
815static __init void xen_alloc_pte_init(struct mm_struct *mm, u32 pfn) 815static __init void xen_alloc_pte_init(struct mm_struct *mm, unsigned long pfn)
816{ 816{
817#ifdef CONFIG_FLATMEM 817#ifdef CONFIG_FLATMEM
818 BUG_ON(mem_map); /* should only be used early */ 818 BUG_ON(mem_map); /* should only be used early */
@@ -822,7 +822,7 @@ static __init void xen_alloc_pte_init(struct mm_struct *mm, u32 pfn)
822 822
823/* Early release_pte assumes that all pts are pinned, since there's 823/* Early release_pte assumes that all pts are pinned, since there's
824 only init_mm and anything attached to that is pinned. */ 824 only init_mm and anything attached to that is pinned. */
825static void xen_release_pte_init(u32 pfn) 825static void xen_release_pte_init(unsigned long pfn)
826{ 826{
827 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn))); 827 make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
828} 828}
@@ -838,7 +838,7 @@ static void pin_pagetable_pfn(unsigned cmd, unsigned long pfn)
838 838
839/* This needs to make sure the new pte page is pinned iff its being 839/* This needs to make sure the new pte page is pinned iff its being
840 attached to a pinned pagetable. */ 840 attached to a pinned pagetable. */
841static void xen_alloc_ptpage(struct mm_struct *mm, u32 pfn, unsigned level) 841static void xen_alloc_ptpage(struct mm_struct *mm, unsigned long pfn, unsigned level)
842{ 842{
843 struct page *page = pfn_to_page(pfn); 843 struct page *page = pfn_to_page(pfn);
844 844
@@ -856,12 +856,12 @@ static void xen_alloc_ptpage(struct mm_struct *mm, u32 pfn, unsigned level)
856 } 856 }
857} 857}
858 858
859static void xen_alloc_pte(struct mm_struct *mm, u32 pfn) 859static void xen_alloc_pte(struct mm_struct *mm, unsigned long pfn)
860{ 860{
861 xen_alloc_ptpage(mm, pfn, PT_PTE); 861 xen_alloc_ptpage(mm, pfn, PT_PTE);
862} 862}
863 863
864static void xen_alloc_pmd(struct mm_struct *mm, u32 pfn) 864static void xen_alloc_pmd(struct mm_struct *mm, unsigned long pfn)
865{ 865{
866 xen_alloc_ptpage(mm, pfn, PT_PMD); 866 xen_alloc_ptpage(mm, pfn, PT_PMD);
867} 867}
@@ -909,7 +909,7 @@ static void xen_pgd_free(struct mm_struct *mm, pgd_t *pgd)
909} 909}
910 910
911/* This should never happen until we're OK to use struct page */ 911/* This should never happen until we're OK to use struct page */
912static void xen_release_ptpage(u32 pfn, unsigned level) 912static void xen_release_ptpage(unsigned long pfn, unsigned level)
913{ 913{
914 struct page *page = pfn_to_page(pfn); 914 struct page *page = pfn_to_page(pfn);
915 915
@@ -923,23 +923,23 @@ static void xen_release_ptpage(u32 pfn, unsigned level)
923 } 923 }
924} 924}
925 925
926static void xen_release_pte(u32 pfn) 926static void xen_release_pte(unsigned long pfn)
927{ 927{
928 xen_release_ptpage(pfn, PT_PTE); 928 xen_release_ptpage(pfn, PT_PTE);
929} 929}
930 930
931static void xen_release_pmd(u32 pfn) 931static void xen_release_pmd(unsigned long pfn)
932{ 932{
933 xen_release_ptpage(pfn, PT_PMD); 933 xen_release_ptpage(pfn, PT_PMD);
934} 934}
935 935
936#if PAGETABLE_LEVELS == 4 936#if PAGETABLE_LEVELS == 4
937static void xen_alloc_pud(struct mm_struct *mm, u32 pfn) 937static void xen_alloc_pud(struct mm_struct *mm, unsigned long pfn)
938{ 938{
939 xen_alloc_ptpage(mm, pfn, PT_PUD); 939 xen_alloc_ptpage(mm, pfn, PT_PUD);
940} 940}
941 941
942static void xen_release_pud(u32 pfn) 942static void xen_release_pud(unsigned long pfn)
943{ 943{
944 xen_release_ptpage(pfn, PT_PUD); 944 xen_release_ptpage(pfn, PT_PUD);
945} 945}
@@ -1324,7 +1324,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initdata = {
1324 .ptep_modify_prot_commit = __ptep_modify_prot_commit, 1324 .ptep_modify_prot_commit = __ptep_modify_prot_commit,
1325 1325
1326 .pte_val = xen_pte_val, 1326 .pte_val = xen_pte_val,
1327 .pte_flags = native_pte_val, 1327 .pte_flags = native_pte_flags,
1328 .pgd_val = xen_pgd_val, 1328 .pgd_val = xen_pgd_val,
1329 1329
1330 .make_pte = xen_make_pte, 1330 .make_pte = xen_make_pte,
diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
index b6acc3a0af4..d6790108388 100644
--- a/arch/x86/xen/setup.c
+++ b/arch/x86/xen/setup.c
@@ -42,7 +42,7 @@ char * __init xen_memory_setup(void)
42 42
43 e820.nr_map = 0; 43 e820.nr_map = 0;
44 44
45 e820_add_region(0, PFN_PHYS(max_pfn), E820_RAM); 45 e820_add_region(0, PFN_PHYS((u64)max_pfn), E820_RAM);
46 46
47 /* 47 /*
48 * Even though this is normal, usable memory under Xen, reserve 48 * Even though this is normal, usable memory under Xen, reserve
diff --git a/block/blk-core.c b/block/blk-core.c
index 4889eb86a39..2cba5ef97b2 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -582,6 +582,8 @@ blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id)
582 582
583 q->sg_reserved_size = INT_MAX; 583 q->sg_reserved_size = INT_MAX;
584 584
585 blk_set_cmd_filter_defaults(&q->cmd_filter);
586
585 /* 587 /*
586 * all done 588 * all done
587 */ 589 */
diff --git a/block/blk-tag.c b/block/blk-tag.c
index 32667beb03e..ed5166fbc59 100644
--- a/block/blk-tag.c
+++ b/block/blk-tag.c
@@ -38,7 +38,8 @@ static int __blk_free_tags(struct blk_queue_tag *bqt)
38 38
39 retval = atomic_dec_and_test(&bqt->refcnt); 39 retval = atomic_dec_and_test(&bqt->refcnt);
40 if (retval) { 40 if (retval) {
41 BUG_ON(bqt->busy); 41 BUG_ON(find_first_bit(bqt->tag_map, bqt->max_depth) <
42 bqt->max_depth);
42 43
43 kfree(bqt->tag_index); 44 kfree(bqt->tag_index);
44 bqt->tag_index = NULL; 45 bqt->tag_index = NULL;
@@ -147,7 +148,6 @@ static struct blk_queue_tag *__blk_queue_init_tags(struct request_queue *q,
147 if (init_tag_map(q, tags, depth)) 148 if (init_tag_map(q, tags, depth))
148 goto fail; 149 goto fail;
149 150
150 tags->busy = 0;
151 atomic_set(&tags->refcnt, 1); 151 atomic_set(&tags->refcnt, 1);
152 return tags; 152 return tags;
153fail: 153fail:
@@ -313,7 +313,6 @@ void blk_queue_end_tag(struct request_queue *q, struct request *rq)
313 * unlock memory barrier semantics. 313 * unlock memory barrier semantics.
314 */ 314 */
315 clear_bit_unlock(tag, bqt->tag_map); 315 clear_bit_unlock(tag, bqt->tag_map);
316 bqt->busy--;
317} 316}
318EXPORT_SYMBOL(blk_queue_end_tag); 317EXPORT_SYMBOL(blk_queue_end_tag);
319 318
@@ -368,7 +367,6 @@ int blk_queue_start_tag(struct request_queue *q, struct request *rq)
368 bqt->tag_index[tag] = rq; 367 bqt->tag_index[tag] = rq;
369 blkdev_dequeue_request(rq); 368 blkdev_dequeue_request(rq);
370 list_add(&rq->queuelist, &q->tag_busy_list); 369 list_add(&rq->queuelist, &q->tag_busy_list);
371 bqt->busy++;
372 return 0; 370 return 0;
373} 371}
374EXPORT_SYMBOL(blk_queue_start_tag); 372EXPORT_SYMBOL(blk_queue_start_tag);
diff --git a/block/bsg.c b/block/bsg.c
index 5a68b09a69b..0aae8d7ba99 100644
--- a/block/bsg.c
+++ b/block/bsg.c
@@ -45,8 +45,6 @@ struct bsg_device {
45 char name[BUS_ID_SIZE]; 45 char name[BUS_ID_SIZE];
46 int max_queue; 46 int max_queue;
47 unsigned long flags; 47 unsigned long flags;
48 struct blk_scsi_cmd_filter *cmd_filter;
49 mode_t *f_mode;
50}; 48};
51 49
52enum { 50enum {
@@ -174,7 +172,8 @@ unlock:
174} 172}
175 173
176static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq, 174static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
177 struct sg_io_v4 *hdr, struct bsg_device *bd) 175 struct sg_io_v4 *hdr, struct bsg_device *bd,
176 int has_write_perm)
178{ 177{
179 if (hdr->request_len > BLK_MAX_CDB) { 178 if (hdr->request_len > BLK_MAX_CDB) {
180 rq->cmd = kzalloc(hdr->request_len, GFP_KERNEL); 179 rq->cmd = kzalloc(hdr->request_len, GFP_KERNEL);
@@ -187,8 +186,7 @@ static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
187 return -EFAULT; 186 return -EFAULT;
188 187
189 if (hdr->subprotocol == BSG_SUB_PROTOCOL_SCSI_CMD) { 188 if (hdr->subprotocol == BSG_SUB_PROTOCOL_SCSI_CMD) {
190 if (blk_cmd_filter_verify_command(bd->cmd_filter, rq->cmd, 189 if (blk_verify_command(&q->cmd_filter, rq->cmd, has_write_perm))
191 bd->f_mode))
192 return -EPERM; 190 return -EPERM;
193 } else if (!capable(CAP_SYS_RAWIO)) 191 } else if (!capable(CAP_SYS_RAWIO))
194 return -EPERM; 192 return -EPERM;
@@ -244,7 +242,7 @@ bsg_validate_sgv4_hdr(struct request_queue *q, struct sg_io_v4 *hdr, int *rw)
244 * map sg_io_v4 to a request. 242 * map sg_io_v4 to a request.
245 */ 243 */
246static struct request * 244static struct request *
247bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr) 245bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr, int has_write_perm)
248{ 246{
249 struct request_queue *q = bd->queue; 247 struct request_queue *q = bd->queue;
250 struct request *rq, *next_rq = NULL; 248 struct request *rq, *next_rq = NULL;
@@ -266,7 +264,7 @@ bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr)
266 rq = blk_get_request(q, rw, GFP_KERNEL); 264 rq = blk_get_request(q, rw, GFP_KERNEL);
267 if (!rq) 265 if (!rq)
268 return ERR_PTR(-ENOMEM); 266 return ERR_PTR(-ENOMEM);
269 ret = blk_fill_sgv4_hdr_rq(q, rq, hdr, bd); 267 ret = blk_fill_sgv4_hdr_rq(q, rq, hdr, bd, has_write_perm);
270 if (ret) 268 if (ret)
271 goto out; 269 goto out;
272 270
@@ -568,25 +566,6 @@ static inline void bsg_set_block(struct bsg_device *bd, struct file *file)
568 set_bit(BSG_F_BLOCK, &bd->flags); 566 set_bit(BSG_F_BLOCK, &bd->flags);
569} 567}
570 568
571static void bsg_set_cmd_filter(struct bsg_device *bd,
572 struct file *file)
573{
574 struct inode *inode;
575 struct gendisk *disk;
576
577 if (!file)
578 return;
579
580 inode = file->f_dentry->d_inode;
581 if (!inode)
582 return;
583
584 disk = inode->i_bdev->bd_disk;
585
586 bd->cmd_filter = &disk->cmd_filter;
587 bd->f_mode = &file->f_mode;
588}
589
590/* 569/*
591 * Check if the error is a "real" error that we should return. 570 * Check if the error is a "real" error that we should return.
592 */ 571 */
@@ -608,7 +587,6 @@ bsg_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
608 dprintk("%s: read %Zd bytes\n", bd->name, count); 587 dprintk("%s: read %Zd bytes\n", bd->name, count);
609 588
610 bsg_set_block(bd, file); 589 bsg_set_block(bd, file);
611 bsg_set_cmd_filter(bd, file);
612 590
613 bytes_read = 0; 591 bytes_read = 0;
614 ret = __bsg_read(buf, count, bd, NULL, &bytes_read); 592 ret = __bsg_read(buf, count, bd, NULL, &bytes_read);
@@ -621,7 +599,7 @@ bsg_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
621} 599}
622 600
623static int __bsg_write(struct bsg_device *bd, const char __user *buf, 601static int __bsg_write(struct bsg_device *bd, const char __user *buf,
624 size_t count, ssize_t *bytes_written) 602 size_t count, ssize_t *bytes_written, int has_write_perm)
625{ 603{
626 struct bsg_command *bc; 604 struct bsg_command *bc;
627 struct request *rq; 605 struct request *rq;
@@ -652,7 +630,7 @@ static int __bsg_write(struct bsg_device *bd, const char __user *buf,
652 /* 630 /*
653 * get a request, fill in the blanks, and add to request queue 631 * get a request, fill in the blanks, and add to request queue
654 */ 632 */
655 rq = bsg_map_hdr(bd, &bc->hdr); 633 rq = bsg_map_hdr(bd, &bc->hdr, has_write_perm);
656 if (IS_ERR(rq)) { 634 if (IS_ERR(rq)) {
657 ret = PTR_ERR(rq); 635 ret = PTR_ERR(rq);
658 rq = NULL; 636 rq = NULL;
@@ -683,10 +661,11 @@ bsg_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
683 dprintk("%s: write %Zd bytes\n", bd->name, count); 661 dprintk("%s: write %Zd bytes\n", bd->name, count);
684 662
685 bsg_set_block(bd, file); 663 bsg_set_block(bd, file);
686 bsg_set_cmd_filter(bd, file);
687 664
688 bytes_written = 0; 665 bytes_written = 0;
689 ret = __bsg_write(bd, buf, count, &bytes_written); 666 ret = __bsg_write(bd, buf, count, &bytes_written,
667 file->f_mode & FMODE_WRITE);
668
690 *ppos = bytes_written; 669 *ppos = bytes_written;
691 670
692 /* 671 /*
@@ -792,7 +771,6 @@ static struct bsg_device *bsg_add_device(struct inode *inode,
792 bd->queue = rq; 771 bd->queue = rq;
793 772
794 bsg_set_block(bd, file); 773 bsg_set_block(bd, file);
795 bsg_set_cmd_filter(bd, file);
796 774
797 atomic_set(&bd->ref_count, 1); 775 atomic_set(&bd->ref_count, 1);
798 mutex_lock(&bsg_mutex); 776 mutex_lock(&bsg_mutex);
@@ -943,7 +921,7 @@ static long bsg_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
943 if (copy_from_user(&hdr, uarg, sizeof(hdr))) 921 if (copy_from_user(&hdr, uarg, sizeof(hdr)))
944 return -EFAULT; 922 return -EFAULT;
945 923
946 rq = bsg_map_hdr(bd, &hdr); 924 rq = bsg_map_hdr(bd, &hdr, file->f_mode & FMODE_WRITE);
947 if (IS_ERR(rq)) 925 if (IS_ERR(rq))
948 return PTR_ERR(rq); 926 return PTR_ERR(rq);
949 927
diff --git a/block/cmd-filter.c b/block/cmd-filter.c
index eec4404fd35..79c14996ac1 100644
--- a/block/cmd-filter.c
+++ b/block/cmd-filter.c
@@ -20,15 +20,14 @@
20#include <linux/list.h> 20#include <linux/list.h>
21#include <linux/genhd.h> 21#include <linux/genhd.h>
22#include <linux/spinlock.h> 22#include <linux/spinlock.h>
23#include <linux/parser.h>
24#include <linux/capability.h> 23#include <linux/capability.h>
25#include <linux/bitops.h> 24#include <linux/bitops.h>
26 25
27#include <scsi/scsi.h> 26#include <scsi/scsi.h>
28#include <linux/cdrom.h> 27#include <linux/cdrom.h>
29 28
30int blk_cmd_filter_verify_command(struct blk_scsi_cmd_filter *filter, 29int blk_verify_command(struct blk_cmd_filter *filter,
31 unsigned char *cmd, mode_t *f_mode) 30 unsigned char *cmd, int has_write_perm)
32{ 31{
33 /* root can do any command. */ 32 /* root can do any command. */
34 if (capable(CAP_SYS_RAWIO)) 33 if (capable(CAP_SYS_RAWIO))
@@ -43,34 +42,16 @@ int blk_cmd_filter_verify_command(struct blk_scsi_cmd_filter *filter,
43 return 0; 42 return 0;
44 43
45 /* Write-safe commands require a writable open */ 44 /* Write-safe commands require a writable open */
46 if (test_bit(cmd[0], filter->write_ok) && (*f_mode & FMODE_WRITE)) 45 if (test_bit(cmd[0], filter->write_ok) && has_write_perm)
47 return 0; 46 return 0;
48 47
49 return -EPERM; 48 return -EPERM;
50} 49}
51EXPORT_SYMBOL(blk_cmd_filter_verify_command);
52
53int blk_verify_command(struct file *file, unsigned char *cmd)
54{
55 struct gendisk *disk;
56 struct inode *inode;
57
58 if (!file)
59 return -EINVAL;
60
61 inode = file->f_dentry->d_inode;
62 if (!inode)
63 return -EINVAL;
64
65 disk = inode->i_bdev->bd_disk;
66
67 return blk_cmd_filter_verify_command(&disk->cmd_filter,
68 cmd, &file->f_mode);
69}
70EXPORT_SYMBOL(blk_verify_command); 50EXPORT_SYMBOL(blk_verify_command);
71 51
52#if 0
72/* and now, the sysfs stuff */ 53/* and now, the sysfs stuff */
73static ssize_t rcf_cmds_show(struct blk_scsi_cmd_filter *filter, char *page, 54static ssize_t rcf_cmds_show(struct blk_cmd_filter *filter, char *page,
74 int rw) 55 int rw)
75{ 56{
76 char *npage = page; 57 char *npage = page;
@@ -84,8 +65,7 @@ static ssize_t rcf_cmds_show(struct blk_scsi_cmd_filter *filter, char *page,
84 65
85 for (i = 0; i < BLK_SCSI_MAX_CMDS; i++) { 66 for (i = 0; i < BLK_SCSI_MAX_CMDS; i++) {
86 if (test_bit(i, okbits)) { 67 if (test_bit(i, okbits)) {
87 sprintf(npage, "%02x", i); 68 npage += sprintf(npage, "0x%02x", i);
88 npage += 2;
89 if (i < BLK_SCSI_MAX_CMDS - 1) 69 if (i < BLK_SCSI_MAX_CMDS - 1)
90 sprintf(npage++, " "); 70 sprintf(npage++, " ");
91 } 71 }
@@ -97,57 +77,65 @@ static ssize_t rcf_cmds_show(struct blk_scsi_cmd_filter *filter, char *page,
97 return npage - page; 77 return npage - page;
98} 78}
99 79
100static ssize_t rcf_readcmds_show(struct blk_scsi_cmd_filter *filter, char *page) 80static ssize_t rcf_readcmds_show(struct blk_cmd_filter *filter, char *page)
101{ 81{
102 return rcf_cmds_show(filter, page, READ); 82 return rcf_cmds_show(filter, page, READ);
103} 83}
104 84
105static ssize_t rcf_writecmds_show(struct blk_scsi_cmd_filter *filter, 85static ssize_t rcf_writecmds_show(struct blk_cmd_filter *filter,
106 char *page) 86 char *page)
107{ 87{
108 return rcf_cmds_show(filter, page, WRITE); 88 return rcf_cmds_show(filter, page, WRITE);
109} 89}
110 90
111static ssize_t rcf_cmds_store(struct blk_scsi_cmd_filter *filter, 91static ssize_t rcf_cmds_store(struct blk_cmd_filter *filter,
112 const char *page, size_t count, int rw) 92 const char *page, size_t count, int rw)
113{ 93{
114 ssize_t ret = 0;
115 unsigned long okbits[BLK_SCSI_CMD_PER_LONG], *target_okbits; 94 unsigned long okbits[BLK_SCSI_CMD_PER_LONG], *target_okbits;
116 int cmd, status, len; 95 int cmd, set;
117 substring_t ss; 96 char *p, *status;
118 97
119 memset(&okbits, 0, sizeof(okbits)); 98 if (rw == READ) {
120 99 memcpy(&okbits, filter->read_ok, sizeof(okbits));
121 for (len = strlen(page); len > 0; len -= 3) { 100 target_okbits = filter->read_ok;
122 if (len < 2) 101 } else {
123 break; 102 memcpy(&okbits, filter->write_ok, sizeof(okbits));
124 ss.from = (char *) page + ret; 103 target_okbits = filter->write_ok;
125 ss.to = (char *) page + ret + 2; 104 }
126 ret += 3; 105
127 status = match_hex(&ss, &cmd); 106 while ((p = strsep((char **)&page, " ")) != NULL) {
107 set = 1;
108
109 if (p[0] == '+') {
110 p++;
111 } else if (p[0] == '-') {
112 set = 0;
113 p++;
114 }
115
116 cmd = simple_strtol(p, &status, 16);
117
128 /* either of these cases means invalid input, so do nothing. */ 118 /* either of these cases means invalid input, so do nothing. */
129 if (status || cmd >= BLK_SCSI_MAX_CMDS) 119 if ((status == p) || cmd >= BLK_SCSI_MAX_CMDS)
130 return -EINVAL; 120 return -EINVAL;
131 121
132 __set_bit(cmd, okbits); 122 if (set)
123 __set_bit(cmd, okbits);
124 else
125 __clear_bit(cmd, okbits);
133 } 126 }
134 127
135 if (rw == READ) 128 memcpy(target_okbits, okbits, sizeof(okbits));
136 target_okbits = filter->read_ok;
137 else
138 target_okbits = filter->write_ok;
139
140 memmove(target_okbits, okbits, sizeof(okbits));
141 return count; 129 return count;
142} 130}
143 131
144static ssize_t rcf_readcmds_store(struct blk_scsi_cmd_filter *filter, 132static ssize_t rcf_readcmds_store(struct blk_cmd_filter *filter,
145 const char *page, size_t count) 133 const char *page, size_t count)
146{ 134{
147 return rcf_cmds_store(filter, page, count, READ); 135 return rcf_cmds_store(filter, page, count, READ);
148} 136}
149 137
150static ssize_t rcf_writecmds_store(struct blk_scsi_cmd_filter *filter, 138static ssize_t rcf_writecmds_store(struct blk_cmd_filter *filter,
151 const char *page, size_t count) 139 const char *page, size_t count)
152{ 140{
153 return rcf_cmds_store(filter, page, count, WRITE); 141 return rcf_cmds_store(filter, page, count, WRITE);
@@ -155,8 +143,8 @@ static ssize_t rcf_writecmds_store(struct blk_scsi_cmd_filter *filter,
155 143
156struct rcf_sysfs_entry { 144struct rcf_sysfs_entry {
157 struct attribute attr; 145 struct attribute attr;
158 ssize_t (*show)(struct blk_scsi_cmd_filter *, char *); 146 ssize_t (*show)(struct blk_cmd_filter *, char *);
159 ssize_t (*store)(struct blk_scsi_cmd_filter *, const char *, size_t); 147 ssize_t (*store)(struct blk_cmd_filter *, const char *, size_t);
160}; 148};
161 149
162static struct rcf_sysfs_entry rcf_readcmds_entry = { 150static struct rcf_sysfs_entry rcf_readcmds_entry = {
@@ -183,9 +171,9 @@ static ssize_t
183rcf_attr_show(struct kobject *kobj, struct attribute *attr, char *page) 171rcf_attr_show(struct kobject *kobj, struct attribute *attr, char *page)
184{ 172{
185 struct rcf_sysfs_entry *entry = to_rcf(attr); 173 struct rcf_sysfs_entry *entry = to_rcf(attr);
186 struct blk_scsi_cmd_filter *filter; 174 struct blk_cmd_filter *filter;
187 175
188 filter = container_of(kobj, struct blk_scsi_cmd_filter, kobj); 176 filter = container_of(kobj, struct blk_cmd_filter, kobj);
189 if (entry->show) 177 if (entry->show)
190 return entry->show(filter, page); 178 return entry->show(filter, page);
191 179
@@ -197,7 +185,7 @@ rcf_attr_store(struct kobject *kobj, struct attribute *attr,
197 const char *page, size_t length) 185 const char *page, size_t length)
198{ 186{
199 struct rcf_sysfs_entry *entry = to_rcf(attr); 187 struct rcf_sysfs_entry *entry = to_rcf(attr);
200 struct blk_scsi_cmd_filter *filter; 188 struct blk_cmd_filter *filter;
201 189
202 if (!capable(CAP_SYS_RAWIO)) 190 if (!capable(CAP_SYS_RAWIO))
203 return -EPERM; 191 return -EPERM;
@@ -205,7 +193,7 @@ rcf_attr_store(struct kobject *kobj, struct attribute *attr,
205 if (!entry->store) 193 if (!entry->store)
206 return -EINVAL; 194 return -EINVAL;
207 195
208 filter = container_of(kobj, struct blk_scsi_cmd_filter, kobj); 196 filter = container_of(kobj, struct blk_cmd_filter, kobj);
209 return entry->store(filter, page, length); 197 return entry->store(filter, page, length);
210} 198}
211 199
@@ -219,116 +207,31 @@ static struct kobj_type rcf_ktype = {
219 .default_attrs = default_attrs, 207 .default_attrs = default_attrs,
220}; 208};
221 209
222#ifndef MAINTENANCE_IN_CMD
223#define MAINTENANCE_IN_CMD 0xa3
224#endif
225
226static void rcf_set_defaults(struct blk_scsi_cmd_filter *filter)
227{
228 /* Basic read-only commands */
229 __set_bit(TEST_UNIT_READY, filter->read_ok);
230 __set_bit(REQUEST_SENSE, filter->read_ok);
231 __set_bit(READ_6, filter->read_ok);
232 __set_bit(READ_10, filter->read_ok);
233 __set_bit(READ_12, filter->read_ok);
234 __set_bit(READ_16, filter->read_ok);
235 __set_bit(READ_BUFFER, filter->read_ok);
236 __set_bit(READ_DEFECT_DATA, filter->read_ok);
237 __set_bit(READ_CAPACITY, filter->read_ok);
238 __set_bit(READ_LONG, filter->read_ok);
239 __set_bit(INQUIRY, filter->read_ok);
240 __set_bit(MODE_SENSE, filter->read_ok);
241 __set_bit(MODE_SENSE_10, filter->read_ok);
242 __set_bit(LOG_SENSE, filter->read_ok);
243 __set_bit(START_STOP, filter->read_ok);
244 __set_bit(GPCMD_VERIFY_10, filter->read_ok);
245 __set_bit(VERIFY_16, filter->read_ok);
246 __set_bit(REPORT_LUNS, filter->read_ok);
247 __set_bit(SERVICE_ACTION_IN, filter->read_ok);
248 __set_bit(RECEIVE_DIAGNOSTIC, filter->read_ok);
249 __set_bit(MAINTENANCE_IN_CMD, filter->read_ok);
250 __set_bit(GPCMD_READ_BUFFER_CAPACITY, filter->read_ok);
251
252 /* Audio CD commands */
253 __set_bit(GPCMD_PLAY_CD, filter->read_ok);
254 __set_bit(GPCMD_PLAY_AUDIO_10, filter->read_ok);
255 __set_bit(GPCMD_PLAY_AUDIO_MSF, filter->read_ok);
256 __set_bit(GPCMD_PLAY_AUDIO_TI, filter->read_ok);
257 __set_bit(GPCMD_PAUSE_RESUME, filter->read_ok);
258
259 /* CD/DVD data reading */
260 __set_bit(GPCMD_READ_CD, filter->read_ok);
261 __set_bit(GPCMD_READ_CD_MSF, filter->read_ok);
262 __set_bit(GPCMD_READ_DISC_INFO, filter->read_ok);
263 __set_bit(GPCMD_READ_CDVD_CAPACITY, filter->read_ok);
264 __set_bit(GPCMD_READ_DVD_STRUCTURE, filter->read_ok);
265 __set_bit(GPCMD_READ_HEADER, filter->read_ok);
266 __set_bit(GPCMD_READ_TRACK_RZONE_INFO, filter->read_ok);
267 __set_bit(GPCMD_READ_SUBCHANNEL, filter->read_ok);
268 __set_bit(GPCMD_READ_TOC_PMA_ATIP, filter->read_ok);
269 __set_bit(GPCMD_REPORT_KEY, filter->read_ok);
270 __set_bit(GPCMD_SCAN, filter->read_ok);
271 __set_bit(GPCMD_GET_CONFIGURATION, filter->read_ok);
272 __set_bit(GPCMD_READ_FORMAT_CAPACITIES, filter->read_ok);
273 __set_bit(GPCMD_GET_EVENT_STATUS_NOTIFICATION, filter->read_ok);
274 __set_bit(GPCMD_GET_PERFORMANCE, filter->read_ok);
275 __set_bit(GPCMD_SEEK, filter->read_ok);
276 __set_bit(GPCMD_STOP_PLAY_SCAN, filter->read_ok);
277
278 /* Basic writing commands */
279 __set_bit(WRITE_6, filter->write_ok);
280 __set_bit(WRITE_10, filter->write_ok);
281 __set_bit(WRITE_VERIFY, filter->write_ok);
282 __set_bit(WRITE_12, filter->write_ok);
283 __set_bit(WRITE_VERIFY_12, filter->write_ok);
284 __set_bit(WRITE_16, filter->write_ok);
285 __set_bit(WRITE_LONG, filter->write_ok);
286 __set_bit(WRITE_LONG_2, filter->write_ok);
287 __set_bit(ERASE, filter->write_ok);
288 __set_bit(GPCMD_MODE_SELECT_10, filter->write_ok);
289 __set_bit(MODE_SELECT, filter->write_ok);
290 __set_bit(LOG_SELECT, filter->write_ok);
291 __set_bit(GPCMD_BLANK, filter->write_ok);
292 __set_bit(GPCMD_CLOSE_TRACK, filter->write_ok);
293 __set_bit(GPCMD_FLUSH_CACHE, filter->write_ok);
294 __set_bit(GPCMD_FORMAT_UNIT, filter->write_ok);
295 __set_bit(GPCMD_REPAIR_RZONE_TRACK, filter->write_ok);
296 __set_bit(GPCMD_RESERVE_RZONE_TRACK, filter->write_ok);
297 __set_bit(GPCMD_SEND_DVD_STRUCTURE, filter->write_ok);
298 __set_bit(GPCMD_SEND_EVENT, filter->write_ok);
299 __set_bit(GPCMD_SEND_KEY, filter->write_ok);
300 __set_bit(GPCMD_SEND_OPC, filter->write_ok);
301 __set_bit(GPCMD_SEND_CUE_SHEET, filter->write_ok);
302 __set_bit(GPCMD_SET_SPEED, filter->write_ok);
303 __set_bit(GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL, filter->write_ok);
304 __set_bit(GPCMD_LOAD_UNLOAD, filter->write_ok);
305 __set_bit(GPCMD_SET_STREAMING, filter->write_ok);
306}
307
308int blk_register_filter(struct gendisk *disk) 210int blk_register_filter(struct gendisk *disk)
309{ 211{
310 int ret; 212 int ret;
311 struct blk_scsi_cmd_filter *filter = &disk->cmd_filter; 213 struct blk_cmd_filter *filter = &disk->queue->cmd_filter;
312 struct kobject *parent = kobject_get(disk->holder_dir->parent); 214 struct kobject *parent = kobject_get(disk->holder_dir->parent);
313 215
314 if (!parent) 216 if (!parent)
315 return -ENODEV; 217 return -ENODEV;
316 218
317 ret = kobject_init_and_add(&filter->kobj, &rcf_ktype, parent, 219 ret = kobject_init_and_add(&filter->kobj, &rcf_ktype, parent,
318 "%s", "cmd_filter"); 220 "%s", "cmd_filter");
319 221
320 if (ret < 0) 222 if (ret < 0)
321 return ret; 223 return ret;
322 224
323 rcf_set_defaults(filter);
324 return 0; 225 return 0;
325} 226}
227EXPORT_SYMBOL(blk_register_filter);
326 228
327void blk_unregister_filter(struct gendisk *disk) 229void blk_unregister_filter(struct gendisk *disk)
328{ 230{
329 struct blk_scsi_cmd_filter *filter = &disk->cmd_filter; 231 struct blk_cmd_filter *filter = &disk->queue->cmd_filter;
330 232
331 kobject_put(&filter->kobj); 233 kobject_put(&filter->kobj);
332 kobject_put(disk->holder_dir->parent); 234 kobject_put(disk->holder_dir->parent);
333} 235}
334 236EXPORT_SYMBOL(blk_unregister_filter);
237#endif
diff --git a/block/genhd.c b/block/genhd.c
index c13cc77291a..e0ce23ac2ec 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -190,7 +190,6 @@ void add_disk(struct gendisk *disk)
190 disk->minors, NULL, exact_match, exact_lock, disk); 190 disk->minors, NULL, exact_match, exact_lock, disk);
191 register_disk(disk); 191 register_disk(disk);
192 blk_register_queue(disk); 192 blk_register_queue(disk);
193 blk_register_filter(disk);
194 193
195 bdi = &disk->queue->backing_dev_info; 194 bdi = &disk->queue->backing_dev_info;
196 bdi_register_dev(bdi, MKDEV(disk->major, disk->first_minor)); 195 bdi_register_dev(bdi, MKDEV(disk->major, disk->first_minor));
@@ -203,7 +202,6 @@ EXPORT_SYMBOL(del_gendisk); /* in partitions/check.c */
203 202
204void unlink_gendisk(struct gendisk *disk) 203void unlink_gendisk(struct gendisk *disk)
205{ 204{
206 blk_unregister_filter(disk);
207 sysfs_remove_link(&disk->dev.kobj, "bdi"); 205 sysfs_remove_link(&disk->dev.kobj, "bdi");
208 bdi_unregister(&disk->queue->backing_dev_info); 206 bdi_unregister(&disk->queue->backing_dev_info);
209 blk_unregister_queue(disk); 207 blk_unregister_queue(disk);
@@ -293,27 +291,30 @@ void __init printk_all_partitions(void)
293/* iterator */ 291/* iterator */
294static int find_start(struct device *dev, void *data) 292static int find_start(struct device *dev, void *data)
295{ 293{
296 loff_t k = *(loff_t *)data; 294 loff_t *k = data;
297 295
298 if (dev->type != &disk_type) 296 if (dev->type != &disk_type)
299 return 0; 297 return 0;
300 if (!k--) 298 if (!*k)
301 return 1; 299 return 1;
300 (*k)--;
302 return 0; 301 return 0;
303} 302}
304 303
305static void *part_start(struct seq_file *part, loff_t *pos) 304static void *part_start(struct seq_file *part, loff_t *pos)
306{ 305{
307 struct device *dev; 306 struct device *dev;
308 loff_t n = *pos; 307 loff_t k = *pos;
309 308
310 if (!n) 309 if (!k)
311 seq_puts(part, "major minor #blocks name\n\n"); 310 part->private = (void *)1LU; /* tell show to print header */
312 311
313 mutex_lock(&block_class_lock); 312 mutex_lock(&block_class_lock);
314 dev = class_find_device(&block_class, NULL, (void *)pos, find_start); 313 dev = class_find_device(&block_class, NULL, &k, find_start);
315 if (dev) 314 if (dev) {
315 put_device(dev);
316 return dev_to_disk(dev); 316 return dev_to_disk(dev);
317 }
317 return NULL; 318 return NULL;
318} 319}
319 320
@@ -330,8 +331,10 @@ static void *part_next(struct seq_file *part, void *v, loff_t *pos)
330 struct device *dev; 331 struct device *dev;
331 ++*pos; 332 ++*pos;
332 dev = class_find_device(&block_class, &gp->dev, NULL, find_next); 333 dev = class_find_device(&block_class, &gp->dev, NULL, find_next);
333 if (dev) 334 if (dev) {
335 put_device(dev);
334 return dev_to_disk(dev); 336 return dev_to_disk(dev);
337 }
335 return NULL; 338 return NULL;
336} 339}
337 340
@@ -346,6 +349,17 @@ static int show_partition(struct seq_file *part, void *v)
346 int n; 349 int n;
347 char buf[BDEVNAME_SIZE]; 350 char buf[BDEVNAME_SIZE];
348 351
352 /*
353 * Print header if start told us to do. This is to preserve
354 * the original behavior of not printing header if no
355 * partition exists. This hackery will be removed later with
356 * class iteration clean up.
357 */
358 if (part->private) {
359 seq_puts(part, "major minor #blocks name\n\n");
360 part->private = NULL;
361 }
362
349 /* Don't show non-partitionable removeable devices or empty devices */ 363 /* Don't show non-partitionable removeable devices or empty devices */
350 if (!get_capacity(sgp) || 364 if (!get_capacity(sgp) ||
351 (sgp->minors == 1 && (sgp->flags & GENHD_FL_REMOVABLE))) 365 (sgp->minors == 1 && (sgp->flags & GENHD_FL_REMOVABLE)))
@@ -568,11 +582,14 @@ static struct device_type disk_type = {
568static void *diskstats_start(struct seq_file *part, loff_t *pos) 582static void *diskstats_start(struct seq_file *part, loff_t *pos)
569{ 583{
570 struct device *dev; 584 struct device *dev;
585 loff_t k = *pos;
571 586
572 mutex_lock(&block_class_lock); 587 mutex_lock(&block_class_lock);
573 dev = class_find_device(&block_class, NULL, (void *)pos, find_start); 588 dev = class_find_device(&block_class, NULL, &k, find_start);
574 if (dev) 589 if (dev) {
590 put_device(dev);
575 return dev_to_disk(dev); 591 return dev_to_disk(dev);
592 }
576 return NULL; 593 return NULL;
577} 594}
578 595
@@ -583,8 +600,10 @@ static void *diskstats_next(struct seq_file *part, void *v, loff_t *pos)
583 600
584 ++*pos; 601 ++*pos;
585 dev = class_find_device(&block_class, &gp->dev, NULL, find_next); 602 dev = class_find_device(&block_class, &gp->dev, NULL, find_next);
586 if (dev) 603 if (dev) {
604 put_device(dev);
587 return dev_to_disk(dev); 605 return dev_to_disk(dev);
606 }
588 return NULL; 607 return NULL;
589} 608}
590 609
@@ -712,10 +731,12 @@ dev_t blk_lookup_devt(const char *name, int part)
712 mutex_lock(&block_class_lock); 731 mutex_lock(&block_class_lock);
713 find.name = name; 732 find.name = name;
714 find.part = part; 733 find.part = part;
715 dev = class_find_device(&block_class, NULL, (void *)&find, match_id); 734 dev = class_find_device(&block_class, NULL, &find, match_id);
716 if (dev) 735 if (dev) {
736 put_device(dev);
717 devt = MKDEV(MAJOR(dev->devt), 737 devt = MKDEV(MAJOR(dev->devt),
718 MINOR(dev->devt) + part); 738 MINOR(dev->devt) + part);
739 }
719 mutex_unlock(&block_class_lock); 740 mutex_unlock(&block_class_lock);
720 741
721 return devt; 742 return devt;
diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
index 12a5182173f..ec4b7f23462 100644
--- a/block/scsi_ioctl.c
+++ b/block/scsi_ioctl.c
@@ -105,12 +105,96 @@ static int sg_emulated_host(struct request_queue *q, int __user *p)
105 return put_user(1, p); 105 return put_user(1, p);
106} 106}
107 107
108void blk_set_cmd_filter_defaults(struct blk_cmd_filter *filter)
109{
110 /* Basic read-only commands */
111 __set_bit(TEST_UNIT_READY, filter->read_ok);
112 __set_bit(REQUEST_SENSE, filter->read_ok);
113 __set_bit(READ_6, filter->read_ok);
114 __set_bit(READ_10, filter->read_ok);
115 __set_bit(READ_12, filter->read_ok);
116 __set_bit(READ_16, filter->read_ok);
117 __set_bit(READ_BUFFER, filter->read_ok);
118 __set_bit(READ_DEFECT_DATA, filter->read_ok);
119 __set_bit(READ_CAPACITY, filter->read_ok);
120 __set_bit(READ_LONG, filter->read_ok);
121 __set_bit(INQUIRY, filter->read_ok);
122 __set_bit(MODE_SENSE, filter->read_ok);
123 __set_bit(MODE_SENSE_10, filter->read_ok);
124 __set_bit(LOG_SENSE, filter->read_ok);
125 __set_bit(START_STOP, filter->read_ok);
126 __set_bit(GPCMD_VERIFY_10, filter->read_ok);
127 __set_bit(VERIFY_16, filter->read_ok);
128 __set_bit(REPORT_LUNS, filter->read_ok);
129 __set_bit(SERVICE_ACTION_IN, filter->read_ok);
130 __set_bit(RECEIVE_DIAGNOSTIC, filter->read_ok);
131 __set_bit(MAINTENANCE_IN, filter->read_ok);
132 __set_bit(GPCMD_READ_BUFFER_CAPACITY, filter->read_ok);
133
134 /* Audio CD commands */
135 __set_bit(GPCMD_PLAY_CD, filter->read_ok);
136 __set_bit(GPCMD_PLAY_AUDIO_10, filter->read_ok);
137 __set_bit(GPCMD_PLAY_AUDIO_MSF, filter->read_ok);
138 __set_bit(GPCMD_PLAY_AUDIO_TI, filter->read_ok);
139 __set_bit(GPCMD_PAUSE_RESUME, filter->read_ok);
140
141 /* CD/DVD data reading */
142 __set_bit(GPCMD_READ_CD, filter->read_ok);
143 __set_bit(GPCMD_READ_CD_MSF, filter->read_ok);
144 __set_bit(GPCMD_READ_DISC_INFO, filter->read_ok);
145 __set_bit(GPCMD_READ_CDVD_CAPACITY, filter->read_ok);
146 __set_bit(GPCMD_READ_DVD_STRUCTURE, filter->read_ok);
147 __set_bit(GPCMD_READ_HEADER, filter->read_ok);
148 __set_bit(GPCMD_READ_TRACK_RZONE_INFO, filter->read_ok);
149 __set_bit(GPCMD_READ_SUBCHANNEL, filter->read_ok);
150 __set_bit(GPCMD_READ_TOC_PMA_ATIP, filter->read_ok);
151 __set_bit(GPCMD_REPORT_KEY, filter->read_ok);
152 __set_bit(GPCMD_SCAN, filter->read_ok);
153 __set_bit(GPCMD_GET_CONFIGURATION, filter->read_ok);
154 __set_bit(GPCMD_READ_FORMAT_CAPACITIES, filter->read_ok);
155 __set_bit(GPCMD_GET_EVENT_STATUS_NOTIFICATION, filter->read_ok);
156 __set_bit(GPCMD_GET_PERFORMANCE, filter->read_ok);
157 __set_bit(GPCMD_SEEK, filter->read_ok);
158 __set_bit(GPCMD_STOP_PLAY_SCAN, filter->read_ok);
159
160 /* Basic writing commands */
161 __set_bit(WRITE_6, filter->write_ok);
162 __set_bit(WRITE_10, filter->write_ok);
163 __set_bit(WRITE_VERIFY, filter->write_ok);
164 __set_bit(WRITE_12, filter->write_ok);
165 __set_bit(WRITE_VERIFY_12, filter->write_ok);
166 __set_bit(WRITE_16, filter->write_ok);
167 __set_bit(WRITE_LONG, filter->write_ok);
168 __set_bit(WRITE_LONG_2, filter->write_ok);
169 __set_bit(ERASE, filter->write_ok);
170 __set_bit(GPCMD_MODE_SELECT_10, filter->write_ok);
171 __set_bit(MODE_SELECT, filter->write_ok);
172 __set_bit(LOG_SELECT, filter->write_ok);
173 __set_bit(GPCMD_BLANK, filter->write_ok);
174 __set_bit(GPCMD_CLOSE_TRACK, filter->write_ok);
175 __set_bit(GPCMD_FLUSH_CACHE, filter->write_ok);
176 __set_bit(GPCMD_FORMAT_UNIT, filter->write_ok);
177 __set_bit(GPCMD_REPAIR_RZONE_TRACK, filter->write_ok);
178 __set_bit(GPCMD_RESERVE_RZONE_TRACK, filter->write_ok);
179 __set_bit(GPCMD_SEND_DVD_STRUCTURE, filter->write_ok);
180 __set_bit(GPCMD_SEND_EVENT, filter->write_ok);
181 __set_bit(GPCMD_SEND_KEY, filter->write_ok);
182 __set_bit(GPCMD_SEND_OPC, filter->write_ok);
183 __set_bit(GPCMD_SEND_CUE_SHEET, filter->write_ok);
184 __set_bit(GPCMD_SET_SPEED, filter->write_ok);
185 __set_bit(GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL, filter->write_ok);
186 __set_bit(GPCMD_LOAD_UNLOAD, filter->write_ok);
187 __set_bit(GPCMD_SET_STREAMING, filter->write_ok);
188}
189EXPORT_SYMBOL_GPL(blk_set_cmd_filter_defaults);
190
108static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq, 191static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
109 struct sg_io_hdr *hdr, struct file *file) 192 struct sg_io_hdr *hdr, struct file *file)
110{ 193{
111 if (copy_from_user(rq->cmd, hdr->cmdp, hdr->cmd_len)) 194 if (copy_from_user(rq->cmd, hdr->cmdp, hdr->cmd_len))
112 return -EFAULT; 195 return -EFAULT;
113 if (blk_verify_command(file, rq->cmd)) 196 if (blk_verify_command(&q->cmd_filter, rq->cmd,
197 file->f_mode & FMODE_WRITE))
114 return -EPERM; 198 return -EPERM;
115 199
116 /* 200 /*
@@ -298,7 +382,7 @@ int sg_scsi_ioctl(struct file *file, struct request_queue *q,
298 struct gendisk *disk, struct scsi_ioctl_command __user *sic) 382 struct gendisk *disk, struct scsi_ioctl_command __user *sic)
299{ 383{
300 struct request *rq; 384 struct request *rq;
301 int err; 385 int err, write_perm = 0;
302 unsigned int in_len, out_len, bytes, opcode, cmdlen; 386 unsigned int in_len, out_len, bytes, opcode, cmdlen;
303 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE]; 387 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
304 388
@@ -340,7 +424,11 @@ int sg_scsi_ioctl(struct file *file, struct request_queue *q,
340 if (in_len && copy_from_user(buffer, sic->data + cmdlen, in_len)) 424 if (in_len && copy_from_user(buffer, sic->data + cmdlen, in_len))
341 goto error; 425 goto error;
342 426
343 err = blk_verify_command(file, rq->cmd); 427 /* scsi_ioctl passes NULL */
428 if (file && (file->f_mode & FMODE_WRITE))
429 write_perm = 1;
430
431 err = blk_verify_command(&q->cmd_filter, rq->cmd, write_perm);
344 if (err) 432 if (err)
345 goto error; 433 goto error;
346 434
diff --git a/crypto/async_tx/async_tx.c b/crypto/async_tx/async_tx.c
index 85eaf7b1c53..e8362c1efa3 100644
--- a/crypto/async_tx/async_tx.c
+++ b/crypto/async_tx/async_tx.c
@@ -137,7 +137,8 @@ async_tx_run_dependencies(struct dma_async_tx_descriptor *tx)
137 spin_lock_bh(&next->lock); 137 spin_lock_bh(&next->lock);
138 next->parent = NULL; 138 next->parent = NULL;
139 _next = next->next; 139 _next = next->next;
140 next->next = NULL; 140 if (_next && _next->chan == chan)
141 next->next = NULL;
141 spin_unlock_bh(&next->lock); 142 spin_unlock_bh(&next->lock);
142 143
143 next->tx_submit(next); 144 next->tx_submit(next);
diff --git a/crypto/authenc.c b/crypto/authenc.c
index 4b226768752..fd9f06c63d7 100644
--- a/crypto/authenc.c
+++ b/crypto/authenc.c
@@ -174,8 +174,9 @@ static int crypto_authenc_genicv(struct aead_request *req, u8 *iv,
174static void crypto_authenc_encrypt_done(struct crypto_async_request *req, 174static void crypto_authenc_encrypt_done(struct crypto_async_request *req,
175 int err) 175 int err)
176{ 176{
177 struct aead_request *areq = req->data;
178
177 if (!err) { 179 if (!err) {
178 struct aead_request *areq = req->data;
179 struct crypto_aead *authenc = crypto_aead_reqtfm(areq); 180 struct crypto_aead *authenc = crypto_aead_reqtfm(areq);
180 struct crypto_authenc_ctx *ctx = crypto_aead_ctx(authenc); 181 struct crypto_authenc_ctx *ctx = crypto_aead_ctx(authenc);
181 struct ablkcipher_request *abreq = aead_request_ctx(areq); 182 struct ablkcipher_request *abreq = aead_request_ctx(areq);
@@ -185,7 +186,7 @@ static void crypto_authenc_encrypt_done(struct crypto_async_request *req,
185 err = crypto_authenc_genicv(areq, iv, 0); 186 err = crypto_authenc_genicv(areq, iv, 0);
186 } 187 }
187 188
188 aead_request_complete(req->data, err); 189 aead_request_complete(areq, err);
189} 190}
190 191
191static int crypto_authenc_encrypt(struct aead_request *req) 192static int crypto_authenc_encrypt(struct aead_request *req)
@@ -216,14 +217,15 @@ static int crypto_authenc_encrypt(struct aead_request *req)
216static void crypto_authenc_givencrypt_done(struct crypto_async_request *req, 217static void crypto_authenc_givencrypt_done(struct crypto_async_request *req,
217 int err) 218 int err)
218{ 219{
220 struct aead_request *areq = req->data;
221
219 if (!err) { 222 if (!err) {
220 struct aead_request *areq = req->data;
221 struct skcipher_givcrypt_request *greq = aead_request_ctx(areq); 223 struct skcipher_givcrypt_request *greq = aead_request_ctx(areq);
222 224
223 err = crypto_authenc_genicv(areq, greq->giv, 0); 225 err = crypto_authenc_genicv(areq, greq->giv, 0);
224 } 226 }
225 227
226 aead_request_complete(req->data, err); 228 aead_request_complete(areq, err);
227} 229}
228 230
229static int crypto_authenc_givencrypt(struct aead_givcrypt_request *req) 231static int crypto_authenc_givencrypt(struct aead_givcrypt_request *req)
diff --git a/crypto/camellia.c b/crypto/camellia.c
index b1cc4de6493..493fee7e0a8 100644
--- a/crypto/camellia.c
+++ b/crypto/camellia.c
@@ -35,8 +35,6 @@
35#include <linux/init.h> 35#include <linux/init.h>
36#include <linux/kernel.h> 36#include <linux/kernel.h>
37#include <linux/module.h> 37#include <linux/module.h>
38#include <linux/bitops.h>
39#include <asm/unaligned.h>
40 38
41static const u32 camellia_sp1110[256] = { 39static const u32 camellia_sp1110[256] = {
42 0x70707000,0x82828200,0x2c2c2c00,0xececec00, 40 0x70707000,0x82828200,0x2c2c2c00,0xececec00,
@@ -337,6 +335,20 @@ static const u32 camellia_sp4404[256] = {
337/* 335/*
338 * macros 336 * macros
339 */ 337 */
338#define GETU32(v, pt) \
339 do { \
340 /* latest breed of gcc is clever enough to use move */ \
341 memcpy(&(v), (pt), 4); \
342 (v) = be32_to_cpu(v); \
343 } while(0)
344
345/* rotation right shift 1byte */
346#define ROR8(x) (((x) >> 8) + ((x) << 24))
347/* rotation left shift 1bit */
348#define ROL1(x) (((x) << 1) + ((x) >> 31))
349/* rotation left shift 1byte */
350#define ROL8(x) (((x) << 8) + ((x) >> 24))
351
340#define ROLDQ(ll, lr, rl, rr, w0, w1, bits) \ 352#define ROLDQ(ll, lr, rl, rr, w0, w1, bits) \
341 do { \ 353 do { \
342 w0 = ll; \ 354 w0 = ll; \
@@ -371,7 +383,7 @@ static const u32 camellia_sp4404[256] = {
371 ^ camellia_sp3033[(u8)(il >> 8)] \ 383 ^ camellia_sp3033[(u8)(il >> 8)] \
372 ^ camellia_sp4404[(u8)(il )]; \ 384 ^ camellia_sp4404[(u8)(il )]; \
373 yl ^= yr; \ 385 yl ^= yr; \
374 yr = ror32(yr, 8); \ 386 yr = ROR8(yr); \
375 yr ^= yl; \ 387 yr ^= yl; \
376 } while(0) 388 } while(0)
377 389
@@ -393,7 +405,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
393 subL[7] ^= subL[1]; subR[7] ^= subR[1]; 405 subL[7] ^= subL[1]; subR[7] ^= subR[1];
394 subL[1] ^= subR[1] & ~subR[9]; 406 subL[1] ^= subR[1] & ~subR[9];
395 dw = subL[1] & subL[9], 407 dw = subL[1] & subL[9],
396 subR[1] ^= rol32(dw, 1); /* modified for FLinv(kl2) */ 408 subR[1] ^= ROL1(dw); /* modified for FLinv(kl2) */
397 /* round 8 */ 409 /* round 8 */
398 subL[11] ^= subL[1]; subR[11] ^= subR[1]; 410 subL[11] ^= subL[1]; subR[11] ^= subR[1];
399 /* round 10 */ 411 /* round 10 */
@@ -402,7 +414,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
402 subL[15] ^= subL[1]; subR[15] ^= subR[1]; 414 subL[15] ^= subL[1]; subR[15] ^= subR[1];
403 subL[1] ^= subR[1] & ~subR[17]; 415 subL[1] ^= subR[1] & ~subR[17];
404 dw = subL[1] & subL[17], 416 dw = subL[1] & subL[17],
405 subR[1] ^= rol32(dw, 1); /* modified for FLinv(kl4) */ 417 subR[1] ^= ROL1(dw); /* modified for FLinv(kl4) */
406 /* round 14 */ 418 /* round 14 */
407 subL[19] ^= subL[1]; subR[19] ^= subR[1]; 419 subL[19] ^= subL[1]; subR[19] ^= subR[1];
408 /* round 16 */ 420 /* round 16 */
@@ -418,7 +430,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
418 } else { 430 } else {
419 subL[1] ^= subR[1] & ~subR[25]; 431 subL[1] ^= subR[1] & ~subR[25];
420 dw = subL[1] & subL[25], 432 dw = subL[1] & subL[25],
421 subR[1] ^= rol32(dw, 1); /* modified for FLinv(kl6) */ 433 subR[1] ^= ROL1(dw); /* modified for FLinv(kl6) */
422 /* round 20 */ 434 /* round 20 */
423 subL[27] ^= subL[1]; subR[27] ^= subR[1]; 435 subL[27] ^= subL[1]; subR[27] ^= subR[1];
424 /* round 22 */ 436 /* round 22 */
@@ -438,7 +450,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
438 subL[26] ^= kw4l; subR[26] ^= kw4r; 450 subL[26] ^= kw4l; subR[26] ^= kw4r;
439 kw4l ^= kw4r & ~subR[24]; 451 kw4l ^= kw4r & ~subR[24];
440 dw = kw4l & subL[24], 452 dw = kw4l & subL[24],
441 kw4r ^= rol32(dw, 1); /* modified for FL(kl5) */ 453 kw4r ^= ROL1(dw); /* modified for FL(kl5) */
442 } 454 }
443 /* round 17 */ 455 /* round 17 */
444 subL[22] ^= kw4l; subR[22] ^= kw4r; 456 subL[22] ^= kw4l; subR[22] ^= kw4r;
@@ -448,7 +460,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
448 subL[18] ^= kw4l; subR[18] ^= kw4r; 460 subL[18] ^= kw4l; subR[18] ^= kw4r;
449 kw4l ^= kw4r & ~subR[16]; 461 kw4l ^= kw4r & ~subR[16];
450 dw = kw4l & subL[16], 462 dw = kw4l & subL[16],
451 kw4r ^= rol32(dw, 1); /* modified for FL(kl3) */ 463 kw4r ^= ROL1(dw); /* modified for FL(kl3) */
452 /* round 11 */ 464 /* round 11 */
453 subL[14] ^= kw4l; subR[14] ^= kw4r; 465 subL[14] ^= kw4l; subR[14] ^= kw4r;
454 /* round 9 */ 466 /* round 9 */
@@ -457,7 +469,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
457 subL[10] ^= kw4l; subR[10] ^= kw4r; 469 subL[10] ^= kw4l; subR[10] ^= kw4r;
458 kw4l ^= kw4r & ~subR[8]; 470 kw4l ^= kw4r & ~subR[8];
459 dw = kw4l & subL[8], 471 dw = kw4l & subL[8],
460 kw4r ^= rol32(dw, 1); /* modified for FL(kl1) */ 472 kw4r ^= ROL1(dw); /* modified for FL(kl1) */
461 /* round 5 */ 473 /* round 5 */
462 subL[6] ^= kw4l; subR[6] ^= kw4r; 474 subL[6] ^= kw4l; subR[6] ^= kw4r;
463 /* round 3 */ 475 /* round 3 */
@@ -482,7 +494,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
482 SUBKEY_R(6) = subR[5] ^ subR[7]; 494 SUBKEY_R(6) = subR[5] ^ subR[7];
483 tl = subL[10] ^ (subR[10] & ~subR[8]); 495 tl = subL[10] ^ (subR[10] & ~subR[8]);
484 dw = tl & subL[8], /* FL(kl1) */ 496 dw = tl & subL[8], /* FL(kl1) */
485 tr = subR[10] ^ rol32(dw, 1); 497 tr = subR[10] ^ ROL1(dw);
486 SUBKEY_L(7) = subL[6] ^ tl; /* round 6 */ 498 SUBKEY_L(7) = subL[6] ^ tl; /* round 6 */
487 SUBKEY_R(7) = subR[6] ^ tr; 499 SUBKEY_R(7) = subR[6] ^ tr;
488 SUBKEY_L(8) = subL[8]; /* FL(kl1) */ 500 SUBKEY_L(8) = subL[8]; /* FL(kl1) */
@@ -491,7 +503,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
491 SUBKEY_R(9) = subR[9]; 503 SUBKEY_R(9) = subR[9];
492 tl = subL[7] ^ (subR[7] & ~subR[9]); 504 tl = subL[7] ^ (subR[7] & ~subR[9]);
493 dw = tl & subL[9], /* FLinv(kl2) */ 505 dw = tl & subL[9], /* FLinv(kl2) */
494 tr = subR[7] ^ rol32(dw, 1); 506 tr = subR[7] ^ ROL1(dw);
495 SUBKEY_L(10) = tl ^ subL[11]; /* round 7 */ 507 SUBKEY_L(10) = tl ^ subL[11]; /* round 7 */
496 SUBKEY_R(10) = tr ^ subR[11]; 508 SUBKEY_R(10) = tr ^ subR[11];
497 SUBKEY_L(11) = subL[10] ^ subL[12]; /* round 8 */ 509 SUBKEY_L(11) = subL[10] ^ subL[12]; /* round 8 */
@@ -504,7 +516,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
504 SUBKEY_R(14) = subR[13] ^ subR[15]; 516 SUBKEY_R(14) = subR[13] ^ subR[15];
505 tl = subL[18] ^ (subR[18] & ~subR[16]); 517 tl = subL[18] ^ (subR[18] & ~subR[16]);
506 dw = tl & subL[16], /* FL(kl3) */ 518 dw = tl & subL[16], /* FL(kl3) */
507 tr = subR[18] ^ rol32(dw, 1); 519 tr = subR[18] ^ ROL1(dw);
508 SUBKEY_L(15) = subL[14] ^ tl; /* round 12 */ 520 SUBKEY_L(15) = subL[14] ^ tl; /* round 12 */
509 SUBKEY_R(15) = subR[14] ^ tr; 521 SUBKEY_R(15) = subR[14] ^ tr;
510 SUBKEY_L(16) = subL[16]; /* FL(kl3) */ 522 SUBKEY_L(16) = subL[16]; /* FL(kl3) */
@@ -513,7 +525,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
513 SUBKEY_R(17) = subR[17]; 525 SUBKEY_R(17) = subR[17];
514 tl = subL[15] ^ (subR[15] & ~subR[17]); 526 tl = subL[15] ^ (subR[15] & ~subR[17]);
515 dw = tl & subL[17], /* FLinv(kl4) */ 527 dw = tl & subL[17], /* FLinv(kl4) */
516 tr = subR[15] ^ rol32(dw, 1); 528 tr = subR[15] ^ ROL1(dw);
517 SUBKEY_L(18) = tl ^ subL[19]; /* round 13 */ 529 SUBKEY_L(18) = tl ^ subL[19]; /* round 13 */
518 SUBKEY_R(18) = tr ^ subR[19]; 530 SUBKEY_R(18) = tr ^ subR[19];
519 SUBKEY_L(19) = subL[18] ^ subL[20]; /* round 14 */ 531 SUBKEY_L(19) = subL[18] ^ subL[20]; /* round 14 */
@@ -532,7 +544,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
532 } else { 544 } else {
533 tl = subL[26] ^ (subR[26] & ~subR[24]); 545 tl = subL[26] ^ (subR[26] & ~subR[24]);
534 dw = tl & subL[24], /* FL(kl5) */ 546 dw = tl & subL[24], /* FL(kl5) */
535 tr = subR[26] ^ rol32(dw, 1); 547 tr = subR[26] ^ ROL1(dw);
536 SUBKEY_L(23) = subL[22] ^ tl; /* round 18 */ 548 SUBKEY_L(23) = subL[22] ^ tl; /* round 18 */
537 SUBKEY_R(23) = subR[22] ^ tr; 549 SUBKEY_R(23) = subR[22] ^ tr;
538 SUBKEY_L(24) = subL[24]; /* FL(kl5) */ 550 SUBKEY_L(24) = subL[24]; /* FL(kl5) */
@@ -541,7 +553,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
541 SUBKEY_R(25) = subR[25]; 553 SUBKEY_R(25) = subR[25];
542 tl = subL[23] ^ (subR[23] & ~subR[25]); 554 tl = subL[23] ^ (subR[23] & ~subR[25]);
543 dw = tl & subL[25], /* FLinv(kl6) */ 555 dw = tl & subL[25], /* FLinv(kl6) */
544 tr = subR[23] ^ rol32(dw, 1); 556 tr = subR[23] ^ ROL1(dw);
545 SUBKEY_L(26) = tl ^ subL[27]; /* round 19 */ 557 SUBKEY_L(26) = tl ^ subL[27]; /* round 19 */
546 SUBKEY_R(26) = tr ^ subR[27]; 558 SUBKEY_R(26) = tr ^ subR[27];
547 SUBKEY_L(27) = subL[26] ^ subL[28]; /* round 20 */ 559 SUBKEY_L(27) = subL[26] ^ subL[28]; /* round 20 */
@@ -561,17 +573,17 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
561 /* apply the inverse of the last half of P-function */ 573 /* apply the inverse of the last half of P-function */
562 i = 2; 574 i = 2;
563 do { 575 do {
564 dw = SUBKEY_L(i + 0) ^ SUBKEY_R(i + 0); dw = rol32(dw, 8);/* round 1 */ 576 dw = SUBKEY_L(i + 0) ^ SUBKEY_R(i + 0); dw = ROL8(dw);/* round 1 */
565 SUBKEY_R(i + 0) = SUBKEY_L(i + 0) ^ dw; SUBKEY_L(i + 0) = dw; 577 SUBKEY_R(i + 0) = SUBKEY_L(i + 0) ^ dw; SUBKEY_L(i + 0) = dw;
566 dw = SUBKEY_L(i + 1) ^ SUBKEY_R(i + 1); dw = rol32(dw, 8);/* round 2 */ 578 dw = SUBKEY_L(i + 1) ^ SUBKEY_R(i + 1); dw = ROL8(dw);/* round 2 */
567 SUBKEY_R(i + 1) = SUBKEY_L(i + 1) ^ dw; SUBKEY_L(i + 1) = dw; 579 SUBKEY_R(i + 1) = SUBKEY_L(i + 1) ^ dw; SUBKEY_L(i + 1) = dw;
568 dw = SUBKEY_L(i + 2) ^ SUBKEY_R(i + 2); dw = rol32(dw, 8);/* round 3 */ 580 dw = SUBKEY_L(i + 2) ^ SUBKEY_R(i + 2); dw = ROL8(dw);/* round 3 */
569 SUBKEY_R(i + 2) = SUBKEY_L(i + 2) ^ dw; SUBKEY_L(i + 2) = dw; 581 SUBKEY_R(i + 2) = SUBKEY_L(i + 2) ^ dw; SUBKEY_L(i + 2) = dw;
570 dw = SUBKEY_L(i + 3) ^ SUBKEY_R(i + 3); dw = rol32(dw, 8);/* round 4 */ 582 dw = SUBKEY_L(i + 3) ^ SUBKEY_R(i + 3); dw = ROL8(dw);/* round 4 */
571 SUBKEY_R(i + 3) = SUBKEY_L(i + 3) ^ dw; SUBKEY_L(i + 3) = dw; 583 SUBKEY_R(i + 3) = SUBKEY_L(i + 3) ^ dw; SUBKEY_L(i + 3) = dw;
572 dw = SUBKEY_L(i + 4) ^ SUBKEY_R(i + 4); dw = rol32(dw, 9);/* round 5 */ 584 dw = SUBKEY_L(i + 4) ^ SUBKEY_R(i + 4); dw = ROL8(dw);/* round 5 */
573 SUBKEY_R(i + 4) = SUBKEY_L(i + 4) ^ dw; SUBKEY_L(i + 4) = dw; 585 SUBKEY_R(i + 4) = SUBKEY_L(i + 4) ^ dw; SUBKEY_L(i + 4) = dw;
574 dw = SUBKEY_L(i + 5) ^ SUBKEY_R(i + 5); dw = rol32(dw, 8);/* round 6 */ 586 dw = SUBKEY_L(i + 5) ^ SUBKEY_R(i + 5); dw = ROL8(dw);/* round 6 */
575 SUBKEY_R(i + 5) = SUBKEY_L(i + 5) ^ dw; SUBKEY_L(i + 5) = dw; 587 SUBKEY_R(i + 5) = SUBKEY_L(i + 5) ^ dw; SUBKEY_L(i + 5) = dw;
576 i += 8; 588 i += 8;
577 } while (i < max); 589 } while (i < max);
@@ -587,10 +599,10 @@ static void camellia_setup128(const unsigned char *key, u32 *subkey)
587 /** 599 /**
588 * k == kll || klr || krl || krr (|| is concatenation) 600 * k == kll || klr || krl || krr (|| is concatenation)
589 */ 601 */
590 kll = get_unaligned_be32(key); 602 GETU32(kll, key );
591 klr = get_unaligned_be32(key + 4); 603 GETU32(klr, key + 4);
592 krl = get_unaligned_be32(key + 8); 604 GETU32(krl, key + 8);
593 krr = get_unaligned_be32(key + 12); 605 GETU32(krr, key + 12);
594 606
595 /* generate KL dependent subkeys */ 607 /* generate KL dependent subkeys */
596 /* kw1 */ 608 /* kw1 */
@@ -695,14 +707,14 @@ static void camellia_setup256(const unsigned char *key, u32 *subkey)
695 * key = (kll || klr || krl || krr || krll || krlr || krrl || krrr) 707 * key = (kll || klr || krl || krr || krll || krlr || krrl || krrr)
696 * (|| is concatenation) 708 * (|| is concatenation)
697 */ 709 */
698 kll = get_unaligned_be32(key); 710 GETU32(kll, key );
699 klr = get_unaligned_be32(key + 4); 711 GETU32(klr, key + 4);
700 krl = get_unaligned_be32(key + 8); 712 GETU32(krl, key + 8);
701 krr = get_unaligned_be32(key + 12); 713 GETU32(krr, key + 12);
702 krll = get_unaligned_be32(key + 16); 714 GETU32(krll, key + 16);
703 krlr = get_unaligned_be32(key + 20); 715 GETU32(krlr, key + 20);
704 krrl = get_unaligned_be32(key + 24); 716 GETU32(krrl, key + 24);
705 krrr = get_unaligned_be32(key + 28); 717 GETU32(krrr, key + 28);
706 718
707 /* generate KL dependent subkeys */ 719 /* generate KL dependent subkeys */
708 /* kw1 */ 720 /* kw1 */
@@ -858,13 +870,13 @@ static void camellia_setup192(const unsigned char *key, u32 *subkey)
858 t0 &= ll; \ 870 t0 &= ll; \
859 t2 |= rr; \ 871 t2 |= rr; \
860 rl ^= t2; \ 872 rl ^= t2; \
861 lr ^= rol32(t0, 1); \ 873 lr ^= ROL1(t0); \
862 t3 = krl; \ 874 t3 = krl; \
863 t1 = klr; \ 875 t1 = klr; \
864 t3 &= rl; \ 876 t3 &= rl; \
865 t1 |= lr; \ 877 t1 |= lr; \
866 ll ^= t1; \ 878 ll ^= t1; \
867 rr ^= rol32(t3, 1); \ 879 rr ^= ROL1(t3); \
868 } while(0) 880 } while(0)
869 881
870#define CAMELLIA_ROUNDSM(xl, xr, kl, kr, yl, yr, il, ir) \ 882#define CAMELLIA_ROUNDSM(xl, xr, kl, kr, yl, yr, il, ir) \
@@ -880,7 +892,7 @@ static void camellia_setup192(const unsigned char *key, u32 *subkey)
880 il ^= kl; \ 892 il ^= kl; \
881 ir ^= il ^ kr; \ 893 ir ^= il ^ kr; \
882 yl ^= ir; \ 894 yl ^= ir; \
883 yr ^= ror32(il, 8) ^ ir; \ 895 yr ^= ROR8(il) ^ ir; \
884 } while(0) 896 } while(0)
885 897
886/* max = 24: 128bit encrypt, max = 32: 256bit encrypt */ 898/* max = 24: 128bit encrypt, max = 32: 256bit encrypt */
diff --git a/drivers/accessibility/braille/braille_console.c b/drivers/accessibility/braille/braille_console.c
index 0a5f6b2114c..d672cfe7ca5 100644
--- a/drivers/accessibility/braille/braille_console.c
+++ b/drivers/accessibility/braille/braille_console.c
@@ -376,6 +376,8 @@ int braille_register_console(struct console *console, int index,
376 console->flags |= CON_ENABLED; 376 console->flags |= CON_ENABLED;
377 console->index = index; 377 console->index = index;
378 braille_co = console; 378 braille_co = console;
379 register_keyboard_notifier(&keyboard_notifier_block);
380 register_vt_notifier(&vt_notifier_block);
379 return 0; 381 return 0;
380} 382}
381 383
@@ -383,15 +385,8 @@ int braille_unregister_console(struct console *console)
383{ 385{
384 if (braille_co != console) 386 if (braille_co != console)
385 return -EINVAL; 387 return -EINVAL;
388 unregister_keyboard_notifier(&keyboard_notifier_block);
389 unregister_vt_notifier(&vt_notifier_block);
386 braille_co = NULL; 390 braille_co = NULL;
387 return 0; 391 return 0;
388} 392}
389
390static int __init braille_init(void)
391{
392 register_keyboard_notifier(&keyboard_notifier_block);
393 register_vt_notifier(&vt_notifier_block);
394 return 0;
395}
396
397console_initcall(braille_init);
diff --git a/drivers/acpi/dispatcher/dsobject.c b/drivers/acpi/dispatcher/dsobject.c
index 1022e38994c..0f280589921 100644
--- a/drivers/acpi/dispatcher/dsobject.c
+++ b/drivers/acpi/dispatcher/dsobject.c
@@ -496,7 +496,7 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state,
496 arg = arg->common.next; 496 arg = arg->common.next;
497 } 497 }
498 498
499 ACPI_ERROR((AE_INFO, 499 ACPI_WARNING((AE_INFO,
500 "Package List length (%X) larger than NumElements count (%X), truncated\n", 500 "Package List length (%X) larger than NumElements count (%X), truncated\n",
501 i, element_count)); 501 i, element_count));
502 } else if (i < element_count) { 502 } else if (i < element_count) {
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c
index 084109507c9..8dd3336efd7 100644
--- a/drivers/acpi/glue.c
+++ b/drivers/acpi/glue.c
@@ -165,8 +165,11 @@ static int acpi_bind_one(struct device *dev, acpi_handle handle)
165 "firmware_node"); 165 "firmware_node");
166 ret = sysfs_create_link(&acpi_dev->dev.kobj, &dev->kobj, 166 ret = sysfs_create_link(&acpi_dev->dev.kobj, &dev->kobj,
167 "physical_node"); 167 "physical_node");
168 if (acpi_dev->wakeup.flags.valid) 168 if (acpi_dev->wakeup.flags.valid) {
169 device_set_wakeup_capable(dev, true); 169 device_set_wakeup_capable(dev, true);
170 device_set_wakeup_enable(dev,
171 acpi_dev->wakeup.state.enabled);
172 }
170 } 173 }
171 174
172 return 0; 175 return 0;
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index d3f0a62efcc..ee68ac54c0d 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -138,7 +138,7 @@ static struct dmi_system_id __cpuinitdata processor_idle_dmi_table[] = {
138 { 138 {
139 set_no_mwait, "Extensa 5220", { 139 set_no_mwait, "Extensa 5220", {
140 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), 140 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"),
141 DMI_MATCH(DMI_SYS_VENDOR, "ACER"), 141 DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
142 DMI_MATCH(DMI_PRODUCT_VERSION, "0100"), 142 DMI_MATCH(DMI_PRODUCT_VERSION, "0100"),
143 DMI_MATCH(DMI_BOARD_NAME, "Columbia") }, NULL}, 143 DMI_MATCH(DMI_BOARD_NAME, "Columbia") }, NULL},
144 {}, 144 {},
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 80e32093e97..80c251ec6d2 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -71,7 +71,7 @@ static DEFINE_MUTEX(performance_mutex);
71 * 1 -> ignore _PPC totally -> forced by user through boot param 71 * 1 -> ignore _PPC totally -> forced by user through boot param
72 */ 72 */
73static int ignore_ppc = -1; 73static int ignore_ppc = -1;
74module_param(ignore_ppc, uint, 0644); 74module_param(ignore_ppc, int, 0644);
75MODULE_PARM_DESC(ignore_ppc, "If the frequency of your machine gets wrongly" \ 75MODULE_PARM_DESC(ignore_ppc, "If the frequency of your machine gets wrongly" \
76 "limited by BIOS, this should help"); 76 "limited by BIOS, this should help");
77 77
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
index bcf2c70fca8..a4e3767b8c6 100644
--- a/drivers/acpi/sbshc.c
+++ b/drivers/acpi/sbshc.c
@@ -107,6 +107,13 @@ static int wait_transaction_complete(struct acpi_smb_hc *hc, int timeout)
107 if (wait_event_timeout(hc->wait, smb_check_done(hc), 107 if (wait_event_timeout(hc->wait, smb_check_done(hc),
108 msecs_to_jiffies(timeout))) 108 msecs_to_jiffies(timeout)))
109 return 0; 109 return 0;
110 /*
111 * After the timeout happens, OS will try to check the status of SMbus.
112 * If the status is what OS expected, it will be regarded as the bogus
113 * timeout.
114 */
115 if (smb_check_done(hc))
116 return 0;
110 else 117 else
111 return -ETIME; 118 return -ETIME;
112} 119}
diff --git a/drivers/acpi/sleep/proc.c b/drivers/acpi/sleep/proc.c
index 4ebbba2b6b1..bf5b04de02d 100644
--- a/drivers/acpi/sleep/proc.c
+++ b/drivers/acpi/sleep/proc.c
@@ -377,6 +377,14 @@ acpi_system_wakeup_device_seq_show(struct seq_file *seq, void *offset)
377 return 0; 377 return 0;
378} 378}
379 379
380static void physical_device_enable_wakeup(struct acpi_device *adev)
381{
382 struct device *dev = acpi_get_physical_device(adev->handle);
383
384 if (dev && device_can_wakeup(dev))
385 device_set_wakeup_enable(dev, adev->wakeup.state.enabled);
386}
387
380static ssize_t 388static ssize_t
381acpi_system_write_wakeup_device(struct file *file, 389acpi_system_write_wakeup_device(struct file *file,
382 const char __user * buffer, 390 const char __user * buffer,
@@ -411,6 +419,7 @@ acpi_system_write_wakeup_device(struct file *file,
411 } 419 }
412 } 420 }
413 if (found_dev) { 421 if (found_dev) {
422 physical_device_enable_wakeup(found_dev);
414 list_for_each_safe(node, next, &acpi_wakeup_device_list) { 423 list_for_each_safe(node, next, &acpi_wakeup_device_list) {
415 struct acpi_device *dev = container_of(node, 424 struct acpi_device *dev = container_of(node,
416 struct 425 struct
@@ -428,6 +437,7 @@ acpi_system_write_wakeup_device(struct file *file,
428 dev->pnp.bus_id, found_dev->pnp.bus_id); 437 dev->pnp.bus_id, found_dev->pnp.bus_id);
429 dev->wakeup.state.enabled = 438 dev->wakeup.state.enabled =
430 found_dev->wakeup.state.enabled; 439 found_dev->wakeup.state.enabled;
440 physical_device_enable_wakeup(dev);
431 } 441 }
432 } 442 }
433 } 443 }
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index c3419182c9a..775c97a282b 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -300,6 +300,8 @@ int __init acpi_table_init(void)
300 300
301static int __init acpi_parse_apic_instance(char *str) 301static int __init acpi_parse_apic_instance(char *str)
302{ 302{
303 if (!str)
304 return -EINVAL;
303 305
304 acpi_apic_instance = simple_strtoul(str, NULL, 0); 306 acpi_apic_instance = simple_strtoul(str, NULL, 0);
305 307
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index ae8494944c4..11c8c19f0fb 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -448,8 +448,10 @@ config PATA_MARVELL
448 tristate "Marvell PATA support via legacy mode" 448 tristate "Marvell PATA support via legacy mode"
449 depends on PCI 449 depends on PCI
450 help 450 help
451 This option enables limited support for the Marvell 88SE6145 ATA 451 This option enables limited support for the Marvell 88SE61xx ATA
452 controller. 452 controllers. If you wish to use only the SATA ports then select
453 the AHCI driver alone. If you wish to the use the PATA port or
454 both SATA and PATA include this driver.
453 455
454 If unsure, say N. 456 If unsure, say N.
455 457
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index ef3e5522e1a..2e1a7cb2ed5 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -420,7 +420,7 @@ static const struct ata_port_info ahci_port_info[] = {
420 /* board_ahci_mv */ 420 /* board_ahci_mv */
421 { 421 {
422 AHCI_HFLAGS (AHCI_HFLAG_NO_NCQ | AHCI_HFLAG_NO_MSI | 422 AHCI_HFLAGS (AHCI_HFLAG_NO_NCQ | AHCI_HFLAG_NO_MSI |
423 AHCI_HFLAG_MV_PATA), 423 AHCI_HFLAG_MV_PATA | AHCI_HFLAG_NO_PMP),
424 .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | 424 .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
425 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA, 425 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA,
426 .pio_mask = 0x1f, /* pio0-4 */ 426 .pio_mask = 0x1f, /* pio0-4 */
@@ -486,6 +486,10 @@ static const struct pci_device_id ahci_pci_tbl[] = {
486 { PCI_VDEVICE(INTEL, 0x502b), board_ahci }, /* Tolapai */ 486 { PCI_VDEVICE(INTEL, 0x502b), board_ahci }, /* Tolapai */
487 { PCI_VDEVICE(INTEL, 0x3a05), board_ahci }, /* ICH10 */ 487 { PCI_VDEVICE(INTEL, 0x3a05), board_ahci }, /* ICH10 */
488 { PCI_VDEVICE(INTEL, 0x3a25), board_ahci }, /* ICH10 */ 488 { PCI_VDEVICE(INTEL, 0x3a25), board_ahci }, /* ICH10 */
489 { PCI_VDEVICE(INTEL, 0x3b24), board_ahci }, /* PCH RAID */
490 { PCI_VDEVICE(INTEL, 0x3b25), board_ahci }, /* PCH RAID */
491 { PCI_VDEVICE(INTEL, 0x3b2b), board_ahci }, /* PCH RAID */
492 { PCI_VDEVICE(INTEL, 0x3b2c), board_ahci }, /* PCH RAID */
489 493
490 /* JMicron 360/1/3/5/6, match class to avoid IDE function */ 494 /* JMicron 360/1/3/5/6, match class to avoid IDE function */
491 { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 495 { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
@@ -575,9 +579,9 @@ static const struct pci_device_id ahci_pci_tbl[] = {
575 { PCI_VDEVICE(NVIDIA, 0x0bc7), board_ahci }, /* MCP7B */ 579 { PCI_VDEVICE(NVIDIA, 0x0bc7), board_ahci }, /* MCP7B */
576 580
577 /* SiS */ 581 /* SiS */
578 { PCI_VDEVICE(SI, 0x1184), board_ahci_nopmp }, /* SiS 966 */ 582 { PCI_VDEVICE(SI, 0x1184), board_ahci }, /* SiS 966 */
579 { PCI_VDEVICE(SI, 0x1185), board_ahci_nopmp }, /* SiS 968 */ 583 { PCI_VDEVICE(SI, 0x1185), board_ahci }, /* SiS 968 */
580 { PCI_VDEVICE(SI, 0x0186), board_ahci_nopmp }, /* SiS 968 */ 584 { PCI_VDEVICE(SI, 0x0186), board_ahci }, /* SiS 968 */
581 585
582 /* Marvell */ 586 /* Marvell */
583 { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv }, /* 6145 */ 587 { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv }, /* 6145 */
@@ -608,6 +612,15 @@ module_param(ahci_em_messages, int, 0444);
608MODULE_PARM_DESC(ahci_em_messages, 612MODULE_PARM_DESC(ahci_em_messages,
609 "Set AHCI Enclosure Management Message type (0 = disabled, 1 = LED"); 613 "Set AHCI Enclosure Management Message type (0 = disabled, 1 = LED");
610 614
615#if defined(CONFIG_PATA_MARVELL) || defined(CONFIG_PATA_MARVELL_MODULE)
616static int marvell_enable;
617#else
618static int marvell_enable = 1;
619#endif
620module_param(marvell_enable, int, 0644);
621MODULE_PARM_DESC(marvell_enable, "Marvell SATA via AHCI (1 = enabled)");
622
623
611static inline int ahci_nr_ports(u32 cap) 624static inline int ahci_nr_ports(u32 cap)
612{ 625{
613 return (cap & 0x1f) + 1; 626 return (cap & 0x1f) + 1;
@@ -730,6 +743,8 @@ static void ahci_save_initial_config(struct pci_dev *pdev,
730 "MV_AHCI HACK: port_map %x -> %x\n", 743 "MV_AHCI HACK: port_map %x -> %x\n",
731 port_map, 744 port_map,
732 port_map & mv); 745 port_map & mv);
746 dev_printk(KERN_ERR, &pdev->dev,
747 "Disabling your PATA port. Use the boot option 'ahci.marvell_enable=0' to avoid this.\n");
733 748
734 port_map &= mv; 749 port_map &= mv;
735 } 750 }
@@ -2531,6 +2546,12 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2531 if (!printed_version++) 2546 if (!printed_version++)
2532 dev_printk(KERN_DEBUG, &pdev->dev, "version " DRV_VERSION "\n"); 2547 dev_printk(KERN_DEBUG, &pdev->dev, "version " DRV_VERSION "\n");
2533 2548
2549 /* The AHCI driver can only drive the SATA ports, the PATA driver
2550 can drive them all so if both drivers are selected make sure
2551 AHCI stays out of the way */
2552 if (pdev->vendor == PCI_VENDOR_ID_MARVELL && !marvell_enable)
2553 return -ENODEV;
2554
2534 /* acquire resources */ 2555 /* acquire resources */
2535 rc = pcim_enable_device(pdev); 2556 rc = pcim_enable_device(pdev);
2536 if (rc) 2557 if (rc)
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index c294121fd69..e6b4606e36b 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -275,6 +275,14 @@ static const struct pci_device_id piix_pci_tbl[] = {
275 { 0x8086, 0x3a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata }, 275 { 0x8086, 0x3a20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
276 /* SATA Controller IDE (ICH10) */ 276 /* SATA Controller IDE (ICH10) */
277 { 0x8086, 0x3a26, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, 277 { 0x8086, 0x3a26, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
278 /* SATA Controller IDE (PCH) */
279 { 0x8086, 0x3b20, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
280 /* SATA Controller IDE (PCH) */
281 { 0x8086, 0x3b26, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
282 /* SATA Controller IDE (PCH) */
283 { 0x8086, 0x3b2d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
284 /* SATA Controller IDE (PCH) */
285 { 0x8086, 0x3b2e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata },
278 286
279 { } /* terminate list */ 287 { } /* terminate list */
280}; 288};
@@ -1491,7 +1499,7 @@ static int __devinit piix_init_one(struct pci_dev *pdev,
1491 * off. 1499 * off.
1492 */ 1500 */
1493 if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == 0x2652) { 1501 if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == 0x2652) {
1494 int rc = piix_disable_ahci(pdev); 1502 rc = piix_disable_ahci(pdev);
1495 if (rc) 1503 if (rc)
1496 return rc; 1504 return rc;
1497 } 1505 }
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 5ba96c5052c..79e3a8e7a84 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -104,6 +104,7 @@ struct ata_force_param {
104 unsigned long xfer_mask; 104 unsigned long xfer_mask;
105 unsigned int horkage_on; 105 unsigned int horkage_on;
106 unsigned int horkage_off; 106 unsigned int horkage_off;
107 unsigned int lflags;
107}; 108};
108 109
109struct ata_force_ent { 110struct ata_force_ent {
@@ -196,22 +197,23 @@ void ata_force_cbl(struct ata_port *ap)
196} 197}
197 198
198/** 199/**
199 * ata_force_spd_limit - force SATA spd limit according to libata.force 200 * ata_force_link_limits - force link limits according to libata.force
200 * @link: ATA link of interest 201 * @link: ATA link of interest
201 * 202 *
202 * Force SATA spd limit according to libata.force and whine about 203 * Force link flags and SATA spd limit according to libata.force
203 * it. When only the port part is specified (e.g. 1:), the limit 204 * and whine about it. When only the port part is specified
204 * applies to all links connected to both the host link and all 205 * (e.g. 1:), the limit applies to all links connected to both
205 * fan-out ports connected via PMP. If the device part is 206 * the host link and all fan-out ports connected via PMP. If the
206 * specified as 0 (e.g. 1.00:), it specifies the first fan-out 207 * device part is specified as 0 (e.g. 1.00:), it specifies the
207 * link not the host link. Device number 15 always points to the 208 * first fan-out link not the host link. Device number 15 always
208 * host link whether PMP is attached or not. 209 * points to the host link whether PMP is attached or not.
209 * 210 *
210 * LOCKING: 211 * LOCKING:
211 * EH context. 212 * EH context.
212 */ 213 */
213static void ata_force_spd_limit(struct ata_link *link) 214static void ata_force_link_limits(struct ata_link *link)
214{ 215{
216 bool did_spd = false;
215 int linkno, i; 217 int linkno, i;
216 218
217 if (ata_is_host_link(link)) 219 if (ata_is_host_link(link))
@@ -228,13 +230,22 @@ static void ata_force_spd_limit(struct ata_link *link)
228 if (fe->device != -1 && fe->device != linkno) 230 if (fe->device != -1 && fe->device != linkno)
229 continue; 231 continue;
230 232
231 if (!fe->param.spd_limit) 233 /* only honor the first spd limit */
232 continue; 234 if (!did_spd && fe->param.spd_limit) {
235 link->hw_sata_spd_limit = (1 << fe->param.spd_limit) - 1;
236 ata_link_printk(link, KERN_NOTICE,
237 "FORCE: PHY spd limit set to %s\n",
238 fe->param.name);
239 did_spd = true;
240 }
233 241
234 link->hw_sata_spd_limit = (1 << fe->param.spd_limit) - 1; 242 /* let lflags stack */
235 ata_link_printk(link, KERN_NOTICE, 243 if (fe->param.lflags) {
236 "FORCE: PHY spd limit set to %s\n", fe->param.name); 244 link->flags |= fe->param.lflags;
237 return; 245 ata_link_printk(link, KERN_NOTICE,
246 "FORCE: link flag 0x%x forced -> 0x%x\n",
247 fe->param.lflags, link->flags);
248 }
238 } 249 }
239} 250}
240 251
@@ -3277,7 +3288,7 @@ int ata_do_set_mode(struct ata_link *link, struct ata_device **r_failed_dev)
3277 dev->dma_mode = ata_xfer_mask2mode(dma_mask); 3288 dev->dma_mode = ata_xfer_mask2mode(dma_mask);
3278 3289
3279 found = 1; 3290 found = 1;
3280 if (dev->dma_mode != 0xff) 3291 if (ata_dma_enabled(dev))
3281 used_dma = 1; 3292 used_dma = 1;
3282 } 3293 }
3283 if (!found) 3294 if (!found)
@@ -3302,7 +3313,7 @@ int ata_do_set_mode(struct ata_link *link, struct ata_device **r_failed_dev)
3302 3313
3303 /* step 3: set host DMA timings */ 3314 /* step 3: set host DMA timings */
3304 ata_link_for_each_dev(dev, link) { 3315 ata_link_for_each_dev(dev, link) {
3305 if (!ata_dev_enabled(dev) || dev->dma_mode == 0xff) 3316 if (!ata_dev_enabled(dev) || !ata_dma_enabled(dev))
3306 continue; 3317 continue;
3307 3318
3308 dev->xfer_mode = dev->dma_mode; 3319 dev->xfer_mode = dev->dma_mode;
@@ -5188,19 +5199,18 @@ void ata_link_init(struct ata_port *ap, struct ata_link *link, int pmp)
5188 */ 5199 */
5189int sata_link_init_spd(struct ata_link *link) 5200int sata_link_init_spd(struct ata_link *link)
5190{ 5201{
5191 u32 scontrol;
5192 u8 spd; 5202 u8 spd;
5193 int rc; 5203 int rc;
5194 5204
5195 rc = sata_scr_read(link, SCR_CONTROL, &scontrol); 5205 rc = sata_scr_read(link, SCR_CONTROL, &link->saved_scontrol);
5196 if (rc) 5206 if (rc)
5197 return rc; 5207 return rc;
5198 5208
5199 spd = (scontrol >> 4) & 0xf; 5209 spd = (link->saved_scontrol >> 4) & 0xf;
5200 if (spd) 5210 if (spd)
5201 link->hw_sata_spd_limit &= (1 << spd) - 1; 5211 link->hw_sata_spd_limit &= (1 << spd) - 1;
5202 5212
5203 ata_force_spd_limit(link); 5213 ata_force_link_limits(link);
5204 5214
5205 link->sata_spd_limit = link->hw_sata_spd_limit; 5215 link->sata_spd_limit = link->hw_sata_spd_limit;
5206 5216
@@ -5783,9 +5793,10 @@ static void ata_port_detach(struct ata_port *ap)
5783 ata_port_wait_eh(ap); 5793 ata_port_wait_eh(ap);
5784 5794
5785 /* EH is now guaranteed to see UNLOADING - EH context belongs 5795 /* EH is now guaranteed to see UNLOADING - EH context belongs
5786 * to us. Disable all existing devices. 5796 * to us. Restore SControl and disable all existing devices.
5787 */ 5797 */
5788 ata_port_for_each_link(link, ap) { 5798 __ata_port_for_each_link(link, ap) {
5799 sata_scr_write(link, SCR_CONTROL, link->saved_scontrol);
5789 ata_link_for_each_dev(dev, link) 5800 ata_link_for_each_dev(dev, link)
5790 ata_dev_disable(dev); 5801 ata_dev_disable(dev);
5791 } 5802 }
@@ -5991,6 +6002,9 @@ static int __init ata_parse_force_one(char **cur,
5991 { "udma133", .xfer_mask = 1 << (ATA_SHIFT_UDMA + 6) }, 6002 { "udma133", .xfer_mask = 1 << (ATA_SHIFT_UDMA + 6) },
5992 { "udma/133", .xfer_mask = 1 << (ATA_SHIFT_UDMA + 6) }, 6003 { "udma/133", .xfer_mask = 1 << (ATA_SHIFT_UDMA + 6) },
5993 { "udma7", .xfer_mask = 1 << (ATA_SHIFT_UDMA + 7) }, 6004 { "udma7", .xfer_mask = 1 << (ATA_SHIFT_UDMA + 7) },
6005 { "nohrst", .lflags = ATA_LFLAG_NO_HRST },
6006 { "nosrst", .lflags = ATA_LFLAG_NO_SRST },
6007 { "norst", .lflags = ATA_LFLAG_NO_HRST | ATA_LFLAG_NO_SRST },
5994 }; 6008 };
5995 char *start = *cur, *p = *cur; 6009 char *start = *cur, *p = *cur;
5996 char *id, *val, *endp; 6010 char *id, *val, *endp;
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index 58bdc538d22..c1db2f234d2 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -2040,7 +2040,7 @@ static void ata_eh_link_report(struct ata_link *link)
2040 } 2040 }
2041 2041
2042 if (ehc->i.serror) 2042 if (ehc->i.serror)
2043 ata_port_printk(ap, KERN_ERR, 2043 ata_link_printk(link, KERN_ERR,
2044 "SError: { %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s}\n", 2044 "SError: { %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s}\n",
2045 ehc->i.serror & SERR_DATA_RECOVERED ? "RecovData " : "", 2045 ehc->i.serror & SERR_DATA_RECOVERED ? "RecovData " : "",
2046 ehc->i.serror & SERR_COMM_RECOVERED ? "RecovComm " : "", 2046 ehc->i.serror & SERR_COMM_RECOVERED ? "RecovComm " : "",
@@ -2171,18 +2171,12 @@ static int ata_do_reset(struct ata_link *link, ata_reset_fn_t reset,
2171} 2171}
2172 2172
2173static int ata_eh_followup_srst_needed(struct ata_link *link, 2173static int ata_eh_followup_srst_needed(struct ata_link *link,
2174 int rc, int classify, 2174 int rc, const unsigned int *classes)
2175 const unsigned int *classes)
2176{ 2175{
2177 if ((link->flags & ATA_LFLAG_NO_SRST) || ata_link_offline(link)) 2176 if ((link->flags & ATA_LFLAG_NO_SRST) || ata_link_offline(link))
2178 return 0; 2177 return 0;
2179 if (rc == -EAGAIN) { 2178 if (rc == -EAGAIN)
2180 if (classify) 2179 return 1;
2181 return 1;
2182 rc = 0;
2183 }
2184 if (rc != 0)
2185 return 0;
2186 if (sata_pmp_supported(link->ap) && ata_is_host_link(link)) 2180 if (sata_pmp_supported(link->ap) && ata_is_host_link(link))
2187 return 1; 2181 return 1;
2188 return 0; 2182 return 0;
@@ -2210,6 +2204,10 @@ int ata_eh_reset(struct ata_link *link, int classify,
2210 */ 2204 */
2211 while (ata_eh_reset_timeouts[max_tries] != ULONG_MAX) 2205 while (ata_eh_reset_timeouts[max_tries] != ULONG_MAX)
2212 max_tries++; 2206 max_tries++;
2207 if (link->flags & ATA_LFLAG_NO_HRST)
2208 hardreset = NULL;
2209 if (link->flags & ATA_LFLAG_NO_SRST)
2210 softreset = NULL;
2213 2211
2214 now = jiffies; 2212 now = jiffies;
2215 deadline = ata_deadline(ehc->last_reset, ATA_EH_RESET_COOL_DOWN); 2213 deadline = ata_deadline(ehc->last_reset, ATA_EH_RESET_COOL_DOWN);
@@ -2247,10 +2245,10 @@ int ata_eh_reset(struct ata_link *link, int classify,
2247 ehc->i.action &= ~ATA_EH_RESET; 2245 ehc->i.action &= ~ATA_EH_RESET;
2248 if (hardreset) { 2246 if (hardreset) {
2249 reset = hardreset; 2247 reset = hardreset;
2250 ehc->i.action = ATA_EH_HARDRESET; 2248 ehc->i.action |= ATA_EH_HARDRESET;
2251 } else if (softreset) { 2249 } else if (softreset) {
2252 reset = softreset; 2250 reset = softreset;
2253 ehc->i.action = ATA_EH_SOFTRESET; 2251 ehc->i.action |= ATA_EH_SOFTRESET;
2254 } 2252 }
2255 2253
2256 if (prereset) { 2254 if (prereset) {
@@ -2305,9 +2303,11 @@ int ata_eh_reset(struct ata_link *link, int classify,
2305 ehc->i.flags |= ATA_EHI_DID_SOFTRESET; 2303 ehc->i.flags |= ATA_EHI_DID_SOFTRESET;
2306 2304
2307 rc = ata_do_reset(link, reset, classes, deadline); 2305 rc = ata_do_reset(link, reset, classes, deadline);
2306 if (rc && rc != -EAGAIN)
2307 goto fail;
2308 2308
2309 if (reset == hardreset && 2309 if (reset == hardreset &&
2310 ata_eh_followup_srst_needed(link, rc, classify, classes)) { 2310 ata_eh_followup_srst_needed(link, rc, classes)) {
2311 /* okay, let's do follow-up softreset */ 2311 /* okay, let's do follow-up softreset */
2312 reset = softreset; 2312 reset = softreset;
2313 2313
@@ -2322,10 +2322,6 @@ int ata_eh_reset(struct ata_link *link, int classify,
2322 ata_eh_about_to_do(link, NULL, ATA_EH_RESET); 2322 ata_eh_about_to_do(link, NULL, ATA_EH_RESET);
2323 rc = ata_do_reset(link, reset, classes, deadline); 2323 rc = ata_do_reset(link, reset, classes, deadline);
2324 } 2324 }
2325
2326 /* -EAGAIN can happen if we skipped followup SRST */
2327 if (rc && rc != -EAGAIN)
2328 goto fail;
2329 } else { 2325 } else {
2330 if (verbose) 2326 if (verbose)
2331 ata_link_printk(link, KERN_INFO, "no reset method " 2327 ata_link_printk(link, KERN_INFO, "no reset method "
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 304fdc6f1dc..2a4c516894f 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -1315,11 +1315,6 @@ fsm_start:
1315 break; 1315 break;
1316 1316
1317 case HSM_ST_ERR: 1317 case HSM_ST_ERR:
1318 /* make sure qc->err_mask is available to
1319 * know what's wrong and recover
1320 */
1321 WARN_ON(!(qc->err_mask & (AC_ERR_DEV | AC_ERR_HSM)));
1322
1323 ap->hsm_task_state = HSM_ST_IDLE; 1318 ap->hsm_task_state = HSM_ST_IDLE;
1324 1319
1325 /* complete taskfile transaction */ 1320 /* complete taskfile transaction */
diff --git a/drivers/ata/pata_acpi.c b/drivers/ata/pata_acpi.c
index fbe60571155..eb919c16a03 100644
--- a/drivers/ata/pata_acpi.c
+++ b/drivers/ata/pata_acpi.c
@@ -181,7 +181,7 @@ static unsigned int pacpi_qc_issue(struct ata_queued_cmd *qc)
181 181
182 if (adev != acpi->last) { 182 if (adev != acpi->last) {
183 pacpi_set_piomode(ap, adev); 183 pacpi_set_piomode(ap, adev);
184 if (adev->dma_mode) 184 if (ata_dma_enabled(adev))
185 pacpi_set_dmamode(ap, adev); 185 pacpi_set_dmamode(ap, adev);
186 acpi->last = adev; 186 acpi->last = adev;
187 } 187 }
diff --git a/drivers/ata/pata_atiixp.c b/drivers/ata/pata_atiixp.c
index d7de7baf58a..e8a0d99d735 100644
--- a/drivers/ata/pata_atiixp.c
+++ b/drivers/ata/pata_atiixp.c
@@ -183,7 +183,7 @@ static void atiixp_bmdma_start(struct ata_queued_cmd *qc)
183 u16 tmp16; 183 u16 tmp16;
184 184
185 pci_read_config_word(pdev, ATIIXP_IDE_UDMA_CONTROL, &tmp16); 185 pci_read_config_word(pdev, ATIIXP_IDE_UDMA_CONTROL, &tmp16);
186 if (adev->dma_mode >= XFER_UDMA_0) 186 if (ata_using_udma(adev))
187 tmp16 |= (1 << dn); 187 tmp16 |= (1 << dn);
188 else 188 else
189 tmp16 &= ~(1 << dn); 189 tmp16 &= ~(1 << dn);
diff --git a/drivers/ata/pata_cs5530.c b/drivers/ata/pata_cs5530.c
index 744beebaaf4..0c4b271a9d5 100644
--- a/drivers/ata/pata_cs5530.c
+++ b/drivers/ata/pata_cs5530.c
@@ -149,10 +149,10 @@ static unsigned int cs5530_qc_issue(struct ata_queued_cmd *qc)
149 struct ata_device *prev = ap->private_data; 149 struct ata_device *prev = ap->private_data;
150 150
151 /* See if the DMA settings could be wrong */ 151 /* See if the DMA settings could be wrong */
152 if (adev->dma_mode != 0 && adev != prev && prev != NULL) { 152 if (ata_dma_enabled(adev) && adev != prev && prev != NULL) {
153 /* Maybe, but do the channels match MWDMA/UDMA ? */ 153 /* Maybe, but do the channels match MWDMA/UDMA ? */
154 if ((adev->dma_mode >= XFER_UDMA_0 && prev->dma_mode < XFER_UDMA_0) || 154 if ((ata_using_udma(adev) && !ata_using_udma(prev)) ||
155 (adev->dma_mode < XFER_UDMA_0 && prev->dma_mode >= XFER_UDMA_0)) 155 (ata_using_udma(prev) && !ata_using_udma(adev)))
156 /* Switch the mode bits */ 156 /* Switch the mode bits */
157 cs5530_set_dmamode(ap, adev); 157 cs5530_set_dmamode(ap, adev);
158 } 158 }
diff --git a/drivers/ata/pata_it821x.c b/drivers/ata/pata_it821x.c
index 27843c70eb9..0221c9a4676 100644
--- a/drivers/ata/pata_it821x.c
+++ b/drivers/ata/pata_it821x.c
@@ -606,7 +606,7 @@ static void it821x_display_disk(int n, u8 *buf)
606{ 606{
607 unsigned char id[41]; 607 unsigned char id[41];
608 int mode = 0; 608 int mode = 0;
609 char *mtype; 609 char *mtype = "";
610 char mbuf[8]; 610 char mbuf[8];
611 char *cbl = "(40 wire cable)"; 611 char *cbl = "(40 wire cable)";
612 612
diff --git a/drivers/ata/pata_marvell.c b/drivers/ata/pata_marvell.c
index 24a011b2502..0d87eec8496 100644
--- a/drivers/ata/pata_marvell.c
+++ b/drivers/ata/pata_marvell.c
@@ -20,29 +20,30 @@
20#include <linux/ata.h> 20#include <linux/ata.h>
21 21
22#define DRV_NAME "pata_marvell" 22#define DRV_NAME "pata_marvell"
23#define DRV_VERSION "0.1.4" 23#define DRV_VERSION "0.1.6"
24 24
25/** 25/**
26 * marvell_pre_reset - check for 40/80 pin 26 * marvell_pata_active - check if PATA is active
27 * @link: link 27 * @pdev: PCI device
28 * @deadline: deadline jiffies for the operation
29 * 28 *
30 * Perform the PATA port setup we need. 29 * Returns 1 if the PATA port may be active. We know how to check this
30 * for the 6145 but not the other devices
31 */ 31 */
32 32
33static int marvell_pre_reset(struct ata_link *link, unsigned long deadline) 33static int marvell_pata_active(struct pci_dev *pdev)
34{ 34{
35 struct ata_port *ap = link->ap; 35 int i;
36 struct pci_dev *pdev = to_pci_dev(ap->host->dev);
37 u32 devices; 36 u32 devices;
38 void __iomem *barp; 37 void __iomem *barp;
39 int i;
40 38
41 /* Check if our port is enabled */ 39 /* We don't yet know how to do this for other devices */
40 if (pdev->device != 0x6145)
41 return 1;
42 42
43 barp = pci_iomap(pdev, 5, 0x10); 43 barp = pci_iomap(pdev, 5, 0x10);
44 if (barp == NULL) 44 if (barp == NULL)
45 return -ENOMEM; 45 return -ENOMEM;
46
46 printk("BAR5:"); 47 printk("BAR5:");
47 for(i = 0; i <= 0x0F; i++) 48 for(i = 0; i <= 0x0F; i++)
48 printk("%02X:%02X ", i, ioread8(barp + i)); 49 printk("%02X:%02X ", i, ioread8(barp + i));
@@ -51,9 +52,27 @@ static int marvell_pre_reset(struct ata_link *link, unsigned long deadline)
51 devices = ioread32(barp + 0x0C); 52 devices = ioread32(barp + 0x0C);
52 pci_iounmap(pdev, barp); 53 pci_iounmap(pdev, barp);
53 54
54 if ((pdev->device == 0x6145) && (ap->port_no == 0) && 55 if (devices & 0x10)
55 (!(devices & 0x10))) /* PATA enable ? */ 56 return 1;
56 return -ENOENT; 57 return 0;
58}
59
60/**
61 * marvell_pre_reset - check for 40/80 pin
62 * @link: link
63 * @deadline: deadline jiffies for the operation
64 *
65 * Perform the PATA port setup we need.
66 */
67
68static int marvell_pre_reset(struct ata_link *link, unsigned long deadline)
69{
70 struct ata_port *ap = link->ap;
71 struct pci_dev *pdev = to_pci_dev(ap->host->dev);
72
73 if (pdev->device == 0x6145 && ap->port_no == 0 &&
74 !marvell_pata_active(pdev)) /* PATA enable ? */
75 return -ENOENT;
57 76
58 return ata_sff_prereset(link, deadline); 77 return ata_sff_prereset(link, deadline);
59} 78}
@@ -128,6 +147,12 @@ static int marvell_init_one (struct pci_dev *pdev, const struct pci_device_id *i
128 if (pdev->device == 0x6101) 147 if (pdev->device == 0x6101)
129 ppi[1] = &ata_dummy_port_info; 148 ppi[1] = &ata_dummy_port_info;
130 149
150#if defined(CONFIG_AHCI) || defined(CONFIG_AHCI_MODULE)
151 if (!marvell_pata_active(pdev)) {
152 printk(KERN_INFO DRV_NAME ": PATA port not active, deferring to AHCI driver.\n");
153 return -ENODEV;
154 }
155#endif
131 return ata_pci_sff_init_one(pdev, ppi, &marvell_sht, NULL); 156 return ata_pci_sff_init_one(pdev, ppi, &marvell_sht, NULL);
132} 157}
133 158
diff --git a/drivers/ata/pata_oldpiix.c b/drivers/ata/pata_oldpiix.c
index e678af383d1..df64f244300 100644
--- a/drivers/ata/pata_oldpiix.c
+++ b/drivers/ata/pata_oldpiix.c
@@ -198,7 +198,7 @@ static unsigned int oldpiix_qc_issue(struct ata_queued_cmd *qc)
198 198
199 if (adev != ap->private_data) { 199 if (adev != ap->private_data) {
200 oldpiix_set_piomode(ap, adev); 200 oldpiix_set_piomode(ap, adev);
201 if (adev->dma_mode) 201 if (ata_dma_enabled(adev))
202 oldpiix_set_dmamode(ap, adev); 202 oldpiix_set_dmamode(ap, adev);
203 } 203 }
204 return ata_sff_qc_issue(qc); 204 return ata_sff_qc_issue(qc);
diff --git a/drivers/ata/pata_sc1200.c b/drivers/ata/pata_sc1200.c
index cbab397e3db..0278fd2b8fb 100644
--- a/drivers/ata/pata_sc1200.c
+++ b/drivers/ata/pata_sc1200.c
@@ -167,10 +167,10 @@ static unsigned int sc1200_qc_issue(struct ata_queued_cmd *qc)
167 struct ata_device *prev = ap->private_data; 167 struct ata_device *prev = ap->private_data;
168 168
169 /* See if the DMA settings could be wrong */ 169 /* See if the DMA settings could be wrong */
170 if (adev->dma_mode != 0 && adev != prev && prev != NULL) { 170 if (ata_dma_enabled(adev) && adev != prev && prev != NULL) {
171 /* Maybe, but do the channels match MWDMA/UDMA ? */ 171 /* Maybe, but do the channels match MWDMA/UDMA ? */
172 if ((adev->dma_mode >= XFER_UDMA_0 && prev->dma_mode < XFER_UDMA_0) || 172 if ((ata_using_udma(adev) && !ata_using_udma(prev)) ||
173 (adev->dma_mode < XFER_UDMA_0 && prev->dma_mode >= XFER_UDMA_0)) 173 (ata_using_udma(prev) && !ata_using_udma(adev)))
174 /* Switch the mode bits */ 174 /* Switch the mode bits */
175 sc1200_set_dmamode(ap, adev); 175 sc1200_set_dmamode(ap, adev);
176 } 176 }
diff --git a/drivers/ata/pata_sil680.c b/drivers/ata/pata_sil680.c
index 720b8645f58..e970b227fbc 100644
--- a/drivers/ata/pata_sil680.c
+++ b/drivers/ata/pata_sil680.c
@@ -322,9 +322,6 @@ static int __devinit sil680_init_one(struct pci_dev *pdev,
322 /* Try to acquire MMIO resources and fallback to PIO if 322 /* Try to acquire MMIO resources and fallback to PIO if
323 * that fails 323 * that fails
324 */ 324 */
325 rc = pcim_enable_device(pdev);
326 if (rc)
327 return rc;
328 rc = pcim_iomap_regions(pdev, 1 << SIL680_MMIO_BAR, DRV_NAME); 325 rc = pcim_iomap_regions(pdev, 1 << SIL680_MMIO_BAR, DRV_NAME);
329 if (rc) 326 if (rc)
330 goto use_ioports; 327 goto use_ioports;
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c
index 57d951b11f2..8fdb2ce7321 100644
--- a/drivers/ata/pata_via.c
+++ b/drivers/ata/pata_via.c
@@ -324,62 +324,26 @@ static void via_set_dmamode(struct ata_port *ap, struct ata_device *adev)
324} 324}
325 325
326/** 326/**
327 * via_ata_sff_tf_load - send taskfile registers to host controller 327 * via_tf_load - send taskfile registers to host controller
328 * @ap: Port to which output is sent 328 * @ap: Port to which output is sent
329 * @tf: ATA taskfile register set 329 * @tf: ATA taskfile register set
330 * 330 *
331 * Outputs ATA taskfile to standard ATA host controller. 331 * Outputs ATA taskfile to standard ATA host controller.
332 * 332 *
333 * Note: This is to fix the internal bug of via chipsets, which 333 * Note: This is to fix the internal bug of via chipsets, which
334 * will reset the device register after changing the IEN bit on 334 * will reset the device register after changing the IEN bit on
335 * ctl register 335 * ctl register
336 */ 336 */
337static void via_ata_tf_load(struct ata_port *ap, const struct ata_taskfile *tf) 337static void via_tf_load(struct ata_port *ap, const struct ata_taskfile *tf)
338{ 338{
339 struct ata_ioports *ioaddr = &ap->ioaddr; 339 struct ata_taskfile tmp_tf;
340 unsigned int is_addr = tf->flags & ATA_TFLAG_ISADDR;
341
342 if (tf->ctl != ap->last_ctl) {
343 iowrite8(tf->ctl, ioaddr->ctl_addr);
344 iowrite8(tf->device, ioaddr->device_addr);
345 ap->last_ctl = tf->ctl;
346 ata_wait_idle(ap);
347 }
348
349 if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) {
350 iowrite8(tf->hob_feature, ioaddr->feature_addr);
351 iowrite8(tf->hob_nsect, ioaddr->nsect_addr);
352 iowrite8(tf->hob_lbal, ioaddr->lbal_addr);
353 iowrite8(tf->hob_lbam, ioaddr->lbam_addr);
354 iowrite8(tf->hob_lbah, ioaddr->lbah_addr);
355 VPRINTK("hob: feat 0x%X nsect 0x%X, lba 0x%X 0x%X 0x%X\n",
356 tf->hob_feature,
357 tf->hob_nsect,
358 tf->hob_lbal,
359 tf->hob_lbam,
360 tf->hob_lbah);
361 }
362 340
363 if (is_addr) { 341 if (ap->ctl != ap->last_ctl && !(tf->flags & ATA_TFLAG_DEVICE)) {
364 iowrite8(tf->feature, ioaddr->feature_addr); 342 tmp_tf = *tf;
365 iowrite8(tf->nsect, ioaddr->nsect_addr); 343 tmp_tf.flags |= ATA_TFLAG_DEVICE;
366 iowrite8(tf->lbal, ioaddr->lbal_addr); 344 tf = &tmp_tf;
367 iowrite8(tf->lbam, ioaddr->lbam_addr);
368 iowrite8(tf->lbah, ioaddr->lbah_addr);
369 VPRINTK("feat 0x%X nsect 0x%X lba 0x%X 0x%X 0x%X\n",
370 tf->feature,
371 tf->nsect,
372 tf->lbal,
373 tf->lbam,
374 tf->lbah);
375 } 345 }
376 346 ata_sff_tf_load(ap, tf);
377 if (tf->flags & ATA_TFLAG_DEVICE) {
378 iowrite8(tf->device, ioaddr->device_addr);
379 VPRINTK("device 0x%X\n", tf->device);
380 }
381
382 ata_wait_idle(ap);
383} 347}
384 348
385static struct scsi_host_template via_sht = { 349static struct scsi_host_template via_sht = {
@@ -392,13 +356,12 @@ static struct ata_port_operations via_port_ops = {
392 .set_piomode = via_set_piomode, 356 .set_piomode = via_set_piomode,
393 .set_dmamode = via_set_dmamode, 357 .set_dmamode = via_set_dmamode,
394 .prereset = via_pre_reset, 358 .prereset = via_pre_reset,
395 .sff_tf_load = via_ata_tf_load, 359 .sff_tf_load = via_tf_load,
396}; 360};
397 361
398static struct ata_port_operations via_port_ops_noirq = { 362static struct ata_port_operations via_port_ops_noirq = {
399 .inherits = &via_port_ops, 363 .inherits = &via_port_ops,
400 .sff_data_xfer = ata_sff_data_xfer_noirq, 364 .sff_data_xfer = ata_sff_data_xfer_noirq,
401 .sff_tf_load = via_ata_tf_load,
402}; 365};
403 366
404/** 367/**
diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
index 3ead02fe379..5032c32fa50 100644
--- a/drivers/ata/sata_inic162x.c
+++ b/drivers/ata/sata_inic162x.c
@@ -96,6 +96,7 @@ enum {
96 PORT_SCR = 0x20, 96 PORT_SCR = 0x20,
97 97
98 /* HOST_CTL bits */ 98 /* HOST_CTL bits */
99 HCTL_LEDEN = (1 << 3), /* enable LED operation */
99 HCTL_IRQOFF = (1 << 8), /* global IRQ off */ 100 HCTL_IRQOFF = (1 << 8), /* global IRQ off */
100 HCTL_FTHD0 = (1 << 10), /* fifo threshold 0 */ 101 HCTL_FTHD0 = (1 << 10), /* fifo threshold 0 */
101 HCTL_FTHD1 = (1 << 11), /* fifo threshold 1*/ 102 HCTL_FTHD1 = (1 << 11), /* fifo threshold 1*/
@@ -540,7 +541,7 @@ static unsigned int inic_qc_issue(struct ata_queued_cmd *qc)
540 void __iomem *port_base = inic_port_base(ap); 541 void __iomem *port_base = inic_port_base(ap);
541 542
542 /* fire up the ADMA engine */ 543 /* fire up the ADMA engine */
543 writew(HCTL_FTHD0, port_base + HOST_CTL); 544 writew(HCTL_FTHD0 | HCTL_LEDEN, port_base + HOST_CTL);
544 writew(IDMA_CTL_GO, port_base + PORT_IDMA_CTL); 545 writew(IDMA_CTL_GO, port_base + PORT_IDMA_CTL);
545 writeb(0, port_base + PORT_CPB_PTQFIFO); 546 writeb(0, port_base + PORT_CPB_PTQFIFO);
546 547
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index ad169ffbc4c..c815f8ecf6e 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -667,7 +667,8 @@ static const struct pci_device_id mv_pci_tbl[] = {
667 { PCI_VDEVICE(MARVELL, 0x5041), chip_504x }, 667 { PCI_VDEVICE(MARVELL, 0x5041), chip_504x },
668 { PCI_VDEVICE(MARVELL, 0x5080), chip_5080 }, 668 { PCI_VDEVICE(MARVELL, 0x5080), chip_5080 },
669 { PCI_VDEVICE(MARVELL, 0x5081), chip_508x }, 669 { PCI_VDEVICE(MARVELL, 0x5081), chip_508x },
670 /* RocketRAID 1740/174x have different identifiers */ 670 /* RocketRAID 1720/174x have different identifiers */
671 { PCI_VDEVICE(TTI, 0x1720), chip_6042 },
671 { PCI_VDEVICE(TTI, 0x1740), chip_508x }, 672 { PCI_VDEVICE(TTI, 0x1740), chip_508x },
672 { PCI_VDEVICE(TTI, 0x1742), chip_508x }, 673 { PCI_VDEVICE(TTI, 0x1742), chip_508x },
673 674
@@ -1134,30 +1135,16 @@ static int mv_qc_defer(struct ata_queued_cmd *qc)
1134 if (ap->nr_active_links == 0) 1135 if (ap->nr_active_links == 0)
1135 return 0; 1136 return 0;
1136 1137
1137 if (pp->pp_flags & MV_PP_FLAG_EDMA_EN) { 1138 /*
1138 /* 1139 * The port is operating in host queuing mode (EDMA) with NCQ
1139 * The port is operating in host queuing mode (EDMA). 1140 * enabled, allow multiple NCQ commands. EDMA also allows
1140 * It can accomodate a new qc if the qc protocol 1141 * queueing multiple DMA commands but libata core currently
1141 * is compatible with the current host queue mode. 1142 * doesn't allow it.
1142 */ 1143 */
1143 if (pp->pp_flags & MV_PP_FLAG_NCQ_EN) { 1144 if ((pp->pp_flags & MV_PP_FLAG_EDMA_EN) &&
1144 /* 1145 (pp->pp_flags & MV_PP_FLAG_NCQ_EN) && ata_is_ncq(qc->tf.protocol))
1145 * The host queue (EDMA) is in NCQ mode. 1146 return 0;
1146 * If the new qc is also an NCQ command, 1147
1147 * then allow the new qc.
1148 */
1149 if (qc->tf.protocol == ATA_PROT_NCQ)
1150 return 0;
1151 } else {
1152 /*
1153 * The host queue (EDMA) is in non-NCQ, DMA mode.
1154 * If the new qc is also a non-NCQ, DMA command,
1155 * then allow the new qc.
1156 */
1157 if (qc->tf.protocol == ATA_PROT_DMA)
1158 return 0;
1159 }
1160 }
1161 return ATA_DEFER_PORT; 1148 return ATA_DEFER_PORT;
1162} 1149}
1163 1150
@@ -3036,7 +3023,8 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx)
3036 break; 3023 break;
3037 case chip_soc: 3024 case chip_soc:
3038 hpriv->ops = &mv_soc_ops; 3025 hpriv->ops = &mv_soc_ops;
3039 hp_flags |= MV_HP_FLAG_SOC | MV_HP_ERRATA_60X1C0; 3026 hp_flags |= MV_HP_FLAG_SOC | MV_HP_GEN_IIE |
3027 MV_HP_ERRATA_60X1C0;
3040 break; 3028 break;
3041 3029
3042 default: 3030 default:
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c
index 858f70610ed..14601dc05e4 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -405,28 +405,45 @@ static struct scsi_host_template nv_swncq_sht = {
405 .slave_configure = nv_swncq_slave_config, 405 .slave_configure = nv_swncq_slave_config,
406}; 406};
407 407
408static struct ata_port_operations nv_generic_ops = { 408/* OSDL bz3352 reports that some nv controllers can't determine device
409 * signature reliably and nv_hardreset is implemented to work around
410 * the problem. This was reported on nf3 and it's unclear whether any
411 * other controllers are affected. However, the workaround has been
412 * applied to all variants and there isn't much to gain by trying to
413 * find out exactly which ones are affected at this point especially
414 * because NV has moved over to ahci for newer controllers.
415 */
416static struct ata_port_operations nv_common_ops = {
409 .inherits = &ata_bmdma_port_ops, 417 .inherits = &ata_bmdma_port_ops,
410 .hardreset = nv_hardreset, 418 .hardreset = nv_hardreset,
411 .scr_read = nv_scr_read, 419 .scr_read = nv_scr_read,
412 .scr_write = nv_scr_write, 420 .scr_write = nv_scr_write,
413}; 421};
414 422
423/* OSDL bz11195 reports that link doesn't come online after hardreset
424 * on generic nv's and there have been several other similar reports
425 * on linux-ide. Disable hardreset for generic nv's.
426 */
427static struct ata_port_operations nv_generic_ops = {
428 .inherits = &nv_common_ops,
429 .hardreset = ATA_OP_NULL,
430};
431
415static struct ata_port_operations nv_nf2_ops = { 432static struct ata_port_operations nv_nf2_ops = {
416 .inherits = &nv_generic_ops, 433 .inherits = &nv_common_ops,
417 .freeze = nv_nf2_freeze, 434 .freeze = nv_nf2_freeze,
418 .thaw = nv_nf2_thaw, 435 .thaw = nv_nf2_thaw,
419}; 436};
420 437
421static struct ata_port_operations nv_ck804_ops = { 438static struct ata_port_operations nv_ck804_ops = {
422 .inherits = &nv_generic_ops, 439 .inherits = &nv_common_ops,
423 .freeze = nv_ck804_freeze, 440 .freeze = nv_ck804_freeze,
424 .thaw = nv_ck804_thaw, 441 .thaw = nv_ck804_thaw,
425 .host_stop = nv_ck804_host_stop, 442 .host_stop = nv_ck804_host_stop,
426}; 443};
427 444
428static struct ata_port_operations nv_adma_ops = { 445static struct ata_port_operations nv_adma_ops = {
429 .inherits = &nv_generic_ops, 446 .inherits = &nv_common_ops,
430 447
431 .check_atapi_dma = nv_adma_check_atapi_dma, 448 .check_atapi_dma = nv_adma_check_atapi_dma,
432 .sff_tf_read = nv_adma_tf_read, 449 .sff_tf_read = nv_adma_tf_read,
@@ -450,7 +467,7 @@ static struct ata_port_operations nv_adma_ops = {
450}; 467};
451 468
452static struct ata_port_operations nv_swncq_ops = { 469static struct ata_port_operations nv_swncq_ops = {
453 .inherits = &nv_generic_ops, 470 .inherits = &nv_common_ops,
454 471
455 .qc_defer = ata_std_qc_defer, 472 .qc_defer = ata_std_qc_defer,
456 .qc_prep = nv_swncq_qc_prep, 473 .qc_prep = nv_swncq_qc_prep,
diff --git a/drivers/atm/adummy.c b/drivers/atm/adummy.c
index 2ebd07f2ef8..5effec6f545 100644
--- a/drivers/atm/adummy.c
+++ b/drivers/atm/adummy.c
@@ -3,7 +3,6 @@
3 */ 3 */
4 4
5#include <linux/module.h> 5#include <linux/module.h>
6#include <linux/version.h>
7#include <linux/kernel.h> 6#include <linux/kernel.h>
8#include <linux/skbuff.h> 7#include <linux/skbuff.h>
9#include <linux/errno.h> 8#include <linux/errno.h>
diff --git a/drivers/base/class.c b/drivers/base/class.c
index 5667c2f02c5..cc5e28c8885 100644
--- a/drivers/base/class.c
+++ b/drivers/base/class.c
@@ -295,6 +295,12 @@ int class_for_each_device(struct class *class, struct device *start,
295 295
296 if (!class) 296 if (!class)
297 return -EINVAL; 297 return -EINVAL;
298 if (!class->p) {
299 WARN(1, "%s called for class '%s' before it was initialized",
300 __func__, class->name);
301 return -EINVAL;
302 }
303
298 mutex_lock(&class->p->class_mutex); 304 mutex_lock(&class->p->class_mutex);
299 list_for_each_entry(dev, &class->p->class_devices, node) { 305 list_for_each_entry(dev, &class->p->class_devices, node) {
300 if (start) { 306 if (start) {
@@ -344,6 +350,11 @@ struct device *class_find_device(struct class *class, struct device *start,
344 350
345 if (!class) 351 if (!class)
346 return NULL; 352 return NULL;
353 if (!class->p) {
354 WARN(1, "%s called for class '%s' before it was initialized",
355 __func__, class->name);
356 return NULL;
357 }
347 358
348 mutex_lock(&class->p->class_mutex); 359 mutex_lock(&class->p->class_mutex);
349 list_for_each_entry(dev, &class->p->class_devices, node) { 360 list_for_each_entry(dev, &class->p->class_devices, node) {
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 068aa1c9538..d021c98605b 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -53,7 +53,7 @@ static inline int device_is_not_partition(struct device *dev)
53 * it is attached to. If it is not attached to a bus either, an empty 53 * it is attached to. If it is not attached to a bus either, an empty
54 * string will be returned. 54 * string will be returned.
55 */ 55 */
56const char *dev_driver_string(struct device *dev) 56const char *dev_driver_string(const struct device *dev)
57{ 57{
58 return dev->driver ? dev->driver->name : 58 return dev->driver ? dev->driver->name :
59 (dev->bus ? dev->bus->name : 59 (dev->bus ? dev->bus->name :
@@ -541,6 +541,7 @@ void device_initialize(struct device *dev)
541 spin_lock_init(&dev->devres_lock); 541 spin_lock_init(&dev->devres_lock);
542 INIT_LIST_HEAD(&dev->devres_head); 542 INIT_LIST_HEAD(&dev->devres_head);
543 device_init_wakeup(dev, 0); 543 device_init_wakeup(dev, 0);
544 device_pm_init(dev);
544 set_dev_node(dev, -1); 545 set_dev_node(dev, -1);
545} 546}
546 547
@@ -843,13 +844,19 @@ int device_add(struct device *dev)
843{ 844{
844 struct device *parent = NULL; 845 struct device *parent = NULL;
845 struct class_interface *class_intf; 846 struct class_interface *class_intf;
846 int error; 847 int error = -EINVAL;
847 848
848 dev = get_device(dev); 849 dev = get_device(dev);
849 if (!dev || !strlen(dev->bus_id)) { 850 if (!dev)
850 error = -EINVAL; 851 goto done;
851 goto Done; 852
852 } 853 /* Temporarily support init_name if it is set.
854 * It will override bus_id for now */
855 if (dev->init_name)
856 dev_set_name(dev, "%s", dev->init_name);
857
858 if (!strlen(dev->bus_id))
859 goto done;
853 860
854 pr_debug("device: '%s': %s\n", dev->bus_id, __func__); 861 pr_debug("device: '%s': %s\n", dev->bus_id, __func__);
855 862
@@ -897,9 +904,10 @@ int device_add(struct device *dev)
897 error = bus_add_device(dev); 904 error = bus_add_device(dev);
898 if (error) 905 if (error)
899 goto BusError; 906 goto BusError;
900 error = device_pm_add(dev); 907 error = dpm_sysfs_add(dev);
901 if (error) 908 if (error)
902 goto PMError; 909 goto DPMError;
910 device_pm_add(dev);
903 kobject_uevent(&dev->kobj, KOBJ_ADD); 911 kobject_uevent(&dev->kobj, KOBJ_ADD);
904 bus_attach_device(dev); 912 bus_attach_device(dev);
905 if (parent) 913 if (parent)
@@ -917,10 +925,10 @@ int device_add(struct device *dev)
917 class_intf->add_dev(dev, class_intf); 925 class_intf->add_dev(dev, class_intf);
918 mutex_unlock(&dev->class->p->class_mutex); 926 mutex_unlock(&dev->class->p->class_mutex);
919 } 927 }
920 Done: 928done:
921 put_device(dev); 929 put_device(dev);
922 return error; 930 return error;
923 PMError: 931 DPMError:
924 bus_remove_device(dev); 932 bus_remove_device(dev);
925 BusError: 933 BusError:
926 if (dev->bus) 934 if (dev->bus)
@@ -944,7 +952,7 @@ int device_add(struct device *dev)
944 cleanup_device_parent(dev); 952 cleanup_device_parent(dev);
945 if (parent) 953 if (parent)
946 put_device(parent); 954 put_device(parent);
947 goto Done; 955 goto done;
948} 956}
949 957
950/** 958/**
@@ -1007,6 +1015,7 @@ void device_del(struct device *dev)
1007 struct class_interface *class_intf; 1015 struct class_interface *class_intf;
1008 1016
1009 device_pm_remove(dev); 1017 device_pm_remove(dev);
1018 dpm_sysfs_remove(dev);
1010 if (parent) 1019 if (parent)
1011 klist_del(&dev->knode_parent); 1020 klist_del(&dev->knode_parent);
1012 if (MAJOR(dev->devt)) { 1021 if (MAJOR(dev->devt)) {
diff --git a/drivers/base/driver.c b/drivers/base/driver.c
index 2ef5acf4368..1e2bda780e4 100644
--- a/drivers/base/driver.c
+++ b/drivers/base/driver.c
@@ -16,9 +16,6 @@
16#include <linux/string.h> 16#include <linux/string.h>
17#include "base.h" 17#include "base.h"
18 18
19#define to_dev(node) container_of(node, struct device, driver_list)
20
21
22static struct device *next_device(struct klist_iter *i) 19static struct device *next_device(struct klist_iter *i)
23{ 20{
24 struct klist_node *n = klist_next(i); 21 struct klist_node *n = klist_next(i);
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index 3250c5257b7..273a944d404 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -67,20 +67,16 @@ void device_pm_unlock(void)
67 * device_pm_add - add a device to the list of active devices 67 * device_pm_add - add a device to the list of active devices
68 * @dev: Device to be added to the list 68 * @dev: Device to be added to the list
69 */ 69 */
70int device_pm_add(struct device *dev) 70void device_pm_add(struct device *dev)
71{ 71{
72 int error;
73
74 pr_debug("PM: Adding info for %s:%s\n", 72 pr_debug("PM: Adding info for %s:%s\n",
75 dev->bus ? dev->bus->name : "No Bus", 73 dev->bus ? dev->bus->name : "No Bus",
76 kobject_name(&dev->kobj)); 74 kobject_name(&dev->kobj));
77 mutex_lock(&dpm_list_mtx); 75 mutex_lock(&dpm_list_mtx);
78 if (dev->parent) { 76 if (dev->parent) {
79 if (dev->parent->power.status >= DPM_SUSPENDING) { 77 if (dev->parent->power.status >= DPM_SUSPENDING)
80 dev_warn(dev, "parent %s is sleeping, will not add\n", 78 dev_warn(dev, "parent %s should not be sleeping\n",
81 dev->parent->bus_id); 79 dev->parent->bus_id);
82 WARN_ON(true);
83 }
84 } else if (transition_started) { 80 } else if (transition_started) {
85 /* 81 /*
86 * We refuse to register parentless devices while a PM 82 * We refuse to register parentless devices while a PM
@@ -89,13 +85,9 @@ int device_pm_add(struct device *dev)
89 */ 85 */
90 WARN_ON(true); 86 WARN_ON(true);
91 } 87 }
92 error = dpm_sysfs_add(dev); 88
93 if (!error) { 89 list_add_tail(&dev->power.entry, &dpm_list);
94 dev->power.status = DPM_ON;
95 list_add_tail(&dev->power.entry, &dpm_list);
96 }
97 mutex_unlock(&dpm_list_mtx); 90 mutex_unlock(&dpm_list_mtx);
98 return error;
99} 91}
100 92
101/** 93/**
@@ -110,7 +102,6 @@ void device_pm_remove(struct device *dev)
110 dev->bus ? dev->bus->name : "No Bus", 102 dev->bus ? dev->bus->name : "No Bus",
111 kobject_name(&dev->kobj)); 103 kobject_name(&dev->kobj));
112 mutex_lock(&dpm_list_mtx); 104 mutex_lock(&dpm_list_mtx);
113 dpm_sysfs_remove(dev);
114 list_del_init(&dev->power.entry); 105 list_del_init(&dev->power.entry);
115 mutex_unlock(&dpm_list_mtx); 106 mutex_unlock(&dpm_list_mtx);
116} 107}
diff --git a/drivers/base/power/power.h b/drivers/base/power/power.h
index a3252c0e288..41f51fae042 100644
--- a/drivers/base/power/power.h
+++ b/drivers/base/power/power.h
@@ -1,3 +1,8 @@
1static inline void device_pm_init(struct device *dev)
2{
3 dev->power.status = DPM_ON;
4}
5
1#ifdef CONFIG_PM_SLEEP 6#ifdef CONFIG_PM_SLEEP
2 7
3/* 8/*
@@ -11,12 +16,12 @@ static inline struct device *to_device(struct list_head *entry)
11 return container_of(entry, struct device, power.entry); 16 return container_of(entry, struct device, power.entry);
12} 17}
13 18
14extern int device_pm_add(struct device *); 19extern void device_pm_add(struct device *);
15extern void device_pm_remove(struct device *); 20extern void device_pm_remove(struct device *);
16 21
17#else /* CONFIG_PM_SLEEP */ 22#else /* CONFIG_PM_SLEEP */
18 23
19static inline int device_pm_add(struct device *dev) { return 0; } 24static inline void device_pm_add(struct device *dev) {}
20static inline void device_pm_remove(struct device *dev) {} 25static inline void device_pm_remove(struct device *dev) {}
21 26
22#endif 27#endif
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index 158eed4d516..29b7a648cc6 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -49,7 +49,6 @@
49#include <linux/types.h> 49#include <linux/types.h>
50#include <linux/kernel.h> 50#include <linux/kernel.h>
51#include <linux/kthread.h> 51#include <linux/kthread.h>
52#include <linux/smp_lock.h>
53#include <linux/errno.h> 52#include <linux/errno.h>
54#include <linux/spinlock.h> 53#include <linux/spinlock.h>
55#include <linux/file.h> 54#include <linux/file.h>
@@ -2798,14 +2797,9 @@ out_mem:
2798 return ret; 2797 return ret;
2799} 2798}
2800 2799
2801static long pkt_ioctl(struct file *file, unsigned int cmd, unsigned long arg) 2800static int pkt_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
2802{ 2801{
2803 struct inode *inode = file->f_path.dentry->d_inode; 2802 struct pktcdvd_device *pd = inode->i_bdev->bd_disk->private_data;
2804 struct pktcdvd_device *pd;
2805 long ret;
2806
2807 lock_kernel();
2808 pd = inode->i_bdev->bd_disk->private_data;
2809 2803
2810 VPRINTK("pkt_ioctl: cmd %x, dev %d:%d\n", cmd, imajor(inode), iminor(inode)); 2804 VPRINTK("pkt_ioctl: cmd %x, dev %d:%d\n", cmd, imajor(inode), iminor(inode));
2811 2805
@@ -2818,8 +2812,7 @@ static long pkt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
2818 case CDROM_LAST_WRITTEN: 2812 case CDROM_LAST_WRITTEN:
2819 case CDROM_SEND_PACKET: 2813 case CDROM_SEND_PACKET:
2820 case SCSI_IOCTL_SEND_COMMAND: 2814 case SCSI_IOCTL_SEND_COMMAND:
2821 ret = blkdev_ioctl(pd->bdev->bd_inode, file, cmd, arg); 2815 return blkdev_ioctl(pd->bdev->bd_inode, file, cmd, arg);
2822 break;
2823 2816
2824 case CDROMEJECT: 2817 case CDROMEJECT:
2825 /* 2818 /*
@@ -2828,15 +2821,14 @@ static long pkt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
2828 */ 2821 */
2829 if (pd->refcnt == 1) 2822 if (pd->refcnt == 1)
2830 pkt_lock_door(pd, 0); 2823 pkt_lock_door(pd, 0);
2831 ret = blkdev_ioctl(pd->bdev->bd_inode, file, cmd, arg); 2824 return blkdev_ioctl(pd->bdev->bd_inode, file, cmd, arg);
2832 break;
2833 2825
2834 default: 2826 default:
2835 VPRINTK(DRIVER_NAME": Unknown ioctl for %s (%x)\n", pd->name, cmd); 2827 VPRINTK(DRIVER_NAME": Unknown ioctl for %s (%x)\n", pd->name, cmd);
2836 ret = -ENOTTY; 2828 return -ENOTTY;
2837 } 2829 }
2838 unlock_kernel(); 2830
2839 return ret; 2831 return 0;
2840} 2832}
2841 2833
2842static int pkt_media_changed(struct gendisk *disk) 2834static int pkt_media_changed(struct gendisk *disk)
@@ -2858,7 +2850,7 @@ static struct block_device_operations pktcdvd_ops = {
2858 .owner = THIS_MODULE, 2850 .owner = THIS_MODULE,
2859 .open = pkt_open, 2851 .open = pkt_open,
2860 .release = pkt_close, 2852 .release = pkt_close,
2861 .unlocked_ioctl = pkt_ioctl, 2853 .ioctl = pkt_ioctl,
2862 .media_changed = pkt_media_changed, 2854 .media_changed = pkt_media_changed,
2863}; 2855};
2864 2856
@@ -3023,8 +3015,7 @@ static void pkt_get_status(struct pkt_ctrl_command *ctrl_cmd)
3023 mutex_unlock(&ctl_mutex); 3015 mutex_unlock(&ctl_mutex);
3024} 3016}
3025 3017
3026static long pkt_ctl_ioctl(struct file *file, unsigned int cmd, 3018static int pkt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
3027 unsigned long arg)
3028{ 3019{
3029 void __user *argp = (void __user *)arg; 3020 void __user *argp = (void __user *)arg;
3030 struct pkt_ctrl_command ctrl_cmd; 3021 struct pkt_ctrl_command ctrl_cmd;
@@ -3041,22 +3032,16 @@ static long pkt_ctl_ioctl(struct file *file, unsigned int cmd,
3041 case PKT_CTRL_CMD_SETUP: 3032 case PKT_CTRL_CMD_SETUP:
3042 if (!capable(CAP_SYS_ADMIN)) 3033 if (!capable(CAP_SYS_ADMIN))
3043 return -EPERM; 3034 return -EPERM;
3044 lock_kernel();
3045 ret = pkt_setup_dev(new_decode_dev(ctrl_cmd.dev), &pkt_dev); 3035 ret = pkt_setup_dev(new_decode_dev(ctrl_cmd.dev), &pkt_dev);
3046 ctrl_cmd.pkt_dev = new_encode_dev(pkt_dev); 3036 ctrl_cmd.pkt_dev = new_encode_dev(pkt_dev);
3047 unlock_kernel();
3048 break; 3037 break;
3049 case PKT_CTRL_CMD_TEARDOWN: 3038 case PKT_CTRL_CMD_TEARDOWN:
3050 if (!capable(CAP_SYS_ADMIN)) 3039 if (!capable(CAP_SYS_ADMIN))
3051 return -EPERM; 3040 return -EPERM;
3052 lock_kernel();
3053 ret = pkt_remove_dev(new_decode_dev(ctrl_cmd.pkt_dev)); 3041 ret = pkt_remove_dev(new_decode_dev(ctrl_cmd.pkt_dev));
3054 unlock_kernel();
3055 break; 3042 break;
3056 case PKT_CTRL_CMD_STATUS: 3043 case PKT_CTRL_CMD_STATUS:
3057 lock_kernel();
3058 pkt_get_status(&ctrl_cmd); 3044 pkt_get_status(&ctrl_cmd);
3059 unlock_kernel();
3060 break; 3045 break;
3061 default: 3046 default:
3062 return -ENOTTY; 3047 return -ENOTTY;
@@ -3069,7 +3054,7 @@ static long pkt_ctl_ioctl(struct file *file, unsigned int cmd,
3069 3054
3070 3055
3071static const struct file_operations pkt_ctl_fops = { 3056static const struct file_operations pkt_ctl_fops = {
3072 .unlocked_ioctl = pkt_ctl_ioctl, 3057 .ioctl = pkt_ctl_ioctl,
3073 .owner = THIS_MODULE, 3058 .owner = THIS_MODULE,
3074}; 3059};
3075 3060
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 6a010681ecf..29ae99817c6 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -104,6 +104,9 @@ static struct usb_device_id blacklist_table[] = {
104 /* Broadcom BCM2046 */ 104 /* Broadcom BCM2046 */
105 { USB_DEVICE(0x0a5c, 0x2151), .driver_info = BTUSB_RESET }, 105 { USB_DEVICE(0x0a5c, 0x2151), .driver_info = BTUSB_RESET },
106 106
107 /* Apple MacBook Pro with Broadcom chip */
108 { USB_DEVICE(0x05ac, 0x820f), .driver_info = BTUSB_RESET },
109
107 /* IBM/Lenovo ThinkPad with Broadcom chip */ 110 /* IBM/Lenovo ThinkPad with Broadcom chip */
108 { USB_DEVICE(0x0a5c, 0x201e), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU }, 111 { USB_DEVICE(0x0a5c, 0x201e), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
109 { USB_DEVICE(0x0a5c, 0x2110), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU }, 112 { USB_DEVICE(0x0a5c, 0x2110), .driver_info = BTUSB_RESET | BTUSB_WRONG_SCO_MTU },
@@ -169,6 +172,7 @@ static struct usb_device_id blacklist_table[] = {
169struct btusb_data { 172struct btusb_data {
170 struct hci_dev *hdev; 173 struct hci_dev *hdev;
171 struct usb_device *udev; 174 struct usb_device *udev;
175 struct usb_interface *intf;
172 struct usb_interface *isoc; 176 struct usb_interface *isoc;
173 177
174 spinlock_t lock; 178 spinlock_t lock;
@@ -516,7 +520,7 @@ static int btusb_open(struct hci_dev *hdev)
516 520
517 err = btusb_submit_intr_urb(hdev); 521 err = btusb_submit_intr_urb(hdev);
518 if (err < 0) { 522 if (err < 0) {
519 clear_bit(BTUSB_INTR_RUNNING, &hdev->flags); 523 clear_bit(BTUSB_INTR_RUNNING, &data->flags);
520 clear_bit(HCI_RUNNING, &hdev->flags); 524 clear_bit(HCI_RUNNING, &hdev->flags);
521 } 525 }
522 526
@@ -532,8 +536,10 @@ static int btusb_close(struct hci_dev *hdev)
532 if (!test_and_clear_bit(HCI_RUNNING, &hdev->flags)) 536 if (!test_and_clear_bit(HCI_RUNNING, &hdev->flags))
533 return 0; 537 return 0;
534 538
539 cancel_work_sync(&data->work);
540
535 clear_bit(BTUSB_ISOC_RUNNING, &data->flags); 541 clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
536 usb_kill_anchored_urbs(&data->intr_anchor); 542 usb_kill_anchored_urbs(&data->isoc_anchor);
537 543
538 clear_bit(BTUSB_BULK_RUNNING, &data->flags); 544 clear_bit(BTUSB_BULK_RUNNING, &data->flags);
539 usb_kill_anchored_urbs(&data->bulk_anchor); 545 usb_kill_anchored_urbs(&data->bulk_anchor);
@@ -821,6 +827,7 @@ static int btusb_probe(struct usb_interface *intf,
821 } 827 }
822 828
823 data->udev = interface_to_usbdev(intf); 829 data->udev = interface_to_usbdev(intf);
830 data->intf = intf;
824 831
825 spin_lock_init(&data->lock); 832 spin_lock_init(&data->lock);
826 833
@@ -889,7 +896,7 @@ static int btusb_probe(struct usb_interface *intf,
889 896
890 if (data->isoc) { 897 if (data->isoc) {
891 err = usb_driver_claim_interface(&btusb_driver, 898 err = usb_driver_claim_interface(&btusb_driver,
892 data->isoc, NULL); 899 data->isoc, data);
893 if (err < 0) { 900 if (err < 0) {
894 hci_free_dev(hdev); 901 hci_free_dev(hdev);
895 kfree(data); 902 kfree(data);
@@ -921,13 +928,22 @@ static void btusb_disconnect(struct usb_interface *intf)
921 928
922 hdev = data->hdev; 929 hdev = data->hdev;
923 930
924 if (data->isoc) 931 __hci_dev_hold(hdev);
925 usb_driver_release_interface(&btusb_driver, data->isoc);
926 932
927 usb_set_intfdata(intf, NULL); 933 usb_set_intfdata(data->intf, NULL);
934
935 if (data->isoc)
936 usb_set_intfdata(data->isoc, NULL);
928 937
929 hci_unregister_dev(hdev); 938 hci_unregister_dev(hdev);
930 939
940 if (intf == data->isoc)
941 usb_driver_release_interface(&btusb_driver, data->intf);
942 else if (data->isoc)
943 usb_driver_release_interface(&btusb_driver, data->isoc);
944
945 __hci_dev_put(hdev);
946
931 hci_free_dev(hdev); 947 hci_free_dev(hdev);
932} 948}
933 949
diff --git a/drivers/char/random.c b/drivers/char/random.c
index 1838aa3d24f..7ce1ac4baa6 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -407,7 +407,7 @@ struct entropy_store {
407 /* read-write data: */ 407 /* read-write data: */
408 spinlock_t lock; 408 spinlock_t lock;
409 unsigned add_ptr; 409 unsigned add_ptr;
410 int entropy_count; 410 int entropy_count; /* Must at no time exceed ->POOLBITS! */
411 int input_rotate; 411 int input_rotate;
412}; 412};
413 413
@@ -520,6 +520,7 @@ static void mix_pool_bytes(struct entropy_store *r, const void *in, int bytes)
520static void credit_entropy_bits(struct entropy_store *r, int nbits) 520static void credit_entropy_bits(struct entropy_store *r, int nbits)
521{ 521{
522 unsigned long flags; 522 unsigned long flags;
523 int entropy_count;
523 524
524 if (!nbits) 525 if (!nbits)
525 return; 526 return;
@@ -527,20 +528,20 @@ static void credit_entropy_bits(struct entropy_store *r, int nbits)
527 spin_lock_irqsave(&r->lock, flags); 528 spin_lock_irqsave(&r->lock, flags);
528 529
529 DEBUG_ENT("added %d entropy credits to %s\n", nbits, r->name); 530 DEBUG_ENT("added %d entropy credits to %s\n", nbits, r->name);
530 r->entropy_count += nbits; 531 entropy_count = r->entropy_count;
531 if (r->entropy_count < 0) { 532 entropy_count += nbits;
533 if (entropy_count < 0) {
532 DEBUG_ENT("negative entropy/overflow\n"); 534 DEBUG_ENT("negative entropy/overflow\n");
533 r->entropy_count = 0; 535 entropy_count = 0;
534 } else if (r->entropy_count > r->poolinfo->POOLBITS) 536 } else if (entropy_count > r->poolinfo->POOLBITS)
535 r->entropy_count = r->poolinfo->POOLBITS; 537 entropy_count = r->poolinfo->POOLBITS;
538 r->entropy_count = entropy_count;
536 539
537 /* should we wake readers? */ 540 /* should we wake readers? */
538 if (r == &input_pool && 541 if (r == &input_pool && entropy_count >= random_read_wakeup_thresh) {
539 r->entropy_count >= random_read_wakeup_thresh) {
540 wake_up_interruptible(&random_read_wait); 542 wake_up_interruptible(&random_read_wait);
541 kill_fasync(&fasync, SIGIO, POLL_IN); 543 kill_fasync(&fasync, SIGIO, POLL_IN);
542 } 544 }
543
544 spin_unlock_irqrestore(&r->lock, flags); 545 spin_unlock_irqrestore(&r->lock, flags);
545} 546}
546 547
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c
index a27160ba21d..e4dce870954 100644
--- a/drivers/char/tty_io.c
+++ b/drivers/char/tty_io.c
@@ -695,13 +695,23 @@ struct tty_driver *tty_find_polling_driver(char *name, int *line)
695{ 695{
696 struct tty_driver *p, *res = NULL; 696 struct tty_driver *p, *res = NULL;
697 int tty_line = 0; 697 int tty_line = 0;
698 int len;
698 char *str; 699 char *str;
699 700
701 for (str = name; *str; str++)
702 if ((*str >= '0' && *str <= '9') || *str == ',')
703 break;
704 if (!*str)
705 return NULL;
706
707 len = str - name;
708 tty_line = simple_strtoul(str, &str, 10);
709
700 mutex_lock(&tty_mutex); 710 mutex_lock(&tty_mutex);
701 /* Search through the tty devices to look for a match */ 711 /* Search through the tty devices to look for a match */
702 list_for_each_entry(p, &tty_drivers, tty_drivers) { 712 list_for_each_entry(p, &tty_drivers, tty_drivers) {
703 str = name + strlen(p->name); 713 if (strncmp(name, p->name, len) != 0)
704 tty_line = simple_strtoul(str, &str, 10); 714 continue;
705 if (*str == ',') 715 if (*str == ',')
706 str++; 716 str++;
707 if (*str == '\0') 717 if (*str == '\0')
@@ -2498,7 +2508,7 @@ static int tiocgwinsz(struct tty_struct *tty, struct winsize __user *arg)
2498/** 2508/**
2499 * tty_do_resize - resize event 2509 * tty_do_resize - resize event
2500 * @tty: tty being resized 2510 * @tty: tty being resized
2501 * @real_tty: real tty (if using a pty/tty pair) 2511 * @real_tty: real tty (not the same as tty if using a pty/tty pair)
2502 * @rows: rows (character) 2512 * @rows: rows (character)
2503 * @cols: cols (character) 2513 * @cols: cols (character)
2504 * 2514 *
@@ -2512,7 +2522,8 @@ int tty_do_resize(struct tty_struct *tty, struct tty_struct *real_tty,
2512 struct pid *pgrp, *rpgrp; 2522 struct pid *pgrp, *rpgrp;
2513 unsigned long flags; 2523 unsigned long flags;
2514 2524
2515 mutex_lock(&tty->termios_mutex); 2525 /* For a PTY we need to lock the tty side */
2526 mutex_lock(&real_tty->termios_mutex);
2516 if (!memcmp(ws, &tty->winsize, sizeof(*ws))) 2527 if (!memcmp(ws, &tty->winsize, sizeof(*ws)))
2517 goto done; 2528 goto done;
2518 /* Get the PID values and reference them so we can 2529 /* Get the PID values and reference them so we can
@@ -2533,7 +2544,7 @@ int tty_do_resize(struct tty_struct *tty, struct tty_struct *real_tty,
2533 tty->winsize = *ws; 2544 tty->winsize = *ws;
2534 real_tty->winsize = *ws; 2545 real_tty->winsize = *ws;
2535done: 2546done:
2536 mutex_unlock(&tty->termios_mutex); 2547 mutex_unlock(&real_tty->termios_mutex);
2537 return 0; 2548 return 0;
2538} 2549}
2539 2550
diff --git a/drivers/char/tty_ioctl.c b/drivers/char/tty_ioctl.c
index ea9fc5d03b9..bf34e459742 100644
--- a/drivers/char/tty_ioctl.c
+++ b/drivers/char/tty_ioctl.c
@@ -937,12 +937,14 @@ int tty_mode_ioctl(struct tty_struct *tty, struct file *file,
937 return 0; 937 return 0;
938#endif 938#endif
939 case TIOCGSOFTCAR: 939 case TIOCGSOFTCAR:
940 return put_user(C_CLOCAL(tty) ? 1 : 0, 940 /* FIXME: for correctness we may need to take the termios
941 lock here - review */
942 return put_user(C_CLOCAL(real_tty) ? 1 : 0,
941 (int __user *)arg); 943 (int __user *)arg);
942 case TIOCSSOFTCAR: 944 case TIOCSSOFTCAR:
943 if (get_user(arg, (unsigned int __user *) arg)) 945 if (get_user(arg, (unsigned int __user *) arg))
944 return -EFAULT; 946 return -EFAULT;
945 return tty_change_softcar(tty, arg); 947 return tty_change_softcar(real_tty, arg);
946 default: 948 default:
947 return -ENOIOCTLCMD; 949 return -ENOIOCTLCMD;
948 } 950 }
diff --git a/drivers/char/xilinx_hwicap/buffer_icap.h b/drivers/char/xilinx_hwicap/buffer_icap.h
index c5b1840906b..8b0252bf06e 100644
--- a/drivers/char/xilinx_hwicap/buffer_icap.h
+++ b/drivers/char/xilinx_hwicap/buffer_icap.h
@@ -38,7 +38,6 @@
38 38
39#include <linux/types.h> 39#include <linux/types.h>
40#include <linux/cdev.h> 40#include <linux/cdev.h>
41#include <linux/version.h>
42#include <linux/platform_device.h> 41#include <linux/platform_device.h>
43 42
44#include <asm/io.h> 43#include <asm/io.h>
diff --git a/drivers/char/xilinx_hwicap/fifo_icap.h b/drivers/char/xilinx_hwicap/fifo_icap.h
index ffabd3ba2bd..62bda453c90 100644
--- a/drivers/char/xilinx_hwicap/fifo_icap.h
+++ b/drivers/char/xilinx_hwicap/fifo_icap.h
@@ -38,7 +38,6 @@
38 38
39#include <linux/types.h> 39#include <linux/types.h>
40#include <linux/cdev.h> 40#include <linux/cdev.h>
41#include <linux/version.h>
42#include <linux/platform_device.h> 41#include <linux/platform_device.h>
43 42
44#include <asm/io.h> 43#include <asm/io.h>
diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.h b/drivers/char/xilinx_hwicap/xilinx_hwicap.h
index 1f9c8b082db..24d0d9b938f 100644
--- a/drivers/char/xilinx_hwicap/xilinx_hwicap.h
+++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.h
@@ -38,7 +38,6 @@
38 38
39#include <linux/types.h> 39#include <linux/types.h>
40#include <linux/cdev.h> 40#include <linux/cdev.h>
41#include <linux/version.h>
42#include <linux/platform_device.h> 41#include <linux/platform_device.h>
43 42
44#include <asm/io.h> 43#include <asm/io.h>
diff --git a/drivers/clocksource/acpi_pm.c b/drivers/clocksource/acpi_pm.c
index 5ca1d80de18..71d2ac4e3f4 100644
--- a/drivers/clocksource/acpi_pm.c
+++ b/drivers/clocksource/acpi_pm.c
@@ -21,6 +21,7 @@
21#include <linux/errno.h> 21#include <linux/errno.h>
22#include <linux/init.h> 22#include <linux/init.h>
23#include <linux/pci.h> 23#include <linux/pci.h>
24#include <linux/delay.h>
24#include <asm/io.h> 25#include <asm/io.h>
25 26
26/* 27/*
@@ -151,13 +152,13 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_LE,
151 */ 152 */
152static int verify_pmtmr_rate(void) 153static int verify_pmtmr_rate(void)
153{ 154{
154 u32 value1, value2; 155 cycle_t value1, value2;
155 unsigned long count, delta; 156 unsigned long count, delta;
156 157
157 mach_prepare_counter(); 158 mach_prepare_counter();
158 value1 = read_pmtmr(); 159 value1 = clocksource_acpi_pm.read();
159 mach_countup(&count); 160 mach_countup(&count);
160 value2 = read_pmtmr(); 161 value2 = clocksource_acpi_pm.read();
161 delta = (value2 - value1) & ACPI_PM_MASK; 162 delta = (value2 - value1) & ACPI_PM_MASK;
162 163
163 /* Check that the PMTMR delta is within 5% of what we expect */ 164 /* Check that the PMTMR delta is within 5% of what we expect */
@@ -175,10 +176,15 @@ static int verify_pmtmr_rate(void)
175#define verify_pmtmr_rate() (0) 176#define verify_pmtmr_rate() (0)
176#endif 177#endif
177 178
179/* Number of monotonicity checks to perform during initialization */
180#define ACPI_PM_MONOTONICITY_CHECKS 10
181/* Number of reads we try to get two different values */
182#define ACPI_PM_READ_CHECKS 10000
183
178static int __init init_acpi_pm_clocksource(void) 184static int __init init_acpi_pm_clocksource(void)
179{ 185{
180 u32 value1, value2; 186 cycle_t value1, value2;
181 unsigned int i; 187 unsigned int i, j = 0;
182 188
183 if (!pmtmr_ioport) 189 if (!pmtmr_ioport)
184 return -ENODEV; 190 return -ENODEV;
@@ -187,24 +193,29 @@ static int __init init_acpi_pm_clocksource(void)
187 clocksource_acpi_pm.shift); 193 clocksource_acpi_pm.shift);
188 194
189 /* "verify" this timing source: */ 195 /* "verify" this timing source: */
190 value1 = read_pmtmr(); 196 for (j = 0; j < ACPI_PM_MONOTONICITY_CHECKS; j++) {
191 for (i = 0; i < 10000; i++) { 197 udelay(100 * j);
192 value2 = read_pmtmr(); 198 value1 = clocksource_acpi_pm.read();
193 if (value2 == value1) 199 for (i = 0; i < ACPI_PM_READ_CHECKS; i++) {
194 continue; 200 value2 = clocksource_acpi_pm.read();
195 if (value2 > value1) 201 if (value2 == value1)
196 goto pm_good; 202 continue;
197 if ((value2 < value1) && ((value2) < 0xFFF)) 203 if (value2 > value1)
198 goto pm_good; 204 break;
199 printk(KERN_INFO "PM-Timer had inconsistent results:" 205 if ((value2 < value1) && ((value2) < 0xFFF))
200 " 0x%#x, 0x%#x - aborting.\n", value1, value2); 206 break;
201 return -EINVAL; 207 printk(KERN_INFO "PM-Timer had inconsistent results:"
208 " 0x%#llx, 0x%#llx - aborting.\n",
209 value1, value2);
210 return -EINVAL;
211 }
212 if (i == ACPI_PM_READ_CHECKS) {
213 printk(KERN_INFO "PM-Timer failed consistency check "
214 " (0x%#llx) - aborting.\n", value1);
215 return -ENODEV;
216 }
202 } 217 }
203 printk(KERN_INFO "PM-Timer had no reasonable result:"
204 " 0x%#x - aborting.\n", value1);
205 return -ENODEV;
206 218
207pm_good:
208 if (verify_pmtmr_rate() != 0) 219 if (verify_pmtmr_rate() != 0)
209 return -ENODEV; 220 return -ENODEV;
210 221
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index ee827a7f7c6..b6ad3ac5916 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -1157,6 +1157,8 @@ static int aead_authenc_givencrypt(
1157 edesc->desc.hdr = ctx->desc_hdr_template | DESC_HDR_MODE0_ENCRYPT; 1157 edesc->desc.hdr = ctx->desc_hdr_template | DESC_HDR_MODE0_ENCRYPT;
1158 1158
1159 memcpy(req->giv, ctx->iv, crypto_aead_ivsize(authenc)); 1159 memcpy(req->giv, ctx->iv, crypto_aead_ivsize(authenc));
1160 /* avoid consecutive packets going out with same IV */
1161 *(__be64 *)req->giv ^= cpu_to_be64(req->seq);
1160 1162
1161 return ipsec_esp(edesc, areq, req->giv, req->seq, 1163 return ipsec_esp(edesc, areq, req->giv, req->seq,
1162 ipsec_esp_encrypt_done); 1164 ipsec_esp_encrypt_done);
@@ -1449,6 +1451,8 @@ static int talitos_probe(struct of_device *ofdev,
1449 1451
1450 priv->ofdev = ofdev; 1452 priv->ofdev = ofdev;
1451 1453
1454 INIT_LIST_HEAD(&priv->alg_list);
1455
1452 tasklet_init(&priv->done_task, talitos_done, (unsigned long)dev); 1456 tasklet_init(&priv->done_task, talitos_done, (unsigned long)dev);
1453 tasklet_init(&priv->error_task, talitos_error, (unsigned long)dev); 1457 tasklet_init(&priv->error_task, talitos_error, (unsigned long)dev);
1454 1458
@@ -1575,8 +1579,6 @@ static int talitos_probe(struct of_device *ofdev,
1575 } 1579 }
1576 1580
1577 /* register crypto algorithms the device supports */ 1581 /* register crypto algorithms the device supports */
1578 INIT_LIST_HEAD(&priv->alg_list);
1579
1580 for (i = 0; i < ARRAY_SIZE(driver_algs); i++) { 1582 for (i = 0; i < ARRAY_SIZE(driver_algs); i++) {
1581 if (hw_supports(dev, driver_algs[i].desc_hdr_template)) { 1583 if (hw_supports(dev, driver_algs[i].desc_hdr_template)) {
1582 struct talitos_crypto_alg *t_alg; 1584 struct talitos_crypto_alg *t_alg;
diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c
index 94df9177124..0778d99aea7 100644
--- a/drivers/dma/dw_dmac.c
+++ b/drivers/dma/dw_dmac.c
@@ -364,7 +364,7 @@ static void dw_dma_tasklet(unsigned long data)
364 int i; 364 int i;
365 365
366 status_block = dma_readl(dw, RAW.BLOCK); 366 status_block = dma_readl(dw, RAW.BLOCK);
367 status_xfer = dma_readl(dw, RAW.BLOCK); 367 status_xfer = dma_readl(dw, RAW.XFER);
368 status_err = dma_readl(dw, RAW.ERROR); 368 status_err = dma_readl(dw, RAW.ERROR);
369 369
370 dev_vdbg(dw->dma.dev, "tasklet: status_block=%x status_err=%x\n", 370 dev_vdbg(dw->dma.dev, "tasklet: status_block=%x status_err=%x\n",
diff --git a/drivers/edac/edac_core.h b/drivers/edac/edac_core.h
index b27b13c5eb5..4b55ec607a8 100644
--- a/drivers/edac/edac_core.h
+++ b/drivers/edac/edac_core.h
@@ -34,7 +34,6 @@
34#include <linux/platform_device.h> 34#include <linux/platform_device.h>
35#include <linux/sysdev.h> 35#include <linux/sysdev.h>
36#include <linux/workqueue.h> 36#include <linux/workqueue.h>
37#include <linux/version.h>
38 37
39#define EDAC_MC_LABEL_LEN 31 38#define EDAC_MC_LABEL_LEN 31
40#define EDAC_DEVICE_NAME_LEN 31 39#define EDAC_DEVICE_NAME_LEN 31
diff --git a/drivers/firmware/iscsi_ibft.c b/drivers/firmware/iscsi_ibft.c
index 8024e3bfd87..b91ef63126e 100644
--- a/drivers/firmware/iscsi_ibft.c
+++ b/drivers/firmware/iscsi_ibft.c
@@ -669,8 +669,7 @@ static int __init ibft_register_kobjects(struct ibft_table_header *header,
669 669
670 control = (void *)header + sizeof(*header); 670 control = (void *)header + sizeof(*header);
671 end = (void *)control + control->hdr.length; 671 end = (void *)control + control->hdr.length;
672 eot_offset = (void *)header + header->length - 672 eot_offset = (void *)header + header->length - (void *)control;
673 (void *)control - sizeof(*header);
674 rc = ibft_verify_hdr("control", (struct ibft_hdr *)control, id_control, 673 rc = ibft_verify_hdr("control", (struct ibft_hdr *)control, id_control,
675 sizeof(*control)); 674 sizeof(*control));
676 675
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 089c015c01d..53f0e5af1cc 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -400,27 +400,31 @@ static void drm_locked_tasklet_func(unsigned long data)
400{ 400{
401 struct drm_device *dev = (struct drm_device *)data; 401 struct drm_device *dev = (struct drm_device *)data;
402 unsigned long irqflags; 402 unsigned long irqflags;
403 403 void (*tasklet_func)(struct drm_device *);
404
404 spin_lock_irqsave(&dev->tasklet_lock, irqflags); 405 spin_lock_irqsave(&dev->tasklet_lock, irqflags);
406 tasklet_func = dev->locked_tasklet_func;
407 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
405 408
406 if (!dev->locked_tasklet_func || 409 if (!tasklet_func ||
407 !drm_lock_take(&dev->lock, 410 !drm_lock_take(&dev->lock,
408 DRM_KERNEL_CONTEXT)) { 411 DRM_KERNEL_CONTEXT)) {
409 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
410 return; 412 return;
411 } 413 }
412 414
413 dev->lock.lock_time = jiffies; 415 dev->lock.lock_time = jiffies;
414 atomic_inc(&dev->counts[_DRM_STAT_LOCKS]); 416 atomic_inc(&dev->counts[_DRM_STAT_LOCKS]);
415 417
416 dev->locked_tasklet_func(dev); 418 spin_lock_irqsave(&dev->tasklet_lock, irqflags);
419 tasklet_func = dev->locked_tasklet_func;
420 dev->locked_tasklet_func = NULL;
421 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
422
423 if (tasklet_func != NULL)
424 tasklet_func(dev);
417 425
418 drm_lock_free(&dev->lock, 426 drm_lock_free(&dev->lock,
419 DRM_KERNEL_CONTEXT); 427 DRM_KERNEL_CONTEXT);
420
421 dev->locked_tasklet_func = NULL;
422
423 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
424} 428}
425 429
426/** 430/**
diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c
index 0998723cde7..a4caf95485d 100644
--- a/drivers/gpu/drm/drm_lock.c
+++ b/drivers/gpu/drm/drm_lock.c
@@ -105,14 +105,19 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
105 ret ? "interrupted" : "has lock"); 105 ret ? "interrupted" : "has lock");
106 if (ret) return ret; 106 if (ret) return ret;
107 107
108 sigemptyset(&dev->sigmask); 108 /* don't set the block all signals on the master process for now
109 sigaddset(&dev->sigmask, SIGSTOP); 109 * really probably not the correct answer but lets us debug xkb
110 sigaddset(&dev->sigmask, SIGTSTP); 110 * xserver for now */
111 sigaddset(&dev->sigmask, SIGTTIN); 111 if (!file_priv->master) {
112 sigaddset(&dev->sigmask, SIGTTOU); 112 sigemptyset(&dev->sigmask);
113 dev->sigdata.context = lock->context; 113 sigaddset(&dev->sigmask, SIGSTOP);
114 dev->sigdata.lock = dev->lock.hw_lock; 114 sigaddset(&dev->sigmask, SIGTSTP);
115 block_all_signals(drm_notifier, &dev->sigdata, &dev->sigmask); 115 sigaddset(&dev->sigmask, SIGTTIN);
116 sigaddset(&dev->sigmask, SIGTTOU);
117 dev->sigdata.context = lock->context;
118 dev->sigdata.lock = dev->lock.hw_lock;
119 block_all_signals(drm_notifier, &dev->sigdata, &dev->sigmask);
120 }
116 121
117 if (dev->driver->dma_ready && (lock->flags & _DRM_LOCK_READY)) 122 if (dev->driver->dma_ready && (lock->flags & _DRM_LOCK_READY))
118 dev->driver->dma_ready(dev); 123 dev->driver->dma_ready(dev);
@@ -150,6 +155,7 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
150{ 155{
151 struct drm_lock *lock = data; 156 struct drm_lock *lock = data;
152 unsigned long irqflags; 157 unsigned long irqflags;
158 void (*tasklet_func)(struct drm_device *);
153 159
154 if (lock->context == DRM_KERNEL_CONTEXT) { 160 if (lock->context == DRM_KERNEL_CONTEXT) {
155 DRM_ERROR("Process %d using kernel context %d\n", 161 DRM_ERROR("Process %d using kernel context %d\n",
@@ -158,14 +164,11 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
158 } 164 }
159 165
160 spin_lock_irqsave(&dev->tasklet_lock, irqflags); 166 spin_lock_irqsave(&dev->tasklet_lock, irqflags);
161 167 tasklet_func = dev->locked_tasklet_func;
162 if (dev->locked_tasklet_func) { 168 dev->locked_tasklet_func = NULL;
163 dev->locked_tasklet_func(dev);
164
165 dev->locked_tasklet_func = NULL;
166 }
167
168 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags); 169 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
170 if (tasklet_func != NULL)
171 tasklet_func(dev);
169 172
170 atomic_inc(&dev->counts[_DRM_STAT_UNLOCKS]); 173 atomic_inc(&dev->counts[_DRM_STAT_UNLOCKS]);
171 174
diff --git a/drivers/gpu/drm/radeon/r300_cmdbuf.c b/drivers/gpu/drm/radeon/r300_cmdbuf.c
index 702df45320f..4b27d9abb7b 100644
--- a/drivers/gpu/drm/radeon/r300_cmdbuf.c
+++ b/drivers/gpu/drm/radeon/r300_cmdbuf.c
@@ -77,6 +77,9 @@ static int r300_emit_cliprects(drm_radeon_private_t *dev_priv,
77 return -EFAULT; 77 return -EFAULT;
78 } 78 }
79 79
80 box.x2--; /* Hardware expects inclusive bottom-right corner */
81 box.y2--;
82
80 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RV515) { 83 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RV515) {
81 box.x1 = (box.x1) & 84 box.x1 = (box.x1) &
82 R300_CLIPRECT_MASK; 85 R300_CLIPRECT_MASK;
@@ -95,8 +98,8 @@ static int r300_emit_cliprects(drm_radeon_private_t *dev_priv,
95 R300_CLIPRECT_MASK; 98 R300_CLIPRECT_MASK;
96 box.y2 = (box.y2 + R300_CLIPRECT_OFFSET) & 99 box.y2 = (box.y2 + R300_CLIPRECT_OFFSET) &
97 R300_CLIPRECT_MASK; 100 R300_CLIPRECT_MASK;
98
99 } 101 }
102
100 OUT_RING((box.x1 << R300_CLIPRECT_X_SHIFT) | 103 OUT_RING((box.x1 << R300_CLIPRECT_X_SHIFT) |
101 (box.y1 << R300_CLIPRECT_Y_SHIFT)); 104 (box.y1 << R300_CLIPRECT_Y_SHIFT));
102 OUT_RING((box.x2 << R300_CLIPRECT_X_SHIFT) | 105 OUT_RING((box.x2 << R300_CLIPRECT_X_SHIFT) |
@@ -136,6 +139,18 @@ static int r300_emit_cliprects(drm_radeon_private_t *dev_priv,
136 ADVANCE_RING(); 139 ADVANCE_RING();
137 } 140 }
138 141
142 /* flus cache and wait idle clean after cliprect change */
143 BEGIN_RING(2);
144 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0));
145 OUT_RING(R300_RB3D_DC_FLUSH);
146 ADVANCE_RING();
147 BEGIN_RING(2);
148 OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
149 OUT_RING(RADEON_WAIT_3D_IDLECLEAN);
150 ADVANCE_RING();
151 /* set flush flag */
152 dev_priv->track_flush |= RADEON_FLUSH_EMITED;
153
139 return 0; 154 return 0;
140} 155}
141 156
@@ -166,13 +181,13 @@ void r300_init_reg_flags(struct drm_device *dev)
166 ADD_RANGE(0x21DC, 1); 181 ADD_RANGE(0x21DC, 1);
167 ADD_RANGE(R300_VAP_UNKNOWN_221C, 1); 182 ADD_RANGE(R300_VAP_UNKNOWN_221C, 1);
168 ADD_RANGE(R300_VAP_CLIP_X_0, 4); 183 ADD_RANGE(R300_VAP_CLIP_X_0, 4);
169 ADD_RANGE(R300_VAP_PVS_WAITIDLE, 1); 184 ADD_RANGE(R300_VAP_PVS_STATE_FLUSH_REG, 1);
170 ADD_RANGE(R300_VAP_UNKNOWN_2288, 1); 185 ADD_RANGE(R300_VAP_UNKNOWN_2288, 1);
171 ADD_RANGE(R300_VAP_OUTPUT_VTX_FMT_0, 2); 186 ADD_RANGE(R300_VAP_OUTPUT_VTX_FMT_0, 2);
172 ADD_RANGE(R300_VAP_PVS_CNTL_1, 3); 187 ADD_RANGE(R300_VAP_PVS_CNTL_1, 3);
173 ADD_RANGE(R300_GB_ENABLE, 1); 188 ADD_RANGE(R300_GB_ENABLE, 1);
174 ADD_RANGE(R300_GB_MSPOS0, 5); 189 ADD_RANGE(R300_GB_MSPOS0, 5);
175 ADD_RANGE(R300_TX_CNTL, 1); 190 ADD_RANGE(R300_TX_INVALTAGS, 1);
176 ADD_RANGE(R300_TX_ENABLE, 1); 191 ADD_RANGE(R300_TX_ENABLE, 1);
177 ADD_RANGE(0x4200, 4); 192 ADD_RANGE(0x4200, 4);
178 ADD_RANGE(0x4214, 1); 193 ADD_RANGE(0x4214, 1);
@@ -388,15 +403,28 @@ static __inline__ int r300_emit_vpu(drm_radeon_private_t *dev_priv,
388 if (sz * 16 > cmdbuf->bufsz) 403 if (sz * 16 > cmdbuf->bufsz)
389 return -EINVAL; 404 return -EINVAL;
390 405
391 BEGIN_RING(5 + sz * 4); 406 /* VAP is very sensitive so we purge cache before we program it
392 /* Wait for VAP to come to senses.. */ 407 * and we also flush its state before & after */
393 /* there is no need to emit it multiple times, (only once before VAP is programmed, 408 BEGIN_RING(6);
394 but this optimization is for later */ 409 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0));
395 OUT_RING_REG(R300_VAP_PVS_WAITIDLE, 0); 410 OUT_RING(R300_RB3D_DC_FLUSH);
411 OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
412 OUT_RING(RADEON_WAIT_3D_IDLECLEAN);
413 OUT_RING(CP_PACKET0(R300_VAP_PVS_STATE_FLUSH_REG, 0));
414 OUT_RING(0);
415 ADVANCE_RING();
416 /* set flush flag */
417 dev_priv->track_flush |= RADEON_FLUSH_EMITED;
418
419 BEGIN_RING(3 + sz * 4);
396 OUT_RING_REG(R300_VAP_PVS_UPLOAD_ADDRESS, addr); 420 OUT_RING_REG(R300_VAP_PVS_UPLOAD_ADDRESS, addr);
397 OUT_RING(CP_PACKET0_TABLE(R300_VAP_PVS_UPLOAD_DATA, sz * 4 - 1)); 421 OUT_RING(CP_PACKET0_TABLE(R300_VAP_PVS_UPLOAD_DATA, sz * 4 - 1));
398 OUT_RING_TABLE((int *)cmdbuf->buf, sz * 4); 422 OUT_RING_TABLE((int *)cmdbuf->buf, sz * 4);
423 ADVANCE_RING();
399 424
425 BEGIN_RING(2);
426 OUT_RING(CP_PACKET0(R300_VAP_PVS_STATE_FLUSH_REG, 0));
427 OUT_RING(0);
400 ADVANCE_RING(); 428 ADVANCE_RING();
401 429
402 cmdbuf->buf += sz * 16; 430 cmdbuf->buf += sz * 16;
@@ -424,6 +452,15 @@ static __inline__ int r300_emit_clear(drm_radeon_private_t *dev_priv,
424 OUT_RING_TABLE((int *)cmdbuf->buf, 8); 452 OUT_RING_TABLE((int *)cmdbuf->buf, 8);
425 ADVANCE_RING(); 453 ADVANCE_RING();
426 454
455 BEGIN_RING(4);
456 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0));
457 OUT_RING(R300_RB3D_DC_FLUSH);
458 OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
459 OUT_RING(RADEON_WAIT_3D_IDLECLEAN);
460 ADVANCE_RING();
461 /* set flush flag */
462 dev_priv->track_flush |= RADEON_FLUSH_EMITED;
463
427 cmdbuf->buf += 8 * 4; 464 cmdbuf->buf += 8 * 4;
428 cmdbuf->bufsz -= 8 * 4; 465 cmdbuf->bufsz -= 8 * 4;
429 466
@@ -543,22 +580,23 @@ static __inline__ int r300_emit_bitblt_multi(drm_radeon_private_t *dev_priv,
543 return 0; 580 return 0;
544} 581}
545 582
546static __inline__ int r300_emit_indx_buffer(drm_radeon_private_t *dev_priv, 583static __inline__ int r300_emit_draw_indx_2(drm_radeon_private_t *dev_priv,
547 drm_radeon_kcmd_buffer_t *cmdbuf) 584 drm_radeon_kcmd_buffer_t *cmdbuf)
548{ 585{
549 u32 *cmd = (u32 *) cmdbuf->buf; 586 u32 *cmd;
550 int count, ret; 587 int count;
588 int expected_count;
551 RING_LOCALS; 589 RING_LOCALS;
552 590
553 count=(cmd[0]>>16) & 0x3fff; 591 cmd = (u32 *) cmdbuf->buf;
592 count = (cmd[0]>>16) & 0x3fff;
593 expected_count = cmd[1] >> 16;
594 if (!(cmd[1] & R300_VAP_VF_CNTL__INDEX_SIZE_32bit))
595 expected_count = (expected_count+1)/2;
554 596
555 if ((cmd[1] & 0x8000ffff) != 0x80000810) { 597 if (count && count != expected_count) {
556 DRM_ERROR("Invalid indx_buffer reg address %08X\n", cmd[1]); 598 DRM_ERROR("3D_DRAW_INDX_2: packet size %i, expected %i\n",
557 return -EINVAL; 599 count, expected_count);
558 }
559 ret = !radeon_check_offset(dev_priv, cmd[2]);
560 if (ret) {
561 DRM_ERROR("Invalid indx_buffer offset is %08X\n", cmd[2]);
562 return -EINVAL; 600 return -EINVAL;
563 } 601 }
564 602
@@ -570,6 +608,50 @@ static __inline__ int r300_emit_indx_buffer(drm_radeon_private_t *dev_priv,
570 cmdbuf->buf += (count+2)*4; 608 cmdbuf->buf += (count+2)*4;
571 cmdbuf->bufsz -= (count+2)*4; 609 cmdbuf->bufsz -= (count+2)*4;
572 610
611 if (!count) {
612 drm_r300_cmd_header_t header;
613
614 if (cmdbuf->bufsz < 4*4 + sizeof(header)) {
615 DRM_ERROR("3D_DRAW_INDX_2: expect subsequent INDX_BUFFER, but stream is too short.\n");
616 return -EINVAL;
617 }
618
619 header.u = *(unsigned int *)cmdbuf->buf;
620
621 cmdbuf->buf += sizeof(header);
622 cmdbuf->bufsz -= sizeof(header);
623 cmd = (u32 *) cmdbuf->buf;
624
625 if (header.header.cmd_type != R300_CMD_PACKET3 ||
626 header.packet3.packet != R300_CMD_PACKET3_RAW ||
627 cmd[0] != CP_PACKET3(RADEON_CP_INDX_BUFFER, 2)) {
628 DRM_ERROR("3D_DRAW_INDX_2: expect subsequent INDX_BUFFER.\n");
629 return -EINVAL;
630 }
631
632 if ((cmd[1] & 0x8000ffff) != 0x80000810) {
633 DRM_ERROR("Invalid indx_buffer reg address %08X\n", cmd[1]);
634 return -EINVAL;
635 }
636 if (!radeon_check_offset(dev_priv, cmd[2])) {
637 DRM_ERROR("Invalid indx_buffer offset is %08X\n", cmd[2]);
638 return -EINVAL;
639 }
640 if (cmd[3] != expected_count) {
641 DRM_ERROR("INDX_BUFFER: buffer size %i, expected %i\n",
642 cmd[3], expected_count);
643 return -EINVAL;
644 }
645
646 BEGIN_RING(4);
647 OUT_RING(cmd[0]);
648 OUT_RING_TABLE((int *)(cmdbuf->buf + 4), 3);
649 ADVANCE_RING();
650
651 cmdbuf->buf += 4*4;
652 cmdbuf->bufsz -= 4*4;
653 }
654
573 return 0; 655 return 0;
574} 656}
575 657
@@ -613,11 +695,22 @@ static __inline__ int r300_emit_raw_packet3(drm_radeon_private_t *dev_priv,
613 case RADEON_CNTL_BITBLT_MULTI: 695 case RADEON_CNTL_BITBLT_MULTI:
614 return r300_emit_bitblt_multi(dev_priv, cmdbuf); 696 return r300_emit_bitblt_multi(dev_priv, cmdbuf);
615 697
616 case RADEON_CP_INDX_BUFFER: /* DRAW_INDX_2 without INDX_BUFFER seems to lock up the gpu */ 698 case RADEON_CP_INDX_BUFFER:
617 return r300_emit_indx_buffer(dev_priv, cmdbuf); 699 DRM_ERROR("packet3 INDX_BUFFER without preceding 3D_DRAW_INDX_2 is illegal.\n");
618 case RADEON_CP_3D_DRAW_IMMD_2: /* triggers drawing using in-packet vertex data */ 700 return -EINVAL;
619 case RADEON_CP_3D_DRAW_VBUF_2: /* triggers drawing of vertex buffers setup elsewhere */ 701 case RADEON_CP_3D_DRAW_IMMD_2:
620 case RADEON_CP_3D_DRAW_INDX_2: /* triggers drawing using indices to vertex buffer */ 702 /* triggers drawing using in-packet vertex data */
703 case RADEON_CP_3D_DRAW_VBUF_2:
704 /* triggers drawing of vertex buffers setup elsewhere */
705 dev_priv->track_flush &= ~(RADEON_FLUSH_EMITED |
706 RADEON_PURGE_EMITED);
707 break;
708 case RADEON_CP_3D_DRAW_INDX_2:
709 /* triggers drawing using indices to vertex buffer */
710 /* whenever we send vertex we clear flush & purge */
711 dev_priv->track_flush &= ~(RADEON_FLUSH_EMITED |
712 RADEON_PURGE_EMITED);
713 return r300_emit_draw_indx_2(dev_priv, cmdbuf);
621 case RADEON_WAIT_FOR_IDLE: 714 case RADEON_WAIT_FOR_IDLE:
622 case RADEON_CP_NOP: 715 case RADEON_CP_NOP:
623 /* these packets are safe */ 716 /* these packets are safe */
@@ -713,17 +806,53 @@ static __inline__ int r300_emit_packet3(drm_radeon_private_t *dev_priv,
713 */ 806 */
714static __inline__ void r300_pacify(drm_radeon_private_t *dev_priv) 807static __inline__ void r300_pacify(drm_radeon_private_t *dev_priv)
715{ 808{
809 uint32_t cache_z, cache_3d, cache_2d;
716 RING_LOCALS; 810 RING_LOCALS;
717 811
718 BEGIN_RING(6); 812 cache_z = R300_ZC_FLUSH;
719 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); 813 cache_2d = R300_RB2D_DC_FLUSH;
720 OUT_RING(R300_RB3D_DSTCACHE_UNKNOWN_0A); 814 cache_3d = R300_RB3D_DC_FLUSH;
815 if (!(dev_priv->track_flush & RADEON_PURGE_EMITED)) {
816 /* we can purge, primitive where draw since last purge */
817 cache_z |= R300_ZC_FREE;
818 cache_2d |= R300_RB2D_DC_FREE;
819 cache_3d |= R300_RB3D_DC_FREE;
820 }
821
822 /* flush & purge zbuffer */
823 BEGIN_RING(2);
721 OUT_RING(CP_PACKET0(R300_ZB_ZCACHE_CTLSTAT, 0)); 824 OUT_RING(CP_PACKET0(R300_ZB_ZCACHE_CTLSTAT, 0));
722 OUT_RING(R300_ZB_ZCACHE_CTLSTAT_ZC_FLUSH_FLUSH_AND_FREE| 825 OUT_RING(cache_z);
723 R300_ZB_ZCACHE_CTLSTAT_ZC_FREE_FREE); 826 ADVANCE_RING();
724 OUT_RING(CP_PACKET3(RADEON_CP_NOP, 0)); 827 /* flush & purge 3d */
725 OUT_RING(0x0); 828 BEGIN_RING(2);
829 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0));
830 OUT_RING(cache_3d);
831 ADVANCE_RING();
832 /* flush & purge texture */
833 BEGIN_RING(2);
834 OUT_RING(CP_PACKET0(R300_TX_INVALTAGS, 0));
835 OUT_RING(0);
836 ADVANCE_RING();
837 /* FIXME: is this one really needed ? */
838 BEGIN_RING(2);
839 OUT_RING(CP_PACKET0(R300_RB3D_AARESOLVE_CTL, 0));
840 OUT_RING(0);
841 ADVANCE_RING();
842 BEGIN_RING(2);
843 OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
844 OUT_RING(RADEON_WAIT_3D_IDLECLEAN);
845 ADVANCE_RING();
846 /* flush & purge 2d through E2 as RB2D will trigger lockup */
847 BEGIN_RING(4);
848 OUT_RING(CP_PACKET0(R300_DSTCACHE_CTLSTAT, 0));
849 OUT_RING(cache_2d);
850 OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
851 OUT_RING(RADEON_WAIT_2D_IDLECLEAN |
852 RADEON_WAIT_HOST_IDLECLEAN);
726 ADVANCE_RING(); 853 ADVANCE_RING();
854 /* set flush & purge flags */
855 dev_priv->track_flush |= RADEON_FLUSH_EMITED | RADEON_PURGE_EMITED;
727} 856}
728 857
729/** 858/**
@@ -905,8 +1034,7 @@ int r300_do_cp_cmdbuf(struct drm_device *dev,
905 1034
906 DRM_DEBUG("\n"); 1035 DRM_DEBUG("\n");
907 1036
908 /* See the comment above r300_emit_begin3d for why this call must be here, 1037 /* pacify */
909 * and what the cleanup gotos are for. */
910 r300_pacify(dev_priv); 1038 r300_pacify(dev_priv);
911 1039
912 if (cmdbuf->nbox <= R300_SIMULTANEOUS_CLIPRECTS) { 1040 if (cmdbuf->nbox <= R300_SIMULTANEOUS_CLIPRECTS) {
diff --git a/drivers/gpu/drm/radeon/r300_reg.h b/drivers/gpu/drm/radeon/r300_reg.h
index a6802f26afc..ee6f811599a 100644
--- a/drivers/gpu/drm/radeon/r300_reg.h
+++ b/drivers/gpu/drm/radeon/r300_reg.h
@@ -317,7 +317,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
317 * Therefore, I suspect writing zero to 0x2284 synchronizes the engine and 317 * Therefore, I suspect writing zero to 0x2284 synchronizes the engine and
318 * avoids bugs caused by still running shaders reading bad data from memory. 318 * avoids bugs caused by still running shaders reading bad data from memory.
319 */ 319 */
320#define R300_VAP_PVS_WAITIDLE 0x2284 /* GUESS */ 320#define R300_VAP_PVS_STATE_FLUSH_REG 0x2284
321 321
322/* Absolutely no clue what this register is about. */ 322/* Absolutely no clue what this register is about. */
323#define R300_VAP_UNKNOWN_2288 0x2288 323#define R300_VAP_UNKNOWN_2288 0x2288
@@ -513,7 +513,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
513/* gap */ 513/* gap */
514 514
515/* Zero to flush caches. */ 515/* Zero to flush caches. */
516#define R300_TX_CNTL 0x4100 516#define R300_TX_INVALTAGS 0x4100
517#define R300_TX_FLUSH 0x0 517#define R300_TX_FLUSH 0x0
518 518
519/* The upper enable bits are guessed, based on fglrx reported limits. */ 519/* The upper enable bits are guessed, based on fglrx reported limits. */
@@ -1362,6 +1362,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
1362#define R300_RB3D_COLORPITCH2 0x4E40 /* GUESS */ 1362#define R300_RB3D_COLORPITCH2 0x4E40 /* GUESS */
1363#define R300_RB3D_COLORPITCH3 0x4E44 /* GUESS */ 1363#define R300_RB3D_COLORPITCH3 0x4E44 /* GUESS */
1364 1364
1365#define R300_RB3D_AARESOLVE_CTL 0x4E88
1365/* gap */ 1366/* gap */
1366 1367
1367/* Guess by Vladimir. 1368/* Guess by Vladimir.
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
index f0de81a5689..248ab4a7d39 100644
--- a/drivers/gpu/drm/radeon/radeon_cp.c
+++ b/drivers/gpu/drm/radeon/radeon_cp.c
@@ -40,6 +40,7 @@
40#define RADEON_FIFO_DEBUG 0 40#define RADEON_FIFO_DEBUG 0
41 41
42static int radeon_do_cleanup_cp(struct drm_device * dev); 42static int radeon_do_cleanup_cp(struct drm_device * dev);
43static void radeon_do_cp_start(drm_radeon_private_t * dev_priv);
43 44
44static u32 R500_READ_MCIND(drm_radeon_private_t *dev_priv, int addr) 45static u32 R500_READ_MCIND(drm_radeon_private_t *dev_priv, int addr)
45{ 46{
@@ -198,23 +199,8 @@ static int radeon_do_pixcache_flush(drm_radeon_private_t * dev_priv)
198 DRM_UDELAY(1); 199 DRM_UDELAY(1);
199 } 200 }
200 } else { 201 } else {
201 /* 3D */ 202 /* don't flush or purge cache here or lockup */
202 tmp = RADEON_READ(R300_RB3D_DSTCACHE_CTLSTAT); 203 return 0;
203 tmp |= RADEON_RB3D_DC_FLUSH_ALL;
204 RADEON_WRITE(R300_RB3D_DSTCACHE_CTLSTAT, tmp);
205
206 /* 2D */
207 tmp = RADEON_READ(R300_DSTCACHE_CTLSTAT);
208 tmp |= RADEON_RB3D_DC_FLUSH_ALL;
209 RADEON_WRITE(R300_DSTCACHE_CTLSTAT, tmp);
210
211 for (i = 0; i < dev_priv->usec_timeout; i++) {
212 if (!(RADEON_READ(R300_DSTCACHE_CTLSTAT)
213 & RADEON_RB3D_DC_BUSY)) {
214 return 0;
215 }
216 DRM_UDELAY(1);
217 }
218 } 204 }
219 205
220#if RADEON_FIFO_DEBUG 206#if RADEON_FIFO_DEBUG
@@ -237,6 +223,9 @@ static int radeon_do_wait_for_fifo(drm_radeon_private_t * dev_priv, int entries)
237 return 0; 223 return 0;
238 DRM_UDELAY(1); 224 DRM_UDELAY(1);
239 } 225 }
226 DRM_DEBUG("wait for fifo failed status : 0x%08X 0x%08X\n",
227 RADEON_READ(RADEON_RBBM_STATUS),
228 RADEON_READ(R300_VAP_CNTL_STATUS));
240 229
241#if RADEON_FIFO_DEBUG 230#if RADEON_FIFO_DEBUG
242 DRM_ERROR("failed!\n"); 231 DRM_ERROR("failed!\n");
@@ -263,6 +252,9 @@ static int radeon_do_wait_for_idle(drm_radeon_private_t * dev_priv)
263 } 252 }
264 DRM_UDELAY(1); 253 DRM_UDELAY(1);
265 } 254 }
255 DRM_DEBUG("wait idle failed status : 0x%08X 0x%08X\n",
256 RADEON_READ(RADEON_RBBM_STATUS),
257 RADEON_READ(R300_VAP_CNTL_STATUS));
266 258
267#if RADEON_FIFO_DEBUG 259#if RADEON_FIFO_DEBUG
268 DRM_ERROR("failed!\n"); 260 DRM_ERROR("failed!\n");
@@ -443,14 +435,20 @@ static void radeon_do_cp_start(drm_radeon_private_t * dev_priv)
443 435
444 dev_priv->cp_running = 1; 436 dev_priv->cp_running = 1;
445 437
446 BEGIN_RING(6); 438 BEGIN_RING(8);
447 439 /* isync can only be written through cp on r5xx write it here */
440 OUT_RING(CP_PACKET0(RADEON_ISYNC_CNTL, 0));
441 OUT_RING(RADEON_ISYNC_ANY2D_IDLE3D |
442 RADEON_ISYNC_ANY3D_IDLE2D |
443 RADEON_ISYNC_WAIT_IDLEGUI |
444 RADEON_ISYNC_CPSCRATCH_IDLEGUI);
448 RADEON_PURGE_CACHE(); 445 RADEON_PURGE_CACHE();
449 RADEON_PURGE_ZCACHE(); 446 RADEON_PURGE_ZCACHE();
450 RADEON_WAIT_UNTIL_IDLE(); 447 RADEON_WAIT_UNTIL_IDLE();
451
452 ADVANCE_RING(); 448 ADVANCE_RING();
453 COMMIT_RING(); 449 COMMIT_RING();
450
451 dev_priv->track_flush |= RADEON_FLUSH_EMITED | RADEON_PURGE_EMITED;
454} 452}
455 453
456/* Reset the Command Processor. This will not flush any pending 454/* Reset the Command Processor. This will not flush any pending
diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
index 3f0eca957aa..09938169317 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.h
+++ b/drivers/gpu/drm/radeon/radeon_drv.h
@@ -220,6 +220,9 @@ struct radeon_virt_surface {
220 struct drm_file *file_priv; 220 struct drm_file *file_priv;
221}; 221};
222 222
223#define RADEON_FLUSH_EMITED (1 < 0)
224#define RADEON_PURGE_EMITED (1 < 1)
225
223typedef struct drm_radeon_private { 226typedef struct drm_radeon_private {
224 drm_radeon_ring_buffer_t ring; 227 drm_radeon_ring_buffer_t ring;
225 drm_radeon_sarea_t *sarea_priv; 228 drm_radeon_sarea_t *sarea_priv;
@@ -311,6 +314,7 @@ typedef struct drm_radeon_private {
311 unsigned long fb_aper_offset; 314 unsigned long fb_aper_offset;
312 315
313 int num_gb_pipes; 316 int num_gb_pipes;
317 int track_flush;
314} drm_radeon_private_t; 318} drm_radeon_private_t;
315 319
316typedef struct drm_radeon_buf_priv { 320typedef struct drm_radeon_buf_priv {
@@ -693,7 +697,6 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
693#define R300_ZB_ZCACHE_CTLSTAT 0x4f18 697#define R300_ZB_ZCACHE_CTLSTAT 0x4f18
694# define R300_ZC_FLUSH (1 << 0) 698# define R300_ZC_FLUSH (1 << 0)
695# define R300_ZC_FREE (1 << 1) 699# define R300_ZC_FREE (1 << 1)
696# define R300_ZC_FLUSH_ALL 0x3
697# define R300_ZC_BUSY (1 << 31) 700# define R300_ZC_BUSY (1 << 31)
698#define RADEON_RB3D_DSTCACHE_CTLSTAT 0x325c 701#define RADEON_RB3D_DSTCACHE_CTLSTAT 0x325c
699# define RADEON_RB3D_DC_FLUSH (3 << 0) 702# define RADEON_RB3D_DC_FLUSH (3 << 0)
@@ -701,6 +704,8 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
701# define RADEON_RB3D_DC_FLUSH_ALL 0xf 704# define RADEON_RB3D_DC_FLUSH_ALL 0xf
702# define RADEON_RB3D_DC_BUSY (1 << 31) 705# define RADEON_RB3D_DC_BUSY (1 << 31)
703#define R300_RB3D_DSTCACHE_CTLSTAT 0x4e4c 706#define R300_RB3D_DSTCACHE_CTLSTAT 0x4e4c
707# define R300_RB3D_DC_FLUSH (2 << 0)
708# define R300_RB3D_DC_FREE (2 << 2)
704# define R300_RB3D_DC_FINISH (1 << 4) 709# define R300_RB3D_DC_FINISH (1 << 4)
705#define RADEON_RB3D_ZSTENCILCNTL 0x1c2c 710#define RADEON_RB3D_ZSTENCILCNTL 0x1c2c
706# define RADEON_Z_TEST_MASK (7 << 4) 711# define RADEON_Z_TEST_MASK (7 << 4)
@@ -1246,17 +1251,17 @@ do { \
1246 OUT_RING(RADEON_RB3D_DC_FLUSH); \ 1251 OUT_RING(RADEON_RB3D_DC_FLUSH); \
1247 } else { \ 1252 } else { \
1248 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \ 1253 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \
1249 OUT_RING(RADEON_RB3D_DC_FLUSH); \ 1254 OUT_RING(R300_RB3D_DC_FLUSH); \
1250 } \ 1255 } \
1251} while (0) 1256} while (0)
1252 1257
1253#define RADEON_PURGE_CACHE() do { \ 1258#define RADEON_PURGE_CACHE() do { \
1254 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) { \ 1259 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) { \
1255 OUT_RING(CP_PACKET0(RADEON_RB3D_DSTCACHE_CTLSTAT, 0)); \ 1260 OUT_RING(CP_PACKET0(RADEON_RB3D_DSTCACHE_CTLSTAT, 0)); \
1256 OUT_RING(RADEON_RB3D_DC_FLUSH_ALL); \ 1261 OUT_RING(RADEON_RB3D_DC_FLUSH | RADEON_RB3D_DC_FREE); \
1257 } else { \ 1262 } else { \
1258 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \ 1263 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \
1259 OUT_RING(RADEON_RB3D_DC_FLUSH_ALL); \ 1264 OUT_RING(R300_RB3D_DC_FLUSH | R300_RB3D_DC_FREE); \
1260 } \ 1265 } \
1261} while (0) 1266} while (0)
1262 1267
@@ -1273,10 +1278,10 @@ do { \
1273#define RADEON_PURGE_ZCACHE() do { \ 1278#define RADEON_PURGE_ZCACHE() do { \
1274 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) { \ 1279 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) { \
1275 OUT_RING(CP_PACKET0(RADEON_RB3D_ZCACHE_CTLSTAT, 0)); \ 1280 OUT_RING(CP_PACKET0(RADEON_RB3D_ZCACHE_CTLSTAT, 0)); \
1276 OUT_RING(RADEON_RB3D_ZC_FLUSH_ALL); \ 1281 OUT_RING(RADEON_RB3D_ZC_FLUSH | RADEON_RB3D_ZC_FREE); \
1277 } else { \ 1282 } else { \
1278 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \ 1283 OUT_RING(CP_PACKET0(R300_ZB_ZCACHE_CTLSTAT, 0)); \
1279 OUT_RING(R300_ZC_FLUSH_ALL); \ 1284 OUT_RING(R300_ZC_FLUSH | R300_ZC_FREE); \
1280 } \ 1285 } \
1281} while (0) 1286} while (0)
1282 1287
diff --git a/drivers/hwmon/ad7414.c b/drivers/hwmon/ad7414.c
index ce8d94fbfd7..bfda8c80ef2 100644
--- a/drivers/hwmon/ad7414.c
+++ b/drivers/hwmon/ad7414.c
@@ -69,7 +69,7 @@ static inline int ad7414_write(struct i2c_client *client, u8 reg, u8 value)
69 return i2c_smbus_write_byte_data(client, reg, value); 69 return i2c_smbus_write_byte_data(client, reg, value);
70} 70}
71 71
72struct ad7414_data *ad7414_update_device(struct device *dev) 72static struct ad7414_data *ad7414_update_device(struct device *dev)
73{ 73{
74 struct i2c_client *client = to_i2c_client(dev); 74 struct i2c_client *client = to_i2c_client(dev);
75 struct ad7414_data *data = i2c_get_clientdata(client); 75 struct ad7414_data *data = i2c_get_clientdata(client);
diff --git a/drivers/hwmon/atxp1.c b/drivers/hwmon/atxp1.c
index d191118ba0c..d6b490d3e36 100644
--- a/drivers/hwmon/atxp1.c
+++ b/drivers/hwmon/atxp1.c
@@ -31,7 +31,7 @@
31 31
32MODULE_LICENSE("GPL"); 32MODULE_LICENSE("GPL");
33MODULE_DESCRIPTION("System voltages control via Attansic ATXP1"); 33MODULE_DESCRIPTION("System voltages control via Attansic ATXP1");
34MODULE_VERSION("0.6.2"); 34MODULE_VERSION("0.6.3");
35MODULE_AUTHOR("Sebastian Witt <se.witt@gmx.net>"); 35MODULE_AUTHOR("Sebastian Witt <se.witt@gmx.net>");
36 36
37#define ATXP1_VID 0x00 37#define ATXP1_VID 0x00
@@ -289,16 +289,16 @@ static int atxp1_detect(struct i2c_client *new_client, int kind,
289 if (!((i2c_smbus_read_byte_data(new_client, 0x3e) == 0) && 289 if (!((i2c_smbus_read_byte_data(new_client, 0x3e) == 0) &&
290 (i2c_smbus_read_byte_data(new_client, 0x3f) == 0) && 290 (i2c_smbus_read_byte_data(new_client, 0x3f) == 0) &&
291 (i2c_smbus_read_byte_data(new_client, 0xfe) == 0) && 291 (i2c_smbus_read_byte_data(new_client, 0xfe) == 0) &&
292 (i2c_smbus_read_byte_data(new_client, 0xff) == 0) )) { 292 (i2c_smbus_read_byte_data(new_client, 0xff) == 0)))
293 return -ENODEV;
293 294
294 /* No vendor ID, now checking if registers 0x10,0x11 (non-existent) 295 /* No vendor ID, now checking if registers 0x10,0x11 (non-existent)
295 * showing the same as register 0x00 */ 296 * showing the same as register 0x00 */
296 temp = i2c_smbus_read_byte_data(new_client, 0x00); 297 temp = i2c_smbus_read_byte_data(new_client, 0x00);
297 298
298 if (!((i2c_smbus_read_byte_data(new_client, 0x10) == temp) && 299 if (!((i2c_smbus_read_byte_data(new_client, 0x10) == temp) &&
299 (i2c_smbus_read_byte_data(new_client, 0x11) == temp) )) 300 (i2c_smbus_read_byte_data(new_client, 0x11) == temp)))
300 return -ENODEV; 301 return -ENODEV;
301 }
302 302
303 /* Get VRM */ 303 /* Get VRM */
304 temp = vid_which_vrm(); 304 temp = vid_which_vrm();
diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
index 30cdb095677..f1133081cc4 100644
--- a/drivers/hwmon/it87.c
+++ b/drivers/hwmon/it87.c
@@ -273,10 +273,10 @@ struct it87_data {
273static inline int has_16bit_fans(const struct it87_data *data) 273static inline int has_16bit_fans(const struct it87_data *data)
274{ 274{
275 /* IT8705F Datasheet 0.4.1, 3h == Version G. 275 /* IT8705F Datasheet 0.4.1, 3h == Version G.
276 IT8712F Datasheet 0.9.1, section 8.3.5 indicates 7h == Version I. 276 IT8712F Datasheet 0.9.1, section 8.3.5 indicates 8h == Version J.
277 These are the first revisions with 16bit tachometer support. */ 277 These are the first revisions with 16bit tachometer support. */
278 return (data->type == it87 && data->revision >= 0x03) 278 return (data->type == it87 && data->revision >= 0x03)
279 || (data->type == it8712 && data->revision >= 0x07) 279 || (data->type == it8712 && data->revision >= 0x08)
280 || data->type == it8716 280 || data->type == it8716
281 || data->type == it8718; 281 || data->type == it8718;
282} 282}
diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c
index c1adcdbf797..9efb0213725 100644
--- a/drivers/i2c/busses/i2c-at91.c
+++ b/drivers/i2c/busses/i2c-at91.c
@@ -14,7 +14,6 @@
14*/ 14*/
15 15
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/version.h>
18#include <linux/kernel.h> 17#include <linux/kernel.h>
19#include <linux/err.h> 18#include <linux/err.h>
20#include <linux/slab.h> 19#include <linux/slab.h>
diff --git a/drivers/i2c/busses/i2c-powermac.c b/drivers/i2c/busses/i2c-powermac.c
index 22f6d5c00d8..0e7b1c6724a 100644
--- a/drivers/i2c/busses/i2c-powermac.c
+++ b/drivers/i2c/busses/i2c-powermac.c
@@ -180,7 +180,7 @@ static const struct i2c_algorithm i2c_powermac_algorithm = {
180}; 180};
181 181
182 182
183static int i2c_powermac_remove(struct platform_device *dev) 183static int __devexit i2c_powermac_remove(struct platform_device *dev)
184{ 184{
185 struct i2c_adapter *adapter = platform_get_drvdata(dev); 185 struct i2c_adapter *adapter = platform_get_drvdata(dev);
186 struct pmac_i2c_bus *bus = i2c_get_adapdata(adapter); 186 struct pmac_i2c_bus *bus = i2c_get_adapdata(adapter);
@@ -200,7 +200,7 @@ static int i2c_powermac_remove(struct platform_device *dev)
200} 200}
201 201
202 202
203static int __devexit i2c_powermac_probe(struct platform_device *dev) 203static int __devinit i2c_powermac_probe(struct platform_device *dev)
204{ 204{
205 struct pmac_i2c_bus *bus = dev->dev.platform_data; 205 struct pmac_i2c_bus *bus = dev->dev.platform_data;
206 struct device_node *parent = NULL; 206 struct device_node *parent = NULL;
diff --git a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c
index 840e634fa31..640cbb23732 100644
--- a/drivers/i2c/busses/i2c-sh_mobile.c
+++ b/drivers/i2c/busses/i2c-sh_mobile.c
@@ -31,13 +31,84 @@
31#include <linux/clk.h> 31#include <linux/clk.h>
32#include <linux/io.h> 32#include <linux/io.h>
33 33
34/* Transmit operation: */
35/* */
36/* 0 byte transmit */
37/* BUS: S A8 ACK P */
38/* IRQ: DTE WAIT */
39/* ICIC: */
40/* ICCR: 0x94 0x90 */
41/* ICDR: A8 */
42/* */
43/* 1 byte transmit */
44/* BUS: S A8 ACK D8(1) ACK P */
45/* IRQ: DTE WAIT WAIT */
46/* ICIC: -DTE */
47/* ICCR: 0x94 0x90 */
48/* ICDR: A8 D8(1) */
49/* */
50/* 2 byte transmit */
51/* BUS: S A8 ACK D8(1) ACK D8(2) ACK P */
52/* IRQ: DTE WAIT WAIT WAIT */
53/* ICIC: -DTE */
54/* ICCR: 0x94 0x90 */
55/* ICDR: A8 D8(1) D8(2) */
56/* */
57/* 3 bytes or more, +---------+ gets repeated */
58/* */
59/* */
60/* Receive operation: */
61/* */
62/* 0 byte receive - not supported since slave may hold SDA low */
63/* */
64/* 1 byte receive [TX] | [RX] */
65/* BUS: S A8 ACK | D8(1) ACK P */
66/* IRQ: DTE WAIT | WAIT DTE */
67/* ICIC: -DTE | +DTE */
68/* ICCR: 0x94 0x81 | 0xc0 */
69/* ICDR: A8 | D8(1) */
70/* */
71/* 2 byte receive [TX]| [RX] */
72/* BUS: S A8 ACK | D8(1) ACK D8(2) ACK P */
73/* IRQ: DTE WAIT | WAIT WAIT DTE */
74/* ICIC: -DTE | +DTE */
75/* ICCR: 0x94 0x81 | 0xc0 */
76/* ICDR: A8 | D8(1) D8(2) */
77/* */
78/* 3 byte receive [TX] | [RX] */
79/* BUS: S A8 ACK | D8(1) ACK D8(2) ACK D8(3) ACK P */
80/* IRQ: DTE WAIT | WAIT WAIT WAIT DTE */
81/* ICIC: -DTE | +DTE */
82/* ICCR: 0x94 0x81 | 0xc0 */
83/* ICDR: A8 | D8(1) D8(2) D8(3) */
84/* */
85/* 4 bytes or more, this part is repeated +---------+ */
86/* */
87/* */
88/* Interrupt order and BUSY flag */
89/* ___ _ */
90/* SDA ___\___XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXAAAAAAAAA___/ */
91/* SCL \_/1\_/2\_/3\_/4\_/5\_/6\_/7\_/8\___/9\_____/ */
92/* */
93/* S D7 D6 D5 D4 D3 D2 D1 D0 P */
94/* ___ */
95/* WAIT IRQ ________________________________/ \___________ */
96/* TACK IRQ ____________________________________/ \_______ */
97/* DTE IRQ __________________________________________/ \_ */
98/* AL IRQ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */
99/* _______________________________________________ */
100/* BUSY __/ \_ */
101/* */
102
34enum sh_mobile_i2c_op { 103enum sh_mobile_i2c_op {
35 OP_START = 0, 104 OP_START = 0,
36 OP_TX_ONLY, 105 OP_TX_FIRST,
106 OP_TX,
37 OP_TX_STOP, 107 OP_TX_STOP,
38 OP_TX_TO_RX, 108 OP_TX_TO_RX,
39 OP_RX_ONLY, 109 OP_RX,
40 OP_RX_STOP, 110 OP_RX_STOP,
111 OP_RX_STOP_DATA,
41}; 112};
42 113
43struct sh_mobile_i2c_data { 114struct sh_mobile_i2c_data {
@@ -127,25 +198,34 @@ static unsigned char i2c_op(struct sh_mobile_i2c_data *pd,
127 spin_lock_irqsave(&pd->lock, flags); 198 spin_lock_irqsave(&pd->lock, flags);
128 199
129 switch (op) { 200 switch (op) {
130 case OP_START: 201 case OP_START: /* issue start and trigger DTE interrupt */
131 iowrite8(0x94, ICCR(pd)); 202 iowrite8(0x94, ICCR(pd));
132 break; 203 break;
133 case OP_TX_ONLY: 204 case OP_TX_FIRST: /* disable DTE interrupt and write data */
205 iowrite8(ICIC_WAITE | ICIC_ALE | ICIC_TACKE, ICIC(pd));
134 iowrite8(data, ICDR(pd)); 206 iowrite8(data, ICDR(pd));
135 break; 207 break;
136 case OP_TX_STOP: 208 case OP_TX: /* write data */
137 iowrite8(data, ICDR(pd)); 209 iowrite8(data, ICDR(pd));
138 iowrite8(0x90, ICCR(pd));
139 iowrite8(ICIC_ALE | ICIC_TACKE, ICIC(pd));
140 break; 210 break;
141 case OP_TX_TO_RX: 211 case OP_TX_STOP: /* write data and issue a stop afterwards */
142 iowrite8(data, ICDR(pd)); 212 iowrite8(data, ICDR(pd));
213 iowrite8(0x90, ICCR(pd));
214 break;
215 case OP_TX_TO_RX: /* select read mode */
143 iowrite8(0x81, ICCR(pd)); 216 iowrite8(0x81, ICCR(pd));
144 break; 217 break;
145 case OP_RX_ONLY: 218 case OP_RX: /* just read data */
146 ret = ioread8(ICDR(pd)); 219 ret = ioread8(ICDR(pd));
147 break; 220 break;
148 case OP_RX_STOP: 221 case OP_RX_STOP: /* enable DTE interrupt, issue stop */
222 iowrite8(ICIC_DTEE | ICIC_WAITE | ICIC_ALE | ICIC_TACKE,
223 ICIC(pd));
224 iowrite8(0xc0, ICCR(pd));
225 break;
226 case OP_RX_STOP_DATA: /* enable DTE interrupt, read data, issue stop */
227 iowrite8(ICIC_DTEE | ICIC_WAITE | ICIC_ALE | ICIC_TACKE,
228 ICIC(pd));
149 ret = ioread8(ICDR(pd)); 229 ret = ioread8(ICDR(pd));
150 iowrite8(0xc0, ICCR(pd)); 230 iowrite8(0xc0, ICCR(pd));
151 break; 231 break;
@@ -157,58 +237,120 @@ static unsigned char i2c_op(struct sh_mobile_i2c_data *pd,
157 return ret; 237 return ret;
158} 238}
159 239
240static int sh_mobile_i2c_is_first_byte(struct sh_mobile_i2c_data *pd)
241{
242 if (pd->pos == -1)
243 return 1;
244
245 return 0;
246}
247
248static int sh_mobile_i2c_is_last_byte(struct sh_mobile_i2c_data *pd)
249{
250 if (pd->pos == (pd->msg->len - 1))
251 return 1;
252
253 return 0;
254}
255
256static void sh_mobile_i2c_get_data(struct sh_mobile_i2c_data *pd,
257 unsigned char *buf)
258{
259 switch (pd->pos) {
260 case -1:
261 *buf = (pd->msg->addr & 0x7f) << 1;
262 *buf |= (pd->msg->flags & I2C_M_RD) ? 1 : 0;
263 break;
264 default:
265 *buf = pd->msg->buf[pd->pos];
266 }
267}
268
269static int sh_mobile_i2c_isr_tx(struct sh_mobile_i2c_data *pd)
270{
271 unsigned char data;
272
273 if (pd->pos == pd->msg->len)
274 return 1;
275
276 sh_mobile_i2c_get_data(pd, &data);
277
278 if (sh_mobile_i2c_is_last_byte(pd))
279 i2c_op(pd, OP_TX_STOP, data);
280 else if (sh_mobile_i2c_is_first_byte(pd))
281 i2c_op(pd, OP_TX_FIRST, data);
282 else
283 i2c_op(pd, OP_TX, data);
284
285 pd->pos++;
286 return 0;
287}
288
289static int sh_mobile_i2c_isr_rx(struct sh_mobile_i2c_data *pd)
290{
291 unsigned char data;
292 int real_pos;
293
294 do {
295 if (pd->pos <= -1) {
296 sh_mobile_i2c_get_data(pd, &data);
297
298 if (sh_mobile_i2c_is_first_byte(pd))
299 i2c_op(pd, OP_TX_FIRST, data);
300 else
301 i2c_op(pd, OP_TX, data);
302 break;
303 }
304
305 if (pd->pos == 0) {
306 i2c_op(pd, OP_TX_TO_RX, 0);
307 break;
308 }
309
310 real_pos = pd->pos - 2;
311
312 if (pd->pos == pd->msg->len) {
313 if (real_pos < 0) {
314 i2c_op(pd, OP_RX_STOP, 0);
315 break;
316 }
317 data = i2c_op(pd, OP_RX_STOP_DATA, 0);
318 } else
319 data = i2c_op(pd, OP_RX, 0);
320
321 pd->msg->buf[real_pos] = data;
322 } while (0);
323
324 pd->pos++;
325 return pd->pos == (pd->msg->len + 2);
326}
327
160static irqreturn_t sh_mobile_i2c_isr(int irq, void *dev_id) 328static irqreturn_t sh_mobile_i2c_isr(int irq, void *dev_id)
161{ 329{
162 struct platform_device *dev = dev_id; 330 struct platform_device *dev = dev_id;
163 struct sh_mobile_i2c_data *pd = platform_get_drvdata(dev); 331 struct sh_mobile_i2c_data *pd = platform_get_drvdata(dev);
164 struct i2c_msg *msg = pd->msg; 332 unsigned char sr;
165 unsigned char data, sr; 333 int wakeup;
166 int wakeup = 0;
167 334
168 sr = ioread8(ICSR(pd)); 335 sr = ioread8(ICSR(pd));
169 pd->sr |= sr; 336 pd->sr |= sr; /* remember state */
170 337
171 dev_dbg(pd->dev, "i2c_isr 0x%02x 0x%02x %s %d %d!\n", sr, pd->sr, 338 dev_dbg(pd->dev, "i2c_isr 0x%02x 0x%02x %s %d %d!\n", sr, pd->sr,
172 (msg->flags & I2C_M_RD) ? "read" : "write", 339 (pd->msg->flags & I2C_M_RD) ? "read" : "write",
173 pd->pos, msg->len); 340 pd->pos, pd->msg->len);
174 341
175 if (sr & (ICSR_AL | ICSR_TACK)) { 342 if (sr & (ICSR_AL | ICSR_TACK)) {
176 iowrite8(0, ICIC(pd)); /* disable interrupts */ 343 /* don't interrupt transaction - continue to issue stop */
177 wakeup = 1; 344 iowrite8(sr & ~(ICSR_AL | ICSR_TACK), ICSR(pd));
178 goto do_wakeup; 345 wakeup = 0;
179 } 346 } else if (pd->msg->flags & I2C_M_RD)
347 wakeup = sh_mobile_i2c_isr_rx(pd);
348 else
349 wakeup = sh_mobile_i2c_isr_tx(pd);
180 350
181 if (pd->pos == msg->len) { 351 if (sr & ICSR_WAIT) /* TODO: add delay here to support slow acks */
182 i2c_op(pd, OP_RX_ONLY, 0); 352 iowrite8(sr & ~ICSR_WAIT, ICSR(pd));
183 wakeup = 1;
184 goto do_wakeup;
185 }
186 353
187 if (pd->pos == -1) {
188 data = (msg->addr & 0x7f) << 1;
189 data |= (msg->flags & I2C_M_RD) ? 1 : 0;
190 } else
191 data = msg->buf[pd->pos];
192
193 if ((pd->pos == -1) || !(msg->flags & I2C_M_RD)) {
194 if (msg->flags & I2C_M_RD)
195 i2c_op(pd, OP_TX_TO_RX, data);
196 else if (pd->pos == (msg->len - 1)) {
197 i2c_op(pd, OP_TX_STOP, data);
198 wakeup = 1;
199 } else
200 i2c_op(pd, OP_TX_ONLY, data);
201 } else {
202 if (pd->pos == (msg->len - 1))
203 data = i2c_op(pd, OP_RX_STOP, 0);
204 else
205 data = i2c_op(pd, OP_RX_ONLY, 0);
206
207 msg->buf[pd->pos] = data;
208 }
209 pd->pos++;
210
211 do_wakeup:
212 if (wakeup) { 354 if (wakeup) {
213 pd->sr |= SW_DONE; 355 pd->sr |= SW_DONE;
214 wake_up(&pd->wait); 356 wake_up(&pd->wait);
@@ -219,6 +361,11 @@ static irqreturn_t sh_mobile_i2c_isr(int irq, void *dev_id)
219 361
220static int start_ch(struct sh_mobile_i2c_data *pd, struct i2c_msg *usr_msg) 362static int start_ch(struct sh_mobile_i2c_data *pd, struct i2c_msg *usr_msg)
221{ 363{
364 if (usr_msg->len == 0 && (usr_msg->flags & I2C_M_RD)) {
365 dev_err(pd->dev, "Unsupported zero length i2c read\n");
366 return -EIO;
367 }
368
222 /* Initialize channel registers */ 369 /* Initialize channel registers */
223 iowrite8(ioread8(ICCR(pd)) & ~ICCR_ICE, ICCR(pd)); 370 iowrite8(ioread8(ICCR(pd)) & ~ICCR_ICE, ICCR(pd));
224 371
@@ -233,9 +380,8 @@ static int start_ch(struct sh_mobile_i2c_data *pd, struct i2c_msg *usr_msg)
233 pd->pos = -1; 380 pd->pos = -1;
234 pd->sr = 0; 381 pd->sr = 0;
235 382
236 /* Enable all interrupts except wait */ 383 /* Enable all interrupts to begin with */
237 iowrite8(ioread8(ICIC(pd)) | ICIC_ALE | ICIC_TACKE | ICIC_DTEE, 384 iowrite8(ICIC_WAITE | ICIC_ALE | ICIC_TACKE | ICIC_DTEE, ICIC(pd));
238 ICIC(pd));
239 return 0; 385 return 0;
240} 386}
241 387
@@ -268,25 +414,18 @@ static int sh_mobile_i2c_xfer(struct i2c_adapter *adapter,
268 if (!k) 414 if (!k)
269 dev_err(pd->dev, "Transfer request timed out\n"); 415 dev_err(pd->dev, "Transfer request timed out\n");
270 416
271 retry_count = 10; 417 retry_count = 1000;
272again: 418again:
273 val = ioread8(ICSR(pd)); 419 val = ioread8(ICSR(pd));
274 420
275 dev_dbg(pd->dev, "val 0x%02x pd->sr 0x%02x\n", val, pd->sr); 421 dev_dbg(pd->dev, "val 0x%02x pd->sr 0x%02x\n", val, pd->sr);
276 422
277 if ((val | pd->sr) & (ICSR_TACK | ICSR_AL)) {
278 err = -EIO;
279 break;
280 }
281
282 /* the interrupt handler may wake us up before the 423 /* the interrupt handler may wake us up before the
283 * transfer is finished, so poll the hardware 424 * transfer is finished, so poll the hardware
284 * until we're done. 425 * until we're done.
285 */ 426 */
286 427 if (val & ICSR_BUSY) {
287 if (!(!(val & ICSR_BUSY) && (val & ICSR_SCLM) && 428 udelay(10);
288 (val & ICSR_SDAM))) {
289 msleep(1);
290 if (retry_count--) 429 if (retry_count--)
291 goto again; 430 goto again;
292 431
@@ -294,6 +433,12 @@ again:
294 dev_err(pd->dev, "Polling timed out\n"); 433 dev_err(pd->dev, "Polling timed out\n");
295 break; 434 break;
296 } 435 }
436
437 /* handle missing acknowledge and arbitration lost */
438 if ((val | pd->sr) & (ICSR_TACK | ICSR_AL)) {
439 err = -EIO;
440 break;
441 }
297 } 442 }
298 443
299 deactivate_ch(pd); 444 deactivate_ch(pd);
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 550853f79ae..b346a687ab5 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -108,6 +108,9 @@ static int i2c_device_probe(struct device *dev)
108 if (!driver->probe || !driver->id_table) 108 if (!driver->probe || !driver->id_table)
109 return -ENODEV; 109 return -ENODEV;
110 client->driver = driver; 110 client->driver = driver;
111 if (!device_can_wakeup(&client->dev))
112 device_init_wakeup(&client->dev,
113 client->flags & I2C_CLIENT_WAKE);
111 dev_dbg(dev, "probe\n"); 114 dev_dbg(dev, "probe\n");
112 115
113 status = driver->probe(client, i2c_match_id(driver->id_table, client)); 116 status = driver->probe(client, i2c_match_id(driver->id_table, client));
@@ -262,9 +265,8 @@ i2c_new_device(struct i2c_adapter *adap, struct i2c_board_info const *info)
262 client->adapter = adap; 265 client->adapter = adap;
263 266
264 client->dev.platform_data = info->platform_data; 267 client->dev.platform_data = info->platform_data;
265 device_init_wakeup(&client->dev, info->flags & I2C_CLIENT_WAKE);
266 268
267 client->flags = info->flags & ~I2C_CLIENT_WAKE; 269 client->flags = info->flags;
268 client->addr = info->addr; 270 client->addr = info->addr;
269 client->irq = info->irq; 271 client->irq = info->irq;
270 272
@@ -1188,8 +1190,8 @@ int i2c_probe(struct i2c_adapter *adapter,
1188 && address_data->normal_i2c[0] == I2C_CLIENT_END) 1190 && address_data->normal_i2c[0] == I2C_CLIENT_END)
1189 return 0; 1191 return 0;
1190 1192
1191 dev_warn(&adapter->dev, "SMBus Quick command not supported, " 1193 dev_dbg(&adapter->dev, "SMBus Quick command not supported, "
1192 "can't probe for chips\n"); 1194 "can't probe for chips\n");
1193 return -EOPNOTSUPP; 1195 return -EOPNOTSUPP;
1194 } 1196 }
1195 1197
@@ -1350,6 +1352,10 @@ static int i2c_detect(struct i2c_adapter *adapter, struct i2c_driver *driver)
1350 } 1352 }
1351 } 1353 }
1352 1354
1355 /* Stop here if the classes do not match */
1356 if (!(adapter->class & driver->class))
1357 goto exit_free;
1358
1353 /* Stop here if we can't use SMBUS_QUICK */ 1359 /* Stop here if we can't use SMBUS_QUICK */
1354 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK)) { 1360 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK)) {
1355 if (address_data->probe[0] == I2C_CLIENT_END 1361 if (address_data->probe[0] == I2C_CLIENT_END
@@ -1362,10 +1368,6 @@ static int i2c_detect(struct i2c_adapter *adapter, struct i2c_driver *driver)
1362 goto exit_free; 1368 goto exit_free;
1363 } 1369 }
1364 1370
1365 /* Stop here if the classes do not match */
1366 if (!(adapter->class & driver->class))
1367 goto exit_free;
1368
1369 /* Probe entries are done second, and are not affected by ignore 1371 /* Probe entries are done second, and are not affected by ignore
1370 entries either */ 1372 entries either */
1371 for (i = 0; address_data->probe[i] != I2C_CLIENT_END; i += 2) { 1373 for (i = 0; address_data->probe[i] != I2C_CLIENT_END; i += 2) {
diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c
index af4491fa7e3..307d976c9b6 100644
--- a/drivers/i2c/i2c-dev.c
+++ b/drivers/i2c/i2c-dev.c
@@ -583,8 +583,10 @@ static int __init i2c_dev_init(void)
583 goto out; 583 goto out;
584 584
585 i2c_dev_class = class_create(THIS_MODULE, "i2c-dev"); 585 i2c_dev_class = class_create(THIS_MODULE, "i2c-dev");
586 if (IS_ERR(i2c_dev_class)) 586 if (IS_ERR(i2c_dev_class)) {
587 res = PTR_ERR(i2c_dev_class);
587 goto out_unreg_chrdev; 588 goto out_unreg_chrdev;
589 }
588 590
589 res = i2c_add_driver(&i2cdev_driver); 591 res = i2c_add_driver(&i2cdev_driver);
590 if (res) 592 if (res)
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
index a34758d2951..8e93a797c93 100644
--- a/drivers/ide/Kconfig
+++ b/drivers/ide/Kconfig
@@ -242,7 +242,7 @@ config BLK_DEV_IDEFLOPPY
242 module will be called ide-floppy. 242 module will be called ide-floppy.
243 243
244config BLK_DEV_IDESCSI 244config BLK_DEV_IDESCSI
245 tristate "SCSI emulation support" 245 tristate "SCSI emulation support (DEPRECATED)"
246 depends on SCSI 246 depends on SCSI
247 select IDE_ATAPI 247 select IDE_ATAPI
248 ---help--- 248 ---help---
@@ -255,20 +255,6 @@ config BLK_DEV_IDESCSI
255 and will allow you to use a SCSI device driver instead of a native 255 and will allow you to use a SCSI device driver instead of a native
256 ATAPI driver. 256 ATAPI driver.
257 257
258 This is useful if you have an ATAPI device for which no native
259 driver has been written (for example, an ATAPI PD-CD drive);
260 you can then use this emulation together with an appropriate SCSI
261 device driver. In order to do this, say Y here and to "SCSI support"
262 and "SCSI generic support", below. You must then provide the kernel
263 command line "hdx=ide-scsi" (try "man bootparam" or see the
264 documentation of your boot loader (lilo or loadlin) about how to
265 pass options to the kernel at boot time) for devices if you want the
266 native EIDE sub-drivers to skip over the native support, so that
267 this SCSI emulation can be used instead.
268
269 Note that this option does NOT allow you to attach SCSI devices to a
270 box that doesn't have a SCSI host adapter installed.
271
272 If both this SCSI emulation and native ATAPI support are compiled 258 If both this SCSI emulation and native ATAPI support are compiled
273 into the kernel, the native support will be used. 259 into the kernel, the native support will be used.
274 260
@@ -306,6 +292,20 @@ config IDE_GENERIC
306 tristate "generic/default IDE chipset support" 292 tristate "generic/default IDE chipset support"
307 depends on ALPHA || X86 || IA64 || M32R || MIPS 293 depends on ALPHA || X86 || IA64 || M32R || MIPS
308 help 294 help
295 This is the generic IDE driver. This driver attaches to the
296 fixed legacy ports (e.g. on PCs 0x1f0/0x170, 0x1e8/0x168 and
297 so on). Please note that if this driver is built into the
298 kernel or loaded before other ATA (IDE or libata) drivers
299 and the controller is located at legacy ports, this driver
300 may grab those ports and thus can prevent the controller
301 specific driver from attaching.
302
303 Also, currently, IDE generic doesn't allow IRQ sharing
304 meaning that the IRQs it grabs won't be available to other
305 controllers sharing those IRQs which usually makes drivers
306 for those controllers fail. Generally, it's not a good idea
307 to load IDE generic driver on modern systems.
308
309 If unsure, say N. 309 If unsure, say N.
310 310
311config BLK_DEV_PLATFORM 311config BLK_DEV_PLATFORM
diff --git a/drivers/ide/arm/palm_bk3710.c b/drivers/ide/arm/palm_bk3710.c
index f788fa5a977..4fd91dcf1dc 100644
--- a/drivers/ide/arm/palm_bk3710.c
+++ b/drivers/ide/arm/palm_bk3710.c
@@ -343,11 +343,10 @@ static struct ide_port_info __devinitdata palm_bk3710_port_info = {
343 .mwdma_mask = ATA_MWDMA2, 343 .mwdma_mask = ATA_MWDMA2,
344}; 344};
345 345
346static int __devinit palm_bk3710_probe(struct platform_device *pdev) 346static int __init palm_bk3710_probe(struct platform_device *pdev)
347{ 347{
348 struct clk *clk; 348 struct clk *clk;
349 struct resource *mem, *irq; 349 struct resource *mem, *irq;
350 struct ide_host *host;
351 unsigned long base, rate; 350 unsigned long base, rate;
352 int i, rc; 351 int i, rc;
353 hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL }; 352 hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };
@@ -390,6 +389,7 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
390 hw.io_ports_array[i] = base + IDE_PALM_ATA_PRI_REG_OFFSET + i; 389 hw.io_ports_array[i] = base + IDE_PALM_ATA_PRI_REG_OFFSET + i;
391 hw.io_ports.ctl_addr = base + IDE_PALM_ATA_PRI_CTL_OFFSET; 390 hw.io_ports.ctl_addr = base + IDE_PALM_ATA_PRI_CTL_OFFSET;
392 hw.irq = irq->start; 391 hw.irq = irq->start;
392 hw.dev = &pdev->dev;
393 hw.chipset = ide_palm3710; 393 hw.chipset = ide_palm3710;
394 394
395 palm_bk3710_port_info.udma_mask = rate < 100000000 ? ATA_UDMA4 : 395 palm_bk3710_port_info.udma_mask = rate < 100000000 ? ATA_UDMA4 :
@@ -413,13 +413,11 @@ static struct platform_driver platform_bk_driver = {
413 .name = "palm_bk3710", 413 .name = "palm_bk3710",
414 .owner = THIS_MODULE, 414 .owner = THIS_MODULE,
415 }, 415 },
416 .probe = palm_bk3710_probe,
417 .remove = NULL,
418}; 416};
419 417
420static int __init palm_bk3710_init(void) 418static int __init palm_bk3710_init(void)
421{ 419{
422 return platform_driver_register(&platform_bk_driver); 420 return platform_driver_probe(&platform_bk_driver, palm_bk3710_probe);
423} 421}
424 422
425module_init(palm_bk3710_init); 423module_init(palm_bk3710_init);
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index 68b9cf0138b..07ef88bd109 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -445,20 +445,6 @@ static void idedisk_check_hpa(ide_drive_t *drive)
445 } 445 }
446} 446}
447 447
448/*
449 * Compute drive->capacity, the full capacity of the drive
450 * Called with drive->id != NULL.
451 *
452 * To compute capacity, this uses either of
453 *
454 * 1. CHS value set by user (whatever user sets will be trusted)
455 * 2. LBA value from target drive (require new ATA feature)
456 * 3. LBA value from system BIOS (new one is OK, old one may break)
457 * 4. CHS value from system BIOS (traditional style)
458 *
459 * in above order (i.e., if value of higher priority is available,
460 * reset will be ignored).
461 */
462static void init_idedisk_capacity(ide_drive_t *drive) 448static void init_idedisk_capacity(ide_drive_t *drive)
463{ 449{
464 struct hd_driveid *id = drive->id; 450 struct hd_driveid *id = drive->id;
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index 1bce84b5663..3833189144e 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -2338,7 +2338,7 @@ static void idetape_get_inquiry_results(ide_drive_t *drive)
2338{ 2338{
2339 idetape_tape_t *tape = drive->driver_data; 2339 idetape_tape_t *tape = drive->driver_data;
2340 struct ide_atapi_pc pc; 2340 struct ide_atapi_pc pc;
2341 char fw_rev[6], vendor_id[10], product_id[18]; 2341 char fw_rev[4], vendor_id[8], product_id[16];
2342 2342
2343 idetape_create_inquiry_cmd(&pc); 2343 idetape_create_inquiry_cmd(&pc);
2344 if (idetape_queue_pc_tail(drive, &pc)) { 2344 if (idetape_queue_pc_tail(drive, &pc)) {
@@ -2350,11 +2350,11 @@ static void idetape_get_inquiry_results(ide_drive_t *drive)
2350 memcpy(product_id, &pc.buf[16], 16); 2350 memcpy(product_id, &pc.buf[16], 16);
2351 memcpy(fw_rev, &pc.buf[32], 4); 2351 memcpy(fw_rev, &pc.buf[32], 4);
2352 2352
2353 ide_fixstring(vendor_id, 10, 0); 2353 ide_fixstring(vendor_id, 8, 0);
2354 ide_fixstring(product_id, 18, 0); 2354 ide_fixstring(product_id, 16, 0);
2355 ide_fixstring(fw_rev, 6, 0); 2355 ide_fixstring(fw_rev, 4, 0);
2356 2356
2357 printk(KERN_INFO "ide-tape: %s <-> %s: %s %s rev %s\n", 2357 printk(KERN_INFO "ide-tape: %s <-> %s: %.8s %.16s rev %.4s\n",
2358 drive->name, tape->name, vendor_id, product_id, fw_rev); 2358 drive->name, tape->name, vendor_id, product_id, fw_rev);
2359} 2359}
2360 2360
diff --git a/drivers/ide/mips/swarm.c b/drivers/ide/mips/swarm.c
index badf79fc9e3..39c9ee99585 100644
--- a/drivers/ide/mips/swarm.c
+++ b/drivers/ide/mips/swarm.c
@@ -107,6 +107,7 @@ static int __devinit swarm_ide_probe(struct device *dev)
107 107
108 base = ioremap(offset, size); 108 base = ioremap(offset, size);
109 109
110 memset(&hw, 0, sizeof(hw));
110 for (i = 0; i <= 7; i++) 111 for (i = 0; i <= 7; i++)
111 hw.io_ports_array[i] = 112 hw.io_ports_array[i] =
112 (unsigned long)(base + ((0x1f0 + i) << 5)); 113 (unsigned long)(base + ((0x1f0 + i) << 5));
diff --git a/drivers/ide/pci/hpt366.c b/drivers/ide/pci/hpt366.c
index eb107eef0db..c37ab174381 100644
--- a/drivers/ide/pci/hpt366.c
+++ b/drivers/ide/pci/hpt366.c
@@ -613,6 +613,14 @@ static int check_in_drive_list(ide_drive_t *drive, const char **list)
613 return 0; 613 return 0;
614} 614}
615 615
616static struct hpt_info *hpt3xx_get_info(struct device *dev)
617{
618 struct ide_host *host = dev_get_drvdata(dev);
619 struct hpt_info *info = (struct hpt_info *)host->host_priv;
620
621 return dev == host->dev[1] ? info + 1 : info;
622}
623
616/* 624/*
617 * The Marvell bridge chips used on the HighPoint SATA cards do not seem 625 * The Marvell bridge chips used on the HighPoint SATA cards do not seem
618 * to support the UltraDMA modes 1, 2, and 3 as well as any MWDMA modes... 626 * to support the UltraDMA modes 1, 2, and 3 as well as any MWDMA modes...
@@ -621,9 +629,7 @@ static int check_in_drive_list(ide_drive_t *drive, const char **list)
621static u8 hpt3xx_udma_filter(ide_drive_t *drive) 629static u8 hpt3xx_udma_filter(ide_drive_t *drive)
622{ 630{
623 ide_hwif_t *hwif = HWIF(drive); 631 ide_hwif_t *hwif = HWIF(drive);
624 struct pci_dev *dev = to_pci_dev(hwif->dev); 632 struct hpt_info *info = hpt3xx_get_info(hwif->dev);
625 struct ide_host *host = pci_get_drvdata(dev);
626 struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
627 u8 mask = hwif->ultra_mask; 633 u8 mask = hwif->ultra_mask;
628 634
629 switch (info->chip_type) { 635 switch (info->chip_type) {
@@ -662,9 +668,7 @@ static u8 hpt3xx_udma_filter(ide_drive_t *drive)
662static u8 hpt3xx_mdma_filter(ide_drive_t *drive) 668static u8 hpt3xx_mdma_filter(ide_drive_t *drive)
663{ 669{
664 ide_hwif_t *hwif = HWIF(drive); 670 ide_hwif_t *hwif = HWIF(drive);
665 struct pci_dev *dev = to_pci_dev(hwif->dev); 671 struct hpt_info *info = hpt3xx_get_info(hwif->dev);
666 struct ide_host *host = pci_get_drvdata(dev);
667 struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
668 672
669 switch (info->chip_type) { 673 switch (info->chip_type) {
670 case HPT372 : 674 case HPT372 :
@@ -700,8 +704,7 @@ static void hpt3xx_set_mode(ide_drive_t *drive, const u8 speed)
700{ 704{
701 ide_hwif_t *hwif = drive->hwif; 705 ide_hwif_t *hwif = drive->hwif;
702 struct pci_dev *dev = to_pci_dev(hwif->dev); 706 struct pci_dev *dev = to_pci_dev(hwif->dev);
703 struct ide_host *host = pci_get_drvdata(dev); 707 struct hpt_info *info = hpt3xx_get_info(hwif->dev);
704 struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
705 struct hpt_timings *t = info->timings; 708 struct hpt_timings *t = info->timings;
706 u8 itr_addr = 0x40 + (drive->dn * 4); 709 u8 itr_addr = 0x40 + (drive->dn * 4);
707 u32 old_itr = 0; 710 u32 old_itr = 0;
@@ -744,8 +747,7 @@ static void hpt3xx_maskproc(ide_drive_t *drive, int mask)
744{ 747{
745 ide_hwif_t *hwif = HWIF(drive); 748 ide_hwif_t *hwif = HWIF(drive);
746 struct pci_dev *dev = to_pci_dev(hwif->dev); 749 struct pci_dev *dev = to_pci_dev(hwif->dev);
747 struct ide_host *host = pci_get_drvdata(dev); 750 struct hpt_info *info = hpt3xx_get_info(hwif->dev);
748 struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
749 751
750 if (drive->quirk_list) { 752 if (drive->quirk_list) {
751 if (info->chip_type >= HPT370) { 753 if (info->chip_type >= HPT370) {
@@ -973,8 +975,7 @@ static int __devinit hpt37x_calibrate_dpll(struct pci_dev *dev, u16 f_low, u16 f
973static unsigned int __devinit init_chipset_hpt366(struct pci_dev *dev) 975static unsigned int __devinit init_chipset_hpt366(struct pci_dev *dev)
974{ 976{
975 unsigned long io_base = pci_resource_start(dev, 4); 977 unsigned long io_base = pci_resource_start(dev, 4);
976 struct ide_host *host = pci_get_drvdata(dev); 978 struct hpt_info *info = hpt3xx_get_info(&dev->dev);
977 struct hpt_info *info = host->host_priv + (&dev->dev == host->dev[1]);
978 const char *name = DRV_NAME; 979 const char *name = DRV_NAME;
979 u8 pci_clk, dpll_clk = 0; /* PCI and DPLL clock in MHz */ 980 u8 pci_clk, dpll_clk = 0; /* PCI and DPLL clock in MHz */
980 u8 chip_type; 981 u8 chip_type;
@@ -1217,8 +1218,7 @@ static unsigned int __devinit init_chipset_hpt366(struct pci_dev *dev)
1217static u8 hpt3xx_cable_detect(ide_hwif_t *hwif) 1218static u8 hpt3xx_cable_detect(ide_hwif_t *hwif)
1218{ 1219{
1219 struct pci_dev *dev = to_pci_dev(hwif->dev); 1220 struct pci_dev *dev = to_pci_dev(hwif->dev);
1220 struct ide_host *host = pci_get_drvdata(dev); 1221 struct hpt_info *info = hpt3xx_get_info(hwif->dev);
1221 struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
1222 u8 chip_type = info->chip_type; 1222 u8 chip_type = info->chip_type;
1223 u8 scr1 = 0, ata66 = hwif->channel ? 0x01 : 0x02; 1223 u8 scr1 = 0, ata66 = hwif->channel ? 0x01 : 0x02;
1224 1224
@@ -1262,8 +1262,7 @@ static u8 hpt3xx_cable_detect(ide_hwif_t *hwif)
1262static void __devinit init_hwif_hpt366(ide_hwif_t *hwif) 1262static void __devinit init_hwif_hpt366(ide_hwif_t *hwif)
1263{ 1263{
1264 struct pci_dev *dev = to_pci_dev(hwif->dev); 1264 struct pci_dev *dev = to_pci_dev(hwif->dev);
1265 struct ide_host *host = pci_get_drvdata(dev); 1265 struct hpt_info *info = hpt3xx_get_info(hwif->dev);
1266 struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
1267 int serialize = HPT_SERIALIZE_IO; 1266 int serialize = HPT_SERIALIZE_IO;
1268 u8 chip_type = info->chip_type; 1267 u8 chip_type = info->chip_type;
1269 u8 new_mcr, old_mcr = 0; 1268 u8 new_mcr, old_mcr = 0;
diff --git a/drivers/infiniband/hw/ehca/ehca_tools.h b/drivers/infiniband/hw/ehca/ehca_tools.h
index ec950bf8c47..21f7d06f14a 100644
--- a/drivers/infiniband/hw/ehca/ehca_tools.h
+++ b/drivers/infiniband/hw/ehca/ehca_tools.h
@@ -54,7 +54,6 @@
54#include <linux/module.h> 54#include <linux/module.h>
55#include <linux/moduleparam.h> 55#include <linux/moduleparam.h>
56#include <linux/vmalloc.h> 56#include <linux/vmalloc.h>
57#include <linux/version.h>
58#include <linux/notifier.h> 57#include <linux/notifier.h>
59#include <linux/cpu.h> 58#include <linux/cpu.h>
60#include <linux/device.h> 59#include <linux/device.h>
diff --git a/drivers/infiniband/hw/ipath/ipath_fs.c b/drivers/infiniband/hw/ipath/ipath_fs.c
index 23faba9d21e..8bb5170b4e4 100644
--- a/drivers/infiniband/hw/ipath/ipath_fs.c
+++ b/drivers/infiniband/hw/ipath/ipath_fs.c
@@ -31,7 +31,6 @@
31 * SOFTWARE. 31 * SOFTWARE.
32 */ 32 */
33 33
34#include <linux/version.h>
35#include <linux/module.h> 34#include <linux/module.h>
36#include <linux/fs.h> 35#include <linux/fs.h>
37#include <linux/mount.h> 36#include <linux/mount.h>
diff --git a/drivers/infiniband/hw/ipath/ipath_iba7220.c b/drivers/infiniband/hw/ipath/ipath_iba7220.c
index d90f5e9a54f..9839e20119b 100644
--- a/drivers/infiniband/hw/ipath/ipath_iba7220.c
+++ b/drivers/infiniband/hw/ipath/ipath_iba7220.c
@@ -1720,7 +1720,7 @@ static void ipath_7220_put_tid(struct ipath_devdata *dd, u64 __iomem *tidptr,
1720 "not 2KB aligned!\n", pa); 1720 "not 2KB aligned!\n", pa);
1721 return; 1721 return;
1722 } 1722 }
1723 if (pa >= (1UL << IBA7220_TID_SZ_SHIFT)) { 1723 if (chippa >= (1UL << IBA7220_TID_SZ_SHIFT)) {
1724 ipath_dev_err(dd, 1724 ipath_dev_err(dd,
1725 "BUG: Physical page address 0x%lx " 1725 "BUG: Physical page address 0x%lx "
1726 "larger than supported\n", pa); 1726 "larger than supported\n", pa);
diff --git a/drivers/infiniband/hw/ipath/ipath_ud.c b/drivers/infiniband/hw/ipath/ipath_ud.c
index 36aa242c487..729446f56aa 100644
--- a/drivers/infiniband/hw/ipath/ipath_ud.c
+++ b/drivers/infiniband/hw/ipath/ipath_ud.c
@@ -267,6 +267,7 @@ int ipath_make_ud_req(struct ipath_qp *qp)
267 u16 lrh0; 267 u16 lrh0;
268 u16 lid; 268 u16 lid;
269 int ret = 0; 269 int ret = 0;
270 int next_cur;
270 271
271 spin_lock_irqsave(&qp->s_lock, flags); 272 spin_lock_irqsave(&qp->s_lock, flags);
272 273
@@ -290,8 +291,9 @@ int ipath_make_ud_req(struct ipath_qp *qp)
290 goto bail; 291 goto bail;
291 292
292 wqe = get_swqe_ptr(qp, qp->s_cur); 293 wqe = get_swqe_ptr(qp, qp->s_cur);
293 if (++qp->s_cur >= qp->s_size) 294 next_cur = qp->s_cur + 1;
294 qp->s_cur = 0; 295 if (next_cur >= qp->s_size)
296 next_cur = 0;
295 297
296 /* Construct the header. */ 298 /* Construct the header. */
297 ah_attr = &to_iah(wqe->wr.wr.ud.ah)->attr; 299 ah_attr = &to_iah(wqe->wr.wr.ud.ah)->attr;
@@ -315,6 +317,7 @@ int ipath_make_ud_req(struct ipath_qp *qp)
315 qp->s_flags |= IPATH_S_WAIT_DMA; 317 qp->s_flags |= IPATH_S_WAIT_DMA;
316 goto bail; 318 goto bail;
317 } 319 }
320 qp->s_cur = next_cur;
318 spin_unlock_irqrestore(&qp->s_lock, flags); 321 spin_unlock_irqrestore(&qp->s_lock, flags);
319 ipath_ud_loopback(qp, wqe); 322 ipath_ud_loopback(qp, wqe);
320 spin_lock_irqsave(&qp->s_lock, flags); 323 spin_lock_irqsave(&qp->s_lock, flags);
@@ -323,6 +326,7 @@ int ipath_make_ud_req(struct ipath_qp *qp)
323 } 326 }
324 } 327 }
325 328
329 qp->s_cur = next_cur;
326 extra_bytes = -wqe->length & 3; 330 extra_bytes = -wqe->length & 3;
327 nwords = (wqe->length + extra_bytes) >> 2; 331 nwords = (wqe->length + extra_bytes) >> 2;
328 332
diff --git a/drivers/infiniband/hw/mlx4/mr.c b/drivers/infiniband/hw/mlx4/mr.c
index a4cdb465cd1..87f5c5a87b9 100644
--- a/drivers/infiniband/hw/mlx4/mr.c
+++ b/drivers/infiniband/hw/mlx4/mr.c
@@ -204,6 +204,8 @@ struct ib_mr *mlx4_ib_alloc_fast_reg_mr(struct ib_pd *pd,
204 if (err) 204 if (err)
205 goto err_mr; 205 goto err_mr;
206 206
207 mr->ibmr.rkey = mr->ibmr.lkey = mr->mmr.key;
208
207 return &mr->ibmr; 209 return &mr->ibmr;
208 210
209err_mr: 211err_mr:
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c
index f29dbb767e8..9559248f265 100644
--- a/drivers/infiniband/hw/mlx4/qp.c
+++ b/drivers/infiniband/hw/mlx4/qp.c
@@ -1342,6 +1342,12 @@ static __be32 convert_access(int acc)
1342static void set_fmr_seg(struct mlx4_wqe_fmr_seg *fseg, struct ib_send_wr *wr) 1342static void set_fmr_seg(struct mlx4_wqe_fmr_seg *fseg, struct ib_send_wr *wr)
1343{ 1343{
1344 struct mlx4_ib_fast_reg_page_list *mfrpl = to_mfrpl(wr->wr.fast_reg.page_list); 1344 struct mlx4_ib_fast_reg_page_list *mfrpl = to_mfrpl(wr->wr.fast_reg.page_list);
1345 int i;
1346
1347 for (i = 0; i < wr->wr.fast_reg.page_list_len; ++i)
1348 wr->wr.fast_reg.page_list->page_list[i] =
1349 cpu_to_be64(wr->wr.fast_reg.page_list->page_list[i] |
1350 MLX4_MTT_FLAG_PRESENT);
1345 1351
1346 fseg->flags = convert_access(wr->wr.fast_reg.access_flags); 1352 fseg->flags = convert_access(wr->wr.fast_reg.access_flags);
1347 fseg->mem_key = cpu_to_be32(wr->wr.fast_reg.rkey); 1353 fseg->mem_key = cpu_to_be32(wr->wr.fast_reg.rkey);
diff --git a/drivers/infiniband/hw/nes/nes.h b/drivers/infiniband/hw/nes/nes.h
index 39bd897b40c..8eb7ae96974 100644
--- a/drivers/infiniband/hw/nes/nes.h
+++ b/drivers/infiniband/hw/nes/nes.h
@@ -43,7 +43,6 @@
43#include <linux/dma-mapping.h> 43#include <linux/dma-mapping.h>
44#include <linux/workqueue.h> 44#include <linux/workqueue.h>
45#include <linux/slab.h> 45#include <linux/slab.h>
46#include <linux/version.h>
47#include <asm/io.h> 46#include <asm/io.h>
48#include <linux/crc32c.h> 47#include <linux/crc32c.h>
49 48
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index 9f0b964b2c9..499d3cf83e1 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -1956,13 +1956,6 @@ static int mini_cm_reject(struct nes_cm_core *cm_core,
1956 return ret; 1956 return ret;
1957 cleanup_retrans_entry(cm_node); 1957 cleanup_retrans_entry(cm_node);
1958 cm_node->state = NES_CM_STATE_CLOSED; 1958 cm_node->state = NES_CM_STATE_CLOSED;
1959 ret = send_fin(cm_node, NULL);
1960
1961 if (cm_node->accept_pend) {
1962 BUG_ON(!cm_node->listener);
1963 atomic_dec(&cm_node->listener->pend_accepts_cnt);
1964 BUG_ON(atomic_read(&cm_node->listener->pend_accepts_cnt) < 0);
1965 }
1966 1959
1967 ret = send_reset(cm_node, NULL); 1960 ret = send_reset(cm_node, NULL);
1968 return ret; 1961 return ret;
@@ -2383,6 +2376,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
2383 atomic_inc(&cm_disconnects); 2376 atomic_inc(&cm_disconnects);
2384 cm_event.event = IW_CM_EVENT_DISCONNECT; 2377 cm_event.event = IW_CM_EVENT_DISCONNECT;
2385 if (last_ae == NES_AEQE_AEID_LLP_CONNECTION_RESET) { 2378 if (last_ae == NES_AEQE_AEID_LLP_CONNECTION_RESET) {
2379 issued_disconnect_reset = 1;
2386 cm_event.status = IW_CM_EVENT_STATUS_RESET; 2380 cm_event.status = IW_CM_EVENT_STATUS_RESET;
2387 nes_debug(NES_DBG_CM, "Generating a CM " 2381 nes_debug(NES_DBG_CM, "Generating a CM "
2388 "Disconnect Event (status reset) for " 2382 "Disconnect Event (status reset) for "
@@ -2508,7 +2502,6 @@ static int nes_disconnect(struct nes_qp *nesqp, int abrupt)
2508 nes_debug(NES_DBG_CM, "Call close API\n"); 2502 nes_debug(NES_DBG_CM, "Call close API\n");
2509 2503
2510 g_cm_core->api->close(g_cm_core, nesqp->cm_node); 2504 g_cm_core->api->close(g_cm_core, nesqp->cm_node);
2511 nesqp->cm_node = NULL;
2512 } 2505 }
2513 2506
2514 return ret; 2507 return ret;
@@ -2837,6 +2830,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
2837 cm_node->apbvt_set = 1; 2830 cm_node->apbvt_set = 1;
2838 nesqp->cm_node = cm_node; 2831 nesqp->cm_node = cm_node;
2839 cm_node->nesqp = nesqp; 2832 cm_node->nesqp = nesqp;
2833 nes_add_ref(&nesqp->ibqp);
2840 2834
2841 return 0; 2835 return 0;
2842} 2836}
@@ -3167,7 +3161,6 @@ static void cm_event_connect_error(struct nes_cm_event *event)
3167 if (ret) 3161 if (ret)
3168 printk(KERN_ERR "%s[%u] OFA CM event_handler returned, " 3162 printk(KERN_ERR "%s[%u] OFA CM event_handler returned, "
3169 "ret=%d\n", __func__, __LINE__, ret); 3163 "ret=%d\n", __func__, __LINE__, ret);
3170 nes_rem_ref(&nesqp->ibqp);
3171 cm_id->rem_ref(cm_id); 3164 cm_id->rem_ref(cm_id);
3172 3165
3173 rem_ref_cm_node(event->cm_node->cm_core, event->cm_node); 3166 rem_ref_cm_node(event->cm_node->cm_core, event->cm_node);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h
index b0ffc9abe8c..05eb41b8ab6 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib.h
+++ b/drivers/infiniband/ulp/ipoib/ipoib.h
@@ -293,6 +293,7 @@ struct ipoib_dev_priv {
293 293
294 struct delayed_work pkey_poll_task; 294 struct delayed_work pkey_poll_task;
295 struct delayed_work mcast_task; 295 struct delayed_work mcast_task;
296 struct work_struct carrier_on_task;
296 struct work_struct flush_light; 297 struct work_struct flush_light;
297 struct work_struct flush_normal; 298 struct work_struct flush_normal;
298 struct work_struct flush_heavy; 299 struct work_struct flush_heavy;
@@ -464,6 +465,7 @@ int ipoib_dev_init(struct net_device *dev, struct ib_device *ca, int port);
464void ipoib_dev_cleanup(struct net_device *dev); 465void ipoib_dev_cleanup(struct net_device *dev);
465 466
466void ipoib_mcast_join_task(struct work_struct *work); 467void ipoib_mcast_join_task(struct work_struct *work);
468void ipoib_mcast_carrier_on_task(struct work_struct *work);
467void ipoib_mcast_send(struct net_device *dev, void *mgid, struct sk_buff *skb); 469void ipoib_mcast_send(struct net_device *dev, void *mgid, struct sk_buff *skb);
468 470
469void ipoib_mcast_restart_task(struct work_struct *work); 471void ipoib_mcast_restart_task(struct work_struct *work);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index f51201b17bf..e9ca3cb57d5 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -156,14 +156,8 @@ static int ipoib_stop(struct net_device *dev)
156 156
157 netif_stop_queue(dev); 157 netif_stop_queue(dev);
158 158
159 /* 159 ipoib_ib_dev_down(dev, 0);
160 * Now flush workqueue to make sure a scheduled task doesn't 160 ipoib_ib_dev_stop(dev, 0);
161 * bring our internal state back up.
162 */
163 flush_workqueue(ipoib_workqueue);
164
165 ipoib_ib_dev_down(dev, 1);
166 ipoib_ib_dev_stop(dev, 1);
167 161
168 if (!test_bit(IPOIB_FLAG_SUBINTERFACE, &priv->flags)) { 162 if (!test_bit(IPOIB_FLAG_SUBINTERFACE, &priv->flags)) {
169 struct ipoib_dev_priv *cpriv; 163 struct ipoib_dev_priv *cpriv;
@@ -410,7 +404,7 @@ static void path_rec_completion(int status,
410 struct net_device *dev = path->dev; 404 struct net_device *dev = path->dev;
411 struct ipoib_dev_priv *priv = netdev_priv(dev); 405 struct ipoib_dev_priv *priv = netdev_priv(dev);
412 struct ipoib_ah *ah = NULL; 406 struct ipoib_ah *ah = NULL;
413 struct ipoib_ah *old_ah; 407 struct ipoib_ah *old_ah = NULL;
414 struct ipoib_neigh *neigh, *tn; 408 struct ipoib_neigh *neigh, *tn;
415 struct sk_buff_head skqueue; 409 struct sk_buff_head skqueue;
416 struct sk_buff *skb; 410 struct sk_buff *skb;
@@ -434,12 +428,12 @@ static void path_rec_completion(int status,
434 428
435 spin_lock_irqsave(&priv->lock, flags); 429 spin_lock_irqsave(&priv->lock, flags);
436 430
437 old_ah = path->ah;
438 path->ah = ah;
439
440 if (ah) { 431 if (ah) {
441 path->pathrec = *pathrec; 432 path->pathrec = *pathrec;
442 433
434 old_ah = path->ah;
435 path->ah = ah;
436
443 ipoib_dbg(priv, "created address handle %p for LID 0x%04x, SL %d\n", 437 ipoib_dbg(priv, "created address handle %p for LID 0x%04x, SL %d\n",
444 ah, be16_to_cpu(pathrec->dlid), pathrec->sl); 438 ah, be16_to_cpu(pathrec->dlid), pathrec->sl);
445 439
@@ -1081,6 +1075,7 @@ static void ipoib_setup(struct net_device *dev)
1081 1075
1082 INIT_DELAYED_WORK(&priv->pkey_poll_task, ipoib_pkey_poll); 1076 INIT_DELAYED_WORK(&priv->pkey_poll_task, ipoib_pkey_poll);
1083 INIT_DELAYED_WORK(&priv->mcast_task, ipoib_mcast_join_task); 1077 INIT_DELAYED_WORK(&priv->mcast_task, ipoib_mcast_join_task);
1078 INIT_WORK(&priv->carrier_on_task, ipoib_mcast_carrier_on_task);
1084 INIT_WORK(&priv->flush_light, ipoib_ib_dev_flush_light); 1079 INIT_WORK(&priv->flush_light, ipoib_ib_dev_flush_light);
1085 INIT_WORK(&priv->flush_normal, ipoib_ib_dev_flush_normal); 1080 INIT_WORK(&priv->flush_normal, ipoib_ib_dev_flush_normal);
1086 INIT_WORK(&priv->flush_heavy, ipoib_ib_dev_flush_heavy); 1081 INIT_WORK(&priv->flush_heavy, ipoib_ib_dev_flush_heavy);
@@ -1314,7 +1309,7 @@ sysfs_failed:
1314 1309
1315register_failed: 1310register_failed:
1316 ib_unregister_event_handler(&priv->event_handler); 1311 ib_unregister_event_handler(&priv->event_handler);
1317 flush_scheduled_work(); 1312 flush_workqueue(ipoib_workqueue);
1318 1313
1319event_failed: 1314event_failed:
1320 ipoib_dev_cleanup(priv->dev); 1315 ipoib_dev_cleanup(priv->dev);
@@ -1373,7 +1368,12 @@ static void ipoib_remove_one(struct ib_device *device)
1373 1368
1374 list_for_each_entry_safe(priv, tmp, dev_list, list) { 1369 list_for_each_entry_safe(priv, tmp, dev_list, list) {
1375 ib_unregister_event_handler(&priv->event_handler); 1370 ib_unregister_event_handler(&priv->event_handler);
1376 flush_scheduled_work(); 1371
1372 rtnl_lock();
1373 dev_change_flags(priv->dev, priv->dev->flags & ~IFF_UP);
1374 rtnl_unlock();
1375
1376 flush_workqueue(ipoib_workqueue);
1377 1377
1378 unregister_netdev(priv->dev); 1378 unregister_netdev(priv->dev);
1379 ipoib_dev_cleanup(priv->dev); 1379 ipoib_dev_cleanup(priv->dev);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index 8950e9546f4..aae28620a6e 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -366,6 +366,21 @@ static int ipoib_mcast_sendonly_join(struct ipoib_mcast *mcast)
366 return ret; 366 return ret;
367} 367}
368 368
369void ipoib_mcast_carrier_on_task(struct work_struct *work)
370{
371 struct ipoib_dev_priv *priv = container_of(work, struct ipoib_dev_priv,
372 carrier_on_task);
373
374 /*
375 * Take rtnl_lock to avoid racing with ipoib_stop() and
376 * turning the carrier back on while a device is being
377 * removed.
378 */
379 rtnl_lock();
380 netif_carrier_on(priv->dev);
381 rtnl_unlock();
382}
383
369static int ipoib_mcast_join_complete(int status, 384static int ipoib_mcast_join_complete(int status,
370 struct ib_sa_multicast *multicast) 385 struct ib_sa_multicast *multicast)
371{ 386{
@@ -392,8 +407,12 @@ static int ipoib_mcast_join_complete(int status,
392 &priv->mcast_task, 0); 407 &priv->mcast_task, 0);
393 mutex_unlock(&mcast_mutex); 408 mutex_unlock(&mcast_mutex);
394 409
410 /*
411 * Defer carrier on work to ipoib_workqueue to avoid a
412 * deadlock on rtnl_lock here.
413 */
395 if (mcast == priv->broadcast) 414 if (mcast == priv->broadcast)
396 netif_carrier_on(dev); 415 queue_work(ipoib_workqueue, &priv->carrier_on_task);
397 416
398 return 0; 417 return 0;
399 } 418 }
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index 63462ecca14..26ff6214a81 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -33,7 +33,6 @@
33#include <linux/kernel.h> 33#include <linux/kernel.h>
34#include <linux/module.h> 34#include <linux/module.h>
35#include <linux/delay.h> 35#include <linux/delay.h>
36#include <linux/version.h>
37 36
38#include "iscsi_iser.h" 37#include "iscsi_iser.h"
39 38
diff --git a/drivers/input/keyboard/bf54x-keys.c b/drivers/input/keyboard/bf54x-keys.c
index 54ed8e2e1c0..e348cfccc17 100644
--- a/drivers/input/keyboard/bf54x-keys.c
+++ b/drivers/input/keyboard/bf54x-keys.c
@@ -29,7 +29,6 @@
29 */ 29 */
30 30
31#include <linux/module.h> 31#include <linux/module.h>
32#include <linux/version.h>
33 32
34#include <linux/init.h> 33#include <linux/init.h>
35#include <linux/fs.h> 34#include <linux/fs.h>
@@ -44,7 +43,7 @@
44#include <linux/input.h> 43#include <linux/input.h>
45 44
46#include <asm/portmux.h> 45#include <asm/portmux.h>
47#include <asm/mach/bf54x_keys.h> 46#include <mach/bf54x_keys.h>
48 47
49#define DRV_NAME "bf54x-keys" 48#define DRV_NAME "bf54x-keys"
50#define TIME_SCALE 100 /* 100 ns */ 49#define TIME_SCALE 100 /* 100 ns */
diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c
index 2ec921bf3c6..2998a6ac9ae 100644
--- a/drivers/input/mouse/bcm5974.c
+++ b/drivers/input/mouse/bcm5974.c
@@ -63,7 +63,7 @@
63} 63}
64 64
65/* table of devices that work with this driver */ 65/* table of devices that work with this driver */
66static const struct usb_device_id bcm5974_table [] = { 66static const struct usb_device_id bcm5974_table[] = {
67 /* MacbookAir1.1 */ 67 /* MacbookAir1.1 */
68 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING_ANSI), 68 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING_ANSI),
69 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING_ISO), 69 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING_ISO),
@@ -105,7 +105,7 @@ struct tp_header {
105 105
106/* trackpad finger structure */ 106/* trackpad finger structure */
107struct tp_finger { 107struct tp_finger {
108 __le16 origin; /* left/right origin? */ 108 __le16 origin; /* zero when switching track finger */
109 __le16 abs_x; /* absolute x coodinate */ 109 __le16 abs_x; /* absolute x coodinate */
110 __le16 abs_y; /* absolute y coodinate */ 110 __le16 abs_y; /* absolute y coodinate */
111 __le16 rel_x; /* relative x coodinate */ 111 __le16 rel_x; /* relative x coodinate */
@@ -159,6 +159,7 @@ struct bcm5974 {
159 struct bt_data *bt_data; /* button transferred data */ 159 struct bt_data *bt_data; /* button transferred data */
160 struct urb *tp_urb; /* trackpad usb request block */ 160 struct urb *tp_urb; /* trackpad usb request block */
161 struct tp_data *tp_data; /* trackpad transferred data */ 161 struct tp_data *tp_data; /* trackpad transferred data */
162 int fingers; /* number of fingers on trackpad */
162}; 163};
163 164
164/* logical dimensions */ 165/* logical dimensions */
@@ -172,6 +173,10 @@ struct bcm5974 {
172#define SN_WIDTH 100 /* width signal-to-noise ratio */ 173#define SN_WIDTH 100 /* width signal-to-noise ratio */
173#define SN_COORD 250 /* coordinate signal-to-noise ratio */ 174#define SN_COORD 250 /* coordinate signal-to-noise ratio */
174 175
176/* pressure thresholds */
177#define PRESSURE_LOW (2 * DIM_PRESSURE / SN_PRESSURE)
178#define PRESSURE_HIGH (3 * PRESSURE_LOW)
179
175/* device constants */ 180/* device constants */
176static const struct bcm5974_config bcm5974_config_table[] = { 181static const struct bcm5974_config bcm5974_config_table[] = {
177 { 182 {
@@ -248,6 +253,7 @@ static void setup_events_to_report(struct input_dev *input_dev,
248 0, cfg->y.dim, cfg->y.fuzz, 0); 253 0, cfg->y.dim, cfg->y.fuzz, 0);
249 254
250 __set_bit(EV_KEY, input_dev->evbit); 255 __set_bit(EV_KEY, input_dev->evbit);
256 __set_bit(BTN_TOUCH, input_dev->keybit);
251 __set_bit(BTN_TOOL_FINGER, input_dev->keybit); 257 __set_bit(BTN_TOOL_FINGER, input_dev->keybit);
252 __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit); 258 __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
253 __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit); 259 __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit);
@@ -273,32 +279,66 @@ static int report_tp_state(struct bcm5974 *dev, int size)
273 const struct tp_finger *f = dev->tp_data->finger; 279 const struct tp_finger *f = dev->tp_data->finger;
274 struct input_dev *input = dev->input; 280 struct input_dev *input = dev->input;
275 const int fingers = (size - 26) / 28; 281 const int fingers = (size - 26) / 28;
276 int p = 0, w, x, y, n = 0; 282 int raw_p, raw_w, raw_x, raw_y;
283 int ptest = 0, origin = 0, nmin = 0, nmax = 0;
284 int abs_p = 0, abs_w = 0, abs_x = 0, abs_y = 0;
277 285
278 if (size < 26 || (size - 26) % 28 != 0) 286 if (size < 26 || (size - 26) % 28 != 0)
279 return -EIO; 287 return -EIO;
280 288
289 /* always track the first finger; when detached, start over */
281 if (fingers) { 290 if (fingers) {
282 p = raw2int(f->force_major); 291 raw_p = raw2int(f->force_major);
283 w = raw2int(f->size_major); 292 raw_w = raw2int(f->size_major);
284 x = raw2int(f->abs_x); 293 raw_x = raw2int(f->abs_x);
285 y = raw2int(f->abs_y); 294 raw_y = raw2int(f->abs_y);
286 n = p > 0 ? fingers : 0;
287 295
288 dprintk(9, 296 dprintk(9,
289 "bcm5974: p: %+05d w: %+05d x: %+05d y: %+05d n: %d\n", 297 "bcm5974: raw: p: %+05d w: %+05d x: %+05d y: %+05d\n",
290 p, w, x, y, n); 298 raw_p, raw_w, raw_x, raw_y);
299
300 ptest = int2bound(&c->p, raw_p);
301 origin = raw2int(f->origin);
302 }
291 303
292 input_report_abs(input, ABS_TOOL_WIDTH, int2bound(&c->w, w)); 304 /* while tracking finger still valid, count all fingers */
293 input_report_abs(input, ABS_X, int2bound(&c->x, x - c->x.devmin)); 305 if (ptest > PRESSURE_LOW && origin) {
294 input_report_abs(input, ABS_Y, int2bound(&c->y, c->y.devmax - y)); 306 abs_p = ptest;
307 abs_w = int2bound(&c->w, raw_w);
308 abs_x = int2bound(&c->x, raw_x - c->x.devmin);
309 abs_y = int2bound(&c->y, c->y.devmax - raw_y);
310 for (; f != dev->tp_data->finger + fingers; f++) {
311 ptest = int2bound(&c->p, raw2int(f->force_major));
312 if (ptest > PRESSURE_LOW)
313 nmax++;
314 if (ptest > PRESSURE_HIGH)
315 nmin++;
316 }
295 } 317 }
296 318
297 input_report_abs(input, ABS_PRESSURE, int2bound(&c->p, p)); 319 if (dev->fingers < nmin)
320 dev->fingers = nmin;
321 if (dev->fingers > nmax)
322 dev->fingers = nmax;
323
324 input_report_key(input, BTN_TOUCH, dev->fingers > 0);
325 input_report_key(input, BTN_TOOL_FINGER, dev->fingers == 1);
326 input_report_key(input, BTN_TOOL_DOUBLETAP, dev->fingers == 2);
327 input_report_key(input, BTN_TOOL_TRIPLETAP, dev->fingers > 2);
298 328
299 input_report_key(input, BTN_TOOL_FINGER, n == 1); 329 input_report_abs(input, ABS_PRESSURE, abs_p);
300 input_report_key(input, BTN_TOOL_DOUBLETAP, n == 2); 330 input_report_abs(input, ABS_TOOL_WIDTH, abs_w);
301 input_report_key(input, BTN_TOOL_TRIPLETAP, n > 2); 331
332 if (abs_p) {
333 input_report_abs(input, ABS_X, abs_x);
334 input_report_abs(input, ABS_Y, abs_y);
335
336 dprintk(8,
337 "bcm5974: abs: p: %+05d w: %+05d x: %+05d y: %+05d "
338 "nmin: %d nmax: %d n: %d\n",
339 abs_p, abs_w, abs_x, abs_y, nmin, nmax, dev->fingers);
340
341 }
302 342
303 input_sync(input); 343 input_sync(input);
304 344
@@ -311,8 +351,9 @@ static int report_tp_state(struct bcm5974 *dev, int size)
311#define BCM5974_WELLSPRING_MODE_REQUEST_VALUE 0x300 351#define BCM5974_WELLSPRING_MODE_REQUEST_VALUE 0x300
312#define BCM5974_WELLSPRING_MODE_REQUEST_INDEX 0 352#define BCM5974_WELLSPRING_MODE_REQUEST_INDEX 0
313#define BCM5974_WELLSPRING_MODE_VENDOR_VALUE 0x01 353#define BCM5974_WELLSPRING_MODE_VENDOR_VALUE 0x01
354#define BCM5974_WELLSPRING_MODE_NORMAL_VALUE 0x08
314 355
315static int bcm5974_wellspring_mode(struct bcm5974 *dev) 356static int bcm5974_wellspring_mode(struct bcm5974 *dev, bool on)
316{ 357{
317 char *data = kmalloc(8, GFP_KERNEL); 358 char *data = kmalloc(8, GFP_KERNEL);
318 int retval = 0, size; 359 int retval = 0, size;
@@ -337,7 +378,9 @@ static int bcm5974_wellspring_mode(struct bcm5974 *dev)
337 } 378 }
338 379
339 /* apply the mode switch */ 380 /* apply the mode switch */
340 data[0] = BCM5974_WELLSPRING_MODE_VENDOR_VALUE; 381 data[0] = on ?
382 BCM5974_WELLSPRING_MODE_VENDOR_VALUE :
383 BCM5974_WELLSPRING_MODE_NORMAL_VALUE;
341 384
342 /* write configuration */ 385 /* write configuration */
343 size = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0), 386 size = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
@@ -352,7 +395,8 @@ static int bcm5974_wellspring_mode(struct bcm5974 *dev)
352 goto out; 395 goto out;
353 } 396 }
354 397
355 dprintk(2, "bcm5974: switched to wellspring mode.\n"); 398 dprintk(2, "bcm5974: switched to %s mode.\n",
399 on ? "wellspring" : "normal");
356 400
357 out: 401 out:
358 kfree(data); 402 kfree(data);
@@ -441,7 +485,7 @@ exit:
441 */ 485 */
442static int bcm5974_start_traffic(struct bcm5974 *dev) 486static int bcm5974_start_traffic(struct bcm5974 *dev)
443{ 487{
444 if (bcm5974_wellspring_mode(dev)) { 488 if (bcm5974_wellspring_mode(dev, true)) {
445 dprintk(1, "bcm5974: mode switch failed\n"); 489 dprintk(1, "bcm5974: mode switch failed\n");
446 goto error; 490 goto error;
447 } 491 }
@@ -464,6 +508,7 @@ static void bcm5974_pause_traffic(struct bcm5974 *dev)
464{ 508{
465 usb_kill_urb(dev->tp_urb); 509 usb_kill_urb(dev->tp_urb);
466 usb_kill_urb(dev->bt_urb); 510 usb_kill_urb(dev->bt_urb);
511 bcm5974_wellspring_mode(dev, false);
467} 512}
468 513
469/* 514/*
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
index 3282b741e24..5aafe24984c 100644
--- a/drivers/input/serio/i8042-x86ia64io.h
+++ b/drivers/input/serio/i8042-x86ia64io.h
@@ -305,7 +305,7 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = {
305 .ident = "Lenovo 3000 n100", 305 .ident = "Lenovo 3000 n100",
306 .matches = { 306 .matches = {
307 DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), 307 DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
308 DMI_MATCH(DMI_PRODUCT_VERSION, "3000 N100"), 308 DMI_MATCH(DMI_PRODUCT_NAME, "076804U"),
309 }, 309 },
310 }, 310 },
311 { 311 {
diff --git a/drivers/input/touchscreen/jornada720_ts.c b/drivers/input/touchscreen/jornada720_ts.c
index bf44f9d6834..c8b7e8a45c4 100644
--- a/drivers/input/touchscreen/jornada720_ts.c
+++ b/drivers/input/touchscreen/jornada720_ts.c
@@ -119,8 +119,8 @@ static int __devinit jornada720_ts_probe(struct platform_device *pdev)
119 input_dev->id.bustype = BUS_HOST; 119 input_dev->id.bustype = BUS_HOST;
120 input_dev->dev.parent = &pdev->dev; 120 input_dev->dev.parent = &pdev->dev;
121 121
122 input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS); 122 input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
123 input_dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH); 123 input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
124 input_set_abs_params(input_dev, ABS_X, 270, 3900, 0, 0); 124 input_set_abs_params(input_dev, ABS_X, 270, 3900, 0, 0);
125 input_set_abs_params(input_dev, ABS_Y, 180, 3700, 0, 0); 125 input_set_abs_params(input_dev, ABS_Y, 180, 3700, 0, 0);
126 126
diff --git a/drivers/input/touchscreen/mainstone-wm97xx.c b/drivers/input/touchscreen/mainstone-wm97xx.c
index 283f93a0cee..37a555f3730 100644
--- a/drivers/input/touchscreen/mainstone-wm97xx.c
+++ b/drivers/input/touchscreen/mainstone-wm97xx.c
@@ -25,7 +25,6 @@
25 25
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/moduleparam.h> 27#include <linux/moduleparam.h>
28#include <linux/version.h>
29#include <linux/kernel.h> 28#include <linux/kernel.h>
30#include <linux/init.h> 29#include <linux/init.h>
31#include <linux/delay.h> 30#include <linux/delay.h>
diff --git a/drivers/leds/leds-fsg.c b/drivers/leds/leds-fsg.c
index be0e12144b8..34935155c1c 100644
--- a/drivers/leds/leds-fsg.c
+++ b/drivers/leds/leds-fsg.c
@@ -161,6 +161,16 @@ static int fsg_led_probe(struct platform_device *pdev)
161{ 161{
162 int ret; 162 int ret;
163 163
164 /* Map the LED chip select address space */
165 latch_address = (unsigned short *) ioremap(IXP4XX_EXP_BUS_BASE(2), 512);
166 if (!latch_address) {
167 ret = -ENOMEM;
168 goto failremap;
169 }
170
171 latch_value = 0xffff;
172 *latch_address = latch_value;
173
164 ret = led_classdev_register(&pdev->dev, &fsg_wlan_led); 174 ret = led_classdev_register(&pdev->dev, &fsg_wlan_led);
165 if (ret < 0) 175 if (ret < 0)
166 goto failwlan; 176 goto failwlan;
@@ -185,20 +195,8 @@ static int fsg_led_probe(struct platform_device *pdev)
185 if (ret < 0) 195 if (ret < 0)
186 goto failring; 196 goto failring;
187 197
188 /* Map the LED chip select address space */
189 latch_address = (unsigned short *) ioremap(IXP4XX_EXP_BUS_BASE(2), 512);
190 if (!latch_address) {
191 ret = -ENOMEM;
192 goto failremap;
193 }
194
195 latch_value = 0xffff;
196 *latch_address = latch_value;
197
198 return ret; 198 return ret;
199 199
200 failremap:
201 led_classdev_unregister(&fsg_ring_led);
202 failring: 200 failring:
203 led_classdev_unregister(&fsg_sync_led); 201 led_classdev_unregister(&fsg_sync_led);
204 failsync: 202 failsync:
@@ -210,14 +208,14 @@ static int fsg_led_probe(struct platform_device *pdev)
210 failwan: 208 failwan:
211 led_classdev_unregister(&fsg_wlan_led); 209 led_classdev_unregister(&fsg_wlan_led);
212 failwlan: 210 failwlan:
211 iounmap(latch_address);
212 failremap:
213 213
214 return ret; 214 return ret;
215} 215}
216 216
217static int fsg_led_remove(struct platform_device *pdev) 217static int fsg_led_remove(struct platform_device *pdev)
218{ 218{
219 iounmap(latch_address);
220
221 led_classdev_unregister(&fsg_wlan_led); 219 led_classdev_unregister(&fsg_wlan_led);
222 led_classdev_unregister(&fsg_wan_led); 220 led_classdev_unregister(&fsg_wan_led);
223 led_classdev_unregister(&fsg_sata_led); 221 led_classdev_unregister(&fsg_sata_led);
@@ -225,6 +223,8 @@ static int fsg_led_remove(struct platform_device *pdev)
225 led_classdev_unregister(&fsg_sync_led); 223 led_classdev_unregister(&fsg_sync_led);
226 led_classdev_unregister(&fsg_ring_led); 224 led_classdev_unregister(&fsg_ring_led);
227 225
226 iounmap(latch_address);
227
228 return 0; 228 return 0;
229} 229}
230 230
diff --git a/drivers/leds/leds-pca955x.c b/drivers/leds/leds-pca955x.c
index 146c0697286..f508729123b 100644
--- a/drivers/leds/leds-pca955x.c
+++ b/drivers/leds/leds-pca955x.c
@@ -248,11 +248,10 @@ static int __devinit pca955x_probe(struct i2c_client *client,
248 const struct i2c_device_id *id) 248 const struct i2c_device_id *id)
249{ 249{
250 struct pca955x_led *pca955x; 250 struct pca955x_led *pca955x;
251 int i;
252 int err = -ENODEV;
253 struct pca955x_chipdef *chip; 251 struct pca955x_chipdef *chip;
254 struct i2c_adapter *adapter; 252 struct i2c_adapter *adapter;
255 struct led_platform_data *pdata; 253 struct led_platform_data *pdata;
254 int i, err;
256 255
257 chip = &pca955x_chipdefs[id->driver_data]; 256 chip = &pca955x_chipdefs[id->driver_data];
258 adapter = to_i2c_adapter(client->dev.parent); 257 adapter = to_i2c_adapter(client->dev.parent);
@@ -282,43 +281,41 @@ static int __devinit pca955x_probe(struct i2c_client *client,
282 } 281 }
283 } 282 }
284 283
284 pca955x = kzalloc(sizeof(*pca955x) * chip->bits, GFP_KERNEL);
285 if (!pca955x)
286 return -ENOMEM;
287
288 i2c_set_clientdata(client, pca955x);
289
285 for (i = 0; i < chip->bits; i++) { 290 for (i = 0; i < chip->bits; i++) {
286 pca955x = kzalloc(sizeof(struct pca955x_led), GFP_KERNEL); 291 pca955x[i].chipdef = chip;
287 if (!pca955x) { 292 pca955x[i].client = client;
288 err = -ENOMEM; 293 pca955x[i].led_num = i;
289 goto exit;
290 }
291 294
292 pca955x->chipdef = chip;
293 pca955x->client = client;
294 pca955x->led_num = i;
295 /* Platform data can specify LED names and default triggers */ 295 /* Platform data can specify LED names and default triggers */
296 if (pdata) { 296 if (pdata) {
297 if (pdata->leds[i].name) 297 if (pdata->leds[i].name)
298 snprintf(pca955x->name, 32, "pca955x:%s", 298 snprintf(pca955x[i].name,
299 pdata->leds[i].name); 299 sizeof(pca955x[i].name), "pca955x:%s",
300 pdata->leds[i].name);
300 if (pdata->leds[i].default_trigger) 301 if (pdata->leds[i].default_trigger)
301 pca955x->led_cdev.default_trigger = 302 pca955x[i].led_cdev.default_trigger =
302 pdata->leds[i].default_trigger; 303 pdata->leds[i].default_trigger;
303 } else { 304 } else {
304 snprintf(pca955x->name, 32, "pca955x:%d", i); 305 snprintf(pca955x[i].name, sizeof(pca955x[i].name),
306 "pca955x:%d", i);
305 } 307 }
306 spin_lock_init(&pca955x->lock);
307 308
308 pca955x->led_cdev.name = pca955x->name; 309 spin_lock_init(&pca955x[i].lock);
309 pca955x->led_cdev.brightness_set =
310 pca955x_led_set;
311 310
312 /* 311 pca955x[i].led_cdev.name = pca955x[i].name;
313 * Client data is a pointer to the _first_ pca955x_led 312 pca955x[i].led_cdev.brightness_set = pca955x_led_set;
314 * struct
315 */
316 if (i == 0)
317 i2c_set_clientdata(client, pca955x);
318 313
319 INIT_WORK(&(pca955x->work), pca955x_led_work); 314 INIT_WORK(&pca955x[i].work, pca955x_led_work);
320 315
321 led_classdev_register(&client->dev, &(pca955x->led_cdev)); 316 err = led_classdev_register(&client->dev, &pca955x[i].led_cdev);
317 if (err < 0)
318 goto exit;
322 } 319 }
323 320
324 /* Turn off LEDs */ 321 /* Turn off LEDs */
@@ -336,23 +333,32 @@ static int __devinit pca955x_probe(struct i2c_client *client,
336 pca955x_write_psc(client, 1, 0); 333 pca955x_write_psc(client, 1, 0);
337 334
338 return 0; 335 return 0;
336
339exit: 337exit:
338 while (i--) {
339 led_classdev_unregister(&pca955x[i].led_cdev);
340 cancel_work_sync(&pca955x[i].work);
341 }
342
343 kfree(pca955x);
344 i2c_set_clientdata(client, NULL);
345
340 return err; 346 return err;
341} 347}
342 348
343static int __devexit pca955x_remove(struct i2c_client *client) 349static int __devexit pca955x_remove(struct i2c_client *client)
344{ 350{
345 struct pca955x_led *pca955x = i2c_get_clientdata(client); 351 struct pca955x_led *pca955x = i2c_get_clientdata(client);
346 int leds = pca955x->chipdef->bits;
347 int i; 352 int i;
348 353
349 for (i = 0; i < leds; i++) { 354 for (i = 0; i < pca955x->chipdef->bits; i++) {
350 led_classdev_unregister(&(pca955x->led_cdev)); 355 led_classdev_unregister(&pca955x[i].led_cdev);
351 cancel_work_sync(&(pca955x->work)); 356 cancel_work_sync(&pca955x[i].work);
352 kfree(pca955x);
353 pca955x = pca955x + 1;
354 } 357 }
355 358
359 kfree(pca955x);
360 i2c_set_clientdata(client, NULL);
361
356 return 0; 362 return 0;
357} 363}
358 364
diff --git a/drivers/lguest/lguest_device.c b/drivers/lguest/lguest_device.c
index 37344aaee22..a661bbdae3d 100644
--- a/drivers/lguest/lguest_device.c
+++ b/drivers/lguest/lguest_device.c
@@ -98,6 +98,10 @@ static u32 lg_get_features(struct virtio_device *vdev)
98 return features; 98 return features;
99} 99}
100 100
101/* The virtio core takes the features the Host offers, and copies the
102 * ones supported by the driver into the vdev->features array. Once
103 * that's all sorted out, this routine is called so we can tell the
104 * Host which features we understand and accept. */
101static void lg_finalize_features(struct virtio_device *vdev) 105static void lg_finalize_features(struct virtio_device *vdev)
102{ 106{
103 unsigned int i, bits; 107 unsigned int i, bits;
@@ -108,6 +112,10 @@ static void lg_finalize_features(struct virtio_device *vdev)
108 /* Give virtio_ring a chance to accept features. */ 112 /* Give virtio_ring a chance to accept features. */
109 vring_transport_features(vdev); 113 vring_transport_features(vdev);
110 114
115 /* The vdev->feature array is a Linux bitmask: this isn't the
116 * same as a the simple array of bits used by lguest devices
117 * for features. So we do this slow, manual conversion which is
118 * completely general. */
111 memset(out_features, 0, desc->feature_len); 119 memset(out_features, 0, desc->feature_len);
112 bits = min_t(unsigned, desc->feature_len, sizeof(vdev->features)) * 8; 120 bits = min_t(unsigned, desc->feature_len, sizeof(vdev->features)) * 8;
113 for (i = 0; i < bits; i++) { 121 for (i = 0; i < bits; i++) {
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 7e65bad522c..ac89a5deaca 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -238,15 +238,47 @@ static struct page *read_sb_page(mddev_t *mddev, long offset, unsigned long inde
238 238
239} 239}
240 240
241static mdk_rdev_t *next_active_rdev(mdk_rdev_t *rdev, mddev_t *mddev)
242{
243 /* Iterate the disks of an mddev, using rcu to protect access to the
244 * linked list, and raising the refcount of devices we return to ensure
245 * they don't disappear while in use.
246 * As devices are only added or removed when raid_disk is < 0 and
247 * nr_pending is 0 and In_sync is clear, the entries we return will
248 * still be in the same position on the list when we re-enter
249 * list_for_each_continue_rcu.
250 */
251 struct list_head *pos;
252 rcu_read_lock();
253 if (rdev == NULL)
254 /* start at the beginning */
255 pos = &mddev->disks;
256 else {
257 /* release the previous rdev and start from there. */
258 rdev_dec_pending(rdev, mddev);
259 pos = &rdev->same_set;
260 }
261 list_for_each_continue_rcu(pos, &mddev->disks) {
262 rdev = list_entry(pos, mdk_rdev_t, same_set);
263 if (rdev->raid_disk >= 0 &&
264 test_bit(In_sync, &rdev->flags) &&
265 !test_bit(Faulty, &rdev->flags)) {
266 /* this is a usable devices */
267 atomic_inc(&rdev->nr_pending);
268 rcu_read_unlock();
269 return rdev;
270 }
271 }
272 rcu_read_unlock();
273 return NULL;
274}
275
241static int write_sb_page(struct bitmap *bitmap, struct page *page, int wait) 276static int write_sb_page(struct bitmap *bitmap, struct page *page, int wait)
242{ 277{
243 mdk_rdev_t *rdev; 278 mdk_rdev_t *rdev = NULL;
244 mddev_t *mddev = bitmap->mddev; 279 mddev_t *mddev = bitmap->mddev;
245 280
246 rcu_read_lock(); 281 while ((rdev = next_active_rdev(rdev, mddev)) != NULL) {
247 rdev_for_each_rcu(rdev, mddev)
248 if (test_bit(In_sync, &rdev->flags)
249 && !test_bit(Faulty, &rdev->flags)) {
250 int size = PAGE_SIZE; 282 int size = PAGE_SIZE;
251 if (page->index == bitmap->file_pages-1) 283 if (page->index == bitmap->file_pages-1)
252 size = roundup(bitmap->last_page_size, 284 size = roundup(bitmap->last_page_size,
@@ -281,8 +313,7 @@ static int write_sb_page(struct bitmap *bitmap, struct page *page, int wait)
281 + page->index * (PAGE_SIZE/512), 313 + page->index * (PAGE_SIZE/512),
282 size, 314 size,
283 page); 315 page);
284 } 316 }
285 rcu_read_unlock();
286 317
287 if (wait) 318 if (wait)
288 md_super_wait(mddev); 319 md_super_wait(mddev);
diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
index 71dd65aa31b..c2fcf28b4c7 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -63,6 +63,7 @@ struct multipath {
63 63
64 const char *hw_handler_name; 64 const char *hw_handler_name;
65 struct work_struct activate_path; 65 struct work_struct activate_path;
66 struct pgpath *pgpath_to_activate;
66 unsigned nr_priority_groups; 67 unsigned nr_priority_groups;
67 struct list_head priority_groups; 68 struct list_head priority_groups;
68 unsigned pg_init_required; /* pg_init needs calling? */ 69 unsigned pg_init_required; /* pg_init needs calling? */
@@ -146,6 +147,7 @@ static struct priority_group *alloc_priority_group(void)
146 147
147static void free_pgpaths(struct list_head *pgpaths, struct dm_target *ti) 148static void free_pgpaths(struct list_head *pgpaths, struct dm_target *ti)
148{ 149{
150 unsigned long flags;
149 struct pgpath *pgpath, *tmp; 151 struct pgpath *pgpath, *tmp;
150 struct multipath *m = ti->private; 152 struct multipath *m = ti->private;
151 153
@@ -154,6 +156,10 @@ static void free_pgpaths(struct list_head *pgpaths, struct dm_target *ti)
154 if (m->hw_handler_name) 156 if (m->hw_handler_name)
155 scsi_dh_detach(bdev_get_queue(pgpath->path.dev->bdev)); 157 scsi_dh_detach(bdev_get_queue(pgpath->path.dev->bdev));
156 dm_put_device(ti, pgpath->path.dev); 158 dm_put_device(ti, pgpath->path.dev);
159 spin_lock_irqsave(&m->lock, flags);
160 if (m->pgpath_to_activate == pgpath)
161 m->pgpath_to_activate = NULL;
162 spin_unlock_irqrestore(&m->lock, flags);
157 free_pgpath(pgpath); 163 free_pgpath(pgpath);
158 } 164 }
159} 165}
@@ -421,6 +427,7 @@ static void process_queued_ios(struct work_struct *work)
421 __choose_pgpath(m); 427 __choose_pgpath(m);
422 428
423 pgpath = m->current_pgpath; 429 pgpath = m->current_pgpath;
430 m->pgpath_to_activate = m->current_pgpath;
424 431
425 if ((pgpath && !m->queue_io) || 432 if ((pgpath && !m->queue_io) ||
426 (!pgpath && !m->queue_if_no_path)) 433 (!pgpath && !m->queue_if_no_path))
@@ -1093,8 +1100,15 @@ static void activate_path(struct work_struct *work)
1093 int ret; 1100 int ret;
1094 struct multipath *m = 1101 struct multipath *m =
1095 container_of(work, struct multipath, activate_path); 1102 container_of(work, struct multipath, activate_path);
1096 struct dm_path *path = &m->current_pgpath->path; 1103 struct dm_path *path;
1104 unsigned long flags;
1097 1105
1106 spin_lock_irqsave(&m->lock, flags);
1107 path = &m->pgpath_to_activate->path;
1108 m->pgpath_to_activate = NULL;
1109 spin_unlock_irqrestore(&m->lock, flags);
1110 if (!path)
1111 return;
1098 ret = scsi_dh_activate(bdev_get_queue(path->dev->bdev)); 1112 ret = scsi_dh_activate(bdev_get_queue(path->dev->bdev));
1099 pg_init_done(path, ret); 1113 pg_init_done(path, ret);
1100} 1114}
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index bca448e1187..ace998ce59f 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -837,12 +837,14 @@ static int dm_merge_bvec(struct request_queue *q,
837 struct dm_table *map = dm_get_table(md); 837 struct dm_table *map = dm_get_table(md);
838 struct dm_target *ti; 838 struct dm_target *ti;
839 sector_t max_sectors; 839 sector_t max_sectors;
840 int max_size; 840 int max_size = 0;
841 841
842 if (unlikely(!map)) 842 if (unlikely(!map))
843 return 0; 843 goto out;
844 844
845 ti = dm_table_find_target(map, bvm->bi_sector); 845 ti = dm_table_find_target(map, bvm->bi_sector);
846 if (!dm_target_is_valid(ti))
847 goto out_table;
846 848
847 /* 849 /*
848 * Find maximum amount of I/O that won't need splitting 850 * Find maximum amount of I/O that won't need splitting
@@ -861,14 +863,16 @@ static int dm_merge_bvec(struct request_queue *q,
861 if (max_size && ti->type->merge) 863 if (max_size && ti->type->merge)
862 max_size = ti->type->merge(ti, bvm, biovec, max_size); 864 max_size = ti->type->merge(ti, bvm, biovec, max_size);
863 865
866out_table:
867 dm_table_put(map);
868
869out:
864 /* 870 /*
865 * Always allow an entire first page 871 * Always allow an entire first page
866 */ 872 */
867 if (max_size <= biovec->bv_len && !(bvm->bi_size >> SECTOR_SHIFT)) 873 if (max_size <= biovec->bv_len && !(bvm->bi_size >> SECTOR_SHIFT))
868 max_size = biovec->bv_len; 874 max_size = biovec->bv_len;
869 875
870 dm_table_put(map);
871
872 return max_size; 876 return max_size;
873} 877}
874 878
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 8cfadc5bd2b..deeac4b4417 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -3841,8 +3841,6 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
3841 3841
3842 del_timer_sync(&mddev->safemode_timer); 3842 del_timer_sync(&mddev->safemode_timer);
3843 3843
3844 invalidate_partition(disk, 0);
3845
3846 switch(mode) { 3844 switch(mode) {
3847 case 1: /* readonly */ 3845 case 1: /* readonly */
3848 err = -ENXIO; 3846 err = -ENXIO;
@@ -5763,7 +5761,11 @@ void md_do_sync(mddev_t *mddev)
5763 * time 'round when curr_resync == 2 5761 * time 'round when curr_resync == 2
5764 */ 5762 */
5765 continue; 5763 continue;
5766 prepare_to_wait(&resync_wait, &wq, TASK_UNINTERRUPTIBLE); 5764 /* We need to wait 'interruptible' so as not to
5765 * contribute to the load average, and not to
5766 * be caught by 'softlockup'
5767 */
5768 prepare_to_wait(&resync_wait, &wq, TASK_INTERRUPTIBLE);
5767 if (!kthread_should_stop() && 5769 if (!kthread_should_stop() &&
5768 mddev2->curr_resync >= mddev->curr_resync) { 5770 mddev2->curr_resync >= mddev->curr_resync) {
5769 printk(KERN_INFO "md: delaying %s of %s" 5771 printk(KERN_INFO "md: delaying %s of %s"
@@ -5771,6 +5773,8 @@ void md_do_sync(mddev_t *mddev)
5771 " share one or more physical units)\n", 5773 " share one or more physical units)\n",
5772 desc, mdname(mddev), mdname(mddev2)); 5774 desc, mdname(mddev), mdname(mddev2));
5773 mddev_put(mddev2); 5775 mddev_put(mddev2);
5776 if (signal_pending(current))
5777 flush_signals(current);
5774 schedule(); 5778 schedule();
5775 finish_wait(&resync_wait, &wq); 5779 finish_wait(&resync_wait, &wq);
5776 goto try_again; 5780 goto try_again;
diff --git a/drivers/media/common/saa7146_video.c b/drivers/media/common/saa7146_video.c
index e8bc7abf240..99be9e5c85f 100644
--- a/drivers/media/common/saa7146_video.c
+++ b/drivers/media/common/saa7146_video.c
@@ -1068,7 +1068,7 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
1068 { 1068 {
1069 v4l2_std_id *id = arg; 1069 v4l2_std_id *id = arg;
1070 int found = 0; 1070 int found = 0;
1071 int i, err; 1071 int i;
1072 1072
1073 DEB_EE(("VIDIOC_S_STD\n")); 1073 DEB_EE(("VIDIOC_S_STD\n"));
1074 1074
@@ -1116,7 +1116,6 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
1116 case VIDIOC_OVERLAY: 1116 case VIDIOC_OVERLAY:
1117 { 1117 {
1118 int on = *(int *)arg; 1118 int on = *(int *)arg;
1119 int err = 0;
1120 1119
1121 DEB_D(("VIDIOC_OVERLAY on:%d\n",on)); 1120 DEB_D(("VIDIOC_OVERLAY on:%d\n",on));
1122 if (on != 0) { 1121 if (on != 0) {
@@ -1192,7 +1191,6 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
1192 case VIDIOCGMBUF: 1191 case VIDIOCGMBUF:
1193 { 1192 {
1194 struct video_mbuf *mbuf = arg; 1193 struct video_mbuf *mbuf = arg;
1195 struct videobuf_queue *q;
1196 int i; 1194 int i;
1197 1195
1198 /* fixme: number of capture buffers and sizes for v4l apps */ 1196 /* fixme: number of capture buffers and sizes for v4l apps */
diff --git a/drivers/media/common/tuners/mt2131.c b/drivers/media/common/tuners/mt2131.c
index e254bcfc2ef..e8d3c48f860 100644
--- a/drivers/media/common/tuners/mt2131.c
+++ b/drivers/media/common/tuners/mt2131.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for Microtune MT2131 "QAM/8VSB single chip tuner" 2 * Driver for Microtune MT2131 "QAM/8VSB single chip tuner"
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/common/tuners/mt2131.h b/drivers/media/common/tuners/mt2131.h
index cd8376f6f7b..6632de640df 100644
--- a/drivers/media/common/tuners/mt2131.h
+++ b/drivers/media/common/tuners/mt2131.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for Microtune MT2131 "QAM/8VSB single chip tuner" 2 * Driver for Microtune MT2131 "QAM/8VSB single chip tuner"
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/common/tuners/mt2131_priv.h b/drivers/media/common/tuners/mt2131_priv.h
index e930759c2c0..4e05a67e88c 100644
--- a/drivers/media/common/tuners/mt2131_priv.h
+++ b/drivers/media/common/tuners/mt2131_priv.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for Microtune MT2131 "QAM/8VSB single chip tuner" 2 * Driver for Microtune MT2131 "QAM/8VSB single chip tuner"
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/common/tuners/mxl5005s.c b/drivers/media/common/tuners/mxl5005s.c
index 0dc2bef9f6a..227642b044a 100644
--- a/drivers/media/common/tuners/mxl5005s.c
+++ b/drivers/media/common/tuners/mxl5005s.c
@@ -2,7 +2,7 @@
2 MaxLinear MXL5005S VSB/QAM/DVBT tuner driver 2 MaxLinear MXL5005S VSB/QAM/DVBT tuner driver
3 3
4 Copyright (C) 2008 MaxLinear 4 Copyright (C) 2008 MaxLinear
5 Copyright (C) 2006 Steven Toth <stoth@hauppauge.com> 5 Copyright (C) 2006 Steven Toth <stoth@linuxtv.org>
6 Functions: 6 Functions:
7 mxl5005s_reset() 7 mxl5005s_reset()
8 mxl5005s_writereg() 8 mxl5005s_writereg()
@@ -3837,7 +3837,7 @@ static u16 MXL_Hystersis_Test(struct dvb_frontend *fe, int Hystersis)
3837/* ---------------------------------------------------------------- 3837/* ----------------------------------------------------------------
3838 * Begin: Everything after here is new code to adapt the 3838 * Begin: Everything after here is new code to adapt the
3839 * proprietary Realtek driver into a Linux API tuner. 3839 * proprietary Realtek driver into a Linux API tuner.
3840 * Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 3840 * Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
3841 */ 3841 */
3842static int mxl5005s_reset(struct dvb_frontend *fe) 3842static int mxl5005s_reset(struct dvb_frontend *fe)
3843{ 3843{
diff --git a/drivers/media/common/tuners/mxl5005s.h b/drivers/media/common/tuners/mxl5005s.h
index 396db150bf0..7ac6815b30a 100644
--- a/drivers/media/common/tuners/mxl5005s.h
+++ b/drivers/media/common/tuners/mxl5005s.h
@@ -2,7 +2,7 @@
2 MaxLinear MXL5005S VSB/QAM/DVBT tuner driver 2 MaxLinear MXL5005S VSB/QAM/DVBT tuner driver
3 3
4 Copyright (C) 2008 MaxLinear 4 Copyright (C) 2008 MaxLinear
5 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 5 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/common/tuners/tuner-simple.c b/drivers/media/common/tuners/tuner-simple.c
index 597e47f5d69..aa773a658a2 100644
--- a/drivers/media/common/tuners/tuner-simple.c
+++ b/drivers/media/common/tuners/tuner-simple.c
@@ -253,7 +253,7 @@ static struct tuner_params *simple_tuner_params(struct dvb_frontend *fe,
253 253
254static int simple_config_lookup(struct dvb_frontend *fe, 254static int simple_config_lookup(struct dvb_frontend *fe,
255 struct tuner_params *t_params, 255 struct tuner_params *t_params,
256 int *frequency, u8 *config, u8 *cb) 256 unsigned *frequency, u8 *config, u8 *cb)
257{ 257{
258 struct tuner_simple_priv *priv = fe->tuner_priv; 258 struct tuner_simple_priv *priv = fe->tuner_priv;
259 int i; 259 int i;
@@ -587,45 +587,45 @@ static int simple_set_tv_freq(struct dvb_frontend *fe,
587 priv->last_div = div; 587 priv->last_div = div;
588 if (t_params->has_tda9887) { 588 if (t_params->has_tda9887) {
589 struct v4l2_priv_tun_config tda9887_cfg; 589 struct v4l2_priv_tun_config tda9887_cfg;
590 int config = 0; 590 int tda_config = 0;
591 int is_secam_l = (params->std & (V4L2_STD_SECAM_L | 591 int is_secam_l = (params->std & (V4L2_STD_SECAM_L |
592 V4L2_STD_SECAM_LC)) && 592 V4L2_STD_SECAM_LC)) &&
593 !(params->std & ~(V4L2_STD_SECAM_L | 593 !(params->std & ~(V4L2_STD_SECAM_L |
594 V4L2_STD_SECAM_LC)); 594 V4L2_STD_SECAM_LC));
595 595
596 tda9887_cfg.tuner = TUNER_TDA9887; 596 tda9887_cfg.tuner = TUNER_TDA9887;
597 tda9887_cfg.priv = &config; 597 tda9887_cfg.priv = &tda_config;
598 598
599 if (params->std == V4L2_STD_SECAM_LC) { 599 if (params->std == V4L2_STD_SECAM_LC) {
600 if (t_params->port1_active ^ t_params->port1_invert_for_secam_lc) 600 if (t_params->port1_active ^ t_params->port1_invert_for_secam_lc)
601 config |= TDA9887_PORT1_ACTIVE; 601 tda_config |= TDA9887_PORT1_ACTIVE;
602 if (t_params->port2_active ^ t_params->port2_invert_for_secam_lc) 602 if (t_params->port2_active ^ t_params->port2_invert_for_secam_lc)
603 config |= TDA9887_PORT2_ACTIVE; 603 tda_config |= TDA9887_PORT2_ACTIVE;
604 } else { 604 } else {
605 if (t_params->port1_active) 605 if (t_params->port1_active)
606 config |= TDA9887_PORT1_ACTIVE; 606 tda_config |= TDA9887_PORT1_ACTIVE;
607 if (t_params->port2_active) 607 if (t_params->port2_active)
608 config |= TDA9887_PORT2_ACTIVE; 608 tda_config |= TDA9887_PORT2_ACTIVE;
609 } 609 }
610 if (t_params->intercarrier_mode) 610 if (t_params->intercarrier_mode)
611 config |= TDA9887_INTERCARRIER; 611 tda_config |= TDA9887_INTERCARRIER;
612 if (is_secam_l) { 612 if (is_secam_l) {
613 if (i == 0 && t_params->default_top_secam_low) 613 if (i == 0 && t_params->default_top_secam_low)
614 config |= TDA9887_TOP(t_params->default_top_secam_low); 614 tda_config |= TDA9887_TOP(t_params->default_top_secam_low);
615 else if (i == 1 && t_params->default_top_secam_mid) 615 else if (i == 1 && t_params->default_top_secam_mid)
616 config |= TDA9887_TOP(t_params->default_top_secam_mid); 616 tda_config |= TDA9887_TOP(t_params->default_top_secam_mid);
617 else if (t_params->default_top_secam_high) 617 else if (t_params->default_top_secam_high)
618 config |= TDA9887_TOP(t_params->default_top_secam_high); 618 tda_config |= TDA9887_TOP(t_params->default_top_secam_high);
619 } else { 619 } else {
620 if (i == 0 && t_params->default_top_low) 620 if (i == 0 && t_params->default_top_low)
621 config |= TDA9887_TOP(t_params->default_top_low); 621 tda_config |= TDA9887_TOP(t_params->default_top_low);
622 else if (i == 1 && t_params->default_top_mid) 622 else if (i == 1 && t_params->default_top_mid)
623 config |= TDA9887_TOP(t_params->default_top_mid); 623 tda_config |= TDA9887_TOP(t_params->default_top_mid);
624 else if (t_params->default_top_high) 624 else if (t_params->default_top_high)
625 config |= TDA9887_TOP(t_params->default_top_high); 625 tda_config |= TDA9887_TOP(t_params->default_top_high);
626 } 626 }
627 if (t_params->default_pll_gating_18) 627 if (t_params->default_pll_gating_18)
628 config |= TDA9887_GATING_18; 628 tda_config |= TDA9887_GATING_18;
629 i2c_clients_command(priv->i2c_props.adap, TUNER_SET_CONFIG, 629 i2c_clients_command(priv->i2c_props.adap, TUNER_SET_CONFIG,
630 &tda9887_cfg); 630 &tda9887_cfg);
631 } 631 }
@@ -813,7 +813,8 @@ static u32 simple_dvb_configure(struct dvb_frontend *fe, u8 *buf,
813 static struct tuner_params *t_params; 813 static struct tuner_params *t_params;
814 u8 config, cb; 814 u8 config, cb;
815 u32 div; 815 u32 div;
816 int ret, frequency = params->frequency / 62500; 816 int ret;
817 unsigned frequency = params->frequency / 62500;
817 818
818 t_params = simple_tuner_params(fe, TUNER_PARAM_TYPE_DIGITAL); 819 t_params = simple_tuner_params(fe, TUNER_PARAM_TYPE_DIGITAL);
819 ret = simple_config_lookup(fe, t_params, &frequency, &config, &cb); 820 ret = simple_config_lookup(fe, t_params, &frequency, &config, &cb);
diff --git a/drivers/media/common/tuners/xc5000.c b/drivers/media/common/tuners/xc5000.c
index 5f99de0ad61..dcddfa803a7 100644
--- a/drivers/media/common/tuners/xc5000.c
+++ b/drivers/media/common/tuners/xc5000.c
@@ -2,7 +2,7 @@
2 * Driver for Xceive XC5000 "QAM/8VSB single chip tuner" 2 * Driver for Xceive XC5000 "QAM/8VSB single chip tuner"
3 * 3 *
4 * Copyright (c) 2007 Xceive Corporation 4 * Copyright (c) 2007 Xceive Corporation
5 * Copyright (c) 2007 Steven Toth <stoth@hauppauge.com> 5 * Copyright (c) 2007 Steven Toth <stoth@linuxtv.org>
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by 8 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/common/tuners/xc5000.h b/drivers/media/common/tuners/xc5000.h
index c910715addc..5389f740945 100644
--- a/drivers/media/common/tuners/xc5000.h
+++ b/drivers/media/common/tuners/xc5000.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for Xceive XC5000 "QAM/8VSB single chip tuner" 2 * Driver for Xceive XC5000 "QAM/8VSB single chip tuner"
3 * 3 *
4 * Copyright (c) 2007 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2007 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/common/tuners/xc5000_priv.h b/drivers/media/common/tuners/xc5000_priv.h
index a72a9887fe7..b2a0074c99c 100644
--- a/drivers/media/common/tuners/xc5000_priv.h
+++ b/drivers/media/common/tuners/xc5000_priv.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for Xceive XC5000 "QAM/8VSB single chip tuner" 2 * Driver for Xceive XC5000 "QAM/8VSB single chip tuner"
3 * 3 *
4 * Copyright (c) 2007 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2007 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
index f9d087669d5..4eed783f4bc 100644
--- a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
+++ b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
@@ -137,7 +137,8 @@ static int flexcop_send_diseqc_msg(struct dvb_frontend* fe, int len, u8 *msg, un
137 flexcop_diseqc_send_byte(fe, 0xff); 137 flexcop_diseqc_send_byte(fe, 0xff);
138 else { 138 else {
139 flexcop_set_tone(fe, SEC_TONE_ON); 139 flexcop_set_tone(fe, SEC_TONE_ON);
140 udelay(12500); 140 mdelay(12);
141 udelay(500);
141 flexcop_set_tone(fe, SEC_TONE_OFF); 142 flexcop_set_tone(fe, SEC_TONE_OFF);
142 } 143 }
143 msleep(20); 144 msleep(20);
diff --git a/drivers/media/dvb/b2c2/flexcop-i2c.c b/drivers/media/dvb/b2c2/flexcop-i2c.c
index 55973eaf371..43a112ec6d4 100644
--- a/drivers/media/dvb/b2c2/flexcop-i2c.c
+++ b/drivers/media/dvb/b2c2/flexcop-i2c.c
@@ -221,12 +221,12 @@ int flexcop_i2c_init(struct flexcop_device *fc)
221 fc->fc_i2c_adap[1].port = FC_I2C_PORT_EEPROM; 221 fc->fc_i2c_adap[1].port = FC_I2C_PORT_EEPROM;
222 fc->fc_i2c_adap[2].port = FC_I2C_PORT_TUNER; 222 fc->fc_i2c_adap[2].port = FC_I2C_PORT_TUNER;
223 223
224 strncpy(fc->fc_i2c_adap[0].i2c_adap.name, 224 strlcpy(fc->fc_i2c_adap[0].i2c_adap.name, "B2C2 FlexCop I2C to demod",
225 "B2C2 FlexCop I2C to demod", I2C_NAME_SIZE); 225 sizeof(fc->fc_i2c_adap[0].i2c_adap.name));
226 strncpy(fc->fc_i2c_adap[1].i2c_adap.name, 226 strlcpy(fc->fc_i2c_adap[1].i2c_adap.name, "B2C2 FlexCop I2C to eeprom",
227 "B2C2 FlexCop I2C to eeprom", I2C_NAME_SIZE); 227 sizeof(fc->fc_i2c_adap[1].i2c_adap.name));
228 strncpy(fc->fc_i2c_adap[2].i2c_adap.name, 228 strlcpy(fc->fc_i2c_adap[2].i2c_adap.name, "B2C2 FlexCop I2C to tuner",
229 "B2C2 FlexCop I2C to tuner", I2C_NAME_SIZE); 229 sizeof(fc->fc_i2c_adap[2].i2c_adap.name));
230 230
231 i2c_set_adapdata(&fc->fc_i2c_adap[0].i2c_adap, &fc->fc_i2c_adap[0]); 231 i2c_set_adapdata(&fc->fc_i2c_adap[0].i2c_adap, &fc->fc_i2c_adap[0]);
232 i2c_set_adapdata(&fc->fc_i2c_adap[1].i2c_adap, &fc->fc_i2c_adap[1]); 232 i2c_set_adapdata(&fc->fc_i2c_adap[1].i2c_adap, &fc->fc_i2c_adap[1]);
diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c
index a7637562e74..aa3db57d32d 100644
--- a/drivers/media/dvb/bt8xx/dst.c
+++ b/drivers/media/dvb/bt8xx/dst.c
@@ -1244,7 +1244,7 @@ static int dst_command(struct dst_state *state, u8 *data, u8 len)
1244 goto error; 1244 goto error;
1245 } 1245 }
1246 if (state->type_flags & DST_TYPE_HAS_FW_1) 1246 if (state->type_flags & DST_TYPE_HAS_FW_1)
1247 udelay(3000); 1247 mdelay(3);
1248 if (read_dst(state, &reply, GET_ACK)) { 1248 if (read_dst(state, &reply, GET_ACK)) {
1249 dprintk(verbose, DST_DEBUG, 1, "Trying to recover.. "); 1249 dprintk(verbose, DST_DEBUG, 1, "Trying to recover.. ");
1250 if ((dst_error_recovery(state)) < 0) { 1250 if ((dst_error_recovery(state)) < 0) {
@@ -1260,7 +1260,7 @@ static int dst_command(struct dst_state *state, u8 *data, u8 len)
1260 if (len >= 2 && data[0] == 0 && (data[1] == 1 || data[1] == 3)) 1260 if (len >= 2 && data[0] == 0 && (data[1] == 1 || data[1] == 3))
1261 goto error; 1261 goto error;
1262 if (state->type_flags & DST_TYPE_HAS_FW_1) 1262 if (state->type_flags & DST_TYPE_HAS_FW_1)
1263 udelay(3000); 1263 mdelay(3);
1264 else 1264 else
1265 udelay(2000); 1265 udelay(2000);
1266 if (!dst_wait_dst_ready(state, NO_DELAY)) 1266 if (!dst_wait_dst_ready(state, NO_DELAY))
diff --git a/drivers/media/dvb/dvb-core/dmxdev.c b/drivers/media/dvb/dvb-core/dmxdev.c
index 1cf9fcb6f51..069d847ba88 100644
--- a/drivers/media/dvb/dvb-core/dmxdev.c
+++ b/drivers/media/dvb/dvb-core/dmxdev.c
@@ -641,7 +641,6 @@ static int dvb_dmxdev_filter_start(struct dmxdev_filter *filter)
641 struct timespec timeout = { 0 }; 641 struct timespec timeout = { 0 };
642 struct dmx_pes_filter_params *para = &filter->params.pes; 642 struct dmx_pes_filter_params *para = &filter->params.pes;
643 dmx_output_t otype; 643 dmx_output_t otype;
644 int ret;
645 int ts_type; 644 int ts_type;
646 enum dmx_ts_pes ts_pes; 645 enum dmx_ts_pes ts_pes;
647 struct dmx_ts_feed **tsfeed = &filter->feed.ts; 646 struct dmx_ts_feed **tsfeed = &filter->feed.ts;
diff --git a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
index 8e5dd7b1f03..98ee16773ff 100644
--- a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
+++ b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
@@ -1032,7 +1032,7 @@ static int dvb_ca_en50221_thread(void *data)
1032 /* we need this extra check for annoying interfaces like the budget-av */ 1032 /* we need this extra check for annoying interfaces like the budget-av */
1033 if ((!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)) && 1033 if ((!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)) &&
1034 (ca->pub->poll_slot_status)) { 1034 (ca->pub->poll_slot_status)) {
1035 int status = ca->pub->poll_slot_status(ca->pub, slot, 0); 1035 status = ca->pub->poll_slot_status(ca->pub, slot, 0);
1036 if (!(status & DVB_CA_EN50221_POLL_CAM_PRESENT)) { 1036 if (!(status & DVB_CA_EN50221_POLL_CAM_PRESENT)) {
1037 ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE; 1037 ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE;
1038 dvb_ca_en50221_thread_update_delay(ca); 1038 dvb_ca_en50221_thread_update_delay(ca);
@@ -1089,7 +1089,7 @@ static int dvb_ca_en50221_thread(void *data)
1089 /* we need this extra check for annoying interfaces like the budget-av */ 1089 /* we need this extra check for annoying interfaces like the budget-av */
1090 if ((!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)) && 1090 if ((!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)) &&
1091 (ca->pub->poll_slot_status)) { 1091 (ca->pub->poll_slot_status)) {
1092 int status = ca->pub->poll_slot_status(ca->pub, slot, 0); 1092 status = ca->pub->poll_slot_status(ca->pub, slot, 0);
1093 if (!(status & DVB_CA_EN50221_POLL_CAM_PRESENT)) { 1093 if (!(status & DVB_CA_EN50221_POLL_CAM_PRESENT)) {
1094 ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE; 1094 ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE;
1095 dvb_ca_en50221_thread_update_delay(ca); 1095 dvb_ca_en50221_thread_update_delay(ca);
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index 8cbdb218952..3526e3ee948 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -889,13 +889,13 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
889 * initialization, so parg is 8 bits and does not 889 * initialization, so parg is 8 bits and does not
890 * include the initialization or start bit 890 * include the initialization or start bit
891 */ 891 */
892 unsigned long cmd = ((unsigned long) parg) << 1; 892 unsigned long swcmd = ((unsigned long) parg) << 1;
893 struct timeval nexttime; 893 struct timeval nexttime;
894 struct timeval tv[10]; 894 struct timeval tv[10];
895 int i; 895 int i;
896 u8 last = 1; 896 u8 last = 1;
897 if (dvb_frontend_debug) 897 if (dvb_frontend_debug)
898 printk("%s switch command: 0x%04lx\n", __func__, cmd); 898 printk("%s switch command: 0x%04lx\n", __func__, swcmd);
899 do_gettimeofday(&nexttime); 899 do_gettimeofday(&nexttime);
900 if (dvb_frontend_debug) 900 if (dvb_frontend_debug)
901 memcpy(&tv[0], &nexttime, sizeof(struct timeval)); 901 memcpy(&tv[0], &nexttime, sizeof(struct timeval));
@@ -908,12 +908,12 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
908 for (i = 0; i < 9; i++) { 908 for (i = 0; i < 9; i++) {
909 if (dvb_frontend_debug) 909 if (dvb_frontend_debug)
910 do_gettimeofday(&tv[i + 1]); 910 do_gettimeofday(&tv[i + 1]);
911 if ((cmd & 0x01) != last) { 911 if ((swcmd & 0x01) != last) {
912 /* set voltage to (last ? 13V : 18V) */ 912 /* set voltage to (last ? 13V : 18V) */
913 fe->ops.set_voltage(fe, (last) ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18); 913 fe->ops.set_voltage(fe, (last) ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18);
914 last = (last) ? 0 : 1; 914 last = (last) ? 0 : 1;
915 } 915 }
916 cmd = cmd >> 1; 916 swcmd = swcmd >> 1;
917 if (i != 8) 917 if (i != 8)
918 dvb_frontend_sleep_until(&nexttime, 8000); 918 dvb_frontend_sleep_until(&nexttime, 8000);
919 } 919 }
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c
index aaa0b6f0b52..563400277a4 100644
--- a/drivers/media/dvb/dvb-usb/cxusb.c
+++ b/drivers/media/dvb/dvb-usb/cxusb.c
@@ -210,7 +210,7 @@ static int cxusb_aver_power_ctrl(struct dvb_usb_device *d, int onoff)
210 if (d->state == DVB_USB_STATE_INIT && 210 if (d->state == DVB_USB_STATE_INIT &&
211 usb_set_interface(d->udev, 0, 0) < 0) 211 usb_set_interface(d->udev, 0, 0) < 0)
212 err("set interface failed"); 212 err("set interface failed");
213 do; while (!(ret = cxusb_ctrl_msg(d, CMD_POWER_ON, NULL, 0, NULL, 0)) && 213 do {} while (!(ret = cxusb_ctrl_msg(d, CMD_POWER_ON, NULL, 0, NULL, 0)) &&
214 !(ret = cxusb_ctrl_msg(d, 0x15, NULL, 0, NULL, 0)) && 214 !(ret = cxusb_ctrl_msg(d, 0x15, NULL, 0, NULL, 0)) &&
215 !(ret = cxusb_ctrl_msg(d, 0x17, NULL, 0, NULL, 0)) && 0); 215 !(ret = cxusb_ctrl_msg(d, 0x17, NULL, 0, NULL, 0)) && 0);
216 if (!ret) { 216 if (!ret) {
diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c
index 3dd20bfbed3..6c0e5c5f436 100644
--- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
@@ -1117,7 +1117,8 @@ struct usb_device_id dib0700_usb_id_table[] = {
1117 { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_HT_EXPRESS) }, 1117 { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_HT_EXPRESS) },
1118 { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_XXS) }, 1118 { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_XXS) },
1119 { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_STK7700P_2) }, 1119 { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_STK7700P_2) },
1120 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_TD_STICK_52009) }, 1120/* 35 */{ USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_TD_STICK_52009) },
1121 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_500_3) },
1121 { 0 } /* Terminating entry */ 1122 { 0 } /* Terminating entry */
1122}; 1123};
1123MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table); 1124MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table);
@@ -1373,7 +1374,7 @@ struct dvb_usb_device_properties dib0700_devices[] = {
1373 } 1374 }
1374 }, 1375 },
1375 1376
1376 .num_device_descs = 3, 1377 .num_device_descs = 4,
1377 .devices = { 1378 .devices = {
1378 { "DiBcom STK7070PD reference design", 1379 { "DiBcom STK7070PD reference design",
1379 { &dib0700_usb_id_table[17], NULL }, 1380 { &dib0700_usb_id_table[17], NULL },
@@ -1386,6 +1387,10 @@ struct dvb_usb_device_properties dib0700_devices[] = {
1386 { "Hauppauge Nova-TD Stick (52009)", 1387 { "Hauppauge Nova-TD Stick (52009)",
1387 { &dib0700_usb_id_table[35], NULL }, 1388 { &dib0700_usb_id_table[35], NULL },
1388 { NULL }, 1389 { NULL },
1390 },
1391 { "Hauppauge Nova-TD-500 (84xxx)",
1392 { &dib0700_usb_id_table[36], NULL },
1393 { NULL },
1389 } 1394 }
1390 } 1395 }
1391 }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, 1396 }, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
index 029b437caf9..03dfb9f2fe3 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
@@ -129,6 +129,7 @@
129#define USB_PID_WINTV_NOVA_T_USB2_WARM 0x9301 129#define USB_PID_WINTV_NOVA_T_USB2_WARM 0x9301
130#define USB_PID_HAUPPAUGE_NOVA_T_500 0x9941 130#define USB_PID_HAUPPAUGE_NOVA_T_500 0x9941
131#define USB_PID_HAUPPAUGE_NOVA_T_500_2 0x9950 131#define USB_PID_HAUPPAUGE_NOVA_T_500_2 0x9950
132#define USB_PID_HAUPPAUGE_NOVA_T_500_3 0x8400
132#define USB_PID_HAUPPAUGE_NOVA_T_STICK 0x7050 133#define USB_PID_HAUPPAUGE_NOVA_T_STICK 0x7050
133#define USB_PID_HAUPPAUGE_NOVA_T_STICK_2 0x7060 134#define USB_PID_HAUPPAUGE_NOVA_T_STICK_2 0x7060
134#define USB_PID_HAUPPAUGE_NOVA_T_STICK_3 0x7070 135#define USB_PID_HAUPPAUGE_NOVA_T_STICK_3 0x7070
diff --git a/drivers/media/dvb/frontends/au8522.c b/drivers/media/dvb/frontends/au8522.c
index f7b71657f0f..0b82cc2a1e1 100644
--- a/drivers/media/dvb/frontends/au8522.c
+++ b/drivers/media/dvb/frontends/au8522.c
@@ -1,7 +1,7 @@
1/* 1/*
2 Auvitek AU8522 QAM/8VSB demodulator driver 2 Auvitek AU8522 QAM/8VSB demodulator driver
3 3
4 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
@@ -304,6 +304,43 @@ static int au8522_mse2snr_lookup(struct mse2snr_tab *tab, int sz, int mse,
304 return ret; 304 return ret;
305} 305}
306 306
307static int au8522_set_if(struct dvb_frontend *fe, enum au8522_if_freq if_freq)
308{
309 struct au8522_state *state = fe->demodulator_priv;
310 u8 r0b5, r0b6, r0b7;
311 char *ifmhz;
312
313 switch (if_freq) {
314 case AU8522_IF_3_25MHZ:
315 ifmhz = "3.25";
316 r0b5 = 0x00;
317 r0b6 = 0x3d;
318 r0b7 = 0xa0;
319 break;
320 case AU8522_IF_4MHZ:
321 ifmhz = "4.00";
322 r0b5 = 0x00;
323 r0b6 = 0x4b;
324 r0b7 = 0xd9;
325 break;
326 case AU8522_IF_6MHZ:
327 ifmhz = "6.00";
328 r0b5 = 0xfb;
329 r0b6 = 0x8e;
330 r0b7 = 0x39;
331 break;
332 default:
333 dprintk("%s() IF Frequency not supported\n", __func__);
334 return -EINVAL;
335 }
336 dprintk("%s() %s MHz\n", __func__, ifmhz);
337 au8522_writereg(state, 0x80b5, r0b5);
338 au8522_writereg(state, 0x80b6, r0b6);
339 au8522_writereg(state, 0x80b7, r0b7);
340
341 return 0;
342}
343
307/* VSB Modulation table */ 344/* VSB Modulation table */
308static struct { 345static struct {
309 u16 reg; 346 u16 reg;
@@ -334,9 +371,6 @@ static struct {
334 { 0x80af, 0x66 }, 371 { 0x80af, 0x66 },
335 { 0x821b, 0xcc }, 372 { 0x821b, 0xcc },
336 { 0x821d, 0x80 }, 373 { 0x821d, 0x80 },
337 { 0x80b5, 0xfb },
338 { 0x80b6, 0x8e },
339 { 0x80b7, 0x39 },
340 { 0x80a4, 0xe8 }, 374 { 0x80a4, 0xe8 },
341 { 0x8231, 0x13 }, 375 { 0x8231, 0x13 },
342}; 376};
@@ -350,9 +384,6 @@ static struct {
350 { 0x80a4, 0x00 }, 384 { 0x80a4, 0x00 },
351 { 0x8081, 0xc4 }, 385 { 0x8081, 0xc4 },
352 { 0x80a5, 0x40 }, 386 { 0x80a5, 0x40 },
353 { 0x80b5, 0xfb },
354 { 0x80b6, 0x8e },
355 { 0x80b7, 0x39 },
356 { 0x80aa, 0x77 }, 387 { 0x80aa, 0x77 },
357 { 0x80ad, 0x77 }, 388 { 0x80ad, 0x77 },
358 { 0x80a6, 0x67 }, 389 { 0x80a6, 0x67 },
@@ -438,6 +469,7 @@ static int au8522_enable_modulation(struct dvb_frontend *fe,
438 au8522_writereg(state, 469 au8522_writereg(state,
439 VSB_mod_tab[i].reg, 470 VSB_mod_tab[i].reg,
440 VSB_mod_tab[i].data); 471 VSB_mod_tab[i].data);
472 au8522_set_if(fe, state->config->vsb_if);
441 break; 473 break;
442 case QAM_64: 474 case QAM_64:
443 case QAM_256: 475 case QAM_256:
@@ -446,6 +478,7 @@ static int au8522_enable_modulation(struct dvb_frontend *fe,
446 au8522_writereg(state, 478 au8522_writereg(state,
447 QAM_mod_tab[i].reg, 479 QAM_mod_tab[i].reg,
448 QAM_mod_tab[i].data); 480 QAM_mod_tab[i].data);
481 au8522_set_if(fe, state->config->qam_if);
449 break; 482 break;
450 default: 483 default:
451 dprintk("%s() Invalid modulation\n", __func__); 484 dprintk("%s() Invalid modulation\n", __func__);
diff --git a/drivers/media/dvb/frontends/au8522.h b/drivers/media/dvb/frontends/au8522.h
index d7affa3cdb2..595915ade8c 100644
--- a/drivers/media/dvb/frontends/au8522.h
+++ b/drivers/media/dvb/frontends/au8522.h
@@ -1,7 +1,7 @@
1/* 1/*
2 Auvitek AU8522 QAM/8VSB demodulator driver 2 Auvitek AU8522 QAM/8VSB demodulator driver
3 3
4 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
@@ -24,6 +24,12 @@
24 24
25#include <linux/dvb/frontend.h> 25#include <linux/dvb/frontend.h>
26 26
27enum au8522_if_freq {
28 AU8522_IF_6MHZ = 0,
29 AU8522_IF_4MHZ,
30 AU8522_IF_3_25MHZ,
31};
32
27struct au8522_config { 33struct au8522_config {
28 /* the demodulator's i2c address */ 34 /* the demodulator's i2c address */
29 u8 demod_address; 35 u8 demod_address;
@@ -32,6 +38,9 @@ struct au8522_config {
32#define AU8522_TUNERLOCKING 0 38#define AU8522_TUNERLOCKING 0
33#define AU8522_DEMODLOCKING 1 39#define AU8522_DEMODLOCKING 1
34 u8 status_mode; 40 u8 status_mode;
41
42 enum au8522_if_freq vsb_if;
43 enum au8522_if_freq qam_if;
35}; 44};
36 45
37#if defined(CONFIG_DVB_AU8522) || \ 46#if defined(CONFIG_DVB_AU8522) || \
diff --git a/drivers/media/dvb/frontends/cx22702.c b/drivers/media/dvb/frontends/cx22702.c
index cc1db4e371c..9430e03dba6 100644
--- a/drivers/media/dvb/frontends/cx22702.c
+++ b/drivers/media/dvb/frontends/cx22702.c
@@ -7,7 +7,7 @@
7 Copyright (C) 2001-2002 Convergence Integrated Media GmbH 7 Copyright (C) 2001-2002 Convergence Integrated Media GmbH
8 Holger Waechtler <holger@convergence.de> 8 Holger Waechtler <holger@convergence.de>
9 9
10 Copyright (C) 2004 Steven Toth <stoth@hauppauge.com> 10 Copyright (C) 2004 Steven Toth <stoth@linuxtv.org>
11 11
12 This program is free software; you can redistribute it and/or modify 12 This program is free software; you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by 13 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/frontends/cx22702.h b/drivers/media/dvb/frontends/cx22702.h
index 8af766a3155..b1e465c6c2c 100644
--- a/drivers/media/dvb/frontends/cx22702.h
+++ b/drivers/media/dvb/frontends/cx22702.h
@@ -7,7 +7,7 @@
7 Copyright (C) 2001-2002 Convergence Integrated Media GmbH 7 Copyright (C) 2001-2002 Convergence Integrated Media GmbH
8 Holger Waechtler <holger@convergence.de> 8 Holger Waechtler <holger@convergence.de>
9 9
10 Copyright (C) 2004 Steven Toth <stoth@hauppauge.com> 10 Copyright (C) 2004 Steven Toth <stoth@linuxtv.org>
11 11
12 This program is free software; you can redistribute it and/or modify 12 This program is free software; you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by 13 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/frontends/cx24123.c b/drivers/media/dvb/frontends/cx24123.c
index 7f68d78c655..7156157cb34 100644
--- a/drivers/media/dvb/frontends/cx24123.c
+++ b/drivers/media/dvb/frontends/cx24123.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Conexant cx24123/cx24109 - DVB QPSK Satellite demod/tuner driver 2 * Conexant cx24123/cx24109 - DVB QPSK Satellite demod/tuner driver
3 * 3 *
4 * Copyright (C) 2005 Steven Toth <stoth@hauppauge.com> 4 * Copyright (C) 2005 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * Support for KWorld DVB-S 100 by Vadim Catana <skystar@moldova.cc> 6 * Support for KWorld DVB-S 100 by Vadim Catana <skystar@moldova.cc>
7 * 7 *
@@ -1072,8 +1072,8 @@ struct dvb_frontend* cx24123_attach(const struct cx24123_config* config,
1072 if (config->dont_use_pll) 1072 if (config->dont_use_pll)
1073 cx24123_repeater_mode(state, 1, 0); 1073 cx24123_repeater_mode(state, 1, 0);
1074 1074
1075 strncpy(state->tuner_i2c_adapter.name, 1075 strlcpy(state->tuner_i2c_adapter.name, "CX24123 tuner I2C bus",
1076 "CX24123 tuner I2C bus", I2C_NAME_SIZE); 1076 sizeof(state->tuner_i2c_adapter.name));
1077 state->tuner_i2c_adapter.class = I2C_CLASS_TV_DIGITAL, 1077 state->tuner_i2c_adapter.class = I2C_CLASS_TV_DIGITAL,
1078 state->tuner_i2c_adapter.algo = &cx24123_tuner_i2c_algo; 1078 state->tuner_i2c_adapter.algo = &cx24123_tuner_i2c_algo;
1079 state->tuner_i2c_adapter.algo_data = NULL; 1079 state->tuner_i2c_adapter.algo_data = NULL;
diff --git a/drivers/media/dvb/frontends/cx24123.h b/drivers/media/dvb/frontends/cx24123.h
index 81ebc3d2f19..cc6b411d6d2 100644
--- a/drivers/media/dvb/frontends/cx24123.h
+++ b/drivers/media/dvb/frontends/cx24123.h
@@ -1,7 +1,7 @@
1/* 1/*
2 Conexant cx24123/cx24109 - DVB QPSK Satellite demod/tuner driver 2 Conexant cx24123/cx24109 - DVB QPSK Satellite demod/tuner driver
3 3
4 Copyright (C) 2005 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2005 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/frontends/s5h1409.c b/drivers/media/dvb/frontends/s5h1409.c
index 5ddb2dca305..7500a1c53e6 100644
--- a/drivers/media/dvb/frontends/s5h1409.c
+++ b/drivers/media/dvb/frontends/s5h1409.c
@@ -1,7 +1,7 @@
1/* 1/*
2 Samsung S5H1409 VSB/QAM demodulator driver 2 Samsung S5H1409 VSB/QAM demodulator driver
3 3
4 Copyright (C) 2006 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2006 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
@@ -404,6 +404,7 @@ static int s5h1409_enable_modulation(struct dvb_frontend* fe,
404 break; 404 break;
405 case QAM_64: 405 case QAM_64:
406 case QAM_256: 406 case QAM_256:
407 case QAM_AUTO:
407 dprintk("%s() QAM_AUTO (64/256)\n", __func__); 408 dprintk("%s() QAM_AUTO (64/256)\n", __func__);
408 if (state->if_freq != S5H1409_QAM_IF_FREQ) 409 if (state->if_freq != S5H1409_QAM_IF_FREQ)
409 s5h1409_set_if_freq(fe, S5H1409_QAM_IF_FREQ); 410 s5h1409_set_if_freq(fe, S5H1409_QAM_IF_FREQ);
diff --git a/drivers/media/dvb/frontends/s5h1409.h b/drivers/media/dvb/frontends/s5h1409.h
index 59f4335964c..d1a1d2eb8e1 100644
--- a/drivers/media/dvb/frontends/s5h1409.h
+++ b/drivers/media/dvb/frontends/s5h1409.h
@@ -1,7 +1,7 @@
1/* 1/*
2 Samsung S5H1409 VSB/QAM demodulator driver 2 Samsung S5H1409 VSB/QAM demodulator driver
3 3
4 Copyright (C) 2006 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2006 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/frontends/s5h1411.c b/drivers/media/dvb/frontends/s5h1411.c
index cff360ce1ba..2da1a3763de 100644
--- a/drivers/media/dvb/frontends/s5h1411.c
+++ b/drivers/media/dvb/frontends/s5h1411.c
@@ -1,7 +1,7 @@
1/* 1/*
2 Samsung S5H1411 VSB/QAM demodulator driver 2 Samsung S5H1411 VSB/QAM demodulator driver
3 3
4 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
@@ -488,6 +488,7 @@ static int s5h1411_enable_modulation(struct dvb_frontend *fe,
488 break; 488 break;
489 case QAM_64: 489 case QAM_64:
490 case QAM_256: 490 case QAM_256:
491 case QAM_AUTO:
491 dprintk("%s() QAM_AUTO (64/256)\n", __func__); 492 dprintk("%s() QAM_AUTO (64/256)\n", __func__);
492 s5h1411_set_if_freq(fe, state->config->qam_if); 493 s5h1411_set_if_freq(fe, state->config->qam_if);
493 s5h1411_writereg(state, S5H1411_I2C_TOP_ADDR, 0x00, 0x0171); 494 s5h1411_writereg(state, S5H1411_I2C_TOP_ADDR, 0x00, 0x0171);
diff --git a/drivers/media/dvb/frontends/s5h1411.h b/drivers/media/dvb/frontends/s5h1411.h
index 1855f64ed4d..7d542bc00c4 100644
--- a/drivers/media/dvb/frontends/s5h1411.h
+++ b/drivers/media/dvb/frontends/s5h1411.h
@@ -1,7 +1,7 @@
1/* 1/*
2 Samsung S5H1411 VSB/QAM demodulator driver 2 Samsung S5H1411 VSB/QAM demodulator driver
3 3
4 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/frontends/s5h1420.c b/drivers/media/dvb/frontends/s5h1420.c
index 720ed9ff7c5..747d3fa2e5e 100644
--- a/drivers/media/dvb/frontends/s5h1420.c
+++ b/drivers/media/dvb/frontends/s5h1420.c
@@ -915,7 +915,8 @@ struct dvb_frontend *s5h1420_attach(const struct s5h1420_config *config,
915 state->frontend.demodulator_priv = state; 915 state->frontend.demodulator_priv = state;
916 916
917 /* create tuner i2c adapter */ 917 /* create tuner i2c adapter */
918 strncpy(state->tuner_i2c_adapter.name, "S5H1420-PN1010 tuner I2C bus", I2C_NAME_SIZE); 918 strlcpy(state->tuner_i2c_adapter.name, "S5H1420-PN1010 tuner I2C bus",
919 sizeof(state->tuner_i2c_adapter.name));
919 state->tuner_i2c_adapter.class = I2C_CLASS_TV_DIGITAL, 920 state->tuner_i2c_adapter.class = I2C_CLASS_TV_DIGITAL,
920 state->tuner_i2c_adapter.algo = &s5h1420_tuner_i2c_algo; 921 state->tuner_i2c_adapter.algo = &s5h1420_tuner_i2c_algo;
921 state->tuner_i2c_adapter.algo_data = NULL; 922 state->tuner_i2c_adapter.algo_data = NULL;
diff --git a/drivers/media/dvb/frontends/tda10048.c b/drivers/media/dvb/frontends/tda10048.c
index 0ab8d86b3ae..04e7f1cc140 100644
--- a/drivers/media/dvb/frontends/tda10048.c
+++ b/drivers/media/dvb/frontends/tda10048.c
@@ -1,7 +1,7 @@
1/* 1/*
2 NXP TDA10048HN DVB OFDM demodulator driver 2 NXP TDA10048HN DVB OFDM demodulator driver
3 3
4 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
@@ -303,7 +303,7 @@ static int tda10048_firmware_upload(struct dvb_frontend *fe)
303 303
304 if (fw->size != TDA10048_DEFAULT_FIRMWARE_SIZE) { 304 if (fw->size != TDA10048_DEFAULT_FIRMWARE_SIZE) {
305 printk(KERN_ERR "%s: firmware incorrect size\n", __func__); 305 printk(KERN_ERR "%s: firmware incorrect size\n", __func__);
306 return -EIO; 306 ret = -EIO;
307 } else { 307 } else {
308 printk(KERN_INFO "%s: firmware uploading\n", __func__); 308 printk(KERN_INFO "%s: firmware uploading\n", __func__);
309 309
diff --git a/drivers/media/dvb/frontends/tda10048.h b/drivers/media/dvb/frontends/tda10048.h
index 2b5c78e62c8..0457b24601f 100644
--- a/drivers/media/dvb/frontends/tda10048.h
+++ b/drivers/media/dvb/frontends/tda10048.h
@@ -1,7 +1,7 @@
1/* 1/*
2 NXP TDA10048HN DVB OFDM demodulator driver 2 NXP TDA10048HN DVB OFDM demodulator driver
3 3
4 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/siano/sms-cards.c b/drivers/media/dvb/siano/sms-cards.c
index e7a8ac0c404..cc5efb643f3 100644
--- a/drivers/media/dvb/siano/sms-cards.c
+++ b/drivers/media/dvb/siano/sms-cards.c
@@ -4,7 +4,7 @@
4 * Copyright (c) 2008 Michael Krufky <mkrufky@linuxtv.org> 4 * Copyright (c) 2008 Michael Krufky <mkrufky@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 3 as 7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation; 8 * published by the Free Software Foundation;
9 * 9 *
10 * Software distributed under the License is distributed on an "AS IS" 10 * Software distributed under the License is distributed on an "AS IS"
diff --git a/drivers/media/dvb/siano/sms-cards.h b/drivers/media/dvb/siano/sms-cards.h
index 83b39bc203f..c8f3da6f9bc 100644
--- a/drivers/media/dvb/siano/sms-cards.h
+++ b/drivers/media/dvb/siano/sms-cards.h
@@ -4,7 +4,7 @@
4 * Copyright (c) 2008 Michael Krufky <mkrufky@linuxtv.org> 4 * Copyright (c) 2008 Michael Krufky <mkrufky@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 3 as 7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation; 8 * published by the Free Software Foundation;
9 * 9 *
10 * Software distributed under the License is distributed on an "AS IS" 10 * Software distributed under the License is distributed on an "AS IS"
diff --git a/drivers/media/dvb/siano/smscoreapi.c b/drivers/media/dvb/siano/smscoreapi.c
index c5f45fed69d..6576fbb40fc 100644
--- a/drivers/media/dvb/siano/smscoreapi.c
+++ b/drivers/media/dvb/siano/smscoreapi.c
@@ -8,7 +8,7 @@
8 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc. 8 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc.
9 * 9 *
10 * This program is free software; you can redistribute it and/or modify 10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 3 as 11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation; 12 * published by the Free Software Foundation;
13 * 13 *
14 * Software distributed under the License is distributed on an "AS IS" 14 * Software distributed under the License is distributed on an "AS IS"
diff --git a/drivers/media/dvb/siano/smscoreapi.h b/drivers/media/dvb/siano/smscoreapi.h
index c1f8f1dccb1..8d973f726fb 100644
--- a/drivers/media/dvb/siano/smscoreapi.h
+++ b/drivers/media/dvb/siano/smscoreapi.h
@@ -6,7 +6,7 @@
6 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc. 6 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc.
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 3 as 9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation; 10 * published by the Free Software Foundation;
11 * 11 *
12 * Software distributed under the License is distributed on an "AS IS" 12 * Software distributed under the License is distributed on an "AS IS"
diff --git a/drivers/media/dvb/siano/smsdvb.c b/drivers/media/dvb/siano/smsdvb.c
index 229274a1411..8d490e133f3 100644
--- a/drivers/media/dvb/siano/smsdvb.c
+++ b/drivers/media/dvb/siano/smsdvb.c
@@ -6,7 +6,7 @@
6 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc. 6 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc.
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 3 as 9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation; 10 * published by the Free Software Foundation;
11 * 11 *
12 * Software distributed under the License is distributed on an "AS IS" 12 * Software distributed under the License is distributed on an "AS IS"
diff --git a/drivers/media/dvb/siano/smsusb.c b/drivers/media/dvb/siano/smsusb.c
index c10b1849c6a..87a3c24454b 100644
--- a/drivers/media/dvb/siano/smsusb.c
+++ b/drivers/media/dvb/siano/smsusb.c
@@ -6,7 +6,7 @@
6 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc. 6 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc.
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 3 as 9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation; 10 * published by the Free Software Foundation;
11 * 11 *
12 * Software distributed under the License is distributed on an "AS IS" 12 * Software distributed under the License is distributed on an "AS IS"
diff --git a/drivers/media/dvb/ttpci/budget-patch.c b/drivers/media/dvb/ttpci/budget-patch.c
index 39bd0a20f53..aa5ed4ef19f 100644
--- a/drivers/media/dvb/ttpci/budget-patch.c
+++ b/drivers/media/dvb/ttpci/budget-patch.c
@@ -116,7 +116,8 @@ static int SendDiSEqCMsg (struct budget *budget, int len, u8 *msg, unsigned long
116 DiseqcSendByte(budget, 0xff); 116 DiseqcSendByte(budget, 0xff);
117 else { 117 else {
118 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); 118 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI);
119 udelay(12500); 119 mdelay(12);
120 udelay(500);
120 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); 121 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO);
121 } 122 }
122 msleep(20); 123 msleep(20);
diff --git a/drivers/media/dvb/ttpci/budget.c b/drivers/media/dvb/ttpci/budget.c
index 2293d80c6e5..f0068996ac0 100644
--- a/drivers/media/dvb/ttpci/budget.c
+++ b/drivers/media/dvb/ttpci/budget.c
@@ -108,7 +108,8 @@ static int SendDiSEqCMsg (struct budget *budget, int len, u8 *msg, unsigned long
108 DiseqcSendByte(budget, 0xff); 108 DiseqcSendByte(budget, 0xff);
109 else { 109 else {
110 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); 110 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI);
111 udelay(12500); 111 mdelay(12);
112 udelay(500);
112 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); 113 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO);
113 } 114 }
114 msleep(20); 115 msleep(20);
diff --git a/drivers/media/radio/Makefile b/drivers/media/radio/Makefile
index a30159f6fa4..7ca71ab96b4 100644
--- a/drivers/media/radio/Makefile
+++ b/drivers/media/radio/Makefile
@@ -2,8 +2,6 @@
2# Makefile for the kernel character device drivers. 2# Makefile for the kernel character device drivers.
3# 3#
4 4
5miropcm20-objs := miropcm20-rds-core.o miropcm20-radio.o
6
7obj-$(CONFIG_RADIO_AZTECH) += radio-aztech.o 5obj-$(CONFIG_RADIO_AZTECH) += radio-aztech.o
8obj-$(CONFIG_RADIO_RTRACK2) += radio-rtrack2.o 6obj-$(CONFIG_RADIO_RTRACK2) += radio-rtrack2.o
9obj-$(CONFIG_RADIO_SF16FMI) += radio-sf16fmi.o 7obj-$(CONFIG_RADIO_SF16FMI) += radio-sf16fmi.o
@@ -14,8 +12,6 @@ obj-$(CONFIG_RADIO_TERRATEC) += radio-terratec.o
14obj-$(CONFIG_RADIO_MAXIRADIO) += radio-maxiradio.o 12obj-$(CONFIG_RADIO_MAXIRADIO) += radio-maxiradio.o
15obj-$(CONFIG_RADIO_RTRACK) += radio-aimslab.o 13obj-$(CONFIG_RADIO_RTRACK) += radio-aimslab.o
16obj-$(CONFIG_RADIO_ZOLTRIX) += radio-zoltrix.o 14obj-$(CONFIG_RADIO_ZOLTRIX) += radio-zoltrix.o
17obj-$(CONFIG_RADIO_MIROPCM20) += miropcm20.o
18obj-$(CONFIG_RADIO_MIROPCM20_RDS) += miropcm20-rds.o
19obj-$(CONFIG_RADIO_GEMTEK) += radio-gemtek.o 15obj-$(CONFIG_RADIO_GEMTEK) += radio-gemtek.o
20obj-$(CONFIG_RADIO_GEMTEK_PCI) += radio-gemtek-pci.o 16obj-$(CONFIG_RADIO_GEMTEK_PCI) += radio-gemtek-pci.o
21obj-$(CONFIG_RADIO_TRUST) += radio-trust.o 17obj-$(CONFIG_RADIO_TRUST) += radio-trust.o
diff --git a/drivers/media/radio/dsbr100.c b/drivers/media/radio/dsbr100.c
index 1ed88f3abe6..70c65a74592 100644
--- a/drivers/media/radio/dsbr100.c
+++ b/drivers/media/radio/dsbr100.c
@@ -493,7 +493,7 @@ static int usb_dsbr100_probe(struct usb_interface *intf,
493 radio->usbdev = interface_to_usbdev(intf); 493 radio->usbdev = interface_to_usbdev(intf);
494 radio->curfreq = FREQ_MIN*FREQ_MUL; 494 radio->curfreq = FREQ_MIN*FREQ_MUL;
495 video_set_drvdata(radio->videodev, radio); 495 video_set_drvdata(radio->videodev, radio);
496 if (video_register_device(radio->videodev, VFL_TYPE_RADIO,radio_nr)) { 496 if (video_register_device(radio->videodev, VFL_TYPE_RADIO, radio_nr) < 0) {
497 warn("Could not register video device"); 497 warn("Could not register video device");
498 video_device_release(radio->videodev); 498 video_device_release(radio->videodev);
499 kfree(radio->transfer_buffer); 499 kfree(radio->transfer_buffer);
diff --git a/drivers/media/radio/miropcm20-radio.c b/drivers/media/radio/miropcm20-radio.c
deleted file mode 100644
index 7fd7ee2d32c..00000000000
--- a/drivers/media/radio/miropcm20-radio.c
+++ /dev/null
@@ -1,266 +0,0 @@
1/* Miro PCM20 radio driver for Linux radio support
2 * (c) 1998 Ruurd Reitsma <R.A.Reitsma@wbmt.tudelft.nl>
3 * Thanks to Norberto Pellici for the ACI device interface specification
4 * The API part is based on the radiotrack driver by M. Kirkwood
5 * This driver relies on the aci mixer (drivers/sound/aci.c)
6 * Look there for further info...
7 */
8
9/* Revision history:
10 *
11 * 1998 Ruurd Reitsma <R.A.Reitsma@wbmt.tudelft.nl>
12 * 2000-09-05 Robert Siemer <Robert.Siemer@gmx.de>
13 * removed unfinished volume control (maybe adding it later again)
14 * use OSS-mixer; added stereo control
15 */
16
17/* What ever you think about the ACI, version 0x07 is not very well!
18 * I can't get frequency, 'tuner status', 'tuner flags' or mute/mono
19 * conditions... Robert
20 */
21
22#include <linux/module.h>
23#include <linux/init.h>
24#include <linux/videodev.h>
25#include <media/v4l2-common.h>
26#include <media/v4l2-ioctl.h>
27#include "oss/aci.h"
28#include "miropcm20-rds-core.h"
29
30static int radio_nr = -1;
31module_param(radio_nr, int, 0);
32
33struct pcm20_device {
34 unsigned long freq;
35 int muted;
36 int stereo;
37};
38
39
40static int pcm20_mute(struct pcm20_device *dev, unsigned char mute)
41{
42 dev->muted = mute;
43 return aci_write_cmd(ACI_SET_TUNERMUTE, mute);
44}
45
46static int pcm20_stereo(struct pcm20_device *dev, unsigned char stereo)
47{
48 dev->stereo = stereo;
49 return aci_write_cmd(ACI_SET_TUNERMONO, !stereo);
50}
51
52static int pcm20_setfreq(struct pcm20_device *dev, unsigned long freq)
53{
54 unsigned char freql;
55 unsigned char freqh;
56
57 dev->freq=freq;
58
59 freq /= 160;
60 if (!(aci_version==0x07 || aci_version>=0xb0))
61 freq /= 10; /* I don't know exactly which version
62 * needs this hack */
63 freql = freq & 0xff;
64 freqh = freq >> 8;
65
66 aci_rds_cmd(RDS_RESET, NULL, 0);
67 pcm20_stereo(dev, 1);
68
69 return aci_rw_cmd(ACI_WRITE_TUNE, freql, freqh);
70}
71
72static int pcm20_getflags(struct pcm20_device *dev, __u32 *flags, __u16 *signal)
73{
74 /* okay, check for signal, stereo and rds here... */
75 int i;
76 unsigned char buf;
77
78 if ((i=aci_rw_cmd(ACI_READ_TUNERSTATION, -1, -1))<0)
79 return i;
80 pr_debug("check_sig: 0x%x\n", i);
81 if (i & 0x80) {
82 /* no signal from tuner */
83 *flags=0;
84 *signal=0;
85 return 0;
86 } else
87 *signal=0xffff;
88
89 if ((i=aci_rw_cmd(ACI_READ_TUNERSTEREO, -1, -1))<0)
90 return i;
91 if (i & 0x40) {
92 *flags=0;
93 } else {
94 /* stereo */
95 *flags=VIDEO_TUNER_STEREO_ON;
96 /* I can't see stereo, when forced to mono */
97 dev->stereo=1;
98 }
99
100 if ((i=aci_rds_cmd(RDS_STATUS, &buf, 1))<0)
101 return i;
102 if (buf & 1)
103 /* RDS available */
104 *flags|=VIDEO_TUNER_RDS_ON;
105 else
106 return 0;
107
108 if ((i=aci_rds_cmd(RDS_RXVALUE, &buf, 1))<0)
109 return i;
110 pr_debug("rds-signal: %d\n", buf);
111 if (buf > 15) {
112 printk("miropcm20-radio: RX strengths unexpected high...\n");
113 buf=15;
114 }
115 /* refine signal */
116 if ((*signal=SCALE(15, 0xffff, buf))==0)
117 *signal = 1;
118
119 return 0;
120}
121
122static int pcm20_do_ioctl(struct inode *inode, struct file *file,
123 unsigned int cmd, void *arg)
124{
125 struct video_device *dev = video_devdata(file);
126 struct pcm20_device *pcm20 = dev->priv;
127 int i;
128
129 switch(cmd)
130 {
131 case VIDIOCGCAP:
132 {
133 struct video_capability *v = arg;
134 memset(v,0,sizeof(*v));
135 v->type=VID_TYPE_TUNER;
136 strcpy(v->name, "Miro PCM20");
137 v->channels=1;
138 v->audios=1;
139 return 0;
140 }
141 case VIDIOCGTUNER:
142 {
143 struct video_tuner *v = arg;
144 if(v->tuner) /* Only 1 tuner */
145 return -EINVAL;
146 v->rangelow=87*16000;
147 v->rangehigh=108*16000;
148 pcm20_getflags(pcm20, &v->flags, &v->signal);
149 v->flags|=VIDEO_TUNER_LOW;
150 v->mode=VIDEO_MODE_AUTO;
151 strcpy(v->name, "FM");
152 return 0;
153 }
154 case VIDIOCSTUNER:
155 {
156 struct video_tuner *v = arg;
157 if(v->tuner!=0)
158 return -EINVAL;
159 /* Only 1 tuner so no setting needed ! */
160 return 0;
161 }
162 case VIDIOCGFREQ:
163 {
164 unsigned long *freq = arg;
165 *freq = pcm20->freq;
166 return 0;
167 }
168 case VIDIOCSFREQ:
169 {
170 unsigned long *freq = arg;
171 pcm20->freq = *freq;
172 i=pcm20_setfreq(pcm20, pcm20->freq);
173 pr_debug("First view (setfreq): 0x%x\n", i);
174 return i;
175 }
176 case VIDIOCGAUDIO:
177 {
178 struct video_audio *v = arg;
179 memset(v,0, sizeof(*v));
180 v->flags=VIDEO_AUDIO_MUTABLE;
181 if (pcm20->muted)
182 v->flags|=VIDEO_AUDIO_MUTE;
183 v->mode=VIDEO_SOUND_STEREO;
184 if (pcm20->stereo)
185 v->mode|=VIDEO_SOUND_MONO;
186 /* v->step=2048; */
187 strcpy(v->name, "Radio");
188 return 0;
189 }
190 case VIDIOCSAUDIO:
191 {
192 struct video_audio *v = arg;
193 if(v->audio)
194 return -EINVAL;
195
196 pcm20_mute(pcm20, !!(v->flags&VIDEO_AUDIO_MUTE));
197 if(v->flags&VIDEO_SOUND_MONO)
198 pcm20_stereo(pcm20, 0);
199 if(v->flags&VIDEO_SOUND_STEREO)
200 pcm20_stereo(pcm20, 1);
201
202 return 0;
203 }
204 default:
205 return -ENOIOCTLCMD;
206 }
207}
208
209static int pcm20_ioctl(struct inode *inode, struct file *file,
210 unsigned int cmd, unsigned long arg)
211{
212 return video_usercopy(inode, file, cmd, arg, pcm20_do_ioctl);
213}
214
215static struct pcm20_device pcm20_unit = {
216 .freq = 87*16000,
217 .muted = 1,
218};
219
220static const struct file_operations pcm20_fops = {
221 .owner = THIS_MODULE,
222 .open = video_exclusive_open,
223 .release = video_exclusive_release,
224 .ioctl = pcm20_ioctl,
225#ifdef CONFIG_COMPAT
226 .compat_ioctl = v4l_compat_ioctl32,
227#endif
228 .llseek = no_llseek,
229};
230
231static struct video_device pcm20_radio = {
232 .name = "Miro PCM 20 radio",
233 .fops = &pcm20_fops,
234 .priv = &pcm20_unit
235};
236
237static int __init pcm20_init(void)
238{
239 if(video_register_device(&pcm20_radio, VFL_TYPE_RADIO, radio_nr)==-1)
240 goto video_register_device;
241
242 if(attach_aci_rds()<0)
243 goto attach_aci_rds;
244
245 printk(KERN_INFO "Miro PCM20 radio card driver.\n");
246
247 return 0;
248
249 attach_aci_rds:
250 video_unregister_device(&pcm20_radio);
251 video_register_device:
252 return -EINVAL;
253}
254
255MODULE_AUTHOR("Ruurd Reitsma");
256MODULE_DESCRIPTION("A driver for the Miro PCM20 radio card.");
257MODULE_LICENSE("GPL");
258
259static void __exit pcm20_cleanup(void)
260{
261 unload_aci_rds();
262 video_unregister_device(&pcm20_radio);
263}
264
265module_init(pcm20_init);
266module_exit(pcm20_cleanup);
diff --git a/drivers/media/radio/miropcm20-rds-core.c b/drivers/media/radio/miropcm20-rds-core.c
deleted file mode 100644
index 9428d8b2642..00000000000
--- a/drivers/media/radio/miropcm20-rds-core.c
+++ /dev/null
@@ -1,211 +0,0 @@
1/*
2 * Many thanks to Fred Seidel <seidel@metabox.de>, the
3 * designer of the RDS decoder hardware. With his help
4 * I was able to code this driver.
5 * Thanks also to Norberto Pellicci, Dominic Mounteney
6 * <DMounteney@pinnaclesys.com> and www.teleauskunft.de
7 * for good hints on finding Fred. It was somewhat hard
8 * to locate him here in Germany... [:
9 *
10 * Revision history:
11 *
12 * 2000-08-09 Robert Siemer <Robert.Siemer@gmx.de>
13 * RDS support for MiroSound PCM20 radio
14 */
15
16#include <linux/module.h>
17#include <linux/errno.h>
18#include <linux/string.h>
19#include <linux/init.h>
20#include <linux/slab.h>
21#include <linux/mutex.h>
22
23#include <asm/io.h>
24#include "oss/aci.h"
25#include "miropcm20-rds-core.h"
26
27#define DEBUG 0
28
29static struct mutex aci_rds_mutex;
30
31#define RDS_DATASHIFT 2 /* Bit 2 */
32#define RDS_DATAMASK (1 << RDS_DATASHIFT)
33#define RDS_BUSYMASK 0x10 /* Bit 4 */
34#define RDS_CLOCKMASK 0x08 /* Bit 3 */
35
36#define RDS_DATA(x) (((x) >> RDS_DATASHIFT) & 1)
37
38
39#if DEBUG
40static void print_matrix(char array[], unsigned int length)
41{
42 int i, j;
43
44 for (i=0; i<length; i++) {
45 printk(KERN_DEBUG "aci-rds: ");
46 for (j=7; j>=0; j--) {
47 printk("%d", (array[i] >> j) & 0x1);
48 }
49 if (i%8 == 0)
50 printk(" byte-border\n");
51 else
52 printk("\n");
53 }
54}
55#endif /* DEBUG */
56
57static int byte2trans(unsigned char byte, unsigned char sendbuffer[], int size)
58{
59 int i;
60
61 if (size != 8)
62 return -1;
63 for (i = 7; i >= 0; i--)
64 sendbuffer[7-i] = (byte & (1 << i)) ? RDS_DATAMASK : 0;
65 sendbuffer[0] |= RDS_CLOCKMASK;
66
67 return 0;
68}
69
70static int rds_waitread(void)
71{
72 unsigned char byte;
73 int i=2000;
74
75 do {
76 byte=inb(RDS_REGISTER);
77 i--;
78 }
79 while ((byte & RDS_BUSYMASK) && i);
80
81 if (i) {
82 #if DEBUG
83 printk(KERN_DEBUG "rds_waitread()");
84 print_matrix(&byte, 1);
85 #endif
86 return (byte);
87 } else {
88 printk(KERN_WARNING "aci-rds: rds_waitread() timeout...\n");
89 return -1;
90 }
91}
92
93/* don't use any ..._nowait() function if you are not sure what you do... */
94
95static inline void rds_rawwrite_nowait(unsigned char byte)
96{
97 #if DEBUG
98 printk(KERN_DEBUG "rds_rawwrite()");
99 print_matrix(&byte, 1);
100 #endif
101 outb(byte, RDS_REGISTER);
102}
103
104static int rds_rawwrite(unsigned char byte)
105{
106 if (rds_waitread() >= 0) {
107 rds_rawwrite_nowait(byte);
108 return 0;
109 } else
110 return -1;
111}
112
113static int rds_write(unsigned char cmd)
114{
115 unsigned char sendbuffer[8];
116 int i;
117
118 if (byte2trans(cmd, sendbuffer, 8) != 0){
119 return -1;
120 } else {
121 for (i=0; i<8; i++) {
122 rds_rawwrite(sendbuffer[i]);
123 }
124 }
125 return 0;
126}
127
128static int rds_readcycle_nowait(void)
129{
130 rds_rawwrite_nowait(0);
131 return rds_waitread();
132}
133
134static int rds_readcycle(void)
135{
136 if (rds_rawwrite(0) < 0)
137 return -1;
138 return rds_waitread();
139}
140
141static int rds_read(unsigned char databuffer[], int datasize)
142{
143 #define READSIZE (8*datasize)
144
145 int i,j;
146
147 if (datasize < 1) /* nothing to read */
148 return 0;
149
150 /* to be able to use rds_readcycle_nowait()
151 I have to waitread() here */
152 if (rds_waitread() < 0)
153 return -1;
154
155 memset(databuffer, 0, datasize);
156
157 for (i=0; i< READSIZE; i++)
158 if((j=rds_readcycle_nowait()) < 0) {
159 return -1;
160 } else {
161 databuffer[i/8]|=(RDS_DATA(j) << (7-(i%8)));
162 }
163
164 return 0;
165}
166
167static int rds_ack(void)
168{
169 int i=rds_readcycle();
170
171 if (i < 0)
172 return -1;
173 if (i & RDS_DATAMASK) {
174 return 0; /* ACK */
175 } else {
176 printk(KERN_DEBUG "aci-rds: NACK\n");
177 return 1; /* NACK */
178 }
179}
180
181int aci_rds_cmd(unsigned char cmd, unsigned char databuffer[], int datasize)
182{
183 int ret;
184
185 if (mutex_lock_interruptible(&aci_rds_mutex))
186 return -EINTR;
187
188 rds_write(cmd);
189
190 /* RDS_RESET doesn't need further processing */
191 if (cmd!=RDS_RESET && (rds_ack() || rds_read(databuffer, datasize)))
192 ret = -1;
193 else
194 ret = 0;
195
196 mutex_unlock(&aci_rds_mutex);
197
198 return ret;
199}
200EXPORT_SYMBOL(aci_rds_cmd);
201
202int __init attach_aci_rds(void)
203{
204 mutex_init(&aci_rds_mutex);
205 return 0;
206}
207
208void __exit unload_aci_rds(void)
209{
210}
211MODULE_LICENSE("GPL");
diff --git a/drivers/media/radio/miropcm20-rds-core.h b/drivers/media/radio/miropcm20-rds-core.h
deleted file mode 100644
index aeb5761f046..00000000000
--- a/drivers/media/radio/miropcm20-rds-core.h
+++ /dev/null
@@ -1,19 +0,0 @@
1#ifndef _MIROPCM20_RDS_CORE_H_
2#define _MIROPCM20_RDS_CORE_H_
3
4extern int aci_rds_cmd(unsigned char cmd, unsigned char databuffer[], int datasize);
5
6#define RDS_STATUS 0x01
7#define RDS_STATIONNAME 0x02
8#define RDS_TEXT 0x03
9#define RDS_ALTFREQ 0x04
10#define RDS_TIMEDATE 0x05
11#define RDS_PI_CODE 0x06
12#define RDS_PTYTATP 0x07
13#define RDS_RESET 0x08
14#define RDS_RXVALUE 0x09
15
16extern void __exit unload_aci_rds(void);
17extern int __init attach_aci_rds(void);
18
19#endif /* _MIROPCM20_RDS_CORE_H_ */
diff --git a/drivers/media/radio/miropcm20-rds.c b/drivers/media/radio/miropcm20-rds.c
deleted file mode 100644
index 3e840f74d45..00000000000
--- a/drivers/media/radio/miropcm20-rds.c
+++ /dev/null
@@ -1,136 +0,0 @@
1/* MiroSOUND PCM20 radio rds interface driver
2 * (c) 2001 Robert Siemer <Robert.Siemer@gmx.de>
3 * Thanks to Fred Seidel. See miropcm20-rds-core.c for further information.
4 */
5
6/* Revision history:
7 *
8 * 2001-04-18 Robert Siemer <Robert.Siemer@gmx.de>
9 * separate file for user interface driver
10 */
11
12#include <linux/module.h>
13#include <linux/init.h>
14#include <linux/slab.h>
15#include <linux/smp_lock.h>
16#include <linux/fs.h>
17#include <linux/miscdevice.h>
18#include <linux/delay.h>
19#include <asm/uaccess.h>
20#include "miropcm20-rds-core.h"
21
22static char * text_buffer;
23static int rds_users;
24
25
26static int rds_f_open(struct inode *in, struct file *fi)
27{
28 if (rds_users)
29 return -EBUSY;
30
31 lock_kernel();
32 rds_users++;
33 if ((text_buffer=kmalloc(66, GFP_KERNEL)) == 0) {
34 rds_users--;
35 printk(KERN_NOTICE "aci-rds: Out of memory by open()...\n");
36 unlock_kernel();
37 return -ENOMEM;
38 }
39
40 unlock_kernel();
41 return 0;
42}
43
44static int rds_f_release(struct inode *in, struct file *fi)
45{
46 kfree(text_buffer);
47
48 rds_users--;
49 return 0;
50}
51
52static void print_matrix(char *ch, char out[])
53{
54 int j;
55
56 for (j=7; j>=0; j--) {
57 out[7-j] = ((*ch >> j) & 0x1) + '0';
58 }
59}
60
61static ssize_t rds_f_read(struct file *file, char __user *buffer, size_t length, loff_t *offset)
62{
63// i = sprintf(text_buffer, "length: %d, offset: %d\n", length, *offset);
64
65 char c;
66 char bits[8];
67
68 msleep(2000);
69 aci_rds_cmd(RDS_STATUS, &c, 1);
70 print_matrix(&c, bits);
71 if (copy_to_user(buffer, bits, 8))
72 return -EFAULT;
73
74/* if ((c >> 3) & 1) {
75 aci_rds_cmd(RDS_STATIONNAME, text_buffer+1, 8);
76 text_buffer[0] = ' ' ;
77 text_buffer[9] = '\n';
78 return copy_to_user(buffer+8, text_buffer, 10) ? -EFAULT: 18;
79 }
80*/
81/* if ((c >> 6) & 1) {
82 aci_rds_cmd(RDS_PTYTATP, &c, 1);
83 if ( c & 1)
84 sprintf(text_buffer, " M");
85 else
86 sprintf(text_buffer, " S");
87 if ((c >> 1) & 1)
88 sprintf(text_buffer+2, " TA");
89 else
90 sprintf(text_buffer+2, " --");
91 if ((c >> 7) & 1)
92 sprintf(text_buffer+5, " TP");
93 else
94 sprintf(text_buffer+5, " --");
95 sprintf(text_buffer+8, " %2d\n", (c >> 2) & 0x1f);
96 return copy_to_user(buffer+8, text_buffer, 12) ? -EFAULT: 20;
97 }
98*/
99
100 if ((c >> 4) & 1) {
101 aci_rds_cmd(RDS_TEXT, text_buffer, 65);
102 text_buffer[0] = ' ' ;
103 text_buffer[65] = '\n';
104 return copy_to_user(buffer+8, text_buffer,66) ? -EFAULT : 66+8;
105 } else {
106 put_user('\n', buffer+8);
107 return 9;
108 }
109}
110
111static const struct file_operations rds_fops = {
112 .owner = THIS_MODULE,
113 .read = rds_f_read,
114 .open = rds_f_open,
115 .release = rds_f_release
116};
117
118static struct miscdevice rds_miscdev = {
119 .minor = MISC_DYNAMIC_MINOR,
120 .name = "radiotext",
121 .fops = &rds_fops,
122};
123
124static int __init miropcm20_rds_init(void)
125{
126 return misc_register(&rds_miscdev);
127}
128
129static void __exit miropcm20_rds_cleanup(void)
130{
131 misc_deregister(&rds_miscdev);
132}
133
134module_init(miropcm20_rds_init);
135module_exit(miropcm20_rds_cleanup);
136MODULE_LICENSE("GPL");
diff --git a/drivers/media/radio/radio-aimslab.c b/drivers/media/radio/radio-aimslab.c
index eba9209b302..1f064f4b32d 100644
--- a/drivers/media/radio/radio-aimslab.c
+++ b/drivers/media/radio/radio-aimslab.c
@@ -426,8 +426,7 @@ static int __init rtrack_init(void)
426 426
427 rtrack_radio.priv=&rtrack_unit; 427 rtrack_radio.priv=&rtrack_unit;
428 428
429 if(video_register_device(&rtrack_radio, VFL_TYPE_RADIO, radio_nr)==-1) 429 if (video_register_device(&rtrack_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
430 {
431 release_region(io, 2); 430 release_region(io, 2);
432 return -EINVAL; 431 return -EINVAL;
433 } 432 }
diff --git a/drivers/media/radio/radio-aztech.c b/drivers/media/radio/radio-aztech.c
index 3fe5504428c..628c689e3ff 100644
--- a/drivers/media/radio/radio-aztech.c
+++ b/drivers/media/radio/radio-aztech.c
@@ -394,8 +394,7 @@ static int __init aztech_init(void)
394 mutex_init(&lock); 394 mutex_init(&lock);
395 aztech_radio.priv=&aztech_unit; 395 aztech_radio.priv=&aztech_unit;
396 396
397 if(video_register_device(&aztech_radio, VFL_TYPE_RADIO, radio_nr)==-1) 397 if (video_register_device(&aztech_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
398 {
399 release_region(io,2); 398 release_region(io,2);
400 return -EINVAL; 399 return -EINVAL;
401 } 400 }
diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-cadet.c
index 6166e726ed7..04c3698d32e 100644
--- a/drivers/media/radio/radio-cadet.c
+++ b/drivers/media/radio/radio-cadet.c
@@ -682,7 +682,7 @@ static int __init cadet_init(void)
682 } 682 }
683 if (!request_region(io,2,"cadet")) 683 if (!request_region(io,2,"cadet"))
684 goto fail; 684 goto fail;
685 if(video_register_device(&cadet_radio,VFL_TYPE_RADIO,radio_nr)==-1) { 685 if (video_register_device(&cadet_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
686 release_region(io,2); 686 release_region(io,2);
687 goto fail; 687 goto fail;
688 } 688 }
diff --git a/drivers/media/radio/radio-gemtek-pci.c b/drivers/media/radio/radio-gemtek-pci.c
index 36e754e3ffb..5cd7f032298 100644
--- a/drivers/media/radio/radio-gemtek-pci.c
+++ b/drivers/media/radio/radio-gemtek-pci.c
@@ -425,7 +425,7 @@ static int __devinit gemtek_pci_probe( struct pci_dev *pci_dev, const struct pci
425 } 425 }
426 *devradio = vdev_template; 426 *devradio = vdev_template;
427 427
428 if ( video_register_device( devradio, VFL_TYPE_RADIO , nr_radio) == -1 ) { 428 if (video_register_device(devradio, VFL_TYPE_RADIO, nr_radio) < 0) {
429 kfree( devradio ); 429 kfree( devradio );
430 goto err_video; 430 goto err_video;
431 } 431 }
diff --git a/drivers/media/radio/radio-gemtek.c b/drivers/media/radio/radio-gemtek.c
index 2b1a6221de6..0a0f956bb30 100644
--- a/drivers/media/radio/radio-gemtek.c
+++ b/drivers/media/radio/radio-gemtek.c
@@ -612,8 +612,7 @@ static int __init gemtek_init(void)
612 612
613 gemtek_radio.priv = &gemtek_unit; 613 gemtek_radio.priv = &gemtek_unit;
614 614
615 if (video_register_device(&gemtek_radio, VFL_TYPE_RADIO, 615 if (video_register_device(&gemtek_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
616 radio_nr) == -1) {
617 release_region(io, 1); 616 release_region(io, 1);
618 return -EBUSY; 617 return -EBUSY;
619 } 618 }
diff --git a/drivers/media/radio/radio-maestro.c b/drivers/media/radio/radio-maestro.c
index 0ada1c697e8..9ef0a763eeb 100644
--- a/drivers/media/radio/radio-maestro.c
+++ b/drivers/media/radio/radio-maestro.c
@@ -409,8 +409,7 @@ static int __devinit maestro_probe(struct pci_dev *pdev,
409 video_set_drvdata(maestro_radio_inst, radio_unit); 409 video_set_drvdata(maestro_radio_inst, radio_unit);
410 pci_set_drvdata(pdev, maestro_radio_inst); 410 pci_set_drvdata(pdev, maestro_radio_inst);
411 411
412 retval = video_register_device(maestro_radio_inst, VFL_TYPE_RADIO, 412 retval = video_register_device(maestro_radio_inst, VFL_TYPE_RADIO, radio_nr);
413 radio_nr);
414 if (retval) { 413 if (retval) {
415 printk(KERN_ERR "can't register video device!\n"); 414 printk(KERN_ERR "can't register video device!\n");
416 goto errfr1; 415 goto errfr1;
diff --git a/drivers/media/radio/radio-maxiradio.c b/drivers/media/radio/radio-maxiradio.c
index 43c75497dc4..0cc6fcb041f 100644
--- a/drivers/media/radio/radio-maxiradio.c
+++ b/drivers/media/radio/radio-maxiradio.c
@@ -156,28 +156,28 @@ static void set_freq(__u16 io, __u32 freq)
156{ 156{
157 unsigned long int si; 157 unsigned long int si;
158 int bl; 158 int bl;
159 int data = FREQ2BITS(freq); 159 int val = FREQ2BITS(freq);
160 160
161 /* TEA5757 shift register bits (see pdf) */ 161 /* TEA5757 shift register bits (see pdf) */
162 162
163 outbit(0,io); // 24 search 163 outbit(0, io); /* 24 search */
164 outbit(1,io); // 23 search up/down 164 outbit(1, io); /* 23 search up/down */
165 165
166 outbit(0,io); // 22 stereo/mono 166 outbit(0, io); /* 22 stereo/mono */
167 167
168 outbit(0,io); // 21 band 168 outbit(0, io); /* 21 band */
169 outbit(0,io); // 20 band (only 00=FM works I think) 169 outbit(0, io); /* 20 band (only 00=FM works I think) */
170 170
171 outbit(0,io); // 19 port ? 171 outbit(0, io); /* 19 port ? */
172 outbit(0,io); // 18 port ? 172 outbit(0, io); /* 18 port ? */
173 173
174 outbit(0,io); // 17 search level 174 outbit(0, io); /* 17 search level */
175 outbit(0,io); // 16 search level 175 outbit(0, io); /* 16 search level */
176 176
177 si = 0x8000; 177 si = 0x8000;
178 for (bl = 1; bl <= 16 ; bl++) { 178 for (bl = 1; bl <= 16; bl++) {
179 outbit(data & si,io); 179 outbit(val & si, io);
180 si >>=1; 180 si >>= 1;
181 } 181 }
182 182
183 dprintk(1, "Radio freq set to %d.%02d MHz\n", 183 dprintk(1, "Radio freq set to %d.%02d MHz\n",
@@ -410,7 +410,7 @@ static int __devinit maxiradio_init_one(struct pci_dev *pdev, const struct pci_d
410 mutex_init(&radio_unit.lock); 410 mutex_init(&radio_unit.lock);
411 maxiradio_radio.priv = &radio_unit; 411 maxiradio_radio.priv = &radio_unit;
412 412
413 if (video_register_device(&maxiradio_radio, VFL_TYPE_RADIO, radio_nr)==-1) { 413 if (video_register_device(&maxiradio_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
414 printk("radio-maxiradio: can't register device!"); 414 printk("radio-maxiradio: can't register device!");
415 goto err_out_free_region; 415 goto err_out_free_region;
416 } 416 }
diff --git a/drivers/media/radio/radio-rtrack2.c b/drivers/media/radio/radio-rtrack2.c
index e2dde080726..6d820e2481e 100644
--- a/drivers/media/radio/radio-rtrack2.c
+++ b/drivers/media/radio/radio-rtrack2.c
@@ -332,8 +332,7 @@ static int __init rtrack2_init(void)
332 rtrack2_radio.priv=&rtrack2_unit; 332 rtrack2_radio.priv=&rtrack2_unit;
333 333
334 spin_lock_init(&lock); 334 spin_lock_init(&lock);
335 if(video_register_device(&rtrack2_radio, VFL_TYPE_RADIO, radio_nr)==-1) 335 if (video_register_device(&rtrack2_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
336 {
337 release_region(io, 4); 336 release_region(io, 4);
338 return -EINVAL; 337 return -EINVAL;
339 } 338 }
diff --git a/drivers/media/radio/radio-sf16fmi.c b/drivers/media/radio/radio-sf16fmi.c
index bb5d92f104a..0d478f54a90 100644
--- a/drivers/media/radio/radio-sf16fmi.c
+++ b/drivers/media/radio/radio-sf16fmi.c
@@ -377,7 +377,7 @@ static int __init fmi_init(void)
377 377
378 mutex_init(&lock); 378 mutex_init(&lock);
379 379
380 if (video_register_device(&fmi_radio, VFL_TYPE_RADIO, radio_nr) == -1) { 380 if (video_register_device(&fmi_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
381 release_region(io, 2); 381 release_region(io, 2);
382 return -EINVAL; 382 return -EINVAL;
383 } 383 }
diff --git a/drivers/media/radio/radio-si470x.c b/drivers/media/radio/radio-si470x.c
index a4984ff87c9..16c7ef20265 100644
--- a/drivers/media/radio/radio-si470x.c
+++ b/drivers/media/radio/radio-si470x.c
@@ -1694,8 +1694,8 @@ static int si470x_usb_driver_probe(struct usb_interface *intf,
1694 INIT_DELAYED_WORK(&radio->work, si470x_work); 1694 INIT_DELAYED_WORK(&radio->work, si470x_work);
1695 1695
1696 /* register video device */ 1696 /* register video device */
1697 if (video_register_device(radio->videodev, VFL_TYPE_RADIO, radio_nr)) { 1697 retval = video_register_device(radio->videodev, VFL_TYPE_RADIO, radio_nr);
1698 retval = -EIO; 1698 if (retval) {
1699 printk(KERN_WARNING DRIVER_NAME 1699 printk(KERN_WARNING DRIVER_NAME
1700 ": Could not register video device\n"); 1700 ": Could not register video device\n");
1701 goto err_all; 1701 goto err_all;
diff --git a/drivers/media/radio/radio-terratec.c b/drivers/media/radio/radio-terratec.c
index cefa44fc5ae..0876fecc5f2 100644
--- a/drivers/media/radio/radio-terratec.c
+++ b/drivers/media/radio/radio-terratec.c
@@ -405,8 +405,7 @@ static int __init terratec_init(void)
405 405
406 spin_lock_init(&lock); 406 spin_lock_init(&lock);
407 407
408 if(video_register_device(&terratec_radio, VFL_TYPE_RADIO, radio_nr)==-1) 408 if (video_register_device(&terratec_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
409 {
410 release_region(io,2); 409 release_region(io,2);
411 return -EINVAL; 410 return -EINVAL;
412 } 411 }
diff --git a/drivers/media/radio/radio-trust.c b/drivers/media/radio/radio-trust.c
index d70172d23ed..19316195625 100644
--- a/drivers/media/radio/radio-trust.c
+++ b/drivers/media/radio/radio-trust.c
@@ -378,8 +378,7 @@ static int __init trust_init(void)
378 printk(KERN_ERR "trust: port 0x%x already in use\n", io); 378 printk(KERN_ERR "trust: port 0x%x already in use\n", io);
379 return -EBUSY; 379 return -EBUSY;
380 } 380 }
381 if(video_register_device(&trust_radio, VFL_TYPE_RADIO, radio_nr)==-1) 381 if (video_register_device(&trust_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
382 {
383 release_region(io, 2); 382 release_region(io, 2);
384 return -EINVAL; 383 return -EINVAL;
385 } 384 }
diff --git a/drivers/media/radio/radio-zoltrix.c b/drivers/media/radio/radio-zoltrix.c
index 9f17a332fa1..51d57ed3b3e 100644
--- a/drivers/media/radio/radio-zoltrix.c
+++ b/drivers/media/radio/radio-zoltrix.c
@@ -446,8 +446,7 @@ static int __init zoltrix_init(void)
446 return -EBUSY; 446 return -EBUSY;
447 } 447 }
448 448
449 if (video_register_device(&zoltrix_radio, VFL_TYPE_RADIO, radio_nr) == -1) 449 if (video_register_device(&zoltrix_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
450 {
451 release_region(io, 2); 450 release_region(io, 2);
452 return -EINVAL; 451 return -EINVAL;
453 } 452 }
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index ecbfa1b39b7..3e9e0dcd217 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -968,7 +968,7 @@ config VIDEO_PXA27x
968 968
969config VIDEO_SH_MOBILE_CEU 969config VIDEO_SH_MOBILE_CEU
970 tristate "SuperH Mobile CEU Interface driver" 970 tristate "SuperH Mobile CEU Interface driver"
971 depends on VIDEO_DEV 971 depends on VIDEO_DEV && HAS_DMA
972 select SOC_CAMERA 972 select SOC_CAMERA
973 select VIDEOBUF_DMA_CONTIG 973 select VIDEOBUF_DMA_CONTIG
974 ---help--- 974 ---help---
diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
index bbc6f8b8229..ef7c8d3ffb1 100644
--- a/drivers/media/video/Makefile
+++ b/drivers/media/video/Makefile
@@ -20,6 +20,8 @@ ifeq ($(CONFIG_VIDEO_V4L1_COMPAT),y)
20 obj-$(CONFIG_VIDEO_DEV) += v4l1-compat.o 20 obj-$(CONFIG_VIDEO_DEV) += v4l1-compat.o
21endif 21endif
22 22
23obj-$(CONFIG_VIDEO_TUNER) += tuner.o
24
23obj-$(CONFIG_VIDEO_BT848) += bt8xx/ 25obj-$(CONFIG_VIDEO_BT848) += bt8xx/
24obj-$(CONFIG_VIDEO_IR_I2C) += ir-kbd-i2c.o 26obj-$(CONFIG_VIDEO_IR_I2C) += ir-kbd-i2c.o
25obj-$(CONFIG_VIDEO_TVAUDIO) += tvaudio.o 27obj-$(CONFIG_VIDEO_TVAUDIO) += tvaudio.o
@@ -85,8 +87,6 @@ obj-$(CONFIG_VIDEO_HEXIUM_GEMINI) += hexium_gemini.o
85obj-$(CONFIG_VIDEO_DPC) += dpc7146.o 87obj-$(CONFIG_VIDEO_DPC) += dpc7146.o
86obj-$(CONFIG_TUNER_3036) += tuner-3036.o 88obj-$(CONFIG_TUNER_3036) += tuner-3036.o
87 89
88obj-$(CONFIG_VIDEO_TUNER) += tuner.o
89
90obj-$(CONFIG_VIDEOBUF_GEN) += videobuf-core.o 90obj-$(CONFIG_VIDEOBUF_GEN) += videobuf-core.o
91obj-$(CONFIG_VIDEOBUF_DMA_SG) += videobuf-dma-sg.o 91obj-$(CONFIG_VIDEOBUF_DMA_SG) += videobuf-dma-sg.o
92obj-$(CONFIG_VIDEOBUF_DMA_CONTIG) += videobuf-dma-contig.o 92obj-$(CONFIG_VIDEOBUF_DMA_CONTIG) += videobuf-dma-contig.o
diff --git a/drivers/media/video/au0828/Kconfig b/drivers/media/video/au0828/Kconfig
index ed9a50f189f..018f72b8e3e 100644
--- a/drivers/media/video/au0828/Kconfig
+++ b/drivers/media/video/au0828/Kconfig
@@ -7,6 +7,7 @@ config VIDEO_AU0828
7 select DVB_AU8522 if !DVB_FE_CUSTOMIZE 7 select DVB_AU8522 if !DVB_FE_CUSTOMIZE
8 select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE 8 select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
9 select MEDIA_TUNER_MXL5007T if !DVB_FE_CUSTOMIZE 9 select MEDIA_TUNER_MXL5007T if !DVB_FE_CUSTOMIZE
10 select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
10 ---help--- 11 ---help---
11 This is a video4linux driver for Auvitek's USB device. 12 This is a video4linux driver for Auvitek's USB device.
12 13
diff --git a/drivers/media/video/au0828/au0828-cards.c b/drivers/media/video/au0828/au0828-cards.c
index 443e5900976..ed48908a903 100644
--- a/drivers/media/video/au0828/au0828-cards.c
+++ b/drivers/media/video/au0828/au0828-cards.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek USB bridge 2 * Driver for the Auvitek USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -38,6 +38,9 @@ struct au0828_board au0828_boards[] = {
38 [AU0828_BOARD_DVICO_FUSIONHDTV7] = { 38 [AU0828_BOARD_DVICO_FUSIONHDTV7] = {
39 .name = "DViCO FusionHDTV USB", 39 .name = "DViCO FusionHDTV USB",
40 }, 40 },
41 [AU0828_BOARD_HAUPPAUGE_WOODBURY] = {
42 .name = "Hauppauge Woodbury",
43 },
41}; 44};
42 45
43/* Tuner callback function for au0828 boards. Currently only needed 46/* Tuner callback function for au0828 boards. Currently only needed
@@ -115,6 +118,7 @@ void au0828_card_setup(struct au0828_dev *dev)
115 case AU0828_BOARD_HAUPPAUGE_HVR850: 118 case AU0828_BOARD_HAUPPAUGE_HVR850:
116 case AU0828_BOARD_HAUPPAUGE_HVR950Q: 119 case AU0828_BOARD_HAUPPAUGE_HVR950Q:
117 case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL: 120 case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL:
121 case AU0828_BOARD_HAUPPAUGE_WOODBURY:
118 if (dev->i2c_rc == 0) 122 if (dev->i2c_rc == 0)
119 hauppauge_eeprom(dev, eeprom+0xa0); 123 hauppauge_eeprom(dev, eeprom+0xa0);
120 break; 124 break;
@@ -134,6 +138,7 @@ void au0828_gpio_setup(struct au0828_dev *dev)
134 case AU0828_BOARD_HAUPPAUGE_HVR850: 138 case AU0828_BOARD_HAUPPAUGE_HVR850:
135 case AU0828_BOARD_HAUPPAUGE_HVR950Q: 139 case AU0828_BOARD_HAUPPAUGE_HVR950Q:
136 case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL: 140 case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL:
141 case AU0828_BOARD_HAUPPAUGE_WOODBURY:
137 /* GPIO's 142 /* GPIO's
138 * 4 - CS5340 143 * 4 - CS5340
139 * 5 - AU8522 Demodulator 144 * 5 - AU8522 Demodulator
@@ -205,6 +210,8 @@ struct usb_device_id au0828_usb_id_table [] = {
205 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, 210 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL },
206 { USB_DEVICE(0x2040, 0x7281), 211 { USB_DEVICE(0x2040, 0x7281),
207 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, 212 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL },
213 { USB_DEVICE(0x2040, 0x8200),
214 .driver_info = AU0828_BOARD_HAUPPAUGE_WOODBURY },
208 { }, 215 { },
209}; 216};
210 217
diff --git a/drivers/media/video/au0828/au0828-cards.h b/drivers/media/video/au0828/au0828-cards.h
index c37f5fd0fa8..48a1882c2b6 100644
--- a/drivers/media/video/au0828/au0828-cards.h
+++ b/drivers/media/video/au0828/au0828-cards.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek USB bridge 2 * Driver for the Auvitek USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -24,3 +24,4 @@
24#define AU0828_BOARD_HAUPPAUGE_HVR850 2 24#define AU0828_BOARD_HAUPPAUGE_HVR850 2
25#define AU0828_BOARD_DVICO_FUSIONHDTV7 3 25#define AU0828_BOARD_DVICO_FUSIONHDTV7 3
26#define AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL 4 26#define AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL 4
27#define AU0828_BOARD_HAUPPAUGE_WOODBURY 5
diff --git a/drivers/media/video/au0828/au0828-core.c b/drivers/media/video/au0828/au0828-core.c
index 54bfc0f0529..d856de9f742 100644
--- a/drivers/media/video/au0828/au0828-core.c
+++ b/drivers/media/video/au0828/au0828-core.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek USB bridge 2 * Driver for the Auvitek USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -252,5 +252,5 @@ module_init(au0828_init);
252module_exit(au0828_exit); 252module_exit(au0828_exit);
253 253
254MODULE_DESCRIPTION("Driver for Auvitek AU0828 based products"); 254MODULE_DESCRIPTION("Driver for Auvitek AU0828 based products");
255MODULE_AUTHOR("Steven Toth <stoth@hauppauge.com>"); 255MODULE_AUTHOR("Steven Toth <stoth@linuxtv.org>");
256MODULE_LICENSE("GPL"); 256MODULE_LICENSE("GPL");
diff --git a/drivers/media/video/au0828/au0828-dvb.c b/drivers/media/video/au0828/au0828-dvb.c
index 584a83a94a2..ba94be7e0ac 100644
--- a/drivers/media/video/au0828/au0828-dvb.c
+++ b/drivers/media/video/au0828/au0828-dvb.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek USB bridge 2 * Driver for the Auvitek USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -29,6 +29,7 @@
29#include "au8522.h" 29#include "au8522.h"
30#include "xc5000.h" 30#include "xc5000.h"
31#include "mxl5007t.h" 31#include "mxl5007t.h"
32#include "tda18271.h"
32 33
33DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); 34DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
34 35
@@ -38,6 +39,15 @@ DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
38static struct au8522_config hauppauge_hvr950q_config = { 39static struct au8522_config hauppauge_hvr950q_config = {
39 .demod_address = 0x8e >> 1, 40 .demod_address = 0x8e >> 1,
40 .status_mode = AU8522_DEMODLOCKING, 41 .status_mode = AU8522_DEMODLOCKING,
42 .qam_if = AU8522_IF_6MHZ,
43 .vsb_if = AU8522_IF_6MHZ,
44};
45
46static struct au8522_config hauppauge_woodbury_config = {
47 .demod_address = 0x8e >> 1,
48 .status_mode = AU8522_DEMODLOCKING,
49 .qam_if = AU8522_IF_4MHZ,
50 .vsb_if = AU8522_IF_3_25MHZ,
41}; 51};
42 52
43static struct xc5000_config hauppauge_hvr950q_tunerconfig = { 53static struct xc5000_config hauppauge_hvr950q_tunerconfig = {
@@ -51,6 +61,10 @@ static struct mxl5007t_config mxl5007t_hvr950q_config = {
51 .if_freq_hz = MxL_IF_6_MHZ, 61 .if_freq_hz = MxL_IF_6_MHZ,
52}; 62};
53 63
64static struct tda18271_config hauppauge_woodbury_tunerconfig = {
65 .gate = TDA18271_GATE_DIGITAL,
66};
67
54/*-------------------------------------------------------------------*/ 68/*-------------------------------------------------------------------*/
55static void urb_completion(struct urb *purb) 69static void urb_completion(struct urb *purb)
56{ 70{
@@ -357,6 +371,15 @@ int au0828_dvb_register(struct au0828_dev *dev)
357 &dev->i2c_adap, 0x60, 371 &dev->i2c_adap, 0x60,
358 &mxl5007t_hvr950q_config); 372 &mxl5007t_hvr950q_config);
359 break; 373 break;
374 case AU0828_BOARD_HAUPPAUGE_WOODBURY:
375 dvb->frontend = dvb_attach(au8522_attach,
376 &hauppauge_woodbury_config,
377 &dev->i2c_adap);
378 if (dvb->frontend != NULL)
379 dvb_attach(tda18271_attach, dvb->frontend,
380 0x60, &dev->i2c_adap,
381 &hauppauge_woodbury_tunerconfig);
382 break;
360 default: 383 default:
361 printk(KERN_WARNING "The frontend of your DVB/ATSC card " 384 printk(KERN_WARNING "The frontend of your DVB/ATSC card "
362 "isn't supported yet\n"); 385 "isn't supported yet\n");
diff --git a/drivers/media/video/au0828/au0828-i2c.c b/drivers/media/video/au0828/au0828-i2c.c
index 741a4937b05..d618fbaade1 100644
--- a/drivers/media/video/au0828/au0828-i2c.c
+++ b/drivers/media/video/au0828/au0828-i2c.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek AU0828 USB bridge 2 * Driver for the Auvitek AU0828 USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/au0828/au0828-reg.h b/drivers/media/video/au0828/au0828-reg.h
index 39827550891..1e87fa0c684 100644
--- a/drivers/media/video/au0828/au0828-reg.h
+++ b/drivers/media/video/au0828/au0828-reg.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek USB bridge 2 * Driver for the Auvitek USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/au0828/au0828.h b/drivers/media/video/au0828/au0828.h
index 7beb571798e..4f10ff30013 100644
--- a/drivers/media/video/au0828/au0828.h
+++ b/drivers/media/video/au0828/au0828.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek AU0828 USB bridge 2 * Driver for the Auvitek AU0828 USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c
index 1c56ae92ce7..6081edc362d 100644
--- a/drivers/media/video/bt8xx/bttv-cards.c
+++ b/drivers/media/video/bt8xx/bttv-cards.c
@@ -3144,8 +3144,9 @@ static void identify_by_eeprom(struct bttv *btv, unsigned char eeprom_data[256])
3144 3144
3145static void flyvideo_gpio(struct bttv *btv) 3145static void flyvideo_gpio(struct bttv *btv)
3146{ 3146{
3147 int gpio,has_remote,has_radio,is_capture_only,is_lr90,has_tda9820_tda9821; 3147 int gpio, has_remote, has_radio, is_capture_only;
3148 int tuner=UNSET,ttype; 3148 int is_lr90, has_tda9820_tda9821;
3149 int tuner_type = UNSET, ttype;
3149 3150
3150 gpio_inout(0xffffff, 0); 3151 gpio_inout(0xffffff, 0);
3151 udelay(8); /* without this we would see the 0x1800 mask */ 3152 udelay(8); /* without this we would see the 0x1800 mask */
@@ -3163,20 +3164,26 @@ static void flyvideo_gpio(struct bttv *btv)
3163 * xxxF00(LR26/LR50), xxxFE0(LR90): Remote control chip (LVA001 or CF45) soldered 3164 * xxxF00(LR26/LR50), xxxFE0(LR90): Remote control chip (LVA001 or CF45) soldered
3164 * Note: Some bits are Audio_Mask ! 3165 * Note: Some bits are Audio_Mask !
3165 */ 3166 */
3166 ttype=(gpio&0x0f0000)>>16; 3167 ttype = (gpio & 0x0f0000) >> 16;
3167 switch(ttype) { 3168 switch (ttype) {
3168 case 0x0: tuner=2; /* NTSC, e.g. TPI8NSR11P */ 3169 case 0x0:
3170 tuner_type = 2; /* NTSC, e.g. TPI8NSR11P */
3169 break; 3171 break;
3170 case 0x2: tuner=39;/* LG NTSC (newer TAPC series) TAPC-H701P */ 3172 case 0x2:
3173 tuner_type = 39; /* LG NTSC (newer TAPC series) TAPC-H701P */
3171 break; 3174 break;
3172 case 0x4: tuner=5; /* Philips PAL TPI8PSB02P, TPI8PSB12P, TPI8PSB12D or FI1216, FM1216 */ 3175 case 0x4:
3176 tuner_type = 5; /* Philips PAL TPI8PSB02P, TPI8PSB12P, TPI8PSB12D or FI1216, FM1216 */
3173 break; 3177 break;
3174 case 0x6: tuner=37;/* LG PAL (newer TAPC series) TAPC-G702P */ 3178 case 0x6:
3179 tuner_type = 37; /* LG PAL (newer TAPC series) TAPC-G702P */
3175 break; 3180 break;
3176 case 0xC: tuner=3; /* Philips SECAM(+PAL) FQ1216ME or FI1216MF */ 3181 case 0xC:
3182 tuner_type = 3; /* Philips SECAM(+PAL) FQ1216ME or FI1216MF */
3177 break; 3183 break;
3178 default: 3184 default:
3179 printk(KERN_INFO "bttv%d: FlyVideo_gpio: unknown tuner type.\n", btv->c.nr); 3185 printk(KERN_INFO "bttv%d: FlyVideo_gpio: unknown tuner type.\n", btv->c.nr);
3186 break;
3180 } 3187 }
3181 3188
3182 has_remote = gpio & 0x800000; 3189 has_remote = gpio & 0x800000;
@@ -3189,23 +3196,26 @@ static void flyvideo_gpio(struct bttv *btv)
3189 /* 3196 /*
3190 * gpio & 0x001000 output bit for audio routing */ 3197 * gpio & 0x001000 output bit for audio routing */
3191 3198
3192 if(is_capture_only) 3199 if (is_capture_only)
3193 tuner = TUNER_ABSENT; /* No tuner present */ 3200 tuner_type = TUNER_ABSENT; /* No tuner present */
3194 3201
3195 printk(KERN_INFO "bttv%d: FlyVideo Radio=%s RemoteControl=%s Tuner=%d gpio=0x%06x\n", 3202 printk(KERN_INFO "bttv%d: FlyVideo Radio=%s RemoteControl=%s Tuner=%d gpio=0x%06x\n",
3196 btv->c.nr, has_radio? "yes":"no ", has_remote? "yes":"no ", tuner, gpio); 3203 btv->c.nr, has_radio ? "yes" : "no ",
3204 has_remote ? "yes" : "no ", tuner_type, gpio);
3197 printk(KERN_INFO "bttv%d: FlyVideo LR90=%s tda9821/tda9820=%s capture_only=%s\n", 3205 printk(KERN_INFO "bttv%d: FlyVideo LR90=%s tda9821/tda9820=%s capture_only=%s\n",
3198 btv->c.nr, is_lr90?"yes":"no ", has_tda9820_tda9821?"yes":"no ", 3206 btv->c.nr, is_lr90 ? "yes" : "no ",
3199 is_capture_only?"yes":"no "); 3207 has_tda9820_tda9821 ? "yes" : "no ",
3208 is_capture_only ? "yes" : "no ");
3200 3209
3201 if (tuner != UNSET) /* only set if known tuner autodetected, else let insmod option through */ 3210 if (tuner_type != UNSET) /* only set if known tuner autodetected, else let insmod option through */
3202 btv->tuner_type = tuner; 3211 btv->tuner_type = tuner_type;
3203 btv->has_radio = has_radio; 3212 btv->has_radio = has_radio;
3204 3213
3205 /* LR90 Audio Routing is done by 2 hef4052, so Audio_Mask has 4 bits: 0x001c80 3214 /* LR90 Audio Routing is done by 2 hef4052, so Audio_Mask has 4 bits: 0x001c80
3206 * LR26/LR50 only has 1 hef4052, Audio_Mask 0x000c00 3215 * LR26/LR50 only has 1 hef4052, Audio_Mask 0x000c00
3207 * Audio options: from tuner, from tda9821/tda9821(mono,stereo,sap), from tda9874, ext., mute */ 3216 * Audio options: from tuner, from tda9821/tda9821(mono,stereo,sap), from tda9874, ext., mute */
3208 if(has_tda9820_tda9821) btv->audio_mode_gpio = lt9415_audio; 3217 if (has_tda9820_tda9821)
3218 btv->audio_mode_gpio = lt9415_audio;
3209 /* todo: if(has_tda9874) btv->audio_mode_gpio = fv2000s_audio; */ 3219 /* todo: if(has_tda9874) btv->audio_mode_gpio = fv2000s_audio; */
3210} 3220}
3211 3221
@@ -3962,7 +3972,7 @@ static int tuner_1_table[] = {
3962 3972
3963static void __devinit avermedia_eeprom(struct bttv *btv) 3973static void __devinit avermedia_eeprom(struct bttv *btv)
3964{ 3974{
3965 int tuner_make,tuner_tv_fm,tuner_format,tuner=0; 3975 int tuner_make, tuner_tv_fm, tuner_format, tuner_type = 0;
3966 3976
3967 tuner_make = (eeprom_data[0x41] & 0x7); 3977 tuner_make = (eeprom_data[0x41] & 0x7);
3968 tuner_tv_fm = (eeprom_data[0x41] & 0x18) >> 3; 3978 tuner_tv_fm = (eeprom_data[0x41] & 0x18) >> 3;
@@ -3970,24 +3980,24 @@ static void __devinit avermedia_eeprom(struct bttv *btv)
3970 btv->has_remote = (eeprom_data[0x42] & 0x01); 3980 btv->has_remote = (eeprom_data[0x42] & 0x01);
3971 3981
3972 if (tuner_make == 0 || tuner_make == 2) 3982 if (tuner_make == 0 || tuner_make == 2)
3973 if(tuner_format <=0x0a) 3983 if (tuner_format <= 0x0a)
3974 tuner = tuner_0_table[tuner_format]; 3984 tuner_type = tuner_0_table[tuner_format];
3975 if (tuner_make == 1) 3985 if (tuner_make == 1)
3976 if(tuner_format <=9) 3986 if (tuner_format <= 9)
3977 tuner = tuner_1_table[tuner_format]; 3987 tuner_type = tuner_1_table[tuner_format];
3978 3988
3979 if (tuner_make == 4) 3989 if (tuner_make == 4)
3980 if(tuner_format == 0x09) 3990 if (tuner_format == 0x09)
3981 tuner = TUNER_LG_NTSC_NEW_TAPC; /* TAPC-G702P */ 3991 tuner_type = TUNER_LG_NTSC_NEW_TAPC; /* TAPC-G702P */
3982 3992
3983 printk(KERN_INFO "bttv%d: Avermedia eeprom[0x%02x%02x]: tuner=", 3993 printk(KERN_INFO "bttv%d: Avermedia eeprom[0x%02x%02x]: tuner=",
3984 btv->c.nr,eeprom_data[0x41],eeprom_data[0x42]); 3994 btv->c.nr, eeprom_data[0x41], eeprom_data[0x42]);
3985 if(tuner) { 3995 if (tuner_type) {
3986 btv->tuner_type=tuner; 3996 btv->tuner_type = tuner_type;
3987 printk("%d",tuner); 3997 printk(KERN_CONT "%d", tuner_type);
3988 } else 3998 } else
3989 printk("Unknown type"); 3999 printk(KERN_CONT "Unknown type");
3990 printk(" radio:%s remote control:%s\n", 4000 printk(KERN_CONT " radio:%s remote control:%s\n",
3991 tuner_tv_fm ? "yes" : "no", 4001 tuner_tv_fm ? "yes" : "no",
3992 btv->has_remote ? "yes" : "no"); 4002 btv->has_remote ? "yes" : "no");
3993} 4003}
@@ -4029,7 +4039,8 @@ static void __devinit boot_msp34xx(struct bttv *btv, int pin)
4029 4039
4030 gpio_inout(mask,mask); 4040 gpio_inout(mask,mask);
4031 gpio_bits(mask,0); 4041 gpio_bits(mask,0);
4032 udelay(2500); 4042 mdelay(2);
4043 udelay(500);
4033 gpio_bits(mask,mask); 4044 gpio_bits(mask,mask);
4034 4045
4035 if (bttv_gpio) 4046 if (bttv_gpio)
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c
index 85bf31ab878..6ae4cc860ef 100644
--- a/drivers/media/video/bt8xx/bttv-driver.c
+++ b/drivers/media/video/bt8xx/bttv-driver.c
@@ -96,7 +96,6 @@ static unsigned int irq_iswitch;
96static unsigned int uv_ratio = 50; 96static unsigned int uv_ratio = 50;
97static unsigned int full_luma_range; 97static unsigned int full_luma_range;
98static unsigned int coring; 98static unsigned int coring;
99extern int no_overlay;
100 99
101/* API features (turn on/off stuff for testing) */ 100/* API features (turn on/off stuff for testing) */
102static unsigned int v4l2 = 1; 101static unsigned int v4l2 = 1;
diff --git a/drivers/media/video/bt8xx/bttv-risc.c b/drivers/media/video/bt8xx/bttv-risc.c
index 649682aac1a..5b1b8e4c78b 100644
--- a/drivers/media/video/bt8xx/bttv-risc.c
+++ b/drivers/media/video/bt8xx/bttv-risc.c
@@ -244,7 +244,8 @@ bttv_risc_overlay(struct bttv *btv, struct btcx_riscmem *risc,
244 const struct bttv_format *fmt, struct bttv_overlay *ov, 244 const struct bttv_format *fmt, struct bttv_overlay *ov,
245 int skip_even, int skip_odd) 245 int skip_even, int skip_odd)
246{ 246{
247 int dwords,rc,line,maxy,start,end,skip,nskips; 247 int dwords, rc, line, maxy, start, end;
248 unsigned skip, nskips;
248 struct btcx_skiplist *skips; 249 struct btcx_skiplist *skips;
249 __le32 *rp; 250 __le32 *rp;
250 u32 ri,ra; 251 u32 ri,ra;
diff --git a/drivers/media/video/bt8xx/bttvp.h b/drivers/media/video/bt8xx/bttvp.h
index 08ef54a22c9..b4d940b2e44 100644
--- a/drivers/media/video/bt8xx/bttvp.h
+++ b/drivers/media/video/bt8xx/bttvp.h
@@ -267,6 +267,11 @@ int bttv_sub_add_device(struct bttv_core *core, char *name);
267int bttv_sub_del_devices(struct bttv_core *core); 267int bttv_sub_del_devices(struct bttv_core *core);
268 268
269/* ---------------------------------------------------------- */ 269/* ---------------------------------------------------------- */
270/* bttv-cards.c */
271
272extern int no_overlay;
273
274/* ---------------------------------------------------------- */
270/* bttv-driver.c */ 275/* bttv-driver.c */
271 276
272/* insmod options */ 277/* insmod options */
diff --git a/drivers/media/video/btcx-risc.c b/drivers/media/video/btcx-risc.c
index f42701f82e7..3324ab38f58 100644
--- a/drivers/media/video/btcx-risc.c
+++ b/drivers/media/video/btcx-risc.c
@@ -184,12 +184,12 @@ btcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips)
184} 184}
185 185
186void 186void
187btcx_calc_skips(int line, int width, unsigned int *maxy, 187btcx_calc_skips(int line, int width, int *maxy,
188 struct btcx_skiplist *skips, unsigned int *nskips, 188 struct btcx_skiplist *skips, unsigned int *nskips,
189 const struct v4l2_clip *clips, unsigned int nclips) 189 const struct v4l2_clip *clips, unsigned int nclips)
190{ 190{
191 unsigned int clip,skip; 191 unsigned int clip,skip;
192 int end,maxline; 192 int end, maxline;
193 193
194 skip=0; 194 skip=0;
195 maxline = 9999; 195 maxline = 9999;
diff --git a/drivers/media/video/btcx-risc.h b/drivers/media/video/btcx-risc.h
index 861bc811282..f8bc6e8e7b5 100644
--- a/drivers/media/video/btcx-risc.h
+++ b/drivers/media/video/btcx-risc.h
@@ -23,7 +23,7 @@ int btcx_screen_clips(int swidth, int sheight, struct v4l2_rect *win,
23int btcx_align(struct v4l2_rect *win, struct v4l2_clip *clips, 23int btcx_align(struct v4l2_rect *win, struct v4l2_clip *clips,
24 unsigned int n, int mask); 24 unsigned int n, int mask);
25void btcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips); 25void btcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips);
26void btcx_calc_skips(int line, int width, unsigned int *maxy, 26void btcx_calc_skips(int line, int width, int *maxy,
27 struct btcx_skiplist *skips, unsigned int *nskips, 27 struct btcx_skiplist *skips, unsigned int *nskips,
28 const struct v4l2_clip *clips, unsigned int nclips); 28 const struct v4l2_clip *clips, unsigned int nclips);
29 29
diff --git a/drivers/media/video/bw-qcam.c b/drivers/media/video/bw-qcam.c
index d3b3268bace..6e39e253ce5 100644
--- a/drivers/media/video/bw-qcam.c
+++ b/drivers/media/video/bw-qcam.c
@@ -946,8 +946,7 @@ static int init_bwqcam(struct parport *port)
946 946
947 printk(KERN_INFO "Connectix Quickcam on %s\n", qcam->pport->name); 947 printk(KERN_INFO "Connectix Quickcam on %s\n", qcam->pport->name);
948 948
949 if(video_register_device(&qcam->vdev, VFL_TYPE_GRABBER, video_nr)==-1) 949 if (video_register_device(&qcam->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
950 {
951 parport_unregister_device(qcam->pdev); 950 parport_unregister_device(qcam->pdev);
952 kfree(qcam); 951 kfree(qcam);
953 return -ENODEV; 952 return -ENODEV;
diff --git a/drivers/media/video/c-qcam.c b/drivers/media/video/c-qcam.c
index fe9379b282d..7f6c6b4bec1 100644
--- a/drivers/media/video/c-qcam.c
+++ b/drivers/media/video/c-qcam.c
@@ -787,8 +787,7 @@ static int init_cqcam(struct parport *port)
787 787
788 parport_release(qcam->pdev); 788 parport_release(qcam->pdev);
789 789
790 if (video_register_device(&qcam->vdev, VFL_TYPE_GRABBER, video_nr)==-1) 790 if (video_register_device(&qcam->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
791 {
792 printk(KERN_ERR "Unable to register Colour QuickCam on %s\n", 791 printk(KERN_ERR "Unable to register Colour QuickCam on %s\n",
793 qcam->pport->name); 792 qcam->pport->name);
794 parport_unregister_device(qcam->pdev); 793 parport_unregister_device(qcam->pdev);
diff --git a/drivers/media/video/cpia.c b/drivers/media/video/cpia.c
index dc8cc6115e2..a661800b0e6 100644
--- a/drivers/media/video/cpia.c
+++ b/drivers/media/video/cpia.c
@@ -3955,7 +3955,7 @@ struct cam_data *cpia_register_camera(struct cpia_camera_ops *ops, void *lowleve
3955 camera->lowlevel_data = lowlevel; 3955 camera->lowlevel_data = lowlevel;
3956 3956
3957 /* register v4l device */ 3957 /* register v4l device */
3958 if (video_register_device(&camera->vdev, VFL_TYPE_GRABBER, video_nr) == -1) { 3958 if (video_register_device(&camera->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
3959 kfree(camera); 3959 kfree(camera);
3960 printk(KERN_DEBUG "video_register_device failed\n"); 3960 printk(KERN_DEBUG "video_register_device failed\n");
3961 return NULL; 3961 return NULL;
diff --git a/drivers/media/video/cpia2/cpia2_v4l.c b/drivers/media/video/cpia2/cpia2_v4l.c
index 515c8b57a60..eb9f15cd4c4 100644
--- a/drivers/media/video/cpia2/cpia2_v4l.c
+++ b/drivers/media/video/cpia2/cpia2_v4l.c
@@ -1024,7 +1024,6 @@ static int ioctl_queryctrl(void *arg,struct camera_data *cam)
1024 if(cam->params.pnp_id.device_type == DEVICE_STV_672 && 1024 if(cam->params.pnp_id.device_type == DEVICE_STV_672 &&
1025 cam->params.version.sensor_flags==CPIA2_VP_SENSOR_FLAGS_500){ 1025 cam->params.version.sensor_flags==CPIA2_VP_SENSOR_FLAGS_500){
1026 // Maximum 15fps 1026 // Maximum 15fps
1027 int i;
1028 for(i=0; i<c->maximum; ++i) { 1027 for(i=0; i<c->maximum; ++i) {
1029 if(framerate_controls[i].value == 1028 if(framerate_controls[i].value ==
1030 CPIA2_VP_FRAMERATE_15) { 1029 CPIA2_VP_FRAMERATE_15) {
@@ -1959,8 +1958,7 @@ int cpia2_register_camera(struct camera_data *cam)
1959 reset_camera_struct_v4l(cam); 1958 reset_camera_struct_v4l(cam);
1960 1959
1961 /* register v4l device */ 1960 /* register v4l device */
1962 if (video_register_device 1961 if (video_register_device(cam->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
1963 (cam->vdev, VFL_TYPE_GRABBER, video_nr) == -1) {
1964 ERR("video_register_device failed\n"); 1962 ERR("video_register_device failed\n");
1965 video_device_release(cam->vdev); 1963 video_device_release(cam->vdev);
1966 return -ENODEV; 1964 return -ENODEV;
diff --git a/drivers/media/video/cx18/cx18-av-firmware.c b/drivers/media/video/cx18/cx18-av-firmware.c
index 834b9248242..e996a4e3123 100644
--- a/drivers/media/video/cx18/cx18-av-firmware.c
+++ b/drivers/media/video/cx18/cx18-av-firmware.c
@@ -32,7 +32,7 @@ int cx18_av_loadfw(struct cx18 *cx)
32 u32 v; 32 u32 v;
33 const u8 *ptr; 33 const u8 *ptr;
34 int i; 34 int i;
35 int retries = 0; 35 int retries1 = 0;
36 36
37 if (request_firmware(&fw, FWFILE, &cx->dev->dev) != 0) { 37 if (request_firmware(&fw, FWFILE, &cx->dev->dev) != 0) {
38 CX18_ERR("unable to open firmware %s\n", FWFILE); 38 CX18_ERR("unable to open firmware %s\n", FWFILE);
@@ -41,7 +41,7 @@ int cx18_av_loadfw(struct cx18 *cx)
41 41
42 /* The firmware load often has byte errors, so allow for several 42 /* The firmware load often has byte errors, so allow for several
43 retries, both at byte level and at the firmware load level. */ 43 retries, both at byte level and at the firmware load level. */
44 while (retries < 5) { 44 while (retries1 < 5) {
45 cx18_av_write4(cx, CXADEC_CHIP_CTRL, 0x00010000); 45 cx18_av_write4(cx, CXADEC_CHIP_CTRL, 0x00010000);
46 cx18_av_write(cx, CXADEC_STD_DET_CTL, 0xf6); 46 cx18_av_write(cx, CXADEC_STD_DET_CTL, 0xf6);
47 47
@@ -57,9 +57,9 @@ int cx18_av_loadfw(struct cx18 *cx)
57 for (i = 0; i < size; i++) { 57 for (i = 0; i < size; i++) {
58 u32 dl_control = 0x0F000000 | i | ((u32)ptr[i] << 16); 58 u32 dl_control = 0x0F000000 | i | ((u32)ptr[i] << 16);
59 u32 value = 0; 59 u32 value = 0;
60 int retries; 60 int retries2;
61 61
62 for (retries = 0; retries < 5; retries++) { 62 for (retries2 = 0; retries2 < 5; retries2++) {
63 cx18_av_write4(cx, CXADEC_DL_CTL, dl_control); 63 cx18_av_write4(cx, CXADEC_DL_CTL, dl_control);
64 udelay(10); 64 udelay(10);
65 value = cx18_av_read4(cx, CXADEC_DL_CTL); 65 value = cx18_av_read4(cx, CXADEC_DL_CTL);
@@ -69,18 +69,18 @@ int cx18_av_loadfw(struct cx18 *cx)
69 the address. We can only write the lower 69 the address. We can only write the lower
70 address byte of the address. */ 70 address byte of the address. */
71 if ((value & 0x3F00) != (dl_control & 0x3F00)) { 71 if ((value & 0x3F00) != (dl_control & 0x3F00)) {
72 retries = 5; 72 retries2 = 5;
73 break; 73 break;
74 } 74 }
75 } 75 }
76 if (retries >= 5) 76 if (retries2 >= 5)
77 break; 77 break;
78 } 78 }
79 if (i == size) 79 if (i == size)
80 break; 80 break;
81 retries++; 81 retries1++;
82 } 82 }
83 if (retries >= 5) { 83 if (retries1 >= 5) {
84 CX18_ERR("unable to load firmware %s\n", FWFILE); 84 CX18_ERR("unable to load firmware %s\n", FWFILE);
85 release_firmware(fw); 85 release_firmware(fw);
86 return -EIO; 86 return -EIO;
diff --git a/drivers/media/video/cx18/cx18-driver.c b/drivers/media/video/cx18/cx18-driver.c
index 22434aadde3..bd18afebbf8 100644
--- a/drivers/media/video/cx18/cx18-driver.c
+++ b/drivers/media/video/cx18/cx18-driver.c
@@ -74,9 +74,9 @@ static int radio[CX18_MAX_CARDS] = { -1, -1, -1, -1, -1, -1, -1, -1,
74 -1, -1, -1, -1, -1, -1, -1, -1, 74 -1, -1, -1, -1, -1, -1, -1, -1,
75 -1, -1, -1, -1, -1, -1, -1, -1 }; 75 -1, -1, -1, -1, -1, -1, -1, -1 };
76 76
77static int cardtype_c = 1; 77static unsigned cardtype_c = 1;
78static int tuner_c = 1; 78static unsigned tuner_c = 1;
79static int radio_c = 1; 79static unsigned radio_c = 1;
80static char pal[] = "--"; 80static char pal[] = "--";
81static char secam[] = "--"; 81static char secam[] = "--";
82static char ntsc[] = "-"; 82static char ntsc[] = "-";
diff --git a/drivers/media/video/cx18/cx18-dvb.c b/drivers/media/video/cx18/cx18-dvb.c
index cae38985b13..1e420a804fc 100644
--- a/drivers/media/video/cx18/cx18-dvb.c
+++ b/drivers/media/video/cx18/cx18-dvb.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * cx18 functions for DVB support 2 * cx18 functions for DVB support
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx18/cx18-dvb.h b/drivers/media/video/cx18/cx18-dvb.h
index d6a6ccda79a..bf8d8f6f545 100644
--- a/drivers/media/video/cx18/cx18-dvb.h
+++ b/drivers/media/video/cx18/cx18-dvb.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * cx18 functions for DVB support 2 * cx18 functions for DVB support
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx18/cx18-irq.c b/drivers/media/video/cx18/cx18-irq.c
index 25114a5cbd5..ab218315c84 100644
--- a/drivers/media/video/cx18/cx18-irq.c
+++ b/drivers/media/video/cx18/cx18-irq.c
@@ -61,7 +61,7 @@ static void epu_dma_done(struct cx18 *cx, struct cx18_mailbox *mb)
61 CX18_WARN("Ack struct = %d for %s\n", 61 CX18_WARN("Ack struct = %d for %s\n",
62 mb->args[2], s->name); 62 mb->args[2], s->name);
63 id = read_enc(off); 63 id = read_enc(off);
64 buf = cx18_queue_find_buf(s, id, read_enc(off + 4)); 64 buf = cx18_queue_get_buf_irq(s, id, read_enc(off + 4));
65 CX18_DEBUG_HI_DMA("DMA DONE for %s (buffer %d)\n", s->name, id); 65 CX18_DEBUG_HI_DMA("DMA DONE for %s (buffer %d)\n", s->name, id);
66 if (buf) { 66 if (buf) {
67 cx18_buf_sync_for_cpu(s, buf); 67 cx18_buf_sync_for_cpu(s, buf);
diff --git a/drivers/media/video/cx18/cx18-queue.c b/drivers/media/video/cx18/cx18-queue.c
index 6990b77c620..dbe792ac300 100644
--- a/drivers/media/video/cx18/cx18-queue.c
+++ b/drivers/media/video/cx18/cx18-queue.c
@@ -78,12 +78,13 @@ struct cx18_buffer *cx18_dequeue(struct cx18_stream *s, struct cx18_queue *q)
78 return buf; 78 return buf;
79} 79}
80 80
81struct cx18_buffer *cx18_queue_find_buf(struct cx18_stream *s, u32 id, 81struct cx18_buffer *cx18_queue_get_buf_irq(struct cx18_stream *s, u32 id,
82 u32 bytesused) 82 u32 bytesused)
83{ 83{
84 struct cx18 *cx = s->cx; 84 struct cx18 *cx = s->cx;
85 struct list_head *p; 85 struct list_head *p;
86 86
87 spin_lock(&s->qlock);
87 list_for_each(p, &s->q_free.list) { 88 list_for_each(p, &s->q_free.list) {
88 struct cx18_buffer *buf = 89 struct cx18_buffer *buf =
89 list_entry(p, struct cx18_buffer, list); 90 list_entry(p, struct cx18_buffer, list);
@@ -92,114 +93,48 @@ struct cx18_buffer *cx18_queue_find_buf(struct cx18_stream *s, u32 id,
92 continue; 93 continue;
93 buf->bytesused = bytesused; 94 buf->bytesused = bytesused;
94 /* the transport buffers are handled differently, 95 /* the transport buffers are handled differently,
95 so there is no need to move them to the full queue */ 96 they are not moved to the full queue */
96 if (s->type == CX18_ENC_STREAM_TYPE_TS) 97 if (s->type != CX18_ENC_STREAM_TYPE_TS) {
97 return buf; 98 s->q_free.buffers--;
98 s->q_free.buffers--; 99 s->q_free.length -= s->buf_size;
99 s->q_free.length -= s->buf_size; 100 s->q_full.buffers++;
100 s->q_full.buffers++; 101 s->q_full.length += s->buf_size;
101 s->q_full.length += s->buf_size; 102 s->q_full.bytesused += buf->bytesused;
102 s->q_full.bytesused += buf->bytesused; 103 list_move_tail(&buf->list, &s->q_full.list);
103 list_move_tail(&buf->list, &s->q_full.list); 104 }
105 spin_unlock(&s->qlock);
104 return buf; 106 return buf;
105 } 107 }
108 spin_unlock(&s->qlock);
106 CX18_ERR("Cannot find buffer %d for stream %s\n", id, s->name); 109 CX18_ERR("Cannot find buffer %d for stream %s\n", id, s->name);
107 return NULL; 110 return NULL;
108} 111}
109 112
110static void cx18_queue_move_buf(struct cx18_stream *s, struct cx18_queue *from, 113/* Move all buffers of a queue to q_free, while flushing the buffers */
111 struct cx18_queue *to, int clear, int full) 114static void cx18_queue_flush(struct cx18_stream *s, struct cx18_queue *q)
112{
113 struct cx18_buffer *buf =
114 list_entry(from->list.next, struct cx18_buffer, list);
115
116 list_move_tail(from->list.next, &to->list);
117 from->buffers--;
118 from->length -= s->buf_size;
119 from->bytesused -= buf->bytesused - buf->readpos;
120 /* special handling for q_free */
121 if (clear)
122 buf->bytesused = buf->readpos = buf->b_flags = 0;
123 else if (full) {
124 /* special handling for stolen buffers, assume
125 all bytes are used. */
126 buf->bytesused = s->buf_size;
127 buf->readpos = buf->b_flags = 0;
128 }
129 to->buffers++;
130 to->length += s->buf_size;
131 to->bytesused += buf->bytesused - buf->readpos;
132}
133
134/* Move 'needed_bytes' worth of buffers from queue 'from' into queue 'to'.
135 If 'needed_bytes' == 0, then move all buffers from 'from' into 'to'.
136 If 'steal' != NULL, then buffers may also taken from that queue if
137 needed.
138
139 The buffer is automatically cleared if it goes to the free queue. It is
140 also cleared if buffers need to be taken from the 'steal' queue and
141 the 'from' queue is the free queue.
142
143 When 'from' is q_free, then needed_bytes is compared to the total
144 available buffer length, otherwise needed_bytes is compared to the
145 bytesused value. For the 'steal' queue the total available buffer
146 length is always used.
147
148 -ENOMEM is returned if the buffers could not be obtained, 0 if all
149 buffers where obtained from the 'from' list and if non-zero then
150 the number of stolen buffers is returned. */
151static int cx18_queue_move(struct cx18_stream *s, struct cx18_queue *from,
152 struct cx18_queue *steal, struct cx18_queue *to,
153 int needed_bytes)
154{ 115{
155 unsigned long flags; 116 unsigned long flags;
156 int rc = 0; 117 struct cx18_buffer *buf;
157 int from_free = from == &s->q_free;
158 int to_free = to == &s->q_free;
159 int bytes_available;
160
161 spin_lock_irqsave(&s->qlock, flags);
162 if (needed_bytes == 0) {
163 from_free = 1;
164 needed_bytes = from->length;
165 }
166
167 bytes_available = from_free ? from->length : from->bytesused;
168 bytes_available += steal ? steal->length : 0;
169 118
170 if (bytes_available < needed_bytes) { 119 if (q == &s->q_free)
171 spin_unlock_irqrestore(&s->qlock, flags); 120 return;
172 return -ENOMEM;
173 }
174 if (from_free) {
175 u32 old_length = to->length;
176 121
177 while (to->length - old_length < needed_bytes) { 122 spin_lock_irqsave(&s->qlock, flags);
178 if (list_empty(&from->list)) 123 while (!list_empty(&q->list)) {
179 from = steal; 124 buf = list_entry(q->list.next, struct cx18_buffer, list);
180 if (from == steal) 125 list_move_tail(q->list.next, &s->q_free.list);
181 rc++; /* keep track of 'stolen' buffers */ 126 buf->bytesused = buf->readpos = buf->b_flags = 0;
182 cx18_queue_move_buf(s, from, to, 1, 0); 127 s->q_free.buffers++;
183 } 128 s->q_free.length += s->buf_size;
184 } else {
185 u32 old_bytesused = to->bytesused;
186
187 while (to->bytesused - old_bytesused < needed_bytes) {
188 if (list_empty(&from->list))
189 from = steal;
190 if (from == steal)
191 rc++; /* keep track of 'stolen' buffers */
192 cx18_queue_move_buf(s, from, to, to_free, rc);
193 }
194 } 129 }
130 cx18_queue_init(q);
195 spin_unlock_irqrestore(&s->qlock, flags); 131 spin_unlock_irqrestore(&s->qlock, flags);
196 return rc;
197} 132}
198 133
199void cx18_flush_queues(struct cx18_stream *s) 134void cx18_flush_queues(struct cx18_stream *s)
200{ 135{
201 cx18_queue_move(s, &s->q_io, NULL, &s->q_free, 0); 136 cx18_queue_flush(s, &s->q_io);
202 cx18_queue_move(s, &s->q_full, NULL, &s->q_free, 0); 137 cx18_queue_flush(s, &s->q_full);
203} 138}
204 139
205int cx18_stream_alloc(struct cx18_stream *s) 140int cx18_stream_alloc(struct cx18_stream *s)
@@ -214,10 +149,10 @@ int cx18_stream_alloc(struct cx18_stream *s)
214 s->name, s->buffers, s->buf_size, 149 s->name, s->buffers, s->buf_size,
215 s->buffers * s->buf_size / 1024); 150 s->buffers * s->buf_size / 1024);
216 151
217 if (((char *)&cx->scb->cpu_mdl[cx->mdl_offset + s->buffers] - 152 if (((char __iomem *)&cx->scb->cpu_mdl[cx->mdl_offset + s->buffers] -
218 (char *)cx->scb) > SCB_RESERVED_SIZE) { 153 (char __iomem *)cx->scb) > SCB_RESERVED_SIZE) {
219 unsigned bufsz = (((char *)cx->scb) + SCB_RESERVED_SIZE - 154 unsigned bufsz = (((char __iomem *)cx->scb) + SCB_RESERVED_SIZE -
220 ((char *)cx->scb->cpu_mdl)); 155 ((char __iomem *)cx->scb->cpu_mdl));
221 156
222 CX18_ERR("Too many buffers, cannot fit in SCB area\n"); 157 CX18_ERR("Too many buffers, cannot fit in SCB area\n");
223 CX18_ERR("Max buffers = %zd\n", 158 CX18_ERR("Max buffers = %zd\n",
diff --git a/drivers/media/video/cx18/cx18-queue.h b/drivers/media/video/cx18/cx18-queue.h
index 91423b9863a..7f93bb13c09 100644
--- a/drivers/media/video/cx18/cx18-queue.h
+++ b/drivers/media/video/cx18/cx18-queue.h
@@ -46,7 +46,7 @@ void cx18_queue_init(struct cx18_queue *q);
46void cx18_enqueue(struct cx18_stream *s, struct cx18_buffer *buf, 46void cx18_enqueue(struct cx18_stream *s, struct cx18_buffer *buf,
47 struct cx18_queue *q); 47 struct cx18_queue *q);
48struct cx18_buffer *cx18_dequeue(struct cx18_stream *s, struct cx18_queue *q); 48struct cx18_buffer *cx18_dequeue(struct cx18_stream *s, struct cx18_queue *q);
49struct cx18_buffer *cx18_queue_find_buf(struct cx18_stream *s, u32 id, 49struct cx18_buffer *cx18_queue_get_buf_irq(struct cx18_stream *s, u32 id,
50 u32 bytesused); 50 u32 bytesused);
51void cx18_flush_queues(struct cx18_stream *s); 51void cx18_flush_queues(struct cx18_stream *s);
52 52
diff --git a/drivers/media/video/cx23885/cx23885-417.c b/drivers/media/video/cx23885/cx23885-417.c
index 8118091568f..7b0e8c01692 100644
--- a/drivers/media/video/cx23885/cx23885-417.c
+++ b/drivers/media/video/cx23885/cx23885-417.c
@@ -4,7 +4,7 @@
4 * 4 *
5 * (c) 2004 Jelle Foks <jelle@foks.8m.com> 5 * (c) 2004 Jelle Foks <jelle@foks.8m.com>
6 * (c) 2004 Gerd Knorr <kraxel@bytesex.org> 6 * (c) 2004 Gerd Knorr <kraxel@bytesex.org>
7 * (c) 2008 Steven Toth <stoth@hauppauge.com> 7 * (c) 2008 Steven Toth <stoth@linuxtv.org>
8 * - CX23885/7/8 support 8 * - CX23885/7/8 support
9 * 9 *
10 * Includes parts from the ivtv driver( http://ivtv.sourceforge.net/), 10 * Includes parts from the ivtv driver( http://ivtv.sourceforge.net/),
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
index a19de850955..c36d3f63210 100644
--- a/drivers/media/video/cx23885/cx23885-cards.c
+++ b/drivers/media/video/cx23885/cx23885-cards.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx23885/cx23885-core.c b/drivers/media/video/cx23885/cx23885-core.c
index 6286a9cf957..25fb0993874 100644
--- a/drivers/media/video/cx23885/cx23885-core.c
+++ b/drivers/media/video/cx23885/cx23885-core.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@
33#include "cx23885.h" 33#include "cx23885.h"
34 34
35MODULE_DESCRIPTION("Driver for cx23885 based TV cards"); 35MODULE_DESCRIPTION("Driver for cx23885 based TV cards");
36MODULE_AUTHOR("Steven Toth <stoth@hauppauge.com>"); 36MODULE_AUTHOR("Steven Toth <stoth@linuxtv.org>");
37MODULE_LICENSE("GPL"); 37MODULE_LICENSE("GPL");
38 38
39static unsigned int debug; 39static unsigned int debug;
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
index 0a2e6558cd6..291b9d008da 100644
--- a/drivers/media/video/cx23885/cx23885-dvb.c
+++ b/drivers/media/video/cx23885/cx23885-dvb.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx23885/cx23885-i2c.c b/drivers/media/video/cx23885/cx23885-i2c.c
index c6bb0a05bc1..f98e476e961 100644
--- a/drivers/media/video/cx23885/cx23885-i2c.c
+++ b/drivers/media/video/cx23885/cx23885-i2c.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx23885/cx23885-reg.h b/drivers/media/video/cx23885/cx23885-reg.h
index bdd11bc513a..20b68a23626 100644
--- a/drivers/media/video/cx23885/cx23885-reg.h
+++ b/drivers/media/video/cx23885/cx23885-reg.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx23885/cx23885-vbi.c b/drivers/media/video/cx23885/cx23885-vbi.c
index e36e3fcae2f..35e61cd112f 100644
--- a/drivers/media/video/cx23885/cx23885-vbi.c
+++ b/drivers/media/video/cx23885/cx23885-vbi.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2007 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2007 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx23885/cx23885-video.c b/drivers/media/video/cx23885/cx23885-video.c
index ad2235dab5b..6047c78d84b 100644
--- a/drivers/media/video/cx23885/cx23885-video.c
+++ b/drivers/media/video/cx23885/cx23885-video.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2007 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2007 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -41,7 +41,7 @@
41#endif 41#endif
42 42
43MODULE_DESCRIPTION("v4l2 driver module for cx23885 based TV cards"); 43MODULE_DESCRIPTION("v4l2 driver module for cx23885 based TV cards");
44MODULE_AUTHOR("Steven Toth <stoth@hauppauge.com>"); 44MODULE_AUTHOR("Steven Toth <stoth@linuxtv.org>");
45MODULE_LICENSE("GPL"); 45MODULE_LICENSE("GPL");
46 46
47/* ------------------------------------------------------------------ */ 47/* ------------------------------------------------------------------ */
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h
index 00dfdc89d64..e23d97c071e 100644
--- a/drivers/media/video/cx23885/cx23885.h
+++ b/drivers/media/video/cx23885/cx23885.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c
index 209d3bcb5db..4da8cd74f00 100644
--- a/drivers/media/video/cx25840/cx25840-core.c
+++ b/drivers/media/video/cx25840/cx25840-core.c
@@ -13,7 +13,7 @@
13 * NTSC sliced VBI support by Christopher Neufeld <television@cneufeld.ca> 13 * NTSC sliced VBI support by Christopher Neufeld <television@cneufeld.ca>
14 * with additional fixes by Hans Verkuil <hverkuil@xs4all.nl>. 14 * with additional fixes by Hans Verkuil <hverkuil@xs4all.nl>.
15 * 15 *
16 * CX23885 support by Steven Toth <stoth@hauppauge.com>. 16 * CX23885 support by Steven Toth <stoth@linuxtv.org>.
17 * 17 *
18 * This program is free software; you can redistribute it and/or 18 * This program is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU General Public License 19 * modify it under the terms of the GNU General Public License
diff --git a/drivers/media/video/dabusb.c b/drivers/media/video/dabusb.c
index 48f4b92a8f8..79faedf5852 100644
--- a/drivers/media/video/dabusb.c
+++ b/drivers/media/video/dabusb.c
@@ -403,6 +403,7 @@ static int dabusb_fpga_download (pdabusb_t s, const char *fname)
403 ret = request_firmware(&fw, "dabusb/bitstream.bin", &s->usbdev->dev); 403 ret = request_firmware(&fw, "dabusb/bitstream.bin", &s->usbdev->dev);
404 if (ret) { 404 if (ret) {
405 err("Failed to load \"dabusb/bitstream.bin\": %d\n", ret); 405 err("Failed to load \"dabusb/bitstream.bin\": %d\n", ret);
406 kfree(b);
406 return ret; 407 return ret;
407 } 408 }
408 409
diff --git a/drivers/media/video/et61x251/et61x251_core.c b/drivers/media/video/et61x251/et61x251_core.c
index 2d170d101c2..8db2a05bf9c 100644
--- a/drivers/media/video/et61x251/et61x251_core.c
+++ b/drivers/media/video/et61x251/et61x251_core.c
@@ -2588,6 +2588,7 @@ et61x251_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
2588 cam->v4ldev->fops = &et61x251_fops; 2588 cam->v4ldev->fops = &et61x251_fops;
2589 cam->v4ldev->minor = video_nr[dev_nr]; 2589 cam->v4ldev->minor = video_nr[dev_nr];
2590 cam->v4ldev->release = video_device_release; 2590 cam->v4ldev->release = video_device_release;
2591 cam->v4ldev->parent = &udev->dev;
2591 video_set_drvdata(cam->v4ldev, cam); 2592 video_set_drvdata(cam->v4ldev, cam);
2592 2593
2593 init_completion(&cam->probe); 2594 init_completion(&cam->probe);
diff --git a/drivers/media/video/gspca/conex.c b/drivers/media/video/gspca/conex.c
index cd3a3f5829b..4d9f4cc255a 100644
--- a/drivers/media/video/gspca/conex.c
+++ b/drivers/media/video/gspca/conex.c
@@ -124,7 +124,7 @@ static void reg_r(struct gspca_dev *gspca_dev,
124 struct usb_device *dev = gspca_dev->dev; 124 struct usb_device *dev = gspca_dev->dev;
125 125
126#ifdef GSPCA_DEBUG 126#ifdef GSPCA_DEBUG
127 if (len > sizeof gspca_dev->usb_buf) { 127 if (len > USB_BUF_SZ) {
128 err("reg_r: buffer overflow"); 128 err("reg_r: buffer overflow");
129 return; 129 return;
130 } 130 }
@@ -164,7 +164,7 @@ static void reg_w(struct gspca_dev *gspca_dev,
164 struct usb_device *dev = gspca_dev->dev; 164 struct usb_device *dev = gspca_dev->dev;
165 165
166#ifdef GSPCA_DEBUG 166#ifdef GSPCA_DEBUG
167 if (len > sizeof gspca_dev->usb_buf) { 167 if (len > USB_BUF_SZ) {
168 err("reg_w: buffer overflow"); 168 err("reg_w: buffer overflow");
169 return; 169 return;
170 } 170 }
@@ -731,13 +731,13 @@ static void cx11646_jpeg(struct gspca_dev*gspca_dev)
731 reg_w_val(gspca_dev, 0x0000, 0x00); 731 reg_w_val(gspca_dev, 0x0000, 0x00);
732 /* wait for completion */ 732 /* wait for completion */
733 retry = 50; 733 retry = 50;
734 while (retry--) { 734 do {
735 reg_r(gspca_dev, 0x0002, 1); 735 reg_r(gspca_dev, 0x0002, 1);
736 /* 0x07 until 0x00 */ 736 /* 0x07 until 0x00 */
737 if (gspca_dev->usb_buf[0] == 0x00) 737 if (gspca_dev->usb_buf[0] == 0x00)
738 break; 738 break;
739 reg_w_val(gspca_dev, 0x0053, 0x00); 739 reg_w_val(gspca_dev, 0x0053, 0x00);
740 } 740 } while (--retry);
741 if (retry == 0) 741 if (retry == 0)
742 PDEBUG(D_ERR, "Damned Errors sending jpeg Table"); 742 PDEBUG(D_ERR, "Damned Errors sending jpeg Table");
743 /* send the qtable now */ 743 /* send the qtable now */
@@ -826,8 +826,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
826 return 0; 826 return 0;
827} 827}
828 828
829/* this function is called at open time */ 829/* this function is called at probe and resume time */
830static int sd_open(struct gspca_dev *gspca_dev) 830static int sd_init(struct gspca_dev *gspca_dev)
831{ 831{
832 cx11646_init1(gspca_dev); 832 cx11646_init1(gspca_dev);
833 cx11646_initsize(gspca_dev); 833 cx11646_initsize(gspca_dev);
@@ -845,10 +845,6 @@ static void sd_start(struct gspca_dev *gspca_dev)
845 cx11646_jpeg(gspca_dev); 845 cx11646_jpeg(gspca_dev);
846} 846}
847 847
848static void sd_stopN(struct gspca_dev *gspca_dev)
849{
850}
851
852static void sd_stop0(struct gspca_dev *gspca_dev) 848static void sd_stop0(struct gspca_dev *gspca_dev)
853{ 849{
854 int retry = 50; 850 int retry = 50;
@@ -871,10 +867,6 @@ static void sd_stop0(struct gspca_dev *gspca_dev)
871 reg_w_val(gspca_dev, 0x00fc, 0xe0); 867 reg_w_val(gspca_dev, 0x00fc, 0xe0);
872} 868}
873 869
874static void sd_close(struct gspca_dev *gspca_dev)
875{
876}
877
878static void sd_pkt_scan(struct gspca_dev *gspca_dev, 870static void sd_pkt_scan(struct gspca_dev *gspca_dev,
879 struct gspca_frame *frame, /* target */ 871 struct gspca_frame *frame, /* target */
880 __u8 *data, /* isoc packet */ 872 __u8 *data, /* isoc packet */
@@ -998,11 +990,9 @@ static struct sd_desc sd_desc = {
998 .ctrls = sd_ctrls, 990 .ctrls = sd_ctrls,
999 .nctrls = ARRAY_SIZE(sd_ctrls), 991 .nctrls = ARRAY_SIZE(sd_ctrls),
1000 .config = sd_config, 992 .config = sd_config,
1001 .open = sd_open, 993 .init = sd_init,
1002 .start = sd_start, 994 .start = sd_start,
1003 .stopN = sd_stopN,
1004 .stop0 = sd_stop0, 995 .stop0 = sd_stop0,
1005 .close = sd_close,
1006 .pkt_scan = sd_pkt_scan, 996 .pkt_scan = sd_pkt_scan,
1007}; 997};
1008 998
@@ -1026,6 +1016,10 @@ static struct usb_driver sd_driver = {
1026 .id_table = device_table, 1016 .id_table = device_table,
1027 .probe = sd_probe, 1017 .probe = sd_probe,
1028 .disconnect = gspca_disconnect, 1018 .disconnect = gspca_disconnect,
1019#ifdef CONFIG_PM
1020 .suspend = gspca_suspend,
1021 .resume = gspca_resume,
1022#endif
1029}; 1023};
1030 1024
1031/* -- module insert / remove -- */ 1025/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/etoms.c b/drivers/media/video/gspca/etoms.c
index 1dbe92d01e6..4ff0e386914 100644
--- a/drivers/media/video/gspca/etoms.c
+++ b/drivers/media/video/gspca/etoms.c
@@ -81,6 +81,7 @@ static struct ctrl sd_ctrls[] = {
81 .set = sd_setcontrast, 81 .set = sd_setcontrast,
82 .get = sd_getcontrast, 82 .get = sd_getcontrast,
83 }, 83 },
84#define COLOR_IDX 2
84 { 85 {
85 { 86 {
86 .id = V4L2_CID_SATURATION, 87 .id = V4L2_CID_SATURATION,
@@ -234,7 +235,7 @@ static void reg_r(struct gspca_dev *gspca_dev,
234 struct usb_device *dev = gspca_dev->dev; 235 struct usb_device *dev = gspca_dev->dev;
235 236
236#ifdef GSPCA_DEBUG 237#ifdef GSPCA_DEBUG
237 if (len > sizeof gspca_dev->usb_buf) { 238 if (len > USB_BUF_SZ) {
238 err("reg_r: buffer overflow"); 239 err("reg_r: buffer overflow");
239 return; 240 return;
240 } 241 }
@@ -272,7 +273,7 @@ static void reg_w(struct gspca_dev *gspca_dev,
272 struct usb_device *dev = gspca_dev->dev; 273 struct usb_device *dev = gspca_dev->dev;
273 274
274#ifdef GSPCA_DEBUG 275#ifdef GSPCA_DEBUG
275 if (len > sizeof gspca_dev->usb_buf) { 276 if (len > USB_BUF_SZ) {
276 err("reg_w: buffer overflow"); 277 err("reg_w: buffer overflow");
277 return; 278 return;
278 } 279 }
@@ -665,6 +666,7 @@ static int sd_config(struct gspca_dev *gspca_dev,
665 } else { 666 } else {
666 cam->cam_mode = vga_mode; 667 cam->cam_mode = vga_mode;
667 cam->nmodes = sizeof vga_mode / sizeof vga_mode[0]; 668 cam->nmodes = sizeof vga_mode / sizeof vga_mode[0];
669 gspca_dev->ctrl_dis = (1 << COLOR_IDX);
668 } 670 }
669 sd->brightness = BRIGHTNESS_DEF; 671 sd->brightness = BRIGHTNESS_DEF;
670 sd->contrast = CONTRAST_DEF; 672 sd->contrast = CONTRAST_DEF;
@@ -674,8 +676,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
674 return 0; 676 return 0;
675} 677}
676 678
677/* this function is called at open time */ 679/* this function is called at probe and resume time */
678static int sd_open(struct gspca_dev *gspca_dev) 680static int sd_init(struct gspca_dev *gspca_dev)
679{ 681{
680 struct sd *sd = (struct sd *) gspca_dev; 682 struct sd *sd = (struct sd *) gspca_dev;
681 683
@@ -709,14 +711,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
709 et_video(gspca_dev, 0); /* video off */ 711 et_video(gspca_dev, 0); /* video off */
710} 712}
711 713
712static void sd_stop0(struct gspca_dev *gspca_dev)
713{
714}
715
716static void sd_close(struct gspca_dev *gspca_dev)
717{
718}
719
720static __u8 Et_getgainG(struct gspca_dev *gspca_dev) 714static __u8 Et_getgainG(struct gspca_dev *gspca_dev)
721{ 715{
722 struct sd *sd = (struct sd *) gspca_dev; 716 struct sd *sd = (struct sd *) gspca_dev;
@@ -893,21 +887,19 @@ static struct sd_desc sd_desc = {
893 .ctrls = sd_ctrls, 887 .ctrls = sd_ctrls,
894 .nctrls = ARRAY_SIZE(sd_ctrls), 888 .nctrls = ARRAY_SIZE(sd_ctrls),
895 .config = sd_config, 889 .config = sd_config,
896 .open = sd_open, 890 .init = sd_init,
897 .start = sd_start, 891 .start = sd_start,
898 .stopN = sd_stopN, 892 .stopN = sd_stopN,
899 .stop0 = sd_stop0,
900 .close = sd_close,
901 .pkt_scan = sd_pkt_scan, 893 .pkt_scan = sd_pkt_scan,
902 .dq_callback = do_autogain, 894 .dq_callback = do_autogain,
903}; 895};
904 896
905/* -- module initialisation -- */ 897/* -- module initialisation -- */
906static __devinitdata struct usb_device_id device_table[] = { 898static __devinitdata struct usb_device_id device_table[] = {
907#ifndef CONFIG_USB_ET61X251
908 {USB_DEVICE(0x102c, 0x6151), .driver_info = SENSOR_PAS106}, 899 {USB_DEVICE(0x102c, 0x6151), .driver_info = SENSOR_PAS106},
909#endif 900#if !defined CONFIG_USB_ET61X251 && !defined CONFIG_USB_ET61X251_MODULE
910 {USB_DEVICE(0x102c, 0x6251), .driver_info = SENSOR_TAS5130CXX}, 901 {USB_DEVICE(0x102c, 0x6251), .driver_info = SENSOR_TAS5130CXX},
902#endif
911 {} 903 {}
912}; 904};
913 905
@@ -926,6 +918,10 @@ static struct usb_driver sd_driver = {
926 .id_table = device_table, 918 .id_table = device_table,
927 .probe = sd_probe, 919 .probe = sd_probe,
928 .disconnect = gspca_disconnect, 920 .disconnect = gspca_disconnect,
921#ifdef CONFIG_PM
922 .suspend = gspca_suspend,
923 .resume = gspca_resume,
924#endif
929}; 925};
930 926
931/* -- module insert / remove -- */ 927/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index 15d302b28b7..7be69284da0 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -114,7 +114,10 @@ static void fill_frame(struct gspca_dev *gspca_dev,
114 cam_pkt_op pkt_scan; 114 cam_pkt_op pkt_scan;
115 115
116 if (urb->status != 0) { 116 if (urb->status != 0) {
117 PDEBUG(D_ERR|D_PACK, "urb status: %d", urb->status); 117#ifdef CONFIG_PM
118 if (!gspca_dev->frozen)
119#endif
120 PDEBUG(D_ERR|D_PACK, "urb status: %d", urb->status);
118 return; /* disconnection ? */ 121 return; /* disconnection ? */
119 } 122 }
120 pkt_scan = gspca_dev->sd_desc->pkt_scan; 123 pkt_scan = gspca_dev->sd_desc->pkt_scan;
@@ -555,10 +558,12 @@ static void gspca_stream_off(struct gspca_dev *gspca_dev)
555 gspca_dev->streaming = 0; 558 gspca_dev->streaming = 0;
556 atomic_set(&gspca_dev->nevent, 0); 559 atomic_set(&gspca_dev->nevent, 0);
557 if (gspca_dev->present) { 560 if (gspca_dev->present) {
558 gspca_dev->sd_desc->stopN(gspca_dev); 561 if (gspca_dev->sd_desc->stopN)
562 gspca_dev->sd_desc->stopN(gspca_dev);
559 destroy_urbs(gspca_dev); 563 destroy_urbs(gspca_dev);
560 gspca_set_alt0(gspca_dev); 564 gspca_set_alt0(gspca_dev);
561 gspca_dev->sd_desc->stop0(gspca_dev); 565 if (gspca_dev->sd_desc->stop0)
566 gspca_dev->sd_desc->stop0(gspca_dev);
562 PDEBUG(D_STREAM, "stream off OK"); 567 PDEBUG(D_STREAM, "stream off OK");
563 } 568 }
564} 569}
@@ -767,19 +772,7 @@ static int dev_open(struct inode *inode, struct file *file)
767 goto out; 772 goto out;
768 } 773 }
769 774
770 /* if not done yet, initialize the sensor */ 775 if (gspca_dev->users > 4) { /* (arbitrary value) */
771 if (gspca_dev->users == 0) {
772 if (mutex_lock_interruptible(&gspca_dev->usb_lock)) {
773 ret = -ERESTARTSYS;
774 goto out;
775 }
776 ret = gspca_dev->sd_desc->open(gspca_dev);
777 mutex_unlock(&gspca_dev->usb_lock);
778 if (ret != 0) {
779 PDEBUG(D_ERR|D_CONF, "init device failed %d", ret);
780 goto out;
781 }
782 } else if (gspca_dev->users > 4) { /* (arbitrary value) */
783 ret = -EBUSY; 776 ret = -EBUSY;
784 goto out; 777 goto out;
785 } 778 }
@@ -792,6 +785,7 @@ static int dev_open(struct inode *inode, struct file *file)
792 else 785 else
793 gspca_dev->vdev.debug &= ~3; 786 gspca_dev->vdev.debug &= ~3;
794#endif 787#endif
788 ret = 0;
795out: 789out:
796 mutex_unlock(&gspca_dev->queue_lock); 790 mutex_unlock(&gspca_dev->queue_lock);
797 if (ret != 0) 791 if (ret != 0)
@@ -812,11 +806,11 @@ static int dev_close(struct inode *inode, struct file *file)
812 806
813 /* if the file did the capture, free the streaming resources */ 807 /* if the file did the capture, free the streaming resources */
814 if (gspca_dev->capt_file == file) { 808 if (gspca_dev->capt_file == file) {
815 mutex_lock(&gspca_dev->usb_lock); 809 if (gspca_dev->streaming) {
816 if (gspca_dev->streaming) 810 mutex_lock(&gspca_dev->usb_lock);
817 gspca_stream_off(gspca_dev); 811 gspca_stream_off(gspca_dev);
818 gspca_dev->sd_desc->close(gspca_dev); 812 mutex_unlock(&gspca_dev->usb_lock);
819 mutex_unlock(&gspca_dev->usb_lock); 813 }
820 frame_free(gspca_dev); 814 frame_free(gspca_dev);
821 gspca_dev->capt_file = NULL; 815 gspca_dev->capt_file = NULL;
822 gspca_dev->memory = GSPCA_MEMORY_NO; 816 gspca_dev->memory = GSPCA_MEMORY_NO;
@@ -853,42 +847,44 @@ static int vidioc_querycap(struct file *file, void *priv,
853 return 0; 847 return 0;
854} 848}
855 849
856/* the use of V4L2_CTRL_FLAG_NEXT_CTRL asks for the controls to be sorted */
857static int vidioc_queryctrl(struct file *file, void *priv, 850static int vidioc_queryctrl(struct file *file, void *priv,
858 struct v4l2_queryctrl *q_ctrl) 851 struct v4l2_queryctrl *q_ctrl)
859{ 852{
860 struct gspca_dev *gspca_dev = priv; 853 struct gspca_dev *gspca_dev = priv;
861 int i; 854 int i, ix;
862 u32 id; 855 u32 id;
863 856
857 ix = -1;
864 id = q_ctrl->id; 858 id = q_ctrl->id;
865 if (id & V4L2_CTRL_FLAG_NEXT_CTRL) { 859 if (id & V4L2_CTRL_FLAG_NEXT_CTRL) {
866 id &= V4L2_CTRL_ID_MASK; 860 id &= V4L2_CTRL_ID_MASK;
867 id++; 861 id++;
868 for (i = 0; i < gspca_dev->sd_desc->nctrls; i++) { 862 for (i = 0; i < gspca_dev->sd_desc->nctrls; i++) {
869 if (id >= gspca_dev->sd_desc->ctrls[i].qctrl.id) { 863 if (gspca_dev->sd_desc->ctrls[i].qctrl.id < id)
870 memcpy(q_ctrl, 864 continue;
871 &gspca_dev->sd_desc->ctrls[i].qctrl, 865 if (ix < 0) {
872 sizeof *q_ctrl); 866 ix = i;
873 return 0; 867 continue;
874 } 868 }
869 if (gspca_dev->sd_desc->ctrls[i].qctrl.id
870 > gspca_dev->sd_desc->ctrls[ix].qctrl.id)
871 continue;
872 ix = i;
875 } 873 }
876 return -EINVAL;
877 } 874 }
878 for (i = 0; i < gspca_dev->sd_desc->nctrls; i++) { 875 for (i = 0; i < gspca_dev->sd_desc->nctrls; i++) {
879 if (id == gspca_dev->sd_desc->ctrls[i].qctrl.id) { 876 if (id == gspca_dev->sd_desc->ctrls[i].qctrl.id) {
880 memcpy(q_ctrl, 877 ix = i;
881 &gspca_dev->sd_desc->ctrls[i].qctrl, 878 break;
882 sizeof *q_ctrl);
883 return 0;
884 } 879 }
885 } 880 }
886 if (id >= V4L2_CID_BASE 881 if (ix < 0)
887 && id <= V4L2_CID_LASTP1) { 882 return -EINVAL;
883 memcpy(q_ctrl, &gspca_dev->sd_desc->ctrls[ix].qctrl,
884 sizeof *q_ctrl);
885 if (gspca_dev->ctrl_dis & (1 << ix))
888 q_ctrl->flags |= V4L2_CTRL_FLAG_DISABLED; 886 q_ctrl->flags |= V4L2_CTRL_FLAG_DISABLED;
889 return 0; 887 return 0;
890 }
891 return -EINVAL;
892} 888}
893 889
894static int vidioc_s_ctrl(struct file *file, void *priv, 890static int vidioc_s_ctrl(struct file *file, void *priv,
@@ -903,6 +899,8 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
903 i++, ctrls++) { 899 i++, ctrls++) {
904 if (ctrl->id != ctrls->qctrl.id) 900 if (ctrl->id != ctrls->qctrl.id)
905 continue; 901 continue;
902 if (gspca_dev->ctrl_dis & (1 << i))
903 return -EINVAL;
906 if (ctrl->value < ctrls->qctrl.minimum 904 if (ctrl->value < ctrls->qctrl.minimum
907 || ctrl->value > ctrls->qctrl.maximum) 905 || ctrl->value > ctrls->qctrl.maximum)
908 return -ERANGE; 906 return -ERANGE;
@@ -929,6 +927,8 @@ static int vidioc_g_ctrl(struct file *file, void *priv,
929 i++, ctrls++) { 927 i++, ctrls++) {
930 if (ctrl->id != ctrls->qctrl.id) 928 if (ctrl->id != ctrls->qctrl.id)
931 continue; 929 continue;
930 if (gspca_dev->ctrl_dis & (1 << i))
931 return -EINVAL;
932 if (mutex_lock_interruptible(&gspca_dev->usb_lock)) 932 if (mutex_lock_interruptible(&gspca_dev->usb_lock))
933 return -ERESTARTSYS; 933 return -ERESTARTSYS;
934 ret = ctrls->get(gspca_dev, &ctrl->value); 934 ret = ctrls->get(gspca_dev, &ctrl->value);
@@ -1403,7 +1403,7 @@ static int vidioc_dqbuf(struct file *file, void *priv,
1403 i = ret; /* frame index */ 1403 i = ret; /* frame index */
1404 frame = &gspca_dev->frame[i]; 1404 frame = &gspca_dev->frame[i];
1405 if (gspca_dev->memory == V4L2_MEMORY_USERPTR) { 1405 if (gspca_dev->memory == V4L2_MEMORY_USERPTR) {
1406 if (copy_to_user((__u8 *) frame->v4l2_buf.m.userptr, 1406 if (copy_to_user((__u8 __user *) frame->v4l2_buf.m.userptr,
1407 frame->data, 1407 frame->data,
1408 frame->v4l2_buf.bytesused)) { 1408 frame->v4l2_buf.bytesused)) {
1409 PDEBUG(D_ERR|D_STREAM, 1409 PDEBUG(D_ERR|D_STREAM,
@@ -1731,6 +1731,12 @@ int gspca_dev_probe(struct usb_interface *intf,
1731 err("couldn't kzalloc gspca struct"); 1731 err("couldn't kzalloc gspca struct");
1732 return -EIO; 1732 return -EIO;
1733 } 1733 }
1734 gspca_dev->usb_buf = kmalloc(USB_BUF_SZ, GFP_KERNEL);
1735 if (!gspca_dev->usb_buf) {
1736 err("out of memory");
1737 ret = -EIO;
1738 goto out;
1739 }
1734 gspca_dev->dev = dev; 1740 gspca_dev->dev = dev;
1735 gspca_dev->iface = interface->bInterfaceNumber; 1741 gspca_dev->iface = interface->bInterfaceNumber;
1736 gspca_dev->nbalt = intf->num_altsetting; 1742 gspca_dev->nbalt = intf->num_altsetting;
@@ -1738,10 +1744,13 @@ int gspca_dev_probe(struct usb_interface *intf,
1738/* gspca_dev->users = 0; (done by kzalloc) */ 1744/* gspca_dev->users = 0; (done by kzalloc) */
1739 gspca_dev->nbufread = 2; 1745 gspca_dev->nbufread = 2;
1740 1746
1741 /* configure the subdriver */ 1747 /* configure the subdriver and initialize the USB device */
1742 ret = gspca_dev->sd_desc->config(gspca_dev, id); 1748 ret = gspca_dev->sd_desc->config(gspca_dev, id);
1743 if (ret < 0) 1749 if (ret < 0)
1744 goto out; 1750 goto out;
1751 ret = gspca_dev->sd_desc->init(gspca_dev);
1752 if (ret < 0)
1753 goto out;
1745 ret = gspca_set_alt0(gspca_dev); 1754 ret = gspca_set_alt0(gspca_dev);
1746 if (ret < 0) 1755 if (ret < 0)
1747 goto out; 1756 goto out;
@@ -1771,6 +1780,7 @@ int gspca_dev_probe(struct usb_interface *intf,
1771 PDEBUG(D_PROBE, "probe ok"); 1780 PDEBUG(D_PROBE, "probe ok");
1772 return 0; 1781 return 0;
1773out: 1782out:
1783 kfree(gspca_dev->usb_buf);
1774 kfree(gspca_dev); 1784 kfree(gspca_dev);
1775 return ret; 1785 return ret;
1776} 1786}
@@ -1803,11 +1813,42 @@ void gspca_disconnect(struct usb_interface *intf)
1803/* We don't want people trying to open up the device */ 1813/* We don't want people trying to open up the device */
1804 video_unregister_device(&gspca_dev->vdev); 1814 video_unregister_device(&gspca_dev->vdev);
1805/* Free the memory */ 1815/* Free the memory */
1816 kfree(gspca_dev->usb_buf);
1806 kfree(gspca_dev); 1817 kfree(gspca_dev);
1807 PDEBUG(D_PROBE, "disconnect complete"); 1818 PDEBUG(D_PROBE, "disconnect complete");
1808} 1819}
1809EXPORT_SYMBOL(gspca_disconnect); 1820EXPORT_SYMBOL(gspca_disconnect);
1810 1821
1822#ifdef CONFIG_PM
1823int gspca_suspend(struct usb_interface *intf, pm_message_t message)
1824{
1825 struct gspca_dev *gspca_dev = usb_get_intfdata(intf);
1826
1827 if (!gspca_dev->streaming)
1828 return 0;
1829 gspca_dev->frozen = 1; /* avoid urb error messages */
1830 if (gspca_dev->sd_desc->stopN)
1831 gspca_dev->sd_desc->stopN(gspca_dev);
1832 destroy_urbs(gspca_dev);
1833 gspca_set_alt0(gspca_dev);
1834 if (gspca_dev->sd_desc->stop0)
1835 gspca_dev->sd_desc->stop0(gspca_dev);
1836 return 0;
1837}
1838EXPORT_SYMBOL(gspca_suspend);
1839
1840int gspca_resume(struct usb_interface *intf)
1841{
1842 struct gspca_dev *gspca_dev = usb_get_intfdata(intf);
1843
1844 gspca_dev->frozen = 0;
1845 gspca_dev->sd_desc->init(gspca_dev);
1846 if (gspca_dev->streaming)
1847 return gspca_init_transfer(gspca_dev);
1848 return 0;
1849}
1850EXPORT_SYMBOL(gspca_resume);
1851#endif
1811/* -- cam driver utility functions -- */ 1852/* -- cam driver utility functions -- */
1812 1853
1813/* auto gain and exposure algorithm based on the knee algorithm described here: 1854/* auto gain and exposure algorithm based on the knee algorithm described here:
diff --git a/drivers/media/video/gspca/gspca.h b/drivers/media/video/gspca/gspca.h
index 67e448940ea..c17625cff9b 100644
--- a/drivers/media/video/gspca/gspca.h
+++ b/drivers/media/video/gspca/gspca.h
@@ -56,7 +56,6 @@ extern int gspca_debug;
56 56
57/* device information - set at probe time */ 57/* device information - set at probe time */
58struct cam { 58struct cam {
59 char *dev_name;
60 struct v4l2_pix_format *cam_mode; /* size nmodes */ 59 struct v4l2_pix_format *cam_mode; /* size nmodes */
61 char nmodes; 60 char nmodes;
62 __u8 epaddr; 61 __u8 epaddr;
@@ -91,15 +90,14 @@ struct sd_desc {
91/* controls */ 90/* controls */
92 const struct ctrl *ctrls; 91 const struct ctrl *ctrls;
93 int nctrls; 92 int nctrls;
94/* operations */ 93/* mandatory operations */
95 cam_cf_op config; /* called on probe */ 94 cam_cf_op config; /* called on probe */
96 cam_op open; /* called on open */ 95 cam_op init; /* called on probe and resume */
97 cam_v_op start; /* called on stream on */ 96 cam_v_op start; /* called on stream on */
98 cam_v_op stopN; /* called on stream off - main alt */
99 cam_v_op stop0; /* called on stream off - alt 0 */
100 cam_v_op close; /* called on close */
101 cam_pkt_op pkt_scan; 97 cam_pkt_op pkt_scan;
102/* optional operations */ 98/* optional operations */
99 cam_v_op stopN; /* called on stream off - main alt */
100 cam_v_op stop0; /* called on stream off - alt 0 */
103 cam_v_op dq_callback; /* called when a frame has been dequeued */ 101 cam_v_op dq_callback; /* called when a frame has been dequeued */
104 cam_jpg_op get_jcomp; 102 cam_jpg_op get_jcomp;
105 cam_jpg_op set_jcomp; 103 cam_jpg_op set_jcomp;
@@ -127,8 +125,10 @@ struct gspca_dev {
127 125
128 struct cam cam; /* device information */ 126 struct cam cam; /* device information */
129 const struct sd_desc *sd_desc; /* subdriver description */ 127 const struct sd_desc *sd_desc; /* subdriver description */
128 unsigned ctrl_dis; /* disabled controls (bit map) */
130 129
131 __u8 usb_buf[8]; /* buffer for USB exchanges */ 130#define USB_BUF_SZ 64
131 __u8 *usb_buf; /* buffer for USB exchanges */
132 struct urb *urb[MAX_NURBS]; 132 struct urb *urb[MAX_NURBS];
133 133
134 __u8 *frbuf; /* buffer for nframes */ 134 __u8 *frbuf; /* buffer for nframes */
@@ -155,6 +155,9 @@ struct gspca_dev {
155 struct mutex queue_lock; /* ISOC queue protection */ 155 struct mutex queue_lock; /* ISOC queue protection */
156 __u32 sequence; /* frame sequence number */ 156 __u32 sequence; /* frame sequence number */
157 char streaming; 157 char streaming;
158#ifdef CONFIG_PM
159 char frozen; /* suspend - resume */
160#endif
158 char users; /* number of opens */ 161 char users; /* number of opens */
159 char present; /* device connected */ 162 char present; /* device connected */
160 char nbufread; /* number of buffers for read() */ 163 char nbufread; /* number of buffers for read() */
@@ -174,6 +177,10 @@ struct gspca_frame *gspca_frame_add(struct gspca_dev *gspca_dev,
174 struct gspca_frame *frame, 177 struct gspca_frame *frame,
175 const __u8 *data, 178 const __u8 *data,
176 int len); 179 int len);
180#ifdef CONFIG_PM
181int gspca_suspend(struct usb_interface *intf, pm_message_t message);
182int gspca_resume(struct usb_interface *intf);
183#endif
177int gspca_auto_gain_n_exposure(struct gspca_dev *gspca_dev, int avg_lum, 184int gspca_auto_gain_n_exposure(struct gspca_dev *gspca_dev, int avg_lum,
178 int desired_avg_lum, int deadzone, int gain_knee, int exposure_knee); 185 int desired_avg_lum, int deadzone, int gain_knee, int exposure_knee);
179#endif /* GSPCAV2_H */ 186#endif /* GSPCAV2_H */
diff --git a/drivers/media/video/gspca/mars.c b/drivers/media/video/gspca/mars.c
index 21c4ee56a10..4d5db47ba8c 100644
--- a/drivers/media/video/gspca/mars.c
+++ b/drivers/media/video/gspca/mars.c
@@ -100,22 +100,6 @@ static int reg_w(struct gspca_dev *gspca_dev,
100 return rc; 100 return rc;
101} 101}
102 102
103static int reg_w_buf(struct gspca_dev *gspca_dev,
104 __u16 index, __u8 *buf, int len)
105{
106 int rc;
107
108 rc = usb_control_msg(gspca_dev->dev,
109 usb_sndbulkpipe(gspca_dev->dev, 4),
110 0x12,
111 0xc8, /* ?? */
112 0, /* value */
113 index, buf, len, 500);
114 if (rc < 0)
115 PDEBUG(D_ERR, "reg write [%02x] error %d", index, rc);
116 return rc;
117}
118
119static void bulk_w(struct gspca_dev *gspca_dev, 103static void bulk_w(struct gspca_dev *gspca_dev,
120 __u16 *pch, 104 __u16 *pch,
121 __u16 Address) 105 __u16 Address)
@@ -144,8 +128,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
144 return 0; 128 return 0;
145} 129}
146 130
147/* this function is called at open time */ 131/* this function is called at probe and resume time */
148static int sd_open(struct gspca_dev *gspca_dev) 132static int sd_init(struct gspca_dev *gspca_dev)
149{ 133{
150 return 0; 134 return 0;
151} 135}
@@ -175,7 +159,6 @@ static void sd_start(struct gspca_dev *gspca_dev)
175 /* 159 /*
176 Initialize the MR97113 chip register 160 Initialize the MR97113 chip register
177 */ 161 */
178 data = kmalloc(16, GFP_KERNEL);
179 data[0] = 0x00; /* address */ 162 data[0] = 0x00; /* address */
180 data[1] = 0x0c | 0x01; /* reg 0 */ 163 data[1] = 0x0c | 0x01; /* reg 0 */
181 data[2] = 0x01; /* reg 1 */ 164 data[2] = 0x01; /* reg 1 */
@@ -195,12 +178,10 @@ static void sd_start(struct gspca_dev *gspca_dev)
195 data[10] = 0x5d; /* reg 9, I2C device address 178 data[10] = 0x5d; /* reg 9, I2C device address
196 * [for PAS5101 (0x40)] [for MI (0x5d)] */ 179 * [for PAS5101 (0x40)] [for MI (0x5d)] */
197 180
198 err_code = reg_w_buf(gspca_dev, data[0], data, 11); 181 err_code = reg_w(gspca_dev, data[0], 11);
199 kfree(data);
200 if (err_code < 0) 182 if (err_code < 0)
201 return; 183 return;
202 184
203 data = gspca_dev->usb_buf;
204 data[0] = 0x23; /* address */ 185 data[0] = 0x23; /* address */
205 data[1] = 0x09; /* reg 35, append frame header */ 186 data[1] = 0x09; /* reg 35, append frame header */
206 187
@@ -358,14 +339,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
358 PDEBUG(D_ERR, "Camera Stop failed"); 339 PDEBUG(D_ERR, "Camera Stop failed");
359} 340}
360 341
361static void sd_stop0(struct gspca_dev *gspca_dev)
362{
363}
364
365static void sd_close(struct gspca_dev *gspca_dev)
366{
367}
368
369static void sd_pkt_scan(struct gspca_dev *gspca_dev, 342static void sd_pkt_scan(struct gspca_dev *gspca_dev,
370 struct gspca_frame *frame, /* target */ 343 struct gspca_frame *frame, /* target */
371 __u8 *data, /* isoc packet */ 344 __u8 *data, /* isoc packet */
@@ -411,11 +384,9 @@ static const struct sd_desc sd_desc = {
411 .ctrls = sd_ctrls, 384 .ctrls = sd_ctrls,
412 .nctrls = ARRAY_SIZE(sd_ctrls), 385 .nctrls = ARRAY_SIZE(sd_ctrls),
413 .config = sd_config, 386 .config = sd_config,
414 .open = sd_open, 387 .init = sd_init,
415 .start = sd_start, 388 .start = sd_start,
416 .stopN = sd_stopN, 389 .stopN = sd_stopN,
417 .stop0 = sd_stop0,
418 .close = sd_close,
419 .pkt_scan = sd_pkt_scan, 390 .pkt_scan = sd_pkt_scan,
420}; 391};
421 392
@@ -439,6 +410,10 @@ static struct usb_driver sd_driver = {
439 .id_table = device_table, 410 .id_table = device_table,
440 .probe = sd_probe, 411 .probe = sd_probe,
441 .disconnect = gspca_disconnect, 412 .disconnect = gspca_disconnect,
413#ifdef CONFIG_PM
414 .suspend = gspca_suspend,
415 .resume = gspca_resume,
416#endif
442}; 417};
443 418
444/* -- module insert / remove -- */ 419/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/ov519.c b/drivers/media/video/gspca/ov519.c
index b4f00ec0885..4df4eec9f7e 100644
--- a/drivers/media/video/gspca/ov519.c
+++ b/drivers/media/video/gspca/ov519.c
@@ -63,11 +63,10 @@ struct sd {
63#define SEN_OV6630 2 63#define SEN_OV6630 2
64#define SEN_OV7610 3 64#define SEN_OV7610 3
65#define SEN_OV7620 4 65#define SEN_OV7620 4
66#define SEN_OV7630 5 66#define SEN_OV7640 5
67#define SEN_OV7640 6 67#define SEN_OV7670 6
68#define SEN_OV7670 7 68#define SEN_OV76BE 7
69#define SEN_OV76BE 8 69#define SEN_OV8610 8
70#define SEN_OV8610 9
71 70
72}; 71};
73 72
@@ -127,6 +126,7 @@ static struct ctrl sd_ctrls[] = {
127 .get = sd_getcolors, 126 .get = sd_getcolors,
128 }, 127 },
129/* next controls work with ov7670 only */ 128/* next controls work with ov7670 only */
129#define HFLIP_IDX 3
130 { 130 {
131 { 131 {
132 .id = V4L2_CID_HFLIP, 132 .id = V4L2_CID_HFLIP,
@@ -141,6 +141,7 @@ static struct ctrl sd_ctrls[] = {
141 .set = sd_sethflip, 141 .set = sd_sethflip,
142 .get = sd_gethflip, 142 .get = sd_gethflip,
143 }, 143 },
144#define VFLIP_IDX 4
144 { 145 {
145 { 146 {
146 .id = V4L2_CID_VFLIP, 147 .id = V4L2_CID_VFLIP,
@@ -293,6 +294,541 @@ static struct v4l2_pix_format sif_mode[] = {
293#define OV7670_REG_HAECC7 0xaa /* Hist AEC/AGC control 7 */ 294#define OV7670_REG_HAECC7 0xaa /* Hist AEC/AGC control 7 */
294#define OV7670_REG_BD60MAX 0xab /* 60hz banding step limit */ 295#define OV7670_REG_BD60MAX 0xab /* 60hz banding step limit */
295 296
297struct ov_regvals {
298 __u8 reg;
299 __u8 val;
300};
301struct ov_i2c_regvals {
302 __u8 reg;
303 __u8 val;
304};
305
306static const struct ov_i2c_regvals norm_6x20[] = {
307 { 0x12, 0x80 }, /* reset */
308 { 0x11, 0x01 },
309 { 0x03, 0x60 },
310 { 0x05, 0x7f }, /* For when autoadjust is off */
311 { 0x07, 0xa8 },
312 /* The ratio of 0x0c and 0x0d controls the white point */
313 { 0x0c, 0x24 },
314 { 0x0d, 0x24 },
315 { 0x0f, 0x15 }, /* COMS */
316 { 0x10, 0x75 }, /* AEC Exposure time */
317 { 0x12, 0x24 }, /* Enable AGC */
318 { 0x14, 0x04 },
319 /* 0x16: 0x06 helps frame stability with moving objects */
320 { 0x16, 0x06 },
321/* { 0x20, 0x30 }, * Aperture correction enable */
322 { 0x26, 0xb2 }, /* BLC enable */
323 /* 0x28: 0x05 Selects RGB format if RGB on */
324 { 0x28, 0x05 },
325 { 0x2a, 0x04 }, /* Disable framerate adjust */
326/* { 0x2b, 0xac }, * Framerate; Set 2a[7] first */
327 { 0x2d, 0x99 },
328 { 0x33, 0xa0 }, /* Color Processing Parameter */
329 { 0x34, 0xd2 }, /* Max A/D range */
330 { 0x38, 0x8b },
331 { 0x39, 0x40 },
332
333 { 0x3c, 0x39 }, /* Enable AEC mode changing */
334 { 0x3c, 0x3c }, /* Change AEC mode */
335 { 0x3c, 0x24 }, /* Disable AEC mode changing */
336
337 { 0x3d, 0x80 },
338 /* These next two registers (0x4a, 0x4b) are undocumented.
339 * They control the color balance */
340 { 0x4a, 0x80 },
341 { 0x4b, 0x80 },
342 { 0x4d, 0xd2 }, /* This reduces noise a bit */
343 { 0x4e, 0xc1 },
344 { 0x4f, 0x04 },
345/* Do 50-53 have any effect? */
346/* Toggle 0x12[2] off and on here? */
347};
348
349static const struct ov_i2c_regvals norm_6x30[] = {
350 { 0x12, 0x80 }, /* Reset */
351 { 0x00, 0x1f }, /* Gain */
352 { 0x01, 0x99 }, /* Blue gain */
353 { 0x02, 0x7c }, /* Red gain */
354 { 0x03, 0xc0 }, /* Saturation */
355 { 0x05, 0x0a }, /* Contrast */
356 { 0x06, 0x95 }, /* Brightness */
357 { 0x07, 0x2d }, /* Sharpness */
358 { 0x0c, 0x20 },
359 { 0x0d, 0x20 },
360 { 0x0e, 0x20 },
361 { 0x0f, 0x05 },
362 { 0x10, 0x9a },
363 { 0x11, 0x00 }, /* Pixel clock = fastest */
364 { 0x12, 0x24 }, /* Enable AGC and AWB */
365 { 0x13, 0x21 },
366 { 0x14, 0x80 },
367 { 0x15, 0x01 },
368 { 0x16, 0x03 },
369 { 0x17, 0x38 },
370 { 0x18, 0xea },
371 { 0x19, 0x04 },
372 { 0x1a, 0x93 },
373 { 0x1b, 0x00 },
374 { 0x1e, 0xc4 },
375 { 0x1f, 0x04 },
376 { 0x20, 0x20 },
377 { 0x21, 0x10 },
378 { 0x22, 0x88 },
379 { 0x23, 0xc0 }, /* Crystal circuit power level */
380 { 0x25, 0x9a }, /* Increase AEC black ratio */
381 { 0x26, 0xb2 }, /* BLC enable */
382 { 0x27, 0xa2 },
383 { 0x28, 0x00 },
384 { 0x29, 0x00 },
385 { 0x2a, 0x84 }, /* 60 Hz power */
386 { 0x2b, 0xa8 }, /* 60 Hz power */
387 { 0x2c, 0xa0 },
388 { 0x2d, 0x95 }, /* Enable auto-brightness */
389 { 0x2e, 0x88 },
390 { 0x33, 0x26 },
391 { 0x34, 0x03 },
392 { 0x36, 0x8f },
393 { 0x37, 0x80 },
394 { 0x38, 0x83 },
395 { 0x39, 0x80 },
396 { 0x3a, 0x0f },
397 { 0x3b, 0x3c },
398 { 0x3c, 0x1a },
399 { 0x3d, 0x80 },
400 { 0x3e, 0x80 },
401 { 0x3f, 0x0e },
402 { 0x40, 0x00 }, /* White bal */
403 { 0x41, 0x00 }, /* White bal */
404 { 0x42, 0x80 },
405 { 0x43, 0x3f }, /* White bal */
406 { 0x44, 0x80 },
407 { 0x45, 0x20 },
408 { 0x46, 0x20 },
409 { 0x47, 0x80 },
410 { 0x48, 0x7f },
411 { 0x49, 0x00 },
412 { 0x4a, 0x00 },
413 { 0x4b, 0x80 },
414 { 0x4c, 0xd0 },
415 { 0x4d, 0x10 }, /* U = 0.563u, V = 0.714v */
416 { 0x4e, 0x40 },
417 { 0x4f, 0x07 }, /* UV avg., col. killer: max */
418 { 0x50, 0xff },
419 { 0x54, 0x23 }, /* Max AGC gain: 18dB */
420 { 0x55, 0xff },
421 { 0x56, 0x12 },
422 { 0x57, 0x81 },
423 { 0x58, 0x75 },
424 { 0x59, 0x01 }, /* AGC dark current comp.: +1 */
425 { 0x5a, 0x2c },
426 { 0x5b, 0x0f }, /* AWB chrominance levels */
427 { 0x5c, 0x10 },
428 { 0x3d, 0x80 },
429 { 0x27, 0xa6 },
430 { 0x12, 0x20 }, /* Toggle AWB */
431 { 0x12, 0x24 },
432};
433
434/* Lawrence Glaister <lg@jfm.bc.ca> reports:
435 *
436 * Register 0x0f in the 7610 has the following effects:
437 *
438 * 0x85 (AEC method 1): Best overall, good contrast range
439 * 0x45 (AEC method 2): Very overexposed
440 * 0xa5 (spec sheet default): Ok, but the black level is
441 * shifted resulting in loss of contrast
442 * 0x05 (old driver setting): very overexposed, too much
443 * contrast
444 */
445static const struct ov_i2c_regvals norm_7610[] = {
446 { 0x10, 0xff },
447 { 0x16, 0x06 },
448 { 0x28, 0x24 },
449 { 0x2b, 0xac },
450 { 0x12, 0x00 },
451 { 0x38, 0x81 },
452 { 0x28, 0x24 }, /* 0c */
453 { 0x0f, 0x85 }, /* lg's setting */
454 { 0x15, 0x01 },
455 { 0x20, 0x1c },
456 { 0x23, 0x2a },
457 { 0x24, 0x10 },
458 { 0x25, 0x8a },
459 { 0x26, 0xa2 },
460 { 0x27, 0xc2 },
461 { 0x2a, 0x04 },
462 { 0x2c, 0xfe },
463 { 0x2d, 0x93 },
464 { 0x30, 0x71 },
465 { 0x31, 0x60 },
466 { 0x32, 0x26 },
467 { 0x33, 0x20 },
468 { 0x34, 0x48 },
469 { 0x12, 0x24 },
470 { 0x11, 0x01 },
471 { 0x0c, 0x24 },
472 { 0x0d, 0x24 },
473};
474
475static const struct ov_i2c_regvals norm_7620[] = {
476 { 0x00, 0x00 }, /* gain */
477 { 0x01, 0x80 }, /* blue gain */
478 { 0x02, 0x80 }, /* red gain */
479 { 0x03, 0xc0 }, /* OV7670_REG_VREF */
480 { 0x06, 0x60 },
481 { 0x07, 0x00 },
482 { 0x0c, 0x24 },
483 { 0x0c, 0x24 },
484 { 0x0d, 0x24 },
485 { 0x11, 0x01 },
486 { 0x12, 0x24 },
487 { 0x13, 0x01 },
488 { 0x14, 0x84 },
489 { 0x15, 0x01 },
490 { 0x16, 0x03 },
491 { 0x17, 0x2f },
492 { 0x18, 0xcf },
493 { 0x19, 0x06 },
494 { 0x1a, 0xf5 },
495 { 0x1b, 0x00 },
496 { 0x20, 0x18 },
497 { 0x21, 0x80 },
498 { 0x22, 0x80 },
499 { 0x23, 0x00 },
500 { 0x26, 0xa2 },
501 { 0x27, 0xea },
502 { 0x28, 0x20 },
503 { 0x29, 0x00 },
504 { 0x2a, 0x10 },
505 { 0x2b, 0x00 },
506 { 0x2c, 0x88 },
507 { 0x2d, 0x91 },
508 { 0x2e, 0x80 },
509 { 0x2f, 0x44 },
510 { 0x60, 0x27 },
511 { 0x61, 0x02 },
512 { 0x62, 0x5f },
513 { 0x63, 0xd5 },
514 { 0x64, 0x57 },
515 { 0x65, 0x83 },
516 { 0x66, 0x55 },
517 { 0x67, 0x92 },
518 { 0x68, 0xcf },
519 { 0x69, 0x76 },
520 { 0x6a, 0x22 },
521 { 0x6b, 0x00 },
522 { 0x6c, 0x02 },
523 { 0x6d, 0x44 },
524 { 0x6e, 0x80 },
525 { 0x6f, 0x1d },
526 { 0x70, 0x8b },
527 { 0x71, 0x00 },
528 { 0x72, 0x14 },
529 { 0x73, 0x54 },
530 { 0x74, 0x00 },
531 { 0x75, 0x8e },
532 { 0x76, 0x00 },
533 { 0x77, 0xff },
534 { 0x78, 0x80 },
535 { 0x79, 0x80 },
536 { 0x7a, 0x80 },
537 { 0x7b, 0xe2 },
538 { 0x7c, 0x00 },
539};
540
541/* 7640 and 7648. The defaults should be OK for most registers. */
542static const struct ov_i2c_regvals norm_7640[] = {
543 { 0x12, 0x80 },
544 { 0x12, 0x14 },
545};
546
547/* 7670. Defaults taken from OmniVision provided data,
548* as provided by Jonathan Corbet of OLPC */
549static const struct ov_i2c_regvals norm_7670[] = {
550 { OV7670_REG_COM7, OV7670_COM7_RESET },
551 { OV7670_REG_TSLB, 0x04 }, /* OV */
552 { OV7670_REG_COM7, OV7670_COM7_FMT_VGA }, /* VGA */
553 { OV7670_REG_CLKRC, 0x01 },
554/*
555 * Set the hardware window. These values from OV don't entirely
556 * make sense - hstop is less than hstart. But they work...
557 */
558 { OV7670_REG_HSTART, 0x13 },
559 { OV7670_REG_HSTOP, 0x01 },
560 { OV7670_REG_HREF, 0xb6 },
561 { OV7670_REG_VSTART, 0x02 },
562 { OV7670_REG_VSTOP, 0x7a },
563 { OV7670_REG_VREF, 0x0a },
564
565 { OV7670_REG_COM3, 0 },
566 { OV7670_REG_COM14, 0 },
567/* Mystery scaling numbers */
568 { 0x70, 0x3a },
569 { 0x71, 0x35 },
570 { 0x72, 0x11 },
571 { 0x73, 0xf0 },
572 { 0xa2, 0x02 },
573/* { OV7670_REG_COM10, 0x0 }, */
574
575/* Gamma curve values */
576 { 0x7a, 0x20 },
577 { 0x7b, 0x10 },
578 { 0x7c, 0x1e },
579 { 0x7d, 0x35 },
580 { 0x7e, 0x5a },
581 { 0x7f, 0x69 },
582 { 0x80, 0x76 },
583 { 0x81, 0x80 },
584 { 0x82, 0x88 },
585 { 0x83, 0x8f },
586 { 0x84, 0x96 },
587 { 0x85, 0xa3 },
588 { 0x86, 0xaf },
589 { 0x87, 0xc4 },
590 { 0x88, 0xd7 },
591 { 0x89, 0xe8 },
592
593/* AGC and AEC parameters. Note we start by disabling those features,
594 then turn them only after tweaking the values. */
595 { OV7670_REG_COM8, OV7670_COM8_FASTAEC
596 | OV7670_COM8_AECSTEP
597 | OV7670_COM8_BFILT },
598 { OV7670_REG_GAIN, 0 },
599 { OV7670_REG_AECH, 0 },
600 { OV7670_REG_COM4, 0x40 }, /* magic reserved bit */
601 { OV7670_REG_COM9, 0x18 }, /* 4x gain + magic rsvd bit */
602 { OV7670_REG_BD50MAX, 0x05 },
603 { OV7670_REG_BD60MAX, 0x07 },
604 { OV7670_REG_AEW, 0x95 },
605 { OV7670_REG_AEB, 0x33 },
606 { OV7670_REG_VPT, 0xe3 },
607 { OV7670_REG_HAECC1, 0x78 },
608 { OV7670_REG_HAECC2, 0x68 },
609 { 0xa1, 0x03 }, /* magic */
610 { OV7670_REG_HAECC3, 0xd8 },
611 { OV7670_REG_HAECC4, 0xd8 },
612 { OV7670_REG_HAECC5, 0xf0 },
613 { OV7670_REG_HAECC6, 0x90 },
614 { OV7670_REG_HAECC7, 0x94 },
615 { OV7670_REG_COM8, OV7670_COM8_FASTAEC
616 | OV7670_COM8_AECSTEP
617 | OV7670_COM8_BFILT
618 | OV7670_COM8_AGC
619 | OV7670_COM8_AEC },
620
621/* Almost all of these are magic "reserved" values. */
622 { OV7670_REG_COM5, 0x61 },
623 { OV7670_REG_COM6, 0x4b },
624 { 0x16, 0x02 },
625 { OV7670_REG_MVFP, 0x07 },
626 { 0x21, 0x02 },
627 { 0x22, 0x91 },
628 { 0x29, 0x07 },
629 { 0x33, 0x0b },
630 { 0x35, 0x0b },
631 { 0x37, 0x1d },
632 { 0x38, 0x71 },
633 { 0x39, 0x2a },
634 { OV7670_REG_COM12, 0x78 },
635 { 0x4d, 0x40 },
636 { 0x4e, 0x20 },
637 { OV7670_REG_GFIX, 0 },
638 { 0x6b, 0x4a },
639 { 0x74, 0x10 },
640 { 0x8d, 0x4f },
641 { 0x8e, 0 },
642 { 0x8f, 0 },
643 { 0x90, 0 },
644 { 0x91, 0 },
645 { 0x96, 0 },
646 { 0x9a, 0 },
647 { 0xb0, 0x84 },
648 { 0xb1, 0x0c },
649 { 0xb2, 0x0e },
650 { 0xb3, 0x82 },
651 { 0xb8, 0x0a },
652
653/* More reserved magic, some of which tweaks white balance */
654 { 0x43, 0x0a },
655 { 0x44, 0xf0 },
656 { 0x45, 0x34 },
657 { 0x46, 0x58 },
658 { 0x47, 0x28 },
659 { 0x48, 0x3a },
660 { 0x59, 0x88 },
661 { 0x5a, 0x88 },
662 { 0x5b, 0x44 },
663 { 0x5c, 0x67 },
664 { 0x5d, 0x49 },
665 { 0x5e, 0x0e },
666 { 0x6c, 0x0a },
667 { 0x6d, 0x55 },
668 { 0x6e, 0x11 },
669 { 0x6f, 0x9f },
670 /* "9e for advance AWB" */
671 { 0x6a, 0x40 },
672 { OV7670_REG_BLUE, 0x40 },
673 { OV7670_REG_RED, 0x60 },
674 { OV7670_REG_COM8, OV7670_COM8_FASTAEC
675 | OV7670_COM8_AECSTEP
676 | OV7670_COM8_BFILT
677 | OV7670_COM8_AGC
678 | OV7670_COM8_AEC
679 | OV7670_COM8_AWB },
680
681/* Matrix coefficients */
682 { 0x4f, 0x80 },
683 { 0x50, 0x80 },
684 { 0x51, 0 },
685 { 0x52, 0x22 },
686 { 0x53, 0x5e },
687 { 0x54, 0x80 },
688 { 0x58, 0x9e },
689
690 { OV7670_REG_COM16, OV7670_COM16_AWBGAIN },
691 { OV7670_REG_EDGE, 0 },
692 { 0x75, 0x05 },
693 { 0x76, 0xe1 },
694 { 0x4c, 0 },
695 { 0x77, 0x01 },
696 { OV7670_REG_COM13, OV7670_COM13_GAMMA
697 | OV7670_COM13_UVSAT
698 | 2}, /* was 3 */
699 { 0x4b, 0x09 },
700 { 0xc9, 0x60 },
701 { OV7670_REG_COM16, 0x38 },
702 { 0x56, 0x40 },
703
704 { 0x34, 0x11 },
705 { OV7670_REG_COM11, OV7670_COM11_EXP|OV7670_COM11_HZAUTO },
706 { 0xa4, 0x88 },
707 { 0x96, 0 },
708 { 0x97, 0x30 },
709 { 0x98, 0x20 },
710 { 0x99, 0x30 },
711 { 0x9a, 0x84 },
712 { 0x9b, 0x29 },
713 { 0x9c, 0x03 },
714 { 0x9d, 0x4c },
715 { 0x9e, 0x3f },
716 { 0x78, 0x04 },
717
718/* Extra-weird stuff. Some sort of multiplexor register */
719 { 0x79, 0x01 },
720 { 0xc8, 0xf0 },
721 { 0x79, 0x0f },
722 { 0xc8, 0x00 },
723 { 0x79, 0x10 },
724 { 0xc8, 0x7e },
725 { 0x79, 0x0a },
726 { 0xc8, 0x80 },
727 { 0x79, 0x0b },
728 { 0xc8, 0x01 },
729 { 0x79, 0x0c },
730 { 0xc8, 0x0f },
731 { 0x79, 0x0d },
732 { 0xc8, 0x20 },
733 { 0x79, 0x09 },
734 { 0xc8, 0x80 },
735 { 0x79, 0x02 },
736 { 0xc8, 0xc0 },
737 { 0x79, 0x03 },
738 { 0xc8, 0x40 },
739 { 0x79, 0x05 },
740 { 0xc8, 0x30 },
741 { 0x79, 0x26 },
742};
743
744static const struct ov_i2c_regvals norm_8610[] = {
745 { 0x12, 0x80 },
746 { 0x00, 0x00 },
747 { 0x01, 0x80 },
748 { 0x02, 0x80 },
749 { 0x03, 0xc0 },
750 { 0x04, 0x30 },
751 { 0x05, 0x30 }, /* was 0x10, new from windrv 090403 */
752 { 0x06, 0x70 }, /* was 0x80, new from windrv 090403 */
753 { 0x0a, 0x86 },
754 { 0x0b, 0xb0 },
755 { 0x0c, 0x20 },
756 { 0x0d, 0x20 },
757 { 0x11, 0x01 },
758 { 0x12, 0x25 },
759 { 0x13, 0x01 },
760 { 0x14, 0x04 },
761 { 0x15, 0x01 }, /* Lin and Win think different about UV order */
762 { 0x16, 0x03 },
763 { 0x17, 0x38 }, /* was 0x2f, new from windrv 090403 */
764 { 0x18, 0xea }, /* was 0xcf, new from windrv 090403 */
765 { 0x19, 0x02 }, /* was 0x06, new from windrv 090403 */
766 { 0x1a, 0xf5 },
767 { 0x1b, 0x00 },
768 { 0x20, 0xd0 }, /* was 0x90, new from windrv 090403 */
769 { 0x23, 0xc0 }, /* was 0x00, new from windrv 090403 */
770 { 0x24, 0x30 }, /* was 0x1d, new from windrv 090403 */
771 { 0x25, 0x50 }, /* was 0x57, new from windrv 090403 */
772 { 0x26, 0xa2 },
773 { 0x27, 0xea },
774 { 0x28, 0x00 },
775 { 0x29, 0x00 },
776 { 0x2a, 0x80 },
777 { 0x2b, 0xc8 }, /* was 0xcc, new from windrv 090403 */
778 { 0x2c, 0xac },
779 { 0x2d, 0x45 }, /* was 0xd5, new from windrv 090403 */
780 { 0x2e, 0x80 },
781 { 0x2f, 0x14 }, /* was 0x01, new from windrv 090403 */
782 { 0x4c, 0x00 },
783 { 0x4d, 0x30 }, /* was 0x10, new from windrv 090403 */
784 { 0x60, 0x02 }, /* was 0x01, new from windrv 090403 */
785 { 0x61, 0x00 }, /* was 0x09, new from windrv 090403 */
786 { 0x62, 0x5f }, /* was 0xd7, new from windrv 090403 */
787 { 0x63, 0xff },
788 { 0x64, 0x53 }, /* new windrv 090403 says 0x57,
789 * maybe thats wrong */
790 { 0x65, 0x00 },
791 { 0x66, 0x55 },
792 { 0x67, 0xb0 },
793 { 0x68, 0xc0 }, /* was 0xaf, new from windrv 090403 */
794 { 0x69, 0x02 },
795 { 0x6a, 0x22 },
796 { 0x6b, 0x00 },
797 { 0x6c, 0x99 }, /* was 0x80, old windrv says 0x00, but
798 * deleting bit7 colors the first images red */
799 { 0x6d, 0x11 }, /* was 0x00, new from windrv 090403 */
800 { 0x6e, 0x11 }, /* was 0x00, new from windrv 090403 */
801 { 0x6f, 0x01 },
802 { 0x70, 0x8b },
803 { 0x71, 0x00 },
804 { 0x72, 0x14 },
805 { 0x73, 0x54 },
806 { 0x74, 0x00 },/* 0x60? - was 0x00, new from windrv 090403 */
807 { 0x75, 0x0e },
808 { 0x76, 0x02 }, /* was 0x02, new from windrv 090403 */
809 { 0x77, 0xff },
810 { 0x78, 0x80 },
811 { 0x79, 0x80 },
812 { 0x7a, 0x80 },
813 { 0x7b, 0x10 }, /* was 0x13, new from windrv 090403 */
814 { 0x7c, 0x00 },
815 { 0x7d, 0x08 }, /* was 0x09, new from windrv 090403 */
816 { 0x7e, 0x08 }, /* was 0xc0, new from windrv 090403 */
817 { 0x7f, 0xfb },
818 { 0x80, 0x28 },
819 { 0x81, 0x00 },
820 { 0x82, 0x23 },
821 { 0x83, 0x0b },
822 { 0x84, 0x00 },
823 { 0x85, 0x62 }, /* was 0x61, new from windrv 090403 */
824 { 0x86, 0xc9 },
825 { 0x87, 0x00 },
826 { 0x88, 0x00 },
827 { 0x89, 0x01 },
828 { 0x12, 0x20 },
829 { 0x12, 0x25 }, /* was 0x24, new from windrv 090403 */
830};
831
296static unsigned char ov7670_abs_to_sm(unsigned char v) 832static unsigned char ov7670_abs_to_sm(unsigned char v)
297{ 833{
298 if (v > 127) 834 if (v > 127)
@@ -537,18 +1073,10 @@ static int ov51x_set_slave_ids(struct sd *sd,
537 rc = reg_w(sd, R51x_I2C_W_SID, slave); 1073 rc = reg_w(sd, R51x_I2C_W_SID, slave);
538 if (rc < 0) 1074 if (rc < 0)
539 return rc; 1075 return rc;
1076 sd->primary_i2c_slave = slave;
540 return reg_w(sd, R51x_I2C_R_SID, slave + 1); 1077 return reg_w(sd, R51x_I2C_R_SID, slave + 1);
541} 1078}
542 1079
543struct ov_regvals {
544 __u8 reg;
545 __u8 val;
546};
547struct ov_i2c_regvals {
548 __u8 reg;
549 __u8 val;
550};
551
552static int write_regvals(struct sd *sd, 1080static int write_regvals(struct sd *sd,
553 const struct ov_regvals *regvals, 1081 const struct ov_regvals *regvals,
554 int n) 1082 int n)
@@ -591,101 +1119,9 @@ static int write_i2c_regvals(struct sd *sd,
591static int ov8xx0_configure(struct sd *sd) 1119static int ov8xx0_configure(struct sd *sd)
592{ 1120{
593 int rc; 1121 int rc;
594 static const struct ov_i2c_regvals norm_8610[] = {
595 { 0x12, 0x80 },
596 { 0x00, 0x00 },
597 { 0x01, 0x80 },
598 { 0x02, 0x80 },
599 { 0x03, 0xc0 },
600 { 0x04, 0x30 },
601 { 0x05, 0x30 }, /* was 0x10, new from windrv 090403 */
602 { 0x06, 0x70 }, /* was 0x80, new from windrv 090403 */
603 { 0x0a, 0x86 },
604 { 0x0b, 0xb0 },
605 { 0x0c, 0x20 },
606 { 0x0d, 0x20 },
607 { 0x11, 0x01 },
608 { 0x12, 0x25 },
609 { 0x13, 0x01 },
610 { 0x14, 0x04 },
611 { 0x15, 0x01 }, /* Lin and Win think different about UV order */
612 { 0x16, 0x03 },
613 { 0x17, 0x38 }, /* was 0x2f, new from windrv 090403 */
614 { 0x18, 0xea }, /* was 0xcf, new from windrv 090403 */
615 { 0x19, 0x02 }, /* was 0x06, new from windrv 090403 */
616 { 0x1a, 0xf5 },
617 { 0x1b, 0x00 },
618 { 0x20, 0xd0 }, /* was 0x90, new from windrv 090403 */
619 { 0x23, 0xc0 }, /* was 0x00, new from windrv 090403 */
620 { 0x24, 0x30 }, /* was 0x1d, new from windrv 090403 */
621 { 0x25, 0x50 }, /* was 0x57, new from windrv 090403 */
622 { 0x26, 0xa2 },
623 { 0x27, 0xea },
624 { 0x28, 0x00 },
625 { 0x29, 0x00 },
626 { 0x2a, 0x80 },
627 { 0x2b, 0xc8 }, /* was 0xcc, new from windrv 090403 */
628 { 0x2c, 0xac },
629 { 0x2d, 0x45 }, /* was 0xd5, new from windrv 090403 */
630 { 0x2e, 0x80 },
631 { 0x2f, 0x14 }, /* was 0x01, new from windrv 090403 */
632 { 0x4c, 0x00 },
633 { 0x4d, 0x30 }, /* was 0x10, new from windrv 090403 */
634 { 0x60, 0x02 }, /* was 0x01, new from windrv 090403 */
635 { 0x61, 0x00 }, /* was 0x09, new from windrv 090403 */
636 { 0x62, 0x5f }, /* was 0xd7, new from windrv 090403 */
637 { 0x63, 0xff },
638 { 0x64, 0x53 }, /* new windrv 090403 says 0x57,
639 * maybe thats wrong */
640 { 0x65, 0x00 },
641 { 0x66, 0x55 },
642 { 0x67, 0xb0 },
643 { 0x68, 0xc0 }, /* was 0xaf, new from windrv 090403 */
644 { 0x69, 0x02 },
645 { 0x6a, 0x22 },
646 { 0x6b, 0x00 },
647 { 0x6c, 0x99 }, /* was 0x80, old windrv says 0x00, but
648 deleting bit7 colors the first images red */
649 { 0x6d, 0x11 }, /* was 0x00, new from windrv 090403 */
650 { 0x6e, 0x11 }, /* was 0x00, new from windrv 090403 */
651 { 0x6f, 0x01 },
652 { 0x70, 0x8b },
653 { 0x71, 0x00 },
654 { 0x72, 0x14 },
655 { 0x73, 0x54 },
656 { 0x74, 0x00 },/* 0x60? - was 0x00, new from windrv 090403 */
657 { 0x75, 0x0e },
658 { 0x76, 0x02 }, /* was 0x02, new from windrv 090403 */
659 { 0x77, 0xff },
660 { 0x78, 0x80 },
661 { 0x79, 0x80 },
662 { 0x7a, 0x80 },
663 { 0x7b, 0x10 }, /* was 0x13, new from windrv 090403 */
664 { 0x7c, 0x00 },
665 { 0x7d, 0x08 }, /* was 0x09, new from windrv 090403 */
666 { 0x7e, 0x08 }, /* was 0xc0, new from windrv 090403 */
667 { 0x7f, 0xfb },
668 { 0x80, 0x28 },
669 { 0x81, 0x00 },
670 { 0x82, 0x23 },
671 { 0x83, 0x0b },
672 { 0x84, 0x00 },
673 { 0x85, 0x62 }, /* was 0x61, new from windrv 090403 */
674 { 0x86, 0xc9 },
675 { 0x87, 0x00 },
676 { 0x88, 0x00 },
677 { 0x89, 0x01 },
678 { 0x12, 0x20 },
679 { 0x12, 0x25 }, /* was 0x24, new from windrv 090403 */
680 };
681 1122
682 PDEBUG(D_PROBE, "starting ov8xx0 configuration"); 1123 PDEBUG(D_PROBE, "starting ov8xx0 configuration");
683 1124
684 if (init_ov_sensor(sd) < 0)
685 PDEBUG(D_ERR|D_PROBE, "Failed to read sensor ID");
686 else
687 PDEBUG(D_PROBE, "OV86x0 initialized");
688
689 /* Detect sensor (sub)type */ 1125 /* Detect sensor (sub)type */
690 rc = i2c_r(sd, OV7610_REG_COM_I); 1126 rc = i2c_r(sd, OV7610_REG_COM_I);
691 if (rc < 0) { 1127 if (rc < 0) {
@@ -698,9 +1134,6 @@ static int ov8xx0_configure(struct sd *sd)
698 PDEBUG(D_ERR, "Unknown image sensor version: %d", rc & 3); 1134 PDEBUG(D_ERR, "Unknown image sensor version: %d", rc & 3);
699 return -1; 1135 return -1;
700 } 1136 }
701 PDEBUG(D_PROBE, "Writing 8610 registers");
702 if (write_i2c_regvals(sd, norm_8610, ARRAY_SIZE(norm_8610)))
703 return -1;
704 1137
705 /* Set sensor-specific vars */ 1138 /* Set sensor-specific vars */
706/* sd->sif = 0; already done */ 1139/* sd->sif = 0; already done */
@@ -714,252 +1147,6 @@ static int ov7xx0_configure(struct sd *sd)
714{ 1147{
715 int rc, high, low; 1148 int rc, high, low;
716 1149
717 /* Lawrence Glaister <lg@jfm.bc.ca> reports:
718 *
719 * Register 0x0f in the 7610 has the following effects:
720 *
721 * 0x85 (AEC method 1): Best overall, good contrast range
722 * 0x45 (AEC method 2): Very overexposed
723 * 0xa5 (spec sheet default): Ok, but the black level is
724 * shifted resulting in loss of contrast
725 * 0x05 (old driver setting): very overexposed, too much
726 * contrast
727 */
728 static const struct ov_i2c_regvals norm_7610[] = {
729 { 0x10, 0xff },
730 { 0x16, 0x06 },
731 { 0x28, 0x24 },
732 { 0x2b, 0xac },
733 { 0x12, 0x00 },
734 { 0x38, 0x81 },
735 { 0x28, 0x24 }, /* 0c */
736 { 0x0f, 0x85 }, /* lg's setting */
737 { 0x15, 0x01 },
738 { 0x20, 0x1c },
739 { 0x23, 0x2a },
740 { 0x24, 0x10 },
741 { 0x25, 0x8a },
742 { 0x26, 0xa2 },
743 { 0x27, 0xc2 },
744 { 0x2a, 0x04 },
745 { 0x2c, 0xfe },
746 { 0x2d, 0x93 },
747 { 0x30, 0x71 },
748 { 0x31, 0x60 },
749 { 0x32, 0x26 },
750 { 0x33, 0x20 },
751 { 0x34, 0x48 },
752 { 0x12, 0x24 },
753 { 0x11, 0x01 },
754 { 0x0c, 0x24 },
755 { 0x0d, 0x24 },
756 };
757
758 static const struct ov_i2c_regvals norm_7620[] = {
759 { 0x00, 0x00 }, /* gain */
760 { 0x01, 0x80 }, /* blue gain */
761 { 0x02, 0x80 }, /* red gain */
762 { 0x03, 0xc0 }, /* OV7670_REG_VREF */
763 { 0x06, 0x60 },
764 { 0x07, 0x00 },
765 { 0x0c, 0x24 },
766 { 0x0c, 0x24 },
767 { 0x0d, 0x24 },
768 { 0x11, 0x01 },
769 { 0x12, 0x24 },
770 { 0x13, 0x01 },
771 { 0x14, 0x84 },
772 { 0x15, 0x01 },
773 { 0x16, 0x03 },
774 { 0x17, 0x2f },
775 { 0x18, 0xcf },
776 { 0x19, 0x06 },
777 { 0x1a, 0xf5 },
778 { 0x1b, 0x00 },
779 { 0x20, 0x18 },
780 { 0x21, 0x80 },
781 { 0x22, 0x80 },
782 { 0x23, 0x00 },
783 { 0x26, 0xa2 },
784 { 0x27, 0xea },
785 { 0x28, 0x20 },
786 { 0x29, 0x00 },
787 { 0x2a, 0x10 },
788 { 0x2b, 0x00 },
789 { 0x2c, 0x88 },
790 { 0x2d, 0x91 },
791 { 0x2e, 0x80 },
792 { 0x2f, 0x44 },
793 { 0x60, 0x27 },
794 { 0x61, 0x02 },
795 { 0x62, 0x5f },
796 { 0x63, 0xd5 },
797 { 0x64, 0x57 },
798 { 0x65, 0x83 },
799 { 0x66, 0x55 },
800 { 0x67, 0x92 },
801 { 0x68, 0xcf },
802 { 0x69, 0x76 },
803 { 0x6a, 0x22 },
804 { 0x6b, 0x00 },
805 { 0x6c, 0x02 },
806 { 0x6d, 0x44 },
807 { 0x6e, 0x80 },
808 { 0x6f, 0x1d },
809 { 0x70, 0x8b },
810 { 0x71, 0x00 },
811 { 0x72, 0x14 },
812 { 0x73, 0x54 },
813 { 0x74, 0x00 },
814 { 0x75, 0x8e },
815 { 0x76, 0x00 },
816 { 0x77, 0xff },
817 { 0x78, 0x80 },
818 { 0x79, 0x80 },
819 { 0x7a, 0x80 },
820 { 0x7b, 0xe2 },
821 { 0x7c, 0x00 },
822 };
823
824 /* 7640 and 7648. The defaults should be OK for most registers. */
825 static const struct ov_i2c_regvals norm_7640[] = {
826 { 0x12, 0x80 },
827 { 0x12, 0x14 },
828 };
829
830 /* 7670. Defaults taken from OmniVision provided data,
831 * as provided by Jonathan Corbet of OLPC */
832 static const struct ov_i2c_regvals norm_7670[] = {
833 { OV7670_REG_COM7, OV7670_COM7_RESET },
834 { OV7670_REG_TSLB, 0x04 }, /* OV */
835 { OV7670_REG_COM7, OV7670_COM7_FMT_VGA }, /* VGA */
836 { OV7670_REG_CLKRC, 0x01 },
837 /*
838 * Set the hardware window. These values from OV don't entirely
839 * make sense - hstop is less than hstart. But they work...
840 */
841 { OV7670_REG_HSTART, 0x13 }, { OV7670_REG_HSTOP, 0x01 },
842 { OV7670_REG_HREF, 0xb6 }, { OV7670_REG_VSTART, 0x02 },
843 { OV7670_REG_VSTOP, 0x7a }, { OV7670_REG_VREF, 0x0a },
844
845 { OV7670_REG_COM3, 0 }, { OV7670_REG_COM14, 0 },
846 /* Mystery scaling numbers */
847 { 0x70, 0x3a }, { 0x71, 0x35 },
848 { 0x72, 0x11 }, { 0x73, 0xf0 },
849 { 0xa2, 0x02 },
850/* { OV7670_REG_COM10, 0x0 }, */
851
852 /* Gamma curve values */
853 { 0x7a, 0x20 },
854 { 0x7b, 0x10 },
855 { 0x7c, 0x1e },
856 { 0x7d, 0x35 },
857 { 0x7e, 0x5a }, { 0x7f, 0x69 },
858 { 0x80, 0x76 }, { 0x81, 0x80 },
859 { 0x82, 0x88 }, { 0x83, 0x8f },
860 { 0x84, 0x96 }, { 0x85, 0xa3 },
861 { 0x86, 0xaf }, { 0x87, 0xc4 },
862 { 0x88, 0xd7 }, { 0x89, 0xe8 },
863
864 /* AGC and AEC parameters. Note we start by disabling those features,
865 then turn them only after tweaking the values. */
866 { OV7670_REG_COM8, OV7670_COM8_FASTAEC
867 | OV7670_COM8_AECSTEP
868 | OV7670_COM8_BFILT },
869 { OV7670_REG_GAIN, 0 }, { OV7670_REG_AECH, 0 },
870 { OV7670_REG_COM4, 0x40 }, /* magic reserved bit */
871 { OV7670_REG_COM9, 0x18 }, /* 4x gain + magic rsvd bit */
872 { OV7670_REG_BD50MAX, 0x05 }, { OV7670_REG_BD60MAX, 0x07 },
873 { OV7670_REG_AEW, 0x95 }, { OV7670_REG_AEB, 0x33 },
874 { OV7670_REG_VPT, 0xe3 }, { OV7670_REG_HAECC1, 0x78 },
875 { OV7670_REG_HAECC2, 0x68 },
876 { 0xa1, 0x03 }, /* magic */
877 { OV7670_REG_HAECC3, 0xd8 }, { OV7670_REG_HAECC4, 0xd8 },
878 { OV7670_REG_HAECC5, 0xf0 }, { OV7670_REG_HAECC6, 0x90 },
879 { OV7670_REG_HAECC7, 0x94 },
880 { OV7670_REG_COM8, OV7670_COM8_FASTAEC
881 | OV7670_COM8_AECSTEP
882 | OV7670_COM8_BFILT
883 | OV7670_COM8_AGC
884 | OV7670_COM8_AEC },
885
886 /* Almost all of these are magic "reserved" values. */
887 { OV7670_REG_COM5, 0x61 }, { OV7670_REG_COM6, 0x4b },
888 { 0x16, 0x02 },
889 { OV7670_REG_MVFP, 0x07 },
890 { 0x21, 0x02 }, { 0x22, 0x91 },
891 { 0x29, 0x07 }, { 0x33, 0x0b },
892 { 0x35, 0x0b }, { 0x37, 0x1d },
893 { 0x38, 0x71 }, { 0x39, 0x2a },
894 { OV7670_REG_COM12, 0x78 }, { 0x4d, 0x40 },
895 { 0x4e, 0x20 }, { OV7670_REG_GFIX, 0 },
896 { 0x6b, 0x4a }, { 0x74, 0x10 },
897 { 0x8d, 0x4f }, { 0x8e, 0 },
898 { 0x8f, 0 }, { 0x90, 0 },
899 { 0x91, 0 }, { 0x96, 0 },
900 { 0x9a, 0 }, { 0xb0, 0x84 },
901 { 0xb1, 0x0c }, { 0xb2, 0x0e },
902 { 0xb3, 0x82 }, { 0xb8, 0x0a },
903
904 /* More reserved magic, some of which tweaks white balance */
905 { 0x43, 0x0a }, { 0x44, 0xf0 },
906 { 0x45, 0x34 }, { 0x46, 0x58 },
907 { 0x47, 0x28 }, { 0x48, 0x3a },
908 { 0x59, 0x88 }, { 0x5a, 0x88 },
909 { 0x5b, 0x44 }, { 0x5c, 0x67 },
910 { 0x5d, 0x49 }, { 0x5e, 0x0e },
911 { 0x6c, 0x0a }, { 0x6d, 0x55 },
912 { 0x6e, 0x11 }, { 0x6f, 0x9f },
913 /* "9e for advance AWB" */
914 { 0x6a, 0x40 }, { OV7670_REG_BLUE, 0x40 },
915 { OV7670_REG_RED, 0x60 },
916 { OV7670_REG_COM8, OV7670_COM8_FASTAEC
917 | OV7670_COM8_AECSTEP
918 | OV7670_COM8_BFILT
919 | OV7670_COM8_AGC
920 | OV7670_COM8_AEC
921 | OV7670_COM8_AWB },
922
923 /* Matrix coefficients */
924 { 0x4f, 0x80 }, { 0x50, 0x80 },
925 { 0x51, 0 }, { 0x52, 0x22 },
926 { 0x53, 0x5e }, { 0x54, 0x80 },
927 { 0x58, 0x9e },
928
929 { OV7670_REG_COM16, OV7670_COM16_AWBGAIN },
930 { OV7670_REG_EDGE, 0 },
931 { 0x75, 0x05 }, { 0x76, 0xe1 },
932 { 0x4c, 0 }, { 0x77, 0x01 },
933 { OV7670_REG_COM13, OV7670_COM13_GAMMA
934 | OV7670_COM13_UVSAT
935 | 2}, /* was 3 */
936 { 0x4b, 0x09 },
937 { 0xc9, 0x60 }, { OV7670_REG_COM16, 0x38 },
938 { 0x56, 0x40 },
939
940 { 0x34, 0x11 },
941 { OV7670_REG_COM11, OV7670_COM11_EXP|OV7670_COM11_HZAUTO },
942 { 0xa4, 0x88 }, { 0x96, 0 },
943 { 0x97, 0x30 }, { 0x98, 0x20 },
944 { 0x99, 0x30 }, { 0x9a, 0x84 },
945 { 0x9b, 0x29 }, { 0x9c, 0x03 },
946 { 0x9d, 0x4c }, { 0x9e, 0x3f },
947 { 0x78, 0x04 },
948
949 /* Extra-weird stuff. Some sort of multiplexor register */
950 { 0x79, 0x01 }, { 0xc8, 0xf0 },
951 { 0x79, 0x0f }, { 0xc8, 0x00 },
952 { 0x79, 0x10 }, { 0xc8, 0x7e },
953 { 0x79, 0x0a }, { 0xc8, 0x80 },
954 { 0x79, 0x0b }, { 0xc8, 0x01 },
955 { 0x79, 0x0c }, { 0xc8, 0x0f },
956 { 0x79, 0x0d }, { 0xc8, 0x20 },
957 { 0x79, 0x09 }, { 0xc8, 0x80 },
958 { 0x79, 0x02 }, { 0xc8, 0xc0 },
959 { 0x79, 0x03 }, { 0xc8, 0x40 },
960 { 0x79, 0x05 }, { 0xc8, 0x30 },
961 { 0x79, 0x26 },
962 };
963 1150
964 PDEBUG(D_PROBE, "starting OV7xx0 configuration"); 1151 PDEBUG(D_PROBE, "starting OV7xx0 configuration");
965 1152
@@ -1011,8 +1198,9 @@ static int ov7xx0_configure(struct sd *sd)
1011 switch (low) { 1198 switch (low) {
1012 case 0x30: 1199 case 0x30:
1013 PDEBUG(D_PROBE, "Sensor is an OV7630/OV7635"); 1200 PDEBUG(D_PROBE, "Sensor is an OV7630/OV7635");
1014 sd->sensor = SEN_OV7630; 1201 PDEBUG(D_ERR,
1015 break; 1202 "7630 is not supported by this driver");
1203 return -1;
1016 case 0x40: 1204 case 0x40:
1017 PDEBUG(D_PROBE, "Sensor is an OV7645"); 1205 PDEBUG(D_PROBE, "Sensor is an OV7645");
1018 sd->sensor = SEN_OV7640; /* FIXME */ 1206 sd->sensor = SEN_OV7640; /* FIXME */
@@ -1038,32 +1226,6 @@ static int ov7xx0_configure(struct sd *sd)
1038 return -1; 1226 return -1;
1039 } 1227 }
1040 1228
1041 switch (sd->sensor) {
1042 case SEN_OV7620:
1043 PDEBUG(D_PROBE, "Writing 7620 registers");
1044 if (write_i2c_regvals(sd, norm_7620, ARRAY_SIZE(norm_7620)))
1045 return -1;
1046 break;
1047 case SEN_OV7630:
1048 PDEBUG(D_ERR, "7630 is not supported by this driver version");
1049 return -1;
1050 case SEN_OV7640:
1051 PDEBUG(D_PROBE, "Writing 7640 registers");
1052 if (write_i2c_regvals(sd, norm_7640, ARRAY_SIZE(norm_7640)))
1053 return -1;
1054 break;
1055 case SEN_OV7670:
1056 PDEBUG(D_PROBE, "Writing 7670 registers");
1057 if (write_i2c_regvals(sd, norm_7670, ARRAY_SIZE(norm_7670)))
1058 return -1;
1059 break;
1060 default:
1061 PDEBUG(D_PROBE, "Writing 7610 registers");
1062 if (write_i2c_regvals(sd, norm_7610, ARRAY_SIZE(norm_7610)))
1063 return -1;
1064 break;
1065 }
1066
1067 /* Set sensor-specific vars */ 1229 /* Set sensor-specific vars */
1068/* sd->sif = 0; already done */ 1230/* sd->sif = 0; already done */
1069 return 0; 1231 return 0;
@@ -1073,141 +1235,7 @@ static int ov7xx0_configure(struct sd *sd)
1073static int ov6xx0_configure(struct sd *sd) 1235static int ov6xx0_configure(struct sd *sd)
1074{ 1236{
1075 int rc; 1237 int rc;
1076 static const struct ov_i2c_regvals norm_6x20[] = { 1238 PDEBUG(D_PROBE, "starting OV6xx0 configuration");
1077 { 0x12, 0x80 }, /* reset */
1078 { 0x11, 0x01 },
1079 { 0x03, 0x60 },
1080 { 0x05, 0x7f }, /* For when autoadjust is off */
1081 { 0x07, 0xa8 },
1082 /* The ratio of 0x0c and 0x0d controls the white point */
1083 { 0x0c, 0x24 },
1084 { 0x0d, 0x24 },
1085 { 0x0f, 0x15 }, /* COMS */
1086 { 0x10, 0x75 }, /* AEC Exposure time */
1087 { 0x12, 0x24 }, /* Enable AGC */
1088 { 0x14, 0x04 },
1089 /* 0x16: 0x06 helps frame stability with moving objects */
1090 { 0x16, 0x06 },
1091/* { 0x20, 0x30 }, * Aperture correction enable */
1092 { 0x26, 0xb2 }, /* BLC enable */
1093 /* 0x28: 0x05 Selects RGB format if RGB on */
1094 { 0x28, 0x05 },
1095 { 0x2a, 0x04 }, /* Disable framerate adjust */
1096/* { 0x2b, 0xac }, * Framerate; Set 2a[7] first */
1097 { 0x2d, 0x99 },
1098 { 0x33, 0xa0 }, /* Color Processing Parameter */
1099 { 0x34, 0xd2 }, /* Max A/D range */
1100 { 0x38, 0x8b },
1101 { 0x39, 0x40 },
1102
1103 { 0x3c, 0x39 }, /* Enable AEC mode changing */
1104 { 0x3c, 0x3c }, /* Change AEC mode */
1105 { 0x3c, 0x24 }, /* Disable AEC mode changing */
1106
1107 { 0x3d, 0x80 },
1108 /* These next two registers (0x4a, 0x4b) are undocumented.
1109 * They control the color balance */
1110 { 0x4a, 0x80 },
1111 { 0x4b, 0x80 },
1112 { 0x4d, 0xd2 }, /* This reduces noise a bit */
1113 { 0x4e, 0xc1 },
1114 { 0x4f, 0x04 },
1115/* Do 50-53 have any effect? */
1116/* Toggle 0x12[2] off and on here? */
1117 };
1118
1119 static const struct ov_i2c_regvals norm_6x30[] = {
1120 { 0x12, 0x80 }, /* Reset */
1121 { 0x00, 0x1f }, /* Gain */
1122 { 0x01, 0x99 }, /* Blue gain */
1123 { 0x02, 0x7c }, /* Red gain */
1124 { 0x03, 0xc0 }, /* Saturation */
1125 { 0x05, 0x0a }, /* Contrast */
1126 { 0x06, 0x95 }, /* Brightness */
1127 { 0x07, 0x2d }, /* Sharpness */
1128 { 0x0c, 0x20 },
1129 { 0x0d, 0x20 },
1130 { 0x0e, 0x20 },
1131 { 0x0f, 0x05 },
1132 { 0x10, 0x9a },
1133 { 0x11, 0x00 }, /* Pixel clock = fastest */
1134 { 0x12, 0x24 }, /* Enable AGC and AWB */
1135 { 0x13, 0x21 },
1136 { 0x14, 0x80 },
1137 { 0x15, 0x01 },
1138 { 0x16, 0x03 },
1139 { 0x17, 0x38 },
1140 { 0x18, 0xea },
1141 { 0x19, 0x04 },
1142 { 0x1a, 0x93 },
1143 { 0x1b, 0x00 },
1144 { 0x1e, 0xc4 },
1145 { 0x1f, 0x04 },
1146 { 0x20, 0x20 },
1147 { 0x21, 0x10 },
1148 { 0x22, 0x88 },
1149 { 0x23, 0xc0 }, /* Crystal circuit power level */
1150 { 0x25, 0x9a }, /* Increase AEC black ratio */
1151 { 0x26, 0xb2 }, /* BLC enable */
1152 { 0x27, 0xa2 },
1153 { 0x28, 0x00 },
1154 { 0x29, 0x00 },
1155 { 0x2a, 0x84 }, /* 60 Hz power */
1156 { 0x2b, 0xa8 }, /* 60 Hz power */
1157 { 0x2c, 0xa0 },
1158 { 0x2d, 0x95 }, /* Enable auto-brightness */
1159 { 0x2e, 0x88 },
1160 { 0x33, 0x26 },
1161 { 0x34, 0x03 },
1162 { 0x36, 0x8f },
1163 { 0x37, 0x80 },
1164 { 0x38, 0x83 },
1165 { 0x39, 0x80 },
1166 { 0x3a, 0x0f },
1167 { 0x3b, 0x3c },
1168 { 0x3c, 0x1a },
1169 { 0x3d, 0x80 },
1170 { 0x3e, 0x80 },
1171 { 0x3f, 0x0e },
1172 { 0x40, 0x00 }, /* White bal */
1173 { 0x41, 0x00 }, /* White bal */
1174 { 0x42, 0x80 },
1175 { 0x43, 0x3f }, /* White bal */
1176 { 0x44, 0x80 },
1177 { 0x45, 0x20 },
1178 { 0x46, 0x20 },
1179 { 0x47, 0x80 },
1180 { 0x48, 0x7f },
1181 { 0x49, 0x00 },
1182 { 0x4a, 0x00 },
1183 { 0x4b, 0x80 },
1184 { 0x4c, 0xd0 },
1185 { 0x4d, 0x10 }, /* U = 0.563u, V = 0.714v */
1186 { 0x4e, 0x40 },
1187 { 0x4f, 0x07 }, /* UV avg., col. killer: max */
1188 { 0x50, 0xff },
1189 { 0x54, 0x23 }, /* Max AGC gain: 18dB */
1190 { 0x55, 0xff },
1191 { 0x56, 0x12 },
1192 { 0x57, 0x81 },
1193 { 0x58, 0x75 },
1194 { 0x59, 0x01 }, /* AGC dark current comp.: +1 */
1195 { 0x5a, 0x2c },
1196 { 0x5b, 0x0f }, /* AWB chrominance levels */
1197 { 0x5c, 0x10 },
1198 { 0x3d, 0x80 },
1199 { 0x27, 0xa6 },
1200 { 0x12, 0x20 }, /* Toggle AWB */
1201 { 0x12, 0x24 },
1202 };
1203
1204 PDEBUG(D_PROBE, "starting sensor configuration");
1205
1206 if (init_ov_sensor(sd) < 0) {
1207 PDEBUG(D_ERR, "Failed to read sensor ID.");
1208 return -1;
1209 }
1210 PDEBUG(D_PROBE, "OV6xx0 sensor detected");
1211 1239
1212 /* Detect sensor (sub)type */ 1240 /* Detect sensor (sub)type */
1213 rc = i2c_r(sd, OV7610_REG_COM_I); 1241 rc = i2c_r(sd, OV7610_REG_COM_I);
@@ -1251,15 +1279,6 @@ static int ov6xx0_configure(struct sd *sd)
1251 /* Set sensor-specific vars */ 1279 /* Set sensor-specific vars */
1252 sd->sif = 1; 1280 sd->sif = 1;
1253 1281
1254 if (sd->sensor == SEN_OV6620) {
1255 PDEBUG(D_PROBE, "Writing 6x20 registers");
1256 if (write_i2c_regvals(sd, norm_6x20, ARRAY_SIZE(norm_6x20)))
1257 return -1;
1258 } else {
1259 PDEBUG(D_PROBE, "Writing 6x30 registers");
1260 if (write_i2c_regvals(sd, norm_6x30, ARRAY_SIZE(norm_6x30)))
1261 return -1;
1262 }
1263 return 0; 1282 return 0;
1264} 1283}
1265 1284
@@ -1298,22 +1317,31 @@ static int sd_config(struct gspca_dev *gspca_dev,
1298 ov51x_led_control(sd, 0); /* turn LED off */ 1317 ov51x_led_control(sd, 0); /* turn LED off */
1299 1318
1300 /* Test for 76xx */ 1319 /* Test for 76xx */
1301 sd->primary_i2c_slave = OV7xx0_SID;
1302 if (ov51x_set_slave_ids(sd, OV7xx0_SID) < 0) 1320 if (ov51x_set_slave_ids(sd, OV7xx0_SID) < 0)
1303 goto error; 1321 goto error;
1304 1322
1305 /* The OV519 must be more aggressive about sensor detection since 1323 /* The OV519 must be more aggressive about sensor detection since
1306 * I2C write will never fail if the sensor is not present. We have 1324 * I2C write will never fail if the sensor is not present. We have
1307 * to try to initialize the sensor to detect its presence */ 1325 * to try to initialize the sensor to detect its presence */
1308 if (init_ov_sensor(sd) < 0) { 1326 if (init_ov_sensor(sd) >= 0) {
1327 if (ov7xx0_configure(sd) < 0) {
1328 PDEBUG(D_ERR, "Failed to configure OV7xx0");
1329 goto error;
1330 }
1331 } else {
1332
1309 /* Test for 6xx0 */ 1333 /* Test for 6xx0 */
1310 sd->primary_i2c_slave = OV6xx0_SID;
1311 if (ov51x_set_slave_ids(sd, OV6xx0_SID) < 0) 1334 if (ov51x_set_slave_ids(sd, OV6xx0_SID) < 0)
1312 goto error; 1335 goto error;
1313 1336
1314 if (init_ov_sensor(sd) < 0) { 1337 if (init_ov_sensor(sd) >= 0) {
1338 if (ov6xx0_configure(sd) < 0) {
1339 PDEBUG(D_ERR, "Failed to configure OV6xx0");
1340 goto error;
1341 }
1342 } else {
1343
1315 /* Test for 8xx0 */ 1344 /* Test for 8xx0 */
1316 sd->primary_i2c_slave = OV8xx0_SID;
1317 if (ov51x_set_slave_ids(sd, OV8xx0_SID) < 0) 1345 if (ov51x_set_slave_ids(sd, OV8xx0_SID) < 0)
1318 goto error; 1346 goto error;
1319 1347
@@ -1321,24 +1349,13 @@ static int sd_config(struct gspca_dev *gspca_dev,
1321 PDEBUG(D_ERR, 1349 PDEBUG(D_ERR,
1322 "Can't determine sensor slave IDs"); 1350 "Can't determine sensor slave IDs");
1323 goto error; 1351 goto error;
1324 } else {
1325 if (ov8xx0_configure(sd) < 0) {
1326 PDEBUG(D_ERR,
1327 "Failed to configure OV8xx0 sensor");
1328 goto error;
1329 }
1330 } 1352 }
1331 } else { 1353 if (ov8xx0_configure(sd) < 0) {
1332 if (ov6xx0_configure(sd) < 0) { 1354 PDEBUG(D_ERR,
1333 PDEBUG(D_ERR, "Failed to configure OV6xx0"); 1355 "Failed to configure OV8xx0 sensor");
1334 goto error; 1356 goto error;
1335 } 1357 }
1336 } 1358 }
1337 } else {
1338 if (ov7xx0_configure(sd) < 0) {
1339 PDEBUG(D_ERR, "Failed to configure OV7xx0");
1340 goto error;
1341 }
1342 } 1359 }
1343 1360
1344 cam = &gspca_dev->cam; 1361 cam = &gspca_dev->cam;
@@ -1355,15 +1372,53 @@ static int sd_config(struct gspca_dev *gspca_dev,
1355 sd->colors = COLOR_DEF; 1372 sd->colors = COLOR_DEF;
1356 sd->hflip = HFLIP_DEF; 1373 sd->hflip = HFLIP_DEF;
1357 sd->vflip = VFLIP_DEF; 1374 sd->vflip = VFLIP_DEF;
1375 if (sd->sensor != SEN_OV7670)
1376 gspca_dev->ctrl_dis = (1 << HFLIP_IDX)
1377 | (1 << VFLIP_IDX);
1358 return 0; 1378 return 0;
1359error: 1379error:
1360 PDEBUG(D_ERR, "OV519 Config failed"); 1380 PDEBUG(D_ERR, "OV519 Config failed");
1361 return -EBUSY; 1381 return -EBUSY;
1362} 1382}
1363 1383
1364/* this function is called at open time */ 1384/* this function is called at probe and resume time */
1365static int sd_open(struct gspca_dev *gspca_dev) 1385static int sd_init(struct gspca_dev *gspca_dev)
1366{ 1386{
1387 struct sd *sd = (struct sd *) gspca_dev;
1388
1389 /* initialize the sensor */
1390 switch (sd->sensor) {
1391 case SEN_OV6620:
1392 if (write_i2c_regvals(sd, norm_6x20, ARRAY_SIZE(norm_6x20)))
1393 return -EIO;
1394 break;
1395 case SEN_OV6630:
1396 if (write_i2c_regvals(sd, norm_6x30, ARRAY_SIZE(norm_6x30)))
1397 return -EIO;
1398 break;
1399 default:
1400/* case SEN_OV7610: */
1401/* case SEN_OV76BE: */
1402 if (write_i2c_regvals(sd, norm_7610, ARRAY_SIZE(norm_7610)))
1403 return -EIO;
1404 break;
1405 case SEN_OV7620:
1406 if (write_i2c_regvals(sd, norm_7620, ARRAY_SIZE(norm_7620)))
1407 return -EIO;
1408 break;
1409 case SEN_OV7640:
1410 if (write_i2c_regvals(sd, norm_7640, ARRAY_SIZE(norm_7640)))
1411 return -EIO;
1412 break;
1413 case SEN_OV7670:
1414 if (write_i2c_regvals(sd, norm_7670, ARRAY_SIZE(norm_7670)))
1415 return -EIO;
1416 break;
1417 case SEN_OV8610:
1418 if (write_i2c_regvals(sd, norm_8610, ARRAY_SIZE(norm_8610)))
1419 return -EIO;
1420 break;
1421 }
1367 return 0; 1422 return 0;
1368} 1423}
1369 1424
@@ -1827,14 +1882,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1827 ov51x_led_control((struct sd *) gspca_dev, 0); 1882 ov51x_led_control((struct sd *) gspca_dev, 0);
1828} 1883}
1829 1884
1830static void sd_stop0(struct gspca_dev *gspca_dev)
1831{
1832}
1833
1834static void sd_close(struct gspca_dev *gspca_dev)
1835{
1836}
1837
1838static void sd_pkt_scan(struct gspca_dev *gspca_dev, 1885static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1839 struct gspca_frame *frame, /* target */ 1886 struct gspca_frame *frame, /* target */
1840 __u8 *data, /* isoc packet */ 1887 __u8 *data, /* isoc packet */
@@ -2091,11 +2138,9 @@ static const struct sd_desc sd_desc = {
2091 .ctrls = sd_ctrls, 2138 .ctrls = sd_ctrls,
2092 .nctrls = ARRAY_SIZE(sd_ctrls), 2139 .nctrls = ARRAY_SIZE(sd_ctrls),
2093 .config = sd_config, 2140 .config = sd_config,
2094 .open = sd_open, 2141 .init = sd_init,
2095 .start = sd_start, 2142 .start = sd_start,
2096 .stopN = sd_stopN, 2143 .stopN = sd_stopN,
2097 .stop0 = sd_stop0,
2098 .close = sd_close,
2099 .pkt_scan = sd_pkt_scan, 2144 .pkt_scan = sd_pkt_scan,
2100}; 2145};
2101 2146
@@ -2132,6 +2177,10 @@ static struct usb_driver sd_driver = {
2132 .id_table = device_table, 2177 .id_table = device_table,
2133 .probe = sd_probe, 2178 .probe = sd_probe,
2134 .disconnect = gspca_disconnect, 2179 .disconnect = gspca_disconnect,
2180#ifdef CONFIG_PM
2181 .suspend = gspca_suspend,
2182 .resume = gspca_resume,
2183#endif
2135}; 2184};
2136 2185
2137/* -- module insert / remove -- */ 2186/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/pac207.c b/drivers/media/video/gspca/pac207.c
index 7ef18d57881..83b5f740c94 100644
--- a/drivers/media/video/gspca/pac207.c
+++ b/drivers/media/video/gspca/pac207.c
@@ -56,12 +56,6 @@ MODULE_LICENSE("GPL");
56#define PAC207_GAIN_KNEE 20 56#define PAC207_GAIN_KNEE 20
57 57
58#define PAC207_AUTOGAIN_DEADZONE 30 58#define PAC207_AUTOGAIN_DEADZONE 30
59/* We calculating the autogain at the end of the transfer of a frame, at this
60 moment a frame with the old settings is being transmitted, and a frame is
61 being captured with the old settings. So if we adjust the autogain we must
62 ignore atleast the 2 next frames for the new settings to come into effect
63 before doing any other adjustments */
64#define PAC207_AUTOGAIN_IGNORE_FRAMES 3
65 59
66/* specific webcam descriptor */ 60/* specific webcam descriptor */
67struct sd { 61struct sd {
@@ -131,7 +125,8 @@ static struct ctrl sd_ctrls[] = {
131 .minimum = 0, 125 .minimum = 0,
132 .maximum = 1, 126 .maximum = 1,
133 .step = 1, 127 .step = 1,
134 .default_value = 1, 128#define AUTOGAIN_DEF 1
129 .default_value = AUTOGAIN_DEF,
135 .flags = 0, 130 .flags = 0,
136 }, 131 },
137 .set = sd_setautogain, 132 .set = sd_setautogain,
@@ -181,9 +176,6 @@ static const __u8 pac207_sensor_init[][8] = {
181 /* 48 reg_72 Rate Control end BalSize_4a =0x36 */ 176 /* 48 reg_72 Rate Control end BalSize_4a =0x36 */
182static const __u8 PacReg72[] = { 0x00, 0x00, 0x36, 0x00 }; 177static const __u8 PacReg72[] = { 0x00, 0x00, 0x36, 0x00 };
183 178
184static const unsigned char pac207_sof_marker[5] =
185 { 0xff, 0xff, 0x00, 0xff, 0x96 };
186
187static int pac207_write_regs(struct gspca_dev *gspca_dev, u16 index, 179static int pac207_write_regs(struct gspca_dev *gspca_dev, u16 index,
188 const u8 *buffer, u16 length) 180 const u8 *buffer, u16 length)
189{ 181{
@@ -259,35 +251,32 @@ static int sd_config(struct gspca_dev *gspca_dev,
259 return -ENODEV; 251 return -ENODEV;
260 } 252 }
261 253
262 pac207_write_reg(gspca_dev, 0x41, 0x00);
263 /* Bit_0=Image Format,
264 * Bit_1=LED,
265 * Bit_2=Compression test mode enable */
266 pac207_write_reg(gspca_dev, 0x0f, 0x00); /* Power Control */
267 pac207_write_reg(gspca_dev, 0x11, 0x30); /* Analog Bias */
268
269 PDEBUG(D_PROBE, 254 PDEBUG(D_PROBE,
270 "Pixart PAC207BCA Image Processor and Control Chip detected" 255 "Pixart PAC207BCA Image Processor and Control Chip detected"
271 " (vid/pid 0x%04X:0x%04X)", id->idVendor, id->idProduct); 256 " (vid/pid 0x%04X:0x%04X)", id->idVendor, id->idProduct);
272 257
273 cam = &gspca_dev->cam; 258 cam = &gspca_dev->cam;
274 cam->dev_name = (char *) id->driver_info;
275 cam->epaddr = 0x05; 259 cam->epaddr = 0x05;
276 cam->cam_mode = sif_mode; 260 cam->cam_mode = sif_mode;
277 cam->nmodes = ARRAY_SIZE(sif_mode); 261 cam->nmodes = ARRAY_SIZE(sif_mode);
278 sd->brightness = PAC207_BRIGHTNESS_DEFAULT; 262 sd->brightness = PAC207_BRIGHTNESS_DEFAULT;
279 sd->exposure = PAC207_EXPOSURE_DEFAULT; 263 sd->exposure = PAC207_EXPOSURE_DEFAULT;
280 sd->gain = PAC207_GAIN_DEFAULT; 264 sd->gain = PAC207_GAIN_DEFAULT;
265 sd->autogain = AUTOGAIN_DEF;
281 266
282 return 0; 267 return 0;
283} 268}
284 269
285/* this function is called at open time */ 270/* this function is called at probe and resume time */
286static int sd_open(struct gspca_dev *gspca_dev) 271static int sd_init(struct gspca_dev *gspca_dev)
287{ 272{
288 struct sd *sd = (struct sd *) gspca_dev; 273 pac207_write_reg(gspca_dev, 0x41, 0x00);
274 /* Bit_0=Image Format,
275 * Bit_1=LED,
276 * Bit_2=Compression test mode enable */
277 pac207_write_reg(gspca_dev, 0x0f, 0x00); /* Power Control */
278 pac207_write_reg(gspca_dev, 0x11, 0x30); /* Analog Bias */
289 279
290 sd->autogain = 1;
291 return 0; 280 return 0;
292} 281}
293 282
@@ -343,14 +332,8 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
343 pac207_write_reg(gspca_dev, 0x0f, 0x00); /* Power Control */ 332 pac207_write_reg(gspca_dev, 0x0f, 0x00); /* Power Control */
344} 333}
345 334
346static void sd_stop0(struct gspca_dev *gspca_dev) 335/* Include pac common sof detection functions */
347{ 336#include "pac_common.h"
348}
349
350/* this function is called at close time */
351static void sd_close(struct gspca_dev *gspca_dev)
352{
353}
354 337
355static void pac207_do_auto_gain(struct gspca_dev *gspca_dev) 338static void pac207_do_auto_gain(struct gspca_dev *gspca_dev)
356{ 339{
@@ -365,33 +348,7 @@ static void pac207_do_auto_gain(struct gspca_dev *gspca_dev)
365 else if (gspca_auto_gain_n_exposure(gspca_dev, avg_lum, 348 else if (gspca_auto_gain_n_exposure(gspca_dev, avg_lum,
366 100 + sd->brightness / 2, PAC207_AUTOGAIN_DEADZONE, 349 100 + sd->brightness / 2, PAC207_AUTOGAIN_DEADZONE,
367 PAC207_GAIN_KNEE, PAC207_EXPOSURE_KNEE)) 350 PAC207_GAIN_KNEE, PAC207_EXPOSURE_KNEE))
368 sd->autogain_ignore_frames = PAC207_AUTOGAIN_IGNORE_FRAMES; 351 sd->autogain_ignore_frames = PAC_AUTOGAIN_IGNORE_FRAMES;
369}
370
371static unsigned char *pac207_find_sof(struct gspca_dev *gspca_dev,
372 unsigned char *m, int len)
373{
374 struct sd *sd = (struct sd *) gspca_dev;
375 int i;
376
377 /* Search for the SOF marker (fixed part) in the header */
378 for (i = 0; i < len; i++) {
379 if (m[i] == pac207_sof_marker[sd->sof_read]) {
380 sd->sof_read++;
381 if (sd->sof_read == sizeof(pac207_sof_marker)) {
382 PDEBUG(D_STREAM,
383 "SOF found, bytes to analyze: %u."
384 " Frame starts at byte #%u",
385 len, i + 1);
386 sd->sof_read = 0;
387 return m + i + 1;
388 }
389 } else {
390 sd->sof_read = 0;
391 }
392 }
393
394 return NULL;
395} 352}
396 353
397static void sd_pkt_scan(struct gspca_dev *gspca_dev, 354static void sd_pkt_scan(struct gspca_dev *gspca_dev,
@@ -402,14 +359,14 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
402 struct sd *sd = (struct sd *) gspca_dev; 359 struct sd *sd = (struct sd *) gspca_dev;
403 unsigned char *sof; 360 unsigned char *sof;
404 361
405 sof = pac207_find_sof(gspca_dev, data, len); 362 sof = pac_find_sof(gspca_dev, data, len);
406 if (sof) { 363 if (sof) {
407 int n; 364 int n;
408 365
409 /* finish decoding current frame */ 366 /* finish decoding current frame */
410 n = sof - data; 367 n = sof - data;
411 if (n > sizeof pac207_sof_marker) 368 if (n > sizeof pac_sof_marker)
412 n -= sizeof pac207_sof_marker; 369 n -= sizeof pac_sof_marker;
413 else 370 else
414 n = 0; 371 n = 0;
415 frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame, 372 frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame,
@@ -537,7 +494,7 @@ static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val)
537 sd->gain = PAC207_GAIN_DEFAULT; 494 sd->gain = PAC207_GAIN_DEFAULT;
538 if (gspca_dev->streaming) { 495 if (gspca_dev->streaming) {
539 sd->autogain_ignore_frames = 496 sd->autogain_ignore_frames =
540 PAC207_AUTOGAIN_IGNORE_FRAMES; 497 PAC_AUTOGAIN_IGNORE_FRAMES;
541 setexposure(gspca_dev); 498 setexposure(gspca_dev);
542 setgain(gspca_dev); 499 setgain(gspca_dev);
543 } 500 }
@@ -560,11 +517,9 @@ static const struct sd_desc sd_desc = {
560 .ctrls = sd_ctrls, 517 .ctrls = sd_ctrls,
561 .nctrls = ARRAY_SIZE(sd_ctrls), 518 .nctrls = ARRAY_SIZE(sd_ctrls),
562 .config = sd_config, 519 .config = sd_config,
563 .open = sd_open, 520 .init = sd_init,
564 .start = sd_start, 521 .start = sd_start,
565 .stopN = sd_stopN, 522 .stopN = sd_stopN,
566 .stop0 = sd_stop0,
567 .close = sd_close,
568 .dq_callback = pac207_do_auto_gain, 523 .dq_callback = pac207_do_auto_gain,
569 .pkt_scan = sd_pkt_scan, 524 .pkt_scan = sd_pkt_scan,
570}; 525};
@@ -597,6 +552,10 @@ static struct usb_driver sd_driver = {
597 .id_table = device_table, 552 .id_table = device_table,
598 .probe = sd_probe, 553 .probe = sd_probe,
599 .disconnect = gspca_disconnect, 554 .disconnect = gspca_disconnect,
555#ifdef CONFIG_PM
556 .suspend = gspca_suspend,
557 .resume = gspca_resume,
558#endif
600}; 559};
601 560
602/* -- module insert / remove -- */ 561/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/pac7311.c b/drivers/media/video/gspca/pac7311.c
index 815bea6edc4..d4be5184328 100644
--- a/drivers/media/video/gspca/pac7311.c
+++ b/drivers/media/video/gspca/pac7311.c
@@ -19,6 +19,36 @@
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 20 */
21 21
22/* Some documentation about various registers as determined by trial and error.
23 When the register addresses differ between the 7202 and the 7311 the 2
24 different addresses are written as 7302addr/7311addr, when one of the 2
25 addresses is a - sign that register description is not valid for the
26 matching IC.
27
28 Register page 1:
29
30 Address Description
31 -/0x08 Unknown compressor related, must always be 8 except when not
32 in 640x480 resolution and page 4 reg 2 <= 3 then set it to 9 !
33 -/0x1b Auto white balance related, bit 0 is AWB enable (inverted)
34 bits 345 seem to toggle per color gains on/off (inverted)
35 0x78 Global control, bit 6 controls the LED (inverted)
36 -/0x80 JPEG compression ratio ? Best not touched
37
38 Register page 3/4:
39
40 Address Description
41 0x02 Clock divider 2-63, fps =~ 60 / val. Must be a multiple of 3 on
42 the 7302, so one of 3, 6, 9, ..., except when between 6 and 12?
43 -/0x0f Master gain 1-245, low value = high gain
44 0x10/- Master gain 0-31
45 -/0x10 Another gain 0-15, limited influence (1-2x gain I guess)
46 0x21 Bitfield: 0-1 unused, 2-3 vflip/hflip, 4-5 unknown, 6-7 unused
47 -/0x27 Seems to toggle various gains on / off, Setting bit 7 seems to
48 completely disable the analog amplification block. Set to 0x68
49 for max gain, 0x14 for minimal gain.
50*/
51
22#define MODULE_NAME "pac7311" 52#define MODULE_NAME "pac7311"
23 53
24#include "gspca.h" 54#include "gspca.h"
@@ -31,18 +61,23 @@ MODULE_LICENSE("GPL");
31struct sd { 61struct sd {
32 struct gspca_dev gspca_dev; /* !! must be the first item */ 62 struct gspca_dev gspca_dev; /* !! must be the first item */
33 63
34 int lum_sum;
35 atomic_t avg_lum;
36 atomic_t do_gain;
37
38 unsigned char brightness; 64 unsigned char brightness;
39 unsigned char contrast; 65 unsigned char contrast;
40 unsigned char colors; 66 unsigned char colors;
67 unsigned char gain;
68 unsigned char exposure;
41 unsigned char autogain; 69 unsigned char autogain;
70 __u8 hflip;
71 __u8 vflip;
72
73 __u8 sensor;
74#define SENSOR_PAC7302 0
75#define SENSOR_PAC7311 1
42 76
43 char ffseq; 77 u8 sof_read;
44 signed char ag_cnt; 78 u8 autogain_ignore_frames;
45#define AG_CNT_START 13 79
80 atomic_t avg_lum;
46}; 81};
47 82
48/* V4L2 controls supported by the driver */ 83/* V4L2 controls supported by the driver */
@@ -54,8 +89,18 @@ static int sd_setcolors(struct gspca_dev *gspca_dev, __s32 val);
54static int sd_getcolors(struct gspca_dev *gspca_dev, __s32 *val); 89static int sd_getcolors(struct gspca_dev *gspca_dev, __s32 *val);
55static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val); 90static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val);
56static int sd_getautogain(struct gspca_dev *gspca_dev, __s32 *val); 91static int sd_getautogain(struct gspca_dev *gspca_dev, __s32 *val);
92static int sd_sethflip(struct gspca_dev *gspca_dev, __s32 val);
93static int sd_gethflip(struct gspca_dev *gspca_dev, __s32 *val);
94static int sd_setvflip(struct gspca_dev *gspca_dev, __s32 val);
95static int sd_getvflip(struct gspca_dev *gspca_dev, __s32 *val);
96static int sd_setgain(struct gspca_dev *gspca_dev, __s32 val);
97static int sd_getgain(struct gspca_dev *gspca_dev, __s32 *val);
98static int sd_setexposure(struct gspca_dev *gspca_dev, __s32 val);
99static int sd_getexposure(struct gspca_dev *gspca_dev, __s32 *val);
57 100
58static struct ctrl sd_ctrls[] = { 101static struct ctrl sd_ctrls[] = {
102/* This control is pac7302 only */
103#define BRIGHTNESS_IDX 0
59 { 104 {
60 { 105 {
61 .id = V4L2_CID_BRIGHTNESS, 106 .id = V4L2_CID_BRIGHTNESS,
@@ -71,13 +116,15 @@ static struct ctrl sd_ctrls[] = {
71 .set = sd_setbrightness, 116 .set = sd_setbrightness,
72 .get = sd_getbrightness, 117 .get = sd_getbrightness,
73 }, 118 },
119/* This control is for both the 7302 and the 7311 */
74 { 120 {
75 { 121 {
76 .id = V4L2_CID_CONTRAST, 122 .id = V4L2_CID_CONTRAST,
77 .type = V4L2_CTRL_TYPE_INTEGER, 123 .type = V4L2_CTRL_TYPE_INTEGER,
78 .name = "Contrast", 124 .name = "Contrast",
79 .minimum = 0, 125 .minimum = 0,
80 .maximum = 255, 126#define CONTRAST_MAX 255
127 .maximum = CONTRAST_MAX,
81 .step = 1, 128 .step = 1,
82#define CONTRAST_DEF 127 129#define CONTRAST_DEF 127
83 .default_value = CONTRAST_DEF, 130 .default_value = CONTRAST_DEF,
@@ -85,13 +132,16 @@ static struct ctrl sd_ctrls[] = {
85 .set = sd_setcontrast, 132 .set = sd_setcontrast,
86 .get = sd_getcontrast, 133 .get = sd_getcontrast,
87 }, 134 },
135/* This control is pac7302 only */
136#define SATURATION_IDX 2
88 { 137 {
89 { 138 {
90 .id = V4L2_CID_SATURATION, 139 .id = V4L2_CID_SATURATION,
91 .type = V4L2_CTRL_TYPE_INTEGER, 140 .type = V4L2_CTRL_TYPE_INTEGER,
92 .name = "Color", 141 .name = "Saturation",
93 .minimum = 0, 142 .minimum = 0,
94 .maximum = 255, 143#define COLOR_MAX 255
144 .maximum = COLOR_MAX,
95 .step = 1, 145 .step = 1,
96#define COLOR_DEF 127 146#define COLOR_DEF 127
97 .default_value = COLOR_DEF, 147 .default_value = COLOR_DEF,
@@ -99,6 +149,39 @@ static struct ctrl sd_ctrls[] = {
99 .set = sd_setcolors, 149 .set = sd_setcolors,
100 .get = sd_getcolors, 150 .get = sd_getcolors,
101 }, 151 },
152/* All controls below are for both the 7302 and the 7311 */
153 {
154 {
155 .id = V4L2_CID_GAIN,
156 .type = V4L2_CTRL_TYPE_INTEGER,
157 .name = "Gain",
158 .minimum = 0,
159#define GAIN_MAX 255
160 .maximum = GAIN_MAX,
161 .step = 1,
162#define GAIN_DEF 127
163#define GAIN_KNEE 255 /* Gain seems to cause little noise on the pac73xx */
164 .default_value = GAIN_DEF,
165 },
166 .set = sd_setgain,
167 .get = sd_getgain,
168 },
169 {
170 {
171 .id = V4L2_CID_EXPOSURE,
172 .type = V4L2_CTRL_TYPE_INTEGER,
173 .name = "Exposure",
174 .minimum = 0,
175#define EXPOSURE_MAX 255
176 .maximum = EXPOSURE_MAX,
177 .step = 1,
178#define EXPOSURE_DEF 16 /* 32 ms / 30 fps */
179#define EXPOSURE_KNEE 50 /* 100 ms / 10 fps */
180 .default_value = EXPOSURE_DEF,
181 },
182 .set = sd_setexposure,
183 .get = sd_getexposure,
184 },
102 { 185 {
103 { 186 {
104 .id = V4L2_CID_AUTOGAIN, 187 .id = V4L2_CID_AUTOGAIN,
@@ -113,101 +196,207 @@ static struct ctrl sd_ctrls[] = {
113 .set = sd_setautogain, 196 .set = sd_setautogain,
114 .get = sd_getautogain, 197 .get = sd_getautogain,
115 }, 198 },
199 {
200 {
201 .id = V4L2_CID_HFLIP,
202 .type = V4L2_CTRL_TYPE_BOOLEAN,
203 .name = "Mirror",
204 .minimum = 0,
205 .maximum = 1,
206 .step = 1,
207#define HFLIP_DEF 0
208 .default_value = HFLIP_DEF,
209 },
210 .set = sd_sethflip,
211 .get = sd_gethflip,
212 },
213 {
214 {
215 .id = V4L2_CID_VFLIP,
216 .type = V4L2_CTRL_TYPE_BOOLEAN,
217 .name = "Vflip",
218 .minimum = 0,
219 .maximum = 1,
220 .step = 1,
221#define VFLIP_DEF 0
222 .default_value = VFLIP_DEF,
223 },
224 .set = sd_setvflip,
225 .get = sd_getvflip,
226 },
116}; 227};
117 228
118static struct v4l2_pix_format vga_mode[] = { 229static struct v4l2_pix_format vga_mode[] = {
119 {160, 120, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 230 {160, 120, V4L2_PIX_FMT_PJPG, V4L2_FIELD_NONE,
120 .bytesperline = 160, 231 .bytesperline = 160,
121 .sizeimage = 160 * 120 * 3 / 8 + 590, 232 .sizeimage = 160 * 120 * 3 / 8 + 590,
122 .colorspace = V4L2_COLORSPACE_JPEG, 233 .colorspace = V4L2_COLORSPACE_JPEG,
123 .priv = 2}, 234 .priv = 2},
124 {320, 240, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 235 {320, 240, V4L2_PIX_FMT_PJPG, V4L2_FIELD_NONE,
125 .bytesperline = 320, 236 .bytesperline = 320,
126 .sizeimage = 320 * 240 * 3 / 8 + 590, 237 .sizeimage = 320 * 240 * 3 / 8 + 590,
127 .colorspace = V4L2_COLORSPACE_JPEG, 238 .colorspace = V4L2_COLORSPACE_JPEG,
128 .priv = 1}, 239 .priv = 1},
129 {640, 480, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 240 {640, 480, V4L2_PIX_FMT_PJPG, V4L2_FIELD_NONE,
130 .bytesperline = 640, 241 .bytesperline = 640,
131 .sizeimage = 640 * 480 * 3 / 8 + 590, 242 .sizeimage = 640 * 480 * 3 / 8 + 590,
132 .colorspace = V4L2_COLORSPACE_JPEG, 243 .colorspace = V4L2_COLORSPACE_JPEG,
133 .priv = 0}, 244 .priv = 0},
134}; 245};
135 246
136#define PAC7311_JPEG_HEADER_SIZE (sizeof pac7311_jpeg_header) /* (594) */ 247/* pac 7302 */
137 248static const __u8 init_7302[] = {
138static const __u8 pac7311_jpeg_header[] = { 249/* index,value */
139 0xff, 0xd8, 250 0xff, 0x01, /* page 1 */
140 0xff, 0xe0, 0x00, 0x03, 0x20, 251 0x78, 0x00, /* deactivate */
141 0xff, 0xc0, 0x00, 0x11, 0x08, 252 0xff, 0x01,
142 0x01, 0xe0, /* 12: height */ 253 0x78, 0x40, /* led off */
143 0x02, 0x80, /* 14: width */ 254};
144 0x03, /* 16 */ 255static const __u8 start_7302[] = {
145 0x01, 0x21, 0x00, 256/* index, len, [value]* */
146 0x02, 0x11, 0x01, 257 0xff, 1, 0x00, /* page 0 */
147 0x03, 0x11, 0x01, 258 0x00, 12, 0x01, 0x40, 0x40, 0x40, 0x01, 0xe0, 0x02, 0x80,
148 0xff, 0xdb, 0x00, 0x84, 259 0x00, 0x00, 0x00, 0x00,
149 0x00, 0x10, 0x0b, 0x0c, 0x0e, 0x0c, 0x0a, 0x10, 0x0e, 0x0d, 260 0x0d, 24, 0x03, 0x01, 0x00, 0xb5, 0x07, 0xcb, 0x00, 0x00,
150 0x0e, 0x12, 0x11, 0x10, 0x13, 0x18, 0x28, 0x1a, 0x18, 0x16, 261 0x07, 0xc8, 0x00, 0xea, 0x07, 0xcf, 0x07, 0xf7,
151 0x16, 0x18, 0x31, 0x23, 0x25, 0x1d, 0x28, 0x3a, 0x33, 0x3d, 262 0x07, 0x7e, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x11,
152 0x3c, 0x39, 0x33, 0x38, 0x37, 0x40, 0x48, 0x5c, 0x4e, 0x40, 263 0x26, 2, 0xaa, 0xaa,
153 0x44, 0x57, 0x45, 0x37, 0x38, 0x50, 0x6d, 0x51, 0x57, 0x5f, 264 0x2e, 1, 0x31,
154 0x62, 0x67, 0x68, 0x67, 0x3e, 0x4d, 0x71, 0x79, 0x70, 0x64, 265 0x38, 1, 0x01,
155 0x78, 0x5c, 0x65, 0x67, 0x63, 0x01, 0x11, 0x12, 0x12, 0x18, 266 0x3a, 3, 0x14, 0xff, 0x5a,
156 0x15, 0x18, 0x2f, 0x1a, 0x1a, 0x2f, 0x63, 0x42, 0x38, 0x42, 267 0x43, 11, 0x00, 0x0a, 0x18, 0x11, 0x01, 0x2c, 0x88, 0x11,
157 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 268 0x00, 0x54, 0x11,
158 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 269 0x55, 1, 0x00,
159 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 270 0x62, 4, 0x10, 0x1e, 0x1e, 0x18,
160 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 271 0x6b, 1, 0x00,
161 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 272 0x6e, 3, 0x08, 0x06, 0x00,
162 0xff, 0xc4, 0x01, 0xa2, 0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 273 0x72, 3, 0x00, 0xff, 0x00,
163 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 274 0x7d, 23, 0x01, 0x01, 0x58, 0x46, 0x50, 0x3c, 0x50, 0x3c,
164 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 275 0x54, 0x46, 0x54, 0x56, 0x52, 0x50, 0x52, 0x50,
165 0x09, 0x0a, 0x0b, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 276 0x56, 0x64, 0xa4, 0x00, 0xda, 0x00, 0x00,
166 0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7d, 277 0xa2, 10, 0x22, 0x2c, 0x3c, 0x54, 0x69, 0x7c, 0x9c, 0xb9,
167 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 278 0xd2, 0xeb,
168 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 279 0xaf, 1, 0x02,
169 0x81, 0x91, 0xa1, 0x08, 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 280 0xb5, 2, 0x08, 0x08,
170 0xd1, 0xf0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16, 281 0xb8, 2, 0x08, 0x88,
171 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 282 0xc4, 4, 0xae, 0x01, 0x04, 0x01,
172 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 283 0xcc, 1, 0x00,
173 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 284 0xd1, 11, 0x01, 0x30, 0x49, 0x5e, 0x6f, 0x7f, 0x8e, 0xa9,
174 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 285 0xc1, 0xd7, 0xec,
175 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x83, 286 0xdc, 1, 0x01,
176 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 287 0xff, 1, 0x01, /* page 1 */
177 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 288 0x12, 3, 0x02, 0x00, 0x01,
178 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 289 0x3e, 2, 0x00, 0x00,
179 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 290 0x76, 5, 0x01, 0x20, 0x40, 0x00, 0xf2,
180 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 291 0x7c, 1, 0x00,
181 0xd9, 0xda, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 292 0x7f, 10, 0x4b, 0x0f, 0x01, 0x2c, 0x02, 0x58, 0x03, 0x20,
182 0xe9, 0xea, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 293 0x02, 0x00,
183 0xf9, 0xfa, 0x01, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 294 0x96, 5, 0x01, 0x10, 0x04, 0x01, 0x04,
184 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 295 0xc8, 14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
185 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 296 0x07, 0x00, 0x01, 0x07, 0x04, 0x01,
186 0x0b, 0x11, 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 297 0xd8, 1, 0x01,
187 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01, 298 0xdb, 2, 0x00, 0x01,
188 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 299 0xde, 7, 0x00, 0x01, 0x04, 0x04, 0x00, 0x00, 0x00,
189 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 300 0xe6, 4, 0x00, 0x00, 0x00, 0x01,
190 0x42, 0x91, 0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, 301 0xeb, 1, 0x00,
191 0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, 302 0xff, 1, 0x02, /* page 2 */
192 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26, 0x27, 0x28, 0x29, 0x2a, 303 0x22, 1, 0x00,
193 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 304 0xff, 1, 0x03, /* page 3 */
194 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 305 0x00, 255, /* load the page 3 */
195 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 306 0x11, 1, 0x01,
196 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x82, 0x83, 307 0xff, 1, 0x02, /* page 2 */
197 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 308 0x13, 1, 0x00,
198 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 309 0x22, 4, 0x1f, 0xa4, 0xf0, 0x96,
199 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 310 0x27, 2, 0x14, 0x0c,
200 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 311 0x2a, 5, 0xc8, 0x00, 0x18, 0x12, 0x22,
201 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 312 0x64, 8, 0x00, 0x00, 0xf0, 0x01, 0x14, 0x44, 0x44, 0x44,
202 0xd9, 0xda, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 313 0x6e, 1, 0x08,
203 0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 314 0xff, 1, 0x01, /* page 1 */
204 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, 0x02, 0x11, 0x03, 315 0x78, 1, 0x00,
205 0x11, 0x00, 0x3f, 0x00 316 0, 0 /* end of sequence */
317};
318
319/* page 3 - the value 0xaa says skip the index - see reg_w_page() */
320static const __u8 page3_7302[] = {
321 0x90, 0x40, 0x03, 0x50, 0xc2, 0x01, 0x14, 0x16,
322 0x14, 0x12, 0x00, 0x00, 0x00, 0x02, 0x33, 0x00,
323 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
324 0x00, 0x00, 0x00, 0x47, 0x01, 0xb3, 0x01, 0x00,
325 0x00, 0x08, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x21,
326 0x00, 0x00, 0x00, 0x54, 0xf4, 0x02, 0x52, 0x54,
327 0xa4, 0xb8, 0xe0, 0x2a, 0xf6, 0x00, 0x00, 0x00,
328 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
329 0x00, 0xfc, 0x00, 0xf2, 0x1f, 0x04, 0x00, 0x00,
330 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x10, 0x00, 0x00,
331 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
332 0x00, 0x40, 0xff, 0x03, 0x19, 0x00, 0x00, 0x00,
333 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
334 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0xc8, 0xc8,
335 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,
336 0x08, 0x10, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00,
337 0x01, 0x00, 0x02, 0x47, 0x00, 0x00, 0x00, 0x00,
338 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
339 0x00, 0x02, 0xfa, 0x00, 0x64, 0x5a, 0x28, 0x00,
340 0x00
341};
342
343/* pac 7311 */
344static const __u8 init_7311[] = {
345 0x78, 0x40, /* Bit_0=start stream, Bit_6=LED */
346 0x78, 0x40, /* Bit_0=start stream, Bit_6=LED */
347 0x78, 0x44, /* Bit_0=start stream, Bit_6=LED */
348 0xff, 0x04,
349 0x27, 0x80,
350 0x28, 0xca,
351 0x29, 0x53,
352 0x2a, 0x0e,
353 0xff, 0x01,
354 0x3e, 0x20,
355};
356
357static const __u8 start_7311[] = {
358/* index, len, [value]* */
359 0xff, 1, 0x01, /* page 1 */
360 0x02, 43, 0x48, 0x0a, 0x40, 0x08, 0x00, 0x00, 0x08, 0x00,
361 0x06, 0xff, 0x11, 0xff, 0x5a, 0x30, 0x90, 0x4c,
362 0x00, 0x07, 0x00, 0x0a, 0x10, 0x00, 0xa0, 0x10,
363 0x02, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x01, 0x00,
364 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
365 0x00, 0x00, 0x00,
366 0x3e, 42, 0x00, 0x00, 0x78, 0x52, 0x4a, 0x52, 0x78, 0x6e,
367 0x48, 0x46, 0x48, 0x6e, 0x5f, 0x49, 0x42, 0x49,
368 0x5f, 0x5f, 0x49, 0x42, 0x49, 0x5f, 0x6e, 0x48,
369 0x46, 0x48, 0x6e, 0x78, 0x52, 0x4a, 0x52, 0x78,
370 0x00, 0x00, 0x09, 0x1b, 0x34, 0x49, 0x5c, 0x9b,
371 0xd0, 0xff,
372 0x78, 6, 0x44, 0x00, 0xf2, 0x01, 0x01, 0x80,
373 0x7f, 18, 0x2a, 0x1c, 0x00, 0xc8, 0x02, 0x58, 0x03, 0x84,
374 0x12, 0x00, 0x1a, 0x04, 0x08, 0x0c, 0x10, 0x14,
375 0x18, 0x20,
376 0x96, 3, 0x01, 0x08, 0x04,
377 0xa0, 4, 0x44, 0x44, 0x44, 0x04,
378 0xf0, 13, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x20, 0x00,
379 0x3f, 0x00, 0x0a, 0x01, 0x00,
380 0xff, 1, 0x04, /* page 4 */
381 0x00, 254, /* load the page 4 */
382 0x11, 1, 0x01,
383 0, 0 /* end of sequence */
384};
385
386/* page 4 - the value 0xaa says skip the index - see reg_w_page() */
387static const __u8 page4_7311[] = {
388 0xaa, 0xaa, 0x04, 0x54, 0x07, 0x2b, 0x09, 0x0f,
389 0x09, 0x00, 0xaa, 0xaa, 0x07, 0x00, 0x00, 0x62,
390 0x08, 0xaa, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
391 0x00, 0x00, 0x00, 0x03, 0xa0, 0x01, 0xf4, 0xaa,
392 0xaa, 0x00, 0x08, 0xaa, 0x03, 0xaa, 0x00, 0x68,
393 0xca, 0x10, 0x06, 0x78, 0x00, 0x00, 0x00, 0x00,
394 0x23, 0x28, 0x04, 0x11, 0x00, 0x00
206}; 395};
207 396
208static void reg_w_buf(struct gspca_dev *gspca_dev, 397static void reg_w_buf(struct gspca_dev *gspca_dev,
209 __u16 index, 398 __u8 index,
210 const char *buffer, __u16 len) 399 const char *buffer, int len)
211{ 400{
212 memcpy(gspca_dev->usb_buf, buffer, len); 401 memcpy(gspca_dev->usb_buf, buffer, len);
213 usb_control_msg(gspca_dev->dev, 402 usb_control_msg(gspca_dev->dev,
@@ -219,21 +408,9 @@ static void reg_w_buf(struct gspca_dev *gspca_dev,
219 500); 408 500);
220} 409}
221 410
222static __u8 reg_r(struct gspca_dev *gspca_dev,
223 __u16 index)
224{
225 usb_control_msg(gspca_dev->dev,
226 usb_rcvctrlpipe(gspca_dev->dev, 0),
227 0, /* request */
228 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
229 0, /* value */
230 index, gspca_dev->usb_buf, 1,
231 500);
232 return gspca_dev->usb_buf[0];
233}
234 411
235static void reg_w(struct gspca_dev *gspca_dev, 412static void reg_w(struct gspca_dev *gspca_dev,
236 __u16 index, 413 __u8 index,
237 __u8 value) 414 __u8 value)
238{ 415{
239 gspca_dev->usb_buf[0] = value; 416 gspca_dev->usb_buf[0] = value;
@@ -241,10 +418,78 @@ static void reg_w(struct gspca_dev *gspca_dev,
241 usb_sndctrlpipe(gspca_dev->dev, 0), 418 usb_sndctrlpipe(gspca_dev->dev, 0),
242 0, /* request */ 419 0, /* request */
243 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 420 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
244 value, index, gspca_dev->usb_buf, 1, 421 0, index, gspca_dev->usb_buf, 1,
245 500); 422 500);
246} 423}
247 424
425static void reg_w_seq(struct gspca_dev *gspca_dev,
426 const __u8 *seq, int len)
427{
428 while (--len >= 0) {
429 reg_w(gspca_dev, seq[0], seq[1]);
430 seq += 2;
431 }
432}
433
434/* load the beginning of a page */
435static void reg_w_page(struct gspca_dev *gspca_dev,
436 const __u8 *page, int len)
437{
438 int index;
439
440 for (index = 0; index < len; index++) {
441 if (page[index] == 0xaa) /* skip this index */
442 continue;
443 gspca_dev->usb_buf[0] = page[index];
444 usb_control_msg(gspca_dev->dev,
445 usb_sndctrlpipe(gspca_dev->dev, 0),
446 0, /* request */
447 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
448 0, index, gspca_dev->usb_buf, 1,
449 500);
450 }
451}
452
453/* output a variable sequence */
454static void reg_w_var(struct gspca_dev *gspca_dev,
455 const __u8 *seq)
456{
457 int index, len;
458
459 for (;;) {
460 index = *seq++;
461 len = *seq++;
462 switch (len) {
463 case 0:
464 return;
465 case 254:
466 reg_w_page(gspca_dev, page4_7311, sizeof page4_7311);
467 break;
468 case 255:
469 reg_w_page(gspca_dev, page3_7302, sizeof page3_7302);
470 break;
471 default:
472 if (len > 64) {
473 PDEBUG(D_ERR|D_STREAM,
474 "Incorrect variable sequence");
475 return;
476 }
477 while (len > 0) {
478 if (len < 8) {
479 reg_w_buf(gspca_dev, index, seq, len);
480 seq += len;
481 break;
482 }
483 reg_w_buf(gspca_dev, index, seq, 8);
484 seq += 8;
485 index += 8;
486 len -= 8;
487 }
488 }
489 }
490 /* not reached */
491}
492
248/* this function is called at probe time */ 493/* this function is called at probe time */
249static int sd_config(struct gspca_dev *gspca_dev, 494static int sd_config(struct gspca_dev *gspca_dev,
250 const struct usb_device_id *id) 495 const struct usb_device_id *id)
@@ -252,203 +497,245 @@ static int sd_config(struct gspca_dev *gspca_dev,
252 struct sd *sd = (struct sd *) gspca_dev; 497 struct sd *sd = (struct sd *) gspca_dev;
253 struct cam *cam; 498 struct cam *cam;
254 499
255 PDEBUG(D_CONF, "Find Sensor PAC7311");
256 reg_w(gspca_dev, 0x78, 0x40); /* Bit_0=start stream, Bit_7=LED */
257 reg_w(gspca_dev, 0x78, 0x40); /* Bit_0=start stream, Bit_7=LED */
258 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_7=LED */
259 reg_w(gspca_dev, 0xff, 0x04);
260 reg_w(gspca_dev, 0x27, 0x80);
261 reg_w(gspca_dev, 0x28, 0xca);
262 reg_w(gspca_dev, 0x29, 0x53);
263 reg_w(gspca_dev, 0x2a, 0x0e);
264 reg_w(gspca_dev, 0xff, 0x01);
265 reg_w(gspca_dev, 0x3e, 0x20);
266
267 cam = &gspca_dev->cam; 500 cam = &gspca_dev->cam;
268 cam->epaddr = 0x05; 501 cam->epaddr = 0x05;
269 cam->cam_mode = vga_mode; 502
270 cam->nmodes = ARRAY_SIZE(vga_mode); 503 sd->sensor = id->driver_info;
504 if (sd->sensor == SENSOR_PAC7302) {
505 PDEBUG(D_CONF, "Find Sensor PAC7302");
506 cam->cam_mode = &vga_mode[2]; /* only 640x480 */
507 cam->nmodes = 1;
508 } else {
509 PDEBUG(D_CONF, "Find Sensor PAC7311");
510 cam->cam_mode = vga_mode;
511 cam->nmodes = ARRAY_SIZE(vga_mode);
512 gspca_dev->ctrl_dis = (1 << BRIGHTNESS_IDX)
513 | (1 << SATURATION_IDX);
514 }
271 515
272 sd->brightness = BRIGHTNESS_DEF; 516 sd->brightness = BRIGHTNESS_DEF;
273 sd->contrast = CONTRAST_DEF; 517 sd->contrast = CONTRAST_DEF;
274 sd->colors = COLOR_DEF; 518 sd->colors = COLOR_DEF;
519 sd->gain = GAIN_DEF;
520 sd->exposure = EXPOSURE_DEF;
275 sd->autogain = AUTOGAIN_DEF; 521 sd->autogain = AUTOGAIN_DEF;
276 sd->ag_cnt = -1; 522 sd->hflip = HFLIP_DEF;
523 sd->vflip = VFLIP_DEF;
277 return 0; 524 return 0;
278} 525}
279 526
280static void setbrightness(struct gspca_dev *gspca_dev) 527/* This function is used by pac7302 only */
528static void setbrightcont(struct gspca_dev *gspca_dev)
529{
530 struct sd *sd = (struct sd *) gspca_dev;
531 int i, v;
532 static const __u8 max[10] =
533 {0x29, 0x33, 0x42, 0x5a, 0x6e, 0x80, 0x9f, 0xbb,
534 0xd4, 0xec};
535 static const __u8 delta[10] =
536 {0x35, 0x33, 0x33, 0x2f, 0x2a, 0x25, 0x1e, 0x17,
537 0x11, 0x0b};
538
539 reg_w(gspca_dev, 0xff, 0x00); /* page 0 */
540 for (i = 0; i < 10; i++) {
541 v = max[i];
542 v += (sd->brightness - BRIGHTNESS_MAX)
543 * 150 / BRIGHTNESS_MAX; /* 200 ? */
544 v -= delta[i] * sd->contrast / CONTRAST_MAX;
545 if (v < 0)
546 v = 0;
547 else if (v > 0xff)
548 v = 0xff;
549 reg_w(gspca_dev, 0xa2 + i, v);
550 }
551 reg_w(gspca_dev, 0xdc, 0x01);
552}
553
554/* This function is used by pac7311 only */
555static void setcontrast(struct gspca_dev *gspca_dev)
281{ 556{
282 struct sd *sd = (struct sd *) gspca_dev; 557 struct sd *sd = (struct sd *) gspca_dev;
283 int brightness;
284 558
285/*jfm: inverted?*/
286 brightness = BRIGHTNESS_MAX - sd->brightness;
287 reg_w(gspca_dev, 0xff, 0x04); 559 reg_w(gspca_dev, 0xff, 0x04);
288/* reg_w(gspca_dev, 0x0e, 0x00); */ 560 reg_w(gspca_dev, 0x10, sd->contrast >> 4);
289 reg_w(gspca_dev, 0x0f, brightness);
290 /* load registers to sensor (Bit 0, auto clear) */ 561 /* load registers to sensor (Bit 0, auto clear) */
291 reg_w(gspca_dev, 0x11, 0x01); 562 reg_w(gspca_dev, 0x11, 0x01);
292 PDEBUG(D_CONF|D_STREAM, "brightness: %i", brightness);
293} 563}
294 564
295static void setcontrast(struct gspca_dev *gspca_dev) 565/* This function is used by pac7302 only */
566static void setcolors(struct gspca_dev *gspca_dev)
296{ 567{
297 struct sd *sd = (struct sd *) gspca_dev; 568 struct sd *sd = (struct sd *) gspca_dev;
569 int i, v;
570 static const int a[9] =
571 {217, -212, 0, -101, 170, -67, -38, -315, 355};
572 static const int b[9] =
573 {19, 106, 0, 19, 106, 1, 19, 106, 1};
298 574
299 reg_w(gspca_dev, 0xff, 0x01); 575 reg_w(gspca_dev, 0xff, 0x03); /* page 3 */
300 reg_w(gspca_dev, 0x80, sd->contrast);
301 /* load registers to sensor (Bit 0, auto clear) */
302 reg_w(gspca_dev, 0x11, 0x01); 576 reg_w(gspca_dev, 0x11, 0x01);
303 PDEBUG(D_CONF|D_STREAM, "contrast: %i", sd->contrast); 577 reg_w(gspca_dev, 0xff, 0x00); /* page 0 */
578 reg_w(gspca_dev, 0xff, 0x00); /* page 0 */
579 for (i = 0; i < 9; i++) {
580 v = a[i] * sd->colors / COLOR_MAX + b[i];
581 reg_w(gspca_dev, 0x0f + 2 * i, (v >> 8) & 0x07);
582 reg_w(gspca_dev, 0x0f + 2 * i + 1, v);
583 }
584 reg_w(gspca_dev, 0xdc, 0x01);
585 PDEBUG(D_CONF|D_STREAM, "color: %i", sd->colors);
304} 586}
305 587
306static void setcolors(struct gspca_dev *gspca_dev) 588static void setgain(struct gspca_dev *gspca_dev)
307{ 589{
308 struct sd *sd = (struct sd *) gspca_dev; 590 struct sd *sd = (struct sd *) gspca_dev;
309 591
310 reg_w(gspca_dev, 0xff, 0x01); 592 if (sd->sensor == SENSOR_PAC7302) {
311 reg_w(gspca_dev, 0x10, sd->colors); 593 reg_w(gspca_dev, 0xff, 0x03); /* page 3 */
594 reg_w(gspca_dev, 0x10, sd->gain >> 3);
595 } else {
596 int gain = GAIN_MAX - sd->gain;
597 if (gain < 1)
598 gain = 1;
599 else if (gain > 245)
600 gain = 245;
601 reg_w(gspca_dev, 0xff, 0x04); /* page 4 */
602 reg_w(gspca_dev, 0x0e, 0x00);
603 reg_w(gspca_dev, 0x0f, gain);
604 }
312 /* load registers to sensor (Bit 0, auto clear) */ 605 /* load registers to sensor (Bit 0, auto clear) */
313 reg_w(gspca_dev, 0x11, 0x01); 606 reg_w(gspca_dev, 0x11, 0x01);
314 PDEBUG(D_CONF|D_STREAM, "color: %i", sd->colors);
315} 607}
316 608
317static void setautogain(struct gspca_dev *gspca_dev) 609static void setexposure(struct gspca_dev *gspca_dev)
318{ 610{
319 struct sd *sd = (struct sd *) gspca_dev; 611 struct sd *sd = (struct sd *) gspca_dev;
612 __u8 reg;
613
614 /* register 2 of frame 3/4 contains the clock divider configuring the
615 no fps according to the formula: 60 / reg. sd->exposure is the
616 desired exposure time in ms. */
617 reg = 120 * sd->exposure / 1000;
618 if (reg < 2)
619 reg = 2;
620 else if (reg > 63)
621 reg = 63;
622
623 if (sd->sensor == SENSOR_PAC7302) {
624 /* On the pac7302 reg2 MUST be a multiple of 3, so round it to
625 the nearest multiple of 3, except when between 6 and 12? */
626 if (reg < 6 || reg > 12)
627 reg = ((reg + 1) / 3) * 3;
628 reg_w(gspca_dev, 0xff, 0x03); /* page 3 */
629 reg_w(gspca_dev, 0x02, reg);
630 } else {
631 reg_w(gspca_dev, 0xff, 0x04); /* page 4 */
632 reg_w(gspca_dev, 0x02, reg);
633 /* Page 1 register 8 must always be 0x08 except when not in
634 640x480 mode and Page3/4 reg 2 <= 3 then it must be 9 */
635 reg_w(gspca_dev, 0xff, 0x01);
636 if (gspca_dev->cam.cam_mode[(int)gspca_dev->curr_mode].priv &&
637 reg <= 3)
638 reg_w(gspca_dev, 0x08, 0x09);
639 else
640 reg_w(gspca_dev, 0x08, 0x08);
641 }
642 /* load registers to sensor (Bit 0, auto clear) */
643 reg_w(gspca_dev, 0x11, 0x01);
644}
320 645
321 if (sd->autogain) { 646static void sethvflip(struct gspca_dev *gspca_dev)
322 sd->lum_sum = 0; 647{
323 sd->ag_cnt = AG_CNT_START; 648 struct sd *sd = (struct sd *) gspca_dev;
649 __u8 data;
650
651 if (sd->sensor == SENSOR_PAC7302) {
652 reg_w(gspca_dev, 0xff, 0x03); /* page 3 */
653 data = (sd->hflip ? 0x08 : 0x00)
654 | (sd->vflip ? 0x04 : 0x00);
324 } else { 655 } else {
325 sd->ag_cnt = -1; 656 reg_w(gspca_dev, 0xff, 0x04); /* page 4 */
657 data = (sd->hflip ? 0x04 : 0x00)
658 | (sd->vflip ? 0x08 : 0x00);
326 } 659 }
660 reg_w(gspca_dev, 0x21, data);
661 /* load registers to sensor (Bit 0, auto clear) */
662 reg_w(gspca_dev, 0x11, 0x01);
327} 663}
328 664
329/* this function is called at open time */ 665/* this function is called at probe and resume time */
330static int sd_open(struct gspca_dev *gspca_dev) 666static int sd_init(struct gspca_dev *gspca_dev)
331{ 667{
332 reg_w(gspca_dev, 0x78, 0x00); /* Turn on LED */ 668 struct sd *sd = (struct sd *) gspca_dev;
669
670 if (sd->sensor == SENSOR_PAC7302)
671 reg_w_seq(gspca_dev, init_7302, sizeof init_7302);
672 else
673 reg_w_seq(gspca_dev, init_7311, sizeof init_7311);
674
333 return 0; 675 return 0;
334} 676}
335 677
336static void sd_start(struct gspca_dev *gspca_dev) 678static void sd_start(struct gspca_dev *gspca_dev)
337{ 679{
338 reg_w(gspca_dev, 0xff, 0x01); 680 struct sd *sd = (struct sd *) gspca_dev;
339 reg_w_buf(gspca_dev, 0x0002, "\x48\x0a\x40\x08\x00\x00\x08\x00", 8);
340 reg_w_buf(gspca_dev, 0x000a, "\x06\xff\x11\xff\x5a\x30\x90\x4c", 8);
341 reg_w_buf(gspca_dev, 0x0012, "\x00\x07\x00\x0a\x10\x00\xa0\x10", 8);
342 reg_w_buf(gspca_dev, 0x001a, "\x02\x00\x00\x00\x00\x0b\x01\x00", 8);
343 reg_w_buf(gspca_dev, 0x0022, "\x00\x00\x00\x00\x00\x00\x00\x00", 8);
344 reg_w_buf(gspca_dev, 0x002a, "\x00\x00\x00", 3);
345 reg_w_buf(gspca_dev, 0x003e, "\x00\x00\x78\x52\x4a\x52\x78\x6e", 8);
346 reg_w_buf(gspca_dev, 0x0046, "\x48\x46\x48\x6e\x5f\x49\x42\x49", 8);
347 reg_w_buf(gspca_dev, 0x004e, "\x5f\x5f\x49\x42\x49\x5f\x6e\x48", 8);
348 reg_w_buf(gspca_dev, 0x0056, "\x46\x48\x6e\x78\x52\x4a\x52\x78", 8);
349 reg_w_buf(gspca_dev, 0x005e, "\x00\x00\x09\x1b\x34\x49\x5c\x9b", 8);
350 reg_w_buf(gspca_dev, 0x0066, "\xd0\xff", 2);
351 reg_w_buf(gspca_dev, 0x0078, "\x44\x00\xf2\x01\x01\x80", 6);
352 reg_w_buf(gspca_dev, 0x007f, "\x2a\x1c\x00\xc8\x02\x58\x03\x84", 8);
353 reg_w_buf(gspca_dev, 0x0087, "\x12\x00\x1a\x04\x08\x0c\x10\x14", 8);
354 reg_w_buf(gspca_dev, 0x008f, "\x18\x20", 2);
355 reg_w_buf(gspca_dev, 0x0096, "\x01\x08\x04", 3);
356 reg_w_buf(gspca_dev, 0x00a0, "\x44\x44\x44\x04", 4);
357 reg_w_buf(gspca_dev, 0x00f0, "\x01\x00\x00\x00\x22\x00\x20\x00", 8);
358 reg_w_buf(gspca_dev, 0x00f8, "\x3f\x00\x0a\x01\x00", 5);
359 681
360 reg_w(gspca_dev, 0xff, 0x04); 682 sd->sof_read = 0;
361 reg_w(gspca_dev, 0x02, 0x04); 683
362 reg_w(gspca_dev, 0x03, 0x54); 684 if (sd->sensor == SENSOR_PAC7302) {
363 reg_w(gspca_dev, 0x04, 0x07); 685 reg_w_var(gspca_dev, start_7302);
364 reg_w(gspca_dev, 0x05, 0x2b); 686 setbrightcont(gspca_dev);
365 reg_w(gspca_dev, 0x06, 0x09); 687 setcolors(gspca_dev);
366 reg_w(gspca_dev, 0x07, 0x0f); 688 } else {
367 reg_w(gspca_dev, 0x08, 0x09); 689 reg_w_var(gspca_dev, start_7311);
368 reg_w(gspca_dev, 0x09, 0x00); 690 setcontrast(gspca_dev);
369 reg_w(gspca_dev, 0x0c, 0x07); 691 }
370 reg_w(gspca_dev, 0x0d, 0x00); 692 setgain(gspca_dev);
371 reg_w(gspca_dev, 0x0e, 0x00); 693 setexposure(gspca_dev);
372 reg_w(gspca_dev, 0x0f, 0x62); 694 sethvflip(gspca_dev);
373 reg_w(gspca_dev, 0x10, 0x08);
374 reg_w(gspca_dev, 0x12, 0x07);
375 reg_w(gspca_dev, 0x13, 0x00);
376 reg_w(gspca_dev, 0x14, 0x00);
377 reg_w(gspca_dev, 0x15, 0x00);
378 reg_w(gspca_dev, 0x16, 0x00);
379 reg_w(gspca_dev, 0x17, 0x00);
380 reg_w(gspca_dev, 0x18, 0x00);
381 reg_w(gspca_dev, 0x19, 0x00);
382 reg_w(gspca_dev, 0x1a, 0x00);
383 reg_w(gspca_dev, 0x1b, 0x03);
384 reg_w(gspca_dev, 0x1c, 0xa0);
385 reg_w(gspca_dev, 0x1d, 0x01);
386 reg_w(gspca_dev, 0x1e, 0xf4);
387 reg_w(gspca_dev, 0x21, 0x00);
388 reg_w(gspca_dev, 0x22, 0x08);
389 reg_w(gspca_dev, 0x24, 0x03);
390 reg_w(gspca_dev, 0x26, 0x00);
391 reg_w(gspca_dev, 0x27, 0x01);
392 reg_w(gspca_dev, 0x28, 0xca);
393 reg_w(gspca_dev, 0x29, 0x10);
394 reg_w(gspca_dev, 0x2a, 0x06);
395 reg_w(gspca_dev, 0x2b, 0x78);
396 reg_w(gspca_dev, 0x2c, 0x00);
397 reg_w(gspca_dev, 0x2d, 0x00);
398 reg_w(gspca_dev, 0x2e, 0x00);
399 reg_w(gspca_dev, 0x2f, 0x00);
400 reg_w(gspca_dev, 0x30, 0x23);
401 reg_w(gspca_dev, 0x31, 0x28);
402 reg_w(gspca_dev, 0x32, 0x04);
403 reg_w(gspca_dev, 0x33, 0x11);
404 reg_w(gspca_dev, 0x34, 0x00);
405 reg_w(gspca_dev, 0x35, 0x00);
406 reg_w(gspca_dev, 0x11, 0x01);
407 setcontrast(gspca_dev);
408 setbrightness(gspca_dev);
409 setcolors(gspca_dev);
410 setautogain(gspca_dev);
411 695
412 /* set correct resolution */ 696 /* set correct resolution */
413 switch (gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv) { 697 switch (gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv) {
414 case 2: /* 160x120 */ 698 case 2: /* 160x120 pac7311 */
415 reg_w(gspca_dev, 0xff, 0x04);
416 reg_w(gspca_dev, 0x02, 0x03);
417 reg_w(gspca_dev, 0xff, 0x01); 699 reg_w(gspca_dev, 0xff, 0x01);
418 reg_w(gspca_dev, 0x08, 0x09);
419 reg_w(gspca_dev, 0x17, 0x20); 700 reg_w(gspca_dev, 0x17, 0x20);
420 reg_w(gspca_dev, 0x1b, 0x00);
421/* reg_w(gspca_dev, 0x80, 0x69); */
422 reg_w(gspca_dev, 0x87, 0x10); 701 reg_w(gspca_dev, 0x87, 0x10);
423 break; 702 break;
424 case 1: /* 320x240 */ 703 case 1: /* 320x240 pac7311 */
425 reg_w(gspca_dev, 0xff, 0x04);
426 reg_w(gspca_dev, 0x02, 0x03);
427 reg_w(gspca_dev, 0xff, 0x01); 704 reg_w(gspca_dev, 0xff, 0x01);
428 reg_w(gspca_dev, 0x08, 0x09);
429 reg_w(gspca_dev, 0x17, 0x30); 705 reg_w(gspca_dev, 0x17, 0x30);
430/* reg_w(gspca_dev, 0x80, 0x3f); */
431 reg_w(gspca_dev, 0x87, 0x11); 706 reg_w(gspca_dev, 0x87, 0x11);
432 break; 707 break;
433 case 0: /* 640x480 */ 708 case 0: /* 640x480 */
434 reg_w(gspca_dev, 0xff, 0x04); 709 if (sd->sensor == SENSOR_PAC7302)
435 reg_w(gspca_dev, 0x02, 0x03); 710 break;
436 reg_w(gspca_dev, 0xff, 0x01); 711 reg_w(gspca_dev, 0xff, 0x01);
437 reg_w(gspca_dev, 0x08, 0x08);
438 reg_w(gspca_dev, 0x17, 0x00); 712 reg_w(gspca_dev, 0x17, 0x00);
439/* reg_w(gspca_dev, 0x80, 0x1c); */
440 reg_w(gspca_dev, 0x87, 0x12); 713 reg_w(gspca_dev, 0x87, 0x12);
441 break; 714 break;
442 } 715 }
443 716
717 sd->sof_read = 0;
718 sd->autogain_ignore_frames = 0;
719 atomic_set(&sd->avg_lum, -1);
720
444 /* start stream */ 721 /* start stream */
445 reg_w(gspca_dev, 0xff, 0x01); 722 reg_w(gspca_dev, 0xff, 0x01);
446 reg_w(gspca_dev, 0x78, 0x04); 723 if (sd->sensor == SENSOR_PAC7302)
447 reg_w(gspca_dev, 0x78, 0x05); 724 reg_w(gspca_dev, 0x78, 0x01);
725 else
726 reg_w(gspca_dev, 0x78, 0x05);
448} 727}
449 728
450static void sd_stopN(struct gspca_dev *gspca_dev) 729static void sd_stopN(struct gspca_dev *gspca_dev)
451{ 730{
731 struct sd *sd = (struct sd *) gspca_dev;
732
733 if (sd->sensor == SENSOR_PAC7302) {
734 reg_w(gspca_dev, 0xff, 0x01);
735 reg_w(gspca_dev, 0x78, 0x00);
736 reg_w(gspca_dev, 0x78, 0x00);
737 return;
738 }
452 reg_w(gspca_dev, 0xff, 0x04); 739 reg_w(gspca_dev, 0xff, 0x04);
453 reg_w(gspca_dev, 0x27, 0x80); 740 reg_w(gspca_dev, 0x27, 0x80);
454 reg_w(gspca_dev, 0x28, 0xca); 741 reg_w(gspca_dev, 0x28, 0xca);
@@ -456,187 +743,147 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
456 reg_w(gspca_dev, 0x2a, 0x0e); 743 reg_w(gspca_dev, 0x2a, 0x0e);
457 reg_w(gspca_dev, 0xff, 0x01); 744 reg_w(gspca_dev, 0xff, 0x01);
458 reg_w(gspca_dev, 0x3e, 0x20); 745 reg_w(gspca_dev, 0x3e, 0x20);
459 reg_w(gspca_dev, 0x78, 0x04); /* Bit_0=start stream, Bit_7=LED */ 746 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */
460 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_7=LED */ 747 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */
461 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_7=LED */ 748 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */
462} 749}
463 750
464static void sd_stop0(struct gspca_dev *gspca_dev) 751static void sd_stop0(struct gspca_dev *gspca_dev)
465{ 752{
466} 753 struct sd *sd = (struct sd *) gspca_dev;
467 754
468/* this function is called at close time */ 755 if (sd->sensor == SENSOR_PAC7302) {
469static void sd_close(struct gspca_dev *gspca_dev) 756 reg_w(gspca_dev, 0xff, 0x01);
470{ 757 reg_w(gspca_dev, 0x78, 0x40);
471 reg_w(gspca_dev, 0xff, 0x04); 758 }
472 reg_w(gspca_dev, 0x27, 0x80);
473 reg_w(gspca_dev, 0x28, 0xca);
474 reg_w(gspca_dev, 0x29, 0x53);
475 reg_w(gspca_dev, 0x2a, 0x0e);
476 reg_w(gspca_dev, 0xff, 0x01);
477 reg_w(gspca_dev, 0x3e, 0x20);
478 reg_w(gspca_dev, 0x78, 0x04); /* Bit_0=start stream, Bit_7=LED */
479 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_7=LED */
480 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_7=LED */
481} 759}
482 760
761/* Include pac common sof detection functions */
762#include "pac_common.h"
763
483static void do_autogain(struct gspca_dev *gspca_dev) 764static void do_autogain(struct gspca_dev *gspca_dev)
484{ 765{
485 struct sd *sd = (struct sd *) gspca_dev; 766 struct sd *sd = (struct sd *) gspca_dev;
486 int luma; 767 int avg_lum = atomic_read(&sd->avg_lum);
487 int luma_mean = 128; 768 int desired_lum, deadzone;
488 int luma_delta = 20;
489 __u8 spring = 5;
490 int Gbright;
491 769
492 if (!atomic_read(&sd->do_gain)) 770 if (avg_lum == -1)
493 return; 771 return;
494 atomic_set(&sd->do_gain, 0); 772
495 773 if (sd->sensor == SENSOR_PAC7302) {
496 luma = atomic_read(&sd->avg_lum); 774 desired_lum = 270 + sd->brightness * 4;
497 Gbright = reg_r(gspca_dev, 0x02); 775 /* Hack hack, with the 7202 the first exposure step is
498 PDEBUG(D_FRAM, "luma mean %d", luma); 776 pretty large, so if we're about to make the first
499 if (luma < luma_mean - luma_delta || 777 exposure increase make the deadzone large to avoid
500 luma > luma_mean + luma_delta) { 778 oscilating */
501 Gbright += (luma_mean - luma) >> spring; 779 if (desired_lum > avg_lum && sd->gain == GAIN_DEF &&
502 if (Gbright > 0x1a) 780 sd->exposure > EXPOSURE_DEF &&
503 Gbright = 0x1a; 781 sd->exposure < 42)
504 else if (Gbright < 4) 782 deadzone = 90;
505 Gbright = 4; 783 else
506 PDEBUG(D_FRAM, "gbright %d", Gbright); 784 deadzone = 30;
507 reg_w(gspca_dev, 0xff, 0x04); 785 } else {
508 reg_w(gspca_dev, 0x0f, Gbright); 786 desired_lum = 200;
509 /* load registers to sensor (Bit 0, auto clear) */ 787 deadzone = 20;
510 reg_w(gspca_dev, 0x11, 0x01);
511 } 788 }
789
790 if (sd->autogain_ignore_frames > 0)
791 sd->autogain_ignore_frames--;
792 else if (gspca_auto_gain_n_exposure(gspca_dev, avg_lum, desired_lum,
793 deadzone, GAIN_KNEE, EXPOSURE_KNEE))
794 sd->autogain_ignore_frames = PAC_AUTOGAIN_IGNORE_FRAMES;
512} 795}
513 796
797static const unsigned char pac7311_jpeg_header1[] = {
798 0xff, 0xd8, 0xff, 0xc0, 0x00, 0x11, 0x08
799};
800
801static const unsigned char pac7311_jpeg_header2[] = {
802 0x03, 0x01, 0x21, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11, 0x01, 0xff, 0xda,
803 0x00, 0x0c, 0x03, 0x01, 0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3f, 0x00
804};
805
806/* this function is run at interrupt level */
514static void sd_pkt_scan(struct gspca_dev *gspca_dev, 807static void sd_pkt_scan(struct gspca_dev *gspca_dev,
515 struct gspca_frame *frame, /* target */ 808 struct gspca_frame *frame, /* target */
516 __u8 *data, /* isoc packet */ 809 __u8 *data, /* isoc packet */
517 int len) /* iso packet length */ 810 int len) /* iso packet length */
518{ 811{
519 struct sd *sd = (struct sd *) gspca_dev; 812 struct sd *sd = (struct sd *) gspca_dev;
520 unsigned char tmpbuf[4]; 813 unsigned char *sof;
521 int i, p, ffseq; 814
522 815 sof = pac_find_sof(gspca_dev, data, len);
523/* if (len < 5) { */ 816 if (sof) {
524 if (len < 6) { 817 unsigned char tmpbuf[4];
525/* gspca_dev->last_packet_type = DISCARD_PACKET; */ 818 int n, lum_offset, footer_length;
526 return; 819
527 } 820 if (sd->sensor == SENSOR_PAC7302) {
528 821 /* 6 bytes after the FF D9 EOF marker a number of lumination
529 ffseq = sd->ffseq; 822 bytes are send corresponding to different parts of the
530 823 image, the 14th and 15th byte after the EOF seem to
531 for (p = 0; p < len - 6; p++) { 824 correspond to the center of the image */
532 if ((data[0 + p] == 0xff) 825 lum_offset = 61 + sizeof pac_sof_marker;
533 && (data[1 + p] == 0xff) 826 footer_length = 74;
534 && (data[2 + p] == 0x00) 827 } else {
535 && (data[3 + p] == 0xff) 828 lum_offset = 24 + sizeof pac_sof_marker;
536 && (data[4 + p] == 0x96)) { 829 footer_length = 26;
537 830 }
538 /* start of frame */
539 if (sd->ag_cnt >= 0 && p > 28) {
540 sd->lum_sum += data[p - 23];
541 if (--sd->ag_cnt < 0) {
542 sd->ag_cnt = AG_CNT_START;
543 atomic_set(&sd->avg_lum,
544 sd->lum_sum / AG_CNT_START);
545 sd->lum_sum = 0;
546 atomic_set(&sd->do_gain, 1);
547 }
548 }
549 831
550 /* copy the end of data to the current frame */ 832 /* Finish decoding current frame */
833 n = (sof - data) - (footer_length + sizeof pac_sof_marker);
834 if (n < 0) {
835 frame->data_end += n;
836 n = 0;
837 }
838 frame = gspca_frame_add(gspca_dev, INTER_PACKET, frame,
839 data, n);
840 if (gspca_dev->last_packet_type != DISCARD_PACKET &&
841 frame->data_end[-2] == 0xff &&
842 frame->data_end[-1] == 0xd9)
551 frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame, 843 frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame,
552 data, p); 844 NULL, 0);
553 845
554 /* put the JPEG header in the new frame */ 846 n = sof - data;
555 gspca_frame_add(gspca_dev, FIRST_PACKET, frame, 847 len -= n;
556 (unsigned char *) pac7311_jpeg_header, 848 data = sof;
557 12); 849
850 /* Get average lumination */
851 if (gspca_dev->last_packet_type == LAST_PACKET &&
852 n >= lum_offset)
853 atomic_set(&sd->avg_lum, data[-lum_offset] +
854 data[-lum_offset + 1]);
855 else
856 atomic_set(&sd->avg_lum, -1);
857
858 /* Start the new frame with the jpeg header */
859 gspca_frame_add(gspca_dev, FIRST_PACKET, frame,
860 pac7311_jpeg_header1, sizeof(pac7311_jpeg_header1));
861 if (sd->sensor == SENSOR_PAC7302) {
862 /* The PAC7302 has the image rotated 90 degrees */
863 tmpbuf[0] = gspca_dev->width >> 8;
864 tmpbuf[1] = gspca_dev->width & 0xff;
865 tmpbuf[2] = gspca_dev->height >> 8;
866 tmpbuf[3] = gspca_dev->height & 0xff;
867 } else {
558 tmpbuf[0] = gspca_dev->height >> 8; 868 tmpbuf[0] = gspca_dev->height >> 8;
559 tmpbuf[1] = gspca_dev->height & 0xff; 869 tmpbuf[1] = gspca_dev->height & 0xff;
560 tmpbuf[2] = gspca_dev->width >> 8; 870 tmpbuf[2] = gspca_dev->width >> 8;
561 tmpbuf[3] = gspca_dev->width & 0xff; 871 tmpbuf[3] = gspca_dev->width & 0xff;
562 gspca_frame_add(gspca_dev, INTER_PACKET, frame,
563 tmpbuf, 4);
564 gspca_frame_add(gspca_dev, INTER_PACKET, frame,
565 (unsigned char *) &pac7311_jpeg_header[16],
566 PAC7311_JPEG_HEADER_SIZE - 16);
567
568 data += p + 7;
569 len -= p + 7;
570 ffseq = 0;
571 break;
572 } 872 }
873 gspca_frame_add(gspca_dev, INTER_PACKET, frame, tmpbuf, 4);
874 gspca_frame_add(gspca_dev, INTER_PACKET, frame,
875 pac7311_jpeg_header2, sizeof(pac7311_jpeg_header2));
573 } 876 }
574
575 /* remove the 'ff ff ff xx' sequences */
576 switch (ffseq) {
577 case 3:
578 data += 1;
579 len -= 1;
580 break;
581 case 2:
582 if (data[0] == 0xff) {
583 data += 2;
584 len -= 2;
585 frame->data_end -= 2;
586 }
587 break;
588 case 1:
589 if (data[0] == 0xff
590 && data[1] == 0xff) {
591 data += 3;
592 len -= 3;
593 frame->data_end -= 1;
594 }
595 break;
596 }
597 for (i = 0; i < len - 4; i++) {
598 if (data[i] == 0xff
599 && data[i + 1] == 0xff
600 && data[i + 2] == 0xff) {
601 memmove(&data[i], &data[i + 4], len - i - 4);
602 len -= 4;
603 }
604 }
605 ffseq = 0;
606 if (data[len - 4] == 0xff) {
607 if (data[len - 3] == 0xff
608 && data[len - 2] == 0xff) {
609 len -= 4;
610 }
611 } else if (data[len - 3] == 0xff) {
612 if (data[len - 2] == 0xff
613 && data[len - 1] == 0xff)
614 ffseq = 3;
615 } else if (data[len - 2] == 0xff) {
616 if (data[len - 1] == 0xff)
617 ffseq = 2;
618 } else if (data[len - 1] == 0xff)
619 ffseq = 1;
620 sd->ffseq = ffseq;
621 gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len); 877 gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len);
622} 878}
623 879
624static void getbrightness(struct gspca_dev *gspca_dev)
625{
626/* sd->brightness = reg_r(gspca_dev, 0x08);
627 return sd->brightness; */
628/* PDEBUG(D_CONF, "Called pac7311_getbrightness: Not implemented yet"); */
629}
630
631
632
633static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val) 880static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val)
634{ 881{
635 struct sd *sd = (struct sd *) gspca_dev; 882 struct sd *sd = (struct sd *) gspca_dev;
636 883
637 sd->brightness = val; 884 sd->brightness = val;
638 if (gspca_dev->streaming) 885 if (gspca_dev->streaming)
639 setbrightness(gspca_dev); 886 setbrightcont(gspca_dev);
640 return 0; 887 return 0;
641} 888}
642 889
@@ -644,7 +891,6 @@ static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val)
644{ 891{
645 struct sd *sd = (struct sd *) gspca_dev; 892 struct sd *sd = (struct sd *) gspca_dev;
646 893
647 getbrightness(gspca_dev);
648 *val = sd->brightness; 894 *val = sd->brightness;
649 return 0; 895 return 0;
650} 896}
@@ -654,8 +900,12 @@ static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val)
654 struct sd *sd = (struct sd *) gspca_dev; 900 struct sd *sd = (struct sd *) gspca_dev;
655 901
656 sd->contrast = val; 902 sd->contrast = val;
657 if (gspca_dev->streaming) 903 if (gspca_dev->streaming) {
658 setcontrast(gspca_dev); 904 if (sd->sensor == SENSOR_PAC7302)
905 setbrightcont(gspca_dev);
906 else
907 setcontrast(gspca_dev);
908 }
659 return 0; 909 return 0;
660} 910}
661 911
@@ -663,7 +913,6 @@ static int sd_getcontrast(struct gspca_dev *gspca_dev, __s32 *val)
663{ 913{
664 struct sd *sd = (struct sd *) gspca_dev; 914 struct sd *sd = (struct sd *) gspca_dev;
665 915
666/* getcontrast(gspca_dev); */
667 *val = sd->contrast; 916 *val = sd->contrast;
668 return 0; 917 return 0;
669} 918}
@@ -682,18 +931,66 @@ static int sd_getcolors(struct gspca_dev *gspca_dev, __s32 *val)
682{ 931{
683 struct sd *sd = (struct sd *) gspca_dev; 932 struct sd *sd = (struct sd *) gspca_dev;
684 933
685/* getcolors(gspca_dev); */
686 *val = sd->colors; 934 *val = sd->colors;
687 return 0; 935 return 0;
688} 936}
689 937
938static int sd_setgain(struct gspca_dev *gspca_dev, __s32 val)
939{
940 struct sd *sd = (struct sd *) gspca_dev;
941
942 sd->gain = val;
943 if (gspca_dev->streaming)
944 setgain(gspca_dev);
945 return 0;
946}
947
948static int sd_getgain(struct gspca_dev *gspca_dev, __s32 *val)
949{
950 struct sd *sd = (struct sd *) gspca_dev;
951
952 *val = sd->gain;
953 return 0;
954}
955
956static int sd_setexposure(struct gspca_dev *gspca_dev, __s32 val)
957{
958 struct sd *sd = (struct sd *) gspca_dev;
959
960 sd->exposure = val;
961 if (gspca_dev->streaming)
962 setexposure(gspca_dev);
963 return 0;
964}
965
966static int sd_getexposure(struct gspca_dev *gspca_dev, __s32 *val)
967{
968 struct sd *sd = (struct sd *) gspca_dev;
969
970 *val = sd->exposure;
971 return 0;
972}
973
690static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val) 974static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val)
691{ 975{
692 struct sd *sd = (struct sd *) gspca_dev; 976 struct sd *sd = (struct sd *) gspca_dev;
693 977
694 sd->autogain = val; 978 sd->autogain = val;
695 if (gspca_dev->streaming) 979 /* when switching to autogain set defaults to make sure
696 setautogain(gspca_dev); 980 we are on a valid point of the autogain gain /
981 exposure knee graph, and give this change time to
982 take effect before doing autogain. */
983 if (sd->autogain) {
984 sd->exposure = EXPOSURE_DEF;
985 sd->gain = GAIN_DEF;
986 if (gspca_dev->streaming) {
987 sd->autogain_ignore_frames =
988 PAC_AUTOGAIN_IGNORE_FRAMES;
989 setexposure(gspca_dev);
990 setgain(gspca_dev);
991 }
992 }
993
697 return 0; 994 return 0;
698} 995}
699 996
@@ -705,30 +1002,67 @@ static int sd_getautogain(struct gspca_dev *gspca_dev, __s32 *val)
705 return 0; 1002 return 0;
706} 1003}
707 1004
1005static int sd_sethflip(struct gspca_dev *gspca_dev, __s32 val)
1006{
1007 struct sd *sd = (struct sd *) gspca_dev;
1008
1009 sd->hflip = val;
1010 if (gspca_dev->streaming)
1011 sethvflip(gspca_dev);
1012 return 0;
1013}
1014
1015static int sd_gethflip(struct gspca_dev *gspca_dev, __s32 *val)
1016{
1017 struct sd *sd = (struct sd *) gspca_dev;
1018
1019 *val = sd->hflip;
1020 return 0;
1021}
1022
1023static int sd_setvflip(struct gspca_dev *gspca_dev, __s32 val)
1024{
1025 struct sd *sd = (struct sd *) gspca_dev;
1026
1027 sd->vflip = val;
1028 if (gspca_dev->streaming)
1029 sethvflip(gspca_dev);
1030 return 0;
1031}
1032
1033static int sd_getvflip(struct gspca_dev *gspca_dev, __s32 *val)
1034{
1035 struct sd *sd = (struct sd *) gspca_dev;
1036
1037 *val = sd->vflip;
1038 return 0;
1039}
1040
708/* sub-driver description */ 1041/* sub-driver description */
709static struct sd_desc sd_desc = { 1042static struct sd_desc sd_desc = {
710 .name = MODULE_NAME, 1043 .name = MODULE_NAME,
711 .ctrls = sd_ctrls, 1044 .ctrls = sd_ctrls,
712 .nctrls = ARRAY_SIZE(sd_ctrls), 1045 .nctrls = ARRAY_SIZE(sd_ctrls),
713 .config = sd_config, 1046 .config = sd_config,
714 .open = sd_open, 1047 .init = sd_init,
715 .start = sd_start, 1048 .start = sd_start,
716 .stopN = sd_stopN, 1049 .stopN = sd_stopN,
717 .stop0 = sd_stop0, 1050 .stop0 = sd_stop0,
718 .close = sd_close,
719 .pkt_scan = sd_pkt_scan, 1051 .pkt_scan = sd_pkt_scan,
720 .dq_callback = do_autogain, 1052 .dq_callback = do_autogain,
721}; 1053};
722 1054
723/* -- module initialisation -- */ 1055/* -- module initialisation -- */
724static __devinitdata struct usb_device_id device_table[] = { 1056static __devinitdata struct usb_device_id device_table[] = {
725 {USB_DEVICE(0x093a, 0x2600)}, 1057 {USB_DEVICE(0x093a, 0x2600), .driver_info = SENSOR_PAC7311},
726 {USB_DEVICE(0x093a, 0x2601)}, 1058 {USB_DEVICE(0x093a, 0x2601), .driver_info = SENSOR_PAC7311},
727 {USB_DEVICE(0x093a, 0x2603)}, 1059 {USB_DEVICE(0x093a, 0x2603), .driver_info = SENSOR_PAC7311},
728 {USB_DEVICE(0x093a, 0x2608)}, 1060 {USB_DEVICE(0x093a, 0x2608), .driver_info = SENSOR_PAC7311},
729 {USB_DEVICE(0x093a, 0x260e)}, 1061 {USB_DEVICE(0x093a, 0x260e), .driver_info = SENSOR_PAC7311},
730 {USB_DEVICE(0x093a, 0x260f)}, 1062 {USB_DEVICE(0x093a, 0x260f), .driver_info = SENSOR_PAC7311},
731 {USB_DEVICE(0x093a, 0x2621)}, 1063 {USB_DEVICE(0x093a, 0x2621), .driver_info = SENSOR_PAC7302},
1064 {USB_DEVICE(0x093a, 0x2624), .driver_info = SENSOR_PAC7302},
1065 {USB_DEVICE(0x093a, 0x2626), .driver_info = SENSOR_PAC7302},
732 {} 1066 {}
733}; 1067};
734MODULE_DEVICE_TABLE(usb, device_table); 1068MODULE_DEVICE_TABLE(usb, device_table);
@@ -746,6 +1080,10 @@ static struct usb_driver sd_driver = {
746 .id_table = device_table, 1080 .id_table = device_table,
747 .probe = sd_probe, 1081 .probe = sd_probe,
748 .disconnect = gspca_disconnect, 1082 .disconnect = gspca_disconnect,
1083#ifdef CONFIG_PM
1084 .suspend = gspca_suspend,
1085 .resume = gspca_resume,
1086#endif
749}; 1087};
750 1088
751/* -- module insert / remove -- */ 1089/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/pac_common.h b/drivers/media/video/gspca/pac_common.h
new file mode 100644
index 00000000000..34d4b1494cd
--- /dev/null
+++ b/drivers/media/video/gspca/pac_common.h
@@ -0,0 +1,60 @@
1/*
2 * Pixart PAC207BCA / PAC73xx common functions
3 *
4 * Copyright (C) 2008 Hans de Goede <j.w.r.degoede@hhs.nl>
5 * Copyright (C) 2005 Thomas Kaiser thomas@kaiser-linux.li
6 * Copyleft (C) 2005 Michel Xhaard mxhaard@magic.fr
7 *
8 * V4L2 by Jean-Francois Moine <http://moinejf.free.fr>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 *
24 */
25
26/* We calculate the autogain at the end of the transfer of a frame, at this
27 moment a frame with the old settings is being transmitted, and a frame is
28 being captured with the old settings. So if we adjust the autogain we must
29 ignore atleast the 2 next frames for the new settings to come into effect
30 before doing any other adjustments */
31#define PAC_AUTOGAIN_IGNORE_FRAMES 3
32
33static const unsigned char pac_sof_marker[5] =
34 { 0xff, 0xff, 0x00, 0xff, 0x96 };
35
36static unsigned char *pac_find_sof(struct gspca_dev *gspca_dev,
37 unsigned char *m, int len)
38{
39 struct sd *sd = (struct sd *) gspca_dev;
40 int i;
41
42 /* Search for the SOF marker (fixed part) in the header */
43 for (i = 0; i < len; i++) {
44 if (m[i] == pac_sof_marker[sd->sof_read]) {
45 sd->sof_read++;
46 if (sd->sof_read == sizeof(pac_sof_marker)) {
47 PDEBUG(D_FRAM,
48 "SOF found, bytes to analyze: %u."
49 " Frame starts at byte #%u",
50 len, i + 1);
51 sd->sof_read = 0;
52 return m + i + 1;
53 }
54 } else {
55 sd->sof_read = 0;
56 }
57 }
58
59 return NULL;
60}
diff --git a/drivers/media/video/gspca/sonixb.c b/drivers/media/video/gspca/sonixb.c
index 11210c71f66..5dd78c6766e 100644
--- a/drivers/media/video/gspca/sonixb.c
+++ b/drivers/media/video/gspca/sonixb.c
@@ -20,6 +20,26 @@
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 21 */
22 22
23/* Some documentation on known sonixb registers:
24
25Reg Use
260x10 high nibble red gain low nibble blue gain
270x11 low nibble green gain
280x12 hstart
290x13 vstart
300x15 hsize (hsize = register-value * 16)
310x16 vsize (vsize = register-value * 16)
320x17 bit 0 toggle compression quality (according to sn9c102 driver)
330x18 bit 7 enables compression, bit 4-5 set image down scaling:
34 00 scale 1, 01 scale 1/2, 10, scale 1/4
350x19 high-nibble is sensor clock divider, changes exposure on sensors which
36 use a clock generated by the bridge. Some sensors have their own clock.
370x1c auto_exposure area (for avg_lum) startx (startx = register-value * 32)
380x1d auto_exposure area (for avg_lum) starty (starty = register-value * 32)
390x1e auto_exposure area (for avg_lum) stopx (hsize = (0x1e - 0x1c) * 32)
400x1f auto_exposure area (for avg_lum) stopy (vsize = (0x1f - 0x1d) * 32)
41*/
42
23#define MODULE_NAME "sonixb" 43#define MODULE_NAME "sonixb"
24 44
25#include "gspca.h" 45#include "gspca.h"
@@ -31,10 +51,8 @@ MODULE_LICENSE("GPL");
31/* specific webcam descriptor */ 51/* specific webcam descriptor */
32struct sd { 52struct sd {
33 struct gspca_dev gspca_dev; /* !! must be the first item */ 53 struct gspca_dev gspca_dev; /* !! must be the first item */
34
35 struct sd_desc sd_desc; /* our nctrls differ dependend upon the
36 sensor, so we use a per cam copy */
37 atomic_t avg_lum; 54 atomic_t avg_lum;
55 int prev_avg_lum;
38 56
39 unsigned char gain; 57 unsigned char gain;
40 unsigned char exposure; 58 unsigned char exposure;
@@ -44,8 +62,12 @@ struct sd {
44 unsigned char frames_to_drop; 62 unsigned char frames_to_drop;
45 unsigned char freq; /* light freq filter setting */ 63 unsigned char freq; /* light freq filter setting */
46 64
47 unsigned char fr_h_sz; /* size of frame header */ 65 __u8 bridge; /* Type of bridge */
48 char sensor; /* Type of image sensor chip */ 66#define BRIDGE_101 0
67#define BRIDGE_102 0 /* We make no difference between 101 and 102 */
68#define BRIDGE_103 1
69
70 __u8 sensor; /* Type of image sensor chip */
49#define SENSOR_HV7131R 0 71#define SENSOR_HV7131R 0
50#define SENSOR_OV6650 1 72#define SENSOR_OV6650 1
51#define SENSOR_OV7630 2 73#define SENSOR_OV7630 2
@@ -53,16 +75,35 @@ struct sd {
53#define SENSOR_PAS202 4 75#define SENSOR_PAS202 4
54#define SENSOR_TAS5110 5 76#define SENSOR_TAS5110 5
55#define SENSOR_TAS5130CXX 6 77#define SENSOR_TAS5130CXX 6
56 char sensor_has_gain;
57 __u8 sensor_addr;
58 __u8 reg11; 78 __u8 reg11;
59}; 79};
60 80
61/* flags used in the device id table */ 81typedef const __u8 sensor_init_t[8];
82
83struct sensor_data {
84 const __u8 *bridge_init[2];
85 int bridge_init_size[2];
86 sensor_init_t *sensor_init;
87 int sensor_init_size;
88 sensor_init_t *sensor_bridge_init[2];
89 int sensor_bridge_init_size[2];
90 int flags;
91 unsigned ctrl_dis;
92 __u8 sensor_addr;
93};
94
95/* sensor_data flags */
62#define F_GAIN 0x01 /* has gain */ 96#define F_GAIN 0x01 /* has gain */
63#define F_AUTO 0x02 /* has autogain */ 97#define F_SIF 0x02 /* sif or vga */
64#define F_SIF 0x04 /* sif or vga */ 98
65#define F_H18 0x08 /* long (18 b) or short (12 b) frame header */ 99/* priv field of struct v4l2_pix_format flags (do not use low nibble!) */
100#define MODE_RAW 0x10 /* raw bayer mode */
101#define MODE_REDUCED_SIF 0x20 /* vga mode (320x240 / 160x120) on sif cam */
102
103/* ctrl_dis helper macros */
104#define NO_EXPO ((1 << EXPOSURE_IDX) | (1 << AUTOGAIN_IDX))
105#define NO_FREQ (1 << FREQ_IDX)
106#define NO_BRIGHTNESS (1 << BRIGHTNESS_IDX)
66 107
67#define COMP2 0x8f 108#define COMP2 0x8f
68#define COMP 0xc7 /* 0x87 //0x07 */ 109#define COMP 0xc7 /* 0x87 //0x07 */
@@ -73,6 +114,18 @@ struct sd {
73 114
74#define SYS_CLK 0x04 115#define SYS_CLK 0x04
75 116
117#define SENS(bridge_1, bridge_3, sensor, sensor_1, \
118 sensor_3, _flags, _ctrl_dis, _sensor_addr) \
119{ \
120 .bridge_init = { bridge_1, bridge_3 }, \
121 .bridge_init_size = { sizeof(bridge_1), sizeof(bridge_3) }, \
122 .sensor_init = sensor, \
123 .sensor_init_size = sizeof(sensor), \
124 .sensor_bridge_init = { sensor_1, sensor_3,}, \
125 .sensor_bridge_init_size = { sizeof(sensor_1), sizeof(sensor_3)}, \
126 .flags = _flags, .ctrl_dis = _ctrl_dis, .sensor_addr = _sensor_addr \
127}
128
76/* We calculate the autogain at the end of the transfer of a frame, at this 129/* We calculate the autogain at the end of the transfer of a frame, at this
77 moment a frame with the old settings is being transmitted, and a frame is 130 moment a frame with the old settings is being transmitted, and a frame is
78 being captured with the old settings. So if we adjust the autogain we must 131 being captured with the old settings. So if we adjust the autogain we must
@@ -95,6 +148,7 @@ static int sd_setfreq(struct gspca_dev *gspca_dev, __s32 val);
95static int sd_getfreq(struct gspca_dev *gspca_dev, __s32 *val); 148static int sd_getfreq(struct gspca_dev *gspca_dev, __s32 *val);
96 149
97static struct ctrl sd_ctrls[] = { 150static struct ctrl sd_ctrls[] = {
151#define BRIGHTNESS_IDX 0
98 { 152 {
99 { 153 {
100 .id = V4L2_CID_BRIGHTNESS, 154 .id = V4L2_CID_BRIGHTNESS,
@@ -109,6 +163,7 @@ static struct ctrl sd_ctrls[] = {
109 .set = sd_setbrightness, 163 .set = sd_setbrightness,
110 .get = sd_getbrightness, 164 .get = sd_getbrightness,
111 }, 165 },
166#define GAIN_IDX 1
112 { 167 {
113 { 168 {
114 .id = V4L2_CID_GAIN, 169 .id = V4L2_CID_GAIN,
@@ -124,6 +179,7 @@ static struct ctrl sd_ctrls[] = {
124 .set = sd_setgain, 179 .set = sd_setgain,
125 .get = sd_getgain, 180 .get = sd_getgain,
126 }, 181 },
182#define EXPOSURE_IDX 2
127 { 183 {
128 { 184 {
129 .id = V4L2_CID_EXPOSURE, 185 .id = V4L2_CID_EXPOSURE,
@@ -140,6 +196,7 @@ static struct ctrl sd_ctrls[] = {
140 .set = sd_setexposure, 196 .set = sd_setexposure,
141 .get = sd_getexposure, 197 .get = sd_getexposure,
142 }, 198 },
199#define AUTOGAIN_IDX 3
143 { 200 {
144 { 201 {
145 .id = V4L2_CID_AUTOGAIN, 202 .id = V4L2_CID_AUTOGAIN,
@@ -155,6 +212,7 @@ static struct ctrl sd_ctrls[] = {
155 .set = sd_setautogain, 212 .set = sd_setautogain,
156 .get = sd_getautogain, 213 .get = sd_getautogain,
157 }, 214 },
215#define FREQ_IDX 4
158 { 216 {
159 { 217 {
160 .id = V4L2_CID_POWER_LINE_FREQUENCY, 218 .id = V4L2_CID_POWER_LINE_FREQUENCY,
@@ -172,31 +230,56 @@ static struct ctrl sd_ctrls[] = {
172}; 230};
173 231
174static struct v4l2_pix_format vga_mode[] = { 232static struct v4l2_pix_format vga_mode[] = {
233 {160, 120, V4L2_PIX_FMT_SBGGR8, V4L2_FIELD_NONE,
234 .bytesperline = 160,
235 .sizeimage = 160 * 120 * 5 / 4,
236 .colorspace = V4L2_COLORSPACE_SRGB,
237 .priv = 2 | MODE_RAW},
175 {160, 120, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE, 238 {160, 120, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
176 .bytesperline = 160, 239 .bytesperline = 160,
177 .sizeimage = 160 * 120, 240 .sizeimage = 160 * 120 * 5 / 4,
178 .colorspace = V4L2_COLORSPACE_SRGB, 241 .colorspace = V4L2_COLORSPACE_SRGB,
179 .priv = 2}, 242 .priv = 2},
180 {320, 240, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE, 243 {320, 240, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
181 .bytesperline = 320, 244 .bytesperline = 320,
182 .sizeimage = 320 * 240, 245 .sizeimage = 320 * 240 * 5 / 4,
183 .colorspace = V4L2_COLORSPACE_SRGB, 246 .colorspace = V4L2_COLORSPACE_SRGB,
184 .priv = 1}, 247 .priv = 1},
185 {640, 480, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE, 248 {640, 480, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
186 .bytesperline = 640, 249 .bytesperline = 640,
187 .sizeimage = 640 * 480, 250 .sizeimage = 640 * 480 * 5 / 4,
188 .colorspace = V4L2_COLORSPACE_SRGB, 251 .colorspace = V4L2_COLORSPACE_SRGB,
189 .priv = 0}, 252 .priv = 0},
190}; 253};
191static struct v4l2_pix_format sif_mode[] = { 254static struct v4l2_pix_format sif_mode[] = {
255 {160, 120, V4L2_PIX_FMT_SBGGR8, V4L2_FIELD_NONE,
256 .bytesperline = 160,
257 .sizeimage = 160 * 120,
258 .colorspace = V4L2_COLORSPACE_SRGB,
259 .priv = 1 | MODE_RAW | MODE_REDUCED_SIF},
260 {160, 120, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
261 .bytesperline = 160,
262 .sizeimage = 160 * 120 * 5 / 4,
263 .colorspace = V4L2_COLORSPACE_SRGB,
264 .priv = 1 | MODE_REDUCED_SIF},
265 {176, 144, V4L2_PIX_FMT_SBGGR8, V4L2_FIELD_NONE,
266 .bytesperline = 176,
267 .sizeimage = 176 * 144 * 5 / 4,
268 .colorspace = V4L2_COLORSPACE_SRGB,
269 .priv = 1 | MODE_RAW},
192 {176, 144, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE, 270 {176, 144, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
193 .bytesperline = 176, 271 .bytesperline = 176,
194 .sizeimage = 176 * 144, 272 .sizeimage = 176 * 144 * 5 / 4,
195 .colorspace = V4L2_COLORSPACE_SRGB, 273 .colorspace = V4L2_COLORSPACE_SRGB,
196 .priv = 1}, 274 .priv = 1},
275 {320, 240, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
276 .bytesperline = 320,
277 .sizeimage = 320 * 240 * 5 / 4,
278 .colorspace = V4L2_COLORSPACE_SRGB,
279 .priv = 0 | MODE_REDUCED_SIF},
197 {352, 288, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE, 280 {352, 288, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
198 .bytesperline = 352, 281 .bytesperline = 352,
199 .sizeimage = 352 * 288, 282 .sizeimage = 352 * 288 * 5 / 4,
200 .colorspace = V4L2_COLORSPACE_SRGB, 283 .colorspace = V4L2_COLORSPACE_SRGB,
201 .priv = 0}, 284 .priv = 0},
202}; 285};
@@ -204,7 +287,7 @@ static struct v4l2_pix_format sif_mode[] = {
204static const __u8 initHv7131[] = { 287static const __u8 initHv7131[] = {
205 0x46, 0x77, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00, 0x00, 288 0x46, 0x77, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00, 0x00,
206 0x00, 0x00, 289 0x00, 0x00,
207 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, /* shift from 0x02 0x01 0x00 */ 290 0x00, 0x00, 0x00, 0x02, 0x01, 0x00,
208 0x28, 0x1e, 0x60, 0x8a, 0x20, 291 0x28, 0x1e, 0x60, 0x8a, 0x20,
209 0x1d, 0x10, 0x02, 0x03, 0x0f, 0x0c 292 0x1d, 0x10, 0x02, 0x03, 0x0f, 0x0c
210}; 293};
@@ -218,8 +301,8 @@ static const __u8 hv7131_sensor_init[][8] = {
218static const __u8 initOv6650[] = { 301static const __u8 initOv6650[] = {
219 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 302 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
220 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 303 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
221 0x00, 0x02, 0x01, 0x0a, 0x16, 0x12, 0x68, 0x0b, 304 0x00, 0x01, 0x01, 0x0a, 0x16, 0x12, 0x68, 0x8b,
222 0x10, 0x1d, 0x10, 0x00, 0x06, 0x1f, 0x00 305 0x10, 0x1d, 0x10, 0x02, 0x02, 0x09, 0x07
223}; 306};
224static const __u8 ov6650_sensor_init[][8] = 307static const __u8 ov6650_sensor_init[][8] =
225{ 308{
@@ -257,15 +340,15 @@ static const __u8 ov6650_sensor_init[][8] =
257static const __u8 initOv7630[] = { 340static const __u8 initOv7630[] = {
258 0x04, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* r01 .. r08 */ 341 0x04, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* r01 .. r08 */
259 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* r09 .. r10 */ 342 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* r09 .. r10 */
260 0x00, 0x02, 0x01, 0x0a, /* r11 .. r14 */ 343 0x00, 0x01, 0x01, 0x0a, /* r11 .. r14 */
261 0x28, 0x1e, /* H & V sizes r15 .. r16 */ 344 0x28, 0x1e, /* H & V sizes r15 .. r16 */
262 0x68, COMP1, MCK_INIT1, /* r17 .. r19 */ 345 0x68, COMP2, MCK_INIT1, /* r17 .. r19 */
263 0x1d, 0x10, 0x02, 0x03, 0x0f, 0x0c /* r1a .. r1f */ 346 0x1d, 0x10, 0x02, 0x03, 0x0f, 0x0c /* r1a .. r1f */
264}; 347};
265static const __u8 initOv7630_3[] = { 348static const __u8 initOv7630_3[] = {
266 0x44, 0x44, 0x00, 0x1a, 0x20, 0x20, 0x20, 0x80, /* r01 .. r08 */ 349 0x44, 0x44, 0x00, 0x1a, 0x20, 0x20, 0x20, 0x80, /* r01 .. r08 */
267 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, /* r09 .. r10 */ 350 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, /* r09 .. r10 */
268 0x00, 0x01, 0x01, 0x0a, /* r11 .. r14 */ 351 0x00, 0x02, 0x01, 0x0a, /* r11 .. r14 */
269 0x28, 0x1e, /* H & V sizes r15 .. r16 */ 352 0x28, 0x1e, /* H & V sizes r15 .. r16 */
270 0x68, 0x8f, MCK_INIT1, /* r17 .. r19 */ 353 0x68, 0x8f, MCK_INIT1, /* r17 .. r19 */
271 0x1d, 0x10, 0x02, 0x03, 0x0f, 0x0c, 0x00, /* r1a .. r20 */ 354 0x1d, 0x10, 0x02, 0x03, 0x0f, 0x0c, 0x00, /* r1a .. r20 */
@@ -294,47 +377,65 @@ static const __u8 ov7630_sensor_init[][8] = {
294 {0xd0, 0x21, 0x17, 0x1c, 0xbd, 0x06, 0xf6, 0x10}, 377 {0xd0, 0x21, 0x17, 0x1c, 0xbd, 0x06, 0xf6, 0x10},
295}; 378};
296 379
380static const __u8 ov7630_sensor_init_3[][8] = {
381 {0xa0, 0x21, 0x13, 0x80, 0x00, 0x00, 0x00, 0x10},
382};
383
297static const __u8 initPas106[] = { 384static const __u8 initPas106[] = {
298 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x40, 0x00, 0x00, 0x00, 385 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x40, 0x00, 0x00, 0x00,
299 0x00, 0x00, 386 0x00, 0x00,
300 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 387 0x00, 0x00, 0x00, 0x04, 0x01, 0x00,
301 0x16, 0x12, 0x28, COMP1, MCK_INIT1, 388 0x16, 0x12, 0x24, COMP1, MCK_INIT1,
302 0x18, 0x10, 0x04, 0x03, 0x11, 0x0c 389 0x18, 0x10, 0x02, 0x02, 0x09, 0x07
303}; 390};
304/* compression 0x86 mckinit1 0x2b */ 391/* compression 0x86 mckinit1 0x2b */
305static const __u8 pas106_data[][2] = { 392static const __u8 pas106_sensor_init[][8] = {
306 {0x02, 0x04}, /* Pixel Clock Divider 6 */ 393 /* Pixel Clock Divider 6 */
307 {0x03, 0x13}, /* Frame Time MSB */ 394 { 0xa1, 0x40, 0x02, 0x04, 0x00, 0x00, 0x00, 0x14 },
308/* {0x03, 0x12}, * Frame Time MSB */ 395 /* Frame Time MSB (also seen as 0x12) */
309 {0x04, 0x06}, /* Frame Time LSB */ 396 { 0xa1, 0x40, 0x03, 0x13, 0x00, 0x00, 0x00, 0x14 },
310/* {0x04, 0x05}, * Frame Time LSB */ 397 /* Frame Time LSB (also seen as 0x05) */
311 {0x05, 0x65}, /* Shutter Time Line Offset */ 398 { 0xa1, 0x40, 0x04, 0x06, 0x00, 0x00, 0x00, 0x14 },
312/* {0x05, 0x6d}, * Shutter Time Line Offset */ 399 /* Shutter Time Line Offset (also seen as 0x6d) */
313/* {0x06, 0xb1}, * Shutter Time Pixel Offset */ 400 { 0xa1, 0x40, 0x05, 0x65, 0x00, 0x00, 0x00, 0x14 },
314 {0x06, 0xcd}, /* Shutter Time Pixel Offset */ 401 /* Shutter Time Pixel Offset (also seen as 0xb1) */
315 {0x07, 0xc1}, /* Black Level Subtract Sign */ 402 { 0xa1, 0x40, 0x06, 0xcd, 0x00, 0x00, 0x00, 0x14 },
316/* {0x07, 0x00}, * Black Level Subtract Sign */ 403 /* Black Level Subtract Sign (also seen 0x00) */
317 {0x08, 0x06}, /* Black Level Subtract Level */ 404 { 0xa1, 0x40, 0x07, 0xc1, 0x00, 0x00, 0x00, 0x14 },
318 {0x08, 0x06}, /* Black Level Subtract Level */ 405 /* Black Level Subtract Level (also seen 0x01) */
319/* {0x08, 0x01}, * Black Level Subtract Level */ 406 { 0xa1, 0x40, 0x08, 0x06, 0x00, 0x00, 0x00, 0x14 },
320 {0x09, 0x05}, /* Color Gain B Pixel 5 a */ 407 { 0xa1, 0x40, 0x08, 0x06, 0x00, 0x00, 0x00, 0x14 },
321 {0x0a, 0x04}, /* Color Gain G1 Pixel 1 5 */ 408 /* Color Gain B Pixel 5 a */
322 {0x0b, 0x04}, /* Color Gain G2 Pixel 1 0 5 */ 409 { 0xa1, 0x40, 0x09, 0x05, 0x00, 0x00, 0x00, 0x14 },
323 {0x0c, 0x05}, /* Color Gain R Pixel 3 1 */ 410 /* Color Gain G1 Pixel 1 5 */
324 {0x0d, 0x00}, /* Color GainH Pixel */ 411 { 0xa1, 0x40, 0x0a, 0x04, 0x00, 0x00, 0x00, 0x14 },
325 {0x0e, 0x0e}, /* Global Gain */ 412 /* Color Gain G2 Pixel 1 0 5 */
326 {0x0f, 0x00}, /* Contrast */ 413 { 0xa1, 0x40, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x14 },
327 {0x10, 0x06}, /* H&V synchro polarity */ 414 /* Color Gain R Pixel 3 1 */
328 {0x11, 0x06}, /* ?default */ 415 { 0xa1, 0x40, 0x0c, 0x05, 0x00, 0x00, 0x00, 0x14 },
329 {0x12, 0x06}, /* DAC scale */ 416 /* Color GainH Pixel */
330 {0x14, 0x02}, /* ?default */ 417 { 0xa1, 0x40, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x14 },
331 {0x13, 0x01}, /* Validate Settings */ 418 /* Global Gain */
419 { 0xa1, 0x40, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x14 },
420 /* Contrast */
421 { 0xa1, 0x40, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x14 },
422 /* H&V synchro polarity */
423 { 0xa1, 0x40, 0x10, 0x06, 0x00, 0x00, 0x00, 0x14 },
424 /* ?default */
425 { 0xa1, 0x40, 0x11, 0x06, 0x00, 0x00, 0x00, 0x14 },
426 /* DAC scale */
427 { 0xa1, 0x40, 0x12, 0x06, 0x00, 0x00, 0x00, 0x14 },
428 /* ?default */
429 { 0xa1, 0x40, 0x14, 0x02, 0x00, 0x00, 0x00, 0x14 },
430 /* Validate Settings */
431 { 0xa1, 0x40, 0x13, 0x01, 0x00, 0x00, 0x00, 0x14 },
332}; 432};
433
333static const __u8 initPas202[] = { 434static const __u8 initPas202[] = {
334 0x44, 0x44, 0x21, 0x30, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 435 0x44, 0x44, 0x21, 0x30, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00,
335 0x00, 0x00, 436 0x00, 0x00,
336 0x00, 0x00, 0x00, 0x07, 0x03, 0x0a, /* 6 */ 437 0x00, 0x00, 0x00, 0x06, 0x03, 0x0a,
337 0x28, 0x1e, 0x28, 0x89, 0x30, 438 0x28, 0x1e, 0x28, 0x89, 0x20,
338 0x00, 0x00, 0x02, 0x03, 0x0f, 0x0c 439 0x00, 0x00, 0x02, 0x03, 0x0f, 0x0c
339}; 440};
340static const __u8 pas202_sensor_init[][8] = { 441static const __u8 pas202_sensor_init[][8] = {
@@ -364,7 +465,7 @@ static const __u8 pas202_sensor_init[][8] = {
364static const __u8 initTas5110[] = { 465static const __u8 initTas5110[] = {
365 0x44, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 0x00, 0x00, 0x00, 466 0x44, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 0x00, 0x00, 0x00,
366 0x00, 0x00, 467 0x00, 0x00,
367 0x00, 0x01, 0x00, 0x46, 0x09, 0x0a, /* shift from 0x45 0x09 0x0a */ 468 0x00, 0x01, 0x00, 0x45, 0x09, 0x0a,
368 0x16, 0x12, 0x60, 0x86, 0x2b, 469 0x16, 0x12, 0x60, 0x86, 0x2b,
369 0x14, 0x0a, 0x02, 0x02, 0x09, 0x07 470 0x14, 0x0a, 0x02, 0x02, 0x09, 0x07
370}; 471};
@@ -377,7 +478,7 @@ static const __u8 tas5110_sensor_init[][8] = {
377static const __u8 initTas5130[] = { 478static const __u8 initTas5130[] = {
378 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 0x00, 0x00, 0x00, 479 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 0x00, 0x00, 0x00,
379 0x00, 0x00, 480 0x00, 0x00,
380 0x00, 0x01, 0x00, 0x69, 0x0c, 0x0a, 481 0x00, 0x01, 0x00, 0x68, 0x0c, 0x0a,
381 0x28, 0x1e, 0x60, COMP, MCK_INIT, 482 0x28, 0x1e, 0x60, COMP, MCK_INIT,
382 0x18, 0x10, 0x04, 0x03, 0x11, 0x0c 483 0x18, 0x10, 0x04, 0x03, 0x11, 0x0c
383}; 484};
@@ -389,6 +490,21 @@ static const __u8 tas5130_sensor_init[][8] = {
389 {0x30, 0x11, 0x02, 0x20, 0x70, 0x00, 0x00, 0x10}, 490 {0x30, 0x11, 0x02, 0x20, 0x70, 0x00, 0x00, 0x10},
390}; 491};
391 492
493struct sensor_data sensor_data[] = {
494SENS(initHv7131, NULL, hv7131_sensor_init, NULL, NULL, 0, NO_EXPO|NO_FREQ, 0),
495SENS(initOv6650, NULL, ov6650_sensor_init, NULL, NULL, F_GAIN|F_SIF, 0, 0x60),
496SENS(initOv7630, initOv7630_3, ov7630_sensor_init, NULL, ov7630_sensor_init_3,
497 F_GAIN, 0, 0x21),
498SENS(initPas106, NULL, pas106_sensor_init, NULL, NULL, F_SIF, NO_EXPO|NO_FREQ,
499 0),
500SENS(initPas202, initPas202, pas202_sensor_init, NULL, NULL, 0,
501 NO_EXPO|NO_FREQ, 0),
502SENS(initTas5110, NULL, tas5110_sensor_init, NULL, NULL, F_GAIN|F_SIF,
503 NO_BRIGHTNESS|NO_FREQ, 0),
504SENS(initTas5130, NULL, tas5130_sensor_init, NULL, NULL, 0, NO_EXPO|NO_FREQ,
505 0),
506};
507
392/* get one byte in gspca_dev->usb_buf */ 508/* get one byte in gspca_dev->usb_buf */
393static void reg_r(struct gspca_dev *gspca_dev, 509static void reg_r(struct gspca_dev *gspca_dev,
394 __u16 value) 510 __u16 value)
@@ -409,7 +525,7 @@ static void reg_w(struct gspca_dev *gspca_dev,
409 int len) 525 int len)
410{ 526{
411#ifdef GSPCA_DEBUG 527#ifdef GSPCA_DEBUG
412 if (len > sizeof gspca_dev->usb_buf) { 528 if (len > USB_BUF_SZ) {
413 PDEBUG(D_ERR|D_PACK, "reg_w: buffer overflow"); 529 PDEBUG(D_ERR|D_PACK, "reg_w: buffer overflow");
414 return; 530 return;
415 } 531 }
@@ -425,26 +541,6 @@ static void reg_w(struct gspca_dev *gspca_dev,
425 500); 541 500);
426} 542}
427 543
428static void reg_w_big(struct gspca_dev *gspca_dev,
429 __u16 value,
430 const __u8 *buffer,
431 int len)
432{
433 __u8 *tmpbuf;
434
435 tmpbuf = kmalloc(len, GFP_KERNEL);
436 memcpy(tmpbuf, buffer, len);
437 usb_control_msg(gspca_dev->dev,
438 usb_sndctrlpipe(gspca_dev->dev, 0),
439 0x08, /* request */
440 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_INTERFACE,
441 value,
442 0, /* index */
443 tmpbuf, len,
444 500);
445 kfree(tmpbuf);
446}
447
448static int i2c_w(struct gspca_dev *gspca_dev, const __u8 *buffer) 544static int i2c_w(struct gspca_dev *gspca_dev, const __u8 *buffer)
449{ 545{
450 int retry = 60; 546 int retry = 60;
@@ -487,7 +583,7 @@ static void setbrightness(struct gspca_dev *gspca_dev)
487 {0xa0, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x10}; 583 {0xa0, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x10};
488 584
489 /* change reg 0x06 */ 585 /* change reg 0x06 */
490 i2cOV[1] = sd->sensor_addr; 586 i2cOV[1] = sensor_data[sd->sensor].sensor_addr;
491 i2cOV[3] = sd->brightness; 587 i2cOV[3] = sd->brightness;
492 if (i2c_w(gspca_dev, i2cOV) < 0) 588 if (i2c_w(gspca_dev, i2cOV) < 0)
493 goto err; 589 goto err;
@@ -545,9 +641,6 @@ static void setbrightness(struct gspca_dev *gspca_dev)
545 goto err; 641 goto err;
546 break; 642 break;
547 } 643 }
548 case SENSOR_TAS5110:
549 /* FIXME figure out howto control brightness on TAS5110 */
550 break;
551 } 644 }
552 return; 645 return;
553err: 646err:
@@ -577,7 +670,7 @@ static void setsensorgain(struct gspca_dev *gspca_dev)
577 case SENSOR_OV7630: { 670 case SENSOR_OV7630: {
578 __u8 i2c[] = {0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10}; 671 __u8 i2c[] = {0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10};
579 672
580 i2c[1] = sd->sensor_addr; 673 i2c[1] = sensor_data[sd->sensor].sensor_addr;
581 i2c[3] = gain >> 2; 674 i2c[3] = gain >> 2;
582 if (i2c_w(gspca_dev, i2c) < 0) 675 if (i2c_w(gspca_dev, i2c) < 0)
583 goto err; 676 goto err;
@@ -604,7 +697,7 @@ static void setgain(struct gspca_dev *gspca_dev)
604 rgb_value = gain; 697 rgb_value = gain;
605 reg_w(gspca_dev, 0x11, &rgb_value, 1); 698 reg_w(gspca_dev, 0x11, &rgb_value, 1);
606 699
607 if (sd->sensor_has_gain) 700 if (sensor_data[sd->sensor].flags & F_GAIN)
608 setsensorgain(gspca_dev); 701 setsensorgain(gspca_dev);
609} 702}
610 703
@@ -665,6 +758,11 @@ static void setexposure(struct gspca_dev *gspca_dev)
665 else if (reg11 > 16) 758 else if (reg11 > 16)
666 reg11 = 16; 759 reg11 = 16;
667 760
761 /* In 640x480, if the reg11 has less than 3, the image is
762 unstable (not enough bandwidth). */
763 if (gspca_dev->width == 640 && reg11 < 3)
764 reg11 = 3;
765
668 /* frame exposure time in ms = 1000 * reg11 / 30 -> 766 /* frame exposure time in ms = 1000 * reg11 / 30 ->
669 reg10 = sd->exposure * 2 * reg10_max / (1000 * reg11 / 30) */ 767 reg10 = sd->exposure * 2 * reg10_max / (1000 * reg11 / 30) */
670 reg10 = (sd->exposure * 60 * reg10_max) / (1000 * reg11); 768 reg10 = (sd->exposure * 60 * reg10_max) / (1000 * reg11);
@@ -678,13 +776,8 @@ static void setexposure(struct gspca_dev *gspca_dev)
678 else if (reg10 > reg10_max) 776 else if (reg10 > reg10_max)
679 reg10 = reg10_max; 777 reg10 = reg10_max;
680 778
681 /* In 640x480, if the reg11 has less than 3, the image is
682 unstable (not enough bandwidth). */
683 if (gspca_dev->width == 640 && reg11 < 3)
684 reg11 = 3;
685
686 /* Write reg 10 and reg11 low nibble */ 779 /* Write reg 10 and reg11 low nibble */
687 i2c[1] = sd->sensor_addr; 780 i2c[1] = sensor_data[sd->sensor].sensor_addr;
688 i2c[3] = reg10; 781 i2c[3] = reg10;
689 i2c[4] |= reg11 - 1; 782 i2c[4] |= reg11 - 1;
690 783
@@ -724,7 +817,7 @@ static void setfreq(struct gspca_dev *gspca_dev)
724 ? 0x4f : 0x8a; 817 ? 0x4f : 0x8a;
725 break; 818 break;
726 } 819 }
727 i2c[1] = sd->sensor_addr; 820 i2c[1] = sensor_data[sd->sensor].sensor_addr;
728 if (i2c_w(gspca_dev, i2c) < 0) 821 if (i2c_w(gspca_dev, i2c) < 0)
729 PDEBUG(D_ERR, "i2c error setfreq"); 822 PDEBUG(D_ERR, "i2c error setfreq");
730 break; 823 break;
@@ -757,30 +850,19 @@ static int sd_config(struct gspca_dev *gspca_dev,
757{ 850{
758 struct sd *sd = (struct sd *) gspca_dev; 851 struct sd *sd = (struct sd *) gspca_dev;
759 struct cam *cam; 852 struct cam *cam;
760 int sif = 0;
761 853
762 /* nctrls depends upon the sensor, so we use a per cam copy */ 854 reg_r(gspca_dev, 0x00);
763 memcpy(&sd->sd_desc, gspca_dev->sd_desc, sizeof(struct sd_desc)); 855 if (gspca_dev->usb_buf[0] != 0x10)
764 gspca_dev->sd_desc = &sd->sd_desc; 856 return -ENODEV;
765 857
766 /* copy the webcam info from the device id */ 858 /* copy the webcam info from the device id */
767 sd->sensor = (id->driver_info >> 24) & 0xff; 859 sd->sensor = id->driver_info >> 8;
768 if (id->driver_info & (F_GAIN << 16)) 860 sd->bridge = id->driver_info & 0xff;
769 sd->sensor_has_gain = 1; 861 gspca_dev->ctrl_dis = sensor_data[sd->sensor].ctrl_dis;
770 if (id->driver_info & (F_AUTO << 16))
771 sd->sd_desc.dq_callback = do_autogain;
772 if (id->driver_info & (F_SIF << 16))
773 sif = 1;
774 if (id->driver_info & (F_H18 << 16))
775 sd->fr_h_sz = 18; /* size of frame header */
776 else
777 sd->fr_h_sz = 12;
778 sd->sd_desc.nctrls = (id->driver_info >> 8) & 0xff;
779 sd->sensor_addr = id->driver_info & 0xff;
780 862
781 cam = &gspca_dev->cam; 863 cam = &gspca_dev->cam;
782 cam->epaddr = 0x01; 864 cam->epaddr = 0x01;
783 if (!sif) { 865 if (!(sensor_data[sd->sensor].flags & F_SIF)) {
784 cam->cam_mode = vga_mode; 866 cam->cam_mode = vga_mode;
785 cam->nmodes = ARRAY_SIZE(vga_mode); 867 cam->nmodes = ARRAY_SIZE(vga_mode);
786 } else { 868 } else {
@@ -790,157 +872,98 @@ static int sd_config(struct gspca_dev *gspca_dev,
790 sd->brightness = BRIGHTNESS_DEF; 872 sd->brightness = BRIGHTNESS_DEF;
791 sd->gain = GAIN_DEF; 873 sd->gain = GAIN_DEF;
792 sd->exposure = EXPOSURE_DEF; 874 sd->exposure = EXPOSURE_DEF;
793 sd->autogain = AUTOGAIN_DEF; 875 if (gspca_dev->ctrl_dis & (1 << AUTOGAIN_IDX))
876 sd->autogain = 0; /* Disable do_autogain callback */
877 else
878 sd->autogain = AUTOGAIN_DEF;
794 sd->freq = FREQ_DEF; 879 sd->freq = FREQ_DEF;
795 880
796 return 0; 881 return 0;
797} 882}
798 883
799/* this function is called at open time */ 884/* this function is called at probe and resume time */
800static int sd_open(struct gspca_dev *gspca_dev) 885static int sd_init(struct gspca_dev *gspca_dev)
801{ 886{
802 reg_r(gspca_dev, 0x00); 887 const __u8 stop = 0x09; /* Disable stream turn of LED */
803 if (gspca_dev->usb_buf[0] != 0x10)
804 return -ENODEV;
805 return 0;
806}
807 888
808static void pas106_i2cinit(struct gspca_dev *gspca_dev) 889 reg_w(gspca_dev, 0x01, &stop, 1);
809{ 890
810 int i; 891 return 0;
811 const __u8 *data;
812 __u8 i2c1[] = { 0xa1, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14 };
813
814 i = ARRAY_SIZE(pas106_data);
815 data = pas106_data[0];
816 while (--i >= 0) {
817 memcpy(&i2c1[2], data, 2);
818 /* copy 2 bytes from the template */
819 if (i2c_w(gspca_dev, i2c1) < 0)
820 PDEBUG(D_ERR, "i2c error pas106");
821 data += 2;
822 }
823} 892}
824 893
825/* -- start the camera -- */ 894/* -- start the camera -- */
826static void sd_start(struct gspca_dev *gspca_dev) 895static void sd_start(struct gspca_dev *gspca_dev)
827{ 896{
828 struct sd *sd = (struct sd *) gspca_dev; 897 struct sd *sd = (struct sd *) gspca_dev;
829 int mode, l = 0x1f; 898 struct cam *cam = &gspca_dev->cam;
899 int mode, l;
830 const __u8 *sn9c10x; 900 const __u8 *sn9c10x;
831 __u8 reg17_19[3]; 901 __u8 reg12_19[8];
832 902
833 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv; 903 mode = cam->cam_mode[gspca_dev->curr_mode].priv & 0x07;
904 sn9c10x = sensor_data[sd->sensor].bridge_init[sd->bridge];
905 l = sensor_data[sd->sensor].bridge_init_size[sd->bridge];
906 memcpy(reg12_19, &sn9c10x[0x12 - 1], 8);
907 reg12_19[6] = sn9c10x[0x18 - 1] | (mode << 4);
908 /* Special cases where reg 17 and or 19 value depends on mode */
834 switch (sd->sensor) { 909 switch (sd->sensor) {
835 case SENSOR_HV7131R:
836 sn9c10x = initHv7131;
837 reg17_19[0] = 0x60;
838 reg17_19[1] = (mode << 4) | 0x8a;
839 reg17_19[2] = 0x20;
840 break;
841 case SENSOR_OV6650:
842 sn9c10x = initOv6650;
843 reg17_19[0] = 0x68;
844 reg17_19[1] = (mode << 4) | 0x8b;
845 reg17_19[2] = 0x20;
846 break;
847 case SENSOR_OV7630:
848 if (sd->fr_h_sz == 18) { /* SN9C103 */
849 sn9c10x = initOv7630_3;
850 l = sizeof initOv7630_3;
851 } else
852 sn9c10x = initOv7630;
853 reg17_19[0] = 0x68;
854 reg17_19[1] = (mode << 4) | COMP2;
855 reg17_19[2] = MCK_INIT1;
856 break;
857 case SENSOR_PAS106:
858 sn9c10x = initPas106;
859 reg17_19[0] = 0x24; /* 0x28 */
860 reg17_19[1] = (mode << 4) | COMP1;
861 reg17_19[2] = MCK_INIT1;
862 break;
863 case SENSOR_PAS202: 910 case SENSOR_PAS202:
864 sn9c10x = initPas202; 911 reg12_19[5] = mode ? 0x24 : 0x20;
865 reg17_19[0] = mode ? 0x24 : 0x20;
866 reg17_19[1] = (mode << 4) | 0x89;
867 reg17_19[2] = 0x20;
868 break; 912 break;
869 case SENSOR_TAS5110: 913 case SENSOR_TAS5130CXX:
870 sn9c10x = initTas5110; 914 /* probably not mode specific at all most likely the upper
871 reg17_19[0] = 0x60; 915 nibble of 0x19 is exposure (clock divider) just as with
872 reg17_19[1] = (mode << 4) | 0x86; 916 the tas5110, we need someone to test this. */
873 reg17_19[2] = 0x2b; /* 0xf3; */ 917 reg12_19[7] = mode ? 0x23 : 0x43;
874 break;
875 default:
876/* case SENSOR_TAS5130CXX: */
877 sn9c10x = initTas5130;
878 reg17_19[0] = 0x60;
879 reg17_19[1] = (mode << 4) | COMP;
880 reg17_19[2] = mode ? 0x23 : 0x43;
881 break; 918 break;
882 } 919 }
920 /* Disable compression when the raw bayer format has been selected */
921 if (cam->cam_mode[gspca_dev->curr_mode].priv & MODE_RAW)
922 reg12_19[6] &= ~0x80;
923
924 /* Vga mode emulation on SIF sensor? */
925 if (cam->cam_mode[gspca_dev->curr_mode].priv & MODE_REDUCED_SIF) {
926 reg12_19[0] += 16; /* 0x12: hstart adjust */
927 reg12_19[1] += 24; /* 0x13: vstart adjust */
928 reg12_19[3] = 320 / 16; /* 0x15: hsize */
929 reg12_19[4] = 240 / 16; /* 0x16: vsize */
930 }
883 931
884 /* reg 0x01 bit 2 video transfert on */ 932 /* reg 0x01 bit 2 video transfert on */
885 reg_w(gspca_dev, 0x01, &sn9c10x[0x01 - 1], 1); 933 reg_w(gspca_dev, 0x01, &sn9c10x[0x01 - 1], 1);
886 /* reg 0x17 SensorClk enable inv Clk 0x60 */ 934 /* reg 0x17 SensorClk enable inv Clk 0x60 */
887 reg_w(gspca_dev, 0x17, &sn9c10x[0x17 - 1], 1); 935 reg_w(gspca_dev, 0x17, &sn9c10x[0x17 - 1], 1);
888 /* Set the registers from the template */ 936 /* Set the registers from the template */
889 reg_w_big(gspca_dev, 0x01, sn9c10x, l); 937 reg_w(gspca_dev, 0x01, sn9c10x, l);
890 switch (sd->sensor) { 938
891 case SENSOR_HV7131R: 939 /* Init the sensor */
892 i2c_w_vector(gspca_dev, hv7131_sensor_init, 940 i2c_w_vector(gspca_dev, sensor_data[sd->sensor].sensor_init,
893 sizeof hv7131_sensor_init); 941 sensor_data[sd->sensor].sensor_init_size);
894 break; 942 if (sensor_data[sd->sensor].sensor_bridge_init[sd->bridge])
895 case SENSOR_OV6650: 943 i2c_w_vector(gspca_dev,
896 i2c_w_vector(gspca_dev, ov6650_sensor_init, 944 sensor_data[sd->sensor].sensor_bridge_init[sd->bridge],
897 sizeof ov6650_sensor_init); 945 sensor_data[sd->sensor].sensor_bridge_init_size[
898 break; 946 sd->bridge]);
899 case SENSOR_OV7630: 947
900 i2c_w_vector(gspca_dev, ov7630_sensor_init,
901 sizeof ov7630_sensor_init);
902 if (sd->fr_h_sz == 18) { /* SN9C103 */
903 const __u8 i2c[] = { 0xa0, 0x21, 0x13, 0x80, 0x00,
904 0x00, 0x00, 0x10 };
905 i2c_w(gspca_dev, i2c);
906 }
907 break;
908 case SENSOR_PAS106:
909 pas106_i2cinit(gspca_dev);
910 break;
911 case SENSOR_PAS202:
912 i2c_w_vector(gspca_dev, pas202_sensor_init,
913 sizeof pas202_sensor_init);
914 break;
915 case SENSOR_TAS5110:
916 i2c_w_vector(gspca_dev, tas5110_sensor_init,
917 sizeof tas5110_sensor_init);
918 break;
919 default:
920/* case SENSOR_TAS5130CXX: */
921 i2c_w_vector(gspca_dev, tas5130_sensor_init,
922 sizeof tas5130_sensor_init);
923 break;
924 }
925 /* H_size V_size 0x28, 0x1e -> 640x480. 0x16, 0x12 -> 352x288 */ 948 /* H_size V_size 0x28, 0x1e -> 640x480. 0x16, 0x12 -> 352x288 */
926 reg_w(gspca_dev, 0x15, &sn9c10x[0x15 - 1], 2); 949 reg_w(gspca_dev, 0x15, &reg12_19[3], 2);
927 /* compression register */ 950 /* compression register */
928 reg_w(gspca_dev, 0x18, &reg17_19[1], 1); 951 reg_w(gspca_dev, 0x18, &reg12_19[6], 1);
929 /* H_start */ 952 /* H_start */
930 reg_w(gspca_dev, 0x12, &sn9c10x[0x12 - 1], 1); 953 reg_w(gspca_dev, 0x12, &reg12_19[0], 1);
931 /* V_START */ 954 /* V_START */
932 reg_w(gspca_dev, 0x13, &sn9c10x[0x13 - 1], 1); 955 reg_w(gspca_dev, 0x13, &reg12_19[1], 1);
933 /* reset 0x17 SensorClk enable inv Clk 0x60 */ 956 /* reset 0x17 SensorClk enable inv Clk 0x60 */
934 /*fixme: ov7630 [17]=68 8f (+20 if 102)*/ 957 /*fixme: ov7630 [17]=68 8f (+20 if 102)*/
935 reg_w(gspca_dev, 0x17, &reg17_19[0], 1); 958 reg_w(gspca_dev, 0x17, &reg12_19[5], 1);
936 /*MCKSIZE ->3 */ /*fixme: not ov7630*/ 959 /*MCKSIZE ->3 */ /*fixme: not ov7630*/
937 reg_w(gspca_dev, 0x19, &reg17_19[2], 1); 960 reg_w(gspca_dev, 0x19, &reg12_19[7], 1);
938 /* AE_STRX AE_STRY AE_ENDX AE_ENDY */ 961 /* AE_STRX AE_STRY AE_ENDX AE_ENDY */
939 reg_w(gspca_dev, 0x1c, &sn9c10x[0x1c - 1], 4); 962 reg_w(gspca_dev, 0x1c, &sn9c10x[0x1c - 1], 4);
940 /* Enable video transfert */ 963 /* Enable video transfert */
941 reg_w(gspca_dev, 0x01, &sn9c10x[0], 1); 964 reg_w(gspca_dev, 0x01, &sn9c10x[0], 1);
942 /* Compression */ 965 /* Compression */
943 reg_w(gspca_dev, 0x18, &reg17_19[1], 2); 966 reg_w(gspca_dev, 0x18, &reg12_19[6], 2);
944 msleep(20); 967 msleep(20);
945 968
946 sd->reg11 = -1; 969 sd->reg11 = -1;
@@ -957,18 +980,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
957 980
958static void sd_stopN(struct gspca_dev *gspca_dev) 981static void sd_stopN(struct gspca_dev *gspca_dev)
959{ 982{
960 __u8 ByteSend; 983 sd_init(gspca_dev);
961
962 ByteSend = 0x09; /* 0X00 */
963 reg_w(gspca_dev, 0x01, &ByteSend, 1);
964}
965
966static void sd_stop0(struct gspca_dev *gspca_dev)
967{
968}
969
970static void sd_close(struct gspca_dev *gspca_dev)
971{
972} 984}
973 985
974static void sd_pkt_scan(struct gspca_dev *gspca_dev, 986static void sd_pkt_scan(struct gspca_dev *gspca_dev,
@@ -978,6 +990,7 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
978{ 990{
979 int i; 991 int i;
980 struct sd *sd = (struct sd *) gspca_dev; 992 struct sd *sd = (struct sd *) gspca_dev;
993 struct cam *cam = &gspca_dev->cam;
981 994
982 /* frames start with: 995 /* frames start with:
983 * ff ff 00 c4 c4 96 synchro 996 * ff ff 00 c4 c4 96 synchro
@@ -998,20 +1011,31 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
998 && data[5 + i] == 0x96) { /* start of frame */ 1011 && data[5 + i] == 0x96) { /* start of frame */
999 int lum = -1; 1012 int lum = -1;
1000 int pkt_type = LAST_PACKET; 1013 int pkt_type = LAST_PACKET;
1014 int fr_h_sz = (sd->bridge == BRIDGE_103) ?
1015 18 : 12;
1001 1016
1002 if (len - i < sd->fr_h_sz) { 1017 if (len - i < fr_h_sz) {
1003 PDEBUG(D_STREAM, "packet too short to" 1018 PDEBUG(D_STREAM, "packet too short to"
1004 " get avg brightness"); 1019 " get avg brightness");
1005 } else if (sd->fr_h_sz == 12) { 1020 } else if (sd->bridge == BRIDGE_103) {
1006 lum = data[i + 8] + (data[i + 9] << 8);
1007 } else {
1008 lum = data[i + 9] + 1021 lum = data[i + 9] +
1009 (data[i + 10] << 8); 1022 (data[i + 10] << 8);
1023 } else {
1024 lum = data[i + 8] + (data[i + 9] << 8);
1010 } 1025 }
1011 if (lum == 0) { 1026 /* When exposure changes midway a frame we
1027 get a lum of 0 in this case drop 2 frames
1028 as the frames directly after an exposure
1029 change have an unstable image. Sometimes lum
1030 *really* is 0 (cam used in low light with
1031 low exposure setting), so do not drop frames
1032 if the previous lum was 0 too. */
1033 if (lum == 0 && sd->prev_avg_lum != 0) {
1012 lum = -1; 1034 lum = -1;
1013 sd->frames_to_drop = 2; 1035 sd->frames_to_drop = 2;
1014 } 1036 sd->prev_avg_lum = 0;
1037 } else
1038 sd->prev_avg_lum = lum;
1015 atomic_set(&sd->avg_lum, lum); 1039 atomic_set(&sd->avg_lum, lum);
1016 1040
1017 if (sd->frames_to_drop) { 1041 if (sd->frames_to_drop) {
@@ -1021,14 +1045,25 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1021 1045
1022 frame = gspca_frame_add(gspca_dev, pkt_type, 1046 frame = gspca_frame_add(gspca_dev, pkt_type,
1023 frame, data, 0); 1047 frame, data, 0);
1024 data += i + sd->fr_h_sz; 1048 data += i + fr_h_sz;
1025 len -= i + sd->fr_h_sz; 1049 len -= i + fr_h_sz;
1026 gspca_frame_add(gspca_dev, FIRST_PACKET, 1050 gspca_frame_add(gspca_dev, FIRST_PACKET,
1027 frame, data, len); 1051 frame, data, len);
1028 return; 1052 return;
1029 } 1053 }
1030 } 1054 }
1031 } 1055 }
1056
1057 if (cam->cam_mode[gspca_dev->curr_mode].priv & MODE_RAW) {
1058 /* In raw mode we sometimes get some garbage after the frame
1059 ignore this */
1060 int used = frame->data_end - frame->data;
1061 int size = cam->cam_mode[gspca_dev->curr_mode].sizeimage;
1062
1063 if (used + len > size)
1064 len = size - used;
1065 }
1066
1032 gspca_frame_add(gspca_dev, INTER_PACKET, 1067 gspca_frame_add(gspca_dev, INTER_PACKET,
1033 frame, data, len); 1068 frame, data, len);
1034} 1069}
@@ -1162,58 +1197,45 @@ static const struct sd_desc sd_desc = {
1162 .ctrls = sd_ctrls, 1197 .ctrls = sd_ctrls,
1163 .nctrls = ARRAY_SIZE(sd_ctrls), 1198 .nctrls = ARRAY_SIZE(sd_ctrls),
1164 .config = sd_config, 1199 .config = sd_config,
1165 .open = sd_open, 1200 .init = sd_init,
1166 .start = sd_start, 1201 .start = sd_start,
1167 .stopN = sd_stopN, 1202 .stopN = sd_stopN,
1168 .stop0 = sd_stop0,
1169 .close = sd_close,
1170 .pkt_scan = sd_pkt_scan, 1203 .pkt_scan = sd_pkt_scan,
1171 .querymenu = sd_querymenu, 1204 .querymenu = sd_querymenu,
1205 .dq_callback = do_autogain,
1172}; 1206};
1173 1207
1174/* -- module initialisation -- */ 1208/* -- module initialisation -- */
1175#define SFCI(sensor, flags, nctrls, i2c_addr) \ 1209#define SB(sensor, bridge) \
1176 .driver_info = (SENSOR_ ## sensor << 24) \ 1210 .driver_info = (SENSOR_ ## sensor << 8) | BRIDGE_ ## bridge
1177 | ((flags) << 16) \ 1211
1178 | ((nctrls) << 8) \ 1212
1179 | (i2c_addr)
1180static __devinitdata struct usb_device_id device_table[] = { 1213static __devinitdata struct usb_device_id device_table[] = {
1181#ifndef CONFIG_USB_SN9C102 1214 {USB_DEVICE(0x0c45, 0x6001), SB(TAS5110, 102)}, /* TAS5110C1B */
1182 {USB_DEVICE(0x0c45, 0x6001), /* SN9C102 */ 1215 {USB_DEVICE(0x0c45, 0x6005), SB(TAS5110, 101)}, /* TAS5110C1B */
1183 SFCI(TAS5110, F_GAIN|F_AUTO|F_SIF, 4, 0)}, 1216#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1184 {USB_DEVICE(0x0c45, 0x6005), /* SN9C101 */ 1217 {USB_DEVICE(0x0c45, 0x6007), SB(TAS5110, 101)}, /* TAS5110D */
1185 SFCI(TAS5110, F_GAIN|F_AUTO|F_SIF, 4, 0)}, 1218 {USB_DEVICE(0x0c45, 0x6009), SB(PAS106, 101)},
1186 {USB_DEVICE(0x0c45, 0x6007), /* SN9C101 */ 1219 {USB_DEVICE(0x0c45, 0x600d), SB(PAS106, 101)},
1187 SFCI(TAS5110, F_GAIN|F_AUTO|F_SIF, 4, 0)},
1188 {USB_DEVICE(0x0c45, 0x6009), /* SN9C101 */
1189 SFCI(PAS106, F_SIF, 2, 0)},
1190 {USB_DEVICE(0x0c45, 0x600d), /* SN9C101 */
1191 SFCI(PAS106, F_SIF, 2, 0)},
1192#endif 1220#endif
1193 {USB_DEVICE(0x0c45, 0x6011), /* SN9C101 - SN9C101G */ 1221 {USB_DEVICE(0x0c45, 0x6011), SB(OV6650, 101)},
1194 SFCI(OV6650, F_GAIN|F_AUTO|F_SIF, 5, 0x60)}, 1222#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1195#ifndef CONFIG_USB_SN9C102 1223 {USB_DEVICE(0x0c45, 0x6019), SB(OV7630, 101)},
1196 {USB_DEVICE(0x0c45, 0x6019), /* SN9C101 */ 1224 {USB_DEVICE(0x0c45, 0x6024), SB(TAS5130CXX, 102)},
1197 SFCI(OV7630, F_GAIN|F_AUTO, 5, 0x21)}, 1225 {USB_DEVICE(0x0c45, 0x6025), SB(TAS5130CXX, 102)},
1198 {USB_DEVICE(0x0c45, 0x6024), /* SN9C102 */ 1226 {USB_DEVICE(0x0c45, 0x6028), SB(PAS202, 102)},
1199 SFCI(TAS5130CXX, 0, 2, 0)}, 1227 {USB_DEVICE(0x0c45, 0x6029), SB(PAS106, 102)},
1200 {USB_DEVICE(0x0c45, 0x6025), /* SN9C102 */ 1228 {USB_DEVICE(0x0c45, 0x602c), SB(OV7630, 102)},
1201 SFCI(TAS5130CXX, 0, 2, 0)},
1202 {USB_DEVICE(0x0c45, 0x6028), /* SN9C102 */
1203 SFCI(PAS202, 0, 2, 0)},
1204 {USB_DEVICE(0x0c45, 0x6029), /* SN9C101 */
1205 SFCI(PAS106, F_SIF, 2, 0)},
1206 {USB_DEVICE(0x0c45, 0x602c), /* SN9C102 */
1207 SFCI(OV7630, F_GAIN|F_AUTO, 5, 0x21)},
1208 {USB_DEVICE(0x0c45, 0x602d), /* SN9C102 */
1209 SFCI(HV7131R, 0, 2, 0)},
1210 {USB_DEVICE(0x0c45, 0x602e), /* SN9C102 */
1211 SFCI(OV7630, F_GAIN|F_AUTO, 5, 0x21)},
1212 {USB_DEVICE(0x0c45, 0x60af), /* SN9C103 */
1213 SFCI(PAS202, F_H18, 2, 0)},
1214 {USB_DEVICE(0x0c45, 0x60b0), /* SN9C103 */
1215 SFCI(OV7630, F_GAIN|F_AUTO|F_H18, 5, 0x21)},
1216#endif 1229#endif
1230 {USB_DEVICE(0x0c45, 0x602d), SB(HV7131R, 102)},
1231#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1232 {USB_DEVICE(0x0c45, 0x602e), SB(OV7630, 102)},
1233#endif
1234 {USB_DEVICE(0x0c45, 0x608f), SB(OV7630, 103)},
1235#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1236 {USB_DEVICE(0x0c45, 0x60af), SB(PAS202, 103)},
1237#endif
1238 {USB_DEVICE(0x0c45, 0x60b0), SB(OV7630, 103)},
1217 {} 1239 {}
1218}; 1240};
1219MODULE_DEVICE_TABLE(usb, device_table); 1241MODULE_DEVICE_TABLE(usb, device_table);
@@ -1231,6 +1253,10 @@ static struct usb_driver sd_driver = {
1231 .id_table = device_table, 1253 .id_table = device_table,
1232 .probe = sd_probe, 1254 .probe = sd_probe,
1233 .disconnect = gspca_disconnect, 1255 .disconnect = gspca_disconnect,
1256#ifdef CONFIG_PM
1257 .suspend = gspca_suspend,
1258 .resume = gspca_resume,
1259#endif
1234}; 1260};
1235 1261
1236/* -- module insert / remove -- */ 1262/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/sonixj.c b/drivers/media/video/gspca/sonixj.c
index 245a30ec5fb..d75b1d20b31 100644
--- a/drivers/media/video/gspca/sonixj.c
+++ b/drivers/media/video/gspca/sonixj.c
@@ -54,8 +54,10 @@ struct sd {
54#define SENSOR_HV7131R 0 54#define SENSOR_HV7131R 0
55#define SENSOR_MI0360 1 55#define SENSOR_MI0360 1
56#define SENSOR_MO4000 2 56#define SENSOR_MO4000 2
57#define SENSOR_OV7648 3 57#define SENSOR_OM6802 3
58#define SENSOR_OV7660 4 58#define SENSOR_OV7630 4
59#define SENSOR_OV7648 5
60#define SENSOR_OV7660 6
59 unsigned char i2c_base; 61 unsigned char i2c_base;
60}; 62};
61 63
@@ -76,7 +78,8 @@ static struct ctrl sd_ctrls[] = {
76 .type = V4L2_CTRL_TYPE_INTEGER, 78 .type = V4L2_CTRL_TYPE_INTEGER,
77 .name = "Brightness", 79 .name = "Brightness",
78 .minimum = 0, 80 .minimum = 0,
79 .maximum = 0xffff, 81#define BRIGHTNESS_MAX 0xffff
82 .maximum = BRIGHTNESS_MAX,
80 .step = 1, 83 .step = 1,
81#define BRIGHTNESS_DEF 0x7fff 84#define BRIGHTNESS_DEF 0x7fff
82 .default_value = BRIGHTNESS_DEF, 85 .default_value = BRIGHTNESS_DEF,
@@ -90,7 +93,8 @@ static struct ctrl sd_ctrls[] = {
90 .type = V4L2_CTRL_TYPE_INTEGER, 93 .type = V4L2_CTRL_TYPE_INTEGER,
91 .name = "Contrast", 94 .name = "Contrast",
92 .minimum = 0, 95 .minimum = 0,
93 .maximum = 127, 96#define CONTRAST_MAX 127
97 .maximum = CONTRAST_MAX,
94 .step = 1, 98 .step = 1,
95#define CONTRAST_DEF 63 99#define CONTRAST_DEF 63
96 .default_value = CONTRAST_DEF, 100 .default_value = CONTRAST_DEF,
@@ -104,14 +108,15 @@ static struct ctrl sd_ctrls[] = {
104 .type = V4L2_CTRL_TYPE_INTEGER, 108 .type = V4L2_CTRL_TYPE_INTEGER,
105 .name = "Color", 109 .name = "Color",
106 .minimum = 0, 110 .minimum = 0,
107 .maximum = 255, 111 .maximum = 64,
108 .step = 1, 112 .step = 1,
109#define COLOR_DEF 127 113#define COLOR_DEF 32
110 .default_value = COLOR_DEF, 114 .default_value = COLOR_DEF,
111 }, 115 },
112 .set = sd_setcolors, 116 .set = sd_setcolors,
113 .get = sd_getcolors, 117 .get = sd_getcolors,
114 }, 118 },
119#define AUTOGAIN_IDX 3
115 { 120 {
116 { 121 {
117 .id = V4L2_CID_AUTOGAIN, 122 .id = V4L2_CID_AUTOGAIN,
@@ -131,7 +136,7 @@ static struct ctrl sd_ctrls[] = {
131static struct v4l2_pix_format vga_mode[] = { 136static struct v4l2_pix_format vga_mode[] = {
132 {160, 120, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 137 {160, 120, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
133 .bytesperline = 160, 138 .bytesperline = 160,
134 .sizeimage = 160 * 120 * 3 / 8 + 590, 139 .sizeimage = 160 * 120 * 4 / 8 + 590,
135 .colorspace = V4L2_COLORSPACE_JPEG, 140 .colorspace = V4L2_COLORSPACE_JPEG,
136 .priv = 2}, 141 .priv = 2},
137 {320, 240, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 142 {320, 240, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
@@ -180,6 +185,31 @@ static const __u8 sn_mo4000[] = {
180 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 185 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
181}; 186};
182 187
188static const __u8 sn_om6802[] = {
189/* reg0 reg1 reg2 reg3 reg4 reg5 reg6 reg7 */
190 0x00, 0x23, 0x72, 0x00, 0x1a, 0x34, 0x27, 0x20,
191/* reg8 reg9 rega regb regc regd rege regf */
192 0x80, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
193/* reg10 reg11 reg12 reg13 reg14 reg15 reg16 reg17 */
194 0x03, 0x00, 0x51, 0x01, 0x00, 0x28, 0x1e, 0x40,
195/* reg18 reg19 reg1a reg1b reg1c reg1d reg1e reg1f */
196 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
197 0x08, 0x22, 0x44, 0x63, 0x7d, 0x92, 0xa3, 0xaf,
198 0xbc, 0xc4, 0xcd, 0xd5, 0xdc, 0xe1, 0xe8, 0xef,
199 0xf7
200};
201
202static const __u8 sn_ov7630[] = {
203/* reg0 reg1 reg2 reg3 reg4 reg5 reg6 reg7 */
204 0x00, 0x21, 0x40, 0x00, 0x1a, 0x20, 0x1f, 0x20,
205/* reg8 reg9 rega regb regc regd rege regf */
206 0xa1, 0x21, 0x76, 0x21, 0x00, 0x00, 0x00, 0x10,
207/* reg10 reg11 reg12 reg13 reg14 reg15 reg16 reg17 */
208 0x03, 0x00, 0x04, 0x01, 0x0a, 0x28, 0x1e, 0xc2,
209/* reg18 reg19 reg1a reg1b reg1c reg1d reg1e reg1f */
210 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00
211};
212
183static const __u8 sn_ov7648[] = { 213static const __u8 sn_ov7648[] = {
184/* reg0 reg1 reg2 reg3 reg4 reg5 reg6 reg7 */ 214/* reg0 reg1 reg2 reg3 reg4 reg5 reg6 reg7 */
185 0x00, 0x21, 0x62, 0x00, 0x1a, 0x20, 0x20, 0x20, 215 0x00, 0x21, 0x62, 0x00, 0x1a, 0x20, 0x20, 0x20,
@@ -207,31 +237,22 @@ static const __u8 *sn_tb[] = {
207 sn_hv7131, 237 sn_hv7131,
208 sn_mi0360, 238 sn_mi0360,
209 sn_mo4000, 239 sn_mo4000,
240 sn_om6802,
241 sn_ov7630,
210 sn_ov7648, 242 sn_ov7648,
211 sn_ov7660 243 sn_ov7660
212}; 244};
213 245
214static const __u8 regsn20[] = { 246static const __u8 gamma_def[] = {
215 0x00, 0x2d, 0x46, 0x5a, 0x6c, 0x7c, 0x8b, 0x99, 247 0x00, 0x2d, 0x46, 0x5a, 0x6c, 0x7c, 0x8b, 0x99,
216 0xa6, 0xb2, 0xbf, 0xca, 0xd5, 0xe0, 0xeb, 0xf5, 0xff 248 0xa6, 0xb2, 0xbf, 0xca, 0xd5, 0xe0, 0xeb, 0xf5, 0xff
217}; 249};
218static const __u8 regsn20_sn9c325[] = {
219 0x0a, 0x3a, 0x56, 0x6c, 0x7e, 0x8d, 0x9a, 0xa4,
220 0xaf, 0xbb, 0xc5, 0xcd, 0xd5, 0xde, 0xe8, 0xed, 0xf5
221};
222 250
223static const __u8 reg84[] = { 251static const __u8 reg84[] = {
224 0x14, 0x00, 0x27, 0x00, 0x07, 0x00, 0xe5, 0x0f, 252 0x14, 0x00, 0x27, 0x00, 0x07, 0x00, 0xe5, 0x0f,
225 0xe4, 0x0f, 0x38, 0x00, 0x3e, 0x00, 0xc3, 0x0f, 253 0xe4, 0x0f, 0x38, 0x00, 0x3e, 0x00, 0xc3, 0x0f,
226/* 0x00, 0x00, 0x00, 0x00, 0x00 */ 254 0xf7, 0x0f, 0x00, 0x00, 0x00
227 0xf7, 0x0f, 0x0a, 0x00, 0x00
228};
229static const __u8 reg84_sn9c325[] = {
230 0x14, 0x00, 0x27, 0x00, 0x07, 0x00, 0xe4, 0x0f,
231 0xd3, 0x0f, 0x4b, 0x00, 0x48, 0x00, 0xc0, 0x0f,
232 0xf8, 0x0f, 0x00, 0x00, 0x00
233}; 255};
234
235static const __u8 hv7131r_sensor_init[][8] = { 256static const __u8 hv7131r_sensor_init[][8] = {
236 {0xC1, 0x11, 0x01, 0x08, 0x01, 0x00, 0x00, 0x10}, 257 {0xC1, 0x11, 0x01, 0x08, 0x01, 0x00, 0x00, 0x10},
237 {0xB1, 0x11, 0x34, 0x17, 0x7F, 0x00, 0x00, 0x10}, 258 {0xB1, 0x11, 0x34, 0x17, 0x7F, 0x00, 0x00, 0x10},
@@ -340,6 +361,92 @@ static const __u8 mo4000_sensor_init[][8] = {
340 {0xa1, 0x21, 0x11, 0x38, 0x00, 0x00, 0x00, 0x10}, 361 {0xa1, 0x21, 0x11, 0x38, 0x00, 0x00, 0x00, 0x10},
341 {} 362 {}
342}; 363};
364static __u8 om6802_sensor_init[][8] = {
365 {0xa0, 0x34, 0x90, 0x05, 0x00, 0x00, 0x00, 0x10},
366 {0xa0, 0x34, 0x49, 0x85, 0x00, 0x00, 0x00, 0x10},
367 {0xa0, 0x34, 0x5a, 0xc0, 0x00, 0x00, 0x00, 0x10},
368 {0xa0, 0x34, 0xdd, 0x18, 0x00, 0x00, 0x00, 0x10},
369/* {0xa0, 0x34, 0xfb, 0x11, 0x00, 0x00, 0x00, 0x10}, */
370 {0xa0, 0x34, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x10},
371 /* white balance & auto-exposure */
372/* {0xa0, 0x34, 0xf1, 0x02, 0x00, 0x00, 0x00, 0x10},
373 * set color mode */
374/* {0xa0, 0x34, 0xfe, 0x5b, 0x00, 0x00, 0x00, 0x10},
375 * max AGC value in AE */
376/* {0xa0, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x10},
377 * preset AGC */
378/* {0xa0, 0x34, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x10},
379 * preset brightness */
380/* {0xa0, 0x34, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x10},
381 * preset contrast */
382/* {0xa0, 0x34, 0xe8, 0x31, 0x00, 0x00, 0x00, 0x10},
383 * preset gamma */
384 {0xa0, 0x34, 0xe9, 0x0f, 0x00, 0x00, 0x00, 0x10},
385 /* luminance mode (0x4f = AE) */
386 {0xa0, 0x34, 0xe4, 0xff, 0x00, 0x00, 0x00, 0x10},
387 /* preset shutter */
388/* {0xa0, 0x34, 0xef, 0x00, 0x00, 0x00, 0x00, 0x10},
389 * auto frame rate */
390/* {0xa0, 0x34, 0xfb, 0xee, 0x00, 0x00, 0x00, 0x10}, */
391
392/* {0xa0, 0x34, 0x71, 0x84, 0x00, 0x00, 0x00, 0x10}, */
393/* {0xa0, 0x34, 0x72, 0x05, 0x00, 0x00, 0x00, 0x10}, */
394/* {0xa0, 0x34, 0x68, 0x80, 0x00, 0x00, 0x00, 0x10}, */
395/* {0xa0, 0x34, 0x69, 0x01, 0x00, 0x00, 0x00, 0x10}, */
396 {}
397};
398static const __u8 ov7630_sensor_init[][8] = {
399 {0xa1, 0x21, 0x76, 0x01, 0x00, 0x00, 0x00, 0x10},
400 {0xa1, 0x21, 0x12, 0xc8, 0x00, 0x00, 0x00, 0x10},
401/* win: delay 20ms */
402 {0xa1, 0x21, 0x12, 0x48, 0x00, 0x00, 0x00, 0x10},
403 {0xa1, 0x21, 0x12, 0xc8, 0x00, 0x00, 0x00, 0x10},
404/* win: delay 20ms */
405 {0xa1, 0x21, 0x12, 0x48, 0x00, 0x00, 0x00, 0x10},
406/* win: i2c_r from 00 to 80 */
407 {0xd1, 0x21, 0x03, 0x80, 0x10, 0x20, 0x80, 0x10},
408 {0xb1, 0x21, 0x0c, 0x20, 0x20, 0x00, 0x00, 0x10},
409 {0xd1, 0x21, 0x11, 0x00, 0x48, 0xc0, 0x00, 0x10},
410 {0xb1, 0x21, 0x15, 0x80, 0x03, 0x00, 0x00, 0x10},
411 {0xd1, 0x21, 0x17, 0x1b, 0xbd, 0x05, 0xf6, 0x10},
412 {0xa1, 0x21, 0x1b, 0x04, 0x00, 0x00, 0x00, 0x10},
413 {0xd1, 0x21, 0x1f, 0x00, 0x80, 0x80, 0x80, 0x10},
414 {0xd1, 0x21, 0x23, 0xde, 0x10, 0x8a, 0xa0, 0x10},
415 {0xc1, 0x21, 0x27, 0xca, 0xa2, 0x74, 0x00, 0x10},
416 {0xd1, 0x21, 0x2a, 0x88, 0x00, 0x88, 0x01, 0x10},
417 {0xc1, 0x21, 0x2e, 0x80, 0x00, 0x18, 0x00, 0x10},
418 {0xa1, 0x21, 0x21, 0x08, 0x00, 0x00, 0x00, 0x10},
419 {0xa1, 0x21, 0x22, 0x00, 0x00, 0x00, 0x00, 0x10},
420 {0xa1, 0x21, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x10},
421 {0xb1, 0x21, 0x32, 0xc2, 0x08, 0x00, 0x00, 0x10},
422 {0xb1, 0x21, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x10},
423 {0xd1, 0x21, 0x60, 0x05, 0x40, 0x12, 0x57, 0x10},
424 {0xa1, 0x21, 0x64, 0x73, 0x00, 0x00, 0x00, 0x10},
425 {0xd1, 0x21, 0x65, 0x00, 0x55, 0x01, 0xac, 0x10},
426 {0xa1, 0x21, 0x69, 0x38, 0x00, 0x00, 0x00, 0x10},
427 {0xd1, 0x21, 0x6f, 0x1f, 0x01, 0x00, 0x10, 0x10},
428 {0xd1, 0x21, 0x73, 0x50, 0x20, 0x02, 0x01, 0x10},
429 {0xd1, 0x21, 0x77, 0xf3, 0x90, 0x98, 0x98, 0x10},
430 {0xc1, 0x21, 0x7b, 0x00, 0x4c, 0xf7, 0x00, 0x10},
431 {0xd1, 0x21, 0x17, 0x1b, 0xbd, 0x05, 0xf6, 0x10},
432 {0xa1, 0x21, 0x1b, 0x04, 0x00, 0x00, 0x00, 0x10},
433/* */
434 {0xa1, 0x21, 0x12, 0x48, 0x00, 0x00, 0x00, 0x10},
435 {0xa1, 0x21, 0x12, 0x48, 0x00, 0x00, 0x00, 0x10},
436/*fixme: + 0x12, 0x04*/
437 {0xa1, 0x21, 0x75, 0x82, 0x00, 0x00, 0x00, 0x10},
438 {0xa1, 0x21, 0x10, 0x32, 0x00, 0x00, 0x00, 0x10},
439 {0xa1, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10},
440 {0xb1, 0x21, 0x01, 0x80, 0x80, 0x00, 0x00, 0x10},
441/* */
442 {0xa1, 0x21, 0x11, 0x00, 0x00, 0x00, 0x00, 0x10},
443 {0xa1, 0x21, 0x2a, 0x88, 0x00, 0x00, 0x00, 0x10},
444 {0xa1, 0x21, 0x2b, 0x34, 0x00, 0x00, 0x00, 0x10},
445/* */
446 {0xa1, 0x21, 0x10, 0x83, 0x00, 0x00, 0x00, 0x10},
447/* {0xb1, 0x21, 0x01, 0x88, 0x70, 0x00, 0x00, 0x10}, */
448 {}
449};
343static const __u8 ov7660_sensor_init[][8] = { 450static const __u8 ov7660_sensor_init[][8] = {
344 {0xa1, 0x21, 0x12, 0x80, 0x00, 0x00, 0x00, 0x10}, /* reset SCCB */ 451 {0xa1, 0x21, 0x12, 0x80, 0x00, 0x00, 0x00, 0x10}, /* reset SCCB */
345/* (delay 20ms) */ 452/* (delay 20ms) */
@@ -506,10 +613,16 @@ static const __u8 qtable4[] = {
506 0x29, 0x29, 0x29, 0x29 613 0x29, 0x29, 0x29, 0x29
507}; 614};
508 615
509/* read <len> bytes (len < sizeof gspca_dev->usb_buf) to gspca_dev->usb_buf */ 616/* read <len> bytes to gspca_dev->usb_buf */
510static void reg_r(struct gspca_dev *gspca_dev, 617static void reg_r(struct gspca_dev *gspca_dev,
511 __u16 value, int len) 618 __u16 value, int len)
512{ 619{
620#ifdef GSPCA_DEBUG
621 if (len > USB_BUF_SZ) {
622 err("reg_r: buffer overflow");
623 return;
624 }
625#endif
513 usb_control_msg(gspca_dev->dev, 626 usb_control_msg(gspca_dev->dev,
514 usb_rcvctrlpipe(gspca_dev->dev, 0), 627 usb_rcvctrlpipe(gspca_dev->dev, 0),
515 0, 628 0,
@@ -542,29 +655,20 @@ static void reg_w(struct gspca_dev *gspca_dev,
542{ 655{
543 PDEBUG(D_USBO, "reg_w [%02x] = %02x %02x ..", 656 PDEBUG(D_USBO, "reg_w [%02x] = %02x %02x ..",
544 value, buffer[0], buffer[1]); 657 value, buffer[0], buffer[1]);
545 if (len <= sizeof gspca_dev->usb_buf) { 658#ifdef GSPCA_DEBUG
546 memcpy(gspca_dev->usb_buf, buffer, len); 659 if (len > USB_BUF_SZ) {
547 usb_control_msg(gspca_dev->dev, 660 err("reg_w: buffer overflow");
548 usb_sndctrlpipe(gspca_dev->dev, 0), 661 return;
549 0x08,
550 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_INTERFACE,
551 value, 0,
552 gspca_dev->usb_buf, len,
553 500);
554 } else {
555 __u8 *tmpbuf;
556
557 tmpbuf = kmalloc(len, GFP_KERNEL);
558 memcpy(tmpbuf, buffer, len);
559 usb_control_msg(gspca_dev->dev,
560 usb_sndctrlpipe(gspca_dev->dev, 0),
561 0x08,
562 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_INTERFACE,
563 value, 0,
564 tmpbuf, len,
565 500);
566 kfree(tmpbuf);
567 } 662 }
663#endif
664 memcpy(gspca_dev->usb_buf, buffer, len);
665 usb_control_msg(gspca_dev->dev,
666 usb_sndctrlpipe(gspca_dev->dev, 0),
667 0x08,
668 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_INTERFACE,
669 value, 0,
670 gspca_dev->usb_buf, len,
671 500);
568} 672}
569 673
570/* I2C write 1 byte */ 674/* I2C write 1 byte */
@@ -665,7 +769,7 @@ static int configure_gpio(struct gspca_dev *gspca_dev,
665 static const __u8 regd4[] = {0x60, 0x00, 0x00}; 769 static const __u8 regd4[] = {0x60, 0x00, 0x00};
666 770
667 reg_w1(gspca_dev, 0xf1, 0x00); 771 reg_w1(gspca_dev, 0xf1, 0x00);
668 reg_w1(gspca_dev, 0x01, 0x00); /*jfm was sn9c1xx[1] in v1*/ 772 reg_w1(gspca_dev, 0x01, sn9c1xx[1]);
669 773
670 /* configure gpio */ 774 /* configure gpio */
671 reg_w(gspca_dev, 0x01, &sn9c1xx[1], 2); 775 reg_w(gspca_dev, 0x01, &sn9c1xx[1], 2);
@@ -685,21 +789,41 @@ static int configure_gpio(struct gspca_dev *gspca_dev,
685 789
686 reg_w(gspca_dev, 0x03, &sn9c1xx[3], 0x0f); 790 reg_w(gspca_dev, 0x03, &sn9c1xx[3], 0x0f);
687 791
688 switch (sd->bridge) { 792 switch (sd->sensor) {
689 case BRIDGE_SN9C325: 793 case SENSOR_OM6802:
794 reg_w1(gspca_dev, 0x02, 0x71);
795 reg_w1(gspca_dev, 0x01, 0x42);
796 reg_w1(gspca_dev, 0x17, 0x64);
797 reg_w1(gspca_dev, 0x01, 0x42);
798 break;
799/*jfm: from win trace */
800 case SENSOR_OV7630:
801 reg_w1(gspca_dev, 0x01, 0x61);
802 reg_w1(gspca_dev, 0x17, 0xe2);
803 reg_w1(gspca_dev, 0x01, 0x60);
804 reg_w1(gspca_dev, 0x01, 0x40);
805 break;
806 case SENSOR_OV7648:
690 reg_w1(gspca_dev, 0x01, 0x43); 807 reg_w1(gspca_dev, 0x01, 0x43);
691 reg_w1(gspca_dev, 0x17, 0xae); 808 reg_w1(gspca_dev, 0x17, 0xae);
692 reg_w1(gspca_dev, 0x01, 0x42); 809 reg_w1(gspca_dev, 0x01, 0x42);
693 break; 810 break;
811/*jfm: from win trace */
812 case SENSOR_OV7660:
813 reg_w1(gspca_dev, 0x01, 0x61);
814 reg_w1(gspca_dev, 0x17, 0x20);
815 reg_w1(gspca_dev, 0x01, 0x60);
816 reg_w1(gspca_dev, 0x01, 0x40);
817 break;
694 default: 818 default:
695 reg_w1(gspca_dev, 0x01, 0x43); 819 reg_w1(gspca_dev, 0x01, 0x43);
696 reg_w1(gspca_dev, 0x17, 0x61); 820 reg_w1(gspca_dev, 0x17, 0x61);
697 reg_w1(gspca_dev, 0x01, 0x42); 821 reg_w1(gspca_dev, 0x01, 0x42);
698 } 822 if (sd->sensor == SENSOR_HV7131R) {
699 823 if (probesensor(gspca_dev) < 0)
700 if (sd->sensor == SENSOR_HV7131R) { 824 return -ENODEV;
701 if (probesensor(gspca_dev) < 0) 825 }
702 return -ENODEV; 826 break;
703 } 827 }
704 return 0; 828 return 0;
705} 829}
@@ -737,6 +861,40 @@ static void mo4000_InitSensor(struct gspca_dev *gspca_dev)
737 } 861 }
738} 862}
739 863
864static void om6802_InitSensor(struct gspca_dev *gspca_dev)
865{
866 int i = 0;
867
868 while (om6802_sensor_init[i][0]) {
869 i2c_w8(gspca_dev, om6802_sensor_init[i]);
870 i++;
871 }
872}
873
874static void ov7630_InitSensor(struct gspca_dev *gspca_dev)
875{
876 int i = 0;
877
878 i2c_w8(gspca_dev, ov7630_sensor_init[i]); /* 76 01 */
879 i++;
880 i2c_w8(gspca_dev, ov7630_sensor_init[i]); /* 12 c8 (RGB+SRST) */
881 i++;
882 msleep(20);
883 i2c_w8(gspca_dev, ov7630_sensor_init[i]); /* 12 48 */
884 i++;
885 i2c_w8(gspca_dev, ov7630_sensor_init[i]); /* 12 c8 */
886 i++;
887 msleep(20);
888 i2c_w8(gspca_dev, ov7630_sensor_init[i]); /* 12 48 */
889 i++;
890/*jfm:win i2c_r from 00 to 80*/
891
892 while (ov7630_sensor_init[i][0]) {
893 i2c_w8(gspca_dev, ov7630_sensor_init[i]);
894 i++;
895 }
896}
897
740static void ov7648_InitSensor(struct gspca_dev *gspca_dev) 898static void ov7648_InitSensor(struct gspca_dev *gspca_dev)
741{ 899{
742 int i = 0; 900 int i = 0;
@@ -783,11 +941,19 @@ static int sd_config(struct gspca_dev *gspca_dev,
783 sd->autogain = AUTOGAIN_DEF; 941 sd->autogain = AUTOGAIN_DEF;
784 sd->ag_cnt = -1; 942 sd->ag_cnt = -1;
785 943
944 switch (sd->sensor) {
945 case SENSOR_OV7630:
946 case SENSOR_OV7648:
947 case SENSOR_OV7660:
948 gspca_dev->ctrl_dis = (1 << AUTOGAIN_IDX);
949 break;
950 }
951
786 return 0; 952 return 0;
787} 953}
788 954
789/* this function is called at open time */ 955/* this function is called at probe and resume time */
790static int sd_open(struct gspca_dev *gspca_dev) 956static int sd_init(struct gspca_dev *gspca_dev)
791{ 957{
792 struct sd *sd = (struct sd *) gspca_dev; 958 struct sd *sd = (struct sd *) gspca_dev;
793/* const __u8 *sn9c1xx; */ 959/* const __u8 *sn9c1xx; */
@@ -891,16 +1057,53 @@ static unsigned int setexposure(struct gspca_dev *gspca_dev,
891 | ((expoMo10[3] & 0x30) >> 4)); 1057 | ((expoMo10[3] & 0x30) >> 4));
892 break; 1058 break;
893 } 1059 }
1060 case SENSOR_OM6802: {
1061 __u8 gainOm[] =
1062 { 0xa0, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x10 };
1063
1064 if (expo > 0x03ff)
1065 expo = 0x03ff;
1066 if (expo < 0x0001)
1067 expo = 0x0001;
1068 gainOm[3] = expo >> 2;
1069 i2c_w8(gspca_dev, gainOm);
1070 reg_w1(gspca_dev, 0x96, (expo >> 5) & 0x1f);
1071 PDEBUG(D_CONF, "set exposure %d", gainOm[3]);
1072 break;
1073 }
894 } 1074 }
895 return expo; 1075 return expo;
896} 1076}
897 1077
1078/* this function is used for sensors o76xx only */
1079static void setbrightcont(struct gspca_dev *gspca_dev)
1080{
1081 struct sd *sd = (struct sd *) gspca_dev;
1082 unsigned val;
1083 __u8 reg84_full[0x15];
1084
1085 memset(reg84_full, 0, sizeof reg84_full);
1086 val = sd->contrast * 0x20 / CONTRAST_MAX + 0x10; /* 10..30 */
1087 reg84_full[2] = val;
1088 reg84_full[0] = (val + 1) / 2;
1089 reg84_full[4] = (val + 1) / 5;
1090 if (val > BRIGHTNESS_DEF)
1091 val = (sd->brightness - BRIGHTNESS_DEF) * 0x20
1092 / BRIGHTNESS_MAX;
1093 else
1094 val = 0;
1095 reg84_full[0x12] = val; /* 00..1f */
1096 reg_w(gspca_dev, 0x84, reg84_full, sizeof reg84_full);
1097}
1098
1099/* sensor != ov76xx */
898static void setbrightness(struct gspca_dev *gspca_dev) 1100static void setbrightness(struct gspca_dev *gspca_dev)
899{ 1101{
900 struct sd *sd = (struct sd *) gspca_dev; 1102 struct sd *sd = (struct sd *) gspca_dev;
901 unsigned int expo; 1103 unsigned int expo;
902 __u8 k2; 1104 __u8 k2;
903 1105
1106 k2 = sd->brightness >> 10;
904 switch (sd->sensor) { 1107 switch (sd->sensor) {
905 case SENSOR_HV7131R: 1108 case SENSOR_HV7131R:
906 expo = sd->brightness << 4; 1109 expo = sd->brightness << 4;
@@ -915,12 +1118,17 @@ static void setbrightness(struct gspca_dev *gspca_dev)
915 expo = sd->brightness >> 4; 1118 expo = sd->brightness >> 4;
916 sd->exposure = setexposure(gspca_dev, expo); 1119 sd->exposure = setexposure(gspca_dev, expo);
917 break; 1120 break;
1121 case SENSOR_OM6802:
1122 expo = sd->brightness >> 6;
1123 sd->exposure = setexposure(gspca_dev, expo);
1124 k2 = sd->brightness >> 11;
1125 break;
918 } 1126 }
919 1127
920 k2 = sd->brightness >> 10;
921 reg_w1(gspca_dev, 0x96, k2); 1128 reg_w1(gspca_dev, 0x96, k2);
922} 1129}
923 1130
1131/* sensor != ov76xx */
924static void setcontrast(struct gspca_dev *gspca_dev) 1132static void setcontrast(struct gspca_dev *gspca_dev)
925{ 1133{
926 struct sd *sd = (struct sd *) gspca_dev; 1134 struct sd *sd = (struct sd *) gspca_dev;
@@ -937,31 +1145,30 @@ static void setcontrast(struct gspca_dev *gspca_dev)
937static void setcolors(struct gspca_dev *gspca_dev) 1145static void setcolors(struct gspca_dev *gspca_dev)
938{ 1146{
939 struct sd *sd = (struct sd *) gspca_dev; 1147 struct sd *sd = (struct sd *) gspca_dev;
940 __u8 data; 1148 __u8 blue, red;
941 int colour;
942 1149
943 colour = sd->colors - 128; 1150 if (sd->colors >= 32) {
944 if (colour > 0) 1151 red = 32 + (sd->colors - 32) / 2;
945 data = (colour + 32) & 0x7f; /* blue */ 1152 blue = 64 - sd->colors;
946 else 1153 } else {
947 data = (-colour + 32) & 0x7f; /* red */ 1154 red = sd->colors;
948 reg_w1(gspca_dev, 0x05, data); 1155 blue = 32 + (32 - sd->colors) / 2;
1156 }
1157 reg_w1(gspca_dev, 0x05, red);
1158/* reg_w1(gspca_dev, 0x07, 32); */
1159 reg_w1(gspca_dev, 0x06, blue);
949} 1160}
950 1161
951static void setautogain(struct gspca_dev *gspca_dev) 1162static void setautogain(struct gspca_dev *gspca_dev)
952{ 1163{
953 struct sd *sd = (struct sd *) gspca_dev; 1164 struct sd *sd = (struct sd *) gspca_dev;
954 1165
955 switch (sd->sensor) { 1166 if (gspca_dev->ctrl_dis & (1 << AUTOGAIN_IDX))
956 case SENSOR_HV7131R: 1167 return;
957 case SENSOR_MO4000: 1168 if (sd->autogain)
958 case SENSOR_MI0360: 1169 sd->ag_cnt = AG_CNT_START;
959 if (sd->autogain) 1170 else
960 sd->ag_cnt = AG_CNT_START; 1171 sd->ag_cnt = -1;
961 else
962 sd->ag_cnt = -1;
963 break;
964 }
965} 1172}
966 1173
967/* -- start the camera -- */ 1174/* -- start the camera -- */
@@ -975,13 +1182,12 @@ static void sd_start(struct gspca_dev *gspca_dev)
975 static const __u8 C0[] = { 0x2d, 0x2d, 0x3a, 0x05, 0x04, 0x3f }; 1182 static const __u8 C0[] = { 0x2d, 0x2d, 0x3a, 0x05, 0x04, 0x3f };
976 static const __u8 CA[] = { 0x28, 0xd8, 0x14, 0xec }; 1183 static const __u8 CA[] = { 0x28, 0xd8, 0x14, 0xec };
977 static const __u8 CE[] = { 0x32, 0xdd, 0x2d, 0xdd }; /* MI0360 */ 1184 static const __u8 CE[] = { 0x32, 0xdd, 0x2d, 0xdd }; /* MI0360 */
978 static const __u8 CE_sn9c325[] = 1185 static const __u8 CE_ov76xx[] =
979 { 0x32, 0xdd, 0x32, 0xdd }; /* OV7648 - SN9C325 */ 1186 { 0x32, 0xdd, 0x32, 0xdd }; /* OV7630/48 */
980 1187
981 sn9c1xx = sn_tb[(int) sd->sensor]; 1188 sn9c1xx = sn_tb[(int) sd->sensor];
982 configure_gpio(gspca_dev, sn9c1xx); 1189 configure_gpio(gspca_dev, sn9c1xx);
983 1190
984/* reg_w1(gspca_dev, 0x01, 0x44); jfm from win trace*/
985 reg_w1(gspca_dev, 0x15, sn9c1xx[0x15]); 1191 reg_w1(gspca_dev, 0x15, sn9c1xx[0x15]);
986 reg_w1(gspca_dev, 0x16, sn9c1xx[0x16]); 1192 reg_w1(gspca_dev, 0x16, sn9c1xx[0x16]);
987 reg_w1(gspca_dev, 0x12, sn9c1xx[0x12]); 1193 reg_w1(gspca_dev, 0x12, sn9c1xx[0x12]);
@@ -994,10 +1200,17 @@ static void sd_start(struct gspca_dev *gspca_dev)
994 reg_w1(gspca_dev, 0xc8, 0x50); 1200 reg_w1(gspca_dev, 0xc8, 0x50);
995 reg_w1(gspca_dev, 0xc9, 0x3c); 1201 reg_w1(gspca_dev, 0xc9, 0x3c);
996 reg_w1(gspca_dev, 0x18, sn9c1xx[0x18]); 1202 reg_w1(gspca_dev, 0x18, sn9c1xx[0x18]);
997 switch (sd->bridge) { 1203 switch (sd->sensor) {
998 case BRIDGE_SN9C325: 1204 case SENSOR_OV7630:
1205 reg17 = 0xe2;
1206 break;
1207 case SENSOR_OV7648:
999 reg17 = 0xae; 1208 reg17 = 0xae;
1000 break; 1209 break;
1210/*jfm: from win trace */
1211 case SENSOR_OV7660:
1212 reg17 = 0xa0;
1213 break;
1001 default: 1214 default:
1002 reg17 = 0x60; 1215 reg17 = 0x60;
1003 break; 1216 break;
@@ -1007,24 +1220,11 @@ static void sd_start(struct gspca_dev *gspca_dev)
1007 reg_w1(gspca_dev, 0x07, sn9c1xx[7]); 1220 reg_w1(gspca_dev, 0x07, sn9c1xx[7]);
1008 reg_w1(gspca_dev, 0x06, sn9c1xx[6]); 1221 reg_w1(gspca_dev, 0x06, sn9c1xx[6]);
1009 reg_w1(gspca_dev, 0x14, sn9c1xx[0x14]); 1222 reg_w1(gspca_dev, 0x14, sn9c1xx[0x14]);
1010 switch (sd->bridge) { 1223 reg_w(gspca_dev, 0x20, gamma_def, sizeof gamma_def);
1011 case BRIDGE_SN9C325: 1224 for (i = 0; i < 8; i++)
1012 reg_w(gspca_dev, 0x20, regsn20_sn9c325, 1225 reg_w(gspca_dev, 0x84, reg84, sizeof reg84);
1013 sizeof regsn20_sn9c325);
1014 for (i = 0; i < 8; i++)
1015 reg_w(gspca_dev, 0x84, reg84_sn9c325,
1016 sizeof reg84_sn9c325);
1017 reg_w1(gspca_dev, 0x9a, 0x0a);
1018 reg_w1(gspca_dev, 0x99, 0x60);
1019 break;
1020 default:
1021 reg_w(gspca_dev, 0x20, regsn20, sizeof regsn20);
1022 for (i = 0; i < 8; i++)
1023 reg_w(gspca_dev, 0x84, reg84, sizeof reg84);
1024 reg_w1(gspca_dev, 0x9a, 0x08); 1226 reg_w1(gspca_dev, 0x9a, 0x08);
1025 reg_w1(gspca_dev, 0x99, 0x59); 1227 reg_w1(gspca_dev, 0x99, 0x59);
1026 break;
1027 }
1028 1228
1029 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv; 1229 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv;
1030 if (mode) 1230 if (mode)
@@ -1049,6 +1249,15 @@ static void sd_start(struct gspca_dev *gspca_dev)
1049/* reg1 = 0x06; * 640 clk 24Mz (done) */ 1249/* reg1 = 0x06; * 640 clk 24Mz (done) */
1050 } 1250 }
1051 break; 1251 break;
1252 case SENSOR_OM6802:
1253 om6802_InitSensor(gspca_dev);
1254 reg17 = 0x64; /* 640 MCKSIZE */
1255 break;
1256 case SENSOR_OV7630:
1257 ov7630_InitSensor(gspca_dev);
1258 reg17 = 0xe2;
1259 reg1 = 0x44;
1260 break;
1052 case SENSOR_OV7648: 1261 case SENSOR_OV7648:
1053 ov7648_InitSensor(gspca_dev); 1262 ov7648_InitSensor(gspca_dev);
1054 reg17 = 0xa2; 1263 reg17 = 0xa2;
@@ -1073,9 +1282,10 @@ static void sd_start(struct gspca_dev *gspca_dev)
1073 } 1282 }
1074 reg_w(gspca_dev, 0xc0, C0, 6); 1283 reg_w(gspca_dev, 0xc0, C0, 6);
1075 reg_w(gspca_dev, 0xca, CA, 4); 1284 reg_w(gspca_dev, 0xca, CA, 4);
1076 switch (sd->bridge) { 1285 switch (sd->sensor) {
1077 case BRIDGE_SN9C325: 1286 case SENSOR_OV7630:
1078 reg_w(gspca_dev, 0xce, CE_sn9c325, 4); 1287 case SENSOR_OV7648:
1288 reg_w(gspca_dev, 0xce, CE_ov76xx, 4);
1079 break; 1289 break;
1080 default: 1290 default:
1081 reg_w(gspca_dev, 0xce, CE, 4); 1291 reg_w(gspca_dev, 0xce, CE, 4);
@@ -1093,10 +1303,20 @@ static void sd_start(struct gspca_dev *gspca_dev)
1093 reg_w1(gspca_dev, 0x18, reg18); 1303 reg_w1(gspca_dev, 0x18, reg18);
1094 1304
1095 reg_w1(gspca_dev, 0x17, reg17); 1305 reg_w1(gspca_dev, 0x17, reg17);
1096 reg_w1(gspca_dev, 0x01, reg1); 1306 switch (sd->sensor) {
1097 setbrightness(gspca_dev); 1307 case SENSOR_HV7131R:
1098 setcontrast(gspca_dev); 1308 case SENSOR_MI0360:
1309 case SENSOR_MO4000:
1310 case SENSOR_OM6802:
1311 setbrightness(gspca_dev);
1312 setcontrast(gspca_dev);
1313 break;
1314 default: /* OV76xx */
1315 setbrightcont(gspca_dev);
1316 break;
1317 }
1099 setautogain(gspca_dev); 1318 setautogain(gspca_dev);
1319 reg_w1(gspca_dev, 0x01, reg1);
1100} 1320}
1101 1321
1102static void sd_stopN(struct gspca_dev *gspca_dev) 1322static void sd_stopN(struct gspca_dev *gspca_dev)
@@ -1119,6 +1339,7 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1119 i2c_w8(gspca_dev, stopmi0360); 1339 i2c_w8(gspca_dev, stopmi0360);
1120 data = 0x29; 1340 data = 0x29;
1121 break; 1341 break;
1342 case SENSOR_OV7630:
1122 case SENSOR_OV7648: 1343 case SENSOR_OV7648:
1123 data = 0x29; 1344 data = 0x29;
1124 break; 1345 break;
@@ -1132,15 +1353,7 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1132 reg_w1(gspca_dev, 0x17, sn9c1xx[0x17]); 1353 reg_w1(gspca_dev, 0x17, sn9c1xx[0x17]);
1133 reg_w1(gspca_dev, 0x01, sn9c1xx[1]); 1354 reg_w1(gspca_dev, 0x01, sn9c1xx[1]);
1134 reg_w1(gspca_dev, 0x01, data); 1355 reg_w1(gspca_dev, 0x01, data);
1135 reg_w1(gspca_dev, 0xf1, 0x01); 1356 reg_w1(gspca_dev, 0xf1, 0x00);
1136}
1137
1138static void sd_stop0(struct gspca_dev *gspca_dev)
1139{
1140}
1141
1142static void sd_close(struct gspca_dev *gspca_dev)
1143{
1144} 1357}
1145 1358
1146static void do_autogain(struct gspca_dev *gspca_dev) 1359static void do_autogain(struct gspca_dev *gspca_dev)
@@ -1174,6 +1387,7 @@ static void do_autogain(struct gspca_dev *gspca_dev)
1174 default: 1387 default:
1175/* case SENSOR_MO4000: */ 1388/* case SENSOR_MO4000: */
1176/* case SENSOR_MI0360: */ 1389/* case SENSOR_MI0360: */
1390/* case SENSOR_OM6802: */
1177 expotimes = sd->exposure; 1391 expotimes = sd->exposure;
1178 expotimes += (luma_mean - delta) >> 6; 1392 expotimes += (luma_mean - delta) >> 6;
1179 if (expotimes < 0) 1393 if (expotimes < 0)
@@ -1229,69 +1443,24 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1229 gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len); 1443 gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len);
1230} 1444}
1231 1445
1232static unsigned int getexposure(struct gspca_dev *gspca_dev)
1233{
1234 struct sd *sd = (struct sd *) gspca_dev;
1235 __u8 hexpo, mexpo, lexpo;
1236
1237 switch (sd->sensor) {
1238 case SENSOR_HV7131R:
1239 /* read sensor exposure */
1240 i2c_r5(gspca_dev, 0x25);
1241 return (gspca_dev->usb_buf[0] << 16)
1242 | (gspca_dev->usb_buf[1] << 8)
1243 | gspca_dev->usb_buf[2];
1244 case SENSOR_MI0360:
1245 /* read sensor exposure */
1246 i2c_r5(gspca_dev, 0x09);
1247 return (gspca_dev->usb_buf[0] << 8)
1248 | gspca_dev->usb_buf[1];
1249 case SENSOR_MO4000:
1250 i2c_r5(gspca_dev, 0x0e);
1251 hexpo = 0; /* gspca_dev->usb_buf[1] & 0x07; */
1252 mexpo = 0x40; /* gspca_dev->usb_buf[2] & 0xff; */
1253 lexpo = (gspca_dev->usb_buf[1] & 0x30) >> 4;
1254 PDEBUG(D_CONF, "exposure %d",
1255 (hexpo << 10) | (mexpo << 2) | lexpo);
1256 return (hexpo << 10) | (mexpo << 2) | lexpo;
1257 default:
1258/* case SENSOR_OV7648: * jfm: is it ok for 7648? */
1259/* case SENSOR_OV7660: */
1260 /* read sensor exposure */
1261 i2c_r5(gspca_dev, 0x04);
1262 hexpo = gspca_dev->usb_buf[3] & 0x2f;
1263 lexpo = gspca_dev->usb_buf[0] & 0x02;
1264 i2c_r5(gspca_dev, 0x08);
1265 mexpo = gspca_dev->usb_buf[2];
1266 return (hexpo << 10) | (mexpo << 2) | lexpo;
1267 }
1268}
1269
1270static void getbrightness(struct gspca_dev *gspca_dev)
1271{
1272 struct sd *sd = (struct sd *) gspca_dev;
1273
1274 /* hardcoded registers seem not readable */
1275 switch (sd->sensor) {
1276 case SENSOR_HV7131R:
1277 sd->brightness = getexposure(gspca_dev) >> 4;
1278 break;
1279 case SENSOR_MI0360:
1280 sd->brightness = getexposure(gspca_dev) << 4;
1281 break;
1282 case SENSOR_MO4000:
1283 sd->brightness = getexposure(gspca_dev) << 4;
1284 break;
1285 }
1286}
1287
1288static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val) 1446static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val)
1289{ 1447{
1290 struct sd *sd = (struct sd *) gspca_dev; 1448 struct sd *sd = (struct sd *) gspca_dev;
1291 1449
1292 sd->brightness = val; 1450 sd->brightness = val;
1293 if (gspca_dev->streaming) 1451 if (gspca_dev->streaming) {
1294 setbrightness(gspca_dev); 1452 switch (sd->sensor) {
1453 case SENSOR_HV7131R:
1454 case SENSOR_MI0360:
1455 case SENSOR_MO4000:
1456 case SENSOR_OM6802:
1457 setbrightness(gspca_dev);
1458 break;
1459 default: /* OV76xx */
1460 setbrightcont(gspca_dev);
1461 break;
1462 }
1463 }
1295 return 0; 1464 return 0;
1296} 1465}
1297 1466
@@ -1299,7 +1468,6 @@ static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val)
1299{ 1468{
1300 struct sd *sd = (struct sd *) gspca_dev; 1469 struct sd *sd = (struct sd *) gspca_dev;
1301 1470
1302 getbrightness(gspca_dev);
1303 *val = sd->brightness; 1471 *val = sd->brightness;
1304 return 0; 1472 return 0;
1305} 1473}
@@ -1309,8 +1477,19 @@ static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val)
1309 struct sd *sd = (struct sd *) gspca_dev; 1477 struct sd *sd = (struct sd *) gspca_dev;
1310 1478
1311 sd->contrast = val; 1479 sd->contrast = val;
1312 if (gspca_dev->streaming) 1480 if (gspca_dev->streaming) {
1313 setcontrast(gspca_dev); 1481 switch (sd->sensor) {
1482 case SENSOR_HV7131R:
1483 case SENSOR_MI0360:
1484 case SENSOR_MO4000:
1485 case SENSOR_OM6802:
1486 setcontrast(gspca_dev);
1487 break;
1488 default: /* OV76xx */
1489 setbrightcont(gspca_dev);
1490 break;
1491 }
1492 }
1314 return 0; 1493 return 0;
1315} 1494}
1316 1495
@@ -1364,11 +1543,9 @@ static const struct sd_desc sd_desc = {
1364 .ctrls = sd_ctrls, 1543 .ctrls = sd_ctrls,
1365 .nctrls = ARRAY_SIZE(sd_ctrls), 1544 .nctrls = ARRAY_SIZE(sd_ctrls),
1366 .config = sd_config, 1545 .config = sd_config,
1367 .open = sd_open, 1546 .init = sd_init,
1368 .start = sd_start, 1547 .start = sd_start,
1369 .stopN = sd_stopN, 1548 .stopN = sd_stopN,
1370 .stop0 = sd_stop0,
1371 .close = sd_close,
1372 .pkt_scan = sd_pkt_scan, 1549 .pkt_scan = sd_pkt_scan,
1373 .dq_callback = do_autogain, 1550 .dq_callback = do_autogain,
1374}; 1551};
@@ -1379,7 +1556,7 @@ static const struct sd_desc sd_desc = {
1379 | (SENSOR_ ## sensor << 8) \ 1556 | (SENSOR_ ## sensor << 8) \
1380 | (i2c_addr) 1557 | (i2c_addr)
1381static const __devinitdata struct usb_device_id device_table[] = { 1558static const __devinitdata struct usb_device_id device_table[] = {
1382#ifndef CONFIG_USB_SN9C102 1559#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1383 {USB_DEVICE(0x0458, 0x7025), BSI(SN9C120, MI0360, 0x5d)}, 1560 {USB_DEVICE(0x0458, 0x7025), BSI(SN9C120, MI0360, 0x5d)},
1384 {USB_DEVICE(0x045e, 0x00f5), BSI(SN9C105, OV7660, 0x21)}, 1561 {USB_DEVICE(0x045e, 0x00f5), BSI(SN9C105, OV7660, 0x21)},
1385 {USB_DEVICE(0x045e, 0x00f7), BSI(SN9C105, OV7660, 0x21)}, 1562 {USB_DEVICE(0x045e, 0x00f7), BSI(SN9C105, OV7660, 0x21)},
@@ -1406,15 +1583,17 @@ static const __devinitdata struct usb_device_id device_table[] = {
1406/* {USB_DEVICE(0x0c45, 0x6108), BSI(SN9C120, OM6801, 0x??)}, */ 1583/* {USB_DEVICE(0x0c45, 0x6108), BSI(SN9C120, OM6801, 0x??)}, */
1407/* {USB_DEVICE(0x0c45, 0x6122), BSI(SN9C110, ICM105C, 0x??)}, */ 1584/* {USB_DEVICE(0x0c45, 0x6122), BSI(SN9C110, ICM105C, 0x??)}, */
1408/* {USB_DEVICE(0x0c45, 0x6123), BSI(SN9C110, SanyoCCD, 0x??)}, */ 1585/* {USB_DEVICE(0x0c45, 0x6123), BSI(SN9C110, SanyoCCD, 0x??)}, */
1409 {USB_DEVICE(0x0c45, 0x612a), BSI(SN9C325, OV7648, 0x21)}, 1586 {USB_DEVICE(0x0c45, 0x6128), BSI(SN9C110, OM6802, 0x21)}, /*sn9c325?*/
1410/* bw600.inf: 1587/*bw600.inf:*/
1411 {USB_DEVICE(0x0c45, 0x612a), BSI(SN9C110, OV7648, 0x21)}, */ 1588 {USB_DEVICE(0x0c45, 0x612a), BSI(SN9C110, OV7648, 0x21)}, /*sn9c325?*/
1412 {USB_DEVICE(0x0c45, 0x612c), BSI(SN9C110, MO4000, 0x21)}, 1589 {USB_DEVICE(0x0c45, 0x612c), BSI(SN9C110, MO4000, 0x21)},
1413/* {USB_DEVICE(0x0c45, 0x612e), BSI(SN9C110, OV7630, 0x??)}, */ 1590 {USB_DEVICE(0x0c45, 0x612e), BSI(SN9C110, OV7630, 0x21)},
1414/* {USB_DEVICE(0x0c45, 0x612f), BSI(SN9C110, ICM105C, 0x??)}, */ 1591/* {USB_DEVICE(0x0c45, 0x612f), BSI(SN9C110, ICM105C, 0x??)}, */
1415#ifndef CONFIG_USB_SN9C102 1592#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1416 {USB_DEVICE(0x0c45, 0x6130), BSI(SN9C120, MI0360, 0x5d)}, 1593 {USB_DEVICE(0x0c45, 0x6130), BSI(SN9C120, MI0360, 0x5d)},
1594#endif
1417 {USB_DEVICE(0x0c45, 0x6138), BSI(SN9C120, MO4000, 0x21)}, 1595 {USB_DEVICE(0x0c45, 0x6138), BSI(SN9C120, MO4000, 0x21)},
1596#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1418/* {USB_DEVICE(0x0c45, 0x613a), BSI(SN9C120, OV7648, 0x??)}, */ 1597/* {USB_DEVICE(0x0c45, 0x613a), BSI(SN9C120, OV7648, 0x??)}, */
1419 {USB_DEVICE(0x0c45, 0x613b), BSI(SN9C120, OV7660, 0x21)}, 1598 {USB_DEVICE(0x0c45, 0x613b), BSI(SN9C120, OV7660, 0x21)},
1420 {USB_DEVICE(0x0c45, 0x613c), BSI(SN9C120, HV7131R, 0x11)}, 1599 {USB_DEVICE(0x0c45, 0x613c), BSI(SN9C120, HV7131R, 0x11)},
@@ -1438,6 +1617,10 @@ static struct usb_driver sd_driver = {
1438 .id_table = device_table, 1617 .id_table = device_table,
1439 .probe = sd_probe, 1618 .probe = sd_probe,
1440 .disconnect = gspca_disconnect, 1619 .disconnect = gspca_disconnect,
1620#ifdef CONFIG_PM
1621 .suspend = gspca_suspend,
1622 .resume = gspca_resume,
1623#endif
1441}; 1624};
1442 1625
1443/* -- module insert / remove -- */ 1626/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/spca500.c b/drivers/media/video/gspca/spca500.c
index 17fe2c2a440..6e733901fcc 100644
--- a/drivers/media/video/gspca/spca500.c
+++ b/drivers/media/video/gspca/spca500.c
@@ -645,8 +645,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
645 return 0; 645 return 0;
646} 646}
647 647
648/* this function is called at open time */ 648/* this function is called at probe and resume time */
649static int sd_open(struct gspca_dev *gspca_dev) 649static int sd_init(struct gspca_dev *gspca_dev)
650{ 650{
651 struct sd *sd = (struct sd *) gspca_dev; 651 struct sd *sd = (struct sd *) gspca_dev;
652 652
@@ -880,14 +880,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
880 gspca_dev->usb_buf[0]); 880 gspca_dev->usb_buf[0]);
881} 881}
882 882
883static void sd_stop0(struct gspca_dev *gspca_dev)
884{
885}
886
887static void sd_close(struct gspca_dev *gspca_dev)
888{
889}
890
891static void sd_pkt_scan(struct gspca_dev *gspca_dev, 883static void sd_pkt_scan(struct gspca_dev *gspca_dev,
892 struct gspca_frame *frame, /* target */ 884 struct gspca_frame *frame, /* target */
893 __u8 *data, /* isoc packet */ 885 __u8 *data, /* isoc packet */
@@ -1051,11 +1043,9 @@ static struct sd_desc sd_desc = {
1051 .ctrls = sd_ctrls, 1043 .ctrls = sd_ctrls,
1052 .nctrls = ARRAY_SIZE(sd_ctrls), 1044 .nctrls = ARRAY_SIZE(sd_ctrls),
1053 .config = sd_config, 1045 .config = sd_config,
1054 .open = sd_open, 1046 .init = sd_init,
1055 .start = sd_start, 1047 .start = sd_start,
1056 .stopN = sd_stopN, 1048 .stopN = sd_stopN,
1057 .stop0 = sd_stop0,
1058 .close = sd_close,
1059 .pkt_scan = sd_pkt_scan, 1049 .pkt_scan = sd_pkt_scan,
1060}; 1050};
1061 1051
@@ -1093,6 +1083,10 @@ static struct usb_driver sd_driver = {
1093 .id_table = device_table, 1083 .id_table = device_table,
1094 .probe = sd_probe, 1084 .probe = sd_probe,
1095 .disconnect = gspca_disconnect, 1085 .disconnect = gspca_disconnect,
1086#ifdef CONFIG_PM
1087 .suspend = gspca_suspend,
1088 .resume = gspca_resume,
1089#endif
1096}; 1090};
1097 1091
1098/* -- module insert / remove -- */ 1092/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/spca501.c b/drivers/media/video/gspca/spca501.c
index 51a3c3429ef..e9eb59bae4f 100644
--- a/drivers/media/video/gspca/spca501.c
+++ b/drivers/media/video/gspca/spca501.c
@@ -1953,8 +1953,8 @@ error:
1953 return -EINVAL; 1953 return -EINVAL;
1954} 1954}
1955 1955
1956/* this function is called at open time */ 1956/* this function is called at probe and resume time */
1957static int sd_open(struct gspca_dev *gspca_dev) 1957static int sd_init(struct gspca_dev *gspca_dev)
1958{ 1958{
1959 struct sd *sd = (struct sd *) gspca_dev; 1959 struct sd *sd = (struct sd *) gspca_dev;
1960 1960
@@ -2023,11 +2023,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
2023 2023
2024static void sd_stop0(struct gspca_dev *gspca_dev) 2024static void sd_stop0(struct gspca_dev *gspca_dev)
2025{ 2025{
2026}
2027
2028/* this function is called at close time */
2029static void sd_close(struct gspca_dev *gspca_dev)
2030{
2031 reg_write(gspca_dev->dev, SPCA501_REG_CTLRL, 0x05, 0x00); 2026 reg_write(gspca_dev->dev, SPCA501_REG_CTLRL, 0x05, 0x00);
2032} 2027}
2033 2028
@@ -2120,11 +2115,10 @@ static const struct sd_desc sd_desc = {
2120 .ctrls = sd_ctrls, 2115 .ctrls = sd_ctrls,
2121 .nctrls = ARRAY_SIZE(sd_ctrls), 2116 .nctrls = ARRAY_SIZE(sd_ctrls),
2122 .config = sd_config, 2117 .config = sd_config,
2123 .open = sd_open, 2118 .init = sd_init,
2124 .start = sd_start, 2119 .start = sd_start,
2125 .stopN = sd_stopN, 2120 .stopN = sd_stopN,
2126 .stop0 = sd_stop0, 2121 .stop0 = sd_stop0,
2127 .close = sd_close,
2128 .pkt_scan = sd_pkt_scan, 2122 .pkt_scan = sd_pkt_scan,
2129}; 2123};
2130 2124
@@ -2154,6 +2148,10 @@ static struct usb_driver sd_driver = {
2154 .id_table = device_table, 2148 .id_table = device_table,
2155 .probe = sd_probe, 2149 .probe = sd_probe,
2156 .disconnect = gspca_disconnect, 2150 .disconnect = gspca_disconnect,
2151#ifdef CONFIG_PM
2152 .suspend = gspca_suspend,
2153 .resume = gspca_resume,
2154#endif
2157}; 2155};
2158 2156
2159/* -- module insert / remove -- */ 2157/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/spca505.c b/drivers/media/video/gspca/spca505.c
index eda29d60935..f601daf19eb 100644
--- a/drivers/media/video/gspca/spca505.c
+++ b/drivers/media/video/gspca/spca505.c
@@ -655,8 +655,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
655 return 0; 655 return 0;
656} 656}
657 657
658/* this function is called at open time */ 658/* this function is called at probe and resume time */
659static int sd_open(struct gspca_dev *gspca_dev) 659static int sd_init(struct gspca_dev *gspca_dev)
660{ 660{
661 struct sd *sd = (struct sd *) gspca_dev; 661 struct sd *sd = (struct sd *) gspca_dev;
662 int ret; 662 int ret;
@@ -743,11 +743,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
743 743
744static void sd_stop0(struct gspca_dev *gspca_dev) 744static void sd_stop0(struct gspca_dev *gspca_dev)
745{ 745{
746}
747
748/* this function is called at close time */
749static void sd_close(struct gspca_dev *gspca_dev)
750{
751 /* This maybe reset or power control */ 746 /* This maybe reset or power control */
752 reg_write(gspca_dev->dev, 0x03, 0x03, 0x20); 747 reg_write(gspca_dev->dev, 0x03, 0x03, 0x20);
753 reg_write(gspca_dev->dev, 0x03, 0x01, 0x0); 748 reg_write(gspca_dev->dev, 0x03, 0x01, 0x0);
@@ -825,11 +820,10 @@ static const struct sd_desc sd_desc = {
825 .ctrls = sd_ctrls, 820 .ctrls = sd_ctrls,
826 .nctrls = ARRAY_SIZE(sd_ctrls), 821 .nctrls = ARRAY_SIZE(sd_ctrls),
827 .config = sd_config, 822 .config = sd_config,
828 .open = sd_open, 823 .init = sd_init,
829 .start = sd_start, 824 .start = sd_start,
830 .stopN = sd_stopN, 825 .stopN = sd_stopN,
831 .stop0 = sd_stop0, 826 .stop0 = sd_stop0,
832 .close = sd_close,
833 .pkt_scan = sd_pkt_scan, 827 .pkt_scan = sd_pkt_scan,
834}; 828};
835 829
@@ -855,6 +849,10 @@ static struct usb_driver sd_driver = {
855 .id_table = device_table, 849 .id_table = device_table,
856 .probe = sd_probe, 850 .probe = sd_probe,
857 .disconnect = gspca_disconnect, 851 .disconnect = gspca_disconnect,
852#ifdef CONFIG_PM
853 .suspend = gspca_suspend,
854 .resume = gspca_resume,
855#endif
858}; 856};
859 857
860/* -- module insert / remove -- */ 858/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/spca506.c b/drivers/media/video/gspca/spca506.c
index f622fa75766..195dce96ef0 100644
--- a/drivers/media/video/gspca/spca506.c
+++ b/drivers/media/video/gspca/spca506.c
@@ -313,8 +313,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
313 return 0; 313 return 0;
314} 314}
315 315
316/* this function is called at open time */ 316/* this function is called at probe and resume time */
317static int sd_open(struct gspca_dev *gspca_dev) 317static int sd_init(struct gspca_dev *gspca_dev)
318{ 318{
319 struct usb_device *dev = gspca_dev->dev; 319 struct usb_device *dev = gspca_dev->dev;
320 320
@@ -560,14 +560,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
560 reg_w(dev, 0x03, 0x00, 0x0003); 560 reg_w(dev, 0x03, 0x00, 0x0003);
561} 561}
562 562
563static void sd_stop0(struct gspca_dev *gspca_dev)
564{
565}
566
567static void sd_close(struct gspca_dev *gspca_dev)
568{
569}
570
571static void sd_pkt_scan(struct gspca_dev *gspca_dev, 563static void sd_pkt_scan(struct gspca_dev *gspca_dev,
572 struct gspca_frame *frame, /* target */ 564 struct gspca_frame *frame, /* target */
573 __u8 *data, /* isoc packet */ 565 __u8 *data, /* isoc packet */
@@ -740,11 +732,9 @@ static struct sd_desc sd_desc = {
740 .ctrls = sd_ctrls, 732 .ctrls = sd_ctrls,
741 .nctrls = ARRAY_SIZE(sd_ctrls), 733 .nctrls = ARRAY_SIZE(sd_ctrls),
742 .config = sd_config, 734 .config = sd_config,
743 .open = sd_open, 735 .init = sd_init,
744 .start = sd_start, 736 .start = sd_start,
745 .stopN = sd_stopN, 737 .stopN = sd_stopN,
746 .stop0 = sd_stop0,
747 .close = sd_close,
748 .pkt_scan = sd_pkt_scan, 738 .pkt_scan = sd_pkt_scan,
749}; 739};
750 740
@@ -772,6 +762,10 @@ static struct usb_driver sd_driver = {
772 .id_table = device_table, 762 .id_table = device_table,
773 .probe = sd_probe, 763 .probe = sd_probe,
774 .disconnect = gspca_disconnect, 764 .disconnect = gspca_disconnect,
765#ifdef CONFIG_PM
766 .suspend = gspca_suspend,
767 .resume = gspca_resume,
768#endif
775}; 769};
776 770
777/* -- module insert / remove -- */ 771/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/spca508.c b/drivers/media/video/gspca/spca508.c
index 699340c17de..281ce02103a 100644
--- a/drivers/media/video/gspca/spca508.c
+++ b/drivers/media/video/gspca/spca508.c
@@ -1521,8 +1521,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
1521 return 0; /* success */ 1521 return 0; /* success */
1522} 1522}
1523 1523
1524/* this function is called at open time */ 1524/* this function is called at probe and resume time */
1525static int sd_open(struct gspca_dev *gspca_dev) 1525static int sd_init(struct gspca_dev *gspca_dev)
1526{ 1526{
1527/* write_vector(gspca_dev, spca508_open_data); */ 1527/* write_vector(gspca_dev, spca508_open_data); */
1528 return 0; 1528 return 0;
@@ -1554,15 +1554,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1554 reg_write(gspca_dev->dev, 0x8112, 0x20); 1554 reg_write(gspca_dev->dev, 0x8112, 0x20);
1555} 1555}
1556 1556
1557static void sd_stop0(struct gspca_dev *gspca_dev)
1558{
1559}
1560
1561/* this function is called at close time */
1562static void sd_close(struct gspca_dev *gspca_dev)
1563{
1564}
1565
1566static void sd_pkt_scan(struct gspca_dev *gspca_dev, 1557static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1567 struct gspca_frame *frame, /* target */ 1558 struct gspca_frame *frame, /* target */
1568 __u8 *data, /* isoc packet */ 1559 __u8 *data, /* isoc packet */
@@ -1633,11 +1624,9 @@ static const struct sd_desc sd_desc = {
1633 .ctrls = sd_ctrls, 1624 .ctrls = sd_ctrls,
1634 .nctrls = ARRAY_SIZE(sd_ctrls), 1625 .nctrls = ARRAY_SIZE(sd_ctrls),
1635 .config = sd_config, 1626 .config = sd_config,
1636 .open = sd_open, 1627 .init = sd_init,
1637 .start = sd_start, 1628 .start = sd_start,
1638 .stopN = sd_stopN, 1629 .stopN = sd_stopN,
1639 .stop0 = sd_stop0,
1640 .close = sd_close,
1641 .pkt_scan = sd_pkt_scan, 1630 .pkt_scan = sd_pkt_scan,
1642}; 1631};
1643 1632
@@ -1667,6 +1656,10 @@ static struct usb_driver sd_driver = {
1667 .id_table = device_table, 1656 .id_table = device_table,
1668 .probe = sd_probe, 1657 .probe = sd_probe,
1669 .disconnect = gspca_disconnect, 1658 .disconnect = gspca_disconnect,
1659#ifdef CONFIG_PM
1660 .suspend = gspca_suspend,
1661 .resume = gspca_resume,
1662#endif
1670}; 1663};
1671 1664
1672/* -- module insert / remove -- */ 1665/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/spca561.c b/drivers/media/video/gspca/spca561.c
index 1073ac3d2ec..cfbc9ebc5c5 100644
--- a/drivers/media/video/gspca/spca561.c
+++ b/drivers/media/video/gspca/spca561.c
@@ -32,69 +32,48 @@ MODULE_LICENSE("GPL");
32struct sd { 32struct sd {
33 struct gspca_dev gspca_dev; /* !! must be the first item */ 33 struct gspca_dev gspca_dev; /* !! must be the first item */
34 34
35 unsigned short contrast; 35 __u16 contrast; /* rev72a only */
36 __u8 brightness; 36#define CONTRAST_MIN 0x0000
37#define CONTRAST_DEF 0x2000
38#define CONTRAST_MAX 0x3fff
39
40 __u16 exposure; /* rev12a only */
41#define EXPOSURE_MIN 1
42#define EXPOSURE_DEF 200
43#define EXPOSURE_MAX (4095 - 900) /* see set_exposure */
44
45 __u8 brightness; /* rev72a only */
46#define BRIGHTNESS_MIN 0
47#define BRIGHTNESS_DEF 32
48#define BRIGHTNESS_MAX 63
49
50 __u8 white; /* rev12a only */
51#define WHITE_MIN 1
52#define WHITE_DEF 0x40
53#define WHITE_MAX 0x7f
54
37 __u8 autogain; 55 __u8 autogain;
56#define AUTOGAIN_MIN 0
57#define AUTOGAIN_DEF 1
58#define AUTOGAIN_MAX 1
59
60 __u8 gain; /* rev12a only */
61#define GAIN_MIN 0x0
62#define GAIN_DEF 0x24
63#define GAIN_MAX 0x24
64
65#define EXPO12A_DEF 3
66 __u8 expo12a; /* expo/gain? for rev 12a */
38 67
39 __u8 chip_revision; 68 __u8 chip_revision;
69#define Rev012A 0
70#define Rev072A 1
71
40 signed char ag_cnt; 72 signed char ag_cnt;
41#define AG_CNT_START 13 73#define AG_CNT_START 13
42}; 74};
43 75
44/* V4L2 controls supported by the driver */ 76static struct v4l2_pix_format sif_012a_mode[] = {
45static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val);
46static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val);
47static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val);
48static int sd_getcontrast(struct gspca_dev *gspca_dev, __s32 *val);
49static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val);
50static int sd_getautogain(struct gspca_dev *gspca_dev, __s32 *val);
51
52static struct ctrl sd_ctrls[] = {
53#define SD_BRIGHTNESS 0
54 {
55 {
56 .id = V4L2_CID_BRIGHTNESS,
57 .type = V4L2_CTRL_TYPE_INTEGER,
58 .name = "Brightness",
59 .minimum = 0,
60 .maximum = 63,
61 .step = 1,
62 .default_value = 32,
63 },
64 .set = sd_setbrightness,
65 .get = sd_getbrightness,
66 },
67#define SD_CONTRAST 1
68 {
69 {
70 .id = V4L2_CID_CONTRAST,
71 .type = V4L2_CTRL_TYPE_INTEGER,
72 .name = "Contrast",
73 .minimum = 0,
74 .maximum = 0x3fff,
75 .step = 1,
76 .default_value = 0x2000,
77 },
78 .set = sd_setcontrast,
79 .get = sd_getcontrast,
80 },
81#define SD_AUTOGAIN 2
82 {
83 {
84 .id = V4L2_CID_AUTOGAIN,
85 .type = V4L2_CTRL_TYPE_BOOLEAN,
86 .name = "Auto Gain",
87 .minimum = 0,
88 .maximum = 1,
89 .step = 1,
90 .default_value = 1,
91 },
92 .set = sd_setautogain,
93 .get = sd_getautogain,
94 },
95};
96
97static struct v4l2_pix_format sif_mode[] = {
98 {160, 120, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE, 77 {160, 120, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
99 .bytesperline = 160, 78 .bytesperline = 160,
100 .sizeimage = 160 * 120, 79 .sizeimage = 160 * 120,
@@ -117,6 +96,29 @@ static struct v4l2_pix_format sif_mode[] = {
117 .priv = 0}, 96 .priv = 0},
118}; 97};
119 98
99static struct v4l2_pix_format sif_072a_mode[] = {
100 {160, 120, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
101 .bytesperline = 160,
102 .sizeimage = 160 * 120,
103 .colorspace = V4L2_COLORSPACE_SRGB,
104 .priv = 3},
105 {176, 144, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
106 .bytesperline = 176,
107 .sizeimage = 176 * 144,
108 .colorspace = V4L2_COLORSPACE_SRGB,
109 .priv = 2},
110 {320, 240, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
111 .bytesperline = 320,
112 .sizeimage = 320 * 240,
113 .colorspace = V4L2_COLORSPACE_SRGB,
114 .priv = 1},
115 {352, 288, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
116 .bytesperline = 352,
117 .sizeimage = 352 * 288,
118 .colorspace = V4L2_COLORSPACE_SRGB,
119 .priv = 0},
120};
121
120/* 122/*
121 * Initialization data 123 * Initialization data
122 * I'm not very sure how to split initialization from open data 124 * I'm not very sure how to split initialization from open data
@@ -143,12 +145,8 @@ static struct v4l2_pix_format sif_mode[] = {
143#define SPCA561_INDEX_I2C_BASE 0x8800 145#define SPCA561_INDEX_I2C_BASE 0x8800
144#define SPCA561_SNAPBIT 0x20 146#define SPCA561_SNAPBIT 0x20
145#define SPCA561_SNAPCTRL 0x40 147#define SPCA561_SNAPCTRL 0x40
146enum {
147 Rev072A = 0,
148 Rev012A,
149};
150 148
151static void reg_w_val(struct usb_device *dev, __u16 index, __u16 value) 149static void reg_w_val(struct usb_device *dev, __u16 index, __u8 value)
152{ 150{
153 int ret; 151 int ret;
154 152
@@ -198,12 +196,6 @@ static void reg_w_buf(struct gspca_dev *gspca_dev,
198 index, gspca_dev->usb_buf, len, 500); 196 index, gspca_dev->usb_buf, len, 500);
199} 197}
200 198
201static void i2c_init(struct gspca_dev *gspca_dev, __u8 mode)
202{
203 reg_w_val(gspca_dev->dev, 0x92, 0x8804);
204 reg_w_val(gspca_dev->dev, mode, 0x8802);
205}
206
207static void i2c_write(struct gspca_dev *gspca_dev, __u16 valeur, __u16 reg) 199static void i2c_write(struct gspca_dev *gspca_dev, __u16 valeur, __u16 reg)
208{ 200{
209 int retry = 60; 201 int retry = 60;
@@ -212,9 +204,9 @@ static void i2c_write(struct gspca_dev *gspca_dev, __u16 valeur, __u16 reg)
212 204
213 DataLow = valeur; 205 DataLow = valeur;
214 DataHight = valeur >> 8; 206 DataHight = valeur >> 8;
215 reg_w_val(gspca_dev->dev, reg, 0x8801); 207 reg_w_val(gspca_dev->dev, 0x8801, reg);
216 reg_w_val(gspca_dev->dev, DataLow, 0x8805); 208 reg_w_val(gspca_dev->dev, 0x8805, DataLow);
217 reg_w_val(gspca_dev->dev, DataHight, 0x8800); 209 reg_w_val(gspca_dev->dev, 0x8800, DataHight);
218 while (retry--) { 210 while (retry--) {
219 reg_r(gspca_dev, 0x8803, 1); 211 reg_r(gspca_dev, 0x8803, 1);
220 if (!gspca_dev->usb_buf[0]) 212 if (!gspca_dev->usb_buf[0])
@@ -228,14 +220,14 @@ static int i2c_read(struct gspca_dev *gspca_dev, __u16 reg, __u8 mode)
228 __u8 value; 220 __u8 value;
229 __u8 vallsb; 221 __u8 vallsb;
230 222
231 reg_w_val(gspca_dev->dev, 0x92, 0x8804); 223 reg_w_val(gspca_dev->dev, 0x8804, 0x92);
232 reg_w_val(gspca_dev->dev, reg, 0x8801); 224 reg_w_val(gspca_dev->dev, 0x8801, reg);
233 reg_w_val(gspca_dev->dev, (mode | 0x01), 0x8802); 225 reg_w_val(gspca_dev->dev, 0x8802, (mode | 0x01));
234 while (retry--) { 226 do {
235 reg_r(gspca_dev, 0x8803, 1); 227 reg_r(gspca_dev, 0x8803, 1);
236 if (!gspca_dev->usb_buf) 228 if (!gspca_dev->usb_buf)
237 break; 229 break;
238 } 230 } while (--retry);
239 if (retry == 0) 231 if (retry == 0)
240 return -1; 232 return -1;
241 reg_r(gspca_dev, 0x8800, 1); 233 reg_r(gspca_dev, 0x8800, 1);
@@ -438,21 +430,10 @@ static const __u16 spca561_init_data[][2] = {
438 {0x0035, 0x8801}, /* 0x14 - set gain general */ 430 {0x0035, 0x8801}, /* 0x14 - set gain general */
439 {0x001f, 0x8805}, /* 0x14 */ 431 {0x001f, 0x8805}, /* 0x14 */
440 {0x0000, 0x8800}, 432 {0x0000, 0x8800},
441 {0x0030, 0x8112}, 433 {0x000e, 0x8112}, /* white balance - was 30 */
442 {} 434 {}
443}; 435};
444 436
445static void sensor_reset(struct gspca_dev *gspca_dev)
446{
447 reg_w_val(gspca_dev->dev, 0x8631, 0xc8);
448 reg_w_val(gspca_dev->dev, 0x8634, 0xc8);
449 reg_w_val(gspca_dev->dev, 0x8112, 0x00);
450 reg_w_val(gspca_dev->dev, 0x8114, 0x00);
451 reg_w_val(gspca_dev->dev, 0x8118, 0x21);
452 i2c_init(gspca_dev, 0x14);
453 i2c_write(gspca_dev, 1, 0x0d);
454 i2c_write(gspca_dev, 0, 0x0d);
455}
456 437
457/******************** QC Express etch2 stuff ********************/ 438/******************** QC Express etch2 stuff ********************/
458static const __u16 Pb100_1map8300[][2] = { 439static const __u16 Pb100_1map8300[][2] = {
@@ -462,9 +443,9 @@ static const __u16 Pb100_1map8300[][2] = {
462 {0x8303, 0x0125}, /* image area */ 443 {0x8303, 0x0125}, /* image area */
463 {0x8304, 0x0169}, 444 {0x8304, 0x0169},
464 {0x8328, 0x000b}, 445 {0x8328, 0x000b},
465 {0x833c, 0x0001}, 446 {0x833c, 0x0001}, /*fixme: win:07*/
466 447
467 {0x832f, 0x0419}, 448 {0x832f, 0x1904}, /*fixme: was 0419*/
468 {0x8307, 0x00aa}, 449 {0x8307, 0x00aa},
469 {0x8301, 0x0003}, 450 {0x8301, 0x0003},
470 {0x8302, 0x000e}, 451 {0x8302, 0x000e},
@@ -478,9 +459,10 @@ static const __u16 Pb100_2map8300[][2] = {
478}; 459};
479 460
480static const __u16 spca561_161rev12A_data1[][2] = { 461static const __u16 spca561_161rev12A_data1[][2] = {
481 {0x21, 0x8118}, 462 {0x29, 0x8118}, /* white balance - was 21 */
482 {0x01, 0x8114}, 463 {0x08, 0x8114}, /* white balance - was 01 */
483 {0x00, 0x8112}, 464 {0x0e, 0x8112}, /* white balance - was 00 */
465 {0x00, 0x8102}, /* white balance - new */
484 {0x92, 0x8804}, 466 {0x92, 0x8804},
485 {0x04, 0x8802}, /* windows uses 08 */ 467 {0x04, 0x8802}, /* windows uses 08 */
486 {} 468 {}
@@ -505,14 +487,16 @@ static const __u16 spca561_161rev12A_data2[][2] = {
505 {0xb0, 0x8603}, 487 {0xb0, 0x8603},
506 488
507 /* sensor gains */ 489 /* sensor gains */
490 {0x07, 0x8601}, /* white balance - new */
491 {0x07, 0x8602}, /* white balance - new */
508 {0x00, 0x8610}, /* *red */ 492 {0x00, 0x8610}, /* *red */
509 {0x00, 0x8611}, /* 3f *green */ 493 {0x00, 0x8611}, /* 3f *green */
510 {0x00, 0x8612}, /* green *blue */ 494 {0x00, 0x8612}, /* green *blue */
511 {0x00, 0x8613}, /* blue *green */ 495 {0x00, 0x8613}, /* blue *green */
512 {0x35, 0x8614}, /* green *red */ 496 {0x43, 0x8614}, /* green *red - white balance - was 0x35 */
513 {0x35, 0x8615}, /* 40 *green */ 497 {0x40, 0x8615}, /* 40 *green - white balance - was 0x35 */
514 {0x35, 0x8616}, /* 7a *blue */ 498 {0x71, 0x8616}, /* 7a *blue - white balance - was 0x35 */
515 {0x35, 0x8617}, /* 40 *green */ 499 {0x40, 0x8617}, /* 40 *green - white balance - was 0x35 */
516 500
517 {0x0c, 0x8620}, /* 0c */ 501 {0x0c, 0x8620}, /* 0c */
518 {0xc8, 0x8631}, /* c8 */ 502 {0xc8, 0x8631}, /* c8 */
@@ -527,6 +511,7 @@ static const __u16 spca561_161rev12A_data2[][2] = {
527 {0xdf, 0x863c}, /* df */ 511 {0xdf, 0x863c}, /* df */
528 {0xf0, 0x8505}, 512 {0xf0, 0x8505},
529 {0x32, 0x850a}, 513 {0x32, 0x850a},
514/* {0x99, 0x8700}, * - white balance - new (removed) */
530 {} 515 {}
531}; 516};
532 517
@@ -545,9 +530,10 @@ static void sensor_mapwrite(struct gspca_dev *gspca_dev,
545} 530}
546static void init_161rev12A(struct gspca_dev *gspca_dev) 531static void init_161rev12A(struct gspca_dev *gspca_dev)
547{ 532{
548 sensor_reset(gspca_dev); 533/* sensor_reset(gspca_dev); (not in win) */
549 write_vector(gspca_dev, spca561_161rev12A_data1); 534 write_vector(gspca_dev, spca561_161rev12A_data1);
550 sensor_mapwrite(gspca_dev, Pb100_1map8300); 535 sensor_mapwrite(gspca_dev, Pb100_1map8300);
536/*fixme: should be in sd_start*/
551 write_vector(gspca_dev, spca561_161rev12A_data2); 537 write_vector(gspca_dev, spca561_161rev12A_data2);
552 sensor_mapwrite(gspca_dev, Pb100_2map8300); 538 sensor_mapwrite(gspca_dev, Pb100_2map8300);
553} 539}
@@ -581,35 +567,38 @@ static int sd_config(struct gspca_dev *gspca_dev,
581 } 567 }
582 568
583 cam = &gspca_dev->cam; 569 cam = &gspca_dev->cam;
584 cam->dev_name = (char *) id->driver_info;
585 cam->epaddr = 0x01; 570 cam->epaddr = 0x01;
586 gspca_dev->nbalt = 7 + 1; /* choose alternate 7 first */ 571 gspca_dev->nbalt = 7 + 1; /* choose alternate 7 first */
587 cam->cam_mode = sif_mode;
588 cam->nmodes = sizeof sif_mode / sizeof sif_mode[0];
589 572
590 sd->chip_revision = id->driver_info; 573 sd->chip_revision = id->driver_info;
591 sd->brightness = sd_ctrls[SD_BRIGHTNESS].qctrl.default_value; 574 if (sd->chip_revision == Rev012A) {
592 sd->contrast = sd_ctrls[SD_CONTRAST].qctrl.default_value; 575 cam->cam_mode = sif_012a_mode;
593 sd->autogain = sd_ctrls[SD_AUTOGAIN].qctrl.default_value; 576 cam->nmodes = ARRAY_SIZE(sif_012a_mode);
577 } else {
578 cam->cam_mode = sif_072a_mode;
579 cam->nmodes = ARRAY_SIZE(sif_072a_mode);
580 }
581 sd->brightness = BRIGHTNESS_DEF;
582 sd->contrast = CONTRAST_DEF;
583 sd->white = WHITE_DEF;
584 sd->exposure = EXPOSURE_DEF;
585 sd->autogain = AUTOGAIN_DEF;
586 sd->gain = GAIN_DEF;
587 sd->expo12a = EXPO12A_DEF;
594 return 0; 588 return 0;
595} 589}
596 590
597/* this function is called at open time */ 591/* this function is called at probe and resume time */
598static int sd_open(struct gspca_dev *gspca_dev) 592static int sd_init_12a(struct gspca_dev *gspca_dev)
599{ 593{
600 struct sd *sd = (struct sd *) gspca_dev; 594 PDEBUG(D_STREAM, "Chip revision: 012a");
601 595 init_161rev12A(gspca_dev);
602 switch (sd->chip_revision) { 596 return 0;
603 case Rev072A: 597}
604 PDEBUG(D_STREAM, "Chip revision id: 072a"); 598static int sd_init_72a(struct gspca_dev *gspca_dev)
605 write_vector(gspca_dev, spca561_init_data); 599{
606 break; 600 PDEBUG(D_STREAM, "Chip revision: 072a");
607 default: 601 write_vector(gspca_dev, spca561_init_data);
608/* case Rev012A: */
609 PDEBUG(D_STREAM, "Chip revision id: 012a");
610 init_161rev12A(gspca_dev);
611 break;
612 }
613 return 0; 602 return 0;
614} 603}
615 604
@@ -618,25 +607,20 @@ static void setcontrast(struct gspca_dev *gspca_dev)
618 struct sd *sd = (struct sd *) gspca_dev; 607 struct sd *sd = (struct sd *) gspca_dev;
619 struct usb_device *dev = gspca_dev->dev; 608 struct usb_device *dev = gspca_dev->dev;
620 __u8 lowb; 609 __u8 lowb;
621 int expotimes;
622 610
623 switch (sd->chip_revision) { 611 switch (sd->chip_revision) {
624 case Rev072A: 612 case Rev072A:
625 lowb = sd->contrast >> 8; 613 lowb = sd->contrast >> 8;
626 reg_w_val(dev, lowb, 0x8651); 614 reg_w_val(dev, 0x8651, lowb);
627 reg_w_val(dev, lowb, 0x8652); 615 reg_w_val(dev, 0x8652, lowb);
628 reg_w_val(dev, lowb, 0x8653); 616 reg_w_val(dev, 0x8653, lowb);
629 reg_w_val(dev, lowb, 0x8654); 617 reg_w_val(dev, 0x8654, lowb);
630 break; 618 break;
631 case Rev012A: { 619 default: {
632 __u8 Reg8391[] = 620/* case Rev012A: { */
633 { 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00 }; 621 static const __u8 Reg8391[] =
634 622 { 0x92, 0x30, 0x20, 0x00, 0x0c, 0x00, 0x00, 0x00 };
635 /* Write camera sensor settings */ 623
636 expotimes = (sd->contrast >> 5) & 0x07ff;
637 Reg8391[0] = expotimes & 0xff; /* exposure */
638 Reg8391[1] = 0x18 | (expotimes >> 8);
639 Reg8391[2] = sd->brightness; /* gain */
640 reg_w_buf(gspca_dev, 0x8391, Reg8391, 8); 624 reg_w_buf(gspca_dev, 0x8391, Reg8391, 8);
641 reg_w_buf(gspca_dev, 0x8390, Reg8391, 8); 625 reg_w_buf(gspca_dev, 0x8390, Reg8391, 8);
642 break; 626 break;
@@ -644,93 +628,151 @@ static void setcontrast(struct gspca_dev *gspca_dev)
644 } 628 }
645} 629}
646 630
647static void setautogain(struct gspca_dev *gspca_dev) 631/* rev12a only */
632static void setwhite(struct gspca_dev *gspca_dev)
648{ 633{
649 struct sd *sd = (struct sd *) gspca_dev; 634 struct sd *sd = (struct sd *) gspca_dev;
635 __u16 white;
636 __u8 reg8614, reg8616;
637
638 white = sd->white;
639 /* try to emulate MS-win as possible */
640 reg8616 = 0x90 - white * 5 / 8;
641 reg_w_val(gspca_dev->dev, 0x8616, reg8616);
642 reg8614 = 0x20 + white * 3 / 8;
643 reg_w_val(gspca_dev->dev, 0x8614, reg8614);
644}
650 645
651 if (sd->chip_revision == Rev072A) { 646/* rev 12a only */
652 if (sd->autogain) 647static void setexposure(struct gspca_dev *gspca_dev)
653 sd->ag_cnt = AG_CNT_START; 648{
654 else 649 struct sd *sd = (struct sd *) gspca_dev;
655 sd->ag_cnt = -1; 650 int expo;
651 int clock_divider;
652 __u8 data[2];
653
654 /* Register 0x8309 controls exposure for the spca561,
655 the basic exposure setting goes from 1-2047, where 1 is completely
656 dark and 2047 is very bright. It not only influences exposure but
657 also the framerate (to allow for longer exposure) from 1 - 300 it
658 only raises the exposure time then from 300 - 600 it halves the
659 framerate to be able to further raise the exposure time and for every
660 300 more it halves the framerate again. This allows for a maximum
661 exposure time of circa 0.2 - 0.25 seconds (30 / (2000/3000) fps).
662 Sometimes this is not enough, the 1-2047 uses bits 0-10, bits 11-12
663 configure a divider for the base framerate which us used at the
664 exposure setting of 1-300. These bits configure the base framerate
665 according to the following formula: fps = 60 / (value + 2) */
666 if (sd->exposure < 2048) {
667 expo = sd->exposure;
668 clock_divider = 0;
669 } else {
670 /* Add 900 to make the 0 setting of the second part of the
671 exposure equal to the 2047 setting of the first part. */
672 expo = (sd->exposure - 2048) + 900;
673 clock_divider = 3;
656 } 674 }
675 expo |= clock_divider << 11;
676 data[0] = expo;
677 data[1] = expo >> 8;
678 reg_w_buf(gspca_dev, 0x8309, data, 2);
657} 679}
658 680
659static void sd_start(struct gspca_dev *gspca_dev) 681/* rev 12a only */
682static void setgain(struct gspca_dev *gspca_dev)
660{ 683{
661 struct sd *sd = (struct sd *) gspca_dev; 684 struct sd *sd = (struct sd *) gspca_dev;
685 __u8 data[2];
686
687 data[0] = sd->gain;
688 data[1] = 0;
689 reg_w_buf(gspca_dev, 0x8335, data, 2);
690}
691
692static void setautogain(struct gspca_dev *gspca_dev)
693{
694 struct sd *sd = (struct sd *) gspca_dev;
695
696 if (sd->autogain)
697 sd->ag_cnt = AG_CNT_START;
698 else
699 sd->ag_cnt = -1;
700}
701
702static void sd_start_12a(struct gspca_dev *gspca_dev)
703{
662 struct usb_device *dev = gspca_dev->dev; 704 struct usb_device *dev = gspca_dev->dev;
663 int Clck; 705 int Clck = 0x8a; /* lower 0x8X values lead to fps > 30 */
664 __u8 Reg8307[] = { 0xaa, 0x00 }; 706 __u8 Reg8307[] = { 0xaa, 0x00 };
665 int mode; 707 int mode;
666 708
667 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv; 709 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv;
668 switch (sd->chip_revision) { 710 if (mode <= 1) {
669 case Rev072A: 711 /* Use compression on 320x240 and above */
670 switch (mode) { 712 reg_w_val(dev, 0x8500, 0x10 | mode);
671 default: 713 } else {
672/* case 0: 714 /* I couldn't get the compression to work below 320x240
673 case 1: */ 715 * Fortunately at these resolutions the bandwidth
674 Clck = 0x25; 716 * is sufficient to push raw frames at ~20fps */
675 break; 717 reg_w_val(dev, 0x8500, mode);
676 case 2: 718 } /* -- qq@kuku.eu.org */
677 Clck = 0x22; 719 reg_w_buf(gspca_dev, 0x8307, Reg8307, 2);
678 break; 720 reg_w_val(gspca_dev->dev, 0x8700, Clck);
679 case 3: 721 /* 0x8f 0x85 0x27 clock */
680 Clck = 0x21; 722 reg_w_val(gspca_dev->dev, 0x8112, 0x1e | 0x20);
681 break; 723 reg_w_val(gspca_dev->dev, 0x850b, 0x03);
682 } 724 setcontrast(gspca_dev);
683 reg_w_val(dev, 0x8500, mode); /* mode */ 725 setwhite(gspca_dev);
684 reg_w_val(dev, 0x8700, Clck); /* 0x27 clock */ 726 setautogain(gspca_dev);
685 reg_w_val(dev, 0x8112, 0x10 | 0x20); 727 setexposure(gspca_dev);
686 setautogain(gspca_dev); 728}
687 break; 729static void sd_start_72a(struct gspca_dev *gspca_dev)
730{
731 struct usb_device *dev = gspca_dev->dev;
732 int Clck;
733 int mode;
734
735 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv;
736 switch (mode) {
688 default: 737 default:
689/* case Rev012A: */ 738/* case 0:
690 switch (mode) { 739 case 1: */
691 case 0: 740 Clck = 0x25;
692 case 1: 741 break;
693 Clck = 0x8a; 742 case 2:
694 break; 743 Clck = 0x22;
695 case 2: 744 break;
696 Clck = 0x85; 745 case 3:
697 break; 746 Clck = 0x21;
698 default:
699 Clck = 0x83;
700 break;
701 }
702 if (mode <= 1) {
703 /* Use compression on 320x240 and above */
704 reg_w_val(dev, 0x8500, 0x10 | mode);
705 } else {
706 /* I couldn't get the compression to work below 320x240
707 * Fortunately at these resolutions the bandwidth
708 * is sufficient to push raw frames at ~20fps */
709 reg_w_val(dev, 0x8500, mode);
710 } /* -- qq@kuku.eu.org */
711 reg_w_buf(gspca_dev, 0x8307, Reg8307, 2);
712 reg_w_val(gspca_dev->dev, 0x8700, Clck);
713 /* 0x8f 0x85 0x27 clock */
714 reg_w_val(gspca_dev->dev, 0x8112, 0x1e | 0x20);
715 reg_w_val(gspca_dev->dev, 0x850b, 0x03);
716 setcontrast(gspca_dev);
717 break; 747 break;
718 } 748 }
749 reg_w_val(dev, 0x8500, mode); /* mode */
750 reg_w_val(dev, 0x8700, Clck); /* 0x27 clock */
751 reg_w_val(dev, 0x8112, 0x10 | 0x20);
752 setautogain(gspca_dev);
719} 753}
720 754
721static void sd_stopN(struct gspca_dev *gspca_dev) 755static void sd_stopN(struct gspca_dev *gspca_dev)
722{ 756{
723 reg_w_val(gspca_dev->dev, 0x8112, 0x20); 757 struct sd *sd = (struct sd *) gspca_dev;
758
759 if (sd->chip_revision == Rev012A) {
760 reg_w_val(gspca_dev->dev, 0x8112, 0x0e);
761 } else {
762 reg_w_val(gspca_dev->dev, 0x8112, 0x20);
763/* reg_w_val(gspca_dev->dev, 0x8102, 0x00); ?? */
764 }
724} 765}
725 766
726static void sd_stop0(struct gspca_dev *gspca_dev) 767static void sd_stop0(struct gspca_dev *gspca_dev)
727{ 768{
728} 769 struct sd *sd = (struct sd *) gspca_dev;
729 770
730/* this function is called at close time */ 771 if (sd->chip_revision == Rev012A) {
731static void sd_close(struct gspca_dev *gspca_dev) 772 reg_w_val(gspca_dev->dev, 0x8118, 0x29);
732{ 773 reg_w_val(gspca_dev->dev, 0x8114, 0x08);
733 reg_w_val(gspca_dev->dev, 0x8114, 0); 774 }
775/* reg_w_val(gspca_dev->dev, 0x8114, 0); */
734} 776}
735 777
736static void do_autogain(struct gspca_dev *gspca_dev) 778static void do_autogain(struct gspca_dev *gspca_dev)
@@ -744,6 +786,7 @@ static void do_autogain(struct gspca_dev *gspca_dev)
744 __u8 luma_mean = 110; 786 __u8 luma_mean = 110;
745 __u8 luma_delta = 20; 787 __u8 luma_delta = 20;
746 __u8 spring = 4; 788 __u8 spring = 4;
789 __u8 reg8339[2];
747 790
748 if (sd->ag_cnt < 0) 791 if (sd->ag_cnt < 0)
749 return; 792 return;
@@ -798,13 +841,16 @@ static void do_autogain(struct gspca_dev *gspca_dev)
798 } 841 }
799 break; 842 break;
800 case Rev012A: 843 case Rev012A:
801 /* sensor registers is access and memory mapped to 0x8300 */ 844 reg_r(gspca_dev, 0x8330, 2);
802 /* readind all 0x83xx block the sensor */ 845 if (gspca_dev->usb_buf[1] > 0x08) {
803 /* 846 reg8339[0] = ++sd->expo12a;
804 * The data from the header seem wrong where is the luma 847 reg8339[1] = 0;
805 * and chroma mean value 848 reg_w_buf(gspca_dev, 0x8339, reg8339, 2);
806 * at the moment set exposure in contrast set 849 } else if (gspca_dev->usb_buf[1] < 0x02) {
807 */ 850 reg8339[0] = --sd->expo12a;
851 reg8339[1] = 0;
852 reg_w_buf(gspca_dev, 0x8339, reg8339, 2);
853 }
808 break; 854 break;
809 } 855 }
810} 856}
@@ -814,6 +860,8 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
814 __u8 *data, /* isoc packet */ 860 __u8 *data, /* isoc packet */
815 int len) /* iso packet length */ 861 int len) /* iso packet length */
816{ 862{
863 struct sd *sd = (struct sd *) gspca_dev;
864
817 switch (data[0]) { 865 switch (data[0]) {
818 case 0: /* start of frame */ 866 case 0: /* start of frame */
819 frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame, 867 frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame,
@@ -826,8 +874,13 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
826 frame, data, len); 874 frame, data, len);
827 } else { 875 } else {
828 /* raw bayer (with a header, which we skip) */ 876 /* raw bayer (with a header, which we skip) */
829 data += 20; 877 if (sd->chip_revision == Rev012A) {
830 len -= 20; 878 data += 20;
879 len -= 20;
880 } else {
881 data += 16;
882 len -= 16;
883 }
831 gspca_frame_add(gspca_dev, FIRST_PACKET, 884 gspca_frame_add(gspca_dev, FIRST_PACKET,
832 frame, data, len); 885 frame, data, len);
833 } 886 }
@@ -841,24 +894,17 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
841 gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len); 894 gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len);
842} 895}
843 896
897/* rev 72a only */
844static void setbrightness(struct gspca_dev *gspca_dev) 898static void setbrightness(struct gspca_dev *gspca_dev)
845{ 899{
846 struct sd *sd = (struct sd *) gspca_dev; 900 struct sd *sd = (struct sd *) gspca_dev;
847 __u8 value; 901 __u8 value;
848 902
849 switch (sd->chip_revision) { 903 value = sd->brightness;
850 case Rev072A: 904 reg_w_val(gspca_dev->dev, 0x8611, value);
851 value = sd->brightness; 905 reg_w_val(gspca_dev->dev, 0x8612, value);
852 reg_w_val(gspca_dev->dev, value, 0x8611); 906 reg_w_val(gspca_dev->dev, 0x8613, value);
853 reg_w_val(gspca_dev->dev, value, 0x8612); 907 reg_w_val(gspca_dev->dev, 0x8614, value);
854 reg_w_val(gspca_dev->dev, value, 0x8613);
855 reg_w_val(gspca_dev->dev, value, 0x8614);
856 break;
857 default:
858/* case Rev012A: */
859 setcontrast(gspca_dev);
860 break;
861 }
862} 908}
863 909
864static void getbrightness(struct gspca_dev *gspca_dev) 910static void getbrightness(struct gspca_dev *gspca_dev)
@@ -866,52 +912,38 @@ static void getbrightness(struct gspca_dev *gspca_dev)
866 struct sd *sd = (struct sd *) gspca_dev; 912 struct sd *sd = (struct sd *) gspca_dev;
867 __u16 tot; 913 __u16 tot;
868 914
869 switch (sd->chip_revision) { 915 tot = 0;
870 case Rev072A: 916 reg_r(gspca_dev, 0x8611, 1);
871 tot = 0; 917 tot += gspca_dev->usb_buf[0];
872 reg_r(gspca_dev, 0x8611, 1); 918 reg_r(gspca_dev, 0x8612, 1);
873 tot += gspca_dev->usb_buf[0]; 919 tot += gspca_dev->usb_buf[0];
874 reg_r(gspca_dev, 0x8612, 1); 920 reg_r(gspca_dev, 0x8613, 1);
875 tot += gspca_dev->usb_buf[0]; 921 tot += gspca_dev->usb_buf[0];
876 reg_r(gspca_dev, 0x8613, 1); 922 reg_r(gspca_dev, 0x8614, 1);
877 tot += gspca_dev->usb_buf[0]; 923 tot += gspca_dev->usb_buf[0];
878 reg_r(gspca_dev, 0x8614, 1); 924 sd->brightness = tot >> 2;
879 tot += gspca_dev->usb_buf[0];
880 sd->brightness = tot >> 2;
881 break;
882 default:
883/* case Rev012A: */
884 /* no way to read sensor settings */
885 break;
886 }
887} 925}
888 926
927/* rev72a only */
889static void getcontrast(struct gspca_dev *gspca_dev) 928static void getcontrast(struct gspca_dev *gspca_dev)
890{ 929{
891 struct sd *sd = (struct sd *) gspca_dev; 930 struct sd *sd = (struct sd *) gspca_dev;
892 __u16 tot; 931 __u16 tot;
893 932
894 switch (sd->chip_revision) { 933 tot = 0;
895 case Rev072A: 934 reg_r(gspca_dev, 0x8651, 1);
896 tot = 0; 935 tot += gspca_dev->usb_buf[0];
897 reg_r(gspca_dev, 0x8651, 1); 936 reg_r(gspca_dev, 0x8652, 1);
898 tot += gspca_dev->usb_buf[0]; 937 tot += gspca_dev->usb_buf[0];
899 reg_r(gspca_dev, 0x8652, 1); 938 reg_r(gspca_dev, 0x8653, 1);
900 tot += gspca_dev->usb_buf[0]; 939 tot += gspca_dev->usb_buf[0];
901 reg_r(gspca_dev, 0x8653, 1); 940 reg_r(gspca_dev, 0x8654, 1);
902 tot += gspca_dev->usb_buf[0]; 941 tot += gspca_dev->usb_buf[0];
903 reg_r(gspca_dev, 0x8654, 1); 942 sd->contrast = tot << 6;
904 tot += gspca_dev->usb_buf[0];
905 sd->contrast = tot << 6;
906 break;
907 default:
908/* case Rev012A: */
909 /* no way to read sensor settings */
910 break;
911 }
912 PDEBUG(D_CONF, "get contrast %d", sd->contrast); 943 PDEBUG(D_CONF, "get contrast %d", sd->contrast);
913} 944}
914 945
946/* rev 72a only */
915static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val) 947static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val)
916{ 948{
917 struct sd *sd = (struct sd *) gspca_dev; 949 struct sd *sd = (struct sd *) gspca_dev;
@@ -931,6 +963,7 @@ static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val)
931 return 0; 963 return 0;
932} 964}
933 965
966/* rev 72a only */
934static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val) 967static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val)
935{ 968{
936 struct sd *sd = (struct sd *) gspca_dev; 969 struct sd *sd = (struct sd *) gspca_dev;
@@ -968,20 +1001,190 @@ static int sd_getautogain(struct gspca_dev *gspca_dev, __s32 *val)
968 return 0; 1001 return 0;
969} 1002}
970 1003
1004/* rev12a only */
1005static int sd_setwhite(struct gspca_dev *gspca_dev, __s32 val)
1006{
1007 struct sd *sd = (struct sd *) gspca_dev;
1008
1009 sd->white = val;
1010 if (gspca_dev->streaming)
1011 setwhite(gspca_dev);
1012 return 0;
1013}
1014
1015static int sd_getwhite(struct gspca_dev *gspca_dev, __s32 *val)
1016{
1017 struct sd *sd = (struct sd *) gspca_dev;
1018
1019 *val = sd->white;
1020 return 0;
1021}
1022
1023/* rev12a only */
1024static int sd_setexposure(struct gspca_dev *gspca_dev, __s32 val)
1025{
1026 struct sd *sd = (struct sd *) gspca_dev;
1027
1028 sd->exposure = val;
1029 if (gspca_dev->streaming)
1030 setexposure(gspca_dev);
1031 return 0;
1032}
1033
1034static int sd_getexposure(struct gspca_dev *gspca_dev, __s32 *val)
1035{
1036 struct sd *sd = (struct sd *) gspca_dev;
1037
1038 *val = sd->exposure;
1039 return 0;
1040}
1041
1042/* rev12a only */
1043static int sd_setgain(struct gspca_dev *gspca_dev, __s32 val)
1044{
1045 struct sd *sd = (struct sd *) gspca_dev;
1046
1047 sd->gain = val;
1048 if (gspca_dev->streaming)
1049 setgain(gspca_dev);
1050 return 0;
1051}
1052
1053static int sd_getgain(struct gspca_dev *gspca_dev, __s32 *val)
1054{
1055 struct sd *sd = (struct sd *) gspca_dev;
1056
1057 *val = sd->gain;
1058 return 0;
1059}
1060
1061/* control tables */
1062static struct ctrl sd_ctrls_12a[] = {
1063 {
1064 {
1065 .id = V4L2_CID_DO_WHITE_BALANCE,
1066 .type = V4L2_CTRL_TYPE_INTEGER,
1067 .name = "While Balance",
1068 .minimum = WHITE_MIN,
1069 .maximum = WHITE_MAX,
1070 .step = 1,
1071 .default_value = WHITE_DEF,
1072 },
1073 .set = sd_setwhite,
1074 .get = sd_getwhite,
1075 },
1076 {
1077 {
1078 .id = V4L2_CID_EXPOSURE,
1079 .type = V4L2_CTRL_TYPE_INTEGER,
1080 .name = "Exposure",
1081 .minimum = EXPOSURE_MIN,
1082 .maximum = EXPOSURE_MAX,
1083 .step = 1,
1084 .default_value = EXPOSURE_DEF,
1085 },
1086 .set = sd_setexposure,
1087 .get = sd_getexposure,
1088 },
1089 {
1090 {
1091 .id = V4L2_CID_AUTOGAIN,
1092 .type = V4L2_CTRL_TYPE_BOOLEAN,
1093 .name = "Auto Gain",
1094 .minimum = AUTOGAIN_MIN,
1095 .maximum = AUTOGAIN_MAX,
1096 .step = 1,
1097 .default_value = AUTOGAIN_DEF,
1098 },
1099 .set = sd_setautogain,
1100 .get = sd_getautogain,
1101 },
1102 {
1103 {
1104 .id = V4L2_CID_GAIN,
1105 .type = V4L2_CTRL_TYPE_INTEGER,
1106 .name = "Gain",
1107 .minimum = GAIN_MIN,
1108 .maximum = GAIN_MAX,
1109 .step = 1,
1110 .default_value = GAIN_DEF,
1111 },
1112 .set = sd_setgain,
1113 .get = sd_getgain,
1114 },
1115};
1116
1117static struct ctrl sd_ctrls_72a[] = {
1118 {
1119 {
1120 .id = V4L2_CID_BRIGHTNESS,
1121 .type = V4L2_CTRL_TYPE_INTEGER,
1122 .name = "Brightness",
1123 .minimum = BRIGHTNESS_MIN,
1124 .maximum = BRIGHTNESS_MAX,
1125 .step = 1,
1126 .default_value = BRIGHTNESS_DEF,
1127 },
1128 .set = sd_setbrightness,
1129 .get = sd_getbrightness,
1130 },
1131 {
1132 {
1133 .id = V4L2_CID_CONTRAST,
1134 .type = V4L2_CTRL_TYPE_INTEGER,
1135 .name = "Contrast",
1136 .minimum = CONTRAST_MIN,
1137 .maximum = CONTRAST_MAX,
1138 .step = 1,
1139 .default_value = CONTRAST_DEF,
1140 },
1141 .set = sd_setcontrast,
1142 .get = sd_getcontrast,
1143 },
1144 {
1145 {
1146 .id = V4L2_CID_AUTOGAIN,
1147 .type = V4L2_CTRL_TYPE_BOOLEAN,
1148 .name = "Auto Gain",
1149 .minimum = AUTOGAIN_MIN,
1150 .maximum = AUTOGAIN_MAX,
1151 .step = 1,
1152 .default_value = AUTOGAIN_DEF,
1153 },
1154 .set = sd_setautogain,
1155 .get = sd_getautogain,
1156 },
1157};
1158
971/* sub-driver description */ 1159/* sub-driver description */
972static const struct sd_desc sd_desc = { 1160static const struct sd_desc sd_desc_12a = {
1161 .name = MODULE_NAME,
1162 .ctrls = sd_ctrls_12a,
1163 .nctrls = ARRAY_SIZE(sd_ctrls_12a),
1164 .config = sd_config,
1165 .init = sd_init_12a,
1166 .start = sd_start_12a,
1167 .stopN = sd_stopN,
1168 .stop0 = sd_stop0,
1169 .pkt_scan = sd_pkt_scan,
1170/* .dq_callback = do_autogain, * fixme */
1171};
1172static const struct sd_desc sd_desc_72a = {
973 .name = MODULE_NAME, 1173 .name = MODULE_NAME,
974 .ctrls = sd_ctrls, 1174 .ctrls = sd_ctrls_72a,
975 .nctrls = ARRAY_SIZE(sd_ctrls), 1175 .nctrls = ARRAY_SIZE(sd_ctrls_72a),
976 .config = sd_config, 1176 .config = sd_config,
977 .open = sd_open, 1177 .init = sd_init_72a,
978 .start = sd_start, 1178 .start = sd_start_72a,
979 .stopN = sd_stopN, 1179 .stopN = sd_stopN,
980 .stop0 = sd_stop0, 1180 .stop0 = sd_stop0,
981 .close = sd_close,
982 .pkt_scan = sd_pkt_scan, 1181 .pkt_scan = sd_pkt_scan,
983 .dq_callback = do_autogain, 1182 .dq_callback = do_autogain,
984}; 1183};
1184static const struct sd_desc *sd_desc[2] = {
1185 &sd_desc_12a,
1186 &sd_desc_72a
1187};
985 1188
986/* -- module initialisation -- */ 1189/* -- module initialisation -- */
987static const __devinitdata struct usb_device_id device_table[] = { 1190static const __devinitdata struct usb_device_id device_table[] = {
@@ -1009,7 +1212,9 @@ MODULE_DEVICE_TABLE(usb, device_table);
1009static int sd_probe(struct usb_interface *intf, 1212static int sd_probe(struct usb_interface *intf,
1010 const struct usb_device_id *id) 1213 const struct usb_device_id *id)
1011{ 1214{
1012 return gspca_dev_probe(intf, id, &sd_desc, sizeof(struct sd), 1215 return gspca_dev_probe(intf, id,
1216 sd_desc[id->driver_info],
1217 sizeof(struct sd),
1013 THIS_MODULE); 1218 THIS_MODULE);
1014} 1219}
1015 1220
@@ -1018,6 +1223,10 @@ static struct usb_driver sd_driver = {
1018 .id_table = device_table, 1223 .id_table = device_table,
1019 .probe = sd_probe, 1224 .probe = sd_probe,
1020 .disconnect = gspca_disconnect, 1225 .disconnect = gspca_disconnect,
1226#ifdef CONFIG_PM
1227 .suspend = gspca_suspend,
1228 .resume = gspca_resume,
1229#endif
1021}; 1230};
1022 1231
1023/* -- module insert / remove -- */ 1232/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/stk014.c b/drivers/media/video/gspca/stk014.c
index 16219cf6a6d..2f2de429e27 100644
--- a/drivers/media/video/gspca/stk014.c
+++ b/drivers/media/video/gspca/stk014.c
@@ -306,8 +306,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
306 return 0; 306 return 0;
307} 307}
308 308
309/* this function is called at open time */ 309/* this function is called at probe and resume time */
310static int sd_open(struct gspca_dev *gspca_dev) 310static int sd_init(struct gspca_dev *gspca_dev)
311{ 311{
312 int ret; 312 int ret;
313 313
@@ -398,14 +398,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
398 PDEBUG(D_STREAM, "camera stopped"); 398 PDEBUG(D_STREAM, "camera stopped");
399} 399}
400 400
401static void sd_stop0(struct gspca_dev *gspca_dev)
402{
403}
404
405static void sd_close(struct gspca_dev *gspca_dev)
406{
407}
408
409static void sd_pkt_scan(struct gspca_dev *gspca_dev, 401static void sd_pkt_scan(struct gspca_dev *gspca_dev,
410 struct gspca_frame *frame, /* target */ 402 struct gspca_frame *frame, /* target */
411 __u8 *data, /* isoc packet */ 403 __u8 *data, /* isoc packet */
@@ -535,11 +527,9 @@ static const struct sd_desc sd_desc = {
535 .ctrls = sd_ctrls, 527 .ctrls = sd_ctrls,
536 .nctrls = ARRAY_SIZE(sd_ctrls), 528 .nctrls = ARRAY_SIZE(sd_ctrls),
537 .config = sd_config, 529 .config = sd_config,
538 .open = sd_open, 530 .init = sd_init,
539 .start = sd_start, 531 .start = sd_start,
540 .stopN = sd_stopN, 532 .stopN = sd_stopN,
541 .stop0 = sd_stop0,
542 .close = sd_close,
543 .pkt_scan = sd_pkt_scan, 533 .pkt_scan = sd_pkt_scan,
544 .querymenu = sd_querymenu, 534 .querymenu = sd_querymenu,
545}; 535};
@@ -564,6 +554,10 @@ static struct usb_driver sd_driver = {
564 .id_table = device_table, 554 .id_table = device_table,
565 .probe = sd_probe, 555 .probe = sd_probe,
566 .disconnect = gspca_disconnect, 556 .disconnect = gspca_disconnect,
557#ifdef CONFIG_PM
558 .suspend = gspca_suspend,
559 .resume = gspca_resume,
560#endif
567}; 561};
568 562
569/* -- module insert / remove -- */ 563/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/sunplus.c b/drivers/media/video/gspca/sunplus.c
index 54efa48bee0..1cfcc6c4955 100644
--- a/drivers/media/video/gspca/sunplus.c
+++ b/drivers/media/video/gspca/sunplus.c
@@ -449,31 +449,47 @@ static const __u8 qtable_spca504_default[2][64] = {
449 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e} 449 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e}
450}; 450};
451 451
452static void reg_r(struct usb_device *dev, 452/* read <len> bytes to gspca_dev->usb_buf */
453 __u16 req, 453static void reg_r(struct gspca_dev *gspca_dev,
454 __u16 index, 454 __u16 req,
455 __u8 *buffer, __u16 length) 455 __u16 index,
456 __u16 len)
456{ 457{
457 usb_control_msg(dev, 458#ifdef GSPCA_DEBUG
458 usb_rcvctrlpipe(dev, 0), 459 if (len > USB_BUF_SZ) {
460 err("reg_r: buffer overflow");
461 return;
462 }
463#endif
464 usb_control_msg(gspca_dev->dev,
465 usb_rcvctrlpipe(gspca_dev->dev, 0),
459 req, 466 req,
460 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 467 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
461 0, /* value */ 468 0, /* value */
462 index, buffer, length, 469 index,
470 len ? gspca_dev->usb_buf : NULL, len,
463 500); 471 500);
464} 472}
465 473
466static void reg_w(struct usb_device *dev, 474/* write <len> bytes from gspca_dev->usb_buf */
467 __u16 req, 475static void reg_w(struct gspca_dev *gspca_dev,
468 __u16 value, 476 __u16 req,
469 __u16 index, 477 __u16 value,
470 __u8 *buffer, __u16 length) 478 __u16 index,
479 __u16 len)
471{ 480{
472 usb_control_msg(dev, 481#ifdef GSPCA_DEBUG
473 usb_sndctrlpipe(dev, 0), 482 if (len > USB_BUF_SZ) {
483 err("reg_w: buffer overflow");
484 return;
485 }
486#endif
487 usb_control_msg(gspca_dev->dev,
488 usb_sndctrlpipe(gspca_dev->dev, 0),
474 req, 489 req,
475 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 490 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
476 value, index, buffer, length, 491 value, index,
492 len ? gspca_dev->usb_buf : NULL, len,
477 500); 493 500);
478} 494}
479 495
@@ -634,7 +650,7 @@ static int spca504B_PollingDataReady(struct gspca_dev *gspca_dev)
634 int count = 10; 650 int count = 10;
635 651
636 while (--count > 0) { 652 while (--count > 0) {
637 reg_r(gspca_dev->dev, 0x21, 0, gspca_dev->usb_buf, 1); 653 reg_r(gspca_dev, 0x21, 0, 1);
638 if ((gspca_dev->usb_buf[0] & 0x01) == 0) 654 if ((gspca_dev->usb_buf[0] & 0x01) == 0)
639 break; 655 break;
640 msleep(10); 656 msleep(10);
@@ -644,15 +660,14 @@ static int spca504B_PollingDataReady(struct gspca_dev *gspca_dev)
644 660
645static void spca504B_WaitCmdStatus(struct gspca_dev *gspca_dev) 661static void spca504B_WaitCmdStatus(struct gspca_dev *gspca_dev)
646{ 662{
647 struct usb_device *dev = gspca_dev->dev;
648 int count = 50; 663 int count = 50;
649 664
650 while (--count > 0) { 665 while (--count > 0) {
651 reg_r(dev, 0x21, 1, gspca_dev->usb_buf, 1); 666 reg_r(gspca_dev, 0x21, 1, 1);
652 if (gspca_dev->usb_buf[0] != 0) { 667 if (gspca_dev->usb_buf[0] != 0) {
653 gspca_dev->usb_buf[0] = 0; 668 gspca_dev->usb_buf[0] = 0;
654 reg_w(dev, 0x21, 0, 1, gspca_dev->usb_buf, 1); 669 reg_w(gspca_dev, 0x21, 0, 1, 1);
655 reg_r(dev, 0x21, 1, gspca_dev->usb_buf, 1); 670 reg_r(gspca_dev, 0x21, 1, 1);
656 spca504B_PollingDataReady(gspca_dev); 671 spca504B_PollingDataReady(gspca_dev);
657 break; 672 break;
658 } 673 }
@@ -662,16 +677,14 @@ static void spca504B_WaitCmdStatus(struct gspca_dev *gspca_dev)
662 677
663static void spca50x_GetFirmware(struct gspca_dev *gspca_dev) 678static void spca50x_GetFirmware(struct gspca_dev *gspca_dev)
664{ 679{
665 struct usb_device *dev = gspca_dev->dev;
666 __u8 *data; 680 __u8 *data;
667 681
668 data = kmalloc(64, GFP_KERNEL); 682 data = gspca_dev->usb_buf;
669 reg_r(dev, 0x20, 0, data, 5); 683 reg_r(gspca_dev, 0x20, 0, 5);
670 PDEBUG(D_STREAM, "FirmWare : %d %d %d %d %d ", 684 PDEBUG(D_STREAM, "FirmWare : %d %d %d %d %d ",
671 data[0], data[1], data[2], data[3], data[4]); 685 data[0], data[1], data[2], data[3], data[4]);
672 reg_r(dev, 0x23, 0, data, 64); 686 reg_r(gspca_dev, 0x23, 0, 64);
673 reg_r(dev, 0x23, 1, data, 64); 687 reg_r(gspca_dev, 0x23, 1, 64);
674 kfree(data);
675} 688}
676 689
677static void spca504B_SetSizeType(struct gspca_dev *gspca_dev) 690static void spca504B_SetSizeType(struct gspca_dev *gspca_dev)
@@ -686,21 +699,21 @@ static void spca504B_SetSizeType(struct gspca_dev *gspca_dev)
686 Type = 0; 699 Type = 0;
687 switch (sd->bridge) { 700 switch (sd->bridge) {
688 case BRIDGE_SPCA533: 701 case BRIDGE_SPCA533:
689 reg_w(dev, 0x31, 0, 0, NULL, 0); 702 reg_w(gspca_dev, 0x31, 0, 0, 0);
690 spca504B_WaitCmdStatus(gspca_dev); 703 spca504B_WaitCmdStatus(gspca_dev);
691 rc = spca504B_PollingDataReady(gspca_dev); 704 rc = spca504B_PollingDataReady(gspca_dev);
692 spca50x_GetFirmware(gspca_dev); 705 spca50x_GetFirmware(gspca_dev);
693 gspca_dev->usb_buf[0] = 2; /* type */ 706 gspca_dev->usb_buf[0] = 2; /* type */
694 reg_w(dev, 0x24, 0, 8, gspca_dev->usb_buf, 1); 707 reg_w(gspca_dev, 0x24, 0, 8, 1);
695 reg_r(dev, 0x24, 8, gspca_dev->usb_buf, 1); 708 reg_r(gspca_dev, 0x24, 8, 1);
696 709
697 gspca_dev->usb_buf[0] = Size; 710 gspca_dev->usb_buf[0] = Size;
698 reg_w(dev, 0x25, 0, 4, gspca_dev->usb_buf, 1); 711 reg_w(gspca_dev, 0x25, 0, 4, 1);
699 reg_r(dev, 0x25, 4, gspca_dev->usb_buf, 1); /* size */ 712 reg_r(gspca_dev, 0x25, 4, 1); /* size */
700 rc = spca504B_PollingDataReady(gspca_dev); 713 rc = spca504B_PollingDataReady(gspca_dev);
701 714
702 /* Init the cam width height with some values get on init ? */ 715 /* Init the cam width height with some values get on init ? */
703 reg_w(dev, 0x31, 0, 4, NULL, 0); 716 reg_w(gspca_dev, 0x31, 0, 4, 0);
704 spca504B_WaitCmdStatus(gspca_dev); 717 spca504B_WaitCmdStatus(gspca_dev);
705 rc = spca504B_PollingDataReady(gspca_dev); 718 rc = spca504B_PollingDataReady(gspca_dev);
706 break; 719 break;
@@ -708,12 +721,12 @@ static void spca504B_SetSizeType(struct gspca_dev *gspca_dev)
708/* case BRIDGE_SPCA504B: */ 721/* case BRIDGE_SPCA504B: */
709/* case BRIDGE_SPCA536: */ 722/* case BRIDGE_SPCA536: */
710 gspca_dev->usb_buf[0] = Size; 723 gspca_dev->usb_buf[0] = Size;
711 reg_w(dev, 0x25, 0, 4, gspca_dev->usb_buf, 1); 724 reg_w(gspca_dev, 0x25, 0, 4, 1);
712 reg_r(dev, 0x25, 4, gspca_dev->usb_buf, 1); /* size */ 725 reg_r(gspca_dev, 0x25, 4, 1); /* size */
713 Type = 6; 726 Type = 6;
714 gspca_dev->usb_buf[0] = Type; 727 gspca_dev->usb_buf[0] = Type;
715 reg_w(dev, 0x27, 0, 0, gspca_dev->usb_buf, 1); 728 reg_w(gspca_dev, 0x27, 0, 0, 1);
716 reg_r(dev, 0x27, 0, gspca_dev->usb_buf, 1); /* type */ 729 reg_r(gspca_dev, 0x27, 0, 1); /* type */
717 rc = spca504B_PollingDataReady(gspca_dev); 730 rc = spca504B_PollingDataReady(gspca_dev);
718 break; 731 break;
719 case BRIDGE_SPCA504: 732 case BRIDGE_SPCA504:
@@ -752,18 +765,15 @@ static void spca504_wait_status(struct gspca_dev *gspca_dev)
752 765
753static void spca504B_setQtable(struct gspca_dev *gspca_dev) 766static void spca504B_setQtable(struct gspca_dev *gspca_dev)
754{ 767{
755 struct usb_device *dev = gspca_dev->dev;
756
757 gspca_dev->usb_buf[0] = 3; 768 gspca_dev->usb_buf[0] = 3;
758 reg_w(dev, 0x26, 0, 0, gspca_dev->usb_buf, 1); 769 reg_w(gspca_dev, 0x26, 0, 0, 1);
759 reg_r(dev, 0x26, 0, gspca_dev->usb_buf, 1); 770 reg_r(gspca_dev, 0x26, 0, 1);
760 spca504B_PollingDataReady(gspca_dev); 771 spca504B_PollingDataReady(gspca_dev);
761} 772}
762 773
763static void sp5xx_initContBrigHueRegisters(struct gspca_dev *gspca_dev) 774static void sp5xx_initContBrigHueRegisters(struct gspca_dev *gspca_dev)
764{ 775{
765 struct sd *sd = (struct sd *) gspca_dev; 776 struct sd *sd = (struct sd *) gspca_dev;
766 struct usb_device *dev = gspca_dev->dev;
767 int pollreg = 1; 777 int pollreg = 1;
768 778
769 switch (sd->bridge) { 779 switch (sd->bridge) {
@@ -774,20 +784,20 @@ static void sp5xx_initContBrigHueRegisters(struct gspca_dev *gspca_dev)
774 default: 784 default:
775/* case BRIDGE_SPCA533: */ 785/* case BRIDGE_SPCA533: */
776/* case BRIDGE_SPCA504B: */ 786/* case BRIDGE_SPCA504B: */
777 reg_w(dev, 0, 0, 0x21a7, NULL, 0); /* brightness */ 787 reg_w(gspca_dev, 0, 0, 0x21a7, 0); /* brightness */
778 reg_w(dev, 0, 0x20, 0x21a8, NULL, 0); /* contrast */ 788 reg_w(gspca_dev, 0, 0x20, 0x21a8, 0); /* contrast */
779 reg_w(dev, 0, 0, 0x21ad, NULL, 0); /* hue */ 789 reg_w(gspca_dev, 0, 0, 0x21ad, 0); /* hue */
780 reg_w(dev, 0, 1, 0x21ac, NULL, 0); /* sat/hue */ 790 reg_w(gspca_dev, 0, 1, 0x21ac, 0); /* sat/hue */
781 reg_w(dev, 0, 0x20, 0x21ae, NULL, 0); /* saturation */ 791 reg_w(gspca_dev, 0, 0x20, 0x21ae, 0); /* saturation */
782 reg_w(dev, 0, 0, 0x21a3, NULL, 0); /* gamma */ 792 reg_w(gspca_dev, 0, 0, 0x21a3, 0); /* gamma */
783 break; 793 break;
784 case BRIDGE_SPCA536: 794 case BRIDGE_SPCA536:
785 reg_w(dev, 0, 0, 0x20f0, NULL, 0); 795 reg_w(gspca_dev, 0, 0, 0x20f0, 0);
786 reg_w(dev, 0, 0x21, 0x20f1, NULL, 0); 796 reg_w(gspca_dev, 0, 0x21, 0x20f1, 0);
787 reg_w(dev, 0, 0x40, 0x20f5, NULL, 0); 797 reg_w(gspca_dev, 0, 0x40, 0x20f5, 0);
788 reg_w(dev, 0, 1, 0x20f4, NULL, 0); 798 reg_w(gspca_dev, 0, 1, 0x20f4, 0);
789 reg_w(dev, 0, 0x40, 0x20f6, NULL, 0); 799 reg_w(gspca_dev, 0, 0x40, 0x20f6, 0);
790 reg_w(dev, 0, 0, 0x2089, NULL, 0); 800 reg_w(gspca_dev, 0, 0, 0x2089, 0);
791 break; 801 break;
792 } 802 }
793 if (pollreg) 803 if (pollreg)
@@ -799,7 +809,6 @@ static int sd_config(struct gspca_dev *gspca_dev,
799 const struct usb_device_id *id) 809 const struct usb_device_id *id)
800{ 810{
801 struct sd *sd = (struct sd *) gspca_dev; 811 struct sd *sd = (struct sd *) gspca_dev;
802 struct usb_device *dev = gspca_dev->dev;
803 struct cam *cam; 812 struct cam *cam;
804 813
805 cam = &gspca_dev->cam; 814 cam = &gspca_dev->cam;
@@ -811,7 +820,7 @@ static int sd_config(struct gspca_dev *gspca_dev,
811 if (sd->subtype == AiptekMiniPenCam13) { 820 if (sd->subtype == AiptekMiniPenCam13) {
812/* try to get the firmware as some cam answer 2.0.1.2.2 821/* try to get the firmware as some cam answer 2.0.1.2.2
813 * and should be a spca504b then overwrite that setting */ 822 * and should be a spca504b then overwrite that setting */
814 reg_r(dev, 0x20, 0, gspca_dev->usb_buf, 1); 823 reg_r(gspca_dev, 0x20, 0, 1);
815 switch (gspca_dev->usb_buf[0]) { 824 switch (gspca_dev->usb_buf[0]) {
816 case 1: 825 case 1:
817 break; /* (right bridge/subtype) */ 826 break; /* (right bridge/subtype) */
@@ -848,8 +857,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
848 return 0; 857 return 0;
849} 858}
850 859
851/* this function is called at open time */ 860/* this function is called at probe and resume time */
852static int sd_open(struct gspca_dev *gspca_dev) 861static int sd_init(struct gspca_dev *gspca_dev)
853{ 862{
854 struct sd *sd = (struct sd *) gspca_dev; 863 struct sd *sd = (struct sd *) gspca_dev;
855 struct usb_device *dev = gspca_dev->dev; 864 struct usb_device *dev = gspca_dev->dev;
@@ -860,12 +869,12 @@ static int sd_open(struct gspca_dev *gspca_dev)
860 869
861 switch (sd->bridge) { 870 switch (sd->bridge) {
862 case BRIDGE_SPCA504B: 871 case BRIDGE_SPCA504B:
863 reg_w(dev, 0x1d, 0, 0, NULL, 0); 872 reg_w(gspca_dev, 0x1d, 0, 0, 0);
864 reg_w(dev, 0, 1, 0x2306, NULL, 0); 873 reg_w(gspca_dev, 0, 1, 0x2306, 0);
865 reg_w(dev, 0, 0, 0x0d04, NULL, 0); 874 reg_w(gspca_dev, 0, 0, 0x0d04, 0);
866 reg_w(dev, 0, 0, 0x2000, NULL, 0); 875 reg_w(gspca_dev, 0, 0, 0x2000, 0);
867 reg_w(dev, 0, 0x13, 0x2301, NULL, 0); 876 reg_w(gspca_dev, 0, 0x13, 0x2301, 0);
868 reg_w(dev, 0, 0, 0x2306, NULL, 0); 877 reg_w(gspca_dev, 0, 0, 0x2306, 0);
869 /* fall thru */ 878 /* fall thru */
870 case BRIDGE_SPCA533: 879 case BRIDGE_SPCA533:
871 rc = spca504B_PollingDataReady(gspca_dev); 880 rc = spca504B_PollingDataReady(gspca_dev);
@@ -873,12 +882,12 @@ static int sd_open(struct gspca_dev *gspca_dev)
873 break; 882 break;
874 case BRIDGE_SPCA536: 883 case BRIDGE_SPCA536:
875 spca50x_GetFirmware(gspca_dev); 884 spca50x_GetFirmware(gspca_dev);
876 reg_r(dev, 0x00, 0x5002, gspca_dev->usb_buf, 1); 885 reg_r(gspca_dev, 0x00, 0x5002, 1);
877 gspca_dev->usb_buf[0] = 0; 886 gspca_dev->usb_buf[0] = 0;
878 reg_w(dev, 0x24, 0, 0, gspca_dev->usb_buf, 1); 887 reg_w(gspca_dev, 0x24, 0, 0, 1);
879 reg_r(dev, 0x24, 0, gspca_dev->usb_buf, 1); 888 reg_r(gspca_dev, 0x24, 0, 1);
880 rc = spca504B_PollingDataReady(gspca_dev); 889 rc = spca504B_PollingDataReady(gspca_dev);
881 reg_w(dev, 0x34, 0, 0, NULL, 0); 890 reg_w(gspca_dev, 0x34, 0, 0, 0);
882 spca504B_WaitCmdStatus(gspca_dev); 891 spca504B_WaitCmdStatus(gspca_dev);
883 break; 892 break;
884 case BRIDGE_SPCA504C: /* pccam600 */ 893 case BRIDGE_SPCA504C: /* pccam600 */
@@ -971,12 +980,12 @@ static void sd_start(struct gspca_dev *gspca_dev)
971/* case BRIDGE_SPCA536: */ 980/* case BRIDGE_SPCA536: */
972 if (sd->subtype == MegapixV4 || 981 if (sd->subtype == MegapixV4 ||
973 sd->subtype == LogitechClickSmart820) { 982 sd->subtype == LogitechClickSmart820) {
974 reg_w(dev, 0xf0, 0, 0, NULL, 0); 983 reg_w(gspca_dev, 0xf0, 0, 0, 0);
975 spca504B_WaitCmdStatus(gspca_dev); 984 spca504B_WaitCmdStatus(gspca_dev);
976 reg_r(dev, 0xf0, 4, NULL, 0); 985 reg_r(gspca_dev, 0xf0, 4, 0);
977 spca504B_WaitCmdStatus(gspca_dev); 986 spca504B_WaitCmdStatus(gspca_dev);
978 } else { 987 } else {
979 reg_w(dev, 0x31, 0, 4, NULL, 0); 988 reg_w(gspca_dev, 0x31, 0, 4, 0);
980 spca504B_WaitCmdStatus(gspca_dev); 989 spca504B_WaitCmdStatus(gspca_dev);
981 rc = spca504B_PollingDataReady(gspca_dev); 990 rc = spca504B_PollingDataReady(gspca_dev);
982 } 991 }
@@ -1045,7 +1054,7 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1045/* case BRIDGE_SPCA533: */ 1054/* case BRIDGE_SPCA533: */
1046/* case BRIDGE_SPCA536: */ 1055/* case BRIDGE_SPCA536: */
1047/* case BRIDGE_SPCA504B: */ 1056/* case BRIDGE_SPCA504B: */
1048 reg_w(dev, 0x31, 0, 0, NULL, 0); 1057 reg_w(gspca_dev, 0x31, 0, 0, 0);
1049 spca504B_WaitCmdStatus(gspca_dev); 1058 spca504B_WaitCmdStatus(gspca_dev);
1050 spca504B_PollingDataReady(gspca_dev); 1059 spca504B_PollingDataReady(gspca_dev);
1051 break; 1060 break;
@@ -1069,14 +1078,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1069 } 1078 }
1070} 1079}
1071 1080
1072static void sd_stop0(struct gspca_dev *gspca_dev)
1073{
1074}
1075
1076static void sd_close(struct gspca_dev *gspca_dev)
1077{
1078}
1079
1080static void sd_pkt_scan(struct gspca_dev *gspca_dev, 1081static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1081 struct gspca_frame *frame, /* target */ 1082 struct gspca_frame *frame, /* target */
1082 __u8 *data, /* isoc packet */ 1083 __u8 *data, /* isoc packet */
@@ -1369,11 +1370,9 @@ static const struct sd_desc sd_desc = {
1369 .ctrls = sd_ctrls, 1370 .ctrls = sd_ctrls,
1370 .nctrls = ARRAY_SIZE(sd_ctrls), 1371 .nctrls = ARRAY_SIZE(sd_ctrls),
1371 .config = sd_config, 1372 .config = sd_config,
1372 .open = sd_open, 1373 .init = sd_init,
1373 .start = sd_start, 1374 .start = sd_start,
1374 .stopN = sd_stopN, 1375 .stopN = sd_stopN,
1375 .stop0 = sd_stop0,
1376 .close = sd_close,
1377 .pkt_scan = sd_pkt_scan, 1376 .pkt_scan = sd_pkt_scan,
1378}; 1377};
1379 1378
@@ -1456,6 +1455,10 @@ static struct usb_driver sd_driver = {
1456 .id_table = device_table, 1455 .id_table = device_table,
1457 .probe = sd_probe, 1456 .probe = sd_probe,
1458 .disconnect = gspca_disconnect, 1457 .disconnect = gspca_disconnect,
1458#ifdef CONFIG_PM
1459 .suspend = gspca_suspend,
1460 .resume = gspca_resume,
1461#endif
1459}; 1462};
1460 1463
1461/* -- module insert / remove -- */ 1464/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/t613.c b/drivers/media/video/gspca/t613.c
index 91b555c34c6..f034c748fc7 100644
--- a/drivers/media/video/gspca/t613.c
+++ b/drivers/media/video/gspca/t613.c
@@ -30,7 +30,7 @@
30 30
31#define MAX_GAMMA 0x10 /* 0 to 15 */ 31#define MAX_GAMMA 0x10 /* 0 to 15 */
32 32
33#define V4L2_CID_EFFECTS (V4L2_CID_PRIVATE_BASE + 3) 33#define V4L2_CID_EFFECTS (V4L2_CID_PRIVATE_BASE + 0)
34 34
35MODULE_AUTHOR("Leandro Costantino <le_costantino@pixartargentina.com.ar>"); 35MODULE_AUTHOR("Leandro Costantino <le_costantino@pixartargentina.com.ar>");
36MODULE_DESCRIPTION("GSPCA/T613 (JPEG Compliance) USB Camera Driver"); 36MODULE_DESCRIPTION("GSPCA/T613 (JPEG Compliance) USB Camera Driver");
@@ -233,7 +233,7 @@ static char *effects_control[] = {
233static struct v4l2_pix_format vga_mode_t16[] = { 233static struct v4l2_pix_format vga_mode_t16[] = {
234 {160, 120, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 234 {160, 120, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
235 .bytesperline = 160, 235 .bytesperline = 160,
236 .sizeimage = 160 * 120 * 3 / 8 + 590, 236 .sizeimage = 160 * 120 * 4 / 8 + 590,
237 .colorspace = V4L2_COLORSPACE_JPEG, 237 .colorspace = V4L2_COLORSPACE_JPEG,
238 .priv = 4}, 238 .priv = 4},
239 {176, 144, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 239 {176, 144, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
@@ -391,7 +391,7 @@ static void reg_w(struct gspca_dev *gspca_dev,
391 NULL, 0, 500); 391 NULL, 0, 500);
392 return; 392 return;
393 } 393 }
394 if (len <= sizeof gspca_dev->usb_buf) { 394 if (len <= USB_BUF_SZ) {
395 memcpy(gspca_dev->usb_buf, buffer, len); 395 memcpy(gspca_dev->usb_buf, buffer, len);
396 usb_control_msg(gspca_dev->dev, 396 usb_control_msg(gspca_dev->dev,
397 usb_sndctrlpipe(gspca_dev->dev, 0), 397 usb_sndctrlpipe(gspca_dev->dev, 0),
@@ -552,6 +552,13 @@ static int init_default_parameters(struct gspca_dev *gspca_dev)
552 return 0; 552 return 0;
553} 553}
554 554
555/* this function is called at probe and resume time */
556static int sd_init(struct gspca_dev *gspca_dev)
557{
558 init_default_parameters(gspca_dev);
559 return 0;
560}
561
555static void setbrightness(struct gspca_dev *gspca_dev) 562static void setbrightness(struct gspca_dev *gspca_dev)
556{ 563{
557 struct sd *sd = (struct sd *) gspca_dev; 564 struct sd *sd = (struct sd *) gspca_dev;
@@ -893,18 +900,6 @@ static void sd_start(struct gspca_dev *gspca_dev)
893 setcolors(gspca_dev); 900 setcolors(gspca_dev);
894} 901}
895 902
896static void sd_stopN(struct gspca_dev *gspca_dev)
897{
898}
899
900static void sd_stop0(struct gspca_dev *gspca_dev)
901{
902}
903
904static void sd_close(struct gspca_dev *gspca_dev)
905{
906}
907
908static void sd_pkt_scan(struct gspca_dev *gspca_dev, 903static void sd_pkt_scan(struct gspca_dev *gspca_dev,
909 struct gspca_frame *frame, /* target */ 904 struct gspca_frame *frame, /* target */
910 __u8 *data, /* isoc packet */ 905 __u8 *data, /* isoc packet */
@@ -972,24 +967,14 @@ static int sd_querymenu(struct gspca_dev *gspca_dev,
972 return -EINVAL; 967 return -EINVAL;
973} 968}
974 969
975/* this function is called at open time */
976static int sd_open(struct gspca_dev *gspca_dev)
977{
978 init_default_parameters(gspca_dev);
979 return 0;
980}
981
982/* sub-driver description */ 970/* sub-driver description */
983static const struct sd_desc sd_desc = { 971static const struct sd_desc sd_desc = {
984 .name = MODULE_NAME, 972 .name = MODULE_NAME,
985 .ctrls = sd_ctrls, 973 .ctrls = sd_ctrls,
986 .nctrls = ARRAY_SIZE(sd_ctrls), 974 .nctrls = ARRAY_SIZE(sd_ctrls),
987 .config = sd_config, 975 .config = sd_config,
988 .open = sd_open, 976 .init = sd_init,
989 .start = sd_start, 977 .start = sd_start,
990 .stopN = sd_stopN,
991 .stop0 = sd_stop0,
992 .close = sd_close,
993 .pkt_scan = sd_pkt_scan, 978 .pkt_scan = sd_pkt_scan,
994 .querymenu = sd_querymenu, 979 .querymenu = sd_querymenu,
995}; 980};
@@ -1014,6 +999,10 @@ static struct usb_driver sd_driver = {
1014 .id_table = device_table, 999 .id_table = device_table,
1015 .probe = sd_probe, 1000 .probe = sd_probe,
1016 .disconnect = gspca_disconnect, 1001 .disconnect = gspca_disconnect,
1002#ifdef CONFIG_PM
1003 .suspend = gspca_suspend,
1004 .resume = gspca_resume,
1005#endif
1017}; 1006};
1018 1007
1019/* -- module insert / remove -- */ 1008/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/tv8532.c b/drivers/media/video/gspca/tv8532.c
index 1ff8ba2f7fe..084af05302a 100644
--- a/drivers/media/video/gspca/tv8532.c
+++ b/drivers/media/video/gspca/tv8532.c
@@ -331,8 +331,8 @@ static void tv_8532_PollReg(struct gspca_dev *gspca_dev)
331 } 331 }
332} 332}
333 333
334/* this function is called at open time */ 334/* this function is called at probe and resume time */
335static int sd_open(struct gspca_dev *gspca_dev) 335static int sd_init(struct gspca_dev *gspca_dev)
336{ 336{
337 reg_w_1(gspca_dev, TV8532_AD_SLOPE, 0x32); 337 reg_w_1(gspca_dev, TV8532_AD_SLOPE, 0x32);
338 reg_w_1(gspca_dev, TV8532_AD_BITCTRL, 0x00); 338 reg_w_1(gspca_dev, TV8532_AD_BITCTRL, 0x00);
@@ -450,14 +450,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
450 reg_w_1(gspca_dev, TV8532_GPIO_OE, 0x0b); 450 reg_w_1(gspca_dev, TV8532_GPIO_OE, 0x0b);
451} 451}
452 452
453static void sd_stop0(struct gspca_dev *gspca_dev)
454{
455}
456
457static void sd_close(struct gspca_dev *gspca_dev)
458{
459}
460
461static void tv8532_preprocess(struct gspca_dev *gspca_dev) 453static void tv8532_preprocess(struct gspca_dev *gspca_dev)
462{ 454{
463 struct sd *sd = (struct sd *) gspca_dev; 455 struct sd *sd = (struct sd *) gspca_dev;
@@ -611,11 +603,9 @@ static const struct sd_desc sd_desc = {
611 .ctrls = sd_ctrls, 603 .ctrls = sd_ctrls,
612 .nctrls = ARRAY_SIZE(sd_ctrls), 604 .nctrls = ARRAY_SIZE(sd_ctrls),
613 .config = sd_config, 605 .config = sd_config,
614 .open = sd_open, 606 .init = sd_init,
615 .start = sd_start, 607 .start = sd_start,
616 .stopN = sd_stopN, 608 .stopN = sd_stopN,
617 .stop0 = sd_stop0,
618 .close = sd_close,
619 .pkt_scan = sd_pkt_scan, 609 .pkt_scan = sd_pkt_scan,
620}; 610};
621 611
@@ -644,6 +634,10 @@ static struct usb_driver sd_driver = {
644 .id_table = device_table, 634 .id_table = device_table,
645 .probe = sd_probe, 635 .probe = sd_probe,
646 .disconnect = gspca_disconnect, 636 .disconnect = gspca_disconnect,
637#ifdef CONFIG_PM
638 .suspend = gspca_suspend,
639 .resume = gspca_resume,
640#endif
647}; 641};
648 642
649/* -- module insert / remove -- */ 643/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/vc032x.c b/drivers/media/video/gspca/vc032x.c
index f4a52956e0d..bd4c226c9a0 100644
--- a/drivers/media/video/gspca/vc032x.c
+++ b/drivers/media/video/gspca/vc032x.c
@@ -69,6 +69,7 @@ static struct ctrl sd_ctrls[] = {
69 .set = sd_setautogain, 69 .set = sd_setautogain,
70 .get = sd_getautogain, 70 .get = sd_getautogain,
71 }, 71 },
72#define LIGHTFREQ_IDX 1
72 { 73 {
73 { 74 {
74 .id = V4L2_CID_POWER_LINE_FREQUENCY, 75 .id = V4L2_CID_POWER_LINE_FREQUENCY,
@@ -87,12 +88,12 @@ static struct ctrl sd_ctrls[] = {
87}; 88};
88 89
89static struct v4l2_pix_format vc0321_mode[] = { 90static struct v4l2_pix_format vc0321_mode[] = {
90 {320, 240, V4L2_PIX_FMT_YUV420, V4L2_FIELD_NONE, 91 {320, 240, V4L2_PIX_FMT_YVYU, V4L2_FIELD_NONE,
91 .bytesperline = 320, 92 .bytesperline = 320,
92 .sizeimage = 320 * 240 * 2, 93 .sizeimage = 320 * 240 * 2,
93 .colorspace = V4L2_COLORSPACE_SRGB, 94 .colorspace = V4L2_COLORSPACE_SRGB,
94 .priv = 1}, 95 .priv = 1},
95 {640, 480, V4L2_PIX_FMT_YUV420, V4L2_FIELD_NONE, 96 {640, 480, V4L2_PIX_FMT_YVYU, V4L2_FIELD_NONE,
96 .bytesperline = 640, 97 .bytesperline = 640,
97 .sizeimage = 640 * 480 * 2, 98 .sizeimage = 640 * 480 * 2,
98 .colorspace = V4L2_COLORSPACE_SRGB, 99 .colorspace = V4L2_COLORSPACE_SRGB,
@@ -1463,6 +1464,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
1463 sd->qindex = 7; 1464 sd->qindex = 7;
1464 sd->autogain = AUTOGAIN_DEF; 1465 sd->autogain = AUTOGAIN_DEF;
1465 sd->lightfreq = FREQ_DEF; 1466 sd->lightfreq = FREQ_DEF;
1467 if (sd->sensor != SENSOR_OV7670)
1468 gspca_dev->ctrl_dis = (1 << LIGHTFREQ_IDX);
1466 1469
1467 if (sd->bridge == BRIDGE_VC0321) { 1470 if (sd->bridge == BRIDGE_VC0321) {
1468 reg_r(gspca_dev, 0x8a, 0, 3); 1471 reg_r(gspca_dev, 0x8a, 0, 3);
@@ -1474,8 +1477,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
1474 return 0; 1477 return 0;
1475} 1478}
1476 1479
1477/* this function is called at open time */ 1480/* this function is called at probe and time */
1478static int sd_open(struct gspca_dev *gspca_dev) 1481static int sd_init(struct gspca_dev *gspca_dev)
1479{ 1482{
1480 return 0; 1483 return 0;
1481} 1484}
@@ -1637,19 +1640,6 @@ static void sd_stop0(struct gspca_dev *gspca_dev)
1637 reg_w(dev, 0x89, 0xffff, 0xffff); 1640 reg_w(dev, 0x89, 0xffff, 0xffff);
1638} 1641}
1639 1642
1640/* this function is called at close time */
1641static void sd_close(struct gspca_dev *gspca_dev)
1642{
1643/* struct usb_device *dev = gspca_dev->dev;
1644 __u8 buffread;
1645
1646 reg_w(dev, 0x89, 0xffff, 0xffff);
1647 reg_w(dev, 0xa0, 0x01, 0xb301);
1648 reg_w(dev, 0xa0, 0x09, 0xb303);
1649 reg_w(dev, 0x89, 0xffff, 0xffff);
1650*/
1651}
1652
1653static void sd_pkt_scan(struct gspca_dev *gspca_dev, 1643static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1654 struct gspca_frame *frame, /* target */ 1644 struct gspca_frame *frame, /* target */
1655 __u8 *data, /* isoc packet */ 1645 __u8 *data, /* isoc packet */
@@ -1738,11 +1728,10 @@ static const struct sd_desc sd_desc = {
1738 .ctrls = sd_ctrls, 1728 .ctrls = sd_ctrls,
1739 .nctrls = ARRAY_SIZE(sd_ctrls), 1729 .nctrls = ARRAY_SIZE(sd_ctrls),
1740 .config = sd_config, 1730 .config = sd_config,
1741 .open = sd_open, 1731 .init = sd_init,
1742 .start = sd_start, 1732 .start = sd_start,
1743 .stopN = sd_stopN, 1733 .stopN = sd_stopN,
1744 .stop0 = sd_stop0, 1734 .stop0 = sd_stop0,
1745 .close = sd_close,
1746 .pkt_scan = sd_pkt_scan, 1735 .pkt_scan = sd_pkt_scan,
1747 .querymenu = sd_querymenu, 1736 .querymenu = sd_querymenu,
1748}; 1737};
@@ -1774,6 +1763,10 @@ static struct usb_driver sd_driver = {
1774 .id_table = device_table, 1763 .id_table = device_table,
1775 .probe = sd_probe, 1764 .probe = sd_probe,
1776 .disconnect = gspca_disconnect, 1765 .disconnect = gspca_disconnect,
1766#ifdef CONFIG_PM
1767 .suspend = gspca_suspend,
1768 .resume = gspca_resume,
1769#endif
1777}; 1770};
1778 1771
1779/* -- module insert / remove -- */ 1772/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/zc3xx.c b/drivers/media/video/gspca/zc3xx.c
index bc7d0eedcd8..8d7c27e6ac7 100644
--- a/drivers/media/video/gspca/zc3xx.c
+++ b/drivers/media/video/gspca/zc3xx.c
@@ -85,6 +85,7 @@ static int sd_setsharpness(struct gspca_dev *gspca_dev, __s32 val);
85static int sd_getsharpness(struct gspca_dev *gspca_dev, __s32 *val); 85static int sd_getsharpness(struct gspca_dev *gspca_dev, __s32 *val);
86 86
87static struct ctrl sd_ctrls[] = { 87static struct ctrl sd_ctrls[] = {
88#define BRIGHTNESS_IDX 0
88#define SD_BRIGHTNESS 0 89#define SD_BRIGHTNESS 0
89 { 90 {
90 { 91 {
@@ -141,6 +142,7 @@ static struct ctrl sd_ctrls[] = {
141 .set = sd_setautogain, 142 .set = sd_setautogain,
142 .get = sd_getautogain, 143 .get = sd_getautogain,
143 }, 144 },
145#define LIGHTFREQ_IDX 4
144#define SD_FREQ 4 146#define SD_FREQ 4
145 { 147 {
146 { 148 {
@@ -6964,8 +6966,13 @@ static int zcxx_probeSensor(struct gspca_dev *gspca_dev)
6964 case SENSOR_MC501CB: 6966 case SENSOR_MC501CB:
6965 return -1; /* don't probe */ 6967 return -1; /* don't probe */
6966 case SENSOR_TAS5130C_VF0250: 6968 case SENSOR_TAS5130C_VF0250:
6967 /* may probe but with write in reg 0x0010 */ 6969 /* may probe but with no write in reg 0x0010 */
6968 return -1; /* don't probe */ 6970 return -1; /* don't probe */
6971 case SENSOR_PAS106:
6972 sensor = sif_probe(gspca_dev);
6973 if (sensor >= 0)
6974 return sensor;
6975 break;
6969 } 6976 }
6970 sensor = vga_2wr_probe(gspca_dev); 6977 sensor = vga_2wr_probe(gspca_dev);
6971 if (sensor >= 0) { 6978 if (sensor >= 0) {
@@ -6974,12 +6981,10 @@ static int zcxx_probeSensor(struct gspca_dev *gspca_dev)
6974 /* next probe is needed for OmniVision ? */ 6981 /* next probe is needed for OmniVision ? */
6975 } 6982 }
6976 sensor2 = vga_3wr_probe(gspca_dev); 6983 sensor2 = vga_3wr_probe(gspca_dev);
6977 if (sensor2 >= 0) { 6984 if (sensor2 >= 0
6978 if (sensor >= 0) 6985 && sensor >= 0)
6979 return sensor; 6986 return sensor;
6980 return sensor2; 6987 return sensor2;
6981 }
6982 return sif_probe(gspca_dev);
6983} 6988}
6984 6989
6985/* this function is called at probe time */ 6990/* this function is called at probe time */
@@ -7147,13 +7152,27 @@ static int sd_config(struct gspca_dev *gspca_dev,
7147 sd->lightfreq = sd_ctrls[SD_FREQ].qctrl.default_value; 7152 sd->lightfreq = sd_ctrls[SD_FREQ].qctrl.default_value;
7148 sd->sharpness = sd_ctrls[SD_SHARPNESS].qctrl.default_value; 7153 sd->sharpness = sd_ctrls[SD_SHARPNESS].qctrl.default_value;
7149 7154
7155 switch (sd->sensor) {
7156 case SENSOR_GC0305:
7157 case SENSOR_OV7620:
7158 case SENSOR_PO2030:
7159 gspca_dev->ctrl_dis = (1 << BRIGHTNESS_IDX);
7160 break;
7161 case SENSOR_HDCS2020:
7162 case SENSOR_HV7131B:
7163 case SENSOR_HV7131C:
7164 case SENSOR_OV7630C:
7165 gspca_dev->ctrl_dis = (1 << LIGHTFREQ_IDX);
7166 break;
7167 }
7168
7150 /* switch the led off */ 7169 /* switch the led off */
7151 reg_w(gspca_dev->dev, 0x01, 0x0000); 7170 reg_w(gspca_dev->dev, 0x01, 0x0000);
7152 return 0; 7171 return 0;
7153} 7172}
7154 7173
7155/* this function is called at open time */ 7174/* this function is called at probe and resume time */
7156static int sd_open(struct gspca_dev *gspca_dev) 7175static int sd_init(struct gspca_dev *gspca_dev)
7157{ 7176{
7158 reg_w(gspca_dev->dev, 0x01, 0x0000); 7177 reg_w(gspca_dev->dev, 0x01, 0x0000);
7159 return 0; 7178 return 0;
@@ -7314,10 +7333,6 @@ static void sd_start(struct gspca_dev *gspca_dev)
7314 } 7333 }
7315} 7334}
7316 7335
7317static void sd_stopN(struct gspca_dev *gspca_dev)
7318{
7319}
7320
7321static void sd_stop0(struct gspca_dev *gspca_dev) 7336static void sd_stop0(struct gspca_dev *gspca_dev)
7322{ 7337{
7323 struct sd *sd = (struct sd *) gspca_dev; 7338 struct sd *sd = (struct sd *) gspca_dev;
@@ -7325,11 +7340,6 @@ static void sd_stop0(struct gspca_dev *gspca_dev)
7325 send_unknown(gspca_dev->dev, sd->sensor); 7340 send_unknown(gspca_dev->dev, sd->sensor);
7326} 7341}
7327 7342
7328/* this function is called at close time */
7329static void sd_close(struct gspca_dev *gspca_dev)
7330{
7331}
7332
7333static void sd_pkt_scan(struct gspca_dev *gspca_dev, 7343static void sd_pkt_scan(struct gspca_dev *gspca_dev,
7334 struct gspca_frame *frame, 7344 struct gspca_frame *frame,
7335 __u8 *data, 7345 __u8 *data,
@@ -7489,37 +7499,30 @@ static const struct sd_desc sd_desc = {
7489 .ctrls = sd_ctrls, 7499 .ctrls = sd_ctrls,
7490 .nctrls = sizeof sd_ctrls / sizeof sd_ctrls[0], 7500 .nctrls = sizeof sd_ctrls / sizeof sd_ctrls[0],
7491 .config = sd_config, 7501 .config = sd_config,
7492 .open = sd_open, 7502 .init = sd_init,
7493 .start = sd_start, 7503 .start = sd_start,
7494 .stopN = sd_stopN,
7495 .stop0 = sd_stop0, 7504 .stop0 = sd_stop0,
7496 .close = sd_close,
7497 .pkt_scan = sd_pkt_scan, 7505 .pkt_scan = sd_pkt_scan,
7498 .querymenu = sd_querymenu, 7506 .querymenu = sd_querymenu,
7499}; 7507};
7500 7508
7501static const __devinitdata struct usb_device_id device_table[] = { 7509static const __devinitdata struct usb_device_id device_table[] = {
7502 {USB_DEVICE(0x041e, 0x041e)}, 7510 {USB_DEVICE(0x041e, 0x041e)},
7503#ifndef CONFIG_USB_ZC0301
7504 {USB_DEVICE(0x041e, 0x4017)}, 7511 {USB_DEVICE(0x041e, 0x4017)},
7505 {USB_DEVICE(0x041e, 0x401c)}, 7512 {USB_DEVICE(0x041e, 0x401c), .driver_info = SENSOR_PAS106},
7506 {USB_DEVICE(0x041e, 0x401e)}, 7513 {USB_DEVICE(0x041e, 0x401e)},
7507 {USB_DEVICE(0x041e, 0x401f)}, 7514 {USB_DEVICE(0x041e, 0x401f)},
7508#endif 7515 {USB_DEVICE(0x041e, 0x4022)},
7509 {USB_DEVICE(0x041e, 0x4029)}, 7516 {USB_DEVICE(0x041e, 0x4029)},
7510#ifndef CONFIG_USB_ZC0301 7517 {USB_DEVICE(0x041e, 0x4034), .driver_info = SENSOR_PAS106},
7511 {USB_DEVICE(0x041e, 0x4034)}, 7518 {USB_DEVICE(0x041e, 0x4035), .driver_info = SENSOR_PAS106},
7512 {USB_DEVICE(0x041e, 0x4035)},
7513 {USB_DEVICE(0x041e, 0x4036)}, 7519 {USB_DEVICE(0x041e, 0x4036)},
7514 {USB_DEVICE(0x041e, 0x403a)}, 7520 {USB_DEVICE(0x041e, 0x403a)},
7515#endif
7516 {USB_DEVICE(0x041e, 0x4051), .driver_info = SENSOR_TAS5130C_VF0250}, 7521 {USB_DEVICE(0x041e, 0x4051), .driver_info = SENSOR_TAS5130C_VF0250},
7517 {USB_DEVICE(0x041e, 0x4053), .driver_info = SENSOR_TAS5130C_VF0250}, 7522 {USB_DEVICE(0x041e, 0x4053), .driver_info = SENSOR_TAS5130C_VF0250},
7518#ifndef CONFIG_USB_ZC0301
7519 {USB_DEVICE(0x0458, 0x7007)}, 7523 {USB_DEVICE(0x0458, 0x7007)},
7520 {USB_DEVICE(0x0458, 0x700c)}, 7524 {USB_DEVICE(0x0458, 0x700c)},
7521 {USB_DEVICE(0x0458, 0x700f)}, 7525 {USB_DEVICE(0x0458, 0x700f)},
7522#endif
7523 {USB_DEVICE(0x0461, 0x0a00)}, 7526 {USB_DEVICE(0x0461, 0x0a00)},
7524 {USB_DEVICE(0x046d, 0x08a0)}, 7527 {USB_DEVICE(0x046d, 0x08a0)},
7525 {USB_DEVICE(0x046d, 0x08a1)}, 7528 {USB_DEVICE(0x046d, 0x08a1)},
@@ -7531,7 +7534,7 @@ static const __devinitdata struct usb_device_id device_table[] = {
7531 {USB_DEVICE(0x046d, 0x08aa)}, 7534 {USB_DEVICE(0x046d, 0x08aa)},
7532 {USB_DEVICE(0x046d, 0x08ac)}, 7535 {USB_DEVICE(0x046d, 0x08ac)},
7533 {USB_DEVICE(0x046d, 0x08ad)}, 7536 {USB_DEVICE(0x046d, 0x08ad)},
7534#ifndef CONFIG_USB_ZC0301 7537#if !defined CONFIG_USB_ZC0301 && !defined CONFIG_USB_ZC0301_MODULE
7535 {USB_DEVICE(0x046d, 0x08ae)}, 7538 {USB_DEVICE(0x046d, 0x08ae)},
7536#endif 7539#endif
7537 {USB_DEVICE(0x046d, 0x08af)}, 7540 {USB_DEVICE(0x046d, 0x08af)},
@@ -7541,27 +7544,25 @@ static const __devinitdata struct usb_device_id device_table[] = {
7541 {USB_DEVICE(0x046d, 0x08d8)}, 7544 {USB_DEVICE(0x046d, 0x08d8)},
7542 {USB_DEVICE(0x046d, 0x08da)}, 7545 {USB_DEVICE(0x046d, 0x08da)},
7543 {USB_DEVICE(0x046d, 0x08dd), .driver_info = SENSOR_MC501CB}, 7546 {USB_DEVICE(0x046d, 0x08dd), .driver_info = SENSOR_MC501CB},
7544 {USB_DEVICE(0x0471, 0x0325)}, 7547 {USB_DEVICE(0x0471, 0x0325), .driver_info = SENSOR_PAS106},
7545 {USB_DEVICE(0x0471, 0x0326)}, 7548 {USB_DEVICE(0x0471, 0x0326), .driver_info = SENSOR_PAS106},
7546 {USB_DEVICE(0x0471, 0x032d)}, 7549 {USB_DEVICE(0x0471, 0x032d), .driver_info = SENSOR_PAS106},
7547 {USB_DEVICE(0x0471, 0x032e)}, 7550 {USB_DEVICE(0x0471, 0x032e), .driver_info = SENSOR_PAS106},
7548 {USB_DEVICE(0x055f, 0xc005)}, 7551 {USB_DEVICE(0x055f, 0xc005)},
7549#ifndef CONFIG_USB_ZC0301
7550 {USB_DEVICE(0x055f, 0xd003)}, 7552 {USB_DEVICE(0x055f, 0xd003)},
7551 {USB_DEVICE(0x055f, 0xd004)}, 7553 {USB_DEVICE(0x055f, 0xd004)},
7552#endif
7553 {USB_DEVICE(0x0698, 0x2003)}, 7554 {USB_DEVICE(0x0698, 0x2003)},
7555 {USB_DEVICE(0x0ac8, 0x0301), .driver_info = SENSOR_PAS106},
7554 {USB_DEVICE(0x0ac8, 0x0302)}, 7556 {USB_DEVICE(0x0ac8, 0x0302)},
7555#ifndef CONFIG_USB_ZC0301
7556 {USB_DEVICE(0x0ac8, 0x301b)}, 7557 {USB_DEVICE(0x0ac8, 0x301b)},
7558#if !defined CONFIG_USB_ZC0301 && !defined CONFIG_USB_ZC0301_MODULE
7557 {USB_DEVICE(0x0ac8, 0x303b)}, 7559 {USB_DEVICE(0x0ac8, 0x303b)},
7558#endif 7560#endif
7559 {USB_DEVICE(0x0ac8, 0x305b), .driver_info = SENSOR_TAS5130C_VF0250}, 7561 {USB_DEVICE(0x0ac8, 0x305b), .driver_info = SENSOR_TAS5130C_VF0250},
7560#ifndef CONFIG_USB_ZC0301
7561 {USB_DEVICE(0x0ac8, 0x307b)}, 7562 {USB_DEVICE(0x0ac8, 0x307b)},
7562 {USB_DEVICE(0x10fd, 0x0128)}, 7563 {USB_DEVICE(0x10fd, 0x0128)},
7564 {USB_DEVICE(0x10fd, 0x804d)},
7563 {USB_DEVICE(0x10fd, 0x8050)}, 7565 {USB_DEVICE(0x10fd, 0x8050)},
7564#endif
7565 {} /* end of entry */ 7566 {} /* end of entry */
7566}; 7567};
7567#undef DVNAME 7568#undef DVNAME
@@ -7581,6 +7582,10 @@ static struct usb_driver sd_driver = {
7581 .id_table = device_table, 7582 .id_table = device_table,
7582 .probe = sd_probe, 7583 .probe = sd_probe,
7583 .disconnect = gspca_disconnect, 7584 .disconnect = gspca_disconnect,
7585#ifdef CONFIG_PM
7586 .suspend = gspca_suspend,
7587 .resume = gspca_resume,
7588#endif
7584}; 7589};
7585 7590
7586static int __init sd_mod_init(void) 7591static int __init sd_mod_init(void)
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c
index aea1664948c..4afc7ea07e8 100644
--- a/drivers/media/video/ivtv/ivtv-driver.c
+++ b/drivers/media/video/ivtv/ivtv-driver.c
@@ -688,7 +688,7 @@ static int __devinit ivtv_init_struct1(struct ivtv *itv)
688 spin_lock_init(&itv->lock); 688 spin_lock_init(&itv->lock);
689 spin_lock_init(&itv->dma_reg_lock); 689 spin_lock_init(&itv->dma_reg_lock);
690 690
691 itv->irq_work_queues = create_workqueue(itv->name); 691 itv->irq_work_queues = create_singlethread_workqueue(itv->name);
692 if (itv->irq_work_queues == NULL) { 692 if (itv->irq_work_queues == NULL) {
693 IVTV_ERR("Could not create ivtv workqueue\n"); 693 IVTV_ERR("Could not create ivtv workqueue\n");
694 return -1; 694 return -1;
diff --git a/drivers/media/video/ivtv/ivtv-driver.h b/drivers/media/video/ivtv/ivtv-driver.h
index ab287b48fc2..2ceb5227637 100644
--- a/drivers/media/video/ivtv/ivtv-driver.h
+++ b/drivers/media/video/ivtv/ivtv-driver.h
@@ -251,6 +251,7 @@ struct ivtv_mailbox_data {
251#define IVTV_F_I_DEC_PAUSED 20 /* the decoder is paused */ 251#define IVTV_F_I_DEC_PAUSED 20 /* the decoder is paused */
252#define IVTV_F_I_INITED 21 /* set after first open */ 252#define IVTV_F_I_INITED 21 /* set after first open */
253#define IVTV_F_I_FAILED 22 /* set if first open failed */ 253#define IVTV_F_I_FAILED 22 /* set if first open failed */
254#define IVTV_F_I_WORK_INITED 23 /* worker thread was initialized */
254 255
255/* Event notifications */ 256/* Event notifications */
256#define IVTV_F_I_EV_DEC_STOPPED 28 /* decoder stopped event */ 257#define IVTV_F_I_EV_DEC_STOPPED 28 /* decoder stopped event */
diff --git a/drivers/media/video/ivtv/ivtv-irq.c b/drivers/media/video/ivtv/ivtv-irq.c
index fba150a6cd2..34f3ab82785 100644
--- a/drivers/media/video/ivtv/ivtv-irq.c
+++ b/drivers/media/video/ivtv/ivtv-irq.c
@@ -76,6 +76,13 @@ void ivtv_irq_work_handler(struct work_struct *work)
76 76
77 DEFINE_WAIT(wait); 77 DEFINE_WAIT(wait);
78 78
79 if (test_and_clear_bit(IVTV_F_I_WORK_INITED, &itv->i_flags)) {
80 struct sched_param param = { .sched_priority = 99 };
81
82 /* This thread must use the FIFO scheduler as it
83 is realtime sensitive. */
84 sched_setscheduler(current, SCHED_FIFO, &param);
85 }
79 if (test_and_clear_bit(IVTV_F_I_WORK_HANDLER_PIO, &itv->i_flags)) 86 if (test_and_clear_bit(IVTV_F_I_WORK_HANDLER_PIO, &itv->i_flags))
80 ivtv_pio_work_handler(itv); 87 ivtv_pio_work_handler(itv);
81 88
@@ -678,34 +685,14 @@ static void ivtv_irq_enc_start_cap(struct ivtv *itv)
678 685
679static void ivtv_irq_enc_vbi_cap(struct ivtv *itv) 686static void ivtv_irq_enc_vbi_cap(struct ivtv *itv)
680{ 687{
681 struct ivtv_stream *s_mpg = &itv->streams[IVTV_ENC_STREAM_TYPE_MPG];
682 u32 data[CX2341X_MBOX_MAX_DATA]; 688 u32 data[CX2341X_MBOX_MAX_DATA];
683 struct ivtv_stream *s; 689 struct ivtv_stream *s;
684 690
685 IVTV_DEBUG_HI_IRQ("ENC START VBI CAP\n"); 691 IVTV_DEBUG_HI_IRQ("ENC START VBI CAP\n");
686 s = &itv->streams[IVTV_ENC_STREAM_TYPE_VBI]; 692 s = &itv->streams[IVTV_ENC_STREAM_TYPE_VBI];
687 693
688 /* If more than two VBI buffers are pending, then 694 if (!stream_enc_dma_append(s, data))
689 clear the old ones and start with this new one.
690 This can happen during transition stages when MPEG capturing is
691 started, but the first interrupts haven't arrived yet. During
692 that period VBI requests can accumulate without being able to
693 DMA the data. Since at most four VBI DMA buffers are available,
694 we just drop the old requests when there are already three
695 requests queued. */
696 if (s->sg_pending_size > 2) {
697 struct ivtv_buffer *buf;
698 list_for_each_entry(buf, &s->q_predma.list, list)
699 ivtv_buf_sync_for_cpu(s, buf);
700 ivtv_queue_move(s, &s->q_predma, NULL, &s->q_free, 0);
701 s->sg_pending_size = 0;
702 }
703 /* if we can append the data, and the MPEG stream isn't capturing,
704 then start a DMA request for just the VBI data. */
705 if (!stream_enc_dma_append(s, data) &&
706 !test_bit(IVTV_F_S_STREAMING, &s_mpg->s_flags)) {
707 set_bit(ivtv_use_pio(s) ? IVTV_F_S_PIO_PENDING : IVTV_F_S_DMA_PENDING, &s->s_flags); 695 set_bit(ivtv_use_pio(s) ? IVTV_F_S_PIO_PENDING : IVTV_F_S_DMA_PENDING, &s->s_flags);
708 }
709} 696}
710 697
711static void ivtv_irq_dec_vbi_reinsert(struct ivtv *itv) 698static void ivtv_irq_dec_vbi_reinsert(struct ivtv *itv)
diff --git a/drivers/media/video/ivtv/ivtv-queue.h b/drivers/media/video/ivtv/ivtv-queue.h
index 7cfc0c9ab05..476556afd39 100644
--- a/drivers/media/video/ivtv/ivtv-queue.h
+++ b/drivers/media/video/ivtv/ivtv-queue.h
@@ -23,7 +23,7 @@
23#define IVTV_QUEUE_H 23#define IVTV_QUEUE_H
24 24
25#define IVTV_DMA_UNMAPPED ((u32) -1) 25#define IVTV_DMA_UNMAPPED ((u32) -1)
26#define SLICED_VBI_PIO 1 26#define SLICED_VBI_PIO 0
27 27
28/* ivtv_buffer utility functions */ 28/* ivtv_buffer utility functions */
29 29
diff --git a/drivers/media/video/ivtv/ivtv-streams.c b/drivers/media/video/ivtv/ivtv-streams.c
index 54d2023b26c..730e85d86fc 100644
--- a/drivers/media/video/ivtv/ivtv-streams.c
+++ b/drivers/media/video/ivtv/ivtv-streams.c
@@ -363,7 +363,7 @@ static void ivtv_vbi_setup(struct ivtv *itv)
363 /* Every X number of frames a VBI interrupt arrives (frames as in 25 or 30 fps) */ 363 /* Every X number of frames a VBI interrupt arrives (frames as in 25 or 30 fps) */
364 data[1] = 1; 364 data[1] = 1;
365 /* The VBI frames are stored in a ringbuffer with this size (with a VBI frame as unit) */ 365 /* The VBI frames are stored in a ringbuffer with this size (with a VBI frame as unit) */
366 data[2] = raw ? 4 : 8; 366 data[2] = raw ? 4 : 4 * (itv->vbi.raw_size / itv->vbi.enc_size);
367 /* The start/stop codes determine which VBI lines end up in the raw VBI data area. 367 /* The start/stop codes determine which VBI lines end up in the raw VBI data area.
368 The codes are from table 24 in the saa7115 datasheet. Each raw/sliced/video line 368 The codes are from table 24 in the saa7115 datasheet. Each raw/sliced/video line
369 is framed with codes FF0000XX where XX is the SAV/EAV (Start/End of Active Video) 369 is framed with codes FF0000XX where XX is the SAV/EAV (Start/End of Active Video)
diff --git a/drivers/media/video/ivtv/ivtv-vbi.c b/drivers/media/video/ivtv/ivtv-vbi.c
index 71798f0da27..1ce9deb1104 100644
--- a/drivers/media/video/ivtv/ivtv-vbi.c
+++ b/drivers/media/video/ivtv/ivtv-vbi.c
@@ -293,6 +293,7 @@ static u32 compress_sliced_buf(struct ivtv *itv, u32 line, u8 *buf, u32 size, u8
293 u32 line_size = itv->vbi.sliced_decoder_line_size; 293 u32 line_size = itv->vbi.sliced_decoder_line_size;
294 struct v4l2_decode_vbi_line vbi; 294 struct v4l2_decode_vbi_line vbi;
295 int i; 295 int i;
296 unsigned lines = 0;
296 297
297 /* find the first valid line */ 298 /* find the first valid line */
298 for (i = 0; i < size; i++, buf++) { 299 for (i = 0; i < size; i++, buf++) {
@@ -313,7 +314,8 @@ static u32 compress_sliced_buf(struct ivtv *itv, u32 line, u8 *buf, u32 size, u8
313 } 314 }
314 vbi.p = p + 4; 315 vbi.p = p + 4;
315 itv->video_dec_func(itv, VIDIOC_INT_DECODE_VBI_LINE, &vbi); 316 itv->video_dec_func(itv, VIDIOC_INT_DECODE_VBI_LINE, &vbi);
316 if (vbi.type) { 317 if (vbi.type && !(lines & (1 << vbi.line))) {
318 lines |= 1 << vbi.line;
317 itv->vbi.sliced_data[line].id = vbi.type; 319 itv->vbi.sliced_data[line].id = vbi.type;
318 itv->vbi.sliced_data[line].field = vbi.is_second_field; 320 itv->vbi.sliced_data[line].field = vbi.is_second_field;
319 itv->vbi.sliced_data[line].line = vbi.line; 321 itv->vbi.sliced_data[line].line = vbi.line;
diff --git a/drivers/media/video/ivtv/ivtv-version.h b/drivers/media/video/ivtv/ivtv-version.h
index 442f43f11b7..8cd753d30bf 100644
--- a/drivers/media/video/ivtv/ivtv-version.h
+++ b/drivers/media/video/ivtv/ivtv-version.h
@@ -22,7 +22,7 @@
22 22
23#define IVTV_DRIVER_NAME "ivtv" 23#define IVTV_DRIVER_NAME "ivtv"
24#define IVTV_DRIVER_VERSION_MAJOR 1 24#define IVTV_DRIVER_VERSION_MAJOR 1
25#define IVTV_DRIVER_VERSION_MINOR 3 25#define IVTV_DRIVER_VERSION_MINOR 4
26#define IVTV_DRIVER_VERSION_PATCHLEVEL 0 26#define IVTV_DRIVER_VERSION_PATCHLEVEL 0
27 27
28#define IVTV_VERSION __stringify(IVTV_DRIVER_VERSION_MAJOR) "." __stringify(IVTV_DRIVER_VERSION_MINOR) "." __stringify(IVTV_DRIVER_VERSION_PATCHLEVEL) 28#define IVTV_VERSION __stringify(IVTV_DRIVER_VERSION_MAJOR) "." __stringify(IVTV_DRIVER_VERSION_MINOR) "." __stringify(IVTV_DRIVER_VERSION_PATCHLEVEL)
diff --git a/drivers/media/video/ks0127.c b/drivers/media/video/ks0127.c
index 4895540be19..2fd4b4a44aa 100644
--- a/drivers/media/video/ks0127.c
+++ b/drivers/media/video/ks0127.c
@@ -679,26 +679,27 @@ static int ks0127_command(struct i2c_client *client,
679 679
680 case DECODER_ENABLE_OUTPUT: 680 case DECODER_ENABLE_OUTPUT:
681 { 681 {
682 int enable;
682 683
683 int *iarg = arg; 684 iarg = arg;
684 int enable = (*iarg != 0); 685 enable = (*iarg != 0);
685 if (enable) { 686 if (enable) {
686 dprintk("ks0127: command " 687 dprintk("ks0127: command "
687 "DECODER_ENABLE_OUTPUT on " 688 "DECODER_ENABLE_OUTPUT on "
688 "(%d)\n", enable); 689 "(%d)\n", enable);
689 /* All output pins on */ 690 /* All output pins on */
690 ks0127_and_or(ks, KS_OFMTA, 0xcf, 0x30); 691 ks0127_and_or(ks, KS_OFMTA, 0xcf, 0x30);
691 /* Obey the OEN pin */ 692 /* Obey the OEN pin */
692 ks0127_and_or(ks, KS_CDEM, 0x7f, 0x00); 693 ks0127_and_or(ks, KS_CDEM, 0x7f, 0x00);
693 } else { 694 } else {
694 dprintk("ks0127: command " 695 dprintk("ks0127: command "
695 "DECODER_ENABLE_OUTPUT off " 696 "DECODER_ENABLE_OUTPUT off "
696 "(%d)\n", enable); 697 "(%d)\n", enable);
697 /* Video output pins off */ 698 /* Video output pins off */
698 ks0127_and_or(ks, KS_OFMTA, 0xcf, 0x00); 699 ks0127_and_or(ks, KS_OFMTA, 0xcf, 0x00);
699 /* Ignore the OEN pin */ 700 /* Ignore the OEN pin */
700 ks0127_and_or(ks, KS_CDEM, 0x7f, 0x80); 701 ks0127_and_or(ks, KS_CDEM, 0x7f, 0x80);
701 } 702 }
702 } 703 }
703 break; 704 break;
704 705
diff --git a/drivers/media/video/meye.c b/drivers/media/video/meye.c
index 7c8ef6ac6c3..a9ef7802eb5 100644
--- a/drivers/media/video/meye.c
+++ b/drivers/media/video/meye.c
@@ -1806,6 +1806,7 @@ static int __devinit meye_probe(struct pci_dev *pcidev,
1806 memcpy(meye.video_dev, &meye_template, sizeof(meye_template)); 1806 memcpy(meye.video_dev, &meye_template, sizeof(meye_template));
1807 meye.video_dev->parent = &meye.mchip_dev->dev; 1807 meye.video_dev->parent = &meye.mchip_dev->dev;
1808 1808
1809 ret = -EIO;
1809 if ((ret = sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERA, 1))) { 1810 if ((ret = sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERA, 1))) {
1810 printk(KERN_ERR "meye: unable to power on the camera\n"); 1811 printk(KERN_ERR "meye: unable to power on the camera\n");
1811 printk(KERN_ERR "meye: did you enable the camera in " 1812 printk(KERN_ERR "meye: did you enable the camera in "
@@ -1813,7 +1814,6 @@ static int __devinit meye_probe(struct pci_dev *pcidev,
1813 goto outsonypienable; 1814 goto outsonypienable;
1814 } 1815 }
1815 1816
1816 ret = -EIO;
1817 if ((ret = pci_enable_device(meye.mchip_dev))) { 1817 if ((ret = pci_enable_device(meye.mchip_dev))) {
1818 printk(KERN_ERR "meye: pci_enable_device failed\n"); 1818 printk(KERN_ERR "meye: pci_enable_device failed\n");
1819 goto outenabledev; 1819 goto outenabledev;
diff --git a/drivers/media/video/mxb.c b/drivers/media/video/mxb.c
index f68e91fbe7f..8ef578caba3 100644
--- a/drivers/media/video/mxb.c
+++ b/drivers/media/video/mxb.c
@@ -931,27 +931,29 @@ static int mxb_ioctl(struct saa7146_fh *fh, unsigned int cmd, void *arg)
931 return 0; 931 return 0;
932} 932}
933 933
934static int std_callback(struct saa7146_dev* dev, struct saa7146_standard *std) 934static int std_callback(struct saa7146_dev *dev, struct saa7146_standard *standard)
935{ 935{
936 struct mxb* mxb = (struct mxb*)dev->ext_priv; 936 struct mxb *mxb = (struct mxb *)dev->ext_priv;
937 int zero = 0; 937 int zero = 0;
938 int one = 1; 938 int one = 1;
939 939
940 if(V4L2_STD_PAL_I == std->id ) { 940 if (V4L2_STD_PAL_I == standard->id) {
941 v4l2_std_id std = V4L2_STD_PAL_I; 941 v4l2_std_id std = V4L2_STD_PAL_I;
942
942 DEB_D(("VIDIOC_S_STD: setting mxb for PAL_I.\n")); 943 DEB_D(("VIDIOC_S_STD: setting mxb for PAL_I.\n"));
943 /* set the 7146 gpio register -- I don't know what this does exactly */ 944 /* set the 7146 gpio register -- I don't know what this does exactly */
944 saa7146_write(dev, GPIO_CTRL, 0x00404050); 945 saa7146_write(dev, GPIO_CTRL, 0x00404050);
945 /* unset the 7111 gpio register -- I don't know what this does exactly */ 946 /* unset the 7111 gpio register -- I don't know what this does exactly */
946 mxb->saa7111a->driver->command(mxb->saa7111a,DECODER_SET_GPIO, &zero); 947 mxb->saa7111a->driver->command(mxb->saa7111a, DECODER_SET_GPIO, &zero);
947 mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_STD, &std); 948 mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_STD, &std);
948 } else { 949 } else {
949 v4l2_std_id std = V4L2_STD_PAL_BG; 950 v4l2_std_id std = V4L2_STD_PAL_BG;
951
950 DEB_D(("VIDIOC_S_STD: setting mxb for PAL/NTSC/SECAM.\n")); 952 DEB_D(("VIDIOC_S_STD: setting mxb for PAL/NTSC/SECAM.\n"));
951 /* set the 7146 gpio register -- I don't know what this does exactly */ 953 /* set the 7146 gpio register -- I don't know what this does exactly */
952 saa7146_write(dev, GPIO_CTRL, 0x00404050); 954 saa7146_write(dev, GPIO_CTRL, 0x00404050);
953 /* set the 7111 gpio register -- I don't know what this does exactly */ 955 /* set the 7111 gpio register -- I don't know what this does exactly */
954 mxb->saa7111a->driver->command(mxb->saa7111a,DECODER_SET_GPIO, &one); 956 mxb->saa7111a->driver->command(mxb->saa7111a, DECODER_SET_GPIO, &one);
955 mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_STD, &std); 957 mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_STD, &std);
956 } 958 }
957 return 0; 959 return 0;
diff --git a/drivers/media/video/ov511.c b/drivers/media/video/ov511.c
index 9edaca4371d..3d3c48db45d 100644
--- a/drivers/media/video/ov511.c
+++ b/drivers/media/video/ov511.c
@@ -626,9 +626,9 @@ ov511_i2c_write_internal(struct usb_ov511 *ov,
626 break; 626 break;
627 627
628 /* Retry until idle */ 628 /* Retry until idle */
629 do 629 do {
630 rc = reg_r(ov, R511_I2C_CTL); 630 rc = reg_r(ov, R511_I2C_CTL);
631 while (rc > 0 && ((rc&1) == 0)); 631 } while (rc > 0 && ((rc&1) == 0));
632 if (rc < 0) 632 if (rc < 0)
633 break; 633 break;
634 634
@@ -703,9 +703,9 @@ ov511_i2c_read_internal(struct usb_ov511 *ov, unsigned char reg)
703 return rc; 703 return rc;
704 704
705 /* Retry until idle */ 705 /* Retry until idle */
706 do 706 do {
707 rc = reg_r(ov, R511_I2C_CTL); 707 rc = reg_r(ov, R511_I2C_CTL);
708 while (rc > 0 && ((rc&1) == 0)); 708 } while (rc > 0 && ((rc & 1) == 0));
709 if (rc < 0) 709 if (rc < 0)
710 return rc; 710 return rc;
711 711
@@ -729,9 +729,9 @@ ov511_i2c_read_internal(struct usb_ov511 *ov, unsigned char reg)
729 return rc; 729 return rc;
730 730
731 /* Retry until idle */ 731 /* Retry until idle */
732 do 732 do {
733 rc = reg_r(ov, R511_I2C_CTL); 733 rc = reg_r(ov, R511_I2C_CTL);
734 while (rc > 0 && ((rc&1) == 0)); 734 } while (rc > 0 && ((rc&1) == 0));
735 if (rc < 0) 735 if (rc < 0)
736 return rc; 736 return rc;
737 737
diff --git a/drivers/media/video/pms.c b/drivers/media/video/pms.c
index 00425d74365..7c84f795db5 100644
--- a/drivers/media/video/pms.c
+++ b/drivers/media/video/pms.c
@@ -1019,10 +1019,23 @@ static int init_mediavision(void)
1019 * Initialization and module stuff 1019 * Initialization and module stuff
1020 */ 1020 */
1021 1021
1022#ifndef MODULE
1023static int enable;
1024module_param(enable, int, 0);
1025#endif
1026
1022static int __init init_pms_cards(void) 1027static int __init init_pms_cards(void)
1023{ 1028{
1024 printk(KERN_INFO "Mediavision Pro Movie Studio driver 0.02\n"); 1029 printk(KERN_INFO "Mediavision Pro Movie Studio driver 0.02\n");
1025 1030
1031#ifndef MODULE
1032 if (!enable) {
1033 printk(KERN_INFO "PMS: not enabled, use pms.enable=1 to "
1034 "probe\n");
1035 return -ENODEV;
1036 }
1037#endif
1038
1026 data_port = io_port +1; 1039 data_port = io_port +1;
1027 1040
1028 if(init_mediavision()) 1041 if(init_mediavision())
diff --git a/drivers/media/video/pwc/pwc-ctrl.c b/drivers/media/video/pwc/pwc-ctrl.c
index 1cccd5c7704..dbc56074255 100644
--- a/drivers/media/video/pwc/pwc-ctrl.c
+++ b/drivers/media/video/pwc/pwc-ctrl.c
@@ -1635,15 +1635,15 @@ int pwc_ioctl(struct pwc_device *pdev, unsigned int cmd, void *arg)
1635 1635
1636 case VIDIOCPWCGVIDCMD: 1636 case VIDIOCPWCGVIDCMD:
1637 { 1637 {
1638 ARG_DEF(struct pwc_video_command, cmd); 1638 ARG_DEF(struct pwc_video_command, vcmd);
1639 1639
1640 ARGR(cmd).type = pdev->type; 1640 ARGR(vcmd).type = pdev->type;
1641 ARGR(cmd).release = pdev->release; 1641 ARGR(vcmd).release = pdev->release;
1642 ARGR(cmd).command_len = pdev->cmd_len; 1642 ARGR(vcmd).command_len = pdev->cmd_len;
1643 memcpy(&ARGR(cmd).command_buf, pdev->cmd_buf, pdev->cmd_len); 1643 memcpy(&ARGR(vcmd).command_buf, pdev->cmd_buf, pdev->cmd_len);
1644 ARGR(cmd).bandlength = pdev->vbandlength; 1644 ARGR(vcmd).bandlength = pdev->vbandlength;
1645 ARGR(cmd).frame_size = pdev->frame_size; 1645 ARGR(vcmd).frame_size = pdev->frame_size;
1646 ARG_OUT(cmd) 1646 ARG_OUT(vcmd)
1647 break; 1647 break;
1648 } 1648 }
1649 /* 1649 /*
diff --git a/drivers/media/video/saa7115.c b/drivers/media/video/saa7115.c
index bcd1c8f6cf6..ad733caec72 100644
--- a/drivers/media/video/saa7115.c
+++ b/drivers/media/video/saa7115.c
@@ -1489,10 +1489,9 @@ static int saa7115_probe(struct i2c_client *client,
1489 client->addr << 1, client->adapter->name); 1489 client->addr << 1, client->adapter->name);
1490 1490
1491 state = kzalloc(sizeof(struct saa711x_state), GFP_KERNEL); 1491 state = kzalloc(sizeof(struct saa711x_state), GFP_KERNEL);
1492 i2c_set_clientdata(client, state); 1492 if (state == NULL)
1493 if (state == NULL) {
1494 return -ENOMEM; 1493 return -ENOMEM;
1495 } 1494 i2c_set_clientdata(client, state);
1496 state->input = -1; 1495 state->input = -1;
1497 state->output = SAA7115_IPORT_ON; 1496 state->output = SAA7115_IPORT_ON;
1498 state->enable = 1; 1497 state->enable = 1;
diff --git a/drivers/media/video/se401.c b/drivers/media/video/se401.c
index f481277892d..acceed5d04a 100644
--- a/drivers/media/video/se401.c
+++ b/drivers/media/video/se401.c
@@ -1397,7 +1397,7 @@ static int se401_probe(struct usb_interface *intf,
1397 mutex_init(&se401->lock); 1397 mutex_init(&se401->lock);
1398 wmb(); 1398 wmb();
1399 1399
1400 if (video_register_device(&se401->vdev, VFL_TYPE_GRABBER, video_nr) == -1) { 1400 if (video_register_device(&se401->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
1401 kfree(se401); 1401 kfree(se401);
1402 err("video_register_device failed"); 1402 err("video_register_device failed");
1403 return -EIO; 1403 return -EIO;
diff --git a/drivers/media/video/sn9c102/sn9c102_core.c b/drivers/media/video/sn9c102/sn9c102_core.c
index 23408764d0e..2da6938718f 100644
--- a/drivers/media/video/sn9c102/sn9c102_core.c
+++ b/drivers/media/video/sn9c102/sn9c102_core.c
@@ -3312,6 +3312,7 @@ sn9c102_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
3312 cam->v4ldev->fops = &sn9c102_fops; 3312 cam->v4ldev->fops = &sn9c102_fops;
3313 cam->v4ldev->minor = video_nr[dev_nr]; 3313 cam->v4ldev->minor = video_nr[dev_nr];
3314 cam->v4ldev->release = video_device_release; 3314 cam->v4ldev->release = video_device_release;
3315 cam->v4ldev->parent = &udev->dev;
3315 3316
3316 init_completion(&cam->probe); 3317 init_completion(&cam->probe);
3317 3318
diff --git a/drivers/media/video/sn9c102/sn9c102_devtable.h b/drivers/media/video/sn9c102/sn9c102_devtable.h
index 6ff489baacf..90a401dc388 100644
--- a/drivers/media/video/sn9c102/sn9c102_devtable.h
+++ b/drivers/media/video/sn9c102/sn9c102_devtable.h
@@ -40,11 +40,14 @@ struct sn9c102_device;
40 40
41static const struct usb_device_id sn9c102_id_table[] = { 41static const struct usb_device_id sn9c102_id_table[] = {
42 /* SN9C101 and SN9C102 */ 42 /* SN9C101 and SN9C102 */
43#if !defined CONFIG_USB_GSPCA && !defined CONFIG_USB_GSPCA_MODULE
43 { SN9C102_USB_DEVICE(0x0c45, 0x6001, BRIDGE_SN9C102), }, 44 { SN9C102_USB_DEVICE(0x0c45, 0x6001, BRIDGE_SN9C102), },
44 { SN9C102_USB_DEVICE(0x0c45, 0x6005, BRIDGE_SN9C102), }, 45 { SN9C102_USB_DEVICE(0x0c45, 0x6005, BRIDGE_SN9C102), },
46#endif
45 { SN9C102_USB_DEVICE(0x0c45, 0x6007, BRIDGE_SN9C102), }, 47 { SN9C102_USB_DEVICE(0x0c45, 0x6007, BRIDGE_SN9C102), },
46 { SN9C102_USB_DEVICE(0x0c45, 0x6009, BRIDGE_SN9C102), }, 48 { SN9C102_USB_DEVICE(0x0c45, 0x6009, BRIDGE_SN9C102), },
47 { SN9C102_USB_DEVICE(0x0c45, 0x600d, BRIDGE_SN9C102), }, 49 { SN9C102_USB_DEVICE(0x0c45, 0x600d, BRIDGE_SN9C102), },
50/* { SN9C102_USB_DEVICE(0x0c45, 0x6011, BRIDGE_SN9C102), }, OV6650 */
48 { SN9C102_USB_DEVICE(0x0c45, 0x6019, BRIDGE_SN9C102), }, 51 { SN9C102_USB_DEVICE(0x0c45, 0x6019, BRIDGE_SN9C102), },
49 { SN9C102_USB_DEVICE(0x0c45, 0x6024, BRIDGE_SN9C102), }, 52 { SN9C102_USB_DEVICE(0x0c45, 0x6024, BRIDGE_SN9C102), },
50 { SN9C102_USB_DEVICE(0x0c45, 0x6025, BRIDGE_SN9C102), }, 53 { SN9C102_USB_DEVICE(0x0c45, 0x6025, BRIDGE_SN9C102), },
@@ -53,29 +56,33 @@ static const struct usb_device_id sn9c102_id_table[] = {
53 { SN9C102_USB_DEVICE(0x0c45, 0x602a, BRIDGE_SN9C102), }, 56 { SN9C102_USB_DEVICE(0x0c45, 0x602a, BRIDGE_SN9C102), },
54 { SN9C102_USB_DEVICE(0x0c45, 0x602b, BRIDGE_SN9C102), }, 57 { SN9C102_USB_DEVICE(0x0c45, 0x602b, BRIDGE_SN9C102), },
55 { SN9C102_USB_DEVICE(0x0c45, 0x602c, BRIDGE_SN9C102), }, 58 { SN9C102_USB_DEVICE(0x0c45, 0x602c, BRIDGE_SN9C102), },
56 { SN9C102_USB_DEVICE(0x0c45, 0x602d, BRIDGE_SN9C102), }, 59/* { SN9C102_USB_DEVICE(0x0c45, 0x602d, BRIDGE_SN9C102), }, HV7131R */
57 { SN9C102_USB_DEVICE(0x0c45, 0x602e, BRIDGE_SN9C102), }, 60 { SN9C102_USB_DEVICE(0x0c45, 0x602e, BRIDGE_SN9C102), },
58 { SN9C102_USB_DEVICE(0x0c45, 0x6030, BRIDGE_SN9C102), }, 61 { SN9C102_USB_DEVICE(0x0c45, 0x6030, BRIDGE_SN9C102), },
59 /* SN9C103 */ 62 /* SN9C103 */
60 { SN9C102_USB_DEVICE(0x0c45, 0x6080, BRIDGE_SN9C103), }, 63 { SN9C102_USB_DEVICE(0x0c45, 0x6080, BRIDGE_SN9C103), },
61 { SN9C102_USB_DEVICE(0x0c45, 0x6082, BRIDGE_SN9C103), }, 64 { SN9C102_USB_DEVICE(0x0c45, 0x6082, BRIDGE_SN9C103), },
62 { SN9C102_USB_DEVICE(0x0c45, 0x6083, BRIDGE_SN9C103), }, 65/* { SN9C102_USB_DEVICE(0x0c45, 0x6083, BRIDGE_SN9C103), }, HY7131D/E */
63 { SN9C102_USB_DEVICE(0x0c45, 0x6088, BRIDGE_SN9C103), }, 66 { SN9C102_USB_DEVICE(0x0c45, 0x6088, BRIDGE_SN9C103), },
64 { SN9C102_USB_DEVICE(0x0c45, 0x608a, BRIDGE_SN9C103), }, 67 { SN9C102_USB_DEVICE(0x0c45, 0x608a, BRIDGE_SN9C103), },
65 { SN9C102_USB_DEVICE(0x0c45, 0x608b, BRIDGE_SN9C103), }, 68 { SN9C102_USB_DEVICE(0x0c45, 0x608b, BRIDGE_SN9C103), },
66 { SN9C102_USB_DEVICE(0x0c45, 0x608c, BRIDGE_SN9C103), }, 69 { SN9C102_USB_DEVICE(0x0c45, 0x608c, BRIDGE_SN9C103), },
67 { SN9C102_USB_DEVICE(0x0c45, 0x608e, BRIDGE_SN9C103), }, 70/* { SN9C102_USB_DEVICE(0x0c45, 0x608e, BRIDGE_SN9C103), }, CISVF10 */
71#if !defined CONFIG_USB_GSPCA && !defined CONFIG_USB_GSPCA_MODULE
68 { SN9C102_USB_DEVICE(0x0c45, 0x608f, BRIDGE_SN9C103), }, 72 { SN9C102_USB_DEVICE(0x0c45, 0x608f, BRIDGE_SN9C103), },
73#endif
69 { SN9C102_USB_DEVICE(0x0c45, 0x60a0, BRIDGE_SN9C103), }, 74 { SN9C102_USB_DEVICE(0x0c45, 0x60a0, BRIDGE_SN9C103), },
70 { SN9C102_USB_DEVICE(0x0c45, 0x60a2, BRIDGE_SN9C103), }, 75 { SN9C102_USB_DEVICE(0x0c45, 0x60a2, BRIDGE_SN9C103), },
71 { SN9C102_USB_DEVICE(0x0c45, 0x60a3, BRIDGE_SN9C103), }, 76 { SN9C102_USB_DEVICE(0x0c45, 0x60a3, BRIDGE_SN9C103), },
72 { SN9C102_USB_DEVICE(0x0c45, 0x60a8, BRIDGE_SN9C103), }, 77/* { SN9C102_USB_DEVICE(0x0c45, 0x60a8, BRIDGE_SN9C103), }, PAS106 */
73 { SN9C102_USB_DEVICE(0x0c45, 0x60aa, BRIDGE_SN9C103), }, 78/* { SN9C102_USB_DEVICE(0x0c45, 0x60aa, BRIDGE_SN9C103), }, TAS5130 */
74 { SN9C102_USB_DEVICE(0x0c45, 0x60ab, BRIDGE_SN9C103), }, 79/* { SN9C102_USB_DEVICE(0x0c45, 0x60ab, BRIDGE_SN9C103), }, TAS5130 */
75 { SN9C102_USB_DEVICE(0x0c45, 0x60ac, BRIDGE_SN9C103), }, 80 { SN9C102_USB_DEVICE(0x0c45, 0x60ac, BRIDGE_SN9C103), },
76 { SN9C102_USB_DEVICE(0x0c45, 0x60ae, BRIDGE_SN9C103), }, 81 { SN9C102_USB_DEVICE(0x0c45, 0x60ae, BRIDGE_SN9C103), },
77 { SN9C102_USB_DEVICE(0x0c45, 0x60af, BRIDGE_SN9C103), }, 82 { SN9C102_USB_DEVICE(0x0c45, 0x60af, BRIDGE_SN9C103), },
83#if !defined CONFIG_USB_GSPCA && !defined CONFIG_USB_GSPCA_MODULE
78 { SN9C102_USB_DEVICE(0x0c45, 0x60b0, BRIDGE_SN9C103), }, 84 { SN9C102_USB_DEVICE(0x0c45, 0x60b0, BRIDGE_SN9C103), },
85#endif
79 { SN9C102_USB_DEVICE(0x0c45, 0x60b2, BRIDGE_SN9C103), }, 86 { SN9C102_USB_DEVICE(0x0c45, 0x60b2, BRIDGE_SN9C103), },
80 { SN9C102_USB_DEVICE(0x0c45, 0x60b3, BRIDGE_SN9C103), }, 87 { SN9C102_USB_DEVICE(0x0c45, 0x60b3, BRIDGE_SN9C103), },
81 { SN9C102_USB_DEVICE(0x0c45, 0x60b8, BRIDGE_SN9C103), }, 88 { SN9C102_USB_DEVICE(0x0c45, 0x60b8, BRIDGE_SN9C103), },
@@ -105,7 +112,7 @@ static const struct usb_device_id sn9c102_id_table[] = {
105 { SN9C102_USB_DEVICE(0x0c45, 0x6108, BRIDGE_SN9C120), }, 112 { SN9C102_USB_DEVICE(0x0c45, 0x6108, BRIDGE_SN9C120), },
106 { SN9C102_USB_DEVICE(0x0c45, 0x610f, BRIDGE_SN9C120), }, 113 { SN9C102_USB_DEVICE(0x0c45, 0x610f, BRIDGE_SN9C120), },
107 { SN9C102_USB_DEVICE(0x0c45, 0x6130, BRIDGE_SN9C120), }, 114 { SN9C102_USB_DEVICE(0x0c45, 0x6130, BRIDGE_SN9C120), },
108 { SN9C102_USB_DEVICE(0x0c45, 0x6138, BRIDGE_SN9C120), }, 115/* { SN9C102_USB_DEVICE(0x0c45, 0x6138, BRIDGE_SN9C120), }, MO8000 */
109 { SN9C102_USB_DEVICE(0x0c45, 0x613a, BRIDGE_SN9C120), }, 116 { SN9C102_USB_DEVICE(0x0c45, 0x613a, BRIDGE_SN9C120), },
110 { SN9C102_USB_DEVICE(0x0c45, 0x613b, BRIDGE_SN9C120), }, 117 { SN9C102_USB_DEVICE(0x0c45, 0x613b, BRIDGE_SN9C120), },
111 { SN9C102_USB_DEVICE(0x0c45, 0x613c, BRIDGE_SN9C120), }, 118 { SN9C102_USB_DEVICE(0x0c45, 0x613c, BRIDGE_SN9C120), },
diff --git a/drivers/media/video/stv680.c b/drivers/media/video/stv680.c
index 56dc3d6b5b2..dce94743945 100644
--- a/drivers/media/video/stv680.c
+++ b/drivers/media/video/stv680.c
@@ -1462,7 +1462,7 @@ static int stv680_probe (struct usb_interface *intf, const struct usb_device_id
1462 mutex_init (&stv680->lock); 1462 mutex_init (&stv680->lock);
1463 wmb (); 1463 wmb ();
1464 1464
1465 if (video_register_device (stv680->vdev, VFL_TYPE_GRABBER, video_nr) == -1) { 1465 if (video_register_device(stv680->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
1466 PDEBUG (0, "STV(e): video_register_device failed"); 1466 PDEBUG (0, "STV(e): video_register_device failed");
1467 retval = -EIO; 1467 retval = -EIO;
1468 goto error_vdev; 1468 goto error_vdev;
diff --git a/drivers/media/video/usbvideo/ibmcam.c b/drivers/media/video/usbvideo/ibmcam.c
index 59166b76010..cc27efe121d 100644
--- a/drivers/media/video/usbvideo/ibmcam.c
+++ b/drivers/media/video/usbvideo/ibmcam.c
@@ -736,12 +736,12 @@ static enum ParseState ibmcam_model2_320x240_parse_lines(
736 * make black color and quit the horizontal scanning loop. 736 * make black color and quit the horizontal scanning loop.
737 */ 737 */
738 if (((frame->curline + 2) >= scanHeight) || (i >= scanLength)) { 738 if (((frame->curline + 2) >= scanHeight) || (i >= scanLength)) {
739 const int j = i * V4L_BYTES_PER_PIXEL; 739 const int offset = i * V4L_BYTES_PER_PIXEL;
740#if USES_IBMCAM_PUTPIXEL 740#if USES_IBMCAM_PUTPIXEL
741 /* Refresh 'f' because we don't use it much with PUTPIXEL */ 741 /* Refresh 'f' because we don't use it much with PUTPIXEL */
742 f = frame->data + (v4l_linesize * frame->curline) + j; 742 f = frame->data + (v4l_linesize * frame->curline) + offset;
743#endif 743#endif
744 memset(f, 0, v4l_linesize - j); 744 memset(f, 0, v4l_linesize - offset);
745 break; 745 break;
746 } 746 }
747 747
diff --git a/drivers/media/video/usbvideo/vicam.c b/drivers/media/video/usbvideo/vicam.c
index b7792451a29..2eb45829791 100644
--- a/drivers/media/video/usbvideo/vicam.c
+++ b/drivers/media/video/usbvideo/vicam.c
@@ -866,7 +866,7 @@ vicam_probe( struct usb_interface *intf, const struct usb_device_id *id)
866 cam->udev = dev; 866 cam->udev = dev;
867 cam->bulkEndpoint = bulkEndpoint; 867 cam->bulkEndpoint = bulkEndpoint;
868 868
869 if (video_register_device(&cam->vdev, VFL_TYPE_GRABBER, -1) == -1) { 869 if (video_register_device(&cam->vdev, VFL_TYPE_GRABBER, -1) < 0) {
870 kfree(cam); 870 kfree(cam);
871 printk(KERN_WARNING "video_register_device failed\n"); 871 printk(KERN_WARNING "video_register_device failed\n");
872 return -EIO; 872 return -EIO;
diff --git a/drivers/media/video/v4l2-dev.c b/drivers/media/video/v4l2-dev.c
index 6f36006aecd..155fdec9ac7 100644
--- a/drivers/media/video/v4l2-dev.c
+++ b/drivers/media/video/v4l2-dev.c
@@ -257,6 +257,9 @@ int video_register_device_index(struct video_device *vfd, int type, int nr,
257 int ret; 257 int ret;
258 char *name_base; 258 char *name_base;
259 259
260 if (vfd == NULL)
261 return -EINVAL;
262
260 switch (type) { 263 switch (type) {
261 case VFL_TYPE_GRABBER: 264 case VFL_TYPE_GRABBER:
262 base = MINOR_VFL_TYPE_GRABBER_MIN; 265 base = MINOR_VFL_TYPE_GRABBER_MIN;
@@ -281,7 +284,7 @@ int video_register_device_index(struct video_device *vfd, int type, int nr,
281 default: 284 default:
282 printk(KERN_ERR "%s called with unknown type: %d\n", 285 printk(KERN_ERR "%s called with unknown type: %d\n",
283 __func__, type); 286 __func__, type);
284 return -1; 287 return -EINVAL;
285 } 288 }
286 289
287 /* pick a minor number */ 290 /* pick a minor number */
diff --git a/drivers/media/video/v4l2-ioctl.c b/drivers/media/video/v4l2-ioctl.c
index fdfe7739c96..140ef92c19c 100644
--- a/drivers/media/video/v4l2-ioctl.c
+++ b/drivers/media/video/v4l2-ioctl.c
@@ -499,7 +499,7 @@ static void dbgbuf(unsigned int cmd, struct video_device *vfd,
499 p->timestamp.tv_sec / 3600, 499 p->timestamp.tv_sec / 3600,
500 (int)(p->timestamp.tv_sec / 60) % 60, 500 (int)(p->timestamp.tv_sec / 60) % 60,
501 (int)(p->timestamp.tv_sec % 60), 501 (int)(p->timestamp.tv_sec % 60),
502 p->timestamp.tv_usec, 502 (long)p->timestamp.tv_usec,
503 p->index, 503 p->index,
504 prt_names(p->type, v4l2_type_names), 504 prt_names(p->type, v4l2_type_names),
505 p->bytesused, p->flags, 505 p->bytesused, p->flags,
@@ -674,7 +674,7 @@ static int __video_do_ioctl(struct inode *inode, struct file *file,
674 __video_do_ioctl will be called again, with one or more 674 __video_do_ioctl will be called again, with one or more
675 V4L2 ioctls. 675 V4L2 ioctls.
676 ********************************************************/ 676 ********************************************************/
677 if (_IOC_TYPE(cmd) == 'v') 677 if (_IOC_TYPE(cmd) == 'v' && _IOC_NR(cmd) < BASE_VIDIOCPRIVATE)
678 return v4l_compat_translate_ioctl(inode, file, cmd, arg, 678 return v4l_compat_translate_ioctl(inode, file, cmd, arg,
679 __video_do_ioctl); 679 __video_do_ioctl);
680#endif 680#endif
diff --git a/drivers/media/video/vivi.c b/drivers/media/video/vivi.c
index 3518af071a2..8ba8daafd7e 100644
--- a/drivers/media/video/vivi.c
+++ b/drivers/media/video/vivi.c
@@ -1021,13 +1021,13 @@ static int vivi_release(void)
1021 dev = list_entry(list, struct vivi_dev, vivi_devlist); 1021 dev = list_entry(list, struct vivi_dev, vivi_devlist);
1022 1022
1023 if (-1 != dev->vfd->minor) { 1023 if (-1 != dev->vfd->minor) {
1024 video_unregister_device(dev->vfd); 1024 printk(KERN_INFO "%s: unregistering /dev/video%d\n",
1025 printk(KERN_INFO "%s: /dev/video%d unregistered.\n",
1026 VIVI_MODULE_NAME, dev->vfd->minor); 1025 VIVI_MODULE_NAME, dev->vfd->minor);
1026 video_unregister_device(dev->vfd);
1027 } else { 1027 } else {
1028 video_device_release(dev->vfd); 1028 printk(KERN_INFO "%s: releasing /dev/video%d\n",
1029 printk(KERN_INFO "%s: /dev/video%d released.\n",
1030 VIVI_MODULE_NAME, dev->vfd->minor); 1029 VIVI_MODULE_NAME, dev->vfd->minor);
1030 video_device_release(dev->vfd);
1031 } 1031 }
1032 1032
1033 kfree(dev); 1033 kfree(dev);
@@ -1104,19 +1104,29 @@ static struct video_device vivi_template = {
1104 Initialization and module stuff 1104 Initialization and module stuff
1105 ------------------------------------------------------------------*/ 1105 ------------------------------------------------------------------*/
1106 1106
1107/* This routine allocates from 1 to n_devs virtual drivers.
1108
1109 The real maximum number of virtual drivers will depend on how many drivers
1110 will succeed. This is limited to the maximum number of devices that
1111 videodev supports. Since there are 64 minors for video grabbers, this is
1112 currently the theoretical maximum limit. However, a further limit does
1113 exist at videodev that forbids any driver to register more than 32 video
1114 grabbers.
1115 */
1107static int __init vivi_init(void) 1116static int __init vivi_init(void)
1108{ 1117{
1109 int ret = -ENOMEM, i; 1118 int ret = -ENOMEM, i;
1110 struct vivi_dev *dev; 1119 struct vivi_dev *dev;
1111 struct video_device *vfd; 1120 struct video_device *vfd;
1112 1121
1122 if (n_devs <= 0)
1123 n_devs = 1;
1124
1113 for (i = 0; i < n_devs; i++) { 1125 for (i = 0; i < n_devs; i++) {
1114 dev = kzalloc(sizeof(*dev), GFP_KERNEL); 1126 dev = kzalloc(sizeof(*dev), GFP_KERNEL);
1115 if (NULL == dev) 1127 if (!dev)
1116 break; 1128 break;
1117 1129
1118 list_add_tail(&dev->vivi_devlist, &vivi_devlist);
1119
1120 /* init video dma queues */ 1130 /* init video dma queues */
1121 INIT_LIST_HEAD(&dev->vidq.active); 1131 INIT_LIST_HEAD(&dev->vidq.active);
1122 init_waitqueue_head(&dev->vidq.wq); 1132 init_waitqueue_head(&dev->vidq.wq);
@@ -1126,14 +1136,27 @@ static int __init vivi_init(void)
1126 mutex_init(&dev->mutex); 1136 mutex_init(&dev->mutex);
1127 1137
1128 vfd = video_device_alloc(); 1138 vfd = video_device_alloc();
1129 if (NULL == vfd) 1139 if (!vfd) {
1140 kfree(dev);
1130 break; 1141 break;
1142 }
1131 1143
1132 *vfd = vivi_template; 1144 *vfd = vivi_template;
1133 1145
1134 ret = video_register_device(vfd, VFL_TYPE_GRABBER, video_nr); 1146 ret = video_register_device(vfd, VFL_TYPE_GRABBER, video_nr);
1135 if (ret < 0) 1147 if (ret < 0) {
1148 video_device_release(vfd);
1149 kfree(dev);
1150
1151 /* If some registers succeeded, keep driver */
1152 if (i)
1153 ret = 0;
1154
1136 break; 1155 break;
1156 }
1157
1158 /* Now that everything is fine, let's add it to device list */
1159 list_add_tail(&dev->vivi_devlist, &vivi_devlist);
1137 1160
1138 snprintf(vfd->name, sizeof(vfd->name), "%s (%i)", 1161 snprintf(vfd->name, sizeof(vfd->name), "%s (%i)",
1139 vivi_template.name, vfd->minor); 1162 vivi_template.name, vfd->minor);
@@ -1149,11 +1172,16 @@ static int __init vivi_init(void)
1149 if (ret < 0) { 1172 if (ret < 0) {
1150 vivi_release(); 1173 vivi_release();
1151 printk(KERN_INFO "Error %d while loading vivi driver\n", ret); 1174 printk(KERN_INFO "Error %d while loading vivi driver\n", ret);
1152 } else 1175 } else {
1153 printk(KERN_INFO "Video Technology Magazine Virtual Video " 1176 printk(KERN_INFO "Video Technology Magazine Virtual Video "
1154 "Capture Board ver %u.%u.%u successfully loaded.\n", 1177 "Capture Board ver %u.%u.%u successfully loaded.\n",
1155 (VIVI_VERSION >> 16) & 0xFF, (VIVI_VERSION >> 8) & 0xFF, 1178 (VIVI_VERSION >> 16) & 0xFF, (VIVI_VERSION >> 8) & 0xFF,
1156 VIVI_VERSION & 0xFF); 1179 VIVI_VERSION & 0xFF);
1180
1181 /* n_devs will reflect the actual number of allocated devices */
1182 n_devs = i;
1183 }
1184
1157 return ret; 1185 return ret;
1158} 1186}
1159 1187
@@ -1169,10 +1197,10 @@ MODULE_DESCRIPTION("Video Technology Magazine Virtual Video Capture Board");
1169MODULE_AUTHOR("Mauro Carvalho Chehab, Ted Walther and John Sokol"); 1197MODULE_AUTHOR("Mauro Carvalho Chehab, Ted Walther and John Sokol");
1170MODULE_LICENSE("Dual BSD/GPL"); 1198MODULE_LICENSE("Dual BSD/GPL");
1171 1199
1172module_param(video_nr, int, 0); 1200module_param(video_nr, uint, 0444);
1173MODULE_PARM_DESC(video_nr, "video iminor start number"); 1201MODULE_PARM_DESC(video_nr, "video iminor start number");
1174 1202
1175module_param(n_devs, int, 0); 1203module_param(n_devs, uint, 0444);
1176MODULE_PARM_DESC(n_devs, "number of video devices to create"); 1204MODULE_PARM_DESC(n_devs, "number of video devices to create");
1177 1205
1178module_param_named(debug, vivi_template.debug, int, 0444); 1206module_param_named(debug, vivi_template.debug, int, 0444);
diff --git a/drivers/media/video/w9966.c b/drivers/media/video/w9966.c
index 9402f40095b..2ff00bc5ad6 100644
--- a/drivers/media/video/w9966.c
+++ b/drivers/media/video/w9966.c
@@ -334,7 +334,7 @@ static int w9966_init(struct w9966_dev* cam, struct parport* port)
334 memcpy(&cam->vdev, &w9966_template, sizeof(struct video_device)); 334 memcpy(&cam->vdev, &w9966_template, sizeof(struct video_device));
335 cam->vdev.priv = cam; 335 cam->vdev.priv = cam;
336 336
337 if (video_register_device(&cam->vdev, VFL_TYPE_GRABBER, video_nr) == -1) 337 if (video_register_device(&cam->vdev, VFL_TYPE_GRABBER, video_nr) < 0)
338 return -1; 338 return -1;
339 339
340 w9966_setState(cam, W9966_STATE_VDEV, W9966_STATE_VDEV); 340 w9966_setState(cam, W9966_STATE_VDEV, W9966_STATE_VDEV);
diff --git a/drivers/media/video/zc0301/zc0301_core.c b/drivers/media/video/zc0301/zc0301_core.c
index 550ce7bd5c8..0c3287734c9 100644
--- a/drivers/media/video/zc0301/zc0301_core.c
+++ b/drivers/media/video/zc0301/zc0301_core.c
@@ -1988,6 +1988,7 @@ zc0301_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
1988 cam->v4ldev->fops = &zc0301_fops; 1988 cam->v4ldev->fops = &zc0301_fops;
1989 cam->v4ldev->minor = video_nr[dev_nr]; 1989 cam->v4ldev->minor = video_nr[dev_nr];
1990 cam->v4ldev->release = video_device_release; 1990 cam->v4ldev->release = video_device_release;
1991 cam->v4ldev->parent = &udev->dev;
1991 video_set_drvdata(cam->v4ldev, cam); 1992 video_set_drvdata(cam->v4ldev, cam);
1992 1993
1993 init_completion(&cam->probe); 1994 init_completion(&cam->probe);
diff --git a/drivers/media/video/zc0301/zc0301_sensor.h b/drivers/media/video/zc0301/zc0301_sensor.h
index 70fe6fc6cdd..b0cd49c438a 100644
--- a/drivers/media/video/zc0301/zc0301_sensor.h
+++ b/drivers/media/video/zc0301/zc0301_sensor.h
@@ -60,27 +60,8 @@ zc0301_attach_sensor(struct zc0301_device* cam, struct zc0301_sensor* sensor);
60 60
61#define ZC0301_ID_TABLE \ 61#define ZC0301_ID_TABLE \
62static const struct usb_device_id zc0301_id_table[] = { \ 62static const struct usb_device_id zc0301_id_table[] = { \
63 { ZC0301_USB_DEVICE(0x041e, 0x4017, 0xff), }, /* ICM105 */ \
64 { ZC0301_USB_DEVICE(0x041e, 0x401c, 0xff), }, /* PAS106 */ \
65 { ZC0301_USB_DEVICE(0x041e, 0x401e, 0xff), }, /* HV7131 */ \
66 { ZC0301_USB_DEVICE(0x041e, 0x401f, 0xff), }, /* TAS5130 */ \
67 { ZC0301_USB_DEVICE(0x041e, 0x4022, 0xff), }, \
68 { ZC0301_USB_DEVICE(0x041e, 0x4034, 0xff), }, /* PAS106 */ \
69 { ZC0301_USB_DEVICE(0x041e, 0x4035, 0xff), }, /* PAS106 */ \
70 { ZC0301_USB_DEVICE(0x041e, 0x4036, 0xff), }, /* HV7131 */ \
71 { ZC0301_USB_DEVICE(0x041e, 0x403a, 0xff), }, /* HV7131 */ \
72 { ZC0301_USB_DEVICE(0x0458, 0x7007, 0xff), }, /* TAS5130 */ \
73 { ZC0301_USB_DEVICE(0x0458, 0x700c, 0xff), }, /* TAS5130 */ \
74 { ZC0301_USB_DEVICE(0x0458, 0x700f, 0xff), }, /* TAS5130 */ \
75 { ZC0301_USB_DEVICE(0x046d, 0x08ae, 0xff), }, /* PAS202 */ \ 63 { ZC0301_USB_DEVICE(0x046d, 0x08ae, 0xff), }, /* PAS202 */ \
76 { ZC0301_USB_DEVICE(0x055f, 0xd003, 0xff), }, /* TAS5130 */ \
77 { ZC0301_USB_DEVICE(0x055f, 0xd004, 0xff), }, /* TAS5130 */ \
78 { ZC0301_USB_DEVICE(0x0ac8, 0x0301, 0xff), }, \
79 { ZC0301_USB_DEVICE(0x0ac8, 0x301b, 0xff), }, /* PB-0330/HV7131 */ \
80 { ZC0301_USB_DEVICE(0x0ac8, 0x303b, 0xff), }, /* PB-0330 */ \ 64 { ZC0301_USB_DEVICE(0x0ac8, 0x303b, 0xff), }, /* PB-0330 */ \
81 { ZC0301_USB_DEVICE(0x10fd, 0x0128, 0xff), }, /* TAS5130 */ \
82 { ZC0301_USB_DEVICE(0x10fd, 0x8050, 0xff), }, /* TAS5130 */ \
83 { ZC0301_USB_DEVICE(0x10fd, 0x804e, 0xff), }, /* TAS5130 */ \
84 { } \ 65 { } \
85}; 66};
86 67
diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c
index a38005008a2..cea46906408 100644
--- a/drivers/memstick/core/memstick.c
+++ b/drivers/memstick/core/memstick.c
@@ -185,7 +185,7 @@ static void memstick_free(struct device *dev)
185} 185}
186 186
187static struct class memstick_host_class = { 187static struct class memstick_host_class = {
188 .name = "memstick_host", 188 .name = "memstick_host",
189 .dev_release = memstick_free 189 .dev_release = memstick_free
190}; 190};
191 191
@@ -264,7 +264,7 @@ EXPORT_SYMBOL(memstick_new_req);
264 * @sg - TPC argument 264 * @sg - TPC argument
265 */ 265 */
266void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc, 266void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc,
267 struct scatterlist *sg) 267 const struct scatterlist *sg)
268{ 268{
269 mrq->tpc = tpc; 269 mrq->tpc = tpc;
270 if (tpc & 8) 270 if (tpc & 8)
@@ -294,7 +294,7 @@ EXPORT_SYMBOL(memstick_init_req_sg);
294 * user supplied buffer. 294 * user supplied buffer.
295 */ 295 */
296void memstick_init_req(struct memstick_request *mrq, unsigned char tpc, 296void memstick_init_req(struct memstick_request *mrq, unsigned char tpc,
297 void *buf, size_t length) 297 const void *buf, size_t length)
298{ 298{
299 mrq->tpc = tpc; 299 mrq->tpc = tpc;
300 if (tpc & 8) 300 if (tpc & 8)
@@ -439,7 +439,7 @@ static void memstick_check(struct work_struct *work)
439 if (!host->card) { 439 if (!host->card) {
440 if (memstick_power_on(host)) 440 if (memstick_power_on(host))
441 goto out_power_off; 441 goto out_power_off;
442 } else 442 } else if (host->card->stop)
443 host->card->stop(host->card); 443 host->card->stop(host->card);
444 444
445 card = memstick_alloc_card(host); 445 card = memstick_alloc_card(host);
@@ -458,7 +458,7 @@ static void memstick_check(struct work_struct *work)
458 || !(host->card->check(host->card))) { 458 || !(host->card->check(host->card))) {
459 device_unregister(&host->card->dev); 459 device_unregister(&host->card->dev);
460 host->card = NULL; 460 host->card = NULL;
461 } else 461 } else if (host->card->start)
462 host->card->start(host->card); 462 host->card->start(host->card);
463 } 463 }
464 464
diff --git a/drivers/memstick/core/mspro_block.c b/drivers/memstick/core/mspro_block.c
index 44b1817f2f2..d2d2318dafa 100644
--- a/drivers/memstick/core/mspro_block.c
+++ b/drivers/memstick/core/mspro_block.c
@@ -30,6 +30,8 @@ module_param(major, int, 0644);
30#define MSPRO_BLOCK_SIGNATURE 0xa5c3 30#define MSPRO_BLOCK_SIGNATURE 0xa5c3
31#define MSPRO_BLOCK_MAX_ATTRIBUTES 41 31#define MSPRO_BLOCK_MAX_ATTRIBUTES 41
32 32
33#define MSPRO_BLOCK_PART_SHIFT 3
34
33enum { 35enum {
34 MSPRO_BLOCK_ID_SYSINFO = 0x10, 36 MSPRO_BLOCK_ID_SYSINFO = 0x10,
35 MSPRO_BLOCK_ID_MODELNAME = 0x15, 37 MSPRO_BLOCK_ID_MODELNAME = 0x15,
@@ -195,7 +197,7 @@ static int mspro_block_bd_open(struct inode *inode, struct file *filp)
195static int mspro_block_disk_release(struct gendisk *disk) 197static int mspro_block_disk_release(struct gendisk *disk)
196{ 198{
197 struct mspro_block_data *msb = disk->private_data; 199 struct mspro_block_data *msb = disk->private_data;
198 int disk_id = disk->first_minor >> MEMSTICK_PART_SHIFT; 200 int disk_id = disk->first_minor >> MSPRO_BLOCK_PART_SHIFT;
199 201
200 mutex_lock(&mspro_block_disk_lock); 202 mutex_lock(&mspro_block_disk_lock);
201 203
@@ -877,6 +879,7 @@ static int mspro_block_switch_interface(struct memstick_dev *card)
877 struct mspro_block_data *msb = memstick_get_drvdata(card); 879 struct mspro_block_data *msb = memstick_get_drvdata(card);
878 int rc = 0; 880 int rc = 0;
879 881
882try_again:
880 if (msb->caps & MEMSTICK_CAP_PAR4) 883 if (msb->caps & MEMSTICK_CAP_PAR4)
881 rc = mspro_block_set_interface(card, MEMSTICK_SYS_PAR4); 884 rc = mspro_block_set_interface(card, MEMSTICK_SYS_PAR4);
882 else 885 else
@@ -930,6 +933,18 @@ static int mspro_block_switch_interface(struct memstick_dev *card)
930 rc = memstick_set_rw_addr(card); 933 rc = memstick_set_rw_addr(card);
931 if (!rc) 934 if (!rc)
932 rc = mspro_block_set_interface(card, msb->system); 935 rc = mspro_block_set_interface(card, msb->system);
936
937 if (!rc) {
938 msleep(150);
939 rc = mspro_block_wait_for_ced(card);
940 if (rc)
941 return rc;
942
943 if (msb->caps & MEMSTICK_CAP_PAR8) {
944 msb->caps &= ~MEMSTICK_CAP_PAR8;
945 goto try_again;
946 }
947 }
933 } 948 }
934 return rc; 949 return rc;
935} 950}
@@ -1117,14 +1132,16 @@ static int mspro_block_init_card(struct memstick_dev *card)
1117 return -EIO; 1132 return -EIO;
1118 1133
1119 msb->caps = host->caps; 1134 msb->caps = host->caps;
1120 rc = mspro_block_switch_interface(card); 1135
1136 msleep(150);
1137 rc = mspro_block_wait_for_ced(card);
1121 if (rc) 1138 if (rc)
1122 return rc; 1139 return rc;
1123 1140
1124 msleep(200); 1141 rc = mspro_block_switch_interface(card);
1125 rc = mspro_block_wait_for_ced(card);
1126 if (rc) 1142 if (rc)
1127 return rc; 1143 return rc;
1144
1128 dev_dbg(&card->dev, "card activated\n"); 1145 dev_dbg(&card->dev, "card activated\n");
1129 if (msb->system != MEMSTICK_SYS_SERIAL) 1146 if (msb->system != MEMSTICK_SYS_SERIAL)
1130 msb->caps |= MEMSTICK_CAP_AUTO_GET_INT; 1147 msb->caps |= MEMSTICK_CAP_AUTO_GET_INT;
@@ -1192,12 +1209,12 @@ static int mspro_block_init_disk(struct memstick_dev *card)
1192 if (rc) 1209 if (rc)
1193 return rc; 1210 return rc;
1194 1211
1195 if ((disk_id << MEMSTICK_PART_SHIFT) > 255) { 1212 if ((disk_id << MSPRO_BLOCK_PART_SHIFT) > 255) {
1196 rc = -ENOSPC; 1213 rc = -ENOSPC;
1197 goto out_release_id; 1214 goto out_release_id;
1198 } 1215 }
1199 1216
1200 msb->disk = alloc_disk(1 << MEMSTICK_PART_SHIFT); 1217 msb->disk = alloc_disk(1 << MSPRO_BLOCK_PART_SHIFT);
1201 if (!msb->disk) { 1218 if (!msb->disk) {
1202 rc = -ENOMEM; 1219 rc = -ENOMEM;
1203 goto out_release_id; 1220 goto out_release_id;
@@ -1220,7 +1237,7 @@ static int mspro_block_init_disk(struct memstick_dev *card)
1220 MSPRO_BLOCK_MAX_PAGES * msb->page_size); 1237 MSPRO_BLOCK_MAX_PAGES * msb->page_size);
1221 1238
1222 msb->disk->major = major; 1239 msb->disk->major = major;
1223 msb->disk->first_minor = disk_id << MEMSTICK_PART_SHIFT; 1240 msb->disk->first_minor = disk_id << MSPRO_BLOCK_PART_SHIFT;
1224 msb->disk->fops = &ms_block_bdops; 1241 msb->disk->fops = &ms_block_bdops;
1225 msb->usage_count = 1; 1242 msb->usage_count = 1;
1226 msb->disk->private_data = msb; 1243 msb->disk->private_data = msb;
@@ -1416,7 +1433,7 @@ out_unlock:
1416 1433
1417static struct memstick_device_id mspro_block_id_tbl[] = { 1434static struct memstick_device_id mspro_block_id_tbl[] = {
1418 {MEMSTICK_MATCH_ALL, MEMSTICK_TYPE_PRO, MEMSTICK_CATEGORY_STORAGE_DUO, 1435 {MEMSTICK_MATCH_ALL, MEMSTICK_TYPE_PRO, MEMSTICK_CATEGORY_STORAGE_DUO,
1419 MEMSTICK_CLASS_GENERIC_DUO}, 1436 MEMSTICK_CLASS_DUO},
1420 {} 1437 {}
1421}; 1438};
1422 1439
diff --git a/drivers/memstick/host/jmb38x_ms.c b/drivers/memstick/host/jmb38x_ms.c
index 3485c63d20b..2fb95a5b72e 100644
--- a/drivers/memstick/host/jmb38x_ms.c
+++ b/drivers/memstick/host/jmb38x_ms.c
@@ -81,6 +81,8 @@ struct jmb38x_ms {
81#define TPC_CODE_SZ_MASK 0x00000700 81#define TPC_CODE_SZ_MASK 0x00000700
82#define TPC_DATA_SZ_MASK 0x00000007 82#define TPC_DATA_SZ_MASK 0x00000007
83 83
84#define HOST_CONTROL_TDELAY_EN 0x00040000
85#define HOST_CONTROL_HW_OC_P 0x00010000
84#define HOST_CONTROL_RESET_REQ 0x00008000 86#define HOST_CONTROL_RESET_REQ 0x00008000
85#define HOST_CONTROL_REI 0x00004000 87#define HOST_CONTROL_REI 0x00004000
86#define HOST_CONTROL_LED 0x00000400 88#define HOST_CONTROL_LED 0x00000400
@@ -88,6 +90,7 @@ struct jmb38x_ms {
88#define HOST_CONTROL_RESET 0x00000100 90#define HOST_CONTROL_RESET 0x00000100
89#define HOST_CONTROL_POWER_EN 0x00000080 91#define HOST_CONTROL_POWER_EN 0x00000080
90#define HOST_CONTROL_CLOCK_EN 0x00000040 92#define HOST_CONTROL_CLOCK_EN 0x00000040
93#define HOST_CONTROL_REO 0x00000008
91#define HOST_CONTROL_IF_SHIFT 4 94#define HOST_CONTROL_IF_SHIFT 4
92 95
93#define HOST_CONTROL_IF_SERIAL 0x0 96#define HOST_CONTROL_IF_SERIAL 0x0
@@ -133,11 +136,15 @@ struct jmb38x_ms {
133#define PAD_PU_PD_ON_MS_SOCK1 0x0f0f0000 136#define PAD_PU_PD_ON_MS_SOCK1 0x0f0f0000
134 137
135#define CLOCK_CONTROL_40MHZ 0x00000001 138#define CLOCK_CONTROL_40MHZ 0x00000001
136#define CLOCK_CONTROL_50MHZ 0x00000002 139#define CLOCK_CONTROL_50MHZ 0x0000000a
137#define CLOCK_CONTROL_60MHZ 0x00000008 140#define CLOCK_CONTROL_60MHZ 0x00000008
138#define CLOCK_CONTROL_62_5MHZ 0x0000000c 141#define CLOCK_CONTROL_62_5MHZ 0x0000000c
139#define CLOCK_CONTROL_OFF 0x00000000 142#define CLOCK_CONTROL_OFF 0x00000000
140 143
144#define PCI_CTL_CLOCK_DLY_ADDR 0x000000b0
145#define PCI_CTL_CLOCK_DLY_MASK_A 0x00000f00
146#define PCI_CTL_CLOCK_DLY_MASK_B 0x0000f000
147
141enum { 148enum {
142 CMD_READY = 0x01, 149 CMD_READY = 0x01,
143 FIFO_READY = 0x02, 150 FIFO_READY = 0x02,
@@ -367,8 +374,7 @@ static int jmb38x_ms_issue_cmd(struct memstick_host *msh)
367 return host->req->error; 374 return host->req->error;
368 } 375 }
369 376
370 dev_dbg(&msh->dev, "control %08x\n", 377 dev_dbg(&msh->dev, "control %08x\n", readl(host->addr + HOST_CONTROL));
371 readl(host->addr + HOST_CONTROL));
372 dev_dbg(&msh->dev, "status %08x\n", readl(host->addr + INT_STATUS)); 378 dev_dbg(&msh->dev, "status %08x\n", readl(host->addr + INT_STATUS));
373 dev_dbg(&msh->dev, "hstatus %08x\n", readl(host->addr + STATUS)); 379 dev_dbg(&msh->dev, "hstatus %08x\n", readl(host->addr + STATUS));
374 380
@@ -637,7 +643,7 @@ static int jmb38x_ms_reset(struct jmb38x_ms_host *host)
637 ndelay(20); 643 ndelay(20);
638 } 644 }
639 dev_dbg(&host->chip->pdev->dev, "reset_req timeout\n"); 645 dev_dbg(&host->chip->pdev->dev, "reset_req timeout\n");
640 return -EIO; 646 /* return -EIO; */
641 647
642reset_next: 648reset_next:
643 writel(HOST_CONTROL_RESET | HOST_CONTROL_CLOCK_EN 649 writel(HOST_CONTROL_RESET | HOST_CONTROL_CLOCK_EN
@@ -680,7 +686,9 @@ static int jmb38x_ms_set_param(struct memstick_host *msh,
680 686
681 host_ctl = 7; 687 host_ctl = 7;
682 host_ctl |= HOST_CONTROL_POWER_EN 688 host_ctl |= HOST_CONTROL_POWER_EN
683 | HOST_CONTROL_CLOCK_EN; 689 | HOST_CONTROL_CLOCK_EN
690 | HOST_CONTROL_HW_OC_P
691 | HOST_CONTROL_TDELAY_EN;
684 writel(host_ctl, host->addr + HOST_CONTROL); 692 writel(host_ctl, host->addr + HOST_CONTROL);
685 693
686 writel(host->id ? PAD_PU_PD_ON_MS_SOCK1 694 writel(host->id ? PAD_PU_PD_ON_MS_SOCK1
@@ -704,33 +712,40 @@ static int jmb38x_ms_set_param(struct memstick_host *msh,
704 break; 712 break;
705 case MEMSTICK_INTERFACE: 713 case MEMSTICK_INTERFACE:
706 host_ctl &= ~(3 << HOST_CONTROL_IF_SHIFT); 714 host_ctl &= ~(3 << HOST_CONTROL_IF_SHIFT);
715 pci_read_config_dword(host->chip->pdev,
716 PCI_CTL_CLOCK_DLY_ADDR,
717 &clock_delay);
718 clock_delay &= host->id ? ~PCI_CTL_CLOCK_DLY_MASK_B
719 : ~PCI_CTL_CLOCK_DLY_MASK_A;
707 720
708 if (value == MEMSTICK_SERIAL) { 721 if (value == MEMSTICK_SERIAL) {
709 host_ctl &= ~HOST_CONTROL_FAST_CLK; 722 host_ctl &= ~HOST_CONTROL_FAST_CLK;
723 host_ctl &= ~HOST_CONTROL_REO;
710 host_ctl |= HOST_CONTROL_IF_SERIAL 724 host_ctl |= HOST_CONTROL_IF_SERIAL
711 << HOST_CONTROL_IF_SHIFT; 725 << HOST_CONTROL_IF_SHIFT;
712 host_ctl |= HOST_CONTROL_REI; 726 host_ctl |= HOST_CONTROL_REI;
713 clock_ctl = CLOCK_CONTROL_40MHZ; 727 clock_ctl = CLOCK_CONTROL_40MHZ;
714 clock_delay = 0;
715 } else if (value == MEMSTICK_PAR4) { 728 } else if (value == MEMSTICK_PAR4) {
716 host_ctl |= HOST_CONTROL_FAST_CLK; 729 host_ctl |= HOST_CONTROL_FAST_CLK | HOST_CONTROL_REO;
717 host_ctl |= HOST_CONTROL_IF_PAR4 730 host_ctl |= HOST_CONTROL_IF_PAR4
718 << HOST_CONTROL_IF_SHIFT; 731 << HOST_CONTROL_IF_SHIFT;
719 host_ctl &= ~HOST_CONTROL_REI; 732 host_ctl &= ~HOST_CONTROL_REI;
720 clock_ctl = CLOCK_CONTROL_40MHZ; 733 clock_ctl = CLOCK_CONTROL_40MHZ;
721 clock_delay = 4; 734 clock_delay |= host->id ? (4 << 12) : (4 << 8);
722 } else if (value == MEMSTICK_PAR8) { 735 } else if (value == MEMSTICK_PAR8) {
723 host_ctl |= HOST_CONTROL_FAST_CLK; 736 host_ctl |= HOST_CONTROL_FAST_CLK;
724 host_ctl |= HOST_CONTROL_IF_PAR8 737 host_ctl |= HOST_CONTROL_IF_PAR8
725 << HOST_CONTROL_IF_SHIFT; 738 << HOST_CONTROL_IF_SHIFT;
726 host_ctl &= ~HOST_CONTROL_REI; 739 host_ctl &= ~(HOST_CONTROL_REI | HOST_CONTROL_REO);
727 clock_ctl = CLOCK_CONTROL_60MHZ; 740 clock_ctl = CLOCK_CONTROL_50MHZ;
728 clock_delay = 0;
729 } else 741 } else
730 return -EINVAL; 742 return -EINVAL;
743
731 writel(host_ctl, host->addr + HOST_CONTROL); 744 writel(host_ctl, host->addr + HOST_CONTROL);
732 writel(clock_ctl, host->addr + CLOCK_CONTROL); 745 writel(clock_ctl, host->addr + CLOCK_CONTROL);
733 writel(clock_delay, host->addr + CLOCK_DELAY); 746 pci_write_config_dword(host->chip->pdev,
747 PCI_CTL_CLOCK_DLY_ADDR,
748 clock_delay);
734 break; 749 break;
735 }; 750 };
736 return 0; 751 return 0;
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 10c44d3fe01..68dc8d9eb24 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -21,7 +21,7 @@ config MFD_SM501
21 21
22config MFD_SM501_GPIO 22config MFD_SM501_GPIO
23 bool "Export GPIO via GPIO layer" 23 bool "Export GPIO via GPIO layer"
24 depends on MFD_SM501 && HAVE_GPIO_LIB 24 depends on MFD_SM501 && GPIOLIB
25 ---help--- 25 ---help---
26 This option uses the gpio library layer to export the 64 GPIO 26 This option uses the gpio library layer to export the 64 GPIO
27 lines on the SM501. The platform data is used to supply the 27 lines on the SM501. The platform data is used to supply the
@@ -29,7 +29,7 @@ config MFD_SM501_GPIO
29 29
30config MFD_ASIC3 30config MFD_ASIC3
31 bool "Support for Compaq ASIC3" 31 bool "Support for Compaq ASIC3"
32 depends on GENERIC_HARDIRQS && HAVE_GPIO_LIB && ARM 32 depends on GENERIC_HARDIRQS && GPIOLIB && ARM
33 ---help--- 33 ---help---
34 This driver supports the ASIC3 multifunction chip found on many 34 This driver supports the ASIC3 multifunction chip found on many
35 PDAs (mainly iPAQ and HTC based ones) 35 PDAs (mainly iPAQ and HTC based ones)
diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
index c6408a62d95..ba5aa200827 100644
--- a/drivers/mfd/asic3.c
+++ b/drivers/mfd/asic3.c
@@ -16,7 +16,6 @@
16 * 16 *
17 */ 17 */
18 18
19#include <linux/version.h>
20#include <linux/kernel.h> 19#include <linux/kernel.h>
21#include <linux/irq.h> 20#include <linux/irq.h>
22#include <linux/gpio.h> 21#include <linux/gpio.h>
@@ -313,7 +312,6 @@ static int __init asic3_irq_probe(struct platform_device *pdev)
313 struct asic3 *asic = platform_get_drvdata(pdev); 312 struct asic3 *asic = platform_get_drvdata(pdev);
314 unsigned long clksel = 0; 313 unsigned long clksel = 0;
315 unsigned int irq, irq_base; 314 unsigned int irq, irq_base;
316 int map_size;
317 int ret; 315 int ret;
318 316
319 ret = platform_get_irq(pdev, 0); 317 ret = platform_get_irq(pdev, 0);
@@ -535,6 +533,7 @@ static int __init asic3_probe(struct platform_device *pdev)
535 struct asic3 *asic; 533 struct asic3 *asic;
536 struct resource *mem; 534 struct resource *mem;
537 unsigned long clksel; 535 unsigned long clksel;
536 int map_size;
538 int ret = 0; 537 int ret = 0;
539 538
540 asic = kzalloc(sizeof(struct asic3), GFP_KERNEL); 539 asic = kzalloc(sizeof(struct asic3), GFP_KERNEL);
diff --git a/drivers/misc/acer-wmi.c b/drivers/misc/acer-wmi.c
index b2d9878dc3f..d8b0d326e45 100644
--- a/drivers/misc/acer-wmi.c
+++ b/drivers/misc/acer-wmi.c
@@ -192,6 +192,9 @@ static struct quirk_entry *quirks;
192 192
193static void set_quirks(void) 193static void set_quirks(void)
194{ 194{
195 if (!interface)
196 return;
197
195 if (quirks->mailled) 198 if (quirks->mailled)
196 interface->capability |= ACER_CAP_MAILLED; 199 interface->capability |= ACER_CAP_MAILLED;
197 200
@@ -1186,7 +1189,7 @@ static int create_debugfs(void)
1186 return 0; 1189 return 0;
1187 1190
1188error_debugfs: 1191error_debugfs:
1189 remove_debugfs(); 1192 remove_debugfs();
1190 return -ENOMEM; 1193 return -ENOMEM;
1191} 1194}
1192 1195
@@ -1237,6 +1240,8 @@ static int __init acer_wmi_init(void)
1237 return -ENODEV; 1240 return -ENODEV;
1238 } 1241 }
1239 1242
1243 set_quirks();
1244
1240 if (platform_driver_register(&acer_platform_driver)) { 1245 if (platform_driver_register(&acer_platform_driver)) {
1241 printk(ACER_ERR "Unable to register platform driver.\n"); 1246 printk(ACER_ERR "Unable to register platform driver.\n");
1242 goto error_platform_register; 1247 goto error_platform_register;
@@ -1267,6 +1272,7 @@ error_platform_register:
1267static void __exit acer_wmi_exit(void) 1272static void __exit acer_wmi_exit(void)
1268{ 1273{
1269 remove_sysfs(acer_platform_device); 1274 remove_sysfs(acer_platform_device);
1275 remove_debugfs();
1270 platform_device_del(acer_platform_device); 1276 platform_device_del(acer_platform_device);
1271 platform_driver_unregister(&acer_platform_driver); 1277 platform_driver_unregister(&acer_platform_driver);
1272 1278
diff --git a/drivers/misc/eeprom_93cx6.c b/drivers/misc/eeprom_93cx6.c
index ea55654e594..15b1780025c 100644
--- a/drivers/misc/eeprom_93cx6.c
+++ b/drivers/misc/eeprom_93cx6.c
@@ -26,7 +26,6 @@
26 26
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/module.h> 28#include <linux/module.h>
29#include <linux/version.h>
30#include <linux/delay.h> 29#include <linux/delay.h>
31#include <linux/eeprom_93cx6.h> 30#include <linux/eeprom_93cx6.h>
32 31
diff --git a/drivers/misc/fujitsu-laptop.c b/drivers/misc/fujitsu-laptop.c
index 7a1ef6c262d..3e56203e494 100644
--- a/drivers/misc/fujitsu-laptop.c
+++ b/drivers/misc/fujitsu-laptop.c
@@ -463,6 +463,13 @@ static struct dmi_system_id __initdata fujitsu_dmi_table[] = {
463 DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK S6410"), 463 DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK S6410"),
464 }, 464 },
465 .callback = dmi_check_cb_s6410}, 465 .callback = dmi_check_cb_s6410},
466 {
467 .ident = "FUJITSU LifeBook P8010",
468 .matches = {
469 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
470 DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook P8010"),
471 },
472 .callback = dmi_check_cb_s6410},
466 {} 473 {}
467}; 474};
468 475
diff --git a/drivers/misc/hp-wmi.c b/drivers/misc/hp-wmi.c
index 1dbcbcb323a..6d407c2a4f9 100644
--- a/drivers/misc/hp-wmi.c
+++ b/drivers/misc/hp-wmi.c
@@ -49,6 +49,7 @@ MODULE_ALIAS("wmi:5FB7F034-2C63-45e9-BE91-3D44E2C707E4");
49#define HPWMI_ALS_QUERY 0x3 49#define HPWMI_ALS_QUERY 0x3
50#define HPWMI_DOCK_QUERY 0x4 50#define HPWMI_DOCK_QUERY 0x4
51#define HPWMI_WIRELESS_QUERY 0x5 51#define HPWMI_WIRELESS_QUERY 0x5
52#define HPWMI_HOTKEY_QUERY 0xc
52 53
53static int __init hp_wmi_bios_setup(struct platform_device *device); 54static int __init hp_wmi_bios_setup(struct platform_device *device);
54static int __exit hp_wmi_bios_remove(struct platform_device *device); 55static int __exit hp_wmi_bios_remove(struct platform_device *device);
@@ -69,7 +70,7 @@ struct bios_return {
69 70
70struct key_entry { 71struct key_entry {
71 char type; /* See KE_* below */ 72 char type; /* See KE_* below */
72 u8 code; 73 u16 code;
73 u16 keycode; 74 u16 keycode;
74}; 75};
75 76
@@ -79,7 +80,9 @@ static struct key_entry hp_wmi_keymap[] = {
79 {KE_SW, 0x01, SW_DOCK}, 80 {KE_SW, 0x01, SW_DOCK},
80 {KE_KEY, 0x02, KEY_BRIGHTNESSUP}, 81 {KE_KEY, 0x02, KEY_BRIGHTNESSUP},
81 {KE_KEY, 0x03, KEY_BRIGHTNESSDOWN}, 82 {KE_KEY, 0x03, KEY_BRIGHTNESSDOWN},
82 {KE_KEY, 0x04, KEY_HELP}, 83 {KE_KEY, 0x20e6, KEY_PROG1},
84 {KE_KEY, 0x2142, KEY_MEDIA},
85 {KE_KEY, 0x231b, KEY_HELP},
83 {KE_END, 0} 86 {KE_END, 0}
84}; 87};
85 88
@@ -177,9 +180,9 @@ static int hp_wmi_wifi_state(void)
177 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0); 180 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0);
178 181
179 if (wireless & 0x100) 182 if (wireless & 0x100)
180 return 1; 183 return RFKILL_STATE_UNBLOCKED;
181 else 184 else
182 return 0; 185 return RFKILL_STATE_SOFT_BLOCKED;
183} 186}
184 187
185static int hp_wmi_bluetooth_state(void) 188static int hp_wmi_bluetooth_state(void)
@@ -187,9 +190,9 @@ static int hp_wmi_bluetooth_state(void)
187 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0); 190 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0);
188 191
189 if (wireless & 0x10000) 192 if (wireless & 0x10000)
190 return 1; 193 return RFKILL_STATE_UNBLOCKED;
191 else 194 else
192 return 0; 195 return RFKILL_STATE_SOFT_BLOCKED;
193} 196}
194 197
195static int hp_wmi_wwan_state(void) 198static int hp_wmi_wwan_state(void)
@@ -197,9 +200,9 @@ static int hp_wmi_wwan_state(void)
197 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0); 200 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0);
198 201
199 if (wireless & 0x1000000) 202 if (wireless & 0x1000000)
200 return 1; 203 return RFKILL_STATE_UNBLOCKED;
201 else 204 else
202 return 0; 205 return RFKILL_STATE_SOFT_BLOCKED;
203} 206}
204 207
205static ssize_t show_display(struct device *dev, struct device_attribute *attr, 208static ssize_t show_display(struct device *dev, struct device_attribute *attr,
@@ -318,6 +321,9 @@ void hp_wmi_notify(u32 value, void *context)
318 321
319 if (obj && obj->type == ACPI_TYPE_BUFFER && obj->buffer.length == 8) { 322 if (obj && obj->type == ACPI_TYPE_BUFFER && obj->buffer.length == 8) {
320 int eventcode = *((u8 *) obj->buffer.pointer); 323 int eventcode = *((u8 *) obj->buffer.pointer);
324 if (eventcode == 0x4)
325 eventcode = hp_wmi_perform_query(HPWMI_HOTKEY_QUERY, 0,
326 0);
321 key = hp_wmi_get_entry_by_scancode(eventcode); 327 key = hp_wmi_get_entry_by_scancode(eventcode);
322 if (key) { 328 if (key) {
323 switch (key->type) { 329 switch (key->type) {
@@ -338,12 +344,14 @@ void hp_wmi_notify(u32 value, void *context)
338 } 344 }
339 } else if (eventcode == 0x5) { 345 } else if (eventcode == 0x5) {
340 if (wifi_rfkill) 346 if (wifi_rfkill)
341 wifi_rfkill->state = hp_wmi_wifi_state(); 347 rfkill_force_state(wifi_rfkill,
348 hp_wmi_wifi_state());
342 if (bluetooth_rfkill) 349 if (bluetooth_rfkill)
343 bluetooth_rfkill->state = 350 rfkill_force_state(bluetooth_rfkill,
344 hp_wmi_bluetooth_state(); 351 hp_wmi_bluetooth_state());
345 if (wwan_rfkill) 352 if (wwan_rfkill)
346 wwan_rfkill->state = hp_wmi_wwan_state(); 353 rfkill_force_state(wwan_rfkill,
354 hp_wmi_wwan_state());
347 } else 355 } else
348 printk(KERN_INFO "HP WMI: Unknown key pressed - %x\n", 356 printk(KERN_INFO "HP WMI: Unknown key pressed - %x\n",
349 eventcode); 357 eventcode);
@@ -398,6 +406,7 @@ static void cleanup_sysfs(struct platform_device *device)
398static int __init hp_wmi_bios_setup(struct platform_device *device) 406static int __init hp_wmi_bios_setup(struct platform_device *device)
399{ 407{
400 int err; 408 int err;
409 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0);
401 410
402 err = device_create_file(&device->dev, &dev_attr_display); 411 err = device_create_file(&device->dev, &dev_attr_display);
403 if (err) 412 if (err)
@@ -412,28 +421,33 @@ static int __init hp_wmi_bios_setup(struct platform_device *device)
412 if (err) 421 if (err)
413 goto add_sysfs_error; 422 goto add_sysfs_error;
414 423
415 wifi_rfkill = rfkill_allocate(&device->dev, RFKILL_TYPE_WLAN); 424 if (wireless & 0x1) {
416 wifi_rfkill->name = "hp-wifi"; 425 wifi_rfkill = rfkill_allocate(&device->dev, RFKILL_TYPE_WLAN);
417 wifi_rfkill->state = hp_wmi_wifi_state(); 426 wifi_rfkill->name = "hp-wifi";
418 wifi_rfkill->toggle_radio = hp_wmi_wifi_set; 427 wifi_rfkill->state = hp_wmi_wifi_state();
419 wifi_rfkill->user_claim_unsupported = 1; 428 wifi_rfkill->toggle_radio = hp_wmi_wifi_set;
420 429 wifi_rfkill->user_claim_unsupported = 1;
421 bluetooth_rfkill = rfkill_allocate(&device->dev, 430 rfkill_register(wifi_rfkill);
422 RFKILL_TYPE_BLUETOOTH); 431 }
423 bluetooth_rfkill->name = "hp-bluetooth"; 432
424 bluetooth_rfkill->state = hp_wmi_bluetooth_state(); 433 if (wireless & 0x2) {
425 bluetooth_rfkill->toggle_radio = hp_wmi_bluetooth_set; 434 bluetooth_rfkill = rfkill_allocate(&device->dev,
426 bluetooth_rfkill->user_claim_unsupported = 1; 435 RFKILL_TYPE_BLUETOOTH);
427 436 bluetooth_rfkill->name = "hp-bluetooth";
428 wwan_rfkill = rfkill_allocate(&device->dev, RFKILL_TYPE_WIMAX); 437 bluetooth_rfkill->state = hp_wmi_bluetooth_state();
429 wwan_rfkill->name = "hp-wwan"; 438 bluetooth_rfkill->toggle_radio = hp_wmi_bluetooth_set;
430 wwan_rfkill->state = hp_wmi_wwan_state(); 439 bluetooth_rfkill->user_claim_unsupported = 1;
431 wwan_rfkill->toggle_radio = hp_wmi_wwan_set; 440 rfkill_register(bluetooth_rfkill);
432 wwan_rfkill->user_claim_unsupported = 1; 441 }
433 442
434 rfkill_register(wifi_rfkill); 443 if (wireless & 0x4) {
435 rfkill_register(bluetooth_rfkill); 444 wwan_rfkill = rfkill_allocate(&device->dev, RFKILL_TYPE_WWAN);
436 rfkill_register(wwan_rfkill); 445 wwan_rfkill->name = "hp-wwan";
446 wwan_rfkill->state = hp_wmi_wwan_state();
447 wwan_rfkill->toggle_radio = hp_wmi_wwan_set;
448 wwan_rfkill->user_claim_unsupported = 1;
449 rfkill_register(wwan_rfkill);
450 }
437 451
438 return 0; 452 return 0;
439add_sysfs_error: 453add_sysfs_error:
@@ -445,9 +459,12 @@ static int __exit hp_wmi_bios_remove(struct platform_device *device)
445{ 459{
446 cleanup_sysfs(device); 460 cleanup_sysfs(device);
447 461
448 rfkill_unregister(wifi_rfkill); 462 if (wifi_rfkill)
449 rfkill_unregister(bluetooth_rfkill); 463 rfkill_unregister(wifi_rfkill);
450 rfkill_unregister(wwan_rfkill); 464 if (bluetooth_rfkill)
465 rfkill_unregister(bluetooth_rfkill);
466 if (wwan_rfkill)
467 rfkill_unregister(wwan_rfkill);
451 468
452 return 0; 469 return 0;
453} 470}
diff --git a/drivers/misc/sgi-gru/grufile.c b/drivers/misc/sgi-gru/grufile.c
index 23c91f5f6b6..d61cee796ef 100644
--- a/drivers/misc/sgi-gru/grufile.c
+++ b/drivers/misc/sgi-gru/grufile.c
@@ -445,6 +445,9 @@ static void __exit gru_exit(void)
445 int order = get_order(sizeof(struct gru_state) * 445 int order = get_order(sizeof(struct gru_state) *
446 GRU_CHIPLETS_PER_BLADE); 446 GRU_CHIPLETS_PER_BLADE);
447 447
448 if (!IS_UV())
449 return;
450
448 for (i = 0; i < GRU_CHIPLETS_PER_BLADE; i++) 451 for (i = 0; i < GRU_CHIPLETS_PER_BLADE; i++)
449 free_irq(IRQ_GRU + i, NULL); 452 free_irq(IRQ_GRU + i, NULL);
450 453
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c
index d3eb7903c34..6b9300779a4 100644
--- a/drivers/misc/thinkpad_acpi.c
+++ b/drivers/misc/thinkpad_acpi.c
@@ -3086,7 +3086,6 @@ static struct ibm_struct wan_driver_data = {
3086 .read = wan_read, 3086 .read = wan_read,
3087 .write = wan_write, 3087 .write = wan_write,
3088 .exit = wan_exit, 3088 .exit = wan_exit,
3089 .flags.experimental = 1,
3090}; 3089};
3091 3090
3092/************************************************************************* 3091/*************************************************************************
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index 86dbb366415..ebc8b9d7761 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -103,8 +103,10 @@ static int mmc_blk_open(struct inode *inode, struct file *filp)
103 check_disk_change(inode->i_bdev); 103 check_disk_change(inode->i_bdev);
104 ret = 0; 104 ret = 0;
105 105
106 if ((filp->f_mode & FMODE_WRITE) && md->read_only) 106 if ((filp->f_mode & FMODE_WRITE) && md->read_only) {
107 mmc_blk_put(md);
107 ret = -EROFS; 108 ret = -EROFS;
109 }
108 } 110 }
109 111
110 return ret; 112 return ret;
@@ -613,14 +615,19 @@ static struct mmc_driver mmc_driver = {
613 615
614static int __init mmc_blk_init(void) 616static int __init mmc_blk_init(void)
615{ 617{
616 int res = -ENOMEM; 618 int res;
617 619
618 res = register_blkdev(MMC_BLOCK_MAJOR, "mmc"); 620 res = register_blkdev(MMC_BLOCK_MAJOR, "mmc");
619 if (res) 621 if (res)
620 goto out; 622 goto out;
621 623
622 return mmc_register_driver(&mmc_driver); 624 res = mmc_register_driver(&mmc_driver);
625 if (res)
626 goto out2;
623 627
628 return 0;
629 out2:
630 unregister_blkdev(MMC_BLOCK_MAJOR, "mmc");
624 out: 631 out:
625 return res; 632 return res;
626} 633}
diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_test.c
index f26b01d811a..b92b172074e 100644
--- a/drivers/mmc/card/mmc_test.c
+++ b/drivers/mmc/card/mmc_test.c
@@ -1040,7 +1040,7 @@ static const struct mmc_test_case mmc_test_cases[] = {
1040 1040
1041}; 1041};
1042 1042
1043static struct mutex mmc_test_lock; 1043static DEFINE_MUTEX(mmc_test_lock);
1044 1044
1045static void mmc_test_run(struct mmc_test_card *test, int testcase) 1045static void mmc_test_run(struct mmc_test_card *test, int testcase)
1046{ 1046{
@@ -1171,8 +1171,6 @@ static int mmc_test_probe(struct mmc_card *card)
1171 if ((card->type != MMC_TYPE_MMC) && (card->type != MMC_TYPE_SD)) 1171 if ((card->type != MMC_TYPE_MMC) && (card->type != MMC_TYPE_SD))
1172 return -ENODEV; 1172 return -ENODEV;
1173 1173
1174 mutex_init(&mmc_test_lock);
1175
1176 ret = device_create_file(&card->dev, &dev_attr_test); 1174 ret = device_create_file(&card->dev, &dev_attr_test);
1177 if (ret) 1175 if (ret)
1178 return ret; 1176 return ret;
diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c
index 6915f40ac8a..1f8b5b36222 100644
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
@@ -621,12 +621,21 @@ static void at91_mci_send_command(struct at91mci_host *host, struct mmc_command
621 if (cpu_is_at91sam9260 () || cpu_is_at91sam9263()) 621 if (cpu_is_at91sam9260 () || cpu_is_at91sam9263())
622 if (host->total_length < 12) 622 if (host->total_length < 12)
623 host->total_length = 12; 623 host->total_length = 12;
624 host->buffer = dma_alloc_coherent(NULL, 624
625 host->total_length, 625 host->buffer = kmalloc(host->total_length, GFP_KERNEL);
626 &host->physical_address, GFP_KERNEL); 626 if (!host->buffer) {
627 pr_debug("Can't alloc tx buffer\n");
628 cmd->error = -ENOMEM;
629 mmc_request_done(host->mmc, host->request);
630 return;
631 }
627 632
628 at91_mci_sg_to_dma(host, data); 633 at91_mci_sg_to_dma(host, data);
629 634
635 host->physical_address = dma_map_single(NULL,
636 host->buffer, host->total_length,
637 DMA_TO_DEVICE);
638
630 pr_debug("Transmitting %d bytes\n", host->total_length); 639 pr_debug("Transmitting %d bytes\n", host->total_length);
631 640
632 at91_mci_write(host, ATMEL_PDC_TPR, host->physical_address); 641 at91_mci_write(host, ATMEL_PDC_TPR, host->physical_address);
@@ -694,7 +703,10 @@ static void at91_mci_completed_command(struct at91mci_host *host, unsigned int s
694 cmd->resp[3] = at91_mci_read(host, AT91_MCI_RSPR(3)); 703 cmd->resp[3] = at91_mci_read(host, AT91_MCI_RSPR(3));
695 704
696 if (host->buffer) { 705 if (host->buffer) {
697 dma_free_coherent(NULL, host->total_length, host->buffer, host->physical_address); 706 dma_unmap_single(NULL,
707 host->physical_address, host->total_length,
708 DMA_TO_DEVICE);
709 kfree(host->buffer);
698 host->buffer = NULL; 710 host->buffer = NULL;
699 } 711 }
700 712
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index 0bd06f5bd62..917035e16da 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -195,7 +195,9 @@ static int atmci_regs_show(struct seq_file *s, void *v)
195 195
196 /* Grab a more or less consistent snapshot */ 196 /* Grab a more or less consistent snapshot */
197 spin_lock_irq(&host->mmc->lock); 197 spin_lock_irq(&host->mmc->lock);
198 clk_enable(host->mck);
198 memcpy_fromio(buf, host->regs, MCI_REGS_SIZE); 199 memcpy_fromio(buf, host->regs, MCI_REGS_SIZE);
200 clk_disable(host->mck);
199 spin_unlock_irq(&host->mmc->lock); 201 spin_unlock_irq(&host->mmc->lock);
200 202
201 seq_printf(s, "MR:\t0x%08x%s%s CLKDIV=%u\n", 203 seq_printf(s, "MR:\t0x%08x%s%s CLKDIV=%u\n",
@@ -216,6 +218,8 @@ static int atmci_regs_show(struct seq_file *s, void *v)
216 atmci_show_status_reg(s, "SR", buf[MCI_SR / 4]); 218 atmci_show_status_reg(s, "SR", buf[MCI_SR / 4]);
217 atmci_show_status_reg(s, "IMR", buf[MCI_IMR / 4]); 219 atmci_show_status_reg(s, "IMR", buf[MCI_IMR / 4]);
218 220
221 kfree(buf);
222
219 return 0; 223 return 0;
220} 224}
221 225
@@ -237,7 +241,6 @@ static void atmci_init_debugfs(struct atmel_mci *host)
237 struct mmc_host *mmc; 241 struct mmc_host *mmc;
238 struct dentry *root; 242 struct dentry *root;
239 struct dentry *node; 243 struct dentry *node;
240 struct resource *res;
241 244
242 mmc = host->mmc; 245 mmc = host->mmc;
243 root = mmc->debugfs_root; 246 root = mmc->debugfs_root;
@@ -251,9 +254,6 @@ static void atmci_init_debugfs(struct atmel_mci *host)
251 if (!node) 254 if (!node)
252 goto err; 255 goto err;
253 256
254 res = platform_get_resource(host->pdev, IORESOURCE_MEM, 0);
255 node->d_inode->i_size = res->end - res->start + 1;
256
257 node = debugfs_create_file("req", S_IRUSR, root, host, &atmci_req_fops); 257 node = debugfs_create_file("req", S_IRUSR, root, host, &atmci_req_fops);
258 if (!node) 258 if (!node)
259 goto err; 259 goto err;
@@ -1059,6 +1059,10 @@ static int __init atmci_probe(struct platform_device *pdev)
1059 host->present = !gpio_get_value(host->detect_pin); 1059 host->present = !gpio_get_value(host->detect_pin);
1060 } 1060 }
1061 } 1061 }
1062
1063 if (!gpio_is_valid(host->detect_pin))
1064 mmc->caps |= MMC_CAP_NEEDS_POLL;
1065
1062 if (gpio_is_valid(host->wp_pin)) { 1066 if (gpio_is_valid(host->wp_pin)) {
1063 if (gpio_request(host->wp_pin, "mmc_wp")) { 1067 if (gpio_request(host->wp_pin, "mmc_wp")) {
1064 dev_dbg(&mmc->class_dev, "no WP pin available\n"); 1068 dev_dbg(&mmc->class_dev, "no WP pin available\n");
diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h
index 9e647a06054..ba2b4240a86 100644
--- a/drivers/mmc/host/tmio_mmc.h
+++ b/drivers/mmc/host/tmio_mmc.h
@@ -159,10 +159,10 @@ static inline void tmio_mmc_kunmap_atomic(struct tmio_mmc_host *host,
159#define STATUS_TO_TEXT(a) \ 159#define STATUS_TO_TEXT(a) \
160 do { \ 160 do { \
161 if (status & TMIO_STAT_##a) \ 161 if (status & TMIO_STAT_##a) \
162 printf(#a); \ 162 printk(#a); \
163 } while (0) 163 } while (0)
164 164
165void debug_status(u32 status) 165void pr_debug_status(u32 status)
166{ 166{
167 printk(KERN_DEBUG "status: %08x = ", status); 167 printk(KERN_DEBUG "status: %08x = ", status);
168 STATUS_TO_TEXT(CARD_REMOVE); 168 STATUS_TO_TEXT(CARD_REMOVE);
diff --git a/drivers/mtd/maps/amd76xrom.c b/drivers/mtd/maps/amd76xrom.c
index 948b86f35ef..d1eec7d3243 100644
--- a/drivers/mtd/maps/amd76xrom.c
+++ b/drivers/mtd/maps/amd76xrom.c
@@ -6,7 +6,6 @@
6 6
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/types.h> 8#include <linux/types.h>
9#include <linux/version.h>
10#include <linux/kernel.h> 9#include <linux/kernel.h>
11#include <linux/init.h> 10#include <linux/init.h>
12#include <asm/io.h> 11#include <asm/io.h>
diff --git a/drivers/mtd/maps/ck804xrom.c b/drivers/mtd/maps/ck804xrom.c
index effaf7cdefa..1a6feb4474d 100644
--- a/drivers/mtd/maps/ck804xrom.c
+++ b/drivers/mtd/maps/ck804xrom.c
@@ -9,7 +9,6 @@
9 9
10#include <linux/module.h> 10#include <linux/module.h>
11#include <linux/types.h> 11#include <linux/types.h>
12#include <linux/version.h>
13#include <linux/kernel.h> 12#include <linux/kernel.h>
14#include <linux/init.h> 13#include <linux/init.h>
15#include <asm/io.h> 14#include <asm/io.h>
diff --git a/drivers/mtd/maps/esb2rom.c b/drivers/mtd/maps/esb2rom.c
index aa64a475278..bbbcdd4c8d1 100644
--- a/drivers/mtd/maps/esb2rom.c
+++ b/drivers/mtd/maps/esb2rom.c
@@ -12,7 +12,6 @@
12 12
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/types.h> 14#include <linux/types.h>
15#include <linux/version.h>
16#include <linux/kernel.h> 15#include <linux/kernel.h>
17#include <linux/init.h> 16#include <linux/init.h>
18#include <asm/io.h> 17#include <asm/io.h>
diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c
index d2f331876e4..e00d424e657 100644
--- a/drivers/mtd/mtdchar.c
+++ b/drivers/mtd/mtdchar.c
@@ -410,16 +410,20 @@ static int mtd_ioctl(struct inode *inode, struct file *file,
410 410
411 case MEMGETREGIONINFO: 411 case MEMGETREGIONINFO:
412 { 412 {
413 struct region_info_user ur; 413 uint32_t ur_idx;
414 struct mtd_erase_region_info *kr;
415 struct region_info_user *ur = (struct region_info_user *) argp;
414 416
415 if (copy_from_user(&ur, argp, sizeof(struct region_info_user))) 417 if (get_user(ur_idx, &(ur->regionindex)))
416 return -EFAULT; 418 return -EFAULT;
417 419
418 if (ur.regionindex >= mtd->numeraseregions) 420 kr = &(mtd->eraseregions[ur_idx]);
419 return -EINVAL; 421
420 if (copy_to_user(argp, &(mtd->eraseregions[ur.regionindex]), 422 if (put_user(kr->offset, &(ur->offset))
421 sizeof(struct mtd_erase_region_info))) 423 || put_user(kr->erasesize, &(ur->erasesize))
424 || put_user(kr->numblocks, &(ur->numblocks)))
422 return -EFAULT; 425 return -EFAULT;
426
423 break; 427 break;
424 } 428 }
425 429
diff --git a/drivers/mtd/nand/au1550nd.c b/drivers/mtd/nand/au1550nd.c
index 761946ea45b..92c334ff450 100644
--- a/drivers/mtd/nand/au1550nd.c
+++ b/drivers/mtd/nand/au1550nd.c
@@ -16,7 +16,6 @@
16#include <linux/mtd/mtd.h> 16#include <linux/mtd/mtd.h>
17#include <linux/mtd/nand.h> 17#include <linux/mtd/nand.h>
18#include <linux/mtd/partitions.h> 18#include <linux/mtd/partitions.h>
19#include <linux/version.h>
20#include <asm/io.h> 19#include <asm/io.h>
21 20
22#include <asm/mach-au1x00/au1xxx.h> 21#include <asm/mach-au1x00/au1xxx.h>
diff --git a/drivers/mtd/nand/tmio_nand.c b/drivers/mtd/nand/tmio_nand.c
index cbab654b03c..edb1e322113 100644
--- a/drivers/mtd/nand/tmio_nand.c
+++ b/drivers/mtd/nand/tmio_nand.c
@@ -109,7 +109,7 @@ struct tmio_nand {
109 109
110 void __iomem *ccr; 110 void __iomem *ccr;
111 void __iomem *fcr; 111 void __iomem *fcr;
112 unsigned long fcr_phys; 112 unsigned long fcr_base;
113 113
114 unsigned int irq; 114 unsigned int irq;
115 115
@@ -316,8 +316,8 @@ static int tmio_hw_init(struct platform_device *dev, struct tmio_nand *tmio)
316 tmio_iowrite8(0x81, tmio->ccr + CCR_ICC); 316 tmio_iowrite8(0x81, tmio->ccr + CCR_ICC);
317 317
318 /* (10h)BaseAddress 0x1000 spba.spba2 */ 318 /* (10h)BaseAddress 0x1000 spba.spba2 */
319 tmio_iowrite16(tmio->fcr_phys, tmio->ccr + CCR_BASE); 319 tmio_iowrite16(tmio->fcr_base, tmio->ccr + CCR_BASE);
320 tmio_iowrite16(tmio->fcr_phys >> 16, tmio->ccr + CCR_BASE + 16); 320 tmio_iowrite16(tmio->fcr_base >> 16, tmio->ccr + CCR_BASE + 2);
321 321
322 /* (04h)Command Register I/O spcmd */ 322 /* (04h)Command Register I/O spcmd */
323 tmio_iowrite8(0x02, tmio->ccr + CCR_COMMAND); 323 tmio_iowrite8(0x02, tmio->ccr + CCR_COMMAND);
@@ -395,7 +395,7 @@ static int tmio_probe(struct platform_device *dev)
395 goto err_iomap_ccr; 395 goto err_iomap_ccr;
396 } 396 }
397 397
398 tmio->fcr_phys = (unsigned long)fcr->start; 398 tmio->fcr_base = fcr->start & 0xfffff;
399 tmio->fcr = ioremap(fcr->start, fcr->end - fcr->start + 1); 399 tmio->fcr = ioremap(fcr->start, fcr->end - fcr->start + 1);
400 if (!tmio->fcr) { 400 if (!tmio->fcr) {
401 retval = -EIO; 401 retval = -EIO;
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index a5c141cecd4..4a11296a951 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -822,14 +822,14 @@ config ULTRA32
822 will be called smc-ultra32. 822 will be called smc-ultra32.
823 823
824config BFIN_MAC 824config BFIN_MAC
825 tristate "Blackfin 527/536/537 on-chip mac support" 825 tristate "Blackfin on-chip MAC support"
826 depends on NET_ETHERNET && (BF527 || BF537 || BF536) 826 depends on NET_ETHERNET && (BF526 || BF527 || BF536 || BF537)
827 select CRC32 827 select CRC32
828 select MII 828 select MII
829 select PHYLIB 829 select PHYLIB
830 select BFIN_MAC_USE_L1 if DMA_UNCACHED_NONE 830 select BFIN_MAC_USE_L1 if DMA_UNCACHED_NONE
831 help 831 help
832 This is the driver for blackfin on-chip mac device. Say Y if you want it 832 This is the driver for Blackfin on-chip mac device. Say Y if you want it
833 compiled into the kernel. This driver is also available as a module 833 compiled into the kernel. This driver is also available as a module
834 ( = code which can be inserted in and removed from the running kernel 834 ( = code which can be inserted in and removed from the running kernel
835 whenever you want). The module will be called bfin_mac. 835 whenever you want). The module will be called bfin_mac.
diff --git a/drivers/net/atl1e/atl1e_main.c b/drivers/net/atl1e/atl1e_main.c
index 82d7be1655d..7685b995ff9 100644
--- a/drivers/net/atl1e/atl1e_main.c
+++ b/drivers/net/atl1e/atl1e_main.c
@@ -2232,10 +2232,11 @@ static int atl1e_resume(struct pci_dev *pdev)
2232 2232
2233 AT_WRITE_REG(&adapter->hw, REG_WOL_CTRL, 0); 2233 AT_WRITE_REG(&adapter->hw, REG_WOL_CTRL, 0);
2234 2234
2235 if (netif_running(netdev)) 2235 if (netif_running(netdev)) {
2236 err = atl1e_request_irq(adapter); 2236 err = atl1e_request_irq(adapter);
2237 if (err) 2237 if (err)
2238 return err; 2238 return err;
2239 }
2239 2240
2240 atl1e_reset_hw(&adapter->hw); 2241 atl1e_reset_hw(&adapter->hw);
2241 2242
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index e6a7bb79d4d..e23ce77712f 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -3022,7 +3022,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
3022 netdev->features = NETIF_F_HW_CSUM; 3022 netdev->features = NETIF_F_HW_CSUM;
3023 netdev->features |= NETIF_F_SG; 3023 netdev->features |= NETIF_F_SG;
3024 netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX); 3024 netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX);
3025 netdev->features |= NETIF_F_TSO;
3026 netdev->features |= NETIF_F_LLTX; 3025 netdev->features |= NETIF_F_LLTX;
3027 3026
3028 /* 3027 /*
diff --git a/drivers/net/bnx2.h b/drivers/net/bnx2.h
index c3c579f98ed..dfacd31f7ed 100644
--- a/drivers/net/bnx2.h
+++ b/drivers/net/bnx2.h
@@ -6597,7 +6597,7 @@ struct flash_spec {
6597 6597
6598struct bnx2_irq { 6598struct bnx2_irq {
6599 irq_handler_t handler; 6599 irq_handler_t handler;
6600 u16 vector; 6600 unsigned int vector;
6601 u8 requested; 6601 u8 requested;
6602 char name[16]; 6602 char name[16];
6603}; 6603};
diff --git a/drivers/net/bnx2x.h b/drivers/net/bnx2x.h
index b468f904c7f..fd705d1295a 100644
--- a/drivers/net/bnx2x.h
+++ b/drivers/net/bnx2x.h
@@ -151,6 +151,8 @@ struct sw_rx_page {
151#define PAGES_PER_SGE_SHIFT 0 151#define PAGES_PER_SGE_SHIFT 0
152#define PAGES_PER_SGE (1 << PAGES_PER_SGE_SHIFT) 152#define PAGES_PER_SGE (1 << PAGES_PER_SGE_SHIFT)
153 153
154#define BCM_RX_ETH_PAYLOAD_ALIGN 64
155
154/* SGE ring related macros */ 156/* SGE ring related macros */
155#define NUM_RX_SGE_PAGES 2 157#define NUM_RX_SGE_PAGES 2
156#define RX_SGE_CNT (BCM_PAGE_SIZE / sizeof(struct eth_rx_sge)) 158#define RX_SGE_CNT (BCM_PAGE_SIZE / sizeof(struct eth_rx_sge))
@@ -271,7 +273,7 @@ struct bnx2x_fastpath {
271 (fp->tx_pkt_prod != fp->tx_pkt_cons)) 273 (fp->tx_pkt_prod != fp->tx_pkt_cons))
272 274
273#define BNX2X_HAS_RX_WORK(fp) \ 275#define BNX2X_HAS_RX_WORK(fp) \
274 (fp->rx_comp_cons != le16_to_cpu(*fp->rx_cons_sb)) 276 (fp->rx_comp_cons != rx_cons_sb)
275 277
276#define BNX2X_HAS_WORK(fp) (BNX2X_HAS_RX_WORK(fp) || BNX2X_HAS_TX_WORK(fp)) 278#define BNX2X_HAS_WORK(fp) (BNX2X_HAS_RX_WORK(fp) || BNX2X_HAS_TX_WORK(fp))
277 279
@@ -750,8 +752,7 @@ struct bnx2x {
750 752
751 u32 rx_csum; 753 u32 rx_csum;
752 u32 rx_offset; 754 u32 rx_offset;
753 u32 rx_buf_use_size; /* useable size */ 755 u32 rx_buf_size;
754 u32 rx_buf_size; /* with alignment */
755#define ETH_OVREHEAD (ETH_HLEN + 8) /* 8 for CRC + VLAN */ 756#define ETH_OVREHEAD (ETH_HLEN + 8) /* 8 for CRC + VLAN */
756#define ETH_MIN_PACKET_SIZE 60 757#define ETH_MIN_PACKET_SIZE 60
757#define ETH_MAX_PACKET_SIZE 1500 758#define ETH_MAX_PACKET_SIZE 1500
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index 971576b4368..a8eb3c4a47c 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -59,8 +59,8 @@
59#include "bnx2x.h" 59#include "bnx2x.h"
60#include "bnx2x_init.h" 60#include "bnx2x_init.h"
61 61
62#define DRV_MODULE_VERSION "1.45.17" 62#define DRV_MODULE_VERSION "1.45.21"
63#define DRV_MODULE_RELDATE "2008/08/13" 63#define DRV_MODULE_RELDATE "2008/09/03"
64#define BNX2X_BC_VER 0x040200 64#define BNX2X_BC_VER 0x040200
65 65
66/* Time in jiffies before concluding the transmitter is hung */ 66/* Time in jiffies before concluding the transmitter is hung */
@@ -1027,7 +1027,7 @@ static inline int bnx2x_alloc_rx_skb(struct bnx2x *bp,
1027 if (unlikely(skb == NULL)) 1027 if (unlikely(skb == NULL))
1028 return -ENOMEM; 1028 return -ENOMEM;
1029 1029
1030 mapping = pci_map_single(bp->pdev, skb->data, bp->rx_buf_use_size, 1030 mapping = pci_map_single(bp->pdev, skb->data, bp->rx_buf_size,
1031 PCI_DMA_FROMDEVICE); 1031 PCI_DMA_FROMDEVICE);
1032 if (unlikely(dma_mapping_error(&bp->pdev->dev, mapping))) { 1032 if (unlikely(dma_mapping_error(&bp->pdev->dev, mapping))) {
1033 dev_kfree_skb(skb); 1033 dev_kfree_skb(skb);
@@ -1169,7 +1169,7 @@ static void bnx2x_tpa_start(struct bnx2x_fastpath *fp, u16 queue,
1169 /* move empty skb from pool to prod and map it */ 1169 /* move empty skb from pool to prod and map it */
1170 prod_rx_buf->skb = fp->tpa_pool[queue].skb; 1170 prod_rx_buf->skb = fp->tpa_pool[queue].skb;
1171 mapping = pci_map_single(bp->pdev, fp->tpa_pool[queue].skb->data, 1171 mapping = pci_map_single(bp->pdev, fp->tpa_pool[queue].skb->data,
1172 bp->rx_buf_use_size, PCI_DMA_FROMDEVICE); 1172 bp->rx_buf_size, PCI_DMA_FROMDEVICE);
1173 pci_unmap_addr_set(prod_rx_buf, mapping, mapping); 1173 pci_unmap_addr_set(prod_rx_buf, mapping, mapping);
1174 1174
1175 /* move partial skb from cons to pool (don't unmap yet) */ 1175 /* move partial skb from cons to pool (don't unmap yet) */
@@ -1276,7 +1276,7 @@ static void bnx2x_tpa_stop(struct bnx2x *bp, struct bnx2x_fastpath *fp,
1276 pool entry status to BNX2X_TPA_STOP even if new skb allocation 1276 pool entry status to BNX2X_TPA_STOP even if new skb allocation
1277 fails. */ 1277 fails. */
1278 pci_unmap_single(bp->pdev, pci_unmap_addr(rx_buf, mapping), 1278 pci_unmap_single(bp->pdev, pci_unmap_addr(rx_buf, mapping),
1279 bp->rx_buf_use_size, PCI_DMA_FROMDEVICE); 1279 bp->rx_buf_size, PCI_DMA_FROMDEVICE);
1280 1280
1281 if (likely(new_skb)) { 1281 if (likely(new_skb)) {
1282 /* fix ip xsum and give it to the stack */ 1282 /* fix ip xsum and give it to the stack */
@@ -1520,7 +1520,7 @@ static int bnx2x_rx_int(struct bnx2x_fastpath *fp, int budget)
1520 } else if (bnx2x_alloc_rx_skb(bp, fp, bd_prod) == 0) { 1520 } else if (bnx2x_alloc_rx_skb(bp, fp, bd_prod) == 0) {
1521 pci_unmap_single(bp->pdev, 1521 pci_unmap_single(bp->pdev,
1522 pci_unmap_addr(rx_buf, mapping), 1522 pci_unmap_addr(rx_buf, mapping),
1523 bp->rx_buf_use_size, 1523 bp->rx_buf_size,
1524 PCI_DMA_FROMDEVICE); 1524 PCI_DMA_FROMDEVICE);
1525 skb_reserve(skb, pad); 1525 skb_reserve(skb, pad);
1526 skb_put(skb, len); 1526 skb_put(skb, len);
@@ -1717,8 +1717,8 @@ static int bnx2x_acquire_hw_lock(struct bnx2x *bp, u32 resource)
1717 return -EEXIST; 1717 return -EEXIST;
1718 } 1718 }
1719 1719
1720 /* Try for 1 second every 5ms */ 1720 /* Try for 5 second every 5ms */
1721 for (cnt = 0; cnt < 200; cnt++) { 1721 for (cnt = 0; cnt < 1000; cnt++) {
1722 /* Try to acquire the lock */ 1722 /* Try to acquire the lock */
1723 REG_WR(bp, hw_lock_control_reg + 4, resource_bit); 1723 REG_WR(bp, hw_lock_control_reg + 4, resource_bit);
1724 lock_status = REG_RD(bp, hw_lock_control_reg); 1724 lock_status = REG_RD(bp, hw_lock_control_reg);
@@ -2550,6 +2550,7 @@ static inline void bnx2x_attn_int_deasserted0(struct bnx2x *bp, u32 attn)
2550 BNX2X_ERR("SPIO5 hw attention\n"); 2550 BNX2X_ERR("SPIO5 hw attention\n");
2551 2551
2552 switch (bp->common.board & SHARED_HW_CFG_BOARD_TYPE_MASK) { 2552 switch (bp->common.board & SHARED_HW_CFG_BOARD_TYPE_MASK) {
2553 case SHARED_HW_CFG_BOARD_TYPE_BCM957710A1021G:
2553 case SHARED_HW_CFG_BOARD_TYPE_BCM957710A1022G: 2554 case SHARED_HW_CFG_BOARD_TYPE_BCM957710A1022G:
2554 /* Fan failure attention */ 2555 /* Fan failure attention */
2555 2556
@@ -4228,7 +4229,7 @@ static inline void bnx2x_free_tpa_pool(struct bnx2x *bp,
4228 if (fp->tpa_state[i] == BNX2X_TPA_START) 4229 if (fp->tpa_state[i] == BNX2X_TPA_START)
4229 pci_unmap_single(bp->pdev, 4230 pci_unmap_single(bp->pdev,
4230 pci_unmap_addr(rx_buf, mapping), 4231 pci_unmap_addr(rx_buf, mapping),
4231 bp->rx_buf_use_size, 4232 bp->rx_buf_size,
4232 PCI_DMA_FROMDEVICE); 4233 PCI_DMA_FROMDEVICE);
4233 4234
4234 dev_kfree_skb(skb); 4235 dev_kfree_skb(skb);
@@ -4244,15 +4245,14 @@ static void bnx2x_init_rx_rings(struct bnx2x *bp)
4244 u16 ring_prod, cqe_ring_prod; 4245 u16 ring_prod, cqe_ring_prod;
4245 int i, j; 4246 int i, j;
4246 4247
4247 bp->rx_buf_use_size = bp->dev->mtu; 4248 bp->rx_buf_size = bp->dev->mtu;
4248 bp->rx_buf_use_size += bp->rx_offset + ETH_OVREHEAD; 4249 bp->rx_buf_size += bp->rx_offset + ETH_OVREHEAD +
4249 bp->rx_buf_size = bp->rx_buf_use_size + 64; 4250 BCM_RX_ETH_PAYLOAD_ALIGN;
4250 4251
4251 if (bp->flags & TPA_ENABLE_FLAG) { 4252 if (bp->flags & TPA_ENABLE_FLAG) {
4252 DP(NETIF_MSG_IFUP, 4253 DP(NETIF_MSG_IFUP,
4253 "rx_buf_use_size %d rx_buf_size %d effective_mtu %d\n", 4254 "rx_buf_size %d effective_mtu %d\n",
4254 bp->rx_buf_use_size, bp->rx_buf_size, 4255 bp->rx_buf_size, bp->dev->mtu + ETH_OVREHEAD);
4255 bp->dev->mtu + ETH_OVREHEAD);
4256 4256
4257 for_each_queue(bp, j) { 4257 for_each_queue(bp, j) {
4258 struct bnx2x_fastpath *fp = &bp->fp[j]; 4258 struct bnx2x_fastpath *fp = &bp->fp[j];
@@ -4461,9 +4461,10 @@ static void bnx2x_init_context(struct bnx2x *bp)
4461 context->ustorm_st_context.common.status_block_id = sb_id; 4461 context->ustorm_st_context.common.status_block_id = sb_id;
4462 context->ustorm_st_context.common.flags = 4462 context->ustorm_st_context.common.flags =
4463 USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_MC_ALIGNMENT; 4463 USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_MC_ALIGNMENT;
4464 context->ustorm_st_context.common.mc_alignment_size = 64; 4464 context->ustorm_st_context.common.mc_alignment_size =
4465 BCM_RX_ETH_PAYLOAD_ALIGN;
4465 context->ustorm_st_context.common.bd_buff_size = 4466 context->ustorm_st_context.common.bd_buff_size =
4466 bp->rx_buf_use_size; 4467 bp->rx_buf_size;
4467 context->ustorm_st_context.common.bd_page_base_hi = 4468 context->ustorm_st_context.common.bd_page_base_hi =
4468 U64_HI(fp->rx_desc_mapping); 4469 U64_HI(fp->rx_desc_mapping);
4469 context->ustorm_st_context.common.bd_page_base_lo = 4470 context->ustorm_st_context.common.bd_page_base_lo =
@@ -4605,6 +4606,17 @@ static void bnx2x_init_internal_common(struct bnx2x *bp)
4605{ 4606{
4606 int i; 4607 int i;
4607 4608
4609 if (bp->flags & TPA_ENABLE_FLAG) {
4610 struct tstorm_eth_tpa_exist tpa = {0};
4611
4612 tpa.tpa_exist = 1;
4613
4614 REG_WR(bp, BAR_TSTRORM_INTMEM + TSTORM_TPA_EXIST_OFFSET,
4615 ((u32 *)&tpa)[0]);
4616 REG_WR(bp, BAR_TSTRORM_INTMEM + TSTORM_TPA_EXIST_OFFSET + 4,
4617 ((u32 *)&tpa)[1]);
4618 }
4619
4608 /* Zero this manually as its initialization is 4620 /* Zero this manually as its initialization is
4609 currently missing in the initTool */ 4621 currently missing in the initTool */
4610 for (i = 0; i < (USTORM_AGG_DATA_SIZE >> 2); i++) 4622 for (i = 0; i < (USTORM_AGG_DATA_SIZE >> 2); i++)
@@ -4705,7 +4717,7 @@ static void bnx2x_init_internal_func(struct bnx2x *bp)
4705 } 4717 }
4706 4718
4707 /* Init CQ ring mapping and aggregation size */ 4719 /* Init CQ ring mapping and aggregation size */
4708 max_agg_size = min((u32)(bp->rx_buf_use_size + 4720 max_agg_size = min((u32)(bp->rx_buf_size +
4709 8*BCM_PAGE_SIZE*PAGES_PER_SGE), 4721 8*BCM_PAGE_SIZE*PAGES_PER_SGE),
4710 (u32)0xffff); 4722 (u32)0xffff);
4711 for_each_queue(bp, i) { 4723 for_each_queue(bp, i) {
@@ -5337,6 +5349,7 @@ static int bnx2x_init_common(struct bnx2x *bp)
5337 } 5349 }
5338 5350
5339 switch (bp->common.board & SHARED_HW_CFG_BOARD_TYPE_MASK) { 5351 switch (bp->common.board & SHARED_HW_CFG_BOARD_TYPE_MASK) {
5352 case SHARED_HW_CFG_BOARD_TYPE_BCM957710A1021G:
5340 case SHARED_HW_CFG_BOARD_TYPE_BCM957710A1022G: 5353 case SHARED_HW_CFG_BOARD_TYPE_BCM957710A1022G:
5341 /* Fan failure is indicated by SPIO 5 */ 5354 /* Fan failure is indicated by SPIO 5 */
5342 bnx2x_set_spio(bp, MISC_REGISTERS_SPIO_5, 5355 bnx2x_set_spio(bp, MISC_REGISTERS_SPIO_5,
@@ -5363,17 +5376,6 @@ static int bnx2x_init_common(struct bnx2x *bp)
5363 5376
5364 enable_blocks_attention(bp); 5377 enable_blocks_attention(bp);
5365 5378
5366 if (bp->flags & TPA_ENABLE_FLAG) {
5367 struct tstorm_eth_tpa_exist tmp = {0};
5368
5369 tmp.tpa_exist = 1;
5370
5371 REG_WR(bp, BAR_TSTRORM_INTMEM + TSTORM_TPA_EXIST_OFFSET,
5372 ((u32 *)&tmp)[0]);
5373 REG_WR(bp, BAR_TSTRORM_INTMEM + TSTORM_TPA_EXIST_OFFSET + 4,
5374 ((u32 *)&tmp)[1]);
5375 }
5376
5377 if (!BP_NOMCP(bp)) { 5379 if (!BP_NOMCP(bp)) {
5378 bnx2x_acquire_phy_lock(bp); 5380 bnx2x_acquire_phy_lock(bp);
5379 bnx2x_common_init_phy(bp, bp->common.shmem_base); 5381 bnx2x_common_init_phy(bp, bp->common.shmem_base);
@@ -5531,6 +5533,7 @@ static int bnx2x_init_port(struct bnx2x *bp)
5531 /* Port DMAE comes here */ 5533 /* Port DMAE comes here */
5532 5534
5533 switch (bp->common.board & SHARED_HW_CFG_BOARD_TYPE_MASK) { 5535 switch (bp->common.board & SHARED_HW_CFG_BOARD_TYPE_MASK) {
5536 case SHARED_HW_CFG_BOARD_TYPE_BCM957710A1021G:
5534 case SHARED_HW_CFG_BOARD_TYPE_BCM957710A1022G: 5537 case SHARED_HW_CFG_BOARD_TYPE_BCM957710A1022G:
5535 /* add SPIO 5 to group 0 */ 5538 /* add SPIO 5 to group 0 */
5536 val = REG_RD(bp, MISC_REG_AEU_ENABLE1_FUNC_0_OUT_0); 5539 val = REG_RD(bp, MISC_REG_AEU_ENABLE1_FUNC_0_OUT_0);
@@ -5937,7 +5940,7 @@ static void bnx2x_free_rx_skbs(struct bnx2x *bp)
5937 5940
5938 pci_unmap_single(bp->pdev, 5941 pci_unmap_single(bp->pdev,
5939 pci_unmap_addr(rx_buf, mapping), 5942 pci_unmap_addr(rx_buf, mapping),
5940 bp->rx_buf_use_size, 5943 bp->rx_buf_size,
5941 PCI_DMA_FROMDEVICE); 5944 PCI_DMA_FROMDEVICE);
5942 5945
5943 rx_buf->skb = NULL; 5946 rx_buf->skb = NULL;
@@ -6055,6 +6058,44 @@ static int bnx2x_req_irq(struct bnx2x *bp)
6055 return rc; 6058 return rc;
6056} 6059}
6057 6060
6061static void bnx2x_napi_enable(struct bnx2x *bp)
6062{
6063 int i;
6064
6065 for_each_queue(bp, i)
6066 napi_enable(&bnx2x_fp(bp, i, napi));
6067}
6068
6069static void bnx2x_napi_disable(struct bnx2x *bp)
6070{
6071 int i;
6072
6073 for_each_queue(bp, i)
6074 napi_disable(&bnx2x_fp(bp, i, napi));
6075}
6076
6077static void bnx2x_netif_start(struct bnx2x *bp)
6078{
6079 if (atomic_dec_and_test(&bp->intr_sem)) {
6080 if (netif_running(bp->dev)) {
6081 if (bp->state == BNX2X_STATE_OPEN)
6082 netif_wake_queue(bp->dev);
6083 bnx2x_napi_enable(bp);
6084 bnx2x_int_enable(bp);
6085 }
6086 }
6087}
6088
6089static void bnx2x_netif_stop(struct bnx2x *bp)
6090{
6091 bnx2x_int_disable_sync(bp);
6092 if (netif_running(bp->dev)) {
6093 bnx2x_napi_disable(bp);
6094 netif_tx_disable(bp->dev);
6095 bp->dev->trans_start = jiffies; /* prevent tx timeout */
6096 }
6097}
6098
6058/* 6099/*
6059 * Init service functions 6100 * Init service functions
6060 */ 6101 */
@@ -6338,7 +6379,7 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6338 rc = bnx2x_init_hw(bp, load_code); 6379 rc = bnx2x_init_hw(bp, load_code);
6339 if (rc) { 6380 if (rc) {
6340 BNX2X_ERR("HW init failed, aborting\n"); 6381 BNX2X_ERR("HW init failed, aborting\n");
6341 goto load_error; 6382 goto load_int_disable;
6342 } 6383 }
6343 6384
6344 /* Setup NIC internals and enable interrupts */ 6385 /* Setup NIC internals and enable interrupts */
@@ -6350,7 +6391,7 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6350 if (!load_code) { 6391 if (!load_code) {
6351 BNX2X_ERR("MCP response failure, aborting\n"); 6392 BNX2X_ERR("MCP response failure, aborting\n");
6352 rc = -EBUSY; 6393 rc = -EBUSY;
6353 goto load_int_disable; 6394 goto load_rings_free;
6354 } 6395 }
6355 } 6396 }
6356 6397
@@ -6360,8 +6401,7 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6360 6401
6361 /* Enable Rx interrupt handling before sending the ramrod 6402 /* Enable Rx interrupt handling before sending the ramrod
6362 as it's completed on Rx FP queue */ 6403 as it's completed on Rx FP queue */
6363 for_each_queue(bp, i) 6404 bnx2x_napi_enable(bp);
6364 napi_enable(&bnx2x_fp(bp, i, napi));
6365 6405
6366 /* Enable interrupt handling */ 6406 /* Enable interrupt handling */
6367 atomic_set(&bp->intr_sem, 0); 6407 atomic_set(&bp->intr_sem, 0);
@@ -6369,7 +6409,7 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6369 rc = bnx2x_setup_leading(bp); 6409 rc = bnx2x_setup_leading(bp);
6370 if (rc) { 6410 if (rc) {
6371 BNX2X_ERR("Setup leading failed!\n"); 6411 BNX2X_ERR("Setup leading failed!\n");
6372 goto load_stop_netif; 6412 goto load_netif_stop;
6373 } 6413 }
6374 6414
6375 if (CHIP_IS_E1H(bp)) 6415 if (CHIP_IS_E1H(bp))
@@ -6382,7 +6422,7 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6382 for_each_nondefault_queue(bp, i) { 6422 for_each_nondefault_queue(bp, i) {
6383 rc = bnx2x_setup_multi(bp, i); 6423 rc = bnx2x_setup_multi(bp, i);
6384 if (rc) 6424 if (rc)
6385 goto load_stop_netif; 6425 goto load_netif_stop;
6386 } 6426 }
6387 6427
6388 if (CHIP_IS_E1(bp)) 6428 if (CHIP_IS_E1(bp))
@@ -6427,20 +6467,17 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
6427 6467
6428 return 0; 6468 return 0;
6429 6469
6430load_stop_netif: 6470load_netif_stop:
6471 bnx2x_napi_disable(bp);
6472load_rings_free:
6473 /* Free SKBs, SGEs, TPA pool and driver internals */
6474 bnx2x_free_skbs(bp);
6431 for_each_queue(bp, i) 6475 for_each_queue(bp, i)
6432 napi_disable(&bnx2x_fp(bp, i, napi)); 6476 bnx2x_free_rx_sge_range(bp, bp->fp + i, NUM_RX_SGE);
6433
6434load_int_disable: 6477load_int_disable:
6435 bnx2x_int_disable_sync(bp); 6478 bnx2x_int_disable_sync(bp);
6436
6437 /* Release IRQs */ 6479 /* Release IRQs */
6438 bnx2x_free_irq(bp); 6480 bnx2x_free_irq(bp);
6439
6440 /* Free SKBs, SGEs, TPA pool and driver internals */
6441 bnx2x_free_skbs(bp);
6442 for_each_queue(bp, i)
6443 bnx2x_free_rx_sge_range(bp, bp->fp + i, NUM_RX_SGE);
6444load_error: 6481load_error:
6445 bnx2x_free_mem(bp); 6482 bnx2x_free_mem(bp);
6446 6483
@@ -6455,7 +6492,7 @@ static int bnx2x_stop_multi(struct bnx2x *bp, int index)
6455 6492
6456 /* halt the connection */ 6493 /* halt the connection */
6457 bp->fp[index].state = BNX2X_FP_STATE_HALTING; 6494 bp->fp[index].state = BNX2X_FP_STATE_HALTING;
6458 bnx2x_sp_post(bp, RAMROD_CMD_ID_ETH_HALT, index, 0, 0, 0); 6495 bnx2x_sp_post(bp, RAMROD_CMD_ID_ETH_HALT, index, 0, index, 0);
6459 6496
6460 /* Wait for completion */ 6497 /* Wait for completion */
6461 rc = bnx2x_wait_ramrod(bp, BNX2X_FP_STATE_HALTED, index, 6498 rc = bnx2x_wait_ramrod(bp, BNX2X_FP_STATE_HALTED, index,
@@ -6613,11 +6650,9 @@ static int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode)
6613 bp->rx_mode = BNX2X_RX_MODE_NONE; 6650 bp->rx_mode = BNX2X_RX_MODE_NONE;
6614 bnx2x_set_storm_rx_mode(bp); 6651 bnx2x_set_storm_rx_mode(bp);
6615 6652
6616 if (netif_running(bp->dev)) { 6653 bnx2x_netif_stop(bp);
6617 netif_tx_disable(bp->dev); 6654 if (!netif_running(bp->dev))
6618 bp->dev->trans_start = jiffies; /* prevent tx timeout */ 6655 bnx2x_napi_disable(bp);
6619 }
6620
6621 del_timer_sync(&bp->timer); 6656 del_timer_sync(&bp->timer);
6622 SHMEM_WR(bp, func_mb[BP_FUNC(bp)].drv_pulse_mb, 6657 SHMEM_WR(bp, func_mb[BP_FUNC(bp)].drv_pulse_mb,
6623 (DRV_PULSE_ALWAYS_ALIVE | bp->fw_drv_pulse_wr_seq)); 6658 (DRV_PULSE_ALWAYS_ALIVE | bp->fw_drv_pulse_wr_seq));
@@ -6631,9 +6666,7 @@ static int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode)
6631 smp_rmb(); 6666 smp_rmb();
6632 while (BNX2X_HAS_TX_WORK(fp)) { 6667 while (BNX2X_HAS_TX_WORK(fp)) {
6633 6668
6634 if (!netif_running(bp->dev)) 6669 bnx2x_tx_int(fp, 1000);
6635 bnx2x_tx_int(fp, 1000);
6636
6637 if (!cnt) { 6670 if (!cnt) {
6638 BNX2X_ERR("timeout waiting for queue[%d]\n", 6671 BNX2X_ERR("timeout waiting for queue[%d]\n",
6639 i); 6672 i);
@@ -6649,46 +6682,12 @@ static int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode)
6649 smp_rmb(); 6682 smp_rmb();
6650 } 6683 }
6651 } 6684 }
6652
6653 /* Give HW time to discard old tx messages */ 6685 /* Give HW time to discard old tx messages */
6654 msleep(1); 6686 msleep(1);
6655 6687
6656 for_each_queue(bp, i)
6657 napi_disable(&bnx2x_fp(bp, i, napi));
6658 /* Disable interrupts after Tx and Rx are disabled on stack level */
6659 bnx2x_int_disable_sync(bp);
6660
6661 /* Release IRQs */ 6688 /* Release IRQs */
6662 bnx2x_free_irq(bp); 6689 bnx2x_free_irq(bp);
6663 6690
6664 if (unload_mode == UNLOAD_NORMAL)
6665 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS;
6666
6667 else if (bp->flags & NO_WOL_FLAG) {
6668 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_MCP;
6669 if (CHIP_IS_E1H(bp))
6670 REG_WR(bp, MISC_REG_E1HMF_MODE, 0);
6671
6672 } else if (bp->wol) {
6673 u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0;
6674 u8 *mac_addr = bp->dev->dev_addr;
6675 u32 val;
6676 /* The mac address is written to entries 1-4 to
6677 preserve entry 0 which is used by the PMF */
6678 u8 entry = (BP_E1HVN(bp) + 1)*8;
6679
6680 val = (mac_addr[0] << 8) | mac_addr[1];
6681 EMAC_WR(bp, EMAC_REG_EMAC_MAC_MATCH + entry, val);
6682
6683 val = (mac_addr[2] << 24) | (mac_addr[3] << 16) |
6684 (mac_addr[4] << 8) | mac_addr[5];
6685 EMAC_WR(bp, EMAC_REG_EMAC_MAC_MATCH + entry + 4, val);
6686
6687 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_EN;
6688
6689 } else
6690 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS;
6691
6692 if (CHIP_IS_E1(bp)) { 6691 if (CHIP_IS_E1(bp)) {
6693 struct mac_configuration_cmd *config = 6692 struct mac_configuration_cmd *config =
6694 bnx2x_sp(bp, mcast_config); 6693 bnx2x_sp(bp, mcast_config);
@@ -6711,14 +6710,41 @@ static int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode)
6711 U64_LO(bnx2x_sp_mapping(bp, mcast_config)), 0); 6710 U64_LO(bnx2x_sp_mapping(bp, mcast_config)), 0);
6712 6711
6713 } else { /* E1H */ 6712 } else { /* E1H */
6713 REG_WR(bp, NIG_REG_LLH0_FUNC_EN + port*8, 0);
6714
6714 bnx2x_set_mac_addr_e1h(bp, 0); 6715 bnx2x_set_mac_addr_e1h(bp, 0);
6715 6716
6716 for (i = 0; i < MC_HASH_SIZE; i++) 6717 for (i = 0; i < MC_HASH_SIZE; i++)
6717 REG_WR(bp, MC_HASH_OFFSET(bp, i), 0); 6718 REG_WR(bp, MC_HASH_OFFSET(bp, i), 0);
6718 } 6719 }
6719 6720
6720 if (CHIP_IS_E1H(bp)) 6721 if (unload_mode == UNLOAD_NORMAL)
6721 REG_WR(bp, NIG_REG_LLH0_FUNC_EN + port*8, 0); 6722 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS;
6723
6724 else if (bp->flags & NO_WOL_FLAG) {
6725 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_MCP;
6726 if (CHIP_IS_E1H(bp))
6727 REG_WR(bp, MISC_REG_E1HMF_MODE, 0);
6728
6729 } else if (bp->wol) {
6730 u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0;
6731 u8 *mac_addr = bp->dev->dev_addr;
6732 u32 val;
6733 /* The mac address is written to entries 1-4 to
6734 preserve entry 0 which is used by the PMF */
6735 u8 entry = (BP_E1HVN(bp) + 1)*8;
6736
6737 val = (mac_addr[0] << 8) | mac_addr[1];
6738 EMAC_WR(bp, EMAC_REG_EMAC_MAC_MATCH + entry, val);
6739
6740 val = (mac_addr[2] << 24) | (mac_addr[3] << 16) |
6741 (mac_addr[4] << 8) | mac_addr[5];
6742 EMAC_WR(bp, EMAC_REG_EMAC_MAC_MATCH + entry + 4, val);
6743
6744 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_EN;
6745
6746 } else
6747 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS;
6722 6748
6723 /* Close multi and leading connections 6749 /* Close multi and leading connections
6724 Completions for ramrods are collected in a synchronous way */ 6750 Completions for ramrods are collected in a synchronous way */
@@ -6821,6 +6847,10 @@ static void __devinit bnx2x_undi_unload(struct bnx2x *bp)
6821 */ 6847 */
6822 bnx2x_acquire_hw_lock(bp, HW_LOCK_RESOURCE_UNDI); 6848 bnx2x_acquire_hw_lock(bp, HW_LOCK_RESOURCE_UNDI);
6823 val = REG_RD(bp, DORQ_REG_NORM_CID_OFST); 6849 val = REG_RD(bp, DORQ_REG_NORM_CID_OFST);
6850 if (val == 0x7)
6851 REG_WR(bp, DORQ_REG_NORM_CID_OFST, 0);
6852 bnx2x_release_hw_lock(bp, HW_LOCK_RESOURCE_UNDI);
6853
6824 if (val == 0x7) { 6854 if (val == 0x7) {
6825 u32 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS; 6855 u32 reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_DIS;
6826 /* save our func */ 6856 /* save our func */
@@ -6898,7 +6928,6 @@ static void __devinit bnx2x_undi_unload(struct bnx2x *bp)
6898 (SHMEM_RD(bp, func_mb[bp->func].drv_mb_header) & 6928 (SHMEM_RD(bp, func_mb[bp->func].drv_mb_header) &
6899 DRV_MSG_SEQ_NUMBER_MASK); 6929 DRV_MSG_SEQ_NUMBER_MASK);
6900 } 6930 }
6901 bnx2x_release_hw_lock(bp, HW_LOCK_RESOURCE_UNDI);
6902 } 6931 }
6903} 6932}
6904 6933
@@ -8617,34 +8646,6 @@ test_mem_exit:
8617 return rc; 8646 return rc;
8618} 8647}
8619 8648
8620static void bnx2x_netif_start(struct bnx2x *bp)
8621{
8622 int i;
8623
8624 if (atomic_dec_and_test(&bp->intr_sem)) {
8625 if (netif_running(bp->dev)) {
8626 bnx2x_int_enable(bp);
8627 for_each_queue(bp, i)
8628 napi_enable(&bnx2x_fp(bp, i, napi));
8629 if (bp->state == BNX2X_STATE_OPEN)
8630 netif_wake_queue(bp->dev);
8631 }
8632 }
8633}
8634
8635static void bnx2x_netif_stop(struct bnx2x *bp)
8636{
8637 int i;
8638
8639 if (netif_running(bp->dev)) {
8640 netif_tx_disable(bp->dev);
8641 bp->dev->trans_start = jiffies; /* prevent tx timeout */
8642 for_each_queue(bp, i)
8643 napi_disable(&bnx2x_fp(bp, i, napi));
8644 }
8645 bnx2x_int_disable_sync(bp);
8646}
8647
8648static void bnx2x_wait_for_link(struct bnx2x *bp, u8 link_up) 8649static void bnx2x_wait_for_link(struct bnx2x *bp, u8 link_up)
8649{ 8650{
8650 int cnt = 1000; 8651 int cnt = 1000;
@@ -9250,6 +9251,7 @@ static int bnx2x_poll(struct napi_struct *napi, int budget)
9250 napi); 9251 napi);
9251 struct bnx2x *bp = fp->bp; 9252 struct bnx2x *bp = fp->bp;
9252 int work_done = 0; 9253 int work_done = 0;
9254 u16 rx_cons_sb;
9253 9255
9254#ifdef BNX2X_STOP_ON_ERROR 9256#ifdef BNX2X_STOP_ON_ERROR
9255 if (unlikely(bp->panic)) 9257 if (unlikely(bp->panic))
@@ -9265,10 +9267,16 @@ static int bnx2x_poll(struct napi_struct *napi, int budget)
9265 if (BNX2X_HAS_TX_WORK(fp)) 9267 if (BNX2X_HAS_TX_WORK(fp))
9266 bnx2x_tx_int(fp, budget); 9268 bnx2x_tx_int(fp, budget);
9267 9269
9270 rx_cons_sb = le16_to_cpu(*fp->rx_cons_sb);
9271 if ((rx_cons_sb & MAX_RCQ_DESC_CNT) == MAX_RCQ_DESC_CNT)
9272 rx_cons_sb++;
9268 if (BNX2X_HAS_RX_WORK(fp)) 9273 if (BNX2X_HAS_RX_WORK(fp))
9269 work_done = bnx2x_rx_int(fp, budget); 9274 work_done = bnx2x_rx_int(fp, budget);
9270 9275
9271 rmb(); /* BNX2X_HAS_WORK() reads the status block */ 9276 rmb(); /* BNX2X_HAS_WORK() reads the status block */
9277 rx_cons_sb = le16_to_cpu(*fp->rx_cons_sb);
9278 if ((rx_cons_sb & MAX_RCQ_DESC_CNT) == MAX_RCQ_DESC_CNT)
9279 rx_cons_sb++;
9272 9280
9273 /* must not complete if we consumed full budget */ 9281 /* must not complete if we consumed full budget */
9274 if ((work_done < budget) && !BNX2X_HAS_WORK(fp)) { 9282 if ((work_done < budget) && !BNX2X_HAS_WORK(fp)) {
@@ -9484,8 +9492,7 @@ static int bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev)
9484 fp_index = (smp_processor_id() % bp->num_queues); 9492 fp_index = (smp_processor_id() % bp->num_queues);
9485 fp = &bp->fp[fp_index]; 9493 fp = &bp->fp[fp_index];
9486 9494
9487 if (unlikely(bnx2x_tx_avail(bp->fp) < 9495 if (unlikely(bnx2x_tx_avail(fp) < (skb_shinfo(skb)->nr_frags + 3))) {
9488 (skb_shinfo(skb)->nr_frags + 3))) {
9489 bp->eth_stats.driver_xoff++, 9496 bp->eth_stats.driver_xoff++,
9490 netif_stop_queue(dev); 9497 netif_stop_queue(dev);
9491 BNX2X_ERR("BUG! Tx ring full when queue awake!\n"); 9498 BNX2X_ERR("BUG! Tx ring full when queue awake!\n");
@@ -9548,7 +9555,6 @@ static int bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev)
9548 tx_bd->vlan = cpu_to_le16(pkt_prod); 9555 tx_bd->vlan = cpu_to_le16(pkt_prod);
9549 9556
9550 if (xmit_type) { 9557 if (xmit_type) {
9551
9552 /* turn on parsing and get a BD */ 9558 /* turn on parsing and get a BD */
9553 bd_prod = TX_BD(NEXT_TX_IDX(bd_prod)); 9559 bd_prod = TX_BD(NEXT_TX_IDX(bd_prod));
9554 pbd = (void *)&fp->tx_desc_ring[bd_prod]; 9560 pbd = (void *)&fp->tx_desc_ring[bd_prod];
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 19d32a227be..5cf78d612c4 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -1838,7 +1838,7 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx,
1838 if ((le16_to_cpu(rfd->command) & cb_el) && 1838 if ((le16_to_cpu(rfd->command) & cb_el) &&
1839 (RU_RUNNING == nic->ru_running)) 1839 (RU_RUNNING == nic->ru_running))
1840 1840
1841 if (readb(&nic->csr->scb.status) & rus_no_res) 1841 if (ioread8(&nic->csr->scb.status) & rus_no_res)
1842 nic->ru_running = RU_SUSPENDED; 1842 nic->ru_running = RU_SUSPENDED;
1843 return -ENODATA; 1843 return -ENODATA;
1844 } 1844 }
@@ -1861,7 +1861,7 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx,
1861 if ((le16_to_cpu(rfd->command) & cb_el) && 1861 if ((le16_to_cpu(rfd->command) & cb_el) &&
1862 (RU_RUNNING == nic->ru_running)) { 1862 (RU_RUNNING == nic->ru_running)) {
1863 1863
1864 if (readb(&nic->csr->scb.status) & rus_no_res) 1864 if (ioread8(&nic->csr->scb.status) & rus_no_res)
1865 nic->ru_running = RU_SUSPENDED; 1865 nic->ru_running = RU_SUSPENDED;
1866 } 1866 }
1867 1867
@@ -2738,9 +2738,7 @@ static int __devinit e100_probe(struct pci_dev *pdev,
2738 nic->flags |= wol_magic; 2738 nic->flags |= wol_magic;
2739 2739
2740 /* ack any pending wake events, disable PME */ 2740 /* ack any pending wake events, disable PME */
2741 err = pci_enable_wake(pdev, 0, 0); 2741 pci_pme_active(pdev, false);
2742 if (err)
2743 DPRINTK(PROBE, ERR, "Error clearing wake event\n");
2744 2742
2745 strcpy(netdev->name, "eth%d"); 2743 strcpy(netdev->name, "eth%d");
2746 if((err = register_netdev(netdev))) { 2744 if((err = register_netdev(netdev))) {
diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/e1000/e1000_hw.c
index 9d6edf3e73f..d04eef53571 100644
--- a/drivers/net/e1000/e1000_hw.c
+++ b/drivers/net/e1000/e1000_hw.c
@@ -144,6 +144,8 @@ static s32 e1000_host_if_read_cookie(struct e1000_hw *hw, u8 *buffer);
144static u8 e1000_calculate_mng_checksum(char *buffer, u32 length); 144static u8 e1000_calculate_mng_checksum(char *buffer, u32 length);
145static s32 e1000_configure_kmrn_for_10_100(struct e1000_hw *hw, u16 duplex); 145static s32 e1000_configure_kmrn_for_10_100(struct e1000_hw *hw, u16 duplex);
146static s32 e1000_configure_kmrn_for_1000(struct e1000_hw *hw); 146static s32 e1000_configure_kmrn_for_1000(struct e1000_hw *hw);
147static s32 e1000_do_read_eeprom(struct e1000_hw *hw, u16 offset, u16 words, u16 *data);
148static s32 e1000_do_write_eeprom(struct e1000_hw *hw, u16 offset, u16 words, u16 *data);
147 149
148/* IGP cable length table */ 150/* IGP cable length table */
149static const 151static const
@@ -168,6 +170,8 @@ u16 e1000_igp_2_cable_length_table[IGP02E1000_AGC_LENGTH_TABLE_SIZE] =
168 83, 89, 95, 100, 105, 109, 113, 116, 119, 122, 124, 170 83, 89, 95, 100, 105, 109, 113, 116, 119, 122, 124,
169 104, 109, 114, 118, 121, 124}; 171 104, 109, 114, 118, 121, 124};
170 172
173static DEFINE_SPINLOCK(e1000_eeprom_lock);
174
171/****************************************************************************** 175/******************************************************************************
172 * Set the phy type member in the hw struct. 176 * Set the phy type member in the hw struct.
173 * 177 *
@@ -4904,6 +4908,15 @@ static s32 e1000_spi_eeprom_ready(struct e1000_hw *hw)
4904 *****************************************************************************/ 4908 *****************************************************************************/
4905s32 e1000_read_eeprom(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) 4909s32 e1000_read_eeprom(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
4906{ 4910{
4911 s32 ret;
4912 spin_lock(&e1000_eeprom_lock);
4913 ret = e1000_do_read_eeprom(hw, offset, words, data);
4914 spin_unlock(&e1000_eeprom_lock);
4915 return ret;
4916}
4917
4918static s32 e1000_do_read_eeprom(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
4919{
4907 struct e1000_eeprom_info *eeprom = &hw->eeprom; 4920 struct e1000_eeprom_info *eeprom = &hw->eeprom;
4908 u32 i = 0; 4921 u32 i = 0;
4909 4922
@@ -5236,6 +5249,16 @@ s32 e1000_update_eeprom_checksum(struct e1000_hw *hw)
5236 *****************************************************************************/ 5249 *****************************************************************************/
5237s32 e1000_write_eeprom(struct e1000_hw *hw, u16 offset, u16 words, u16 *data) 5250s32 e1000_write_eeprom(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
5238{ 5251{
5252 s32 ret;
5253 spin_lock(&e1000_eeprom_lock);
5254 ret = e1000_do_write_eeprom(hw, offset, words, data);
5255 spin_unlock(&e1000_eeprom_lock);
5256 return ret;
5257}
5258
5259
5260static s32 e1000_do_write_eeprom(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
5261{
5239 struct e1000_eeprom_info *eeprom = &hw->eeprom; 5262 struct e1000_eeprom_info *eeprom = &hw->eeprom;
5240 s32 status = 0; 5263 s32 status = 0;
5241 5264
diff --git a/drivers/net/e1000/e1000_param.c b/drivers/net/e1000/e1000_param.c
index b9f90a5d3d4..213437d1315 100644
--- a/drivers/net/e1000/e1000_param.c
+++ b/drivers/net/e1000/e1000_param.c
@@ -208,7 +208,7 @@ struct e1000_option {
208 } r; 208 } r;
209 struct { /* list_option info */ 209 struct { /* list_option info */
210 int nr; 210 int nr;
211 struct e1000_opt_list { int i; char *str; } *p; 211 const struct e1000_opt_list { int i; char *str; } *p;
212 } l; 212 } l;
213 } arg; 213 } arg;
214}; 214};
@@ -242,7 +242,7 @@ static int __devinit e1000_validate_option(unsigned int *value,
242 break; 242 break;
243 case list_option: { 243 case list_option: {
244 int i; 244 int i;
245 struct e1000_opt_list *ent; 245 const struct e1000_opt_list *ent;
246 246
247 for (i = 0; i < opt->arg.l.nr; i++) { 247 for (i = 0; i < opt->arg.l.nr; i++) {
248 ent = &opt->arg.l.p[i]; 248 ent = &opt->arg.l.p[i];
@@ -279,7 +279,9 @@ static void e1000_check_copper_options(struct e1000_adapter *adapter);
279 279
280void __devinit e1000_check_options(struct e1000_adapter *adapter) 280void __devinit e1000_check_options(struct e1000_adapter *adapter)
281{ 281{
282 struct e1000_option opt;
282 int bd = adapter->bd_number; 283 int bd = adapter->bd_number;
284
283 if (bd >= E1000_MAX_NIC) { 285 if (bd >= E1000_MAX_NIC) {
284 DPRINTK(PROBE, NOTICE, 286 DPRINTK(PROBE, NOTICE,
285 "Warning: no configuration for board #%i\n", bd); 287 "Warning: no configuration for board #%i\n", bd);
@@ -287,19 +289,21 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
287 } 289 }
288 290
289 { /* Transmit Descriptor Count */ 291 { /* Transmit Descriptor Count */
290 struct e1000_option opt = { 292 struct e1000_tx_ring *tx_ring = adapter->tx_ring;
293 int i;
294 e1000_mac_type mac_type = adapter->hw.mac_type;
295
296 opt = (struct e1000_option) {
291 .type = range_option, 297 .type = range_option,
292 .name = "Transmit Descriptors", 298 .name = "Transmit Descriptors",
293 .err = "using default of " 299 .err = "using default of "
294 __MODULE_STRING(E1000_DEFAULT_TXD), 300 __MODULE_STRING(E1000_DEFAULT_TXD),
295 .def = E1000_DEFAULT_TXD, 301 .def = E1000_DEFAULT_TXD,
296 .arg = { .r = { .min = E1000_MIN_TXD }} 302 .arg = { .r = {
303 .min = E1000_MIN_TXD,
304 .max = mac_type < e1000_82544 ? E1000_MAX_TXD : E1000_MAX_82544_TXD
305 }}
297 }; 306 };
298 struct e1000_tx_ring *tx_ring = adapter->tx_ring;
299 int i;
300 e1000_mac_type mac_type = adapter->hw.mac_type;
301 opt.arg.r.max = mac_type < e1000_82544 ?
302 E1000_MAX_TXD : E1000_MAX_82544_TXD;
303 307
304 if (num_TxDescriptors > bd) { 308 if (num_TxDescriptors > bd) {
305 tx_ring->count = TxDescriptors[bd]; 309 tx_ring->count = TxDescriptors[bd];
@@ -313,19 +317,21 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
313 tx_ring[i].count = tx_ring->count; 317 tx_ring[i].count = tx_ring->count;
314 } 318 }
315 { /* Receive Descriptor Count */ 319 { /* Receive Descriptor Count */
316 struct e1000_option opt = { 320 struct e1000_rx_ring *rx_ring = adapter->rx_ring;
321 int i;
322 e1000_mac_type mac_type = adapter->hw.mac_type;
323
324 opt = (struct e1000_option) {
317 .type = range_option, 325 .type = range_option,
318 .name = "Receive Descriptors", 326 .name = "Receive Descriptors",
319 .err = "using default of " 327 .err = "using default of "
320 __MODULE_STRING(E1000_DEFAULT_RXD), 328 __MODULE_STRING(E1000_DEFAULT_RXD),
321 .def = E1000_DEFAULT_RXD, 329 .def = E1000_DEFAULT_RXD,
322 .arg = { .r = { .min = E1000_MIN_RXD }} 330 .arg = { .r = {
331 .min = E1000_MIN_RXD,
332 .max = mac_type < e1000_82544 ? E1000_MAX_RXD : E1000_MAX_82544_RXD
333 }}
323 }; 334 };
324 struct e1000_rx_ring *rx_ring = adapter->rx_ring;
325 int i;
326 e1000_mac_type mac_type = adapter->hw.mac_type;
327 opt.arg.r.max = mac_type < e1000_82544 ? E1000_MAX_RXD :
328 E1000_MAX_82544_RXD;
329 335
330 if (num_RxDescriptors > bd) { 336 if (num_RxDescriptors > bd) {
331 rx_ring->count = RxDescriptors[bd]; 337 rx_ring->count = RxDescriptors[bd];
@@ -339,7 +345,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
339 rx_ring[i].count = rx_ring->count; 345 rx_ring[i].count = rx_ring->count;
340 } 346 }
341 { /* Checksum Offload Enable/Disable */ 347 { /* Checksum Offload Enable/Disable */
342 struct e1000_option opt = { 348 opt = (struct e1000_option) {
343 .type = enable_option, 349 .type = enable_option,
344 .name = "Checksum Offload", 350 .name = "Checksum Offload",
345 .err = "defaulting to Enabled", 351 .err = "defaulting to Enabled",
@@ -363,7 +369,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
363 { E1000_FC_FULL, "Flow Control Enabled" }, 369 { E1000_FC_FULL, "Flow Control Enabled" },
364 { E1000_FC_DEFAULT, "Flow Control Hardware Default" }}; 370 { E1000_FC_DEFAULT, "Flow Control Hardware Default" }};
365 371
366 struct e1000_option opt = { 372 opt = (struct e1000_option) {
367 .type = list_option, 373 .type = list_option,
368 .name = "Flow Control", 374 .name = "Flow Control",
369 .err = "reading default settings from EEPROM", 375 .err = "reading default settings from EEPROM",
@@ -381,7 +387,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
381 } 387 }
382 } 388 }
383 { /* Transmit Interrupt Delay */ 389 { /* Transmit Interrupt Delay */
384 struct e1000_option opt = { 390 opt = (struct e1000_option) {
385 .type = range_option, 391 .type = range_option,
386 .name = "Transmit Interrupt Delay", 392 .name = "Transmit Interrupt Delay",
387 .err = "using default of " __MODULE_STRING(DEFAULT_TIDV), 393 .err = "using default of " __MODULE_STRING(DEFAULT_TIDV),
@@ -399,7 +405,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
399 } 405 }
400 } 406 }
401 { /* Transmit Absolute Interrupt Delay */ 407 { /* Transmit Absolute Interrupt Delay */
402 struct e1000_option opt = { 408 opt = (struct e1000_option) {
403 .type = range_option, 409 .type = range_option,
404 .name = "Transmit Absolute Interrupt Delay", 410 .name = "Transmit Absolute Interrupt Delay",
405 .err = "using default of " __MODULE_STRING(DEFAULT_TADV), 411 .err = "using default of " __MODULE_STRING(DEFAULT_TADV),
@@ -417,7 +423,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
417 } 423 }
418 } 424 }
419 { /* Receive Interrupt Delay */ 425 { /* Receive Interrupt Delay */
420 struct e1000_option opt = { 426 opt = (struct e1000_option) {
421 .type = range_option, 427 .type = range_option,
422 .name = "Receive Interrupt Delay", 428 .name = "Receive Interrupt Delay",
423 .err = "using default of " __MODULE_STRING(DEFAULT_RDTR), 429 .err = "using default of " __MODULE_STRING(DEFAULT_RDTR),
@@ -435,7 +441,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
435 } 441 }
436 } 442 }
437 { /* Receive Absolute Interrupt Delay */ 443 { /* Receive Absolute Interrupt Delay */
438 struct e1000_option opt = { 444 opt = (struct e1000_option) {
439 .type = range_option, 445 .type = range_option,
440 .name = "Receive Absolute Interrupt Delay", 446 .name = "Receive Absolute Interrupt Delay",
441 .err = "using default of " __MODULE_STRING(DEFAULT_RADV), 447 .err = "using default of " __MODULE_STRING(DEFAULT_RADV),
@@ -453,7 +459,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
453 } 459 }
454 } 460 }
455 { /* Interrupt Throttling Rate */ 461 { /* Interrupt Throttling Rate */
456 struct e1000_option opt = { 462 opt = (struct e1000_option) {
457 .type = range_option, 463 .type = range_option,
458 .name = "Interrupt Throttling Rate (ints/sec)", 464 .name = "Interrupt Throttling Rate (ints/sec)",
459 .err = "using default of " __MODULE_STRING(DEFAULT_ITR), 465 .err = "using default of " __MODULE_STRING(DEFAULT_ITR),
@@ -497,7 +503,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
497 } 503 }
498 } 504 }
499 { /* Smart Power Down */ 505 { /* Smart Power Down */
500 struct e1000_option opt = { 506 opt = (struct e1000_option) {
501 .type = enable_option, 507 .type = enable_option,
502 .name = "PHY Smart Power Down", 508 .name = "PHY Smart Power Down",
503 .err = "defaulting to Disabled", 509 .err = "defaulting to Disabled",
@@ -513,7 +519,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
513 } 519 }
514 } 520 }
515 { /* Kumeran Lock Loss Workaround */ 521 { /* Kumeran Lock Loss Workaround */
516 struct e1000_option opt = { 522 opt = (struct e1000_option) {
517 .type = enable_option, 523 .type = enable_option,
518 .name = "Kumeran Lock Loss Workaround", 524 .name = "Kumeran Lock Loss Workaround",
519 .err = "defaulting to Enabled", 525 .err = "defaulting to Enabled",
@@ -578,16 +584,18 @@ static void __devinit e1000_check_fiber_options(struct e1000_adapter *adapter)
578 584
579static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter) 585static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter)
580{ 586{
587 struct e1000_option opt;
581 unsigned int speed, dplx, an; 588 unsigned int speed, dplx, an;
582 int bd = adapter->bd_number; 589 int bd = adapter->bd_number;
583 590
584 { /* Speed */ 591 { /* Speed */
585 struct e1000_opt_list speed_list[] = {{ 0, "" }, 592 static const struct e1000_opt_list speed_list[] = {
586 { SPEED_10, "" }, 593 { 0, "" },
587 { SPEED_100, "" }, 594 { SPEED_10, "" },
588 { SPEED_1000, "" }}; 595 { SPEED_100, "" },
596 { SPEED_1000, "" }};
589 597
590 struct e1000_option opt = { 598 opt = (struct e1000_option) {
591 .type = list_option, 599 .type = list_option,
592 .name = "Speed", 600 .name = "Speed",
593 .err = "parameter ignored", 601 .err = "parameter ignored",
@@ -604,11 +612,12 @@ static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter)
604 } 612 }
605 } 613 }
606 { /* Duplex */ 614 { /* Duplex */
607 struct e1000_opt_list dplx_list[] = {{ 0, "" }, 615 static const struct e1000_opt_list dplx_list[] = {
608 { HALF_DUPLEX, "" }, 616 { 0, "" },
609 { FULL_DUPLEX, "" }}; 617 { HALF_DUPLEX, "" },
618 { FULL_DUPLEX, "" }};
610 619
611 struct e1000_option opt = { 620 opt = (struct e1000_option) {
612 .type = list_option, 621 .type = list_option,
613 .name = "Duplex", 622 .name = "Duplex",
614 .err = "parameter ignored", 623 .err = "parameter ignored",
@@ -637,7 +646,7 @@ static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter)
637 "parameter ignored\n"); 646 "parameter ignored\n");
638 adapter->hw.autoneg_advertised = AUTONEG_ADV_DEFAULT; 647 adapter->hw.autoneg_advertised = AUTONEG_ADV_DEFAULT;
639 } else { /* Autoneg */ 648 } else { /* Autoneg */
640 struct e1000_opt_list an_list[] = 649 static const struct e1000_opt_list an_list[] =
641 #define AA "AutoNeg advertising " 650 #define AA "AutoNeg advertising "
642 {{ 0x01, AA "10/HD" }, 651 {{ 0x01, AA "10/HD" },
643 { 0x02, AA "10/FD" }, 652 { 0x02, AA "10/FD" },
@@ -671,7 +680,7 @@ static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter)
671 { 0x2e, AA "1000/FD, 100/FD, 100/HD, 10/FD" }, 680 { 0x2e, AA "1000/FD, 100/FD, 100/HD, 10/FD" },
672 { 0x2f, AA "1000/FD, 100/FD, 100/HD, 10/FD, 10/HD" }}; 681 { 0x2f, AA "1000/FD, 100/FD, 100/HD, 10/FD, 10/HD" }};
673 682
674 struct e1000_option opt = { 683 opt = (struct e1000_option) {
675 .type = list_option, 684 .type = list_option,
676 .name = "AutoNeg", 685 .name = "AutoNeg",
677 .err = "parameter ignored", 686 .err = "parameter ignored",
diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h
index ac4e506b4f8..5ea6b60fa37 100644
--- a/drivers/net/e1000e/e1000.h
+++ b/drivers/net/e1000e/e1000.h
@@ -257,7 +257,6 @@ struct e1000_adapter {
257 struct net_device *netdev; 257 struct net_device *netdev;
258 struct pci_dev *pdev; 258 struct pci_dev *pdev;
259 struct net_device_stats net_stats; 259 struct net_device_stats net_stats;
260 spinlock_t stats_lock; /* prevent concurrent stats updates */
261 260
262 /* structs defined in e1000_hw.h */ 261 /* structs defined in e1000_hw.h */
263 struct e1000_hw hw; 262 struct e1000_hw hw;
@@ -284,6 +283,8 @@ struct e1000_adapter {
284 unsigned long led_status; 283 unsigned long led_status;
285 284
286 unsigned int flags; 285 unsigned int flags;
286 struct work_struct downshift_task;
287 struct work_struct update_phy_task;
287}; 288};
288 289
289struct e1000_info { 290struct e1000_info {
@@ -305,6 +306,7 @@ struct e1000_info {
305#define FLAG_HAS_CTRLEXT_ON_LOAD (1 << 5) 306#define FLAG_HAS_CTRLEXT_ON_LOAD (1 << 5)
306#define FLAG_HAS_SWSM_ON_LOAD (1 << 6) 307#define FLAG_HAS_SWSM_ON_LOAD (1 << 6)
307#define FLAG_HAS_JUMBO_FRAMES (1 << 7) 308#define FLAG_HAS_JUMBO_FRAMES (1 << 7)
309#define FLAG_READ_ONLY_NVM (1 << 8)
308#define FLAG_IS_ICH (1 << 9) 310#define FLAG_IS_ICH (1 << 9)
309#define FLAG_HAS_SMART_POWER_DOWN (1 << 11) 311#define FLAG_HAS_SMART_POWER_DOWN (1 << 11)
310#define FLAG_IS_QUAD_PORT_A (1 << 12) 312#define FLAG_IS_QUAD_PORT_A (1 << 12)
@@ -385,6 +387,7 @@ extern bool e1000e_enable_mng_pass_thru(struct e1000_hw *hw);
385extern bool e1000e_get_laa_state_82571(struct e1000_hw *hw); 387extern bool e1000e_get_laa_state_82571(struct e1000_hw *hw);
386extern void e1000e_set_laa_state_82571(struct e1000_hw *hw, bool state); 388extern void e1000e_set_laa_state_82571(struct e1000_hw *hw, bool state);
387 389
390extern void e1000e_write_protect_nvm_ich8lan(struct e1000_hw *hw);
388extern void e1000e_set_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw, 391extern void e1000e_set_kmrn_lock_loss_workaround_ich8lan(struct e1000_hw *hw,
389 bool state); 392 bool state);
390extern void e1000e_igp3_phy_powerdown_workaround_ich8lan(struct e1000_hw *hw); 393extern void e1000e_igp3_phy_powerdown_workaround_ich8lan(struct e1000_hw *hw);
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c
index e21c9e0f373..33a3ff17b5d 100644
--- a/drivers/net/e1000e/ethtool.c
+++ b/drivers/net/e1000e/ethtool.c
@@ -432,6 +432,10 @@ static void e1000_get_regs(struct net_device *netdev,
432 regs_buff[11] = er32(TIDV); 432 regs_buff[11] = er32(TIDV);
433 433
434 regs_buff[12] = adapter->hw.phy.type; /* PHY type (IGP=1, M88=0) */ 434 regs_buff[12] = adapter->hw.phy.type; /* PHY type (IGP=1, M88=0) */
435
436 /* ethtool doesn't use anything past this point, so all this
437 * code is likely legacy junk for apps that may or may not
438 * exist */
435 if (hw->phy.type == e1000_phy_m88) { 439 if (hw->phy.type == e1000_phy_m88) {
436 e1e_rphy(hw, M88E1000_PHY_SPEC_STATUS, &phy_data); 440 e1e_rphy(hw, M88E1000_PHY_SPEC_STATUS, &phy_data);
437 regs_buff[13] = (u32)phy_data; /* cable length */ 441 regs_buff[13] = (u32)phy_data; /* cable length */
@@ -447,7 +451,7 @@ static void e1000_get_regs(struct net_device *netdev,
447 regs_buff[22] = adapter->phy_stats.receive_errors; 451 regs_buff[22] = adapter->phy_stats.receive_errors;
448 regs_buff[23] = regs_buff[13]; /* mdix mode */ 452 regs_buff[23] = regs_buff[13]; /* mdix mode */
449 } 453 }
450 regs_buff[21] = adapter->phy_stats.idle_errors; /* phy idle errors */ 454 regs_buff[21] = 0; /* was idle_errors */
451 e1e_rphy(hw, PHY_1000T_STATUS, &phy_data); 455 e1e_rphy(hw, PHY_1000T_STATUS, &phy_data);
452 regs_buff[24] = (u32)phy_data; /* phy local receiver status */ 456 regs_buff[24] = (u32)phy_data; /* phy local receiver status */
453 regs_buff[25] = regs_buff[24]; /* phy remote receiver status */ 457 regs_buff[25] = regs_buff[24]; /* phy remote receiver status */
@@ -529,6 +533,9 @@ static int e1000_set_eeprom(struct net_device *netdev,
529 if (eeprom->magic != (adapter->pdev->vendor | (adapter->pdev->device << 16))) 533 if (eeprom->magic != (adapter->pdev->vendor | (adapter->pdev->device << 16)))
530 return -EFAULT; 534 return -EFAULT;
531 535
536 if (adapter->flags & FLAG_READ_ONLY_NVM)
537 return -EINVAL;
538
532 max_len = hw->nvm.word_size * 2; 539 max_len = hw->nvm.word_size * 2;
533 540
534 first_word = eeprom->offset >> 1; 541 first_word = eeprom->offset >> 1;
diff --git a/drivers/net/e1000e/ich8lan.c b/drivers/net/e1000e/ich8lan.c
index 9e38452a738..bcd2bc477af 100644
--- a/drivers/net/e1000e/ich8lan.c
+++ b/drivers/net/e1000e/ich8lan.c
@@ -58,6 +58,7 @@
58#define ICH_FLASH_HSFCTL 0x0006 58#define ICH_FLASH_HSFCTL 0x0006
59#define ICH_FLASH_FADDR 0x0008 59#define ICH_FLASH_FADDR 0x0008
60#define ICH_FLASH_FDATA0 0x0010 60#define ICH_FLASH_FDATA0 0x0010
61#define ICH_FLASH_PR0 0x0074
61 62
62#define ICH_FLASH_READ_COMMAND_TIMEOUT 500 63#define ICH_FLASH_READ_COMMAND_TIMEOUT 500
63#define ICH_FLASH_WRITE_COMMAND_TIMEOUT 500 64#define ICH_FLASH_WRITE_COMMAND_TIMEOUT 500
@@ -150,6 +151,19 @@ union ich8_hws_flash_regacc {
150 u16 regval; 151 u16 regval;
151}; 152};
152 153
154/* ICH Flash Protected Region */
155union ich8_flash_protected_range {
156 struct ich8_pr {
157 u32 base:13; /* 0:12 Protected Range Base */
158 u32 reserved1:2; /* 13:14 Reserved */
159 u32 rpe:1; /* 15 Read Protection Enable */
160 u32 limit:13; /* 16:28 Protected Range Limit */
161 u32 reserved2:2; /* 29:30 Reserved */
162 u32 wpe:1; /* 31 Write Protection Enable */
163 } range;
164 u32 regval;
165};
166
153static s32 e1000_setup_link_ich8lan(struct e1000_hw *hw); 167static s32 e1000_setup_link_ich8lan(struct e1000_hw *hw);
154static void e1000_clear_hw_cntrs_ich8lan(struct e1000_hw *hw); 168static void e1000_clear_hw_cntrs_ich8lan(struct e1000_hw *hw);
155static void e1000_initialize_hw_bits_ich8lan(struct e1000_hw *hw); 169static void e1000_initialize_hw_bits_ich8lan(struct e1000_hw *hw);
@@ -366,6 +380,9 @@ static s32 e1000_get_variants_ich8lan(struct e1000_adapter *adapter)
366 return 0; 380 return 0;
367} 381}
368 382
383static DEFINE_MUTEX(nvm_mutex);
384static pid_t nvm_owner = -1;
385
369/** 386/**
370 * e1000_acquire_swflag_ich8lan - Acquire software control flag 387 * e1000_acquire_swflag_ich8lan - Acquire software control flag
371 * @hw: pointer to the HW structure 388 * @hw: pointer to the HW structure
@@ -379,6 +396,15 @@ static s32 e1000_acquire_swflag_ich8lan(struct e1000_hw *hw)
379 u32 extcnf_ctrl; 396 u32 extcnf_ctrl;
380 u32 timeout = PHY_CFG_TIMEOUT; 397 u32 timeout = PHY_CFG_TIMEOUT;
381 398
399 might_sleep();
400
401 if (!mutex_trylock(&nvm_mutex)) {
402 WARN(1, KERN_ERR "e1000e mutex contention. Owned by pid %d\n",
403 nvm_owner);
404 mutex_lock(&nvm_mutex);
405 }
406 nvm_owner = current->pid;
407
382 while (timeout) { 408 while (timeout) {
383 extcnf_ctrl = er32(EXTCNF_CTRL); 409 extcnf_ctrl = er32(EXTCNF_CTRL);
384 extcnf_ctrl |= E1000_EXTCNF_CTRL_SWFLAG; 410 extcnf_ctrl |= E1000_EXTCNF_CTRL_SWFLAG;
@@ -393,6 +419,8 @@ static s32 e1000_acquire_swflag_ich8lan(struct e1000_hw *hw)
393 419
394 if (!timeout) { 420 if (!timeout) {
395 hw_dbg(hw, "FW or HW has locked the resource for too long.\n"); 421 hw_dbg(hw, "FW or HW has locked the resource for too long.\n");
422 nvm_owner = -1;
423 mutex_unlock(&nvm_mutex);
396 return -E1000_ERR_CONFIG; 424 return -E1000_ERR_CONFIG;
397 } 425 }
398 426
@@ -414,6 +442,9 @@ static void e1000_release_swflag_ich8lan(struct e1000_hw *hw)
414 extcnf_ctrl = er32(EXTCNF_CTRL); 442 extcnf_ctrl = er32(EXTCNF_CTRL);
415 extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG; 443 extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG;
416 ew32(EXTCNF_CTRL, extcnf_ctrl); 444 ew32(EXTCNF_CTRL, extcnf_ctrl);
445
446 nvm_owner = -1;
447 mutex_unlock(&nvm_mutex);
417} 448}
418 449
419/** 450/**
@@ -1284,6 +1315,7 @@ static s32 e1000_update_nvm_checksum_ich8lan(struct e1000_hw *hw)
1284 * programming failed. 1315 * programming failed.
1285 */ 1316 */
1286 if (ret_val) { 1317 if (ret_val) {
1318 /* Possibly read-only, see e1000e_write_protect_nvm_ich8lan() */
1287 hw_dbg(hw, "Flash commit failed.\n"); 1319 hw_dbg(hw, "Flash commit failed.\n");
1288 e1000_release_swflag_ich8lan(hw); 1320 e1000_release_swflag_ich8lan(hw);
1289 return ret_val; 1321 return ret_val;
@@ -1374,6 +1406,49 @@ static s32 e1000_validate_nvm_checksum_ich8lan(struct e1000_hw *hw)
1374} 1406}
1375 1407
1376/** 1408/**
1409 * e1000e_write_protect_nvm_ich8lan - Make the NVM read-only
1410 * @hw: pointer to the HW structure
1411 *
1412 * To prevent malicious write/erase of the NVM, set it to be read-only
1413 * so that the hardware ignores all write/erase cycles of the NVM via
1414 * the flash control registers. The shadow-ram copy of the NVM will
1415 * still be updated, however any updates to this copy will not stick
1416 * across driver reloads.
1417 **/
1418void e1000e_write_protect_nvm_ich8lan(struct e1000_hw *hw)
1419{
1420 union ich8_flash_protected_range pr0;
1421 union ich8_hws_flash_status hsfsts;
1422 u32 gfpreg;
1423 s32 ret_val;
1424
1425 ret_val = e1000_acquire_swflag_ich8lan(hw);
1426 if (ret_val)
1427 return;
1428
1429 gfpreg = er32flash(ICH_FLASH_GFPREG);
1430
1431 /* Write-protect GbE Sector of NVM */
1432 pr0.regval = er32flash(ICH_FLASH_PR0);
1433 pr0.range.base = gfpreg & FLASH_GFPREG_BASE_MASK;
1434 pr0.range.limit = ((gfpreg >> 16) & FLASH_GFPREG_BASE_MASK);
1435 pr0.range.wpe = true;
1436 ew32flash(ICH_FLASH_PR0, pr0.regval);
1437
1438 /*
1439 * Lock down a subset of GbE Flash Control Registers, e.g.
1440 * PR0 to prevent the write-protection from being lifted.
1441 * Once FLOCKDN is set, the registers protected by it cannot
1442 * be written until FLOCKDN is cleared by a hardware reset.
1443 */
1444 hsfsts.regval = er16flash(ICH_FLASH_HSFSTS);
1445 hsfsts.hsf_status.flockdn = true;
1446 ew32flash(ICH_FLASH_HSFSTS, hsfsts.regval);
1447
1448 e1000_release_swflag_ich8lan(hw);
1449}
1450
1451/**
1377 * e1000_write_flash_data_ich8lan - Writes bytes to the NVM 1452 * e1000_write_flash_data_ich8lan - Writes bytes to the NVM
1378 * @hw: pointer to the HW structure 1453 * @hw: pointer to the HW structure
1379 * @offset: The offset (in bytes) of the byte/word to read. 1454 * @offset: The offset (in bytes) of the byte/word to read.
@@ -1720,6 +1795,9 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw)
1720 ew32(CTRL, (ctrl | E1000_CTRL_RST)); 1795 ew32(CTRL, (ctrl | E1000_CTRL_RST));
1721 msleep(20); 1796 msleep(20);
1722 1797
1798 /* release the swflag because it is not reset by hardware reset */
1799 e1000_release_swflag_ich8lan(hw);
1800
1723 ret_val = e1000e_get_auto_rd_done(hw); 1801 ret_val = e1000e_get_auto_rd_done(hw);
1724 if (ret_val) { 1802 if (ret_val) {
1725 /* 1803 /*
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index d266510c8a9..b81c4237b5d 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -47,7 +47,7 @@
47 47
48#include "e1000.h" 48#include "e1000.h"
49 49
50#define DRV_VERSION "0.3.3.3-k2" 50#define DRV_VERSION "0.3.3.3-k6"
51char e1000e_driver_name[] = "e1000e"; 51char e1000e_driver_name[] = "e1000e";
52const char e1000e_driver_version[] = DRV_VERSION; 52const char e1000e_driver_version[] = DRV_VERSION;
53 53
@@ -1115,6 +1115,14 @@ static void e1000_clean_rx_ring(struct e1000_adapter *adapter)
1115 writel(0, adapter->hw.hw_addr + rx_ring->tail); 1115 writel(0, adapter->hw.hw_addr + rx_ring->tail);
1116} 1116}
1117 1117
1118static void e1000e_downshift_workaround(struct work_struct *work)
1119{
1120 struct e1000_adapter *adapter = container_of(work,
1121 struct e1000_adapter, downshift_task);
1122
1123 e1000e_gig_downshift_workaround_ich8lan(&adapter->hw);
1124}
1125
1118/** 1126/**
1119 * e1000_intr_msi - Interrupt Handler 1127 * e1000_intr_msi - Interrupt Handler
1120 * @irq: interrupt number 1128 * @irq: interrupt number
@@ -1139,7 +1147,7 @@ static irqreturn_t e1000_intr_msi(int irq, void *data)
1139 */ 1147 */
1140 if ((adapter->flags & FLAG_LSC_GIG_SPEED_DROP) && 1148 if ((adapter->flags & FLAG_LSC_GIG_SPEED_DROP) &&
1141 (!(er32(STATUS) & E1000_STATUS_LU))) 1149 (!(er32(STATUS) & E1000_STATUS_LU)))
1142 e1000e_gig_downshift_workaround_ich8lan(hw); 1150 schedule_work(&adapter->downshift_task);
1143 1151
1144 /* 1152 /*
1145 * 80003ES2LAN workaround-- For packet buffer work-around on 1153 * 80003ES2LAN workaround-- For packet buffer work-around on
@@ -1205,7 +1213,7 @@ static irqreturn_t e1000_intr(int irq, void *data)
1205 */ 1213 */
1206 if ((adapter->flags & FLAG_LSC_GIG_SPEED_DROP) && 1214 if ((adapter->flags & FLAG_LSC_GIG_SPEED_DROP) &&
1207 (!(er32(STATUS) & E1000_STATUS_LU))) 1215 (!(er32(STATUS) & E1000_STATUS_LU)))
1208 e1000e_gig_downshift_workaround_ich8lan(hw); 1216 schedule_work(&adapter->downshift_task);
1209 1217
1210 /* 1218 /*
1211 * 80003ES2LAN workaround-- 1219 * 80003ES2LAN workaround--
@@ -2592,8 +2600,6 @@ static int __devinit e1000_sw_init(struct e1000_adapter *adapter)
2592 /* Explicitly disable IRQ since the NIC can be in any state. */ 2600 /* Explicitly disable IRQ since the NIC can be in any state. */
2593 e1000_irq_disable(adapter); 2601 e1000_irq_disable(adapter);
2594 2602
2595 spin_lock_init(&adapter->stats_lock);
2596
2597 set_bit(__E1000_DOWN, &adapter->state); 2603 set_bit(__E1000_DOWN, &adapter->state);
2598 return 0; 2604 return 0;
2599 2605
@@ -2912,6 +2918,21 @@ static int e1000_set_mac(struct net_device *netdev, void *p)
2912 return 0; 2918 return 0;
2913} 2919}
2914 2920
2921/**
2922 * e1000e_update_phy_task - work thread to update phy
2923 * @work: pointer to our work struct
2924 *
2925 * this worker thread exists because we must acquire a
2926 * semaphore to read the phy, which we could msleep while
2927 * waiting for it, and we can't msleep in a timer.
2928 **/
2929static void e1000e_update_phy_task(struct work_struct *work)
2930{
2931 struct e1000_adapter *adapter = container_of(work,
2932 struct e1000_adapter, update_phy_task);
2933 e1000_get_phy_info(&adapter->hw);
2934}
2935
2915/* 2936/*
2916 * Need to wait a few seconds after link up to get diagnostic information from 2937 * Need to wait a few seconds after link up to get diagnostic information from
2917 * the phy 2938 * the phy
@@ -2919,7 +2940,7 @@ static int e1000_set_mac(struct net_device *netdev, void *p)
2919static void e1000_update_phy_info(unsigned long data) 2940static void e1000_update_phy_info(unsigned long data)
2920{ 2941{
2921 struct e1000_adapter *adapter = (struct e1000_adapter *) data; 2942 struct e1000_adapter *adapter = (struct e1000_adapter *) data;
2922 e1000_get_phy_info(&adapter->hw); 2943 schedule_work(&adapter->update_phy_task);
2923} 2944}
2924 2945
2925/** 2946/**
@@ -2930,10 +2951,6 @@ void e1000e_update_stats(struct e1000_adapter *adapter)
2930{ 2951{
2931 struct e1000_hw *hw = &adapter->hw; 2952 struct e1000_hw *hw = &adapter->hw;
2932 struct pci_dev *pdev = adapter->pdev; 2953 struct pci_dev *pdev = adapter->pdev;
2933 unsigned long irq_flags;
2934 u16 phy_tmp;
2935
2936#define PHY_IDLE_ERROR_COUNT_MASK 0x00FF
2937 2954
2938 /* 2955 /*
2939 * Prevent stats update while adapter is being reset, or if the pci 2956 * Prevent stats update while adapter is being reset, or if the pci
@@ -2944,14 +2961,6 @@ void e1000e_update_stats(struct e1000_adapter *adapter)
2944 if (pci_channel_offline(pdev)) 2961 if (pci_channel_offline(pdev))
2945 return; 2962 return;
2946 2963
2947 spin_lock_irqsave(&adapter->stats_lock, irq_flags);
2948
2949 /*
2950 * these counters are modified from e1000_adjust_tbi_stats,
2951 * called from the interrupt context, so they must only
2952 * be written while holding adapter->stats_lock
2953 */
2954
2955 adapter->stats.crcerrs += er32(CRCERRS); 2964 adapter->stats.crcerrs += er32(CRCERRS);
2956 adapter->stats.gprc += er32(GPRC); 2965 adapter->stats.gprc += er32(GPRC);
2957 adapter->stats.gorc += er32(GORCL); 2966 adapter->stats.gorc += er32(GORCL);
@@ -3022,21 +3031,10 @@ void e1000e_update_stats(struct e1000_adapter *adapter)
3022 3031
3023 /* Tx Dropped needs to be maintained elsewhere */ 3032 /* Tx Dropped needs to be maintained elsewhere */
3024 3033
3025 /* Phy Stats */
3026 if (hw->phy.media_type == e1000_media_type_copper) {
3027 if ((adapter->link_speed == SPEED_1000) &&
3028 (!e1e_rphy(hw, PHY_1000T_STATUS, &phy_tmp))) {
3029 phy_tmp &= PHY_IDLE_ERROR_COUNT_MASK;
3030 adapter->phy_stats.idle_errors += phy_tmp;
3031 }
3032 }
3033
3034 /* Management Stats */ 3034 /* Management Stats */
3035 adapter->stats.mgptc += er32(MGTPTC); 3035 adapter->stats.mgptc += er32(MGTPTC);
3036 adapter->stats.mgprc += er32(MGTPRC); 3036 adapter->stats.mgprc += er32(MGTPRC);
3037 adapter->stats.mgpdc += er32(MGTPDC); 3037 adapter->stats.mgpdc += er32(MGTPDC);
3038
3039 spin_unlock_irqrestore(&adapter->stats_lock, irq_flags);
3040} 3038}
3041 3039
3042/** 3040/**
@@ -3048,10 +3046,6 @@ static void e1000_phy_read_status(struct e1000_adapter *adapter)
3048 struct e1000_hw *hw = &adapter->hw; 3046 struct e1000_hw *hw = &adapter->hw;
3049 struct e1000_phy_regs *phy = &adapter->phy_regs; 3047 struct e1000_phy_regs *phy = &adapter->phy_regs;
3050 int ret_val; 3048 int ret_val;
3051 unsigned long irq_flags;
3052
3053
3054 spin_lock_irqsave(&adapter->stats_lock, irq_flags);
3055 3049
3056 if ((er32(STATUS) & E1000_STATUS_LU) && 3050 if ((er32(STATUS) & E1000_STATUS_LU) &&
3057 (adapter->hw.phy.media_type == e1000_media_type_copper)) { 3051 (adapter->hw.phy.media_type == e1000_media_type_copper)) {
@@ -3082,8 +3076,6 @@ static void e1000_phy_read_status(struct e1000_adapter *adapter)
3082 phy->stat1000 = 0; 3076 phy->stat1000 = 0;
3083 phy->estatus = (ESTATUS_1000_TFULL | ESTATUS_1000_THALF); 3077 phy->estatus = (ESTATUS_1000_TFULL | ESTATUS_1000_THALF);
3084 } 3078 }
3085
3086 spin_unlock_irqrestore(&adapter->stats_lock, irq_flags);
3087} 3079}
3088 3080
3089static void e1000_print_link_info(struct e1000_adapter *adapter) 3081static void e1000_print_link_info(struct e1000_adapter *adapter)
@@ -4467,6 +4459,8 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
4467 4459
4468 adapter->bd_number = cards_found++; 4460 adapter->bd_number = cards_found++;
4469 4461
4462 e1000e_check_options(adapter);
4463
4470 /* setup adapter struct */ 4464 /* setup adapter struct */
4471 err = e1000_sw_init(adapter); 4465 err = e1000_sw_init(adapter);
4472 if (err) 4466 if (err)
@@ -4482,6 +4476,10 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
4482 if (err) 4476 if (err)
4483 goto err_hw_init; 4477 goto err_hw_init;
4484 4478
4479 if ((adapter->flags & FLAG_IS_ICH) &&
4480 (adapter->flags & FLAG_READ_ONLY_NVM))
4481 e1000e_write_protect_nvm_ich8lan(&adapter->hw);
4482
4485 hw->mac.ops.get_bus_info(&adapter->hw); 4483 hw->mac.ops.get_bus_info(&adapter->hw);
4486 4484
4487 adapter->hw.phy.autoneg_wait_to_complete = 0; 4485 adapter->hw.phy.autoneg_wait_to_complete = 0;
@@ -4572,8 +4570,8 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
4572 4570
4573 INIT_WORK(&adapter->reset_task, e1000_reset_task); 4571 INIT_WORK(&adapter->reset_task, e1000_reset_task);
4574 INIT_WORK(&adapter->watchdog_task, e1000_watchdog_task); 4572 INIT_WORK(&adapter->watchdog_task, e1000_watchdog_task);
4575 4573 INIT_WORK(&adapter->downshift_task, e1000e_downshift_workaround);
4576 e1000e_check_options(adapter); 4574 INIT_WORK(&adapter->update_phy_task, e1000e_update_phy_task);
4577 4575
4578 /* Initialize link parameters. User can change them with ethtool */ 4576 /* Initialize link parameters. User can change them with ethtool */
4579 adapter->hw.mac.autoneg = 1; 4577 adapter->hw.mac.autoneg = 1;
diff --git a/drivers/net/e1000e/param.c b/drivers/net/e1000e/param.c
index ed912e023a7..d91dbf7ba43 100644
--- a/drivers/net/e1000e/param.c
+++ b/drivers/net/e1000e/param.c
@@ -133,6 +133,15 @@ E1000_PARAM(SmartPowerDownEnable, "Enable PHY smart power down");
133 */ 133 */
134E1000_PARAM(KumeranLockLoss, "Enable Kumeran lock loss workaround"); 134E1000_PARAM(KumeranLockLoss, "Enable Kumeran lock loss workaround");
135 135
136/*
137 * Write Protect NVM
138 *
139 * Valid Range: 0, 1
140 *
141 * Default Value: 1 (enabled)
142 */
143E1000_PARAM(WriteProtectNVM, "Write-protect NVM [WARNING: disabling this can lead to corrupted NVM]");
144
136struct e1000_option { 145struct e1000_option {
137 enum { enable_option, range_option, list_option } type; 146 enum { enable_option, range_option, list_option } type;
138 const char *name; 147 const char *name;
@@ -388,4 +397,25 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter)
388 opt.def); 397 opt.def);
389 } 398 }
390 } 399 }
400 { /* Write-protect NVM */
401 const struct e1000_option opt = {
402 .type = enable_option,
403 .name = "Write-protect NVM",
404 .err = "defaulting to Enabled",
405 .def = OPTION_ENABLED
406 };
407
408 if (adapter->flags & FLAG_IS_ICH) {
409 if (num_WriteProtectNVM > bd) {
410 unsigned int write_protect_nvm = WriteProtectNVM[bd];
411 e1000_validate_option(&write_protect_nvm, &opt,
412 adapter);
413 if (write_protect_nvm)
414 adapter->flags |= FLAG_READ_ONLY_NVM;
415 } else {
416 if (opt.def)
417 adapter->flags |= FLAG_READ_ONLY_NVM;
418 }
419 }
420 }
391} 421}
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 053971e5fc9..eeb55ed2152 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -5522,7 +5522,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
5522 if (id->driver_data & DEV_HAS_CHECKSUM) { 5522 if (id->driver_data & DEV_HAS_CHECKSUM) {
5523 np->rx_csum = 1; 5523 np->rx_csum = 1;
5524 np->txrxctl_bits |= NVREG_TXRXCTL_RXCHECK; 5524 np->txrxctl_bits |= NVREG_TXRXCTL_RXCHECK;
5525 dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG; 5525 dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
5526 dev->features |= NETIF_F_TSO; 5526 dev->features |= NETIF_F_TSO;
5527 } 5527 }
5528 5528
@@ -5643,6 +5643,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
5643 dev->dev_addr[4] = (np->orig_mac[0] >> 8) & 0xff; 5643 dev->dev_addr[4] = (np->orig_mac[0] >> 8) & 0xff;
5644 dev->dev_addr[5] = (np->orig_mac[0] >> 0) & 0xff; 5644 dev->dev_addr[5] = (np->orig_mac[0] >> 0) & 0xff;
5645 writel(txreg|NVREG_TRANSMITPOLL_MAC_ADDR_REV, base + NvRegTransmitPoll); 5645 writel(txreg|NVREG_TRANSMITPOLL_MAC_ADDR_REV, base + NvRegTransmitPoll);
5646 printk(KERN_DEBUG "nv_probe: set workaround bit for reversed mac addr\n");
5646 } 5647 }
5647 memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len); 5648 memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
5648 5649
@@ -5835,7 +5836,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
5835 5836
5836 dev_printk(KERN_INFO, &pci_dev->dev, "%s%s%s%s%s%s%s%s%s%sdesc-v%u\n", 5837 dev_printk(KERN_INFO, &pci_dev->dev, "%s%s%s%s%s%s%s%s%s%sdesc-v%u\n",
5837 dev->features & NETIF_F_HIGHDMA ? "highdma " : "", 5838 dev->features & NETIF_F_HIGHDMA ? "highdma " : "",
5838 dev->features & (NETIF_F_HW_CSUM | NETIF_F_SG) ? 5839 dev->features & (NETIF_F_IP_CSUM | NETIF_F_SG) ?
5839 "csum " : "", 5840 "csum " : "",
5840 dev->features & (NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX) ? 5841 dev->features & (NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX) ?
5841 "vlan " : "", 5842 "vlan " : "",
@@ -5890,14 +5891,12 @@ static void nv_restore_phy(struct net_device *dev)
5890 } 5891 }
5891} 5892}
5892 5893
5893static void __devexit nv_remove(struct pci_dev *pci_dev) 5894static void nv_restore_mac_addr(struct pci_dev *pci_dev)
5894{ 5895{
5895 struct net_device *dev = pci_get_drvdata(pci_dev); 5896 struct net_device *dev = pci_get_drvdata(pci_dev);
5896 struct fe_priv *np = netdev_priv(dev); 5897 struct fe_priv *np = netdev_priv(dev);
5897 u8 __iomem *base = get_hwbase(dev); 5898 u8 __iomem *base = get_hwbase(dev);
5898 5899
5899 unregister_netdev(dev);
5900
5901 /* special op: write back the misordered MAC address - otherwise 5900 /* special op: write back the misordered MAC address - otherwise
5902 * the next nv_probe would see a wrong address. 5901 * the next nv_probe would see a wrong address.
5903 */ 5902 */
@@ -5905,6 +5904,15 @@ static void __devexit nv_remove(struct pci_dev *pci_dev)
5905 writel(np->orig_mac[1], base + NvRegMacAddrB); 5904 writel(np->orig_mac[1], base + NvRegMacAddrB);
5906 writel(readl(base + NvRegTransmitPoll) & ~NVREG_TRANSMITPOLL_MAC_ADDR_REV, 5905 writel(readl(base + NvRegTransmitPoll) & ~NVREG_TRANSMITPOLL_MAC_ADDR_REV,
5907 base + NvRegTransmitPoll); 5906 base + NvRegTransmitPoll);
5907}
5908
5909static void __devexit nv_remove(struct pci_dev *pci_dev)
5910{
5911 struct net_device *dev = pci_get_drvdata(pci_dev);
5912
5913 unregister_netdev(dev);
5914
5915 nv_restore_mac_addr(pci_dev);
5908 5916
5909 /* restore any phy related changes */ 5917 /* restore any phy related changes */
5910 nv_restore_phy(dev); 5918 nv_restore_phy(dev);
@@ -5975,10 +5983,14 @@ static void nv_shutdown(struct pci_dev *pdev)
5975 if (netif_running(dev)) 5983 if (netif_running(dev))
5976 nv_close(dev); 5984 nv_close(dev);
5977 5985
5978 pci_enable_wake(pdev, PCI_D3hot, np->wolenabled); 5986 nv_restore_mac_addr(pdev);
5979 pci_enable_wake(pdev, PCI_D3cold, np->wolenabled); 5987
5980 pci_disable_device(pdev); 5988 pci_disable_device(pdev);
5981 pci_set_power_state(pdev, PCI_D3hot); 5989 if (system_state == SYSTEM_POWER_OFF) {
5990 if (pci_enable_wake(pdev, PCI_D3cold, np->wolenabled))
5991 pci_enable_wake(pdev, PCI_D3hot, np->wolenabled);
5992 pci_set_power_state(pdev, PCI_D3hot);
5993 }
5982} 5994}
5983#else 5995#else
5984#define nv_suspend NULL 5996#define nv_suspend NULL
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index 9a51ec8293c..9d461825bf4 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -792,6 +792,10 @@ static int fs_enet_open(struct net_device *dev)
792 int r; 792 int r;
793 int err; 793 int err;
794 794
795 /* to initialize the fep->cur_rx,... */
796 /* not doing this, will cause a crash in fs_enet_rx_napi */
797 fs_init_bds(fep->ndev);
798
795 if (fep->fpi->use_napi) 799 if (fep->fpi->use_napi)
796 napi_enable(&fep->napi); 800 napi_enable(&fep->napi);
797 801
@@ -1167,6 +1171,10 @@ static struct of_device_id fs_enet_match[] = {
1167 .compatible = "fsl,cpm1-scc-enet", 1171 .compatible = "fsl,cpm1-scc-enet",
1168 .data = (void *)&fs_scc_ops, 1172 .data = (void *)&fs_scc_ops,
1169 }, 1173 },
1174 {
1175 .compatible = "fsl,cpm2-scc-enet",
1176 .data = (void *)&fs_scc_ops,
1177 },
1170#endif 1178#endif
1171#ifdef CONFIG_FS_ENET_HAS_FCC 1179#ifdef CONFIG_FS_ENET_HAS_FCC
1172 { 1180 {
diff --git a/drivers/net/fs_enet/mac-scc.c b/drivers/net/fs_enet/mac-scc.c
index 029b3c7ef29..22f50dd8b27 100644
--- a/drivers/net/fs_enet/mac-scc.c
+++ b/drivers/net/fs_enet/mac-scc.c
@@ -47,7 +47,6 @@
47#include "fs_enet.h" 47#include "fs_enet.h"
48 48
49/*************************************************/ 49/*************************************************/
50
51#if defined(CONFIG_CPM1) 50#if defined(CONFIG_CPM1)
52/* for a 8xx __raw_xxx's are sufficient */ 51/* for a 8xx __raw_xxx's are sufficient */
53#define __fs_out32(addr, x) __raw_writel(x, addr) 52#define __fs_out32(addr, x) __raw_writel(x, addr)
@@ -62,6 +61,8 @@
62#define __fs_out16(addr, x) out_be16(addr, x) 61#define __fs_out16(addr, x) out_be16(addr, x)
63#define __fs_in32(addr) in_be32(addr) 62#define __fs_in32(addr) in_be32(addr)
64#define __fs_in16(addr) in_be16(addr) 63#define __fs_in16(addr) in_be16(addr)
64#define __fs_out8(addr, x) out_8(addr, x)
65#define __fs_in8(addr) in_8(addr)
65#endif 66#endif
66 67
67/* write, read, set bits, clear bits */ 68/* write, read, set bits, clear bits */
@@ -262,8 +263,13 @@ static void restart(struct net_device *dev)
262 263
263 /* Initialize function code registers for big-endian. 264 /* Initialize function code registers for big-endian.
264 */ 265 */
266#ifndef CONFIG_NOT_COHERENT_CACHE
267 W8(ep, sen_genscc.scc_rfcr, SCC_EB | SCC_GBL);
268 W8(ep, sen_genscc.scc_tfcr, SCC_EB | SCC_GBL);
269#else
265 W8(ep, sen_genscc.scc_rfcr, SCC_EB); 270 W8(ep, sen_genscc.scc_rfcr, SCC_EB);
266 W8(ep, sen_genscc.scc_tfcr, SCC_EB); 271 W8(ep, sen_genscc.scc_tfcr, SCC_EB);
272#endif
267 273
268 /* Set maximum bytes per receive buffer. 274 /* Set maximum bytes per receive buffer.
269 * This appears to be an Ethernet frame size, not the buffer 275 * This appears to be an Ethernet frame size, not the buffer
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 999d6916827..4320a983a58 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -105,6 +105,7 @@ const char gfar_driver_version[] = "1.3";
105 105
106static int gfar_enet_open(struct net_device *dev); 106static int gfar_enet_open(struct net_device *dev);
107static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev); 107static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev);
108static void gfar_reset_task(struct work_struct *work);
108static void gfar_timeout(struct net_device *dev); 109static void gfar_timeout(struct net_device *dev);
109static int gfar_close(struct net_device *dev); 110static int gfar_close(struct net_device *dev);
110struct sk_buff *gfar_new_skb(struct net_device *dev); 111struct sk_buff *gfar_new_skb(struct net_device *dev);
@@ -209,6 +210,7 @@ static int gfar_probe(struct platform_device *pdev)
209 spin_lock_init(&priv->txlock); 210 spin_lock_init(&priv->txlock);
210 spin_lock_init(&priv->rxlock); 211 spin_lock_init(&priv->rxlock);
211 spin_lock_init(&priv->bflock); 212 spin_lock_init(&priv->bflock);
213 INIT_WORK(&priv->reset_task, gfar_reset_task);
212 214
213 platform_set_drvdata(pdev, dev); 215 platform_set_drvdata(pdev, dev);
214 216
@@ -1212,6 +1214,7 @@ static int gfar_close(struct net_device *dev)
1212 1214
1213 napi_disable(&priv->napi); 1215 napi_disable(&priv->napi);
1214 1216
1217 cancel_work_sync(&priv->reset_task);
1215 stop_gfar(dev); 1218 stop_gfar(dev);
1216 1219
1217 /* Disconnect from the PHY */ 1220 /* Disconnect from the PHY */
@@ -1326,13 +1329,16 @@ static int gfar_change_mtu(struct net_device *dev, int new_mtu)
1326 return 0; 1329 return 0;
1327} 1330}
1328 1331
1329/* gfar_timeout gets called when a packet has not been 1332/* gfar_reset_task gets scheduled when a packet has not been
1330 * transmitted after a set amount of time. 1333 * transmitted after a set amount of time.
1331 * For now, assume that clearing out all the structures, and 1334 * For now, assume that clearing out all the structures, and
1332 * starting over will fix the problem. */ 1335 * starting over will fix the problem.
1333static void gfar_timeout(struct net_device *dev) 1336 */
1337static void gfar_reset_task(struct work_struct *work)
1334{ 1338{
1335 dev->stats.tx_errors++; 1339 struct gfar_private *priv = container_of(work, struct gfar_private,
1340 reset_task);
1341 struct net_device *dev = priv->dev;
1336 1342
1337 if (dev->flags & IFF_UP) { 1343 if (dev->flags & IFF_UP) {
1338 stop_gfar(dev); 1344 stop_gfar(dev);
@@ -1342,6 +1348,14 @@ static void gfar_timeout(struct net_device *dev)
1342 netif_tx_schedule_all(dev); 1348 netif_tx_schedule_all(dev);
1343} 1349}
1344 1350
1351static void gfar_timeout(struct net_device *dev)
1352{
1353 struct gfar_private *priv = netdev_priv(dev);
1354
1355 dev->stats.tx_errors++;
1356 schedule_work(&priv->reset_task);
1357}
1358
1345/* Interrupt Handler for Transmit complete */ 1359/* Interrupt Handler for Transmit complete */
1346static int gfar_clean_tx_ring(struct net_device *dev) 1360static int gfar_clean_tx_ring(struct net_device *dev)
1347{ 1361{
diff --git a/drivers/net/gianfar.h b/drivers/net/gianfar.h
index d59df98bd63..f46e9b63af1 100644
--- a/drivers/net/gianfar.h
+++ b/drivers/net/gianfar.h
@@ -756,6 +756,7 @@ struct gfar_private {
756 756
757 uint32_t msg_enable; 757 uint32_t msg_enable;
758 758
759 struct work_struct reset_task;
759 /* Network Statistics */ 760 /* Network Statistics */
760 struct gfar_extra_stats extra_stats; 761 struct gfar_extra_stats extra_stats;
761}; 762};
diff --git a/drivers/net/hp-plus.c b/drivers/net/hp-plus.c
index 8239939554b..fbbd3e660c2 100644
--- a/drivers/net/hp-plus.c
+++ b/drivers/net/hp-plus.c
@@ -139,7 +139,7 @@ static int __init do_hpp_probe(struct net_device *dev)
139#ifndef MODULE 139#ifndef MODULE
140struct net_device * __init hp_plus_probe(int unit) 140struct net_device * __init hp_plus_probe(int unit)
141{ 141{
142 struct net_device *dev = alloc_ei_netdev(); 142 struct net_device *dev = alloc_eip_netdev();
143 int err; 143 int err;
144 144
145 if (!dev) 145 if (!dev)
@@ -284,7 +284,7 @@ hpp_open(struct net_device *dev)
284 int option_reg; 284 int option_reg;
285 int retval; 285 int retval;
286 286
287 if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev))) { 287 if ((retval = request_irq(dev->irq, eip_interrupt, 0, dev->name, dev))) {
288 return retval; 288 return retval;
289 } 289 }
290 290
@@ -302,7 +302,7 @@ hpp_open(struct net_device *dev)
302 /* Select the operational page. */ 302 /* Select the operational page. */
303 outw(Perf_Page, ioaddr + HP_PAGING); 303 outw(Perf_Page, ioaddr + HP_PAGING);
304 304
305 ei_open(dev); 305 eip_open(dev);
306 return 0; 306 return 0;
307} 307}
308 308
@@ -313,7 +313,7 @@ hpp_close(struct net_device *dev)
313 int option_reg = inw(ioaddr + HPP_OPTION); 313 int option_reg = inw(ioaddr + HPP_OPTION);
314 314
315 free_irq(dev->irq, dev); 315 free_irq(dev->irq, dev);
316 ei_close(dev); 316 eip_close(dev);
317 outw((option_reg & ~EnableIRQ) | MemDisable | NICReset | ChipReset, 317 outw((option_reg & ~EnableIRQ) | MemDisable | NICReset | ChipReset,
318 ioaddr + HPP_OPTION); 318 ioaddr + HPP_OPTION);
319 319
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c
index 2e720f26ca8..ccd9d9058f6 100644
--- a/drivers/net/ibm_newemac/core.c
+++ b/drivers/net/ibm_newemac/core.c
@@ -663,9 +663,6 @@ static int emac_configure(struct emac_instance *dev)
663 if (emac_phy_gpcs(dev->phy.mode)) 663 if (emac_phy_gpcs(dev->phy.mode))
664 emac_mii_reset_phy(&dev->phy); 664 emac_mii_reset_phy(&dev->phy);
665 665
666 /* Required for Pause packet support in EMAC */
667 dev_mc_add(ndev, default_mcast_addr, sizeof(default_mcast_addr), 1);
668
669 return 0; 666 return 0;
670} 667}
671 668
@@ -1150,6 +1147,9 @@ static int emac_open(struct net_device *ndev)
1150 } else 1147 } else
1151 netif_carrier_on(dev->ndev); 1148 netif_carrier_on(dev->ndev);
1152 1149
1150 /* Required for Pause packet support in EMAC */
1151 dev_mc_add(ndev, default_mcast_addr, sizeof(default_mcast_addr), 1);
1152
1153 emac_configure(dev); 1153 emac_configure(dev);
1154 mal_poll_add(dev->mal, &dev->commac); 1154 mal_poll_add(dev->mal, &dev->commac);
1155 mal_enable_tx_channel(dev->mal, dev->mal_tx_chan); 1155 mal_enable_tx_channel(dev->mal, dev->mal_tx_chan);
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index a03fe1fb61c..c2d57f83608 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -904,8 +904,6 @@ static int ibmveth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
904 unsigned long data_dma_addr; 904 unsigned long data_dma_addr;
905 905
906 desc.fields.flags_len = IBMVETH_BUF_VALID | skb->len; 906 desc.fields.flags_len = IBMVETH_BUF_VALID | skb->len;
907 data_dma_addr = dma_map_single(&adapter->vdev->dev, skb->data,
908 skb->len, DMA_TO_DEVICE);
909 907
910 if (skb->ip_summed == CHECKSUM_PARTIAL && 908 if (skb->ip_summed == CHECKSUM_PARTIAL &&
911 ip_hdr(skb)->protocol != IPPROTO_TCP && skb_checksum_help(skb)) { 909 ip_hdr(skb)->protocol != IPPROTO_TCP && skb_checksum_help(skb)) {
@@ -924,6 +922,8 @@ static int ibmveth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
924 buf[1] = 0; 922 buf[1] = 0;
925 } 923 }
926 924
925 data_dma_addr = dma_map_single(&adapter->vdev->dev, skb->data,
926 skb->len, DMA_TO_DEVICE);
927 if (dma_mapping_error(&adapter->vdev->dev, data_dma_addr)) { 927 if (dma_mapping_error(&adapter->vdev->dev, data_dma_addr)) {
928 if (!firmware_has_feature(FW_FEATURE_CMO)) 928 if (!firmware_has_feature(FW_FEATURE_CMO))
929 ibmveth_error_printk("tx: unable to map xmit buffer\n"); 929 ibmveth_error_printk("tx: unable to map xmit buffer\n");
@@ -932,6 +932,7 @@ static int ibmveth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
932 desc.fields.address = adapter->bounce_buffer_dma; 932 desc.fields.address = adapter->bounce_buffer_dma;
933 tx_map_failed++; 933 tx_map_failed++;
934 used_bounce = 1; 934 used_bounce = 1;
935 wmb();
935 } else 936 } else
936 desc.fields.address = data_dma_addr; 937 desc.fields.address = data_dma_addr;
937 938
diff --git a/drivers/net/igb/e1000_82575.c b/drivers/net/igb/e1000_82575.c
index bb823acc744..f5e2e7235fc 100644
--- a/drivers/net/igb/e1000_82575.c
+++ b/drivers/net/igb/e1000_82575.c
@@ -87,7 +87,6 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
87 case E1000_DEV_ID_82576: 87 case E1000_DEV_ID_82576:
88 case E1000_DEV_ID_82576_FIBER: 88 case E1000_DEV_ID_82576_FIBER:
89 case E1000_DEV_ID_82576_SERDES: 89 case E1000_DEV_ID_82576_SERDES:
90 case E1000_DEV_ID_82576_QUAD_COPPER:
91 mac->type = e1000_82576; 90 mac->type = e1000_82576;
92 break; 91 break;
93 default: 92 default:
diff --git a/drivers/net/igb/e1000_hw.h b/drivers/net/igb/e1000_hw.h
index a65ccc3095c..99504a600a8 100644
--- a/drivers/net/igb/e1000_hw.h
+++ b/drivers/net/igb/e1000_hw.h
@@ -41,7 +41,6 @@ struct e1000_hw;
41#define E1000_DEV_ID_82576 0x10C9 41#define E1000_DEV_ID_82576 0x10C9
42#define E1000_DEV_ID_82576_FIBER 0x10E6 42#define E1000_DEV_ID_82576_FIBER 0x10E6
43#define E1000_DEV_ID_82576_SERDES 0x10E7 43#define E1000_DEV_ID_82576_SERDES 0x10E7
44#define E1000_DEV_ID_82576_QUAD_COPPER 0x10E8
45#define E1000_DEV_ID_82575EB_COPPER 0x10A7 44#define E1000_DEV_ID_82575EB_COPPER 0x10A7
46#define E1000_DEV_ID_82575EB_FIBER_SERDES 0x10A9 45#define E1000_DEV_ID_82575EB_FIBER_SERDES 0x10A9
47#define E1000_DEV_ID_82575GB_QUAD_COPPER 0x10D6 46#define E1000_DEV_ID_82575GB_QUAD_COPPER 0x10D6
diff --git a/drivers/net/igb/igb_ethtool.c b/drivers/net/igb/igb_ethtool.c
index 11aee130995..58906c984be 100644
--- a/drivers/net/igb/igb_ethtool.c
+++ b/drivers/net/igb/igb_ethtool.c
@@ -373,13 +373,17 @@ static void igb_get_regs(struct net_device *netdev,
373 regs_buff[12] = rd32(E1000_EECD); 373 regs_buff[12] = rd32(E1000_EECD);
374 374
375 /* Interrupt */ 375 /* Interrupt */
376 regs_buff[13] = rd32(E1000_EICR); 376 /* Reading EICS for EICR because they read the
377 * same but EICS does not clear on read */
378 regs_buff[13] = rd32(E1000_EICS);
377 regs_buff[14] = rd32(E1000_EICS); 379 regs_buff[14] = rd32(E1000_EICS);
378 regs_buff[15] = rd32(E1000_EIMS); 380 regs_buff[15] = rd32(E1000_EIMS);
379 regs_buff[16] = rd32(E1000_EIMC); 381 regs_buff[16] = rd32(E1000_EIMC);
380 regs_buff[17] = rd32(E1000_EIAC); 382 regs_buff[17] = rd32(E1000_EIAC);
381 regs_buff[18] = rd32(E1000_EIAM); 383 regs_buff[18] = rd32(E1000_EIAM);
382 regs_buff[19] = rd32(E1000_ICR); 384 /* Reading ICS for ICR because they read the
385 * same but ICS does not clear on read */
386 regs_buff[19] = rd32(E1000_ICS);
383 regs_buff[20] = rd32(E1000_ICS); 387 regs_buff[20] = rd32(E1000_ICS);
384 regs_buff[21] = rd32(E1000_IMS); 388 regs_buff[21] = rd32(E1000_IMS);
385 regs_buff[22] = rd32(E1000_IMC); 389 regs_buff[22] = rd32(E1000_IMC);
@@ -1746,15 +1750,6 @@ static int igb_wol_exclusion(struct igb_adapter *adapter,
1746 /* return success for non excluded adapter ports */ 1750 /* return success for non excluded adapter ports */
1747 retval = 0; 1751 retval = 0;
1748 break; 1752 break;
1749 case E1000_DEV_ID_82576_QUAD_COPPER:
1750 /* quad port adapters only support WoL on port A */
1751 if (!(adapter->flags & IGB_FLAG_QUAD_PORT_A)) {
1752 wol->supported = 0;
1753 break;
1754 }
1755 /* return success for non excluded adapter ports */
1756 retval = 0;
1757 break;
1758 default: 1753 default:
1759 /* dual port cards only support WoL on port A from now on 1754 /* dual port cards only support WoL on port A from now on
1760 * unless it was enabled in the eeprom for port B 1755 * unless it was enabled in the eeprom for port B
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 8f66e15ec8d..634c4c9d87b 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -61,7 +61,6 @@ static struct pci_device_id igb_pci_tbl[] = {
61 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576), board_82575 }, 61 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576), board_82575 },
62 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_FIBER), board_82575 }, 62 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_FIBER), board_82575 },
63 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_SERDES), board_82575 }, 63 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_SERDES), board_82575 },
64 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_QUAD_COPPER), board_82575 },
65 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_COPPER), board_82575 }, 64 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_COPPER), board_82575 },
66 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_FIBER_SERDES), board_82575 }, 65 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_FIBER_SERDES), board_82575 },
67 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575GB_QUAD_COPPER), board_82575 }, 66 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575GB_QUAD_COPPER), board_82575 },
@@ -521,7 +520,7 @@ static void igb_set_interrupt_capability(struct igb_adapter *adapter)
521 adapter->msix_entries, 520 adapter->msix_entries,
522 numvecs); 521 numvecs);
523 if (err == 0) 522 if (err == 0)
524 return; 523 goto out;
525 524
526 igb_reset_interrupt_capability(adapter); 525 igb_reset_interrupt_capability(adapter);
527 526
@@ -531,7 +530,7 @@ msi_only:
531 adapter->num_tx_queues = 1; 530 adapter->num_tx_queues = 1;
532 if (!pci_enable_msi(adapter->pdev)) 531 if (!pci_enable_msi(adapter->pdev))
533 adapter->flags |= IGB_FLAG_HAS_MSI; 532 adapter->flags |= IGB_FLAG_HAS_MSI;
534 533out:
535 /* Notify the stack of the (possibly) reduced Tx Queue count. */ 534 /* Notify the stack of the (possibly) reduced Tx Queue count. */
536 adapter->netdev->real_num_tx_queues = adapter->num_tx_queues; 535 adapter->netdev->real_num_tx_queues = adapter->num_tx_queues;
537 return; 536 return;
@@ -1217,16 +1216,6 @@ static int __devinit igb_probe(struct pci_dev *pdev,
1217 if (rd32(E1000_STATUS) & E1000_STATUS_FUNC_1) 1216 if (rd32(E1000_STATUS) & E1000_STATUS_FUNC_1)
1218 adapter->eeprom_wol = 0; 1217 adapter->eeprom_wol = 0;
1219 break; 1218 break;
1220 case E1000_DEV_ID_82576_QUAD_COPPER:
1221 /* if quad port adapter, disable WoL on all but port A */
1222 if (global_quad_port_a != 0)
1223 adapter->eeprom_wol = 0;
1224 else
1225 adapter->flags |= IGB_FLAG_QUAD_PORT_A;
1226 /* Reset for multiple quad port adapters */
1227 if (++global_quad_port_a == 4)
1228 global_quad_port_a = 0;
1229 break;
1230 } 1219 }
1231 1220
1232 /* initialize the wol settings based on the eeprom settings */ 1221 /* initialize the wol settings based on the eeprom settings */
@@ -2290,7 +2279,9 @@ static void igb_watchdog_task(struct work_struct *work)
2290 struct igb_ring *tx_ring = adapter->tx_ring; 2279 struct igb_ring *tx_ring = adapter->tx_ring;
2291 struct e1000_mac_info *mac = &adapter->hw.mac; 2280 struct e1000_mac_info *mac = &adapter->hw.mac;
2292 u32 link; 2281 u32 link;
2282 u32 eics = 0;
2293 s32 ret_val; 2283 s32 ret_val;
2284 int i;
2294 2285
2295 if ((netif_carrier_ok(netdev)) && 2286 if ((netif_carrier_ok(netdev)) &&
2296 (rd32(E1000_STATUS) & E1000_STATUS_LU)) 2287 (rd32(E1000_STATUS) & E1000_STATUS_LU))
@@ -2392,7 +2383,13 @@ link_up:
2392 } 2383 }
2393 2384
2394 /* Cause software interrupt to ensure rx ring is cleaned */ 2385 /* Cause software interrupt to ensure rx ring is cleaned */
2395 wr32(E1000_ICS, E1000_ICS_RXDMT0); 2386 if (adapter->msix_entries) {
2387 for (i = 0; i < adapter->num_rx_queues; i++)
2388 eics |= adapter->rx_ring[i].eims_value;
2389 wr32(E1000_EICS, eics);
2390 } else {
2391 wr32(E1000_ICS, E1000_ICS_RXDMT0);
2392 }
2396 2393
2397 /* Force detection of hung controller every watchdog period */ 2394 /* Force detection of hung controller every watchdog period */
2398 tx_ring->detect_tx_hung = true; 2395 tx_ring->detect_tx_hung = true;
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 34bca16d48a..a417be7f8be 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -1636,16 +1636,17 @@ static void ixgbe_set_multi(struct net_device *netdev)
1636 struct ixgbe_hw *hw = &adapter->hw; 1636 struct ixgbe_hw *hw = &adapter->hw;
1637 struct dev_mc_list *mc_ptr; 1637 struct dev_mc_list *mc_ptr;
1638 u8 *mta_list; 1638 u8 *mta_list;
1639 u32 fctrl; 1639 u32 fctrl, vlnctrl;
1640 int i; 1640 int i;
1641 1641
1642 /* Check for Promiscuous and All Multicast modes */ 1642 /* Check for Promiscuous and All Multicast modes */
1643 1643
1644 fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL); 1644 fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL);
1645 vlnctrl = IXGBE_READ_REG(hw, IXGBE_VLNCTRL);
1645 1646
1646 if (netdev->flags & IFF_PROMISC) { 1647 if (netdev->flags & IFF_PROMISC) {
1647 fctrl |= (IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE); 1648 fctrl |= (IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE);
1648 fctrl &= ~IXGBE_VLNCTRL_VFE; 1649 vlnctrl &= ~IXGBE_VLNCTRL_VFE;
1649 } else { 1650 } else {
1650 if (netdev->flags & IFF_ALLMULTI) { 1651 if (netdev->flags & IFF_ALLMULTI) {
1651 fctrl |= IXGBE_FCTRL_MPE; 1652 fctrl |= IXGBE_FCTRL_MPE;
@@ -1653,10 +1654,11 @@ static void ixgbe_set_multi(struct net_device *netdev)
1653 } else { 1654 } else {
1654 fctrl &= ~(IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE); 1655 fctrl &= ~(IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE);
1655 } 1656 }
1656 fctrl |= IXGBE_VLNCTRL_VFE; 1657 vlnctrl |= IXGBE_VLNCTRL_VFE;
1657 } 1658 }
1658 1659
1659 IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl); 1660 IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl);
1661 IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl);
1660 1662
1661 if (netdev->mc_count) { 1663 if (netdev->mc_count) {
1662 mta_list = kcalloc(netdev->mc_count, ETH_ALEN, GFP_ATOMIC); 1664 mta_list = kcalloc(netdev->mc_count, ETH_ALEN, GFP_ATOMIC);
@@ -2302,6 +2304,12 @@ static int __devinit ixgbe_set_interrupt_capability(struct ixgbe_adapter
2302 int vector, v_budget; 2304 int vector, v_budget;
2303 2305
2304 /* 2306 /*
2307 * Set the default interrupt throttle rate.
2308 */
2309 adapter->rx_eitr = (1000000 / IXGBE_DEFAULT_ITR_RX_USECS);
2310 adapter->tx_eitr = (1000000 / IXGBE_DEFAULT_ITR_TX_USECS);
2311
2312 /*
2305 * It's easy to be greedy for MSI-X vectors, but it really 2313 * It's easy to be greedy for MSI-X vectors, but it really
2306 * doesn't do us much good if we have a lot more vectors 2314 * doesn't do us much good if we have a lot more vectors
2307 * than CPU's. So let's be conservative and only ask for 2315 * than CPU's. So let's be conservative and only ask for
diff --git a/drivers/net/mlx4/mr.c b/drivers/net/mlx4/mr.c
index 62071d9c4a5..d1dd5b48dbd 100644
--- a/drivers/net/mlx4/mr.c
+++ b/drivers/net/mlx4/mr.c
@@ -67,11 +67,10 @@ struct mlx4_mpt_entry {
67#define MLX4_MPT_FLAG_PHYSICAL (1 << 9) 67#define MLX4_MPT_FLAG_PHYSICAL (1 << 9)
68#define MLX4_MPT_FLAG_REGION (1 << 8) 68#define MLX4_MPT_FLAG_REGION (1 << 8)
69 69
70#define MLX4_MPT_PD_FLAG_FAST_REG (1 << 26) 70#define MLX4_MPT_PD_FLAG_FAST_REG (1 << 27)
71#define MLX4_MPT_PD_FLAG_RAE (1 << 28)
71#define MLX4_MPT_PD_FLAG_EN_INV (3 << 24) 72#define MLX4_MPT_PD_FLAG_EN_INV (3 << 24)
72 73
73#define MLX4_MTT_FLAG_PRESENT 1
74
75#define MLX4_MPT_STATUS_SW 0xF0 74#define MLX4_MPT_STATUS_SW 0xF0
76#define MLX4_MPT_STATUS_HW 0x00 75#define MLX4_MPT_STATUS_HW 0x00
77 76
@@ -348,7 +347,10 @@ int mlx4_mr_enable(struct mlx4_dev *dev, struct mlx4_mr *mr)
348 if (mr->mtt.order >= 0 && mr->mtt.page_shift == 0) { 347 if (mr->mtt.order >= 0 && mr->mtt.page_shift == 0) {
349 /* fast register MR in free state */ 348 /* fast register MR in free state */
350 mpt_entry->flags |= cpu_to_be32(MLX4_MPT_FLAG_FREE); 349 mpt_entry->flags |= cpu_to_be32(MLX4_MPT_FLAG_FREE);
351 mpt_entry->pd_flags |= cpu_to_be32(MLX4_MPT_PD_FLAG_FAST_REG); 350 mpt_entry->pd_flags |= cpu_to_be32(MLX4_MPT_PD_FLAG_FAST_REG |
351 MLX4_MPT_PD_FLAG_RAE);
352 mpt_entry->mtt_sz = cpu_to_be32((1 << mr->mtt.order) *
353 MLX4_MTT_ENTRY_PER_SEG);
352 } else { 354 } else {
353 mpt_entry->flags |= cpu_to_be32(MLX4_MPT_FLAG_SW_OWNS); 355 mpt_entry->flags |= cpu_to_be32(MLX4_MPT_FLAG_SW_OWNS);
354 } 356 }
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 46819af3b06..0a18b9e96da 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -55,7 +55,7 @@
55#include <asm/system.h> 55#include <asm/system.h>
56 56
57static char mv643xx_eth_driver_name[] = "mv643xx_eth"; 57static char mv643xx_eth_driver_name[] = "mv643xx_eth";
58static char mv643xx_eth_driver_version[] = "1.2"; 58static char mv643xx_eth_driver_version[] = "1.3";
59 59
60#define MV643XX_ETH_CHECKSUM_OFFLOAD_TX 60#define MV643XX_ETH_CHECKSUM_OFFLOAD_TX
61#define MV643XX_ETH_NAPI 61#define MV643XX_ETH_NAPI
@@ -474,11 +474,19 @@ static void rxq_refill(struct rx_queue *rxq)
474 /* 474 /*
475 * Reserve 2+14 bytes for an ethernet header (the 475 * Reserve 2+14 bytes for an ethernet header (the
476 * hardware automatically prepends 2 bytes of dummy 476 * hardware automatically prepends 2 bytes of dummy
477 * data to each received packet), 4 bytes for a VLAN 477 * data to each received packet), 16 bytes for up to
478 * header, and 4 bytes for the trailing FCS -- 24 478 * four VLAN tags, and 4 bytes for the trailing FCS
479 * bytes total. 479 * -- 36 bytes total.
480 */ 480 */
481 skb_size = mp->dev->mtu + 24; 481 skb_size = mp->dev->mtu + 36;
482
483 /*
484 * Make sure that the skb size is a multiple of 8
485 * bytes, as the lower three bits of the receive
486 * descriptor's buffer size field are ignored by
487 * the hardware.
488 */
489 skb_size = (skb_size + 7) & ~7;
482 490
483 skb = dev_alloc_skb(skb_size + dma_get_cache_alignment() - 1); 491 skb = dev_alloc_skb(skb_size + dma_get_cache_alignment() - 1);
484 if (skb == NULL) 492 if (skb == NULL)
@@ -509,10 +517,8 @@ static void rxq_refill(struct rx_queue *rxq)
509 skb_reserve(skb, 2); 517 skb_reserve(skb, 2);
510 } 518 }
511 519
512 if (rxq->rx_desc_count != rxq->rx_ring_size) { 520 if (rxq->rx_desc_count != rxq->rx_ring_size)
513 rxq->rx_oom.expires = jiffies + (HZ / 10); 521 mod_timer(&rxq->rx_oom, jiffies + (HZ / 10));
514 add_timer(&rxq->rx_oom);
515 }
516 522
517 spin_unlock_irqrestore(&mp->lock, flags); 523 spin_unlock_irqrestore(&mp->lock, flags);
518} 524}
@@ -529,7 +535,7 @@ static int rxq_process(struct rx_queue *rxq, int budget)
529 int rx; 535 int rx;
530 536
531 rx = 0; 537 rx = 0;
532 while (rx < budget) { 538 while (rx < budget && rxq->rx_desc_count) {
533 struct rx_desc *rx_desc; 539 struct rx_desc *rx_desc;
534 unsigned int cmd_sts; 540 unsigned int cmd_sts;
535 struct sk_buff *skb; 541 struct sk_buff *skb;
@@ -554,7 +560,7 @@ static int rxq_process(struct rx_queue *rxq, int budget)
554 spin_unlock_irqrestore(&mp->lock, flags); 560 spin_unlock_irqrestore(&mp->lock, flags);
555 561
556 dma_unmap_single(NULL, rx_desc->buf_ptr + 2, 562 dma_unmap_single(NULL, rx_desc->buf_ptr + 2,
557 mp->dev->mtu + 24, DMA_FROM_DEVICE); 563 rx_desc->buf_size, DMA_FROM_DEVICE);
558 rxq->rx_desc_count--; 564 rxq->rx_desc_count--;
559 rx++; 565 rx++;
560 566
@@ -636,9 +642,9 @@ static int mv643xx_eth_poll(struct napi_struct *napi, int budget)
636 txq_reclaim(mp->txq + i, 0); 642 txq_reclaim(mp->txq + i, 0);
637 643
638 if (netif_carrier_ok(mp->dev)) { 644 if (netif_carrier_ok(mp->dev)) {
639 spin_lock(&mp->lock); 645 spin_lock_irq(&mp->lock);
640 __txq_maybe_wake(mp->txq + mp->txq_primary); 646 __txq_maybe_wake(mp->txq + mp->txq_primary);
641 spin_unlock(&mp->lock); 647 spin_unlock_irq(&mp->lock);
642 } 648 }
643 } 649 }
644#endif 650#endif
@@ -650,8 +656,6 @@ static int mv643xx_eth_poll(struct napi_struct *napi, int budget)
650 656
651 if (rx < budget) { 657 if (rx < budget) {
652 netif_rx_complete(mp->dev, napi); 658 netif_rx_complete(mp->dev, napi);
653 wrl(mp, INT_CAUSE(mp->port_num), 0);
654 wrl(mp, INT_CAUSE_EXT(mp->port_num), 0);
655 wrl(mp, INT_MASK(mp->port_num), INT_TX_END | INT_RX | INT_EXT); 659 wrl(mp, INT_MASK(mp->port_num), INT_TX_END | INT_RX | INT_EXT);
656 } 660 }
657 661
@@ -1796,6 +1800,7 @@ static irqreturn_t mv643xx_eth_irq(int irq, void *dev_id)
1796 */ 1800 */
1797#ifdef MV643XX_ETH_NAPI 1801#ifdef MV643XX_ETH_NAPI
1798 if (int_cause & INT_RX) { 1802 if (int_cause & INT_RX) {
1803 wrl(mp, INT_CAUSE(mp->port_num), ~(int_cause & INT_RX));
1799 wrl(mp, INT_MASK(mp->port_num), 0x00000000); 1804 wrl(mp, INT_MASK(mp->port_num), 0x00000000);
1800 rdl(mp, INT_MASK(mp->port_num)); 1805 rdl(mp, INT_MASK(mp->port_num));
1801 1806
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index 5d76cd09e24..d6524db321a 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -56,7 +56,6 @@
56#include <linux/ethtool.h> 56#include <linux/ethtool.h>
57#include <linux/firmware.h> 57#include <linux/firmware.h>
58#include <linux/delay.h> 58#include <linux/delay.h>
59#include <linux/version.h>
60#include <linux/timer.h> 59#include <linux/timer.h>
61#include <linux/vmalloc.h> 60#include <linux/vmalloc.h>
62#include <linux/crc32.h> 61#include <linux/crc32.h>
@@ -76,7 +75,7 @@
76#include "myri10ge_mcp.h" 75#include "myri10ge_mcp.h"
77#include "myri10ge_mcp_gen_header.h" 76#include "myri10ge_mcp_gen_header.h"
78 77
79#define MYRI10GE_VERSION_STR "1.3.99-1.347" 78#define MYRI10GE_VERSION_STR "1.4.3-1.358"
80 79
81MODULE_DESCRIPTION("Myricom 10G driver (10GbE)"); 80MODULE_DESCRIPTION("Myricom 10G driver (10GbE)");
82MODULE_AUTHOR("Maintainer: help@myri.com"); 81MODULE_AUTHOR("Maintainer: help@myri.com");
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h
index ab871df6b1d..244ab49c433 100644
--- a/drivers/net/netxen/netxen_nic.h
+++ b/drivers/net/netxen/netxen_nic.h
@@ -45,7 +45,6 @@
45#include <linux/in.h> 45#include <linux/in.h>
46#include <linux/tcp.h> 46#include <linux/tcp.h>
47#include <linux/skbuff.h> 47#include <linux/skbuff.h>
48#include <linux/version.h>
49 48
50#include <linux/ethtool.h> 49#include <linux/ethtool.h>
51#include <linux/mii.h> 50#include <linux/mii.h>
diff --git a/drivers/net/netxen/netxen_nic_ethtool.c b/drivers/net/netxen/netxen_nic_ethtool.c
index 4ad3e0844b9..b974ca0fc53 100644
--- a/drivers/net/netxen/netxen_nic_ethtool.c
+++ b/drivers/net/netxen/netxen_nic_ethtool.c
@@ -38,7 +38,6 @@
38#include <asm/io.h> 38#include <asm/io.h>
39#include <linux/netdevice.h> 39#include <linux/netdevice.h>
40#include <linux/ethtool.h> 40#include <linux/ethtool.h>
41#include <linux/version.h>
42 41
43#include "netxen_nic.h" 42#include "netxen_nic.h"
44#include "netxen_nic_hw.h" 43#include "netxen_nic_hw.h"
diff --git a/drivers/net/netxen/netxen_nic_hdr.h b/drivers/net/netxen/netxen_nic_hdr.h
index e8e8d73f6ed..e80f9e3e597 100644
--- a/drivers/net/netxen/netxen_nic_hdr.h
+++ b/drivers/net/netxen/netxen_nic_hdr.h
@@ -32,8 +32,6 @@
32 32
33#include <linux/module.h> 33#include <linux/module.h>
34#include <linux/kernel.h> 34#include <linux/kernel.h>
35#include <linux/version.h>
36
37#include <linux/spinlock.h> 35#include <linux/spinlock.h>
38#include <asm/irq.h> 36#include <asm/irq.h>
39#include <linux/init.h> 37#include <linux/init.h>
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index 32bb47adbe3..008fd6618a5 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -359,16 +359,6 @@ static void netxen_pcie_strap_init(struct netxen_adapter *adapter)
359 int i, pos; 359 int i, pos;
360 struct pci_dev *pdev; 360 struct pci_dev *pdev;
361 361
362 pdev = pci_get_device(0x1166, 0x0140, NULL);
363 if (pdev) {
364 pci_dev_put(pdev);
365 adapter->hw_read_wx(adapter,
366 NETXEN_PCIE_REG(PCIE_TGT_SPLIT_CHICKEN), &chicken, 4);
367 chicken |= 0x4000;
368 adapter->hw_write_wx(adapter,
369 NETXEN_PCIE_REG(PCIE_TGT_SPLIT_CHICKEN), &chicken, 4);
370 }
371
372 pdev = adapter->pdev; 362 pdev = adapter->pdev;
373 363
374 adapter->hw_read_wx(adapter, 364 adapter->hw_read_wx(adapter,
diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index e4765b713ab..e3be81eba8a 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -5984,6 +5984,56 @@ static void niu_netif_start(struct niu *np)
5984 niu_enable_interrupts(np, 1); 5984 niu_enable_interrupts(np, 1);
5985} 5985}
5986 5986
5987static void niu_reset_buffers(struct niu *np)
5988{
5989 int i, j, k, err;
5990
5991 if (np->rx_rings) {
5992 for (i = 0; i < np->num_rx_rings; i++) {
5993 struct rx_ring_info *rp = &np->rx_rings[i];
5994
5995 for (j = 0, k = 0; j < MAX_RBR_RING_SIZE; j++) {
5996 struct page *page;
5997
5998 page = rp->rxhash[j];
5999 while (page) {
6000 struct page *next =
6001 (struct page *) page->mapping;
6002 u64 base = page->index;
6003 base = base >> RBR_DESCR_ADDR_SHIFT;
6004 rp->rbr[k++] = cpu_to_le32(base);
6005 page = next;
6006 }
6007 }
6008 for (; k < MAX_RBR_RING_SIZE; k++) {
6009 err = niu_rbr_add_page(np, rp, GFP_ATOMIC, k);
6010 if (unlikely(err))
6011 break;
6012 }
6013
6014 rp->rbr_index = rp->rbr_table_size - 1;
6015 rp->rcr_index = 0;
6016 rp->rbr_pending = 0;
6017 rp->rbr_refill_pending = 0;
6018 }
6019 }
6020 if (np->tx_rings) {
6021 for (i = 0; i < np->num_tx_rings; i++) {
6022 struct tx_ring_info *rp = &np->tx_rings[i];
6023
6024 for (j = 0; j < MAX_TX_RING_SIZE; j++) {
6025 if (rp->tx_buffs[j].skb)
6026 (void) release_tx_packet(np, rp, j);
6027 }
6028
6029 rp->pending = MAX_TX_RING_SIZE;
6030 rp->prod = 0;
6031 rp->cons = 0;
6032 rp->wrap_bit = 0;
6033 }
6034 }
6035}
6036
5987static void niu_reset_task(struct work_struct *work) 6037static void niu_reset_task(struct work_struct *work)
5988{ 6038{
5989 struct niu *np = container_of(work, struct niu, reset_task); 6039 struct niu *np = container_of(work, struct niu, reset_task);
@@ -6006,6 +6056,12 @@ static void niu_reset_task(struct work_struct *work)
6006 6056
6007 niu_stop_hw(np); 6057 niu_stop_hw(np);
6008 6058
6059 spin_unlock_irqrestore(&np->lock, flags);
6060
6061 niu_reset_buffers(np);
6062
6063 spin_lock_irqsave(&np->lock, flags);
6064
6009 err = niu_init_hw(np); 6065 err = niu_init_hw(np);
6010 if (!err) { 6066 if (!err) {
6011 np->timer.expires = jiffies + HZ; 6067 np->timer.expires = jiffies + HZ;
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index 3f682d49a4e..52bf11b73c6 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -784,6 +784,7 @@ static struct pcmcia_device_id axnet_ids[] = {
784 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FEther PCC-TXD", 0x5261440f, 0x436768c5), 784 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FEther PCC-TXD", 0x5261440f, 0x436768c5),
785 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FEtherII PCC-TXD", 0x5261440f, 0x730df72e), 785 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FEtherII PCC-TXD", 0x5261440f, 0x730df72e),
786 PCMCIA_DEVICE_PROD_ID12("Dynalink", "L100C16", 0x55632fd5, 0x66bc2a90), 786 PCMCIA_DEVICE_PROD_ID12("Dynalink", "L100C16", 0x55632fd5, 0x66bc2a90),
787 PCMCIA_DEVICE_PROD_ID12("IO DATA", "ETXPCM", 0x547e66dc, 0x233adac2),
787 PCMCIA_DEVICE_PROD_ID12("Linksys", "EtherFast 10/100 PC Card (PCMPC100 V3)", 0x0733cc81, 0x232019a8), 788 PCMCIA_DEVICE_PROD_ID12("Linksys", "EtherFast 10/100 PC Card (PCMPC100 V3)", 0x0733cc81, 0x232019a8),
788 PCMCIA_DEVICE_PROD_ID12("MELCO", "LPC3-TX", 0x481e0094, 0xf91af609), 789 PCMCIA_DEVICE_PROD_ID12("MELCO", "LPC3-TX", 0x481e0094, 0xf91af609),
789 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "100BASE", 0x281f1c5d, 0x7c2add04), 790 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "100BASE", 0x281f1c5d, 0x7c2add04),
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index 2d4c4ad89b8..ebc1ae6bcbe 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -1626,6 +1626,7 @@ static struct pcmcia_device_id pcnet_ids[] = {
1626 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega EtherII PCC-TD", 0x5261440f, 0xc49bd73d), 1626 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega EtherII PCC-TD", 0x5261440f, 0xc49bd73d),
1627 PCMCIA_DEVICE_PROD_ID12("Corega K.K.", "corega EtherII PCC-TD", 0xd4fdcbd8, 0xc49bd73d), 1627 PCMCIA_DEVICE_PROD_ID12("Corega K.K.", "corega EtherII PCC-TD", 0xd4fdcbd8, 0xc49bd73d),
1628 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega Ether PCC-T", 0x5261440f, 0x6705fcaa), 1628 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega Ether PCC-T", 0x5261440f, 0x6705fcaa),
1629 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega Ether PCC-TD", 0x5261440f, 0x47d5ca83),
1629 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FastEther PCC-TX", 0x5261440f, 0x485e85d9), 1630 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FastEther PCC-TX", 0x5261440f, 0x485e85d9),
1630 PCMCIA_DEVICE_PROD_ID12("Corega,K.K.", "Ethernet LAN Card", 0x110d26d9, 0x9fd2f0a2), 1631 PCMCIA_DEVICE_PROD_ID12("Corega,K.K.", "Ethernet LAN Card", 0x110d26d9, 0x9fd2f0a2),
1631 PCMCIA_DEVICE_PROD_ID12("corega,K.K.", "Ethernet LAN Card", 0x9791a90e, 0x9fd2f0a2), 1632 PCMCIA_DEVICE_PROD_ID12("corega,K.K.", "Ethernet LAN Card", 0x9791a90e, 0x9fd2f0a2),
@@ -1737,7 +1738,6 @@ static struct pcmcia_device_id pcnet_ids[] = {
1737 PCMCIA_DEVICE_PROD_ID1("CyQ've 10 Base-T LAN CARD", 0x94faf360), 1738 PCMCIA_DEVICE_PROD_ID1("CyQ've 10 Base-T LAN CARD", 0x94faf360),
1738 PCMCIA_DEVICE_PROD_ID1("EP-210 PCMCIA LAN CARD.", 0x8850b4de), 1739 PCMCIA_DEVICE_PROD_ID1("EP-210 PCMCIA LAN CARD.", 0x8850b4de),
1739 PCMCIA_DEVICE_PROD_ID1("ETHER-C16", 0x06a8514f), 1740 PCMCIA_DEVICE_PROD_ID1("ETHER-C16", 0x06a8514f),
1740 PCMCIA_DEVICE_PROD_ID1("IC-CARD", 0x60cb09a6),
1741 PCMCIA_DEVICE_PROD_ID1("NE2000 Compatible", 0x75b8ad5a), 1741 PCMCIA_DEVICE_PROD_ID1("NE2000 Compatible", 0x75b8ad5a),
1742 PCMCIA_DEVICE_PROD_ID2("EN-6200P2", 0xa996d078), 1742 PCMCIA_DEVICE_PROD_ID2("EN-6200P2", 0xa996d078),
1743 /* too generic! */ 1743 /* too generic! */
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index a3e3895e503..0f6f9747d25 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -2792,7 +2792,7 @@ static int rtl8169_rx_interrupt(struct net_device *dev,
2792 pkt_size, PCI_DMA_FROMDEVICE); 2792 pkt_size, PCI_DMA_FROMDEVICE);
2793 rtl8169_mark_to_asic(desc, tp->rx_buf_sz); 2793 rtl8169_mark_to_asic(desc, tp->rx_buf_sz);
2794 } else { 2794 } else {
2795 pci_unmap_single(pdev, addr, pkt_size, 2795 pci_unmap_single(pdev, addr, tp->rx_buf_sz,
2796 PCI_DMA_FROMDEVICE); 2796 PCI_DMA_FROMDEVICE);
2797 tp->Rx_skbuff[entry] = NULL; 2797 tp->Rx_skbuff[entry] = NULL;
2798 } 2798 }
diff --git a/drivers/net/skfp/ess.c b/drivers/net/skfp/ess.c
index 889f9872461..a85efcfd9d0 100644
--- a/drivers/net/skfp/ess.c
+++ b/drivers/net/skfp/ess.c
@@ -510,7 +510,7 @@ static void ess_send_response(struct s_smc *smc, struct smt_header *sm,
510 chg->path.para.p_type = SMT_P320B ; 510 chg->path.para.p_type = SMT_P320B ;
511 chg->path.para.p_len = sizeof(struct smt_p_320b) - PARA_LEN ; 511 chg->path.para.p_len = sizeof(struct smt_p_320b) - PARA_LEN ;
512 chg->path.mib_index = SBAPATHINDEX ; 512 chg->path.mib_index = SBAPATHINDEX ;
513 chg->path.path_pad = (u_short)NULL ; 513 chg->path.path_pad = 0;
514 chg->path.path_index = PRIMARY_RING ; 514 chg->path.path_index = PRIMARY_RING ;
515 515
516 /* set P320F */ 516 /* set P320F */
@@ -606,7 +606,7 @@ static void ess_send_alc_req(struct s_smc *smc)
606 req->path.para.p_type = SMT_P320B ; 606 req->path.para.p_type = SMT_P320B ;
607 req->path.para.p_len = sizeof(struct smt_p_320b) - PARA_LEN ; 607 req->path.para.p_len = sizeof(struct smt_p_320b) - PARA_LEN ;
608 req->path.mib_index = SBAPATHINDEX ; 608 req->path.mib_index = SBAPATHINDEX ;
609 req->path.path_pad = (u_short)NULL ; 609 req->path.path_pad = 0;
610 req->path.path_index = PRIMARY_RING ; 610 req->path.path_index = PRIMARY_RING ;
611 611
612 /* set P0017 */ 612 /* set P0017 */
@@ -636,7 +636,7 @@ static void ess_send_alc_req(struct s_smc *smc)
636 /* set P19 */ 636 /* set P19 */
637 req->a_addr.para.p_type = SMT_P0019 ; 637 req->a_addr.para.p_type = SMT_P0019 ;
638 req->a_addr.para.p_len = sizeof(struct smt_p_0019) - PARA_LEN ; 638 req->a_addr.para.p_len = sizeof(struct smt_p_0019) - PARA_LEN ;
639 req->a_addr.sba_pad = (u_short)NULL ; 639 req->a_addr.sba_pad = 0;
640 req->a_addr.alloc_addr = null_addr ; 640 req->a_addr.alloc_addr = null_addr ;
641 641
642 /* set P1A */ 642 /* set P1A */
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index 2040965d772..24768c10cad 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -2255,7 +2255,7 @@ static int smc_drv_remove(struct platform_device *pdev)
2255 2255
2256 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-regs"); 2256 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-regs");
2257 if (!res) 2257 if (!res)
2258 platform_get_resource(pdev, IORESOURCE_MEM, 0); 2258 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
2259 release_mem_region(res->start, SMC_IO_EXTENT); 2259 release_mem_region(res->start, SMC_IO_EXTENT);
2260 2260
2261 free_netdev(ndev); 2261 free_netdev(ndev);
diff --git a/drivers/net/tokenring/lanstreamer.c b/drivers/net/tokenring/lanstreamer.c
index 47d84cd2809..59d1673f938 100644
--- a/drivers/net/tokenring/lanstreamer.c
+++ b/drivers/net/tokenring/lanstreamer.c
@@ -119,7 +119,6 @@
119#include <linux/pci.h> 119#include <linux/pci.h>
120#include <linux/dma-mapping.h> 120#include <linux/dma-mapping.h>
121#include <linux/spinlock.h> 121#include <linux/spinlock.h>
122#include <linux/version.h>
123#include <linux/bitops.h> 122#include <linux/bitops.h>
124#include <linux/jiffies.h> 123#include <linux/jiffies.h>
125 124
diff --git a/drivers/net/tokenring/lanstreamer.h b/drivers/net/tokenring/lanstreamer.h
index e7bb3494afc..13ccee6449c 100644
--- a/drivers/net/tokenring/lanstreamer.h
+++ b/drivers/net/tokenring/lanstreamer.h
@@ -60,8 +60,6 @@
60 * 60 *
61 */ 61 */
62 62
63#include <linux/version.h>
64
65/* MAX_INTR - the maximum number of times we can loop 63/* MAX_INTR - the maximum number of times we can loop
66 * inside the interrupt function before returning 64 * inside the interrupt function before returning
67 * control to the OS (maximum value is 256) 65 * control to the OS (maximum value is 256)
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index 1b7cac77159..6e42b5a8c22 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -397,7 +397,7 @@ static const struct usb_device_id hso_ids[] = {
397 {default_port_device(0x0af0, 0xc031)}, /* Icon-Edge */ 397 {default_port_device(0x0af0, 0xc031)}, /* Icon-Edge */
398 {icon321_port_device(0x0af0, 0xd013)}, /* Module HSxPA */ 398 {icon321_port_device(0x0af0, 0xd013)}, /* Module HSxPA */
399 {icon321_port_device(0x0af0, 0xd031)}, /* Icon-321 */ 399 {icon321_port_device(0x0af0, 0xd031)}, /* Icon-321 */
400 {default_port_device(0x0af0, 0xd033)}, /* Icon-322 */ 400 {icon321_port_device(0x0af0, 0xd033)}, /* Icon-322 */
401 {USB_DEVICE(0x0af0, 0x7301)}, /* GE40x */ 401 {USB_DEVICE(0x0af0, 0x7301)}, /* GE40x */
402 {USB_DEVICE(0x0af0, 0x7361)}, /* GE40x */ 402 {USB_DEVICE(0x0af0, 0x7361)}, /* GE40x */
403 {USB_DEVICE(0x0af0, 0x7401)}, /* GI 0401 */ 403 {USB_DEVICE(0x0af0, 0x7401)}, /* GI 0401 */
@@ -2613,6 +2613,7 @@ static int hso_resume(struct usb_interface *iface)
2613 "Transmitting lingering data\n"); 2613 "Transmitting lingering data\n");
2614 hso_net_start_xmit(hso_net->skb_tx_buf, 2614 hso_net_start_xmit(hso_net->skb_tx_buf,
2615 hso_net->net); 2615 hso_net->net);
2616 hso_net->skb_tx_buf = NULL;
2616 } 2617 }
2617 result = hso_start_net_device(network_table[i]); 2618 result = hso_start_net_device(network_table[i]);
2618 if (result) 2619 if (result)
diff --git a/drivers/net/usb/mcs7830.c b/drivers/net/usb/mcs7830.c
index c3d119f997f..ca9d00c1194 100644
--- a/drivers/net/usb/mcs7830.c
+++ b/drivers/net/usb/mcs7830.c
@@ -46,6 +46,10 @@
46 46
47#define MCS7830_VENDOR_ID 0x9710 47#define MCS7830_VENDOR_ID 0x9710
48#define MCS7830_PRODUCT_ID 0x7830 48#define MCS7830_PRODUCT_ID 0x7830
49#define MCS7730_PRODUCT_ID 0x7730
50
51#define SITECOM_VENDOR_ID 0x0DF6
52#define LN_030_PRODUCT_ID 0x0021
49 53
50#define MCS7830_MII_ADVERTISE (ADVERTISE_PAUSE_CAP | ADVERTISE_100FULL | \ 54#define MCS7830_MII_ADVERTISE (ADVERTISE_PAUSE_CAP | ADVERTISE_100FULL | \
51 ADVERTISE_100HALF | ADVERTISE_10FULL | \ 55 ADVERTISE_100HALF | ADVERTISE_10FULL | \
@@ -442,6 +446,29 @@ static struct ethtool_ops mcs7830_ethtool_ops = {
442 .nway_reset = usbnet_nway_reset, 446 .nway_reset = usbnet_nway_reset,
443}; 447};
444 448
449static int mcs7830_set_mac_address(struct net_device *netdev, void *p)
450{
451 int ret;
452 struct usbnet *dev = netdev_priv(netdev);
453 struct sockaddr *addr = p;
454
455 if (netif_running(netdev))
456 return -EBUSY;
457
458 if (!is_valid_ether_addr(addr->sa_data))
459 return -EINVAL;
460
461 memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len);
462
463 ret = mcs7830_set_reg(dev, HIF_REG_ETHERNET_ADDR, ETH_ALEN,
464 netdev->dev_addr);
465
466 if (ret < 0)
467 return ret;
468
469 return 0;
470}
471
445static int mcs7830_bind(struct usbnet *dev, struct usb_interface *udev) 472static int mcs7830_bind(struct usbnet *dev, struct usb_interface *udev)
446{ 473{
447 struct net_device *net = dev->net; 474 struct net_device *net = dev->net;
@@ -455,6 +482,7 @@ static int mcs7830_bind(struct usbnet *dev, struct usb_interface *udev)
455 net->ethtool_ops = &mcs7830_ethtool_ops; 482 net->ethtool_ops = &mcs7830_ethtool_ops;
456 net->set_multicast_list = mcs7830_set_multicast; 483 net->set_multicast_list = mcs7830_set_multicast;
457 mcs7830_set_multicast(net); 484 mcs7830_set_multicast(net);
485 net->set_mac_address = mcs7830_set_mac_address;
458 486
459 /* reserve space for the status byte on rx */ 487 /* reserve space for the status byte on rx */
460 dev->rx_urb_size = ETH_FRAME_LEN + 1; 488 dev->rx_urb_size = ETH_FRAME_LEN + 1;
@@ -491,7 +519,16 @@ static int mcs7830_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
491} 519}
492 520
493static const struct driver_info moschip_info = { 521static const struct driver_info moschip_info = {
494 .description = "MOSCHIP 7830 usb-NET adapter", 522 .description = "MOSCHIP 7830/7730 usb-NET adapter",
523 .bind = mcs7830_bind,
524 .rx_fixup = mcs7830_rx_fixup,
525 .flags = FLAG_ETHER,
526 .in = 1,
527 .out = 2,
528};
529
530static const struct driver_info sitecom_info = {
531 .description = "Sitecom LN-30 usb-NET adapter",
495 .bind = mcs7830_bind, 532 .bind = mcs7830_bind,
496 .rx_fixup = mcs7830_rx_fixup, 533 .rx_fixup = mcs7830_rx_fixup,
497 .flags = FLAG_ETHER, 534 .flags = FLAG_ETHER,
@@ -504,6 +541,14 @@ static const struct usb_device_id products[] = {
504 USB_DEVICE(MCS7830_VENDOR_ID, MCS7830_PRODUCT_ID), 541 USB_DEVICE(MCS7830_VENDOR_ID, MCS7830_PRODUCT_ID),
505 .driver_info = (unsigned long) &moschip_info, 542 .driver_info = (unsigned long) &moschip_info,
506 }, 543 },
544 {
545 USB_DEVICE(MCS7830_VENDOR_ID, MCS7730_PRODUCT_ID),
546 .driver_info = (unsigned long) &moschip_info,
547 },
548 {
549 USB_DEVICE(SITECOM_VENDOR_ID, LN_030_PRODUCT_ID),
550 .driver_info = (unsigned long) &sitecom_info,
551 },
507 {}, 552 {},
508}; 553};
509MODULE_DEVICE_TABLE(usb, products); 554MODULE_DEVICE_TABLE(usb, products);
diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c
index a84ba487c71..8c19307e504 100644
--- a/drivers/net/usb/pegasus.c
+++ b/drivers/net/usb/pegasus.c
@@ -117,7 +117,7 @@ static void ctrl_callback(struct urb *urb)
117 case -ENOENT: 117 case -ENOENT:
118 break; 118 break;
119 default: 119 default:
120 if (netif_msg_drv(pegasus)) 120 if (netif_msg_drv(pegasus) && printk_ratelimit())
121 dev_dbg(&pegasus->intf->dev, "%s, status %d\n", 121 dev_dbg(&pegasus->intf->dev, "%s, status %d\n",
122 __FUNCTION__, urb->status); 122 __FUNCTION__, urb->status);
123 } 123 }
@@ -166,7 +166,7 @@ static int get_registers(pegasus_t * pegasus, __u16 indx, __u16 size,
166 set_current_state(TASK_RUNNING); 166 set_current_state(TASK_RUNNING);
167 if (ret == -ENODEV) 167 if (ret == -ENODEV)
168 netif_device_detach(pegasus->net); 168 netif_device_detach(pegasus->net);
169 if (netif_msg_drv(pegasus)) 169 if (netif_msg_drv(pegasus) && printk_ratelimit())
170 dev_err(&pegasus->intf->dev, "%s, status %d\n", 170 dev_err(&pegasus->intf->dev, "%s, status %d\n",
171 __FUNCTION__, ret); 171 __FUNCTION__, ret);
172 goto out; 172 goto out;
@@ -275,7 +275,7 @@ static int set_register(pegasus_t * pegasus, __u16 indx, __u8 data)
275 if ((ret = usb_submit_urb(pegasus->ctrl_urb, GFP_ATOMIC))) { 275 if ((ret = usb_submit_urb(pegasus->ctrl_urb, GFP_ATOMIC))) {
276 if (ret == -ENODEV) 276 if (ret == -ENODEV)
277 netif_device_detach(pegasus->net); 277 netif_device_detach(pegasus->net);
278 if (netif_msg_drv(pegasus)) 278 if (netif_msg_drv(pegasus) && printk_ratelimit())
279 dev_err(&pegasus->intf->dev, "%s, status %d\n", 279 dev_err(&pegasus->intf->dev, "%s, status %d\n",
280 __FUNCTION__, ret); 280 __FUNCTION__, ret);
281 goto out; 281 goto out;
@@ -1209,8 +1209,7 @@ static void pegasus_set_multicast(struct net_device *net)
1209 pegasus->eth_regs[EthCtrl2] |= RX_PROMISCUOUS; 1209 pegasus->eth_regs[EthCtrl2] |= RX_PROMISCUOUS;
1210 if (netif_msg_link(pegasus)) 1210 if (netif_msg_link(pegasus))
1211 pr_info("%s: Promiscuous mode enabled.\n", net->name); 1211 pr_info("%s: Promiscuous mode enabled.\n", net->name);
1212 } else if (net->mc_count || 1212 } else if (net->mc_count || (net->flags & IFF_ALLMULTI)) {
1213 (net->flags & IFF_ALLMULTI)) {
1214 pegasus->eth_regs[EthCtrl0] |= RX_MULTICAST; 1213 pegasus->eth_regs[EthCtrl0] |= RX_MULTICAST;
1215 pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS; 1214 pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS;
1216 if (netif_msg_link(pegasus)) 1215 if (netif_msg_link(pegasus))
@@ -1220,6 +1219,8 @@ static void pegasus_set_multicast(struct net_device *net)
1220 pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS; 1219 pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS;
1221 } 1220 }
1222 1221
1222 pegasus->ctrl_urb->status = 0;
1223
1223 pegasus->flags |= ETH_REGS_CHANGE; 1224 pegasus->flags |= ETH_REGS_CHANGE;
1224 ctrl_callback(pegasus->ctrl_urb); 1225 ctrl_callback(pegasus->ctrl_urb);
1225} 1226}
diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c
index e59255a155a..6596cd0742b 100644
--- a/drivers/net/wan/sbni.c
+++ b/drivers/net/wan/sbni.c
@@ -1317,7 +1317,7 @@ sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
1317 break; 1317 break;
1318 1318
1319 case SIOCDEVRESINSTATS : 1319 case SIOCDEVRESINSTATS :
1320 if( current->euid != 0 ) /* root only */ 1320 if (!capable(CAP_NET_ADMIN))
1321 return -EPERM; 1321 return -EPERM;
1322 memset( &nl->in_stats, 0, sizeof(struct sbni_in_stats) ); 1322 memset( &nl->in_stats, 0, sizeof(struct sbni_in_stats) );
1323 break; 1323 break;
@@ -1334,7 +1334,7 @@ sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
1334 break; 1334 break;
1335 1335
1336 case SIOCDEVSHWSTATE : 1336 case SIOCDEVSHWSTATE :
1337 if( current->euid != 0 ) /* root only */ 1337 if (!capable(CAP_NET_ADMIN))
1338 return -EPERM; 1338 return -EPERM;
1339 1339
1340 spin_lock( &nl->lock ); 1340 spin_lock( &nl->lock );
@@ -1355,7 +1355,7 @@ sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
1355#ifdef CONFIG_SBNI_MULTILINE 1355#ifdef CONFIG_SBNI_MULTILINE
1356 1356
1357 case SIOCDEVENSLAVE : 1357 case SIOCDEVENSLAVE :
1358 if( current->euid != 0 ) /* root only */ 1358 if (!capable(CAP_NET_ADMIN))
1359 return -EPERM; 1359 return -EPERM;
1360 1360
1361 if (copy_from_user( slave_name, ifr->ifr_data, sizeof slave_name )) 1361 if (copy_from_user( slave_name, ifr->ifr_data, sizeof slave_name ))
@@ -1370,7 +1370,7 @@ sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
1370 return enslave( dev, slave_dev ); 1370 return enslave( dev, slave_dev );
1371 1371
1372 case SIOCDEVEMANSIPATE : 1372 case SIOCDEVEMANSIPATE :
1373 if( current->euid != 0 ) /* root only */ 1373 if (!capable(CAP_NET_ADMIN))
1374 return -EPERM; 1374 return -EPERM;
1375 1375
1376 return emancipate( dev ); 1376 return emancipate( dev );
diff --git a/drivers/net/wd.c b/drivers/net/wd.c
index 6f9aa164374..fa14255282a 100644
--- a/drivers/net/wd.c
+++ b/drivers/net/wd.c
@@ -337,7 +337,7 @@ static int __init wd_probe1(struct net_device *dev, int ioaddr)
337#ifdef CONFIG_NET_POLL_CONTROLLER 337#ifdef CONFIG_NET_POLL_CONTROLLER
338 dev->poll_controller = ei_poll; 338 dev->poll_controller = ei_poll;
339#endif 339#endif
340 NS8390p_init(dev, 0); 340 NS8390_init(dev, 0);
341 341
342#if 1 342#if 1
343 /* Enable interrupt generation on softconfig cards -- M.U */ 343 /* Enable interrupt generation on softconfig cards -- M.U */
diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c
index b20a45aa868..0676c6d8438 100644
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -251,7 +251,7 @@ static inline void ath5k_txbuf_free(struct ath5k_softc *sc,
251 return; 251 return;
252 pci_unmap_single(sc->pdev, bf->skbaddr, bf->skb->len, 252 pci_unmap_single(sc->pdev, bf->skbaddr, bf->skb->len,
253 PCI_DMA_TODEVICE); 253 PCI_DMA_TODEVICE);
254 dev_kfree_skb(bf->skb); 254 dev_kfree_skb_any(bf->skb);
255 bf->skb = NULL; 255 bf->skb = NULL;
256} 256}
257 257
@@ -466,6 +466,7 @@ ath5k_pci_probe(struct pci_dev *pdev,
466 mutex_init(&sc->lock); 466 mutex_init(&sc->lock);
467 spin_lock_init(&sc->rxbuflock); 467 spin_lock_init(&sc->rxbuflock);
468 spin_lock_init(&sc->txbuflock); 468 spin_lock_init(&sc->txbuflock);
469 spin_lock_init(&sc->block);
469 470
470 /* Set private data */ 471 /* Set private data */
471 pci_set_drvdata(pdev, hw); 472 pci_set_drvdata(pdev, hw);
@@ -2179,8 +2180,11 @@ ath5k_beacon_config(struct ath5k_softc *sc)
2179 2180
2180 sc->imask |= AR5K_INT_SWBA; 2181 sc->imask |= AR5K_INT_SWBA;
2181 2182
2182 if (ath5k_hw_hasveol(ah)) 2183 if (ath5k_hw_hasveol(ah)) {
2184 spin_lock(&sc->block);
2183 ath5k_beacon_send(sc); 2185 ath5k_beacon_send(sc);
2186 spin_unlock(&sc->block);
2187 }
2184 } 2188 }
2185 /* TODO else AP */ 2189 /* TODO else AP */
2186 2190
@@ -2403,7 +2407,9 @@ ath5k_intr(int irq, void *dev_id)
2403 TSF_TO_TU(tsf), 2407 TSF_TO_TU(tsf),
2404 (unsigned long long) tsf); 2408 (unsigned long long) tsf);
2405 } else { 2409 } else {
2410 spin_lock(&sc->block);
2406 ath5k_beacon_send(sc); 2411 ath5k_beacon_send(sc);
2412 spin_unlock(&sc->block);
2407 } 2413 }
2408 } 2414 }
2409 if (status & AR5K_INT_RXEOL) { 2415 if (status & AR5K_INT_RXEOL) {
@@ -2745,6 +2751,11 @@ static int ath5k_add_interface(struct ieee80211_hw *hw,
2745 ret = -EOPNOTSUPP; 2751 ret = -EOPNOTSUPP;
2746 goto end; 2752 goto end;
2747 } 2753 }
2754
2755 /* Set to a reasonable value. Note that this will
2756 * be set to mac80211's value at ath5k_config(). */
2757 sc->bintval = 1000;
2758
2748 ret = 0; 2759 ret = 0;
2749end: 2760end:
2750 mutex_unlock(&sc->lock); 2761 mutex_unlock(&sc->lock);
@@ -2789,9 +2800,6 @@ ath5k_config_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
2789 struct ath5k_hw *ah = sc->ah; 2800 struct ath5k_hw *ah = sc->ah;
2790 int ret; 2801 int ret;
2791 2802
2792 /* Set to a reasonable value. Note that this will
2793 * be set to mac80211's value at ath5k_config(). */
2794 sc->bintval = 1000;
2795 mutex_lock(&sc->lock); 2803 mutex_lock(&sc->lock);
2796 if (sc->vif != vif) { 2804 if (sc->vif != vif) {
2797 ret = -EIO; 2805 ret = -EIO;
@@ -3050,6 +3058,7 @@ static int
3050ath5k_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb) 3058ath5k_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
3051{ 3059{
3052 struct ath5k_softc *sc = hw->priv; 3060 struct ath5k_softc *sc = hw->priv;
3061 unsigned long flags;
3053 int ret; 3062 int ret;
3054 3063
3055 ath5k_debug_dump_skb(sc, skb, "BC ", 1); 3064 ath5k_debug_dump_skb(sc, skb, "BC ", 1);
@@ -3059,12 +3068,14 @@ ath5k_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
3059 goto end; 3068 goto end;
3060 } 3069 }
3061 3070
3071 spin_lock_irqsave(&sc->block, flags);
3062 ath5k_txbuf_free(sc, sc->bbuf); 3072 ath5k_txbuf_free(sc, sc->bbuf);
3063 sc->bbuf->skb = skb; 3073 sc->bbuf->skb = skb;
3064 ret = ath5k_beacon_setup(sc, sc->bbuf); 3074 ret = ath5k_beacon_setup(sc, sc->bbuf);
3065 if (ret) 3075 if (ret)
3066 sc->bbuf->skb = NULL; 3076 sc->bbuf->skb = NULL;
3067 else { 3077 spin_unlock_irqrestore(&sc->block, flags);
3078 if (!ret) {
3068 ath5k_beacon_config(sc); 3079 ath5k_beacon_config(sc);
3069 mmiowb(); 3080 mmiowb();
3070 } 3081 }
diff --git a/drivers/net/wireless/ath5k/base.h b/drivers/net/wireless/ath5k/base.h
index d7e03e6b827..7ec2f377d5c 100644
--- a/drivers/net/wireless/ath5k/base.h
+++ b/drivers/net/wireless/ath5k/base.h
@@ -172,6 +172,7 @@ struct ath5k_softc {
172 struct tasklet_struct txtq; /* tx intr tasklet */ 172 struct tasklet_struct txtq; /* tx intr tasklet */
173 struct ath5k_led tx_led; /* tx led */ 173 struct ath5k_led tx_led; /* tx led */
174 174
175 spinlock_t block; /* protects beacon */
175 struct ath5k_buf *bbuf; /* beacon buffer */ 176 struct ath5k_buf *bbuf; /* beacon buffer */
176 unsigned int bhalq, /* SW q for outgoing beacons */ 177 unsigned int bhalq, /* SW q for outgoing beacons */
177 bmisscount, /* missed beacon transmits */ 178 bmisscount, /* missed beacon transmits */
diff --git a/drivers/net/wireless/ath9k/beacon.c b/drivers/net/wireless/ath9k/beacon.c
index caf569401a3..00a0eaa0886 100644
--- a/drivers/net/wireless/ath9k/beacon.c
+++ b/drivers/net/wireless/ath9k/beacon.c
@@ -209,6 +209,7 @@ static struct ath_buf *ath_beacon_generate(struct ath_softc *sc, int if_id)
209 unsigned int curlen; 209 unsigned int curlen;
210 struct ath_txq *cabq; 210 struct ath_txq *cabq;
211 struct ath_txq *mcastq; 211 struct ath_txq *mcastq;
212 struct ieee80211_tx_info *info;
212 avp = sc->sc_vaps[if_id]; 213 avp = sc->sc_vaps[if_id];
213 214
214 mcastq = &avp->av_mcastq; 215 mcastq = &avp->av_mcastq;
@@ -232,6 +233,18 @@ static struct ath_buf *ath_beacon_generate(struct ath_softc *sc, int if_id)
232 */ 233 */
233 curlen = skb->len; 234 curlen = skb->len;
234 235
236 info = IEEE80211_SKB_CB(skb);
237 if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) {
238 /*
239 * TODO: make sure the seq# gets assigned properly (vs. other
240 * TX frames)
241 */
242 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
243 sc->seq_no += 0x10;
244 hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
245 hdr->seq_ctrl |= cpu_to_le16(sc->seq_no);
246 }
247
235 /* XXX: spin_lock_bh should not be used here, but sparse bitches 248 /* XXX: spin_lock_bh should not be used here, but sparse bitches
236 * otherwise. We should fix sparse :) */ 249 * otherwise. We should fix sparse :) */
237 spin_lock_bh(&mcastq->axq_lock); 250 spin_lock_bh(&mcastq->axq_lock);
diff --git a/drivers/net/wireless/ath9k/core.c b/drivers/net/wireless/ath9k/core.c
index f6c45288d0e..87e37bc3914 100644
--- a/drivers/net/wireless/ath9k/core.c
+++ b/drivers/net/wireless/ath9k/core.c
@@ -294,8 +294,6 @@ static int ath_stop(struct ath_softc *sc)
294 * hardware is gone (invalid). 294 * hardware is gone (invalid).
295 */ 295 */
296 296
297 if (!sc->sc_invalid)
298 ath9k_hw_set_interrupts(ah, 0);
299 ath_draintxq(sc, false); 297 ath_draintxq(sc, false);
300 if (!sc->sc_invalid) { 298 if (!sc->sc_invalid) {
301 ath_stoprecv(sc); 299 ath_stoprecv(sc);
@@ -797,6 +795,12 @@ int ath_open(struct ath_softc *sc, struct ath9k_channel *initial_chan)
797 if (ah->ah_caps.hw_caps & ATH9K_HW_CAP_HT) 795 if (ah->ah_caps.hw_caps & ATH9K_HW_CAP_HT)
798 sc->sc_imask |= ATH9K_INT_CST; 796 sc->sc_imask |= ATH9K_INT_CST;
799 797
798 /* Note: We disable MIB interrupts for now as we don't yet
799 * handle processing ANI, otherwise you will get an interrupt
800 * storm after about 7 hours of usage making the system unusable
801 * with huge latency. Once we do have ANI processing included
802 * we can re-enable this interrupt. */
803#if 0
800 /* 804 /*
801 * Enable MIB interrupts when there are hardware phy counters. 805 * Enable MIB interrupts when there are hardware phy counters.
802 * Note we only do this (at the moment) for station mode. 806 * Note we only do this (at the moment) for station mode.
@@ -804,6 +808,7 @@ int ath_open(struct ath_softc *sc, struct ath9k_channel *initial_chan)
804 if (ath9k_hw_phycounters(ah) && 808 if (ath9k_hw_phycounters(ah) &&
805 ((sc->sc_opmode == ATH9K_M_STA) || (sc->sc_opmode == ATH9K_M_IBSS))) 809 ((sc->sc_opmode == ATH9K_M_STA) || (sc->sc_opmode == ATH9K_M_IBSS)))
806 sc->sc_imask |= ATH9K_INT_MIB; 810 sc->sc_imask |= ATH9K_INT_MIB;
811#endif
807 /* 812 /*
808 * Some hardware processes the TIM IE and fires an 813 * Some hardware processes the TIM IE and fires an
809 * interrupt when the TIM bit is set. For hardware 814 * interrupt when the TIM bit is set. For hardware
@@ -1336,6 +1341,8 @@ void ath_deinit(struct ath_softc *sc)
1336 1341
1337 DPRINTF(sc, ATH_DBG_CONFIG, "%s\n", __func__); 1342 DPRINTF(sc, ATH_DBG_CONFIG, "%s\n", __func__);
1338 1343
1344 tasklet_kill(&sc->intr_tq);
1345 tasklet_kill(&sc->bcon_tasklet);
1339 ath_stop(sc); 1346 ath_stop(sc);
1340 if (!sc->sc_invalid) 1347 if (!sc->sc_invalid)
1341 ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_AWAKE); 1348 ath9k_hw_setpower(sc->sc_ah, ATH9K_PM_AWAKE);
diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h
index 673b3d81133..2f84093331e 100644
--- a/drivers/net/wireless/ath9k/core.h
+++ b/drivers/net/wireless/ath9k/core.h
@@ -974,7 +974,6 @@ struct ath_softc {
974 u32 sc_keymax; /* size of key cache */ 974 u32 sc_keymax; /* size of key cache */
975 DECLARE_BITMAP(sc_keymap, ATH_KEYMAX); /* key use bit map */ 975 DECLARE_BITMAP(sc_keymap, ATH_KEYMAX); /* key use bit map */
976 u8 sc_splitmic; /* split TKIP MIC keys */ 976 u8 sc_splitmic; /* split TKIP MIC keys */
977 int sc_keytype;
978 977
979 /* RX */ 978 /* RX */
980 struct list_head sc_rxbuf; 979 struct list_head sc_rxbuf;
@@ -992,6 +991,7 @@ struct ath_softc {
992 u32 sc_txintrperiod; /* tx interrupt batching */ 991 u32 sc_txintrperiod; /* tx interrupt batching */
993 int sc_haltype2q[ATH9K_WME_AC_VO+1]; /* HAL WME AC -> h/w qnum */ 992 int sc_haltype2q[ATH9K_WME_AC_VO+1]; /* HAL WME AC -> h/w qnum */
994 u32 sc_ant_tx[8]; /* recent tx frames/antenna */ 993 u32 sc_ant_tx[8]; /* recent tx frames/antenna */
994 u16 seq_no; /* TX sequence number */
995 995
996 /* Beacon */ 996 /* Beacon */
997 struct ath9k_tx_queue_info sc_beacon_qi; 997 struct ath9k_tx_queue_info sc_beacon_qi;
diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath9k/hw.c
index a17eb130f57..6dbfed0b414 100644
--- a/drivers/net/wireless/ath9k/hw.c
+++ b/drivers/net/wireless/ath9k/hw.c
@@ -7285,15 +7285,15 @@ ath9k_hw_set_keycache_entry(struct ath_hal *ah, u16 entry,
7285 } 7285 }
7286 break; 7286 break;
7287 case ATH9K_CIPHER_WEP: 7287 case ATH9K_CIPHER_WEP:
7288 if (k->kv_len < 40 / NBBY) { 7288 if (k->kv_len < LEN_WEP40) {
7289 DPRINTF(ah->ah_sc, ATH_DBG_KEYCACHE, 7289 DPRINTF(ah->ah_sc, ATH_DBG_KEYCACHE,
7290 "%s: WEP key length %u too small\n", 7290 "%s: WEP key length %u too small\n",
7291 __func__, k->kv_len); 7291 __func__, k->kv_len);
7292 return false; 7292 return false;
7293 } 7293 }
7294 if (k->kv_len <= 40 / NBBY) 7294 if (k->kv_len <= LEN_WEP40)
7295 keyType = AR_KEYTABLE_TYPE_40; 7295 keyType = AR_KEYTABLE_TYPE_40;
7296 else if (k->kv_len <= 104 / NBBY) 7296 else if (k->kv_len <= LEN_WEP104)
7297 keyType = AR_KEYTABLE_TYPE_104; 7297 keyType = AR_KEYTABLE_TYPE_104;
7298 else 7298 else
7299 keyType = AR_KEYTABLE_TYPE_128; 7299 keyType = AR_KEYTABLE_TYPE_128;
@@ -7313,7 +7313,7 @@ ath9k_hw_set_keycache_entry(struct ath_hal *ah, u16 entry,
7313 key2 = get_unaligned_le32(k->kv_val + 6) ^ xorMask; 7313 key2 = get_unaligned_le32(k->kv_val + 6) ^ xorMask;
7314 key3 = (get_unaligned_le16(k->kv_val + 10) ^ xorMask) & 0xffff; 7314 key3 = (get_unaligned_le16(k->kv_val + 10) ^ xorMask) & 0xffff;
7315 key4 = get_unaligned_le32(k->kv_val + 12) ^ xorMask; 7315 key4 = get_unaligned_le32(k->kv_val + 12) ^ xorMask;
7316 if (k->kv_len <= 104 / NBBY) 7316 if (k->kv_len <= LEN_WEP104)
7317 key4 &= 0xff; 7317 key4 &= 0xff;
7318 7318
7319 if (keyType == AR_KEYTABLE_TYPE_TKIP && ATH9K_IS_MIC_ENABLED(ah)) { 7319 if (keyType == AR_KEYTABLE_TYPE_TKIP && ATH9K_IS_MIC_ENABLED(ah)) {
diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c
index 2888778040e..acebdf1d20a 100644
--- a/drivers/net/wireless/ath9k/main.c
+++ b/drivers/net/wireless/ath9k/main.c
@@ -206,7 +206,6 @@ static int ath_key_config(struct ath_softc *sc,
206 if (!ret) 206 if (!ret)
207 return -EIO; 207 return -EIO;
208 208
209 sc->sc_keytype = hk.kv_type;
210 return 0; 209 return 0;
211} 210}
212 211
@@ -368,6 +367,20 @@ static int ath9k_tx(struct ieee80211_hw *hw,
368{ 367{
369 struct ath_softc *sc = hw->priv; 368 struct ath_softc *sc = hw->priv;
370 int hdrlen, padsize; 369 int hdrlen, padsize;
370 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
371
372 /*
373 * As a temporary workaround, assign seq# here; this will likely need
374 * to be cleaned up to work better with Beacon transmission and virtual
375 * BSSes.
376 */
377 if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) {
378 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
379 if (info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT)
380 sc->seq_no += 0x10;
381 hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
382 hdr->seq_ctrl |= cpu_to_le16(sc->seq_no);
383 }
371 384
372 /* Add the padding after the header if this is not already done */ 385 /* Add the padding after the header if this is not already done */
373 hdrlen = ieee80211_get_hdrlen_from_skb(skb); 386 hdrlen = ieee80211_get_hdrlen_from_skb(skb);
@@ -756,13 +769,13 @@ static int ath9k_set_key(struct ieee80211_hw *hw,
756 key->hw_key_idx = key->keyidx; 769 key->hw_key_idx = key->keyidx;
757 /* push IV and Michael MIC generation to stack */ 770 /* push IV and Michael MIC generation to stack */
758 key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV; 771 key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
759 key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC; 772 if (key->alg == ALG_TKIP)
773 key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC;
760 } 774 }
761 break; 775 break;
762 case DISABLE_KEY: 776 case DISABLE_KEY:
763 ath_key_delete(sc, key); 777 ath_key_delete(sc, key);
764 clear_bit(key->keyidx, sc->sc_keymap); 778 clear_bit(key->keyidx, sc->sc_keymap);
765 sc->sc_keytype = ATH9K_CIPHER_CLR;
766 break; 779 break;
767 default: 780 default:
768 ret = -EINVAL; 781 ret = -EINVAL;
@@ -1065,8 +1078,16 @@ void ath_tx_complete(struct ath_softc *sc, struct sk_buff *skb,
1065 tx_info->flags |= IEEE80211_TX_STAT_AMPDU_NO_BACK; 1078 tx_info->flags |= IEEE80211_TX_STAT_AMPDU_NO_BACK;
1066 tx_status->flags &= ~ATH_TX_BAR; 1079 tx_status->flags &= ~ATH_TX_BAR;
1067 } 1080 }
1068 if (tx_status->flags) 1081
1069 tx_info->status.excessive_retries = 1; 1082 if (tx_status->flags & (ATH_TX_ERROR | ATH_TX_XRETRY)) {
1083 if (!(tx_info->flags & IEEE80211_TX_CTL_NO_ACK)) {
1084 /* Frame was not ACKed, but an ACK was expected */
1085 tx_info->status.excessive_retries = 1;
1086 }
1087 } else {
1088 /* Frame was ACKed */
1089 tx_info->flags |= IEEE80211_TX_STAT_ACK;
1090 }
1070 1091
1071 tx_info->status.retry_count = tx_status->retries; 1092 tx_info->status.retry_count = tx_status->retries;
1072 1093
@@ -1390,10 +1411,17 @@ static void ath_pci_remove(struct pci_dev *pdev)
1390{ 1411{
1391 struct ieee80211_hw *hw = pci_get_drvdata(pdev); 1412 struct ieee80211_hw *hw = pci_get_drvdata(pdev);
1392 struct ath_softc *sc = hw->priv; 1413 struct ath_softc *sc = hw->priv;
1414 enum ath9k_int status;
1393 1415
1394 if (pdev->irq) 1416 if (pdev->irq) {
1417 ath9k_hw_set_interrupts(sc->sc_ah, 0);
1418 /* clear the ISR */
1419 ath9k_hw_getisr(sc->sc_ah, &status);
1420 sc->sc_invalid = 1;
1395 free_irq(pdev->irq, sc); 1421 free_irq(pdev->irq, sc);
1422 }
1396 ath_detach(sc); 1423 ath_detach(sc);
1424
1397 pci_iounmap(pdev, sc->mem); 1425 pci_iounmap(pdev, sc->mem);
1398 pci_release_region(pdev, 0); 1426 pci_release_region(pdev, 0);
1399 pci_disable_device(pdev); 1427 pci_disable_device(pdev);
diff --git a/drivers/net/wireless/ath9k/recv.c b/drivers/net/wireless/ath9k/recv.c
index 2fe806175c0..20ddb7acdb9 100644
--- a/drivers/net/wireless/ath9k/recv.c
+++ b/drivers/net/wireless/ath9k/recv.c
@@ -360,8 +360,9 @@ static void ath_rx_flush_tid(struct ath_softc *sc,
360 struct ath_arx_tid *rxtid, int drop) 360 struct ath_arx_tid *rxtid, int drop)
361{ 361{
362 struct ath_rxbuf *rxbuf; 362 struct ath_rxbuf *rxbuf;
363 unsigned long flag;
363 364
364 spin_lock_bh(&rxtid->tidlock); 365 spin_lock_irqsave(&rxtid->tidlock, flag);
365 while (rxtid->baw_head != rxtid->baw_tail) { 366 while (rxtid->baw_head != rxtid->baw_tail) {
366 rxbuf = rxtid->rxbuf + rxtid->baw_head; 367 rxbuf = rxtid->rxbuf + rxtid->baw_head;
367 if (!rxbuf->rx_wbuf) { 368 if (!rxbuf->rx_wbuf) {
@@ -382,7 +383,7 @@ static void ath_rx_flush_tid(struct ath_softc *sc,
382 INCR(rxtid->baw_head, ATH_TID_MAX_BUFS); 383 INCR(rxtid->baw_head, ATH_TID_MAX_BUFS);
383 INCR(rxtid->seq_next, IEEE80211_SEQ_MAX); 384 INCR(rxtid->seq_next, IEEE80211_SEQ_MAX);
384 } 385 }
385 spin_unlock_bh(&rxtid->tidlock); 386 spin_unlock_irqrestore(&rxtid->tidlock, flag);
386} 387}
387 388
388static struct sk_buff *ath_rxbuf_alloc(struct ath_softc *sc, 389static struct sk_buff *ath_rxbuf_alloc(struct ath_softc *sc,
diff --git a/drivers/net/wireless/ath9k/xmit.c b/drivers/net/wireless/ath9k/xmit.c
index 157f830ee6b..8b332e11a65 100644
--- a/drivers/net/wireless/ath9k/xmit.c
+++ b/drivers/net/wireless/ath9k/xmit.c
@@ -315,11 +315,11 @@ static int ath_tx_prepare(struct ath_softc *sc,
315 txctl->keyix = tx_info->control.hw_key->hw_key_idx; 315 txctl->keyix = tx_info->control.hw_key->hw_key_idx;
316 txctl->frmlen += tx_info->control.icv_len; 316 txctl->frmlen += tx_info->control.icv_len;
317 317
318 if (sc->sc_keytype == ATH9K_CIPHER_WEP) 318 if (tx_info->control.hw_key->alg == ALG_WEP)
319 txctl->keytype = ATH9K_KEY_TYPE_WEP; 319 txctl->keytype = ATH9K_KEY_TYPE_WEP;
320 else if (sc->sc_keytype == ATH9K_CIPHER_TKIP) 320 else if (tx_info->control.hw_key->alg == ALG_TKIP)
321 txctl->keytype = ATH9K_KEY_TYPE_TKIP; 321 txctl->keytype = ATH9K_KEY_TYPE_TKIP;
322 else if (sc->sc_keytype == ATH9K_CIPHER_AES_CCM) 322 else if (tx_info->control.hw_key->alg == ALG_CCMP)
323 txctl->keytype = ATH9K_KEY_TYPE_AES; 323 txctl->keytype = ATH9K_KEY_TYPE_AES;
324 } 324 }
325 325
@@ -357,9 +357,9 @@ static int ath_tx_prepare(struct ath_softc *sc,
357 txctl->flags = ATH9K_TXDESC_CLRDMASK; /* needed for crypto errors */ 357 txctl->flags = ATH9K_TXDESC_CLRDMASK; /* needed for crypto errors */
358 358
359 if (tx_info->flags & IEEE80211_TX_CTL_NO_ACK) 359 if (tx_info->flags & IEEE80211_TX_CTL_NO_ACK)
360 tx_info->flags |= ATH9K_TXDESC_NOACK; 360 txctl->flags |= ATH9K_TXDESC_NOACK;
361 if (tx_info->flags & IEEE80211_TX_CTL_USE_RTS_CTS) 361 if (tx_info->flags & IEEE80211_TX_CTL_USE_RTS_CTS)
362 tx_info->flags |= ATH9K_TXDESC_RTSENA; 362 txctl->flags |= ATH9K_TXDESC_RTSENA;
363 363
364 /* 364 /*
365 * Setup for rate calculations. 365 * Setup for rate calculations.
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c
index bd35bb0a148..bd65c485098 100644
--- a/drivers/net/wireless/atmel.c
+++ b/drivers/net/wireless/atmel.c
@@ -1304,7 +1304,7 @@ EXPORT_SYMBOL(atmel_open);
1304int atmel_open(struct net_device *dev) 1304int atmel_open(struct net_device *dev)
1305{ 1305{
1306 struct atmel_private *priv = netdev_priv(dev); 1306 struct atmel_private *priv = netdev_priv(dev);
1307 int i, channel; 1307 int i, channel, err;
1308 1308
1309 /* any scheduled timer is no longer needed and might screw things up.. */ 1309 /* any scheduled timer is no longer needed and might screw things up.. */
1310 del_timer_sync(&priv->management_timer); 1310 del_timer_sync(&priv->management_timer);
@@ -1328,8 +1328,9 @@ int atmel_open(struct net_device *dev)
1328 priv->site_survey_state = SITE_SURVEY_IDLE; 1328 priv->site_survey_state = SITE_SURVEY_IDLE;
1329 priv->station_is_associated = 0; 1329 priv->station_is_associated = 0;
1330 1330
1331 if (!reset_atmel_card(dev)) 1331 err = reset_atmel_card(dev);
1332 return -EAGAIN; 1332 if (err)
1333 return err;
1333 1334
1334 if (priv->config_reg_domain) { 1335 if (priv->config_reg_domain) {
1335 priv->reg_domain = priv->config_reg_domain; 1336 priv->reg_domain = priv->config_reg_domain;
@@ -3061,12 +3062,20 @@ static void authenticate(struct atmel_private *priv, u16 frame_len)
3061 } 3062 }
3062 3063
3063 if (status == WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG) { 3064 if (status == WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG) {
3064 /* Do opensystem first, then try sharedkey */ 3065 /* Flip back and forth between WEP auth modes until the max
3066 * authentication tries has been exceeded.
3067 */
3065 if (system == WLAN_AUTH_OPEN) { 3068 if (system == WLAN_AUTH_OPEN) {
3066 priv->CurrentAuthentTransactionSeqNum = 0x001; 3069 priv->CurrentAuthentTransactionSeqNum = 0x001;
3067 priv->exclude_unencrypted = 1; 3070 priv->exclude_unencrypted = 1;
3068 send_authentication_request(priv, WLAN_AUTH_SHARED_KEY, NULL, 0); 3071 send_authentication_request(priv, WLAN_AUTH_SHARED_KEY, NULL, 0);
3069 return; 3072 return;
3073 } else if ( system == WLAN_AUTH_SHARED_KEY
3074 && priv->wep_is_on) {
3075 priv->CurrentAuthentTransactionSeqNum = 0x001;
3076 priv->exclude_unencrypted = 0;
3077 send_authentication_request(priv, WLAN_AUTH_OPEN, NULL, 0);
3078 return;
3070 } else if (priv->connect_to_any_BSS) { 3079 } else if (priv->connect_to_any_BSS) {
3071 int bss_index; 3080 int bss_index;
3072 3081
@@ -3580,12 +3589,12 @@ static int atmel_wakeup_firmware(struct atmel_private *priv)
3580 3589
3581 if (i == 0) { 3590 if (i == 0) {
3582 printk(KERN_ALERT "%s: MAC failed to boot.\n", priv->dev->name); 3591 printk(KERN_ALERT "%s: MAC failed to boot.\n", priv->dev->name);
3583 return 0; 3592 return -EIO;
3584 } 3593 }
3585 3594
3586 if ((priv->host_info_base = atmel_read16(priv->dev, MR2)) == 0xffff) { 3595 if ((priv->host_info_base = atmel_read16(priv->dev, MR2)) == 0xffff) {
3587 printk(KERN_ALERT "%s: card missing.\n", priv->dev->name); 3596 printk(KERN_ALERT "%s: card missing.\n", priv->dev->name);
3588 return 0; 3597 return -ENODEV;
3589 } 3598 }
3590 3599
3591 /* now check for completion of MAC initialization through 3600 /* now check for completion of MAC initialization through
@@ -3609,19 +3618,19 @@ static int atmel_wakeup_firmware(struct atmel_private *priv)
3609 if (i == 0) { 3618 if (i == 0) {
3610 printk(KERN_ALERT "%s: MAC failed to initialise.\n", 3619 printk(KERN_ALERT "%s: MAC failed to initialise.\n",
3611 priv->dev->name); 3620 priv->dev->name);
3612 return 0; 3621 return -EIO;
3613 } 3622 }
3614 3623
3615 /* Check for MAC_INIT_OK only on the register that the MAC_INIT_OK was set */ 3624 /* Check for MAC_INIT_OK only on the register that the MAC_INIT_OK was set */
3616 if ((mr3 & MAC_INIT_COMPLETE) && 3625 if ((mr3 & MAC_INIT_COMPLETE) &&
3617 !(atmel_read16(priv->dev, MR3) & MAC_INIT_OK)) { 3626 !(atmel_read16(priv->dev, MR3) & MAC_INIT_OK)) {
3618 printk(KERN_ALERT "%s: MAC failed MR3 self-test.\n", priv->dev->name); 3627 printk(KERN_ALERT "%s: MAC failed MR3 self-test.\n", priv->dev->name);
3619 return 0; 3628 return -EIO;
3620 } 3629 }
3621 if ((mr1 & MAC_INIT_COMPLETE) && 3630 if ((mr1 & MAC_INIT_COMPLETE) &&
3622 !(atmel_read16(priv->dev, MR1) & MAC_INIT_OK)) { 3631 !(atmel_read16(priv->dev, MR1) & MAC_INIT_OK)) {
3623 printk(KERN_ALERT "%s: MAC failed MR1 self-test.\n", priv->dev->name); 3632 printk(KERN_ALERT "%s: MAC failed MR1 self-test.\n", priv->dev->name);
3624 return 0; 3633 return -EIO;
3625 } 3634 }
3626 3635
3627 atmel_copy_to_host(priv->dev, (unsigned char *)iface, 3636 atmel_copy_to_host(priv->dev, (unsigned char *)iface,
@@ -3642,7 +3651,7 @@ static int atmel_wakeup_firmware(struct atmel_private *priv)
3642 iface->func_ctrl = le16_to_cpu(iface->func_ctrl); 3651 iface->func_ctrl = le16_to_cpu(iface->func_ctrl);
3643 iface->mac_status = le16_to_cpu(iface->mac_status); 3652 iface->mac_status = le16_to_cpu(iface->mac_status);
3644 3653
3645 return 1; 3654 return 0;
3646} 3655}
3647 3656
3648/* determine type of memory and MAC address */ 3657/* determine type of memory and MAC address */
@@ -3693,7 +3702,7 @@ static int probe_atmel_card(struct net_device *dev)
3693 /* Standard firmware in flash, boot it up and ask 3702 /* Standard firmware in flash, boot it up and ask
3694 for the Mac Address */ 3703 for the Mac Address */
3695 priv->card_type = CARD_TYPE_SPI_FLASH; 3704 priv->card_type = CARD_TYPE_SPI_FLASH;
3696 if (atmel_wakeup_firmware(priv)) { 3705 if (atmel_wakeup_firmware(priv) == 0) {
3697 atmel_get_mib(priv, Mac_Address_Mib_Type, 0, dev->dev_addr, 6); 3706 atmel_get_mib(priv, Mac_Address_Mib_Type, 0, dev->dev_addr, 6);
3698 3707
3699 /* got address, now squash it again until the network 3708 /* got address, now squash it again until the network
@@ -3835,6 +3844,7 @@ static int reset_atmel_card(struct net_device *dev)
3835 struct atmel_private *priv = netdev_priv(dev); 3844 struct atmel_private *priv = netdev_priv(dev);
3836 u8 configuration; 3845 u8 configuration;
3837 int old_state = priv->station_state; 3846 int old_state = priv->station_state;
3847 int err = 0;
3838 3848
3839 /* data to add to the firmware names, in priority order 3849 /* data to add to the firmware names, in priority order
3840 this implemenents firmware versioning */ 3850 this implemenents firmware versioning */
@@ -3868,11 +3878,12 @@ static int reset_atmel_card(struct net_device *dev)
3868 dev->name); 3878 dev->name);
3869 strcpy(priv->firmware_id, "atmel_at76c502.bin"); 3879 strcpy(priv->firmware_id, "atmel_at76c502.bin");
3870 } 3880 }
3871 if (request_firmware(&fw_entry, priv->firmware_id, priv->sys_dev) != 0) { 3881 err = request_firmware(&fw_entry, priv->firmware_id, priv->sys_dev);
3882 if (err != 0) {
3872 printk(KERN_ALERT 3883 printk(KERN_ALERT
3873 "%s: firmware %s is missing, cannot continue.\n", 3884 "%s: firmware %s is missing, cannot continue.\n",
3874 dev->name, priv->firmware_id); 3885 dev->name, priv->firmware_id);
3875 return 0; 3886 return err;
3876 } 3887 }
3877 } else { 3888 } else {
3878 int fw_index = 0; 3889 int fw_index = 0;
@@ -3901,7 +3912,7 @@ static int reset_atmel_card(struct net_device *dev)
3901 "%s: firmware %s is missing, cannot start.\n", 3912 "%s: firmware %s is missing, cannot start.\n",
3902 dev->name, priv->firmware_id); 3913 dev->name, priv->firmware_id);
3903 priv->firmware_id[0] = '\0'; 3914 priv->firmware_id[0] = '\0';
3904 return 0; 3915 return -ENOENT;
3905 } 3916 }
3906 } 3917 }
3907 3918
@@ -3926,8 +3937,9 @@ static int reset_atmel_card(struct net_device *dev)
3926 release_firmware(fw_entry); 3937 release_firmware(fw_entry);
3927 } 3938 }
3928 3939
3929 if (!atmel_wakeup_firmware(priv)) 3940 err = atmel_wakeup_firmware(priv);
3930 return 0; 3941 if (err != 0)
3942 return err;
3931 3943
3932 /* Check the version and set the correct flag for wpa stuff, 3944 /* Check the version and set the correct flag for wpa stuff,
3933 old and new firmware is incompatible. 3945 old and new firmware is incompatible.
@@ -3968,10 +3980,9 @@ static int reset_atmel_card(struct net_device *dev)
3968 if (!priv->radio_on_broken) { 3980 if (!priv->radio_on_broken) {
3969 if (atmel_send_command_wait(priv, CMD_EnableRadio, NULL, 0) == 3981 if (atmel_send_command_wait(priv, CMD_EnableRadio, NULL, 0) ==
3970 CMD_STATUS_REJECTED_RADIO_OFF) { 3982 CMD_STATUS_REJECTED_RADIO_OFF) {
3971 printk(KERN_INFO 3983 printk(KERN_INFO "%s: cannot turn the radio on.\n",
3972 "%s: cannot turn the radio on. (Hey radio, you're beautiful!)\n",
3973 dev->name); 3984 dev->name);
3974 return 0; 3985 return -EIO;
3975 } 3986 }
3976 } 3987 }
3977 3988
@@ -4006,7 +4017,7 @@ static int reset_atmel_card(struct net_device *dev)
4006 wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL); 4017 wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL);
4007 } 4018 }
4008 4019
4009 return 1; 4020 return 0;
4010} 4021}
4011 4022
4012static void atmel_send_command(struct atmel_private *priv, int command, 4023static void atmel_send_command(struct atmel_private *priv, int command,
diff --git a/drivers/net/wireless/b43/rfkill.c b/drivers/net/wireless/b43/rfkill.c
index fec5645944a..34ae125d538 100644
--- a/drivers/net/wireless/b43/rfkill.c
+++ b/drivers/net/wireless/b43/rfkill.c
@@ -43,23 +43,6 @@ static bool b43_is_hw_radio_enabled(struct b43_wldev *dev)
43 return 0; 43 return 0;
44} 44}
45 45
46/* Update the rfkill state */
47static void b43_rfkill_update_state(struct b43_wldev *dev)
48{
49 struct b43_rfkill *rfk = &(dev->wl->rfkill);
50
51 if (!dev->radio_hw_enable) {
52 rfk->rfkill->state = RFKILL_STATE_HARD_BLOCKED;
53 return;
54 }
55
56 if (!dev->phy.radio_on)
57 rfk->rfkill->state = RFKILL_STATE_SOFT_BLOCKED;
58 else
59 rfk->rfkill->state = RFKILL_STATE_UNBLOCKED;
60
61}
62
63/* The poll callback for the hardware button. */ 46/* The poll callback for the hardware button. */
64static void b43_rfkill_poll(struct input_polled_dev *poll_dev) 47static void b43_rfkill_poll(struct input_polled_dev *poll_dev)
65{ 48{
@@ -77,7 +60,6 @@ static void b43_rfkill_poll(struct input_polled_dev *poll_dev)
77 if (unlikely(enabled != dev->radio_hw_enable)) { 60 if (unlikely(enabled != dev->radio_hw_enable)) {
78 dev->radio_hw_enable = enabled; 61 dev->radio_hw_enable = enabled;
79 report_change = 1; 62 report_change = 1;
80 b43_rfkill_update_state(dev);
81 b43info(wl, "Radio hardware status changed to %s\n", 63 b43info(wl, "Radio hardware status changed to %s\n",
82 enabled ? "ENABLED" : "DISABLED"); 64 enabled ? "ENABLED" : "DISABLED");
83 } 65 }
diff --git a/drivers/net/wireless/b43legacy/main.c b/drivers/net/wireless/b43legacy/main.c
index 2541c81932f..1cb77db5c29 100644
--- a/drivers/net/wireless/b43legacy/main.c
+++ b/drivers/net/wireless/b43legacy/main.c
@@ -34,7 +34,6 @@
34#include <linux/moduleparam.h> 34#include <linux/moduleparam.h>
35#include <linux/if_arp.h> 35#include <linux/if_arp.h>
36#include <linux/etherdevice.h> 36#include <linux/etherdevice.h>
37#include <linux/version.h>
38#include <linux/firmware.h> 37#include <linux/firmware.h>
39#include <linux/wireless.h> 38#include <linux/wireless.h>
40#include <linux/workqueue.h> 39#include <linux/workqueue.h>
diff --git a/drivers/net/wireless/b43legacy/rfkill.c b/drivers/net/wireless/b43legacy/rfkill.c
index 476add97e97..b32bf6a94f1 100644
--- a/drivers/net/wireless/b43legacy/rfkill.c
+++ b/drivers/net/wireless/b43legacy/rfkill.c
@@ -44,23 +44,6 @@ static bool b43legacy_is_hw_radio_enabled(struct b43legacy_wldev *dev)
44 return 0; 44 return 0;
45} 45}
46 46
47/* Update the rfkill state */
48static void b43legacy_rfkill_update_state(struct b43legacy_wldev *dev)
49{
50 struct b43legacy_rfkill *rfk = &(dev->wl->rfkill);
51
52 if (!dev->radio_hw_enable) {
53 rfk->rfkill->state = RFKILL_STATE_HARD_BLOCKED;
54 return;
55 }
56
57 if (!dev->phy.radio_on)
58 rfk->rfkill->state = RFKILL_STATE_SOFT_BLOCKED;
59 else
60 rfk->rfkill->state = RFKILL_STATE_UNBLOCKED;
61
62}
63
64/* The poll callback for the hardware button. */ 47/* The poll callback for the hardware button. */
65static void b43legacy_rfkill_poll(struct input_polled_dev *poll_dev) 48static void b43legacy_rfkill_poll(struct input_polled_dev *poll_dev)
66{ 49{
@@ -78,7 +61,6 @@ static void b43legacy_rfkill_poll(struct input_polled_dev *poll_dev)
78 if (unlikely(enabled != dev->radio_hw_enable)) { 61 if (unlikely(enabled != dev->radio_hw_enable)) {
79 dev->radio_hw_enable = enabled; 62 dev->radio_hw_enable = enabled;
80 report_change = 1; 63 report_change = 1;
81 b43legacy_rfkill_update_state(dev);
82 b43legacyinfo(wl, "Radio hardware status changed to %s\n", 64 b43legacyinfo(wl, "Radio hardware status changed to %s\n",
83 enabled ? "ENABLED" : "DISABLED"); 65 enabled ? "ENABLED" : "DISABLED");
84 } 66 }
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-led.c b/drivers/net/wireless/iwlwifi/iwl-3945-led.c
index d3336966b6b..705c65bed9f 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945-led.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945-led.c
@@ -27,7 +27,6 @@
27 27
28#include <linux/kernel.h> 28#include <linux/kernel.h>
29#include <linux/module.h> 29#include <linux/module.h>
30#include <linux/version.h>
31#include <linux/init.h> 30#include <linux/init.h>
32#include <linux/pci.h> 31#include <linux/pci.h>
33#include <linux/dma-mapping.h> 32#include <linux/dma-mapping.h>
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index e2581229d8b..23fed329896 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -474,8 +474,8 @@ static void iwl4965_apm_stop(struct iwl_priv *priv)
474 iwl_set_bit(priv, CSR_RESET, CSR_RESET_REG_FLAG_SW_RESET); 474 iwl_set_bit(priv, CSR_RESET, CSR_RESET_REG_FLAG_SW_RESET);
475 475
476 udelay(10); 476 udelay(10);
477 477 /* clear "init complete" move adapter D0A* --> D0U state */
478 iwl_set_bit(priv, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE); 478 iwl_clear_bit(priv, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE);
479 spin_unlock_irqrestore(&priv->lock, flags); 479 spin_unlock_irqrestore(&priv->lock, flags);
480} 480}
481 481
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index cbc01a00eaf..b08036a9d89 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -145,7 +145,8 @@ static void iwl5000_apm_stop(struct iwl_priv *priv)
145 145
146 udelay(10); 146 udelay(10);
147 147
148 iwl_set_bit(priv, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE); 148 /* clear "init complete" move adapter D0A* --> D0U state */
149 iwl_clear_bit(priv, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE);
149 150
150 spin_unlock_irqrestore(&priv->lock, flags); 151 spin_unlock_irqrestore(&priv->lock, flags);
151} 152}
@@ -577,14 +578,11 @@ static int iwl5000_load_section(struct iwl_priv *priv,
577 FH_TFDIB_CTRL0_REG(FH_SRVC_CHNL), 578 FH_TFDIB_CTRL0_REG(FH_SRVC_CHNL),
578 phy_addr & FH_MEM_TFDIB_DRAM_ADDR_LSB_MSK); 579 phy_addr & FH_MEM_TFDIB_DRAM_ADDR_LSB_MSK);
579 580
580 /* FIME: write the MSB of the phy_addr in CTRL1
581 * iwl_write_direct32(priv,
582 IWL_FH_TFDIB_CTRL1_REG(IWL_FH_SRVC_CHNL),
583 ((phy_addr & MSB_MSK)
584 << FH_MEM_TFDIB_REG1_ADDR_BITSHIFT) | byte_count);
585 */
586 iwl_write_direct32(priv, 581 iwl_write_direct32(priv,
587 FH_TFDIB_CTRL1_REG(FH_SRVC_CHNL), byte_cnt); 582 FH_TFDIB_CTRL1_REG(FH_SRVC_CHNL),
583 (iwl_get_dma_hi_address(phy_addr)
584 << FH_MEM_TFDIB_REG1_ADDR_BITSHIFT) | byte_cnt);
585
588 iwl_write_direct32(priv, 586 iwl_write_direct32(priv,
589 FH_TCSR_CHNL_TX_BUF_STS_REG(FH_SRVC_CHNL), 587 FH_TCSR_CHNL_TX_BUF_STS_REG(FH_SRVC_CHNL),
590 1 << FH_TCSR_CHNL_TX_BUF_STS_REG_POS_TB_NUM | 588 1 << FH_TCSR_CHNL_TX_BUF_STS_REG_POS_TB_NUM |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index 754fef5b592..90a2b6dee7c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -1153,7 +1153,8 @@ static int rs_switch_to_mimo2(struct iwl_priv *priv,
1153 !sta->ht_info.ht_supported) 1153 !sta->ht_info.ht_supported)
1154 return -1; 1154 return -1;
1155 1155
1156 if (priv->current_ht_config.tx_mimo_ps_mode == IWL_MIMO_PS_STATIC) 1156 if (((sta->ht_info.cap & IEEE80211_HT_CAP_MIMO_PS) >> 2)
1157 == IWL_MIMO_PS_STATIC)
1157 return -1; 1158 return -1;
1158 1159
1159 /* Need both Tx chains/antennas to support MIMO */ 1160 /* Need both Tx chains/antennas to support MIMO */
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 061ffba9c88..e01f048a02d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -181,14 +181,14 @@ static int iwl4965_check_rxon_cmd(struct iwl_rxon_cmd *rxon)
181} 181}
182 182
183/** 183/**
184 * iwl4965_full_rxon_required - check if full RXON (vs RXON_ASSOC) cmd is needed 184 * iwl_full_rxon_required - check if full RXON (vs RXON_ASSOC) cmd is needed
185 * @priv: staging_rxon is compared to active_rxon 185 * @priv: staging_rxon is compared to active_rxon
186 * 186 *
187 * If the RXON structure is changing enough to require a new tune, 187 * If the RXON structure is changing enough to require a new tune,
188 * or is clearing the RXON_FILTER_ASSOC_MSK, then return 1 to indicate that 188 * or is clearing the RXON_FILTER_ASSOC_MSK, then return 1 to indicate that
189 * a new tune (full RXON command, rather than RXON_ASSOC cmd) is required. 189 * a new tune (full RXON command, rather than RXON_ASSOC cmd) is required.
190 */ 190 */
191static int iwl4965_full_rxon_required(struct iwl_priv *priv) 191static int iwl_full_rxon_required(struct iwl_priv *priv)
192{ 192{
193 193
194 /* These items are only settable from the full RXON command */ 194 /* These items are only settable from the full RXON command */
@@ -207,7 +207,6 @@ static int iwl4965_full_rxon_required(struct iwl_priv *priv)
207 priv->active_rxon.ofdm_ht_single_stream_basic_rates) || 207 priv->active_rxon.ofdm_ht_single_stream_basic_rates) ||
208 (priv->staging_rxon.ofdm_ht_dual_stream_basic_rates != 208 (priv->staging_rxon.ofdm_ht_dual_stream_basic_rates !=
209 priv->active_rxon.ofdm_ht_dual_stream_basic_rates) || 209 priv->active_rxon.ofdm_ht_dual_stream_basic_rates) ||
210 (priv->staging_rxon.rx_chain != priv->active_rxon.rx_chain) ||
211 (priv->staging_rxon.assoc_id != priv->active_rxon.assoc_id)) 210 (priv->staging_rxon.assoc_id != priv->active_rxon.assoc_id))
212 return 1; 211 return 1;
213 212
@@ -263,7 +262,7 @@ static int iwl4965_commit_rxon(struct iwl_priv *priv)
263 /* If we don't need to send a full RXON, we can use 262 /* If we don't need to send a full RXON, we can use
264 * iwl4965_rxon_assoc_cmd which is used to reconfigure filter 263 * iwl4965_rxon_assoc_cmd which is used to reconfigure filter
265 * and other flags for the current radio configuration. */ 264 * and other flags for the current radio configuration. */
266 if (!iwl4965_full_rxon_required(priv)) { 265 if (!iwl_full_rxon_required(priv)) {
267 ret = iwl_send_rxon_assoc(priv); 266 ret = iwl_send_rxon_assoc(priv);
268 if (ret) { 267 if (ret) {
269 IWL_ERROR("Error setting RXON_ASSOC (%d)\n", ret); 268 IWL_ERROR("Error setting RXON_ASSOC (%d)\n", ret);
@@ -587,8 +586,6 @@ static void iwl4965_ht_conf(struct iwl_priv *priv,
587 iwl_conf->supported_chan_width = 0; 586 iwl_conf->supported_chan_width = 0;
588 } 587 }
589 588
590 iwl_conf->tx_mimo_ps_mode =
591 (u8)((ht_conf->cap & IEEE80211_HT_CAP_MIMO_PS) >> 2);
592 memcpy(iwl_conf->supp_mcs_set, ht_conf->supp_mcs_set, 16); 589 memcpy(iwl_conf->supp_mcs_set, ht_conf->supp_mcs_set, 16);
593 590
594 iwl_conf->control_channel = ht_bss_conf->primary_channel; 591 iwl_conf->control_channel = ht_bss_conf->primary_channel;
@@ -2190,7 +2187,10 @@ static void __iwl4965_down(struct iwl_priv *priv)
2190 udelay(5); 2187 udelay(5);
2191 2188
2192 /* FIXME: apm_ops.suspend(priv) */ 2189 /* FIXME: apm_ops.suspend(priv) */
2193 priv->cfg->ops->lib->apm_ops.reset(priv); 2190 if (exit_pending || test_bit(STATUS_IN_SUSPEND, &priv->status))
2191 priv->cfg->ops->lib->apm_ops.stop(priv);
2192 else
2193 priv->cfg->ops->lib->apm_ops.reset(priv);
2194 priv->cfg->ops->lib->free_shared_mem(priv); 2194 priv->cfg->ops->lib->free_shared_mem(priv);
2195 2195
2196 exit: 2196 exit:
@@ -2602,6 +2602,7 @@ static int iwl4965_mac_start(struct ieee80211_hw *hw)
2602{ 2602{
2603 struct iwl_priv *priv = hw->priv; 2603 struct iwl_priv *priv = hw->priv;
2604 int ret; 2604 int ret;
2605 u16 pci_cmd;
2605 2606
2606 IWL_DEBUG_MAC80211("enter\n"); 2607 IWL_DEBUG_MAC80211("enter\n");
2607 2608
@@ -2612,6 +2613,13 @@ static int iwl4965_mac_start(struct ieee80211_hw *hw)
2612 pci_restore_state(priv->pci_dev); 2613 pci_restore_state(priv->pci_dev);
2613 pci_enable_msi(priv->pci_dev); 2614 pci_enable_msi(priv->pci_dev);
2614 2615
2616 /* enable interrupts if needed: hw bug w/a */
2617 pci_read_config_word(priv->pci_dev, PCI_COMMAND, &pci_cmd);
2618 if (pci_cmd & PCI_COMMAND_INTX_DISABLE) {
2619 pci_cmd &= ~PCI_COMMAND_INTX_DISABLE;
2620 pci_write_config_word(priv->pci_dev, PCI_COMMAND, pci_cmd);
2621 }
2622
2615 ret = request_irq(priv->pci_dev->irq, iwl4965_isr, IRQF_SHARED, 2623 ret = request_irq(priv->pci_dev->irq, iwl4965_isr, IRQF_SHARED,
2616 DRV_NAME, priv); 2624 DRV_NAME, priv);
2617 if (ret) { 2625 if (ret) {
@@ -3580,7 +3588,7 @@ static int iwl4965_mac_beacon_update(struct ieee80211_hw *hw, struct sk_buff *sk
3580 3588
3581 priv->assoc_id = 0; 3589 priv->assoc_id = 0;
3582 timestamp = ((struct ieee80211_mgmt *)skb->data)->u.beacon.timestamp; 3590 timestamp = ((struct ieee80211_mgmt *)skb->data)->u.beacon.timestamp;
3583 priv->timestamp = le64_to_cpu(timestamp) + (priv->beacon_int * 1000); 3591 priv->timestamp = le64_to_cpu(timestamp);
3584 3592
3585 IWL_DEBUG_MAC80211("leave\n"); 3593 IWL_DEBUG_MAC80211("leave\n");
3586 spin_unlock_irqrestore(&priv->lock, flags); 3594 spin_unlock_irqrestore(&priv->lock, flags);
@@ -4364,15 +4372,18 @@ static void __devexit iwl4965_pci_remove(struct pci_dev *pdev)
4364 iwl_dbgfs_unregister(priv); 4372 iwl_dbgfs_unregister(priv);
4365 sysfs_remove_group(&pdev->dev.kobj, &iwl4965_attribute_group); 4373 sysfs_remove_group(&pdev->dev.kobj, &iwl4965_attribute_group);
4366 4374
4375 /* ieee80211_unregister_hw call wil cause iwl4965_mac_stop to
4376 * to be called and iwl4965_down since we are removing the device
4377 * we need to set STATUS_EXIT_PENDING bit.
4378 */
4379 set_bit(STATUS_EXIT_PENDING, &priv->status);
4367 if (priv->mac80211_registered) { 4380 if (priv->mac80211_registered) {
4368 ieee80211_unregister_hw(priv->hw); 4381 ieee80211_unregister_hw(priv->hw);
4369 priv->mac80211_registered = 0; 4382 priv->mac80211_registered = 0;
4383 } else {
4384 iwl4965_down(priv);
4370 } 4385 }
4371 4386
4372 set_bit(STATUS_EXIT_PENDING, &priv->status);
4373
4374 iwl4965_down(priv);
4375
4376 /* make sure we flush any pending irq or 4387 /* make sure we flush any pending irq or
4377 * tasklet for the driver 4388 * tasklet for the driver
4378 */ 4389 */
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index c72f72579be..80f2f84defa 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -592,12 +592,11 @@ static void iwlcore_free_geos(struct iwl_priv *priv)
592 clear_bit(STATUS_GEO_CONFIGURED, &priv->status); 592 clear_bit(STATUS_GEO_CONFIGURED, &priv->status);
593} 593}
594 594
595static u8 is_single_rx_stream(struct iwl_priv *priv) 595static bool is_single_rx_stream(struct iwl_priv *priv)
596{ 596{
597 return !priv->current_ht_config.is_ht || 597 return !priv->current_ht_config.is_ht ||
598 ((priv->current_ht_config.supp_mcs_set[1] == 0) && 598 ((priv->current_ht_config.supp_mcs_set[1] == 0) &&
599 (priv->current_ht_config.supp_mcs_set[2] == 0)) || 599 (priv->current_ht_config.supp_mcs_set[2] == 0));
600 priv->ps_mode == IWL_MIMO_PS_STATIC;
601} 600}
602 601
603static u8 iwl_is_channel_extension(struct iwl_priv *priv, 602static u8 iwl_is_channel_extension(struct iwl_priv *priv,
@@ -704,33 +703,39 @@ EXPORT_SYMBOL(iwl_set_rxon_ht);
704 * MIMO (dual stream) requires at least 2, but works better with 3. 703 * MIMO (dual stream) requires at least 2, but works better with 3.
705 * This does not determine *which* chains to use, just how many. 704 * This does not determine *which* chains to use, just how many.
706 */ 705 */
707static int iwlcore_get_rx_chain_counter(struct iwl_priv *priv, 706static int iwl_get_active_rx_chain_count(struct iwl_priv *priv)
708 u8 *idle_state, u8 *rx_state)
709{ 707{
710 u8 is_single = is_single_rx_stream(priv); 708 bool is_single = is_single_rx_stream(priv);
711 u8 is_cam = test_bit(STATUS_POWER_PMI, &priv->status) ? 0 : 1; 709 bool is_cam = !test_bit(STATUS_POWER_PMI, &priv->status);
712 710
713 /* # of Rx chains to use when expecting MIMO. */ 711 /* # of Rx chains to use when expecting MIMO. */
714 if (is_single || (!is_cam && (priv->ps_mode == IWL_MIMO_PS_STATIC))) 712 if (is_single || (!is_cam && (priv->ps_mode == IWL_MIMO_PS_STATIC)))
715 *rx_state = 2; 713 return 2;
716 else 714 else
717 *rx_state = 3; 715 return 3;
716}
718 717
718static int iwl_get_idle_rx_chain_count(struct iwl_priv *priv, int active_cnt)
719{
720 int idle_cnt;
721 bool is_cam = !test_bit(STATUS_POWER_PMI, &priv->status);
719 /* # Rx chains when idling and maybe trying to save power */ 722 /* # Rx chains when idling and maybe trying to save power */
720 switch (priv->ps_mode) { 723 switch (priv->ps_mode) {
721 case IWL_MIMO_PS_STATIC: 724 case IWL_MIMO_PS_STATIC:
722 case IWL_MIMO_PS_DYNAMIC: 725 case IWL_MIMO_PS_DYNAMIC:
723 *idle_state = (is_cam) ? 2 : 1; 726 idle_cnt = (is_cam) ? 2 : 1;
724 break; 727 break;
725 case IWL_MIMO_PS_NONE: 728 case IWL_MIMO_PS_NONE:
726 *idle_state = (is_cam) ? *rx_state : 1; 729 idle_cnt = (is_cam) ? active_cnt : 1;
727 break; 730 break;
731 case IWL_MIMO_PS_INVALID:
728 default: 732 default:
729 *idle_state = 1; 733 IWL_ERROR("invalide mimo ps mode %d\n", priv->ps_mode);
734 WARN_ON(1);
735 idle_cnt = -1;
730 break; 736 break;
731 } 737 }
732 738 return idle_cnt;
733 return 0;
734} 739}
735 740
736/** 741/**
@@ -741,34 +746,44 @@ static int iwlcore_get_rx_chain_counter(struct iwl_priv *priv,
741 */ 746 */
742void iwl_set_rxon_chain(struct iwl_priv *priv) 747void iwl_set_rxon_chain(struct iwl_priv *priv)
743{ 748{
744 u8 is_single = is_single_rx_stream(priv); 749 bool is_single = is_single_rx_stream(priv);
745 u8 idle_state, rx_state; 750 bool is_cam = !test_bit(STATUS_POWER_PMI, &priv->status);
746 751 u8 idle_rx_cnt, active_rx_cnt;
747 priv->staging_rxon.rx_chain = 0; 752 u16 rx_chain;
748 rx_state = idle_state = 3;
749 753
750 /* Tell uCode which antennas are actually connected. 754 /* Tell uCode which antennas are actually connected.
751 * Before first association, we assume all antennas are connected. 755 * Before first association, we assume all antennas are connected.
752 * Just after first association, iwl_chain_noise_calibration() 756 * Just after first association, iwl_chain_noise_calibration()
753 * checks which antennas actually *are* connected. */ 757 * checks which antennas actually *are* connected. */
754 priv->staging_rxon.rx_chain |= 758 rx_chain = priv->hw_params.valid_rx_ant << RXON_RX_CHAIN_VALID_POS;
755 cpu_to_le16(priv->hw_params.valid_rx_ant <<
756 RXON_RX_CHAIN_VALID_POS);
757 759
758 /* How many receivers should we use? */ 760 /* How many receivers should we use? */
759 iwlcore_get_rx_chain_counter(priv, &idle_state, &rx_state); 761 active_rx_cnt = iwl_get_active_rx_chain_count(priv);
760 priv->staging_rxon.rx_chain |= 762 idle_rx_cnt = iwl_get_idle_rx_chain_count(priv, active_rx_cnt);
761 cpu_to_le16(rx_state << RXON_RX_CHAIN_MIMO_CNT_POS); 763
762 priv->staging_rxon.rx_chain |= 764 /* correct rx chain count accoridng hw settings */
763 cpu_to_le16(idle_state << RXON_RX_CHAIN_CNT_POS); 765 if (priv->hw_params.rx_chains_num < active_rx_cnt)
764 766 active_rx_cnt = priv->hw_params.rx_chains_num;
765 if (!is_single && (rx_state >= 2) && 767
766 !test_bit(STATUS_POWER_PMI, &priv->status)) 768 if (priv->hw_params.rx_chains_num < idle_rx_cnt)
769 idle_rx_cnt = priv->hw_params.rx_chains_num;
770
771 rx_chain |= active_rx_cnt << RXON_RX_CHAIN_MIMO_CNT_POS;
772 rx_chain |= idle_rx_cnt << RXON_RX_CHAIN_CNT_POS;
773
774 priv->staging_rxon.rx_chain = cpu_to_le16(rx_chain);
775
776 if (!is_single && (active_rx_cnt >= 2) && is_cam)
767 priv->staging_rxon.rx_chain |= RXON_RX_CHAIN_MIMO_FORCE_MSK; 777 priv->staging_rxon.rx_chain |= RXON_RX_CHAIN_MIMO_FORCE_MSK;
768 else 778 else
769 priv->staging_rxon.rx_chain &= ~RXON_RX_CHAIN_MIMO_FORCE_MSK; 779 priv->staging_rxon.rx_chain &= ~RXON_RX_CHAIN_MIMO_FORCE_MSK;
770 780
771 IWL_DEBUG_ASSOC("rx chain %X\n", priv->staging_rxon.rx_chain); 781 IWL_DEBUG_ASSOC("rx_chain=0x%Xi active=%d idle=%d\n",
782 priv->staging_rxon.rx_chain,
783 active_rx_cnt, idle_rx_cnt);
784
785 WARN_ON(active_rx_cnt == 0 || idle_rx_cnt == 0 ||
786 active_rx_cnt < idle_rx_cnt);
772} 787}
773EXPORT_SYMBOL(iwl_set_rxon_chain); 788EXPORT_SYMBOL(iwl_set_rxon_chain);
774 789
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index c19db438306..cdfb343c7ec 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -412,7 +412,6 @@ struct iwl_ht_info {
412 /* self configuration data */ 412 /* self configuration data */
413 u8 is_ht; 413 u8 is_ht;
414 u8 supported_chan_width; 414 u8 supported_chan_width;
415 u16 tx_mimo_ps_mode;
416 u8 is_green_field; 415 u8 is_green_field;
417 u8 sgf; /* HT_SHORT_GI_* short guard interval */ 416 u8 sgf; /* HT_SHORT_GI_* short guard interval */
418 u8 max_amsdu_size; 417 u8 max_amsdu_size;
diff --git a/drivers/net/wireless/iwlwifi/iwl-fh.h b/drivers/net/wireless/iwlwifi/iwl-fh.h
index 944642450d3..cd11c0ca299 100644
--- a/drivers/net/wireless/iwlwifi/iwl-fh.h
+++ b/drivers/net/wireless/iwlwifi/iwl-fh.h
@@ -287,6 +287,7 @@
287 287
288#define FH_RSSR_CHNL0_RX_STATUS_CHNL_IDLE (0x01000000) 288#define FH_RSSR_CHNL0_RX_STATUS_CHNL_IDLE (0x01000000)
289 289
290#define FH_MEM_TFDIB_REG1_ADDR_BITSHIFT 28
290 291
291/** 292/**
292 * Transmit DMA Channel Control/Status Registers (TCSR) 293 * Transmit DMA Channel Control/Status Registers (TCSR)
diff --git a/drivers/net/wireless/iwlwifi/iwl-led.c b/drivers/net/wireless/iwlwifi/iwl-led.c
index cb11c4a4d69..4eee1b163cd 100644
--- a/drivers/net/wireless/iwlwifi/iwl-led.c
+++ b/drivers/net/wireless/iwlwifi/iwl-led.c
@@ -27,7 +27,6 @@
27 27
28#include <linux/kernel.h> 28#include <linux/kernel.h>
29#include <linux/module.h> 29#include <linux/module.h>
30#include <linux/version.h>
31#include <linux/init.h> 30#include <linux/init.h>
32#include <linux/pci.h> 31#include <linux/pci.h>
33#include <linux/dma-mapping.h> 32#include <linux/dma-mapping.h>
diff --git a/drivers/net/wireless/iwlwifi/iwl-rfkill.c b/drivers/net/wireless/iwlwifi/iwl-rfkill.c
index e5e5846e9f2..5d642298f04 100644
--- a/drivers/net/wireless/iwlwifi/iwl-rfkill.c
+++ b/drivers/net/wireless/iwlwifi/iwl-rfkill.c
@@ -27,7 +27,6 @@
27 *****************************************************************************/ 27 *****************************************************************************/
28#include <linux/kernel.h> 28#include <linux/kernel.h>
29#include <linux/module.h> 29#include <linux/module.h>
30#include <linux/version.h>
31#include <linux/init.h> 30#include <linux/init.h>
32 31
33#include <net/mac80211.h> 32#include <net/mac80211.h>
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
index f3f6ea49fdd..e81bfc42a7c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
@@ -1173,7 +1173,10 @@ void iwl_rx_reply_rx(struct iwl_priv *priv,
1173 1173
1174 rx_status.antenna = 0; 1174 rx_status.antenna = 0;
1175 rx_status.flag = 0; 1175 rx_status.flag = 0;
1176 rx_status.flag |= RX_FLAG_TSFT; 1176
1177 /* TSF isn't reliable. In order to allow smooth user experience,
1178 * this W/A doesn't propagate it to the mac80211 */
1179 /*rx_status.flag |= RX_FLAG_TSFT;*/
1177 1180
1178 if ((unlikely(rx_start->cfg_phy_cnt > 20))) { 1181 if ((unlikely(rx_start->cfg_phy_cnt > 20))) {
1179 IWL_DEBUG_DROP("dsp size out of range [0,20]: %d/n", 1182 IWL_DEBUG_DROP("dsp size out of range [0,20]: %d/n",
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c
index 9bb6adb28b7..6c8ac3a87d5 100644
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -421,7 +421,7 @@ static int iwl_get_channels_for_scan(struct iwl_priv *priv,
421 else 421 else
422 scan_ch->type = SCAN_CHANNEL_TYPE_ACTIVE; 422 scan_ch->type = SCAN_CHANNEL_TYPE_ACTIVE;
423 423
424 if ((scan_ch->type & SCAN_CHANNEL_TYPE_ACTIVE) && n_probes) 424 if (n_probes)
425 scan_ch->type |= IWL_SCAN_PROBE_MASK(n_probes); 425 scan_ch->type |= IWL_SCAN_PROBE_MASK(n_probes);
426 426
427 scan_ch->active_dwell = cpu_to_le16(active_dwell); 427 scan_ch->active_dwell = cpu_to_le16(active_dwell);
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index d82823b5c8a..78b1a7a4ca4 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -402,12 +402,11 @@ static int iwl_hw_tx_queue_init(struct iwl_priv *priv,
402/** 402/**
403 * iwl_tx_queue_init - Allocate and initialize one tx/cmd queue 403 * iwl_tx_queue_init - Allocate and initialize one tx/cmd queue
404 */ 404 */
405static int iwl_tx_queue_init(struct iwl_priv *priv, 405static int iwl_tx_queue_init(struct iwl_priv *priv, struct iwl_tx_queue *txq,
406 struct iwl_tx_queue *txq,
407 int slots_num, u32 txq_id) 406 int slots_num, u32 txq_id)
408{ 407{
409 int i, len; 408 int i, len;
410 int rc = 0; 409 int ret;
411 410
412 /* 411 /*
413 * Alloc buffer array for commands (Tx or other types of commands). 412 * Alloc buffer array for commands (Tx or other types of commands).
@@ -426,19 +425,16 @@ static int iwl_tx_queue_init(struct iwl_priv *priv,
426 continue; 425 continue;
427 } 426 }
428 427
429 txq->cmd[i] = kmalloc(len, GFP_KERNEL | GFP_DMA); 428 txq->cmd[i] = kmalloc(len, GFP_KERNEL);
430 if (!txq->cmd[i]) 429 if (!txq->cmd[i])
431 return -ENOMEM; 430 goto err;
432 } 431 }
433 432
434 /* Alloc driver data array and TFD circular buffer */ 433 /* Alloc driver data array and TFD circular buffer */
435 rc = iwl_tx_queue_alloc(priv, txq, txq_id); 434 ret = iwl_tx_queue_alloc(priv, txq, txq_id);
436 if (rc) { 435 if (ret)
437 for (i = 0; i < slots_num; i++) 436 goto err;
438 kfree(txq->cmd[i]);
439 437
440 return -ENOMEM;
441 }
442 txq->need_update = 0; 438 txq->need_update = 0;
443 439
444 /* TFD_QUEUE_SIZE_MAX must be power-of-two size, otherwise 440 /* TFD_QUEUE_SIZE_MAX must be power-of-two size, otherwise
@@ -452,6 +448,17 @@ static int iwl_tx_queue_init(struct iwl_priv *priv,
452 iwl_hw_tx_queue_init(priv, txq); 448 iwl_hw_tx_queue_init(priv, txq);
453 449
454 return 0; 450 return 0;
451err:
452 for (i = 0; i < slots_num; i++) {
453 kfree(txq->cmd[i]);
454 txq->cmd[i] = NULL;
455 }
456
457 if (txq_id == IWL_CMD_QUEUE_NUM) {
458 kfree(txq->cmd[slots_num]);
459 txq->cmd[slots_num] = NULL;
460 }
461 return -ENOMEM;
455} 462}
456/** 463/**
457 * iwl_hw_txq_ctx_free - Free TXQ Context 464 * iwl_hw_txq_ctx_free - Free TXQ Context
diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
index 04d7a251e3f..8941919001b 100644
--- a/drivers/net/wireless/libertas/if_cs.c
+++ b/drivers/net/wireless/libertas/if_cs.c
@@ -595,7 +595,7 @@ static int if_cs_prog_helper(struct if_cs_card *card)
595 if (ret < 0) { 595 if (ret < 0) {
596 lbs_pr_err("can't download helper at 0x%x, ret %d\n", 596 lbs_pr_err("can't download helper at 0x%x, ret %d\n",
597 sent, ret); 597 sent, ret);
598 goto done; 598 goto err_release;
599 } 599 }
600 600
601 if (count == 0) 601 if (count == 0)
@@ -604,9 +604,8 @@ static int if_cs_prog_helper(struct if_cs_card *card)
604 sent += count; 604 sent += count;
605 } 605 }
606 606
607err_release:
607 release_firmware(fw); 608 release_firmware(fw);
608 ret = 0;
609
610done: 609done:
611 lbs_deb_leave_args(LBS_DEB_CS, "ret %d", ret); 610 lbs_deb_leave_args(LBS_DEB_CS, "ret %d", ret);
612 return ret; 611 return ret;
@@ -676,14 +675,8 @@ static int if_cs_prog_real(struct if_cs_card *card)
676 } 675 }
677 676
678 ret = if_cs_poll_while_fw_download(card, IF_CS_SCRATCH, 0x5a); 677 ret = if_cs_poll_while_fw_download(card, IF_CS_SCRATCH, 0x5a);
679 if (ret < 0) { 678 if (ret < 0)
680 lbs_pr_err("firmware download failed\n"); 679 lbs_pr_err("firmware download failed\n");
681 goto err_release;
682 }
683
684 ret = 0;
685 goto done;
686
687 680
688err_release: 681err_release:
689 release_firmware(fw); 682 release_firmware(fw);
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
index 1ebcafe7ca5..36c004e1560 100644
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -1970,6 +1970,9 @@ __orinoco_set_multicast_list(struct net_device *dev)
1970 priv->promiscuous = promisc; 1970 priv->promiscuous = promisc;
1971 } 1971 }
1972 1972
1973 /* If we're not in promiscuous mode, then we need to set the
1974 * group address if either we want to multicast, or if we were
1975 * multicasting and want to stop */
1973 if (! promisc && (mc_count || priv->mc_count) ) { 1976 if (! promisc && (mc_count || priv->mc_count) ) {
1974 struct dev_mc_list *p = dev->mc_list; 1977 struct dev_mc_list *p = dev->mc_list;
1975 struct hermes_multicast mclist; 1978 struct hermes_multicast mclist;
@@ -1989,9 +1992,10 @@ __orinoco_set_multicast_list(struct net_device *dev)
1989 printk(KERN_WARNING "%s: Multicast list is " 1992 printk(KERN_WARNING "%s: Multicast list is "
1990 "longer than mc_count\n", dev->name); 1993 "longer than mc_count\n", dev->name);
1991 1994
1992 err = hermes_write_ltv(hw, USER_BAP, HERMES_RID_CNFGROUPADDRESSES, 1995 err = hermes_write_ltv(hw, USER_BAP,
1993 HERMES_BYTES_TO_RECLEN(priv->mc_count * ETH_ALEN), 1996 HERMES_RID_CNFGROUPADDRESSES,
1994 &mclist); 1997 HERMES_BYTES_TO_RECLEN(mc_count * ETH_ALEN),
1998 &mclist);
1995 if (err) 1999 if (err)
1996 printk(KERN_ERR "%s: Error %d setting multicast list.\n", 2000 printk(KERN_ERR "%s: Error %d setting multicast list.\n",
1997 dev->name, err); 2001 dev->name, err);
diff --git a/drivers/net/wireless/rt2x00/rt2x00reg.h b/drivers/net/wireless/rt2x00/rt2x00reg.h
index 7e88ce5651b..2ea7866abd5 100644
--- a/drivers/net/wireless/rt2x00/rt2x00reg.h
+++ b/drivers/net/wireless/rt2x00/rt2x00reg.h
@@ -136,7 +136,7 @@ struct rt2x00_field32 {
136 */ 136 */
137#define is_power_of_two(x) ( !((x) & ((x)-1)) ) 137#define is_power_of_two(x) ( !((x) & ((x)-1)) )
138#define low_bit_mask(x) ( ((x)-1) & ~(x) ) 138#define low_bit_mask(x) ( ((x)-1) & ~(x) )
139#define is_valid_mask(x) is_power_of_two(1 + (x) + low_bit_mask(x)) 139#define is_valid_mask(x) is_power_of_two(1LU + (x) + low_bit_mask(x))
140 140
141/* 141/*
142 * Macro's to find first set bit in a variable. 142 * Macro's to find first set bit in a variable.
@@ -173,8 +173,7 @@ struct rt2x00_field32 {
173 * does not exceed the given typelimit. 173 * does not exceed the given typelimit.
174 */ 174 */
175#define FIELD_CHECK(__mask, __type) \ 175#define FIELD_CHECK(__mask, __type) \
176 BUILD_BUG_ON(!__builtin_constant_p(__mask) || \ 176 BUILD_BUG_ON(!(__mask) || \
177 !(__mask) || \
178 !is_valid_mask(__mask) || \ 177 !is_valid_mask(__mask) || \
179 (__mask) != (__type)(__mask)) \ 178 (__mask) != (__type)(__mask)) \
180 179
diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c
index da8b7433e3a..a60ae86bd5c 100644
--- a/drivers/net/wireless/zd1211rw/zd_usb.c
+++ b/drivers/net/wireless/zd1211rw/zd_usb.c
@@ -58,6 +58,7 @@ static struct usb_device_id usb_ids[] = {
58 { USB_DEVICE(0x0586, 0x3407), .driver_info = DEVICE_ZD1211 }, 58 { USB_DEVICE(0x0586, 0x3407), .driver_info = DEVICE_ZD1211 },
59 { USB_DEVICE(0x129b, 0x1666), .driver_info = DEVICE_ZD1211 }, 59 { USB_DEVICE(0x129b, 0x1666), .driver_info = DEVICE_ZD1211 },
60 { USB_DEVICE(0x157e, 0x300a), .driver_info = DEVICE_ZD1211 }, 60 { USB_DEVICE(0x157e, 0x300a), .driver_info = DEVICE_ZD1211 },
61 { USB_DEVICE(0x0105, 0x145f), .driver_info = DEVICE_ZD1211 },
61 /* ZD1211B */ 62 /* ZD1211B */
62 { USB_DEVICE(0x0ace, 0x1215), .driver_info = DEVICE_ZD1211B }, 63 { USB_DEVICE(0x0ace, 0x1215), .driver_info = DEVICE_ZD1211B },
63 { USB_DEVICE(0x157e, 0x300d), .driver_info = DEVICE_ZD1211B }, 64 { USB_DEVICE(0x157e, 0x300d), .driver_info = DEVICE_ZD1211B },
diff --git a/drivers/oprofile/cpu_buffer.c b/drivers/oprofile/cpu_buffer.c
index 2450b3a393f..7ba78e6d210 100644
--- a/drivers/oprofile/cpu_buffer.c
+++ b/drivers/oprofile/cpu_buffer.c
@@ -38,8 +38,10 @@ void free_cpu_buffers(void)
38{ 38{
39 int i; 39 int i;
40 40
41 for_each_online_cpu(i) 41 for_each_online_cpu(i) {
42 vfree(per_cpu(cpu_buffer, i).buffer); 42 vfree(per_cpu(cpu_buffer, i).buffer);
43 per_cpu(cpu_buffer, i).buffer = NULL;
44 }
43} 45}
44 46
45int alloc_cpu_buffers(void) 47int alloc_cpu_buffers(void)
diff --git a/drivers/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c
index e7fbac52993..8d692a5c8e7 100644
--- a/drivers/oprofile/event_buffer.c
+++ b/drivers/oprofile/event_buffer.c
@@ -93,6 +93,8 @@ out:
93void free_event_buffer(void) 93void free_event_buffer(void)
94{ 94{
95 vfree(event_buffer); 95 vfree(event_buffer);
96
97 event_buffer = NULL;
96} 98}
97 99
98 100
diff --git a/drivers/pci/hotplug/fakephp.c b/drivers/pci/hotplug/fakephp.c
index 40337a06c18..146ca9cd156 100644
--- a/drivers/pci/hotplug/fakephp.c
+++ b/drivers/pci/hotplug/fakephp.c
@@ -320,15 +320,15 @@ static int disable_slot(struct hotplug_slot *slot)
320 return -ENODEV; 320 return -ENODEV;
321 } 321 }
322 322
323 /* remove the device from the pci core */
324 pci_remove_bus_device(dev);
325
323 /* queue work item to blow away this sysfs entry and other 326 /* queue work item to blow away this sysfs entry and other
324 * parts. 327 * parts.
325 */ 328 */
326 INIT_WORK(&dslot->remove_work, remove_slot_worker); 329 INIT_WORK(&dslot->remove_work, remove_slot_worker);
327 queue_work(dummyphp_wq, &dslot->remove_work); 330 queue_work(dummyphp_wq, &dslot->remove_work);
328 331
329 /* blow away this sysfs entry and other parts. */
330 remove_slot(dslot);
331
332 pci_dev_put(dev); 332 pci_dev_put(dev);
333 } 333 }
334 return 0; 334 return 0;
diff --git a/drivers/pci/hotplug/pciehp.h b/drivers/pci/hotplug/pciehp.h
index e3a1e7e7dba..9e6cec67e1c 100644
--- a/drivers/pci/hotplug/pciehp.h
+++ b/drivers/pci/hotplug/pciehp.h
@@ -43,7 +43,6 @@ extern int pciehp_poll_mode;
43extern int pciehp_poll_time; 43extern int pciehp_poll_time;
44extern int pciehp_debug; 44extern int pciehp_debug;
45extern int pciehp_force; 45extern int pciehp_force;
46extern int pciehp_slot_with_bus;
47extern struct workqueue_struct *pciehp_wq; 46extern struct workqueue_struct *pciehp_wq;
48 47
49#define dbg(format, arg...) \ 48#define dbg(format, arg...) \
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
index 3677495c4f9..4fd5355bc3b 100644
--- a/drivers/pci/hotplug/pciehp_core.c
+++ b/drivers/pci/hotplug/pciehp_core.c
@@ -41,7 +41,6 @@ int pciehp_debug;
41int pciehp_poll_mode; 41int pciehp_poll_mode;
42int pciehp_poll_time; 42int pciehp_poll_time;
43int pciehp_force; 43int pciehp_force;
44int pciehp_slot_with_bus;
45struct workqueue_struct *pciehp_wq; 44struct workqueue_struct *pciehp_wq;
46 45
47#define DRIVER_VERSION "0.4" 46#define DRIVER_VERSION "0.4"
@@ -56,12 +55,10 @@ module_param(pciehp_debug, bool, 0644);
56module_param(pciehp_poll_mode, bool, 0644); 55module_param(pciehp_poll_mode, bool, 0644);
57module_param(pciehp_poll_time, int, 0644); 56module_param(pciehp_poll_time, int, 0644);
58module_param(pciehp_force, bool, 0644); 57module_param(pciehp_force, bool, 0644);
59module_param(pciehp_slot_with_bus, bool, 0644);
60MODULE_PARM_DESC(pciehp_debug, "Debugging mode enabled or not"); 58MODULE_PARM_DESC(pciehp_debug, "Debugging mode enabled or not");
61MODULE_PARM_DESC(pciehp_poll_mode, "Using polling mechanism for hot-plug events or not"); 59MODULE_PARM_DESC(pciehp_poll_mode, "Using polling mechanism for hot-plug events or not");
62MODULE_PARM_DESC(pciehp_poll_time, "Polling mechanism frequency, in seconds"); 60MODULE_PARM_DESC(pciehp_poll_time, "Polling mechanism frequency, in seconds");
63MODULE_PARM_DESC(pciehp_force, "Force pciehp, even if _OSC and OSHP are missing"); 61MODULE_PARM_DESC(pciehp_force, "Force pciehp, even if _OSC and OSHP are missing");
64MODULE_PARM_DESC(pciehp_slot_with_bus, "Use bus number in the slot name");
65 62
66#define PCIE_MODULE_NAME "pciehp" 63#define PCIE_MODULE_NAME "pciehp"
67 64
@@ -194,6 +191,7 @@ static int init_slots(struct controller *ctrl)
194 struct slot *slot; 191 struct slot *slot;
195 struct hotplug_slot *hotplug_slot; 192 struct hotplug_slot *hotplug_slot;
196 struct hotplug_slot_info *info; 193 struct hotplug_slot_info *info;
194 int len, dup = 1;
197 int retval = -ENOMEM; 195 int retval = -ENOMEM;
198 196
199 list_for_each_entry(slot, &ctrl->slot_list, slot_list) { 197 list_for_each_entry(slot, &ctrl->slot_list, slot_list) {
@@ -220,15 +218,24 @@ static int init_slots(struct controller *ctrl)
220 dbg("Registering bus=%x dev=%x hp_slot=%x sun=%x " 218 dbg("Registering bus=%x dev=%x hp_slot=%x sun=%x "
221 "slot_device_offset=%x\n", slot->bus, slot->device, 219 "slot_device_offset=%x\n", slot->bus, slot->device,
222 slot->hp_slot, slot->number, ctrl->slot_device_offset); 220 slot->hp_slot, slot->number, ctrl->slot_device_offset);
221duplicate_name:
223 retval = pci_hp_register(hotplug_slot, 222 retval = pci_hp_register(hotplug_slot,
224 ctrl->pci_dev->subordinate, 223 ctrl->pci_dev->subordinate,
225 slot->device); 224 slot->device);
226 if (retval) { 225 if (retval) {
226 /*
227 * If slot N already exists, we'll try to create
228 * slot N-1, N-2 ... N-M, until we overflow.
229 */
230 if (retval == -EEXIST) {
231 len = snprintf(slot->name, SLOT_NAME_SIZE,
232 "%d-%d", slot->number, dup++);
233 if (len < SLOT_NAME_SIZE)
234 goto duplicate_name;
235 else
236 err("duplicate slot name overflow\n");
237 }
227 err("pci_hp_register failed with error %d\n", retval); 238 err("pci_hp_register failed with error %d\n", retval);
228 if (retval == -EEXIST)
229 err("Failed to register slot because of name "
230 "collision. Try \'pciehp_slot_with_bus\' "
231 "module option.\n");
232 goto error_info; 239 goto error_info;
233 } 240 }
234 /* create additional sysfs entries */ 241 /* create additional sysfs entries */
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
index ad27e9e225a..9d934ddee95 100644
--- a/drivers/pci/hotplug/pciehp_hpc.c
+++ b/drivers/pci/hotplug/pciehp_hpc.c
@@ -258,7 +258,7 @@ static int pcie_poll_cmd(struct controller *ctrl)
258 return 1; 258 return 1;
259 } 259 }
260 } 260 }
261 while (timeout > 1000) { 261 while (timeout > 0) {
262 msleep(10); 262 msleep(10);
263 timeout -= 10; 263 timeout -= 10;
264 if (!pciehp_readw(ctrl, SLOTSTATUS, &slot_status)) { 264 if (!pciehp_readw(ctrl, SLOTSTATUS, &slot_status)) {
@@ -1030,15 +1030,6 @@ static void pcie_shutdown_notification(struct controller *ctrl)
1030 pciehp_free_irq(ctrl); 1030 pciehp_free_irq(ctrl);
1031} 1031}
1032 1032
1033static void make_slot_name(struct slot *slot)
1034{
1035 if (pciehp_slot_with_bus)
1036 snprintf(slot->name, SLOT_NAME_SIZE, "%04d_%04d",
1037 slot->bus, slot->number);
1038 else
1039 snprintf(slot->name, SLOT_NAME_SIZE, "%d", slot->number);
1040}
1041
1042static int pcie_init_slot(struct controller *ctrl) 1033static int pcie_init_slot(struct controller *ctrl)
1043{ 1034{
1044 struct slot *slot; 1035 struct slot *slot;
@@ -1053,7 +1044,7 @@ static int pcie_init_slot(struct controller *ctrl)
1053 slot->device = ctrl->slot_device_offset + slot->hp_slot; 1044 slot->device = ctrl->slot_device_offset + slot->hp_slot;
1054 slot->hpc_ops = ctrl->hpc_ops; 1045 slot->hpc_ops = ctrl->hpc_ops;
1055 slot->number = ctrl->first_slot; 1046 slot->number = ctrl->first_slot;
1056 make_slot_name(slot); 1047 snprintf(slot->name, SLOT_NAME_SIZE, "%d", slot->number);
1057 mutex_init(&slot->lock); 1048 mutex_init(&slot->lock);
1058 INIT_DELAYED_WORK(&slot->work, pciehp_queue_pushbutton_work); 1049 INIT_DELAYED_WORK(&slot->work, pciehp_queue_pushbutton_work);
1059 list_add(&slot->slot_list, &ctrl->slot_list); 1050 list_add(&slot->slot_list, &ctrl->slot_list);
diff --git a/drivers/pci/hotplug/shpchp_core.c b/drivers/pci/hotplug/shpchp_core.c
index a8cbd039b85..cc38615395f 100644
--- a/drivers/pci/hotplug/shpchp_core.c
+++ b/drivers/pci/hotplug/shpchp_core.c
@@ -39,7 +39,6 @@
39int shpchp_debug; 39int shpchp_debug;
40int shpchp_poll_mode; 40int shpchp_poll_mode;
41int shpchp_poll_time; 41int shpchp_poll_time;
42static int shpchp_slot_with_bus;
43struct workqueue_struct *shpchp_wq; 42struct workqueue_struct *shpchp_wq;
44 43
45#define DRIVER_VERSION "0.4" 44#define DRIVER_VERSION "0.4"
@@ -53,11 +52,9 @@ MODULE_LICENSE("GPL");
53module_param(shpchp_debug, bool, 0644); 52module_param(shpchp_debug, bool, 0644);
54module_param(shpchp_poll_mode, bool, 0644); 53module_param(shpchp_poll_mode, bool, 0644);
55module_param(shpchp_poll_time, int, 0644); 54module_param(shpchp_poll_time, int, 0644);
56module_param(shpchp_slot_with_bus, bool, 0644);
57MODULE_PARM_DESC(shpchp_debug, "Debugging mode enabled or not"); 55MODULE_PARM_DESC(shpchp_debug, "Debugging mode enabled or not");
58MODULE_PARM_DESC(shpchp_poll_mode, "Using polling mechanism for hot-plug events or not"); 56MODULE_PARM_DESC(shpchp_poll_mode, "Using polling mechanism for hot-plug events or not");
59MODULE_PARM_DESC(shpchp_poll_time, "Polling mechanism frequency, in seconds"); 57MODULE_PARM_DESC(shpchp_poll_time, "Polling mechanism frequency, in seconds");
60MODULE_PARM_DESC(shpchp_slot_with_bus, "Use bus number in the slot name");
61 58
62#define SHPC_MODULE_NAME "shpchp" 59#define SHPC_MODULE_NAME "shpchp"
63 60
@@ -99,23 +96,13 @@ static void release_slot(struct hotplug_slot *hotplug_slot)
99 kfree(slot); 96 kfree(slot);
100} 97}
101 98
102static void make_slot_name(struct slot *slot)
103{
104 if (shpchp_slot_with_bus)
105 snprintf(slot->hotplug_slot->name, SLOT_NAME_SIZE, "%04d_%04d",
106 slot->bus, slot->number);
107 else
108 snprintf(slot->hotplug_slot->name, SLOT_NAME_SIZE, "%d",
109 slot->number);
110}
111
112static int init_slots(struct controller *ctrl) 99static int init_slots(struct controller *ctrl)
113{ 100{
114 struct slot *slot; 101 struct slot *slot;
115 struct hotplug_slot *hotplug_slot; 102 struct hotplug_slot *hotplug_slot;
116 struct hotplug_slot_info *info; 103 struct hotplug_slot_info *info;
117 int retval = -ENOMEM; 104 int retval = -ENOMEM;
118 int i; 105 int i, len, dup = 1;
119 106
120 for (i = 0; i < ctrl->num_slots; i++) { 107 for (i = 0; i < ctrl->num_slots; i++) {
121 slot = kzalloc(sizeof(*slot), GFP_KERNEL); 108 slot = kzalloc(sizeof(*slot), GFP_KERNEL);
@@ -146,7 +133,7 @@ static int init_slots(struct controller *ctrl)
146 /* register this slot with the hotplug pci core */ 133 /* register this slot with the hotplug pci core */
147 hotplug_slot->private = slot; 134 hotplug_slot->private = slot;
148 hotplug_slot->release = &release_slot; 135 hotplug_slot->release = &release_slot;
149 make_slot_name(slot); 136 snprintf(slot->name, SLOT_NAME_SIZE, "%d", slot->number);
150 hotplug_slot->ops = &shpchp_hotplug_slot_ops; 137 hotplug_slot->ops = &shpchp_hotplug_slot_ops;
151 138
152 get_power_status(hotplug_slot, &info->power_status); 139 get_power_status(hotplug_slot, &info->power_status);
@@ -157,14 +144,23 @@ static int init_slots(struct controller *ctrl)
157 dbg("Registering bus=%x dev=%x hp_slot=%x sun=%x " 144 dbg("Registering bus=%x dev=%x hp_slot=%x sun=%x "
158 "slot_device_offset=%x\n", slot->bus, slot->device, 145 "slot_device_offset=%x\n", slot->bus, slot->device,
159 slot->hp_slot, slot->number, ctrl->slot_device_offset); 146 slot->hp_slot, slot->number, ctrl->slot_device_offset);
147duplicate_name:
160 retval = pci_hp_register(slot->hotplug_slot, 148 retval = pci_hp_register(slot->hotplug_slot,
161 ctrl->pci_dev->subordinate, slot->device); 149 ctrl->pci_dev->subordinate, slot->device);
162 if (retval) { 150 if (retval) {
151 /*
152 * If slot N already exists, we'll try to create
153 * slot N-1, N-2 ... N-M, until we overflow.
154 */
155 if (retval == -EEXIST) {
156 len = snprintf(slot->name, SLOT_NAME_SIZE,
157 "%d-%d", slot->number, dup++);
158 if (len < SLOT_NAME_SIZE)
159 goto duplicate_name;
160 else
161 err("duplicate slot name overflow\n");
162 }
163 err("pci_hp_register failed with error %d\n", retval); 163 err("pci_hp_register failed with error %d\n", retval);
164 if (retval == -EEXIST)
165 err("Failed to register slot because of name "
166 "collision. Try \'shpchp_slot_with_bus\' "
167 "module option.\n");
168 goto error_info; 164 goto error_info;
169 } 165 }
170 166
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
index 8d0e60ac849..c3edcdc08e7 100644
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@ -2348,11 +2348,34 @@ static void __init iommu_exit_mempool(void)
2348 2348
2349} 2349}
2350 2350
2351static int blacklist_iommu(const struct dmi_system_id *id)
2352{
2353 printk(KERN_INFO "%s detected; disabling IOMMU\n",
2354 id->ident);
2355 dmar_disabled = 1;
2356 return 0;
2357}
2358
2359static struct dmi_system_id __initdata intel_iommu_dmi_table[] = {
2360 { /* Some DG33BU BIOS revisions advertised non-existent VT-d */
2361 .callback = blacklist_iommu,
2362 .ident = "Intel DG33BU",
2363 { DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"),
2364 DMI_MATCH(DMI_BOARD_NAME, "DG33BU"),
2365 }
2366 },
2367 { }
2368};
2369
2370
2351void __init detect_intel_iommu(void) 2371void __init detect_intel_iommu(void)
2352{ 2372{
2353 if (swiotlb || no_iommu || iommu_detected || dmar_disabled) 2373 if (swiotlb || no_iommu || iommu_detected || dmar_disabled)
2354 return; 2374 return;
2355 if (early_dmar_detect()) { 2375 if (early_dmar_detect()) {
2376 dmi_check_system(intel_iommu_dmi_table);
2377 if (dmar_disabled)
2378 return;
2356 iommu_detected = 1; 2379 iommu_detected = 1;
2357 } 2380 }
2358} 2381}
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 9c718583a23..77baff022f7 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -16,6 +16,7 @@
16 16
17 17
18#include <linux/kernel.h> 18#include <linux/kernel.h>
19#include <linux/sched.h>
19#include <linux/pci.h> 20#include <linux/pci.h>
20#include <linux/stat.h> 21#include <linux/stat.h>
21#include <linux/topology.h> 22#include <linux/topology.h>
@@ -484,6 +485,21 @@ pci_mmap_legacy_mem(struct kobject *kobj, struct bin_attribute *attr,
484#endif /* HAVE_PCI_LEGACY */ 485#endif /* HAVE_PCI_LEGACY */
485 486
486#ifdef HAVE_PCI_MMAP 487#ifdef HAVE_PCI_MMAP
488
489static int pci_mmap_fits(struct pci_dev *pdev, int resno, struct vm_area_struct *vma)
490{
491 unsigned long nr, start, size;
492
493 nr = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT;
494 start = vma->vm_pgoff;
495 size = pci_resource_len(pdev, resno) >> PAGE_SHIFT;
496 if (start < size && size - start >= nr)
497 return 1;
498 WARN(1, "process \"%s\" tried to map 0x%08lx-0x%08lx on %s BAR %d (size 0x%08lx)\n",
499 current->comm, start, start+nr, pci_name(pdev), resno, size);
500 return 0;
501}
502
487/** 503/**
488 * pci_mmap_resource - map a PCI resource into user memory space 504 * pci_mmap_resource - map a PCI resource into user memory space
489 * @kobj: kobject for mapping 505 * @kobj: kobject for mapping
@@ -510,6 +526,9 @@ pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
510 if (i >= PCI_ROM_RESOURCE) 526 if (i >= PCI_ROM_RESOURCE)
511 return -ENODEV; 527 return -ENODEV;
512 528
529 if (!pci_mmap_fits(pdev, i, vma))
530 return -EINVAL;
531
513 /* pci_mmap_page_range() expects the same kind of entry as coming 532 /* pci_mmap_page_range() expects the same kind of entry as coming
514 * from /proc/bus/pci/ which is a "user visible" value. If this is 533 * from /proc/bus/pci/ which is a "user visible" value. If this is
515 * different from the resource itself, arch will do necessary fixup. 534 * different from the resource itself, arch will do necessary fixup.
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
index 9a7c9e1408a..851f5b83cdb 100644
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -527,7 +527,7 @@ static int pcie_aspm_sanity_check(struct pci_dev *pdev)
527 */ 527 */
528 pci_read_config_dword(child_dev, child_pos + PCI_EXP_DEVCAP, 528 pci_read_config_dword(child_dev, child_pos + PCI_EXP_DEVCAP,
529 &reg32); 529 &reg32);
530 if (!(reg32 & PCI_EXP_DEVCAP_RBER && !aspm_force)) { 530 if (!(reg32 & PCI_EXP_DEVCAP_RBER) && !aspm_force) {
531 printk("Pre-1.1 PCIe device detected, " 531 printk("Pre-1.1 PCIe device detected, "
532 "disable ASPM for %s. It can be enabled forcedly" 532 "disable ASPM for %s. It can be enabled forcedly"
533 " with 'pcie_aspm=force'\n", pci_name(pdev)); 533 " with 'pcie_aspm=force'\n", pci_name(pdev));
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index cce2f4cb1fb..36698e57b97 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -304,6 +304,9 @@ static int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
304 } else { 304 } else {
305 res->start = l64; 305 res->start = l64;
306 res->end = l64 + sz64; 306 res->end = l64 + sz64;
307 printk(KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
308 pci_name(dev), pos, (unsigned long long)res->start,
309 (unsigned long long)res->end);
307 } 310 }
308 } else { 311 } else {
309 sz = pci_size(l, sz, mask); 312 sz = pci_size(l, sz, mask);
@@ -313,6 +316,9 @@ static int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
313 316
314 res->start = l; 317 res->start = l;
315 res->end = l + sz; 318 res->end = l + sz;
319 printk(KERN_DEBUG "PCI: %s reg %x %s: [%llx, %llx]\n", pci_name(dev),
320 pos, (res->flags & IORESOURCE_IO) ? "io port":"32bit mmio",
321 (unsigned long long)res->start, (unsigned long long)res->end);
316 } 322 }
317 323
318 out: 324 out:
@@ -383,7 +389,9 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child)
383 res->start = base; 389 res->start = base;
384 if (!res->end) 390 if (!res->end)
385 res->end = limit + 0xfff; 391 res->end = limit + 0xfff;
386 printk(KERN_INFO "PCI: bridge %s io port: [%llx, %llx]\n", pci_name(dev), res->start, res->end); 392 printk(KERN_DEBUG "PCI: bridge %s io port: [%llx, %llx]\n",
393 pci_name(dev), (unsigned long long) res->start,
394 (unsigned long long) res->end);
387 } 395 }
388 396
389 res = child->resource[1]; 397 res = child->resource[1];
@@ -395,7 +403,9 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child)
395 res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM; 403 res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM;
396 res->start = base; 404 res->start = base;
397 res->end = limit + 0xfffff; 405 res->end = limit + 0xfffff;
398 printk(KERN_INFO "PCI: bridge %s 32bit mmio: [%llx, %llx]\n", pci_name(dev), res->start, res->end); 406 printk(KERN_DEBUG "PCI: bridge %s 32bit mmio: [%llx, %llx]\n",
407 pci_name(dev), (unsigned long long) res->start,
408 (unsigned long long) res->end);
399 } 409 }
400 410
401 res = child->resource[2]; 411 res = child->resource[2];
@@ -431,7 +441,9 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child)
431 res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM | IORESOURCE_PREFETCH; 441 res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM | IORESOURCE_PREFETCH;
432 res->start = base; 442 res->start = base;
433 res->end = limit + 0xfffff; 443 res->end = limit + 0xfffff;
434 printk(KERN_INFO "PCI: bridge %s %sbit mmio pref: [%llx, %llx]\n", pci_name(dev), (res->flags & PCI_PREF_RANGE_TYPE_64)?"64":"32",res->start, res->end); 444 printk(KERN_DEBUG "PCI: bridge %s %sbit mmio pref: [%llx, %llx]\n",
445 pci_name(dev), (res->flags & PCI_PREF_RANGE_TYPE_64) ? "64" : "32",
446 (unsigned long long) res->start, (unsigned long long) res->end);
435 } 447 }
436} 448}
437 449
diff --git a/drivers/pci/search.c b/drivers/pci/search.c
index 217814fef4e..4edfc4731bd 100644
--- a/drivers/pci/search.c
+++ b/drivers/pci/search.c
@@ -162,7 +162,7 @@ EXPORT_SYMBOL(pci_find_slot);
162 * time. 162 * time.
163 */ 163 */
164struct pci_dev *pci_find_device(unsigned int vendor, unsigned int device, 164struct pci_dev *pci_find_device(unsigned int vendor, unsigned int device,
165 const struct pci_dev *from) 165 struct pci_dev *from)
166{ 166{
167 struct pci_dev *pdev; 167 struct pci_dev *pdev;
168 168
@@ -263,7 +263,7 @@ static int match_pci_dev_by_id(struct device *dev, void *data)
263 * this file. 263 * this file.
264 */ 264 */
265static struct pci_dev *pci_get_dev_by_id(const struct pci_device_id *id, 265static struct pci_dev *pci_get_dev_by_id(const struct pci_device_id *id,
266 const struct pci_dev *from) 266 struct pci_dev *from)
267{ 267{
268 struct device *dev; 268 struct device *dev;
269 struct device *dev_start = NULL; 269 struct device *dev_start = NULL;
@@ -280,6 +280,8 @@ static struct pci_dev *pci_get_dev_by_id(const struct pci_device_id *id,
280 match_pci_dev_by_id); 280 match_pci_dev_by_id);
281 if (dev) 281 if (dev)
282 pdev = to_pci_dev(dev); 282 pdev = to_pci_dev(dev);
283 if (from)
284 pci_dev_put(from);
283 return pdev; 285 return pdev;
284} 286}
285 287
@@ -301,7 +303,7 @@ static struct pci_dev *pci_get_dev_by_id(const struct pci_device_id *id,
301 */ 303 */
302struct pci_dev *pci_get_subsys(unsigned int vendor, unsigned int device, 304struct pci_dev *pci_get_subsys(unsigned int vendor, unsigned int device,
303 unsigned int ss_vendor, unsigned int ss_device, 305 unsigned int ss_vendor, unsigned int ss_device,
304 const struct pci_dev *from) 306 struct pci_dev *from)
305{ 307{
306 struct pci_dev *pdev; 308 struct pci_dev *pdev;
307 struct pci_device_id *id; 309 struct pci_device_id *id;
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index 82634a2f1b1..3abbfad9dda 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -352,11 +352,12 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask, unsigned long
352 continue; 352 continue;
353 r_size = r->end - r->start + 1; 353 r_size = r->end - r->start + 1;
354 /* For bridges size != alignment */ 354 /* For bridges size != alignment */
355 align = (i < PCI_BRIDGE_RESOURCES) ? r_size : r->start; 355 align = resource_alignment(r);
356 order = __ffs(align) - 20; 356 order = __ffs(align) - 20;
357 if (order > 11) { 357 if (order > 11) {
358 dev_warn(&dev->dev, "BAR %d too large: " 358 dev_warn(&dev->dev, "BAR %d bad alignment %llx: "
359 "%#016llx-%#016llx\n", i, 359 "%#016llx-%#016llx\n", i,
360 (unsigned long long)align,
360 (unsigned long long)r->start, 361 (unsigned long long)r->start,
361 (unsigned long long)r->end); 362 (unsigned long long)r->end);
362 r->flags = 0; 363 r->flags = 0;
@@ -539,7 +540,11 @@ static void pci_bus_dump_res(struct pci_bus *bus)
539 if (!res) 540 if (!res)
540 continue; 541 continue;
541 542
542 printk(KERN_INFO "bus: %02x index %x %s: [%llx, %llx]\n", bus->number, i, (res->flags & IORESOURCE_IO)? "io port":"mmio", res->start, res->end); 543 printk(KERN_INFO "bus: %02x index %x %s: [%llx, %llx]\n",
544 bus->number, i,
545 (res->flags & IORESOURCE_IO) ? "io port" : "mmio",
546 (unsigned long long) res->start,
547 (unsigned long long) res->end);
543 } 548 }
544} 549}
545 550
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 4174d9656e3..34c83d3ca0f 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -427,6 +427,18 @@ static int pcmcia_device_probe(struct device * dev)
427 p_drv = to_pcmcia_drv(dev->driver); 427 p_drv = to_pcmcia_drv(dev->driver);
428 s = p_dev->socket; 428 s = p_dev->socket;
429 429
430 /* The PCMCIA code passes the match data in via dev->driver_data
431 * which is an ugly hack. Once the driver probe is called it may
432 * and often will overwrite the match data so we must save it first
433 *
434 * handle pseudo multifunction devices:
435 * there are at most two pseudo multifunction devices.
436 * if we're matching against the first, schedule a
437 * call which will then check whether there are two
438 * pseudo devices, and if not, add the second one.
439 */
440 did = p_dev->dev.driver_data;
441
430 ds_dbg(1, "trying to bind %s to %s\n", p_dev->dev.bus_id, 442 ds_dbg(1, "trying to bind %s to %s\n", p_dev->dev.bus_id,
431 p_drv->drv.name); 443 p_drv->drv.name);
432 444
@@ -455,21 +467,14 @@ static int pcmcia_device_probe(struct device * dev)
455 goto put_module; 467 goto put_module;
456 } 468 }
457 469
458 /* handle pseudo multifunction devices:
459 * there are at most two pseudo multifunction devices.
460 * if we're matching against the first, schedule a
461 * call which will then check whether there are two
462 * pseudo devices, and if not, add the second one.
463 */
464 did = p_dev->dev.driver_data;
465 if (did && (did->match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO) && 470 if (did && (did->match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO) &&
466 (p_dev->socket->device_count == 1) && (p_dev->device_no == 0)) 471 (p_dev->socket->device_count == 1) && (p_dev->device_no == 0))
467 pcmcia_add_device_later(p_dev->socket, 0); 472 pcmcia_add_device_later(p_dev->socket, 0);
468 473
469 put_module: 474put_module:
470 if (ret) 475 if (ret)
471 module_put(p_drv->owner); 476 module_put(p_drv->owner);
472 put_dev: 477put_dev:
473 if (ret) 478 if (ret)
474 put_device(dev); 479 put_device(dev);
475 return (ret); 480 return (ret);
diff --git a/drivers/pcmcia/soc_common.c b/drivers/pcmcia/soc_common.c
index c48f3f69bda..da397215322 100644
--- a/drivers/pcmcia/soc_common.c
+++ b/drivers/pcmcia/soc_common.c
@@ -748,7 +748,9 @@ int soc_common_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops
748 748
749 add_timer(&skt->poll_timer); 749 add_timer(&skt->poll_timer);
750 750
751 device_create_file(&skt->socket.dev, &dev_attr_status); 751 ret = device_create_file(&skt->socket.dev, &dev_attr_status);
752 if (ret)
753 goto out_err_8;
752 } 754 }
753 755
754 dev_set_drvdata(dev, sinfo); 756 dev_set_drvdata(dev, sinfo);
@@ -758,6 +760,8 @@ int soc_common_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops
758 do { 760 do {
759 skt = &sinfo->skt[i]; 761 skt = &sinfo->skt[i];
760 762
763 device_remove_file(&skt->socket.dev, &dev_attr_status);
764 out_err_8:
761 del_timer_sync(&skt->poll_timer); 765 del_timer_sync(&skt->poll_timer);
762 pcmcia_unregister_socket(&skt->socket); 766 pcmcia_unregister_socket(&skt->socket);
763 767
diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c
index d7e9f2152df..95015cbfd33 100644
--- a/drivers/pnp/pnpacpi/rsparser.c
+++ b/drivers/pnp/pnpacpi/rsparser.c
@@ -405,8 +405,6 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,
405 405
406 case ACPI_RESOURCE_TYPE_EXTENDED_IRQ: 406 case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
407 extended_irq = &res->data.extended_irq; 407 extended_irq = &res->data.extended_irq;
408 if (extended_irq->producer_consumer == ACPI_PRODUCER)
409 return AE_OK;
410 408
411 if (extended_irq->interrupt_count == 0) 409 if (extended_irq->interrupt_count == 0)
412 pnp_add_irq_resource(dev, 0, IORESOURCE_DISABLED); 410 pnp_add_irq_resource(dev, 0, IORESOURCE_DISABLED);
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index 6ea349aba3b..b184367637d 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -800,7 +800,6 @@ static void __exit cmos_do_remove(struct device *dev)
800static int cmos_suspend(struct device *dev, pm_message_t mesg) 800static int cmos_suspend(struct device *dev, pm_message_t mesg)
801{ 801{
802 struct cmos_rtc *cmos = dev_get_drvdata(dev); 802 struct cmos_rtc *cmos = dev_get_drvdata(dev);
803 int do_wake = device_may_wakeup(dev);
804 unsigned char tmp; 803 unsigned char tmp;
805 804
806 /* only the alarm might be a wakeup event source */ 805 /* only the alarm might be a wakeup event source */
@@ -809,7 +808,7 @@ static int cmos_suspend(struct device *dev, pm_message_t mesg)
809 if (tmp & (RTC_PIE|RTC_AIE|RTC_UIE)) { 808 if (tmp & (RTC_PIE|RTC_AIE|RTC_UIE)) {
810 unsigned char mask; 809 unsigned char mask;
811 810
812 if (do_wake) 811 if (device_may_wakeup(dev))
813 mask = RTC_IRQMASK & ~RTC_AIE; 812 mask = RTC_IRQMASK & ~RTC_AIE;
814 else 813 else
815 mask = RTC_IRQMASK; 814 mask = RTC_IRQMASK;
@@ -837,6 +836,17 @@ static int cmos_suspend(struct device *dev, pm_message_t mesg)
837 return 0; 836 return 0;
838} 837}
839 838
839/* We want RTC alarms to wake us from e.g. ACPI G2/S5 "soft off", even
840 * after a detour through G3 "mechanical off", although the ACPI spec
841 * says wakeup should only work from G1/S4 "hibernate". To most users,
842 * distinctions between S4 and S5 are pointless. So when the hardware
843 * allows, don't draw that distinction.
844 */
845static inline int cmos_poweroff(struct device *dev)
846{
847 return cmos_suspend(dev, PMSG_HIBERNATE);
848}
849
840static int cmos_resume(struct device *dev) 850static int cmos_resume(struct device *dev)
841{ 851{
842 struct cmos_rtc *cmos = dev_get_drvdata(dev); 852 struct cmos_rtc *cmos = dev_get_drvdata(dev);
@@ -884,6 +894,12 @@ static int cmos_resume(struct device *dev)
884#else 894#else
885#define cmos_suspend NULL 895#define cmos_suspend NULL
886#define cmos_resume NULL 896#define cmos_resume NULL
897
898static inline int cmos_poweroff(struct device *dev)
899{
900 return -ENOSYS;
901}
902
887#endif 903#endif
888 904
889/*----------------------------------------------------------------*/ 905/*----------------------------------------------------------------*/
@@ -903,10 +919,6 @@ static int cmos_resume(struct device *dev)
903static int __devinit 919static int __devinit
904cmos_pnp_probe(struct pnp_dev *pnp, const struct pnp_device_id *id) 920cmos_pnp_probe(struct pnp_dev *pnp, const struct pnp_device_id *id)
905{ 921{
906 /* REVISIT paranoia argues for a shutdown notifier, since PNP
907 * drivers can't provide shutdown() methods to disable IRQs.
908 * Or better yet, fix PNP to allow those methods...
909 */
910 if (pnp_port_start(pnp,0) == 0x70 && !pnp_irq_valid(pnp,0)) 922 if (pnp_port_start(pnp,0) == 0x70 && !pnp_irq_valid(pnp,0))
911 /* Some machines contain a PNP entry for the RTC, but 923 /* Some machines contain a PNP entry for the RTC, but
912 * don't define the IRQ. It should always be safe to 924 * don't define the IRQ. It should always be safe to
@@ -942,6 +954,13 @@ static int cmos_pnp_resume(struct pnp_dev *pnp)
942#define cmos_pnp_resume NULL 954#define cmos_pnp_resume NULL
943#endif 955#endif
944 956
957static void cmos_pnp_shutdown(struct device *pdev)
958{
959 if (system_state == SYSTEM_POWER_OFF && !cmos_poweroff(pdev))
960 return;
961
962 cmos_do_shutdown();
963}
945 964
946static const struct pnp_device_id rtc_ids[] = { 965static const struct pnp_device_id rtc_ids[] = {
947 { .id = "PNP0b00", }, 966 { .id = "PNP0b00", },
@@ -961,6 +980,10 @@ static struct pnp_driver cmos_pnp_driver = {
961 .flags = PNP_DRIVER_RES_DO_NOT_CHANGE, 980 .flags = PNP_DRIVER_RES_DO_NOT_CHANGE,
962 .suspend = cmos_pnp_suspend, 981 .suspend = cmos_pnp_suspend,
963 .resume = cmos_pnp_resume, 982 .resume = cmos_pnp_resume,
983 .driver = {
984 .name = (char *)driver_name,
985 .shutdown = cmos_pnp_shutdown,
986 }
964}; 987};
965 988
966#endif /* CONFIG_PNP */ 989#endif /* CONFIG_PNP */
@@ -986,6 +1009,9 @@ static int __exit cmos_platform_remove(struct platform_device *pdev)
986 1009
987static void cmos_platform_shutdown(struct platform_device *pdev) 1010static void cmos_platform_shutdown(struct platform_device *pdev)
988{ 1011{
1012 if (system_state == SYSTEM_POWER_OFF && !cmos_poweroff(&pdev->dev))
1013 return;
1014
989 cmos_do_shutdown(); 1015 cmos_do_shutdown();
990} 1016}
991 1017
diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c
index f118252f3a9..52e2743b04e 100644
--- a/drivers/rtc/rtc-dev.c
+++ b/drivers/rtc/rtc-dev.c
@@ -422,6 +422,12 @@ done:
422 return err; 422 return err;
423} 423}
424 424
425static int rtc_dev_fasync(int fd, struct file *file, int on)
426{
427 struct rtc_device *rtc = file->private_data;
428 return fasync_helper(fd, file, on, &rtc->async_queue);
429}
430
425static int rtc_dev_release(struct inode *inode, struct file *file) 431static int rtc_dev_release(struct inode *inode, struct file *file)
426{ 432{
427 struct rtc_device *rtc = file->private_data; 433 struct rtc_device *rtc = file->private_data;
@@ -434,16 +440,13 @@ static int rtc_dev_release(struct inode *inode, struct file *file)
434 if (rtc->ops->release) 440 if (rtc->ops->release)
435 rtc->ops->release(rtc->dev.parent); 441 rtc->ops->release(rtc->dev.parent);
436 442
443 if (file->f_flags & FASYNC)
444 rtc_dev_fasync(-1, file, 0);
445
437 clear_bit_unlock(RTC_DEV_BUSY, &rtc->flags); 446 clear_bit_unlock(RTC_DEV_BUSY, &rtc->flags);
438 return 0; 447 return 0;
439} 448}
440 449
441static int rtc_dev_fasync(int fd, struct file *file, int on)
442{
443 struct rtc_device *rtc = file->private_data;
444 return fasync_helper(fd, file, on, &rtc->async_queue);
445}
446
447static const struct file_operations rtc_dev_fops = { 450static const struct file_operations rtc_dev_fops = {
448 .owner = THIS_MODULE, 451 .owner = THIS_MODULE,
449 .llseek = no_llseek, 452 .llseek = no_llseek,
diff --git a/drivers/rtc/rtc-lib.c b/drivers/rtc/rtc-lib.c
index 9f996ec881c..dd70bf73ce9 100644
--- a/drivers/rtc/rtc-lib.c
+++ b/drivers/rtc/rtc-lib.c
@@ -51,10 +51,11 @@ EXPORT_SYMBOL(rtc_year_days);
51 */ 51 */
52void rtc_time_to_tm(unsigned long time, struct rtc_time *tm) 52void rtc_time_to_tm(unsigned long time, struct rtc_time *tm)
53{ 53{
54 unsigned int days, month, year; 54 unsigned int month, year;
55 int days;
55 56
56 days = time / 86400; 57 days = time / 86400;
57 time -= days * 86400; 58 time -= (unsigned int) days * 86400;
58 59
59 /* day of the week, 1970-01-01 was a Thursday */ 60 /* day of the week, 1970-01-01 was a Thursday */
60 tm->tm_wday = (days + 4) % 7; 61 tm->tm_wday = (days + 4) % 7;
diff --git a/drivers/rtc/rtc-max6902.c b/drivers/rtc/rtc-max6902.c
index 12f0310ae89..78b2551fb19 100644
--- a/drivers/rtc/rtc-max6902.c
+++ b/drivers/rtc/rtc-max6902.c
@@ -20,8 +20,6 @@
20 */ 20 */
21 21
22#include <linux/module.h> 22#include <linux/module.h>
23#include <linux/version.h>
24
25#include <linux/kernel.h> 23#include <linux/kernel.h>
26#include <linux/platform_device.h> 24#include <linux/platform_device.h>
27#include <linux/init.h> 25#include <linux/init.h>
diff --git a/drivers/rtc/rtc-r9701.c b/drivers/rtc/rtc-r9701.c
index b35f9bfa2af..395985b339c 100644
--- a/drivers/rtc/rtc-r9701.c
+++ b/drivers/rtc/rtc-r9701.c
@@ -14,7 +14,6 @@
14 */ 14 */
15 15
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/version.h>
18#include <linux/kernel.h> 17#include <linux/kernel.h>
19#include <linux/platform_device.h> 18#include <linux/platform_device.h>
20#include <linux/device.h> 19#include <linux/device.h>
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c
index 1b6c52ef733..acb78017e7d 100644
--- a/drivers/s390/block/dasd.c
+++ b/drivers/s390/block/dasd.c
@@ -2333,13 +2333,11 @@ int dasd_generic_notify(struct ccw_device *cdev, int event)
2333{ 2333{
2334 struct dasd_device *device; 2334 struct dasd_device *device;
2335 struct dasd_ccw_req *cqr; 2335 struct dasd_ccw_req *cqr;
2336 unsigned long flags;
2337 int ret; 2336 int ret;
2338 2337
2339 device = dasd_device_from_cdev(cdev); 2338 device = dasd_device_from_cdev_locked(cdev);
2340 if (IS_ERR(device)) 2339 if (IS_ERR(device))
2341 return 0; 2340 return 0;
2342 spin_lock_irqsave(get_ccwdev_lock(cdev), flags);
2343 ret = 0; 2341 ret = 0;
2344 switch (event) { 2342 switch (event) {
2345 case CIO_GONE: 2343 case CIO_GONE:
@@ -2369,7 +2367,6 @@ int dasd_generic_notify(struct ccw_device *cdev, int event)
2369 ret = 1; 2367 ret = 1;
2370 break; 2368 break;
2371 } 2369 }
2372 spin_unlock_irqrestore(get_ccwdev_lock(cdev), flags);
2373 dasd_put_device(device); 2370 dasd_put_device(device);
2374 return ret; 2371 return ret;
2375} 2372}
diff --git a/drivers/s390/block/dasd_eckd.h b/drivers/s390/block/dasd_eckd.h
index 4bf0aa5112c..2476f87d21d 100644
--- a/drivers/s390/block/dasd_eckd.h
+++ b/drivers/s390/block/dasd_eckd.h
@@ -308,7 +308,7 @@ struct dasd_psf_prssd_data {
308 unsigned char flags; 308 unsigned char flags;
309 unsigned char reserved[4]; 309 unsigned char reserved[4];
310 unsigned char suborder; 310 unsigned char suborder;
311 unsigned char varies[9]; 311 unsigned char varies[5];
312} __attribute__ ((packed)); 312} __attribute__ ((packed));
313 313
314/* 314/*
diff --git a/drivers/s390/block/dasd_eer.c b/drivers/s390/block/dasd_eer.c
index 29da4413ad4..bf512ac75b9 100644
--- a/drivers/s390/block/dasd_eer.c
+++ b/drivers/s390/block/dasd_eer.c
@@ -16,6 +16,7 @@
16#include <linux/poll.h> 16#include <linux/poll.h>
17#include <linux/mutex.h> 17#include <linux/mutex.h>
18#include <linux/smp_lock.h> 18#include <linux/smp_lock.h>
19#include <linux/err.h>
19 20
20#include <asm/uaccess.h> 21#include <asm/uaccess.h>
21#include <asm/atomic.h> 22#include <asm/atomic.h>
@@ -457,7 +458,7 @@ int dasd_eer_enable(struct dasd_device *device)
457 458
458 cqr = dasd_kmalloc_request("ECKD", 1 /* SNSS */, 459 cqr = dasd_kmalloc_request("ECKD", 1 /* SNSS */,
459 SNSS_DATA_SIZE, device); 460 SNSS_DATA_SIZE, device);
460 if (!cqr) 461 if (IS_ERR(cqr))
461 return -ENOMEM; 462 return -ENOMEM;
462 463
463 cqr->startdev = device; 464 cqr->startdev = device;
diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c
index 01fcdd91b84..711b3004b3e 100644
--- a/drivers/s390/block/dcssblk.c
+++ b/drivers/s390/block/dcssblk.c
@@ -384,6 +384,11 @@ dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char
384 * get minor, add to list 384 * get minor, add to list
385 */ 385 */
386 down_write(&dcssblk_devices_sem); 386 down_write(&dcssblk_devices_sem);
387 if (dcssblk_get_device_by_name(local_buf)) {
388 up_write(&dcssblk_devices_sem);
389 rc = -EEXIST;
390 goto unload_seg;
391 }
387 rc = dcssblk_assign_free_minor(dev_info); 392 rc = dcssblk_assign_free_minor(dev_info);
388 if (rc) { 393 if (rc) {
389 up_write(&dcssblk_devices_sem); 394 up_write(&dcssblk_devices_sem);
diff --git a/drivers/s390/char/tape_char.c b/drivers/s390/char/tape_char.c
index 687720b552d..be0ce2215c8 100644
--- a/drivers/s390/char/tape_char.c
+++ b/drivers/s390/char/tape_char.c
@@ -109,7 +109,7 @@ tapechar_check_idalbuffer(struct tape_device *device, size_t block_size)
109 109
110 /* The current idal buffer is not correct. Allocate a new one. */ 110 /* The current idal buffer is not correct. Allocate a new one. */
111 new = idal_buffer_alloc(block_size, 0); 111 new = idal_buffer_alloc(block_size, 0);
112 if (new == NULL) 112 if (IS_ERR(new))
113 return -ENOMEM; 113 return -ENOMEM;
114 114
115 if (device->char_data.idal_buf != NULL) 115 if (device->char_data.idal_buf != NULL)
diff --git a/drivers/s390/char/tape_std.c b/drivers/s390/char/tape_std.c
index 2a1af4e60be..cc8fd781ee2 100644
--- a/drivers/s390/char/tape_std.c
+++ b/drivers/s390/char/tape_std.c
@@ -248,7 +248,7 @@ tape_std_mtsetblk(struct tape_device *device, int count)
248 248
249 /* Allocate a new idal buffer. */ 249 /* Allocate a new idal buffer. */
250 new = idal_buffer_alloc(count, 0); 250 new = idal_buffer_alloc(count, 0);
251 if (new == NULL) 251 if (IS_ERR(new))
252 return -ENOMEM; 252 return -ENOMEM;
253 if (device->char_data.idal_buf != NULL) 253 if (device->char_data.idal_buf != NULL)
254 idal_buffer_free(device->char_data.idal_buf); 254 idal_buffer_free(device->char_data.idal_buf);
diff --git a/drivers/s390/cio/ccwgroup.c b/drivers/s390/cio/ccwgroup.c
index 26a930e832b..9a50f245774 100644
--- a/drivers/s390/cio/ccwgroup.c
+++ b/drivers/s390/cio/ccwgroup.c
@@ -112,8 +112,11 @@ ccwgroup_release (struct device *dev)
112 gdev = to_ccwgroupdev(dev); 112 gdev = to_ccwgroupdev(dev);
113 113
114 for (i = 0; i < gdev->count; i++) { 114 for (i = 0; i < gdev->count; i++) {
115 dev_set_drvdata(&gdev->cdev[i]->dev, NULL); 115 if (gdev->cdev[i]) {
116 put_device(&gdev->cdev[i]->dev); 116 if (dev_get_drvdata(&gdev->cdev[i]->dev) == gdev)
117 dev_set_drvdata(&gdev->cdev[i]->dev, NULL);
118 put_device(&gdev->cdev[i]->dev);
119 }
117 } 120 }
118 kfree(gdev); 121 kfree(gdev);
119} 122}
@@ -221,6 +224,13 @@ int ccwgroup_create_from_string(struct device *root, unsigned int creator_id,
221 atomic_set(&gdev->onoff, 0); 224 atomic_set(&gdev->onoff, 0);
222 mutex_init(&gdev->reg_mutex); 225 mutex_init(&gdev->reg_mutex);
223 mutex_lock(&gdev->reg_mutex); 226 mutex_lock(&gdev->reg_mutex);
227 gdev->creator_id = creator_id;
228 gdev->count = num_devices;
229 gdev->dev.bus = &ccwgroup_bus_type;
230 gdev->dev.parent = root;
231 gdev->dev.release = ccwgroup_release;
232 device_initialize(&gdev->dev);
233
224 curr_buf = buf; 234 curr_buf = buf;
225 for (i = 0; i < num_devices && curr_buf; i++) { 235 for (i = 0; i < num_devices && curr_buf; i++) {
226 rc = __get_next_bus_id(&curr_buf, tmp_bus_id); 236 rc = __get_next_bus_id(&curr_buf, tmp_bus_id);
@@ -258,16 +268,11 @@ int ccwgroup_create_from_string(struct device *root, unsigned int creator_id,
258 rc = -EINVAL; 268 rc = -EINVAL;
259 goto error; 269 goto error;
260 } 270 }
261 gdev->creator_id = creator_id;
262 gdev->count = num_devices;
263 gdev->dev.bus = &ccwgroup_bus_type;
264 gdev->dev.parent = root;
265 gdev->dev.release = ccwgroup_release;
266 271
267 snprintf (gdev->dev.bus_id, BUS_ID_SIZE, "%s", 272 snprintf (gdev->dev.bus_id, BUS_ID_SIZE, "%s",
268 gdev->cdev[0]->dev.bus_id); 273 gdev->cdev[0]->dev.bus_id);
269 274
270 rc = device_register(&gdev->dev); 275 rc = device_add(&gdev->dev);
271 if (rc) 276 if (rc)
272 goto error; 277 goto error;
273 get_device(&gdev->dev); 278 get_device(&gdev->dev);
@@ -292,6 +297,7 @@ error:
292 if (dev_get_drvdata(&gdev->cdev[i]->dev) == gdev) 297 if (dev_get_drvdata(&gdev->cdev[i]->dev) == gdev)
293 dev_set_drvdata(&gdev->cdev[i]->dev, NULL); 298 dev_set_drvdata(&gdev->cdev[i]->dev, NULL);
294 put_device(&gdev->cdev[i]->dev); 299 put_device(&gdev->cdev[i]->dev);
300 gdev->cdev[i] = NULL;
295 } 301 }
296 mutex_unlock(&gdev->reg_mutex); 302 mutex_unlock(&gdev->reg_mutex);
297 put_device(&gdev->dev); 303 put_device(&gdev->dev);
diff --git a/drivers/s390/cio/chp.c b/drivers/s390/cio/chp.c
index db00b059173..f1216cf6fa8 100644
--- a/drivers/s390/cio/chp.c
+++ b/drivers/s390/cio/chp.c
@@ -423,7 +423,7 @@ int chp_new(struct chp_id chpid)
423 ret = sysfs_create_group(&chp->dev.kobj, &chp_attr_group); 423 ret = sysfs_create_group(&chp->dev.kobj, &chp_attr_group);
424 if (ret) { 424 if (ret) {
425 device_unregister(&chp->dev); 425 device_unregister(&chp->dev);
426 goto out_free; 426 goto out;
427 } 427 }
428 mutex_lock(&channel_subsystems[chpid.cssid]->mutex); 428 mutex_lock(&channel_subsystems[chpid.cssid]->mutex);
429 if (channel_subsystems[chpid.cssid]->cm_enabled) { 429 if (channel_subsystems[chpid.cssid]->cm_enabled) {
@@ -432,14 +432,15 @@ int chp_new(struct chp_id chpid)
432 sysfs_remove_group(&chp->dev.kobj, &chp_attr_group); 432 sysfs_remove_group(&chp->dev.kobj, &chp_attr_group);
433 device_unregister(&chp->dev); 433 device_unregister(&chp->dev);
434 mutex_unlock(&channel_subsystems[chpid.cssid]->mutex); 434 mutex_unlock(&channel_subsystems[chpid.cssid]->mutex);
435 goto out_free; 435 goto out;
436 } 436 }
437 } 437 }
438 channel_subsystems[chpid.cssid]->chps[chpid.id] = chp; 438 channel_subsystems[chpid.cssid]->chps[chpid.id] = chp;
439 mutex_unlock(&channel_subsystems[chpid.cssid]->mutex); 439 mutex_unlock(&channel_subsystems[chpid.cssid]->mutex);
440 return ret; 440 goto out;
441out_free: 441out_free:
442 kfree(chp); 442 kfree(chp);
443out:
443 return ret; 444 return ret;
444} 445}
445 446
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c
index 33bff8fec7d..326f4cc7f92 100644
--- a/drivers/s390/cio/cio.c
+++ b/drivers/s390/cio/cio.c
@@ -174,6 +174,7 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */
174 CIO_TRACE_EVENT(4, sch->dev.bus_id); 174 CIO_TRACE_EVENT(4, sch->dev.bus_id);
175 175
176 orb = &to_io_private(sch)->orb; 176 orb = &to_io_private(sch)->orb;
177 memset(orb, 0, sizeof(union orb));
177 /* sch is always under 2G. */ 178 /* sch is always under 2G. */
178 orb->cmd.intparm = (u32)(addr_t)sch; 179 orb->cmd.intparm = (u32)(addr_t)sch;
179 orb->cmd.fmt = 1; 180 orb->cmd.fmt = 1;
@@ -208,8 +209,10 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */
208 case 1: /* status pending */ 209 case 1: /* status pending */
209 case 2: /* busy */ 210 case 2: /* busy */
210 return -EBUSY; 211 return -EBUSY;
211 default: /* device/path not operational */ 212 case 3: /* device/path not operational */
212 return cio_start_handle_notoper(sch, lpm); 213 return cio_start_handle_notoper(sch, lpm);
214 default:
215 return ccode;
213 } 216 }
214} 217}
215 218
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c
index 46c021d880d..1261e1a9e8c 100644
--- a/drivers/s390/cio/css.c
+++ b/drivers/s390/cio/css.c
@@ -477,7 +477,6 @@ void css_schedule_eval_all(void)
477 477
478void css_wait_for_slow_path(void) 478void css_wait_for_slow_path(void)
479{ 479{
480 flush_workqueue(ccw_device_notify_work);
481 flush_workqueue(slow_path_wq); 480 flush_workqueue(slow_path_wq);
482} 481}
483 482
@@ -634,6 +633,11 @@ channel_subsystem_release(struct device *dev)
634 633
635 css = to_css(dev); 634 css = to_css(dev);
636 mutex_destroy(&css->mutex); 635 mutex_destroy(&css->mutex);
636 if (css->pseudo_subchannel) {
637 /* Implies that it has been generated but never registered. */
638 css_subchannel_release(&css->pseudo_subchannel->dev);
639 css->pseudo_subchannel = NULL;
640 }
637 kfree(css); 641 kfree(css);
638} 642}
639 643
@@ -786,11 +790,15 @@ init_channel_subsystem (void)
786 } 790 }
787 channel_subsystems[i] = css; 791 channel_subsystems[i] = css;
788 ret = setup_css(i); 792 ret = setup_css(i);
789 if (ret) 793 if (ret) {
790 goto out_free; 794 kfree(channel_subsystems[i]);
795 goto out_unregister;
796 }
791 ret = device_register(&css->device); 797 ret = device_register(&css->device);
792 if (ret) 798 if (ret) {
793 goto out_free_all; 799 put_device(&css->device);
800 goto out_unregister;
801 }
794 if (css_chsc_characteristics.secm) { 802 if (css_chsc_characteristics.secm) {
795 ret = device_create_file(&css->device, 803 ret = device_create_file(&css->device,
796 &dev_attr_cm_enable); 804 &dev_attr_cm_enable);
@@ -803,7 +811,7 @@ init_channel_subsystem (void)
803 } 811 }
804 ret = register_reboot_notifier(&css_reboot_notifier); 812 ret = register_reboot_notifier(&css_reboot_notifier);
805 if (ret) 813 if (ret)
806 goto out_pseudo; 814 goto out_unregister;
807 css_init_done = 1; 815 css_init_done = 1;
808 816
809 /* Enable default isc for I/O subchannels. */ 817 /* Enable default isc for I/O subchannels. */
@@ -811,18 +819,12 @@ init_channel_subsystem (void)
811 819
812 for_each_subchannel(__init_channel_subsystem, NULL); 820 for_each_subchannel(__init_channel_subsystem, NULL);
813 return 0; 821 return 0;
814out_pseudo:
815 device_unregister(&channel_subsystems[i]->pseudo_subchannel->dev);
816out_file: 822out_file:
817 device_remove_file(&channel_subsystems[i]->device, 823 if (css_chsc_characteristics.secm)
818 &dev_attr_cm_enable); 824 device_remove_file(&channel_subsystems[i]->device,
825 &dev_attr_cm_enable);
819out_device: 826out_device:
820 device_unregister(&channel_subsystems[i]->device); 827 device_unregister(&channel_subsystems[i]->device);
821out_free_all:
822 kfree(channel_subsystems[i]->pseudo_subchannel->lock);
823 kfree(channel_subsystems[i]->pseudo_subchannel);
824out_free:
825 kfree(channel_subsystems[i]);
826out_unregister: 828out_unregister:
827 while (i > 0) { 829 while (i > 0) {
828 struct channel_subsystem *css; 830 struct channel_subsystem *css;
@@ -830,6 +832,7 @@ out_unregister:
830 i--; 832 i--;
831 css = channel_subsystems[i]; 833 css = channel_subsystems[i];
832 device_unregister(&css->pseudo_subchannel->dev); 834 device_unregister(&css->pseudo_subchannel->dev);
835 css->pseudo_subchannel = NULL;
833 if (css_chsc_characteristics.secm) 836 if (css_chsc_characteristics.secm)
834 device_remove_file(&css->device, 837 device_remove_file(&css->device,
835 &dev_attr_cm_enable); 838 &dev_attr_cm_enable);
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index e818d0c54c0..28221030b88 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -150,7 +150,6 @@ static struct css_driver io_subchannel_driver = {
150}; 150};
151 151
152struct workqueue_struct *ccw_device_work; 152struct workqueue_struct *ccw_device_work;
153struct workqueue_struct *ccw_device_notify_work;
154wait_queue_head_t ccw_device_init_wq; 153wait_queue_head_t ccw_device_init_wq;
155atomic_t ccw_device_init_count; 154atomic_t ccw_device_init_count;
156 155
@@ -168,11 +167,6 @@ init_ccw_bus_type (void)
168 ccw_device_work = create_singlethread_workqueue("cio"); 167 ccw_device_work = create_singlethread_workqueue("cio");
169 if (!ccw_device_work) 168 if (!ccw_device_work)
170 return -ENOMEM; /* FIXME: better errno ? */ 169 return -ENOMEM; /* FIXME: better errno ? */
171 ccw_device_notify_work = create_singlethread_workqueue("cio_notify");
172 if (!ccw_device_notify_work) {
173 ret = -ENOMEM; /* FIXME: better errno ? */
174 goto out_err;
175 }
176 slow_path_wq = create_singlethread_workqueue("kslowcrw"); 170 slow_path_wq = create_singlethread_workqueue("kslowcrw");
177 if (!slow_path_wq) { 171 if (!slow_path_wq) {
178 ret = -ENOMEM; /* FIXME: better errno ? */ 172 ret = -ENOMEM; /* FIXME: better errno ? */
@@ -192,8 +186,6 @@ init_ccw_bus_type (void)
192out_err: 186out_err:
193 if (ccw_device_work) 187 if (ccw_device_work)
194 destroy_workqueue(ccw_device_work); 188 destroy_workqueue(ccw_device_work);
195 if (ccw_device_notify_work)
196 destroy_workqueue(ccw_device_notify_work);
197 if (slow_path_wq) 189 if (slow_path_wq)
198 destroy_workqueue(slow_path_wq); 190 destroy_workqueue(slow_path_wq);
199 return ret; 191 return ret;
@@ -204,7 +196,6 @@ cleanup_ccw_bus_type (void)
204{ 196{
205 css_driver_unregister(&io_subchannel_driver); 197 css_driver_unregister(&io_subchannel_driver);
206 bus_unregister(&ccw_bus_type); 198 bus_unregister(&ccw_bus_type);
207 destroy_workqueue(ccw_device_notify_work);
208 destroy_workqueue(ccw_device_work); 199 destroy_workqueue(ccw_device_work);
209} 200}
210 201
@@ -1496,11 +1487,22 @@ static void device_set_disconnected(struct ccw_device *cdev)
1496 ccw_device_schedule_recovery(); 1487 ccw_device_schedule_recovery();
1497} 1488}
1498 1489
1490void ccw_device_set_notoper(struct ccw_device *cdev)
1491{
1492 struct subchannel *sch = to_subchannel(cdev->dev.parent);
1493
1494 CIO_TRACE_EVENT(2, "notoper");
1495 CIO_TRACE_EVENT(2, sch->dev.bus_id);
1496 ccw_device_set_timeout(cdev, 0);
1497 cio_disable_subchannel(sch);
1498 cdev->private->state = DEV_STATE_NOT_OPER;
1499}
1500
1499static int io_subchannel_sch_event(struct subchannel *sch, int slow) 1501static int io_subchannel_sch_event(struct subchannel *sch, int slow)
1500{ 1502{
1501 int event, ret, disc; 1503 int event, ret, disc;
1502 unsigned long flags; 1504 unsigned long flags;
1503 enum { NONE, UNREGISTER, UNREGISTER_PROBE, REPROBE } action; 1505 enum { NONE, UNREGISTER, UNREGISTER_PROBE, REPROBE, DISC } action;
1504 struct ccw_device *cdev; 1506 struct ccw_device *cdev;
1505 1507
1506 spin_lock_irqsave(sch->lock, flags); 1508 spin_lock_irqsave(sch->lock, flags);
@@ -1535,16 +1537,11 @@ static int io_subchannel_sch_event(struct subchannel *sch, int slow)
1535 } 1537 }
1536 /* fall through */ 1538 /* fall through */
1537 case CIO_GONE: 1539 case CIO_GONE:
1538 /* Prevent unwanted effects when opening lock. */
1539 cio_disable_subchannel(sch);
1540 device_set_disconnected(cdev);
1541 /* Ask driver what to do with device. */ 1540 /* Ask driver what to do with device. */
1542 action = UNREGISTER; 1541 if (io_subchannel_notify(sch, event))
1543 spin_unlock_irqrestore(sch->lock, flags); 1542 action = DISC;
1544 ret = io_subchannel_notify(sch, event); 1543 else
1545 spin_lock_irqsave(sch->lock, flags); 1544 action = UNREGISTER;
1546 if (ret)
1547 action = NONE;
1548 break; 1545 break;
1549 case CIO_REVALIDATE: 1546 case CIO_REVALIDATE:
1550 /* Device will be removed, so no notify necessary. */ 1547 /* Device will be removed, so no notify necessary. */
@@ -1565,6 +1562,7 @@ static int io_subchannel_sch_event(struct subchannel *sch, int slow)
1565 switch (action) { 1562 switch (action) {
1566 case UNREGISTER: 1563 case UNREGISTER:
1567 case UNREGISTER_PROBE: 1564 case UNREGISTER_PROBE:
1565 ccw_device_set_notoper(cdev);
1568 /* Unregister device (will use subchannel lock). */ 1566 /* Unregister device (will use subchannel lock). */
1569 spin_unlock_irqrestore(sch->lock, flags); 1567 spin_unlock_irqrestore(sch->lock, flags);
1570 css_sch_device_unregister(sch); 1568 css_sch_device_unregister(sch);
@@ -1577,6 +1575,9 @@ static int io_subchannel_sch_event(struct subchannel *sch, int slow)
1577 case REPROBE: 1575 case REPROBE:
1578 ccw_device_trigger_reprobe(cdev); 1576 ccw_device_trigger_reprobe(cdev);
1579 break; 1577 break;
1578 case DISC:
1579 device_set_disconnected(cdev);
1580 break;
1580 default: 1581 default:
1581 break; 1582 break;
1582 } 1583 }
@@ -1828,5 +1829,4 @@ EXPORT_SYMBOL(ccw_driver_unregister);
1828EXPORT_SYMBOL(get_ccwdev_by_busid); 1829EXPORT_SYMBOL(get_ccwdev_by_busid);
1829EXPORT_SYMBOL(ccw_bus_type); 1830EXPORT_SYMBOL(ccw_bus_type);
1830EXPORT_SYMBOL(ccw_device_work); 1831EXPORT_SYMBOL(ccw_device_work);
1831EXPORT_SYMBOL(ccw_device_notify_work);
1832EXPORT_SYMBOL_GPL(ccw_device_get_subchannel_id); 1832EXPORT_SYMBOL_GPL(ccw_device_get_subchannel_id);
diff --git a/drivers/s390/cio/device.h b/drivers/s390/cio/device.h
index 9800a8335a3..6f5c3f2b358 100644
--- a/drivers/s390/cio/device.h
+++ b/drivers/s390/cio/device.h
@@ -72,7 +72,6 @@ dev_fsm_final_state(struct ccw_device *cdev)
72} 72}
73 73
74extern struct workqueue_struct *ccw_device_work; 74extern struct workqueue_struct *ccw_device_work;
75extern struct workqueue_struct *ccw_device_notify_work;
76extern wait_queue_head_t ccw_device_init_wq; 75extern wait_queue_head_t ccw_device_init_wq;
77extern atomic_t ccw_device_init_count; 76extern atomic_t ccw_device_init_count;
78 77
@@ -120,6 +119,7 @@ int ccw_device_stlck(struct ccw_device *);
120void ccw_device_trigger_reprobe(struct ccw_device *); 119void ccw_device_trigger_reprobe(struct ccw_device *);
121void ccw_device_kill_io(struct ccw_device *); 120void ccw_device_kill_io(struct ccw_device *);
122int ccw_device_notify(struct ccw_device *, int); 121int ccw_device_notify(struct ccw_device *, int);
122void ccw_device_set_notoper(struct ccw_device *cdev);
123 123
124/* qdio needs this. */ 124/* qdio needs this. */
125void ccw_device_set_timeout(struct ccw_device *, int); 125void ccw_device_set_timeout(struct ccw_device *, int);
diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c
index 8b5fe57fb2f..84cc9ea346d 100644
--- a/drivers/s390/cio/device_fsm.c
+++ b/drivers/s390/cio/device_fsm.c
@@ -337,26 +337,34 @@ int ccw_device_notify(struct ccw_device *cdev, int event)
337 return 0; 337 return 0;
338 if (!cdev->online) 338 if (!cdev->online)
339 return 0; 339 return 0;
340 CIO_MSG_EVENT(2, "notify called for 0.%x.%04x, event=%d\n",
341 cdev->private->dev_id.ssid, cdev->private->dev_id.devno,
342 event);
340 return cdev->drv->notify ? cdev->drv->notify(cdev, event) : 0; 343 return cdev->drv->notify ? cdev->drv->notify(cdev, event) : 0;
341} 344}
342 345
343static void 346static void cmf_reenable_delayed(struct work_struct *work)
344ccw_device_oper_notify(struct work_struct *work)
345{ 347{
346 struct ccw_device_private *priv; 348 struct ccw_device_private *priv;
347 struct ccw_device *cdev; 349 struct ccw_device *cdev;
348 int ret;
349 350
350 priv = container_of(work, struct ccw_device_private, kick_work); 351 priv = container_of(work, struct ccw_device_private, kick_work);
351 cdev = priv->cdev; 352 cdev = priv->cdev;
352 ret = ccw_device_notify(cdev, CIO_OPER); 353 cmf_reenable(cdev);
353 if (ret) { 354}
355
356static void ccw_device_oper_notify(struct ccw_device *cdev)
357{
358 if (ccw_device_notify(cdev, CIO_OPER)) {
354 /* Reenable channel measurements, if needed. */ 359 /* Reenable channel measurements, if needed. */
355 cmf_reenable(cdev); 360 PREPARE_WORK(&cdev->private->kick_work, cmf_reenable_delayed);
356 wake_up(&cdev->private->wait_q); 361 queue_work(ccw_device_work, &cdev->private->kick_work);
357 } else 362 return;
358 /* Driver doesn't want device back. */ 363 }
359 ccw_device_do_unreg_rereg(work); 364 /* Driver doesn't want device back. */
365 ccw_device_set_notoper(cdev);
366 PREPARE_WORK(&cdev->private->kick_work, ccw_device_do_unreg_rereg);
367 queue_work(ccw_device_work, &cdev->private->kick_work);
360} 368}
361 369
362/* 370/*
@@ -386,8 +394,7 @@ ccw_device_done(struct ccw_device *cdev, int state)
386 394
387 if (cdev->private->flags.donotify) { 395 if (cdev->private->flags.donotify) {
388 cdev->private->flags.donotify = 0; 396 cdev->private->flags.donotify = 0;
389 PREPARE_WORK(&cdev->private->kick_work, ccw_device_oper_notify); 397 ccw_device_oper_notify(cdev);
390 queue_work(ccw_device_notify_work, &cdev->private->kick_work);
391 } 398 }
392 wake_up(&cdev->private->wait_q); 399 wake_up(&cdev->private->wait_q);
393 400
@@ -651,6 +658,13 @@ ccw_device_offline(struct ccw_device *cdev)
651{ 658{
652 struct subchannel *sch; 659 struct subchannel *sch;
653 660
661 /* Allow ccw_device_offline while disconnected. */
662 if (cdev->private->state == DEV_STATE_DISCONNECTED ||
663 cdev->private->state == DEV_STATE_NOT_OPER) {
664 cdev->private->flags.donotify = 0;
665 ccw_device_done(cdev, DEV_STATE_NOT_OPER);
666 return 0;
667 }
654 if (ccw_device_is_orphan(cdev)) { 668 if (ccw_device_is_orphan(cdev)) {
655 ccw_device_done(cdev, DEV_STATE_OFFLINE); 669 ccw_device_done(cdev, DEV_STATE_OFFLINE);
656 return 0; 670 return 0;
diff --git a/drivers/s390/cio/qdio_debug.h b/drivers/s390/cio/qdio_debug.h
index 8484b83698e..5a4d85b829a 100644
--- a/drivers/s390/cio/qdio_debug.h
+++ b/drivers/s390/cio/qdio_debug.h
@@ -61,18 +61,18 @@
61 61
62/* s390dbf views */ 62/* s390dbf views */
63#define QDIO_DBF_SETUP_LEN 8 63#define QDIO_DBF_SETUP_LEN 8
64#define QDIO_DBF_SETUP_PAGES 4 64#define QDIO_DBF_SETUP_PAGES 8
65#define QDIO_DBF_SETUP_NR_AREAS 1 65#define QDIO_DBF_SETUP_NR_AREAS 1
66 66
67#define QDIO_DBF_TRACE_LEN 8 67#define QDIO_DBF_TRACE_LEN 8
68#define QDIO_DBF_TRACE_NR_AREAS 2 68#define QDIO_DBF_TRACE_NR_AREAS 2
69 69
70#ifdef CONFIG_QDIO_DEBUG 70#ifdef CONFIG_QDIO_DEBUG
71#define QDIO_DBF_TRACE_PAGES 16 71#define QDIO_DBF_TRACE_PAGES 32
72#define QDIO_DBF_SETUP_LEVEL 6 72#define QDIO_DBF_SETUP_LEVEL 6
73#define QDIO_DBF_TRACE_LEVEL 4 73#define QDIO_DBF_TRACE_LEVEL 4
74#else /* !CONFIG_QDIO_DEBUG */ 74#else /* !CONFIG_QDIO_DEBUG */
75#define QDIO_DBF_TRACE_PAGES 4 75#define QDIO_DBF_TRACE_PAGES 8
76#define QDIO_DBF_SETUP_LEVEL 2 76#define QDIO_DBF_SETUP_LEVEL 2
77#define QDIO_DBF_TRACE_LEVEL 2 77#define QDIO_DBF_TRACE_LEVEL 2
78#endif /* CONFIG_QDIO_DEBUG */ 78#endif /* CONFIG_QDIO_DEBUG */
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
index d15648514a0..e6eabc85342 100644
--- a/drivers/s390/cio/qdio_main.c
+++ b/drivers/s390/cio/qdio_main.c
@@ -330,6 +330,7 @@ static int qdio_siga_output(struct qdio_q *q)
330 int cc; 330 int cc;
331 u32 busy_bit; 331 u32 busy_bit;
332 u64 start_time = 0; 332 u64 start_time = 0;
333 char dbf_text[15];
333 334
334 QDIO_DBF_TEXT5(0, trace, "sigaout"); 335 QDIO_DBF_TEXT5(0, trace, "sigaout");
335 QDIO_DBF_HEX5(0, trace, &q, sizeof(void *)); 336 QDIO_DBF_HEX5(0, trace, &q, sizeof(void *));
@@ -338,6 +339,9 @@ static int qdio_siga_output(struct qdio_q *q)
338again: 339again:
339 cc = qdio_do_siga_output(q, &busy_bit); 340 cc = qdio_do_siga_output(q, &busy_bit);
340 if (queue_type(q) == QDIO_IQDIO_QFMT && cc == 2 && busy_bit) { 341 if (queue_type(q) == QDIO_IQDIO_QFMT && cc == 2 && busy_bit) {
342 sprintf(dbf_text, "bb%4x%2x", q->irq_ptr->schid.sch_no, q->nr);
343 QDIO_DBF_TEXT3(0, trace, dbf_text);
344
341 if (!start_time) 345 if (!start_time)
342 start_time = get_usecs(); 346 start_time = get_usecs();
343 else if ((get_usecs() - start_time) < QDIO_BUSY_BIT_PATIENCE) 347 else if ((get_usecs() - start_time) < QDIO_BUSY_BIT_PATIENCE)
@@ -748,16 +752,18 @@ static void qdio_kick_outbound_q(struct qdio_q *q)
748 rc = qdio_siga_output(q); 752 rc = qdio_siga_output(q);
749 switch (rc) { 753 switch (rc) {
750 case 0: 754 case 0:
751 /* went smooth this time, reset timestamp */
752 q->u.out.timestamp = 0;
753
754 /* TODO: improve error handling for CC=0 case */ 755 /* TODO: improve error handling for CC=0 case */
755#ifdef CONFIG_QDIO_DEBUG 756#ifdef CONFIG_QDIO_DEBUG
756 QDIO_DBF_TEXT3(0, trace, "cc2reslv"); 757 if (q->u.out.timestamp) {
757 sprintf(dbf_text, "%4x%2x%2x", q->irq_ptr->schid.sch_no, q->nr, 758 QDIO_DBF_TEXT3(0, trace, "cc2reslv");
758 atomic_read(&q->u.out.busy_siga_counter)); 759 sprintf(dbf_text, "%4x%2x%2x", q->irq_ptr->schid.sch_no,
759 QDIO_DBF_TEXT3(0, trace, dbf_text); 760 q->nr,
761 atomic_read(&q->u.out.busy_siga_counter));
762 QDIO_DBF_TEXT3(0, trace, dbf_text);
763 }
760#endif /* CONFIG_QDIO_DEBUG */ 764#endif /* CONFIG_QDIO_DEBUG */
765 /* went smooth this time, reset timestamp */
766 q->u.out.timestamp = 0;
761 break; 767 break;
762 /* cc=2 and busy bit */ 768 /* cc=2 and busy bit */
763 case (2 | QDIO_ERROR_SIGA_BUSY): 769 case (2 | QDIO_ERROR_SIGA_BUSY):
@@ -1066,14 +1072,12 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm,
1066 if (IS_ERR(irb)) { 1072 if (IS_ERR(irb)) {
1067 switch (PTR_ERR(irb)) { 1073 switch (PTR_ERR(irb)) {
1068 case -EIO: 1074 case -EIO:
1069 sprintf(dbf_text, "ierr%4x", 1075 sprintf(dbf_text, "ierr%4x", irq_ptr->schid.sch_no);
1070 cdev->private->schid.sch_no);
1071 QDIO_DBF_TEXT2(1, setup, dbf_text); 1076 QDIO_DBF_TEXT2(1, setup, dbf_text);
1072 qdio_int_error(cdev); 1077 qdio_int_error(cdev);
1073 return; 1078 return;
1074 case -ETIMEDOUT: 1079 case -ETIMEDOUT:
1075 sprintf(dbf_text, "qtoh%4x", 1080 sprintf(dbf_text, "qtoh%4x", irq_ptr->schid.sch_no);
1076 cdev->private->schid.sch_no);
1077 QDIO_DBF_TEXT2(1, setup, dbf_text); 1081 QDIO_DBF_TEXT2(1, setup, dbf_text);
1078 qdio_int_error(cdev); 1082 qdio_int_error(cdev);
1079 return; 1083 return;
@@ -1124,8 +1128,10 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm,
1124struct qdio_ssqd_desc *qdio_get_ssqd_desc(struct ccw_device *cdev) 1128struct qdio_ssqd_desc *qdio_get_ssqd_desc(struct ccw_device *cdev)
1125{ 1129{
1126 struct qdio_irq *irq_ptr; 1130 struct qdio_irq *irq_ptr;
1131 char dbf_text[15];
1127 1132
1128 QDIO_DBF_TEXT0(0, setup, "getssqd"); 1133 sprintf(dbf_text, "qssq%4x", cdev->private->schid.sch_no);
1134 QDIO_DBF_TEXT0(0, setup, dbf_text);
1129 1135
1130 irq_ptr = cdev->private->qdio_data; 1136 irq_ptr = cdev->private->qdio_data;
1131 if (!irq_ptr) 1137 if (!irq_ptr)
@@ -1149,14 +1155,13 @@ int qdio_cleanup(struct ccw_device *cdev, int how)
1149 char dbf_text[15]; 1155 char dbf_text[15];
1150 int rc; 1156 int rc;
1151 1157
1158 sprintf(dbf_text, "qcln%4x", cdev->private->schid.sch_no);
1159 QDIO_DBF_TEXT0(0, setup, dbf_text);
1160
1152 irq_ptr = cdev->private->qdio_data; 1161 irq_ptr = cdev->private->qdio_data;
1153 if (!irq_ptr) 1162 if (!irq_ptr)
1154 return -ENODEV; 1163 return -ENODEV;
1155 1164
1156 sprintf(dbf_text, "qcln%4x", irq_ptr->schid.sch_no);
1157 QDIO_DBF_TEXT1(0, trace, dbf_text);
1158 QDIO_DBF_TEXT0(0, setup, dbf_text);
1159
1160 rc = qdio_shutdown(cdev, how); 1165 rc = qdio_shutdown(cdev, how);
1161 if (rc == 0) 1166 if (rc == 0)
1162 rc = qdio_free(cdev); 1167 rc = qdio_free(cdev);
@@ -1191,6 +1196,9 @@ int qdio_shutdown(struct ccw_device *cdev, int how)
1191 unsigned long flags; 1196 unsigned long flags;
1192 char dbf_text[15]; 1197 char dbf_text[15];
1193 1198
1199 sprintf(dbf_text, "qshu%4x", cdev->private->schid.sch_no);
1200 QDIO_DBF_TEXT0(0, setup, dbf_text);
1201
1194 irq_ptr = cdev->private->qdio_data; 1202 irq_ptr = cdev->private->qdio_data;
1195 if (!irq_ptr) 1203 if (!irq_ptr)
1196 return -ENODEV; 1204 return -ENODEV;
@@ -1205,10 +1213,6 @@ int qdio_shutdown(struct ccw_device *cdev, int how)
1205 return 0; 1213 return 0;
1206 } 1214 }
1207 1215
1208 sprintf(dbf_text, "qsqs%4x", irq_ptr->schid.sch_no);
1209 QDIO_DBF_TEXT1(0, trace, dbf_text);
1210 QDIO_DBF_TEXT0(0, setup, dbf_text);
1211
1212 tiqdio_remove_input_queues(irq_ptr); 1216 tiqdio_remove_input_queues(irq_ptr);
1213 qdio_shutdown_queues(cdev); 1217 qdio_shutdown_queues(cdev);
1214 qdio_shutdown_debug_entries(irq_ptr, cdev); 1218 qdio_shutdown_debug_entries(irq_ptr, cdev);
@@ -1247,7 +1251,6 @@ no_cleanup:
1247 1251
1248 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_INACTIVE); 1252 qdio_set_state(irq_ptr, QDIO_IRQ_STATE_INACTIVE);
1249 mutex_unlock(&irq_ptr->setup_mutex); 1253 mutex_unlock(&irq_ptr->setup_mutex);
1250 module_put(THIS_MODULE);
1251 if (rc) 1254 if (rc)
1252 return rc; 1255 return rc;
1253 return 0; 1256 return 0;
@@ -1263,16 +1266,14 @@ int qdio_free(struct ccw_device *cdev)
1263 struct qdio_irq *irq_ptr; 1266 struct qdio_irq *irq_ptr;
1264 char dbf_text[15]; 1267 char dbf_text[15];
1265 1268
1269 sprintf(dbf_text, "qfre%4x", cdev->private->schid.sch_no);
1270 QDIO_DBF_TEXT0(0, setup, dbf_text);
1271
1266 irq_ptr = cdev->private->qdio_data; 1272 irq_ptr = cdev->private->qdio_data;
1267 if (!irq_ptr) 1273 if (!irq_ptr)
1268 return -ENODEV; 1274 return -ENODEV;
1269 1275
1270 mutex_lock(&irq_ptr->setup_mutex); 1276 mutex_lock(&irq_ptr->setup_mutex);
1271
1272 sprintf(dbf_text, "qfqs%4x", irq_ptr->schid.sch_no);
1273 QDIO_DBF_TEXT1(0, trace, dbf_text);
1274 QDIO_DBF_TEXT0(0, setup, dbf_text);
1275
1276 cdev->private->qdio_data = NULL; 1277 cdev->private->qdio_data = NULL;
1277 mutex_unlock(&irq_ptr->setup_mutex); 1278 mutex_unlock(&irq_ptr->setup_mutex);
1278 1279
@@ -1295,7 +1296,6 @@ int qdio_initialize(struct qdio_initialize *init_data)
1295 1296
1296 sprintf(dbf_text, "qini%4x", init_data->cdev->private->schid.sch_no); 1297 sprintf(dbf_text, "qini%4x", init_data->cdev->private->schid.sch_no);
1297 QDIO_DBF_TEXT0(0, setup, dbf_text); 1298 QDIO_DBF_TEXT0(0, setup, dbf_text);
1298 QDIO_DBF_TEXT0(0, trace, dbf_text);
1299 1299
1300 rc = qdio_allocate(init_data); 1300 rc = qdio_allocate(init_data);
1301 if (rc) 1301 if (rc)
@@ -1319,7 +1319,6 @@ int qdio_allocate(struct qdio_initialize *init_data)
1319 1319
1320 sprintf(dbf_text, "qalc%4x", init_data->cdev->private->schid.sch_no); 1320 sprintf(dbf_text, "qalc%4x", init_data->cdev->private->schid.sch_no);
1321 QDIO_DBF_TEXT0(0, setup, dbf_text); 1321 QDIO_DBF_TEXT0(0, setup, dbf_text);
1322 QDIO_DBF_TEXT0(0, trace, dbf_text);
1323 1322
1324 if ((init_data->no_input_qs && !init_data->input_handler) || 1323 if ((init_data->no_input_qs && !init_data->input_handler) ||
1325 (init_data->no_output_qs && !init_data->output_handler)) 1324 (init_data->no_output_qs && !init_data->output_handler))
@@ -1389,6 +1388,9 @@ int qdio_establish(struct qdio_initialize *init_data)
1389 unsigned long saveflags; 1388 unsigned long saveflags;
1390 int rc; 1389 int rc;
1391 1390
1391 sprintf(dbf_text, "qest%4x", cdev->private->schid.sch_no);
1392 QDIO_DBF_TEXT0(0, setup, dbf_text);
1393
1392 irq_ptr = cdev->private->qdio_data; 1394 irq_ptr = cdev->private->qdio_data;
1393 if (!irq_ptr) 1395 if (!irq_ptr)
1394 return -ENODEV; 1396 return -ENODEV;
@@ -1396,13 +1398,6 @@ int qdio_establish(struct qdio_initialize *init_data)
1396 if (cdev->private->state != DEV_STATE_ONLINE) 1398 if (cdev->private->state != DEV_STATE_ONLINE)
1397 return -EINVAL; 1399 return -EINVAL;
1398 1400
1399 if (!try_module_get(THIS_MODULE))
1400 return -EINVAL;
1401
1402 sprintf(dbf_text, "qest%4x", cdev->private->schid.sch_no);
1403 QDIO_DBF_TEXT0(0, setup, dbf_text);
1404 QDIO_DBF_TEXT0(0, trace, dbf_text);
1405
1406 mutex_lock(&irq_ptr->setup_mutex); 1401 mutex_lock(&irq_ptr->setup_mutex);
1407 qdio_setup_irq(init_data); 1402 qdio_setup_irq(init_data);
1408 1403
@@ -1472,6 +1467,9 @@ int qdio_activate(struct ccw_device *cdev)
1472 unsigned long saveflags; 1467 unsigned long saveflags;
1473 char dbf_text[20]; 1468 char dbf_text[20];
1474 1469
1470 sprintf(dbf_text, "qact%4x", cdev->private->schid.sch_no);
1471 QDIO_DBF_TEXT0(0, setup, dbf_text);
1472
1475 irq_ptr = cdev->private->qdio_data; 1473 irq_ptr = cdev->private->qdio_data;
1476 if (!irq_ptr) 1474 if (!irq_ptr)
1477 return -ENODEV; 1475 return -ENODEV;
@@ -1485,10 +1483,6 @@ int qdio_activate(struct ccw_device *cdev)
1485 goto out; 1483 goto out;
1486 } 1484 }
1487 1485
1488 sprintf(dbf_text, "qact%4x", irq_ptr->schid.sch_no);
1489 QDIO_DBF_TEXT2(0, setup, dbf_text);
1490 QDIO_DBF_TEXT2(0, trace, dbf_text);
1491
1492 irq_ptr->ccw.cmd_code = irq_ptr->aqueue.cmd; 1486 irq_ptr->ccw.cmd_code = irq_ptr->aqueue.cmd;
1493 irq_ptr->ccw.flags = CCW_FLAG_SLI; 1487 irq_ptr->ccw.flags = CCW_FLAG_SLI;
1494 irq_ptr->ccw.count = irq_ptr->aqueue.count; 1488 irq_ptr->ccw.count = irq_ptr->aqueue.count;
@@ -1663,7 +1657,7 @@ int do_QDIO(struct ccw_device *cdev, unsigned int callflags,
1663#ifdef CONFIG_QDIO_DEBUG 1657#ifdef CONFIG_QDIO_DEBUG
1664 char dbf_text[20]; 1658 char dbf_text[20];
1665 1659
1666 sprintf(dbf_text, "doQD%04x", cdev->private->schid.sch_no); 1660 sprintf(dbf_text, "doQD%4x", cdev->private->schid.sch_no);
1667 QDIO_DBF_TEXT3(0, trace, dbf_text); 1661 QDIO_DBF_TEXT3(0, trace, dbf_text);
1668#endif /* CONFIG_QDIO_DEBUG */ 1662#endif /* CONFIG_QDIO_DEBUG */
1669 1663
diff --git a/drivers/s390/cio/qdio_setup.c b/drivers/s390/cio/qdio_setup.c
index 1bd2a208db2..a0b6b46e746 100644
--- a/drivers/s390/cio/qdio_setup.c
+++ b/drivers/s390/cio/qdio_setup.c
@@ -165,7 +165,7 @@ static void setup_queues(struct qdio_irq *irq_ptr,
165 void **output_sbal_array = qdio_init->output_sbal_addr_array; 165 void **output_sbal_array = qdio_init->output_sbal_addr_array;
166 int i; 166 int i;
167 167
168 sprintf(dbf_text, "qfqs%4x", qdio_init->cdev->private->schid.sch_no); 168 sprintf(dbf_text, "qset%4x", qdio_init->cdev->private->schid.sch_no);
169 QDIO_DBF_TEXT0(0, setup, dbf_text); 169 QDIO_DBF_TEXT0(0, setup, dbf_text);
170 170
171 for_each_input_queue(irq_ptr, q, i) { 171 for_each_input_queue(irq_ptr, q, i) {
@@ -285,7 +285,7 @@ void qdio_setup_ssqd_info(struct qdio_irq *irq_ptr)
285 rc = __get_ssqd_info(irq_ptr); 285 rc = __get_ssqd_info(irq_ptr);
286 if (rc) { 286 if (rc) {
287 QDIO_DBF_TEXT2(0, setup, "ssqdasig"); 287 QDIO_DBF_TEXT2(0, setup, "ssqdasig");
288 sprintf(dbf_text, "schno%x", irq_ptr->schid.sch_no); 288 sprintf(dbf_text, "schn%4x", irq_ptr->schid.sch_no);
289 QDIO_DBF_TEXT2(0, setup, dbf_text); 289 QDIO_DBF_TEXT2(0, setup, dbf_text);
290 sprintf(dbf_text, "rc:%d", rc); 290 sprintf(dbf_text, "rc:%d", rc);
291 QDIO_DBF_TEXT2(0, setup, dbf_text); 291 QDIO_DBF_TEXT2(0, setup, dbf_text);
@@ -447,51 +447,36 @@ void qdio_print_subchannel_info(struct qdio_irq *irq_ptr,
447{ 447{
448 char s[80]; 448 char s[80];
449 449
450 sprintf(s, "%s ", cdev->dev.bus_id); 450 sprintf(s, "qdio: %s ", dev_name(&cdev->dev));
451
452 switch (irq_ptr->qib.qfmt) { 451 switch (irq_ptr->qib.qfmt) {
453 case QDIO_QETH_QFMT: 452 case QDIO_QETH_QFMT:
454 sprintf(s + strlen(s), "OSADE "); 453 sprintf(s + strlen(s), "OSA ");
455 break; 454 break;
456 case QDIO_ZFCP_QFMT: 455 case QDIO_ZFCP_QFMT:
457 sprintf(s + strlen(s), "ZFCP "); 456 sprintf(s + strlen(s), "ZFCP ");
458 break; 457 break;
459 case QDIO_IQDIO_QFMT: 458 case QDIO_IQDIO_QFMT:
460 sprintf(s + strlen(s), "HiperSockets "); 459 sprintf(s + strlen(s), "HS ");
461 break; 460 break;
462 } 461 }
463 sprintf(s + strlen(s), "using: "); 462 sprintf(s + strlen(s), "on SC %x using ", irq_ptr->schid.sch_no);
464 463 sprintf(s + strlen(s), "AI:%d ", is_thinint_irq(irq_ptr));
465 if (!is_thinint_irq(irq_ptr)) 464 sprintf(s + strlen(s), "QEBSM:%d ", (irq_ptr->sch_token) ? 1 : 0);
466 sprintf(s + strlen(s), "no"); 465 sprintf(s + strlen(s), "PCI:%d ",
467 sprintf(s + strlen(s), "AdapterInterrupts "); 466 (irq_ptr->qib.ac & QIB_AC_OUTBOUND_PCI_SUPPORTED) ? 1 : 0);
468 if (!(irq_ptr->sch_token != 0)) 467 sprintf(s + strlen(s), "TDD:%d ", css_general_characteristics.aif_tdd);
469 sprintf(s + strlen(s), "no"); 468 sprintf(s + strlen(s), "SIGA:");
470 sprintf(s + strlen(s), "QEBSM "); 469 sprintf(s + strlen(s), "%s", (irq_ptr->siga_flag.input) ? "R" : " ");
471 if (!(irq_ptr->qib.ac & QIB_AC_OUTBOUND_PCI_SUPPORTED)) 470 sprintf(s + strlen(s), "%s", (irq_ptr->siga_flag.output) ? "W" : " ");
472 sprintf(s + strlen(s), "no"); 471 sprintf(s + strlen(s), "%s", (irq_ptr->siga_flag.sync) ? "S" : " ");
473 sprintf(s + strlen(s), "OutboundPCI "); 472 sprintf(s + strlen(s), "%s",
474 if (!css_general_characteristics.aif_tdd) 473 (!irq_ptr->siga_flag.no_sync_ti) ? "A" : " ");
475 sprintf(s + strlen(s), "no"); 474 sprintf(s + strlen(s), "%s",
476 sprintf(s + strlen(s), "TDD\n"); 475 (!irq_ptr->siga_flag.no_sync_out_ti) ? "O" : " ");
477 printk(KERN_INFO "qdio: %s", s); 476 sprintf(s + strlen(s), "%s",
478 477 (!irq_ptr->siga_flag.no_sync_out_pci) ? "P" : " ");
479 memset(s, 0, sizeof(s));
480 sprintf(s, "%s SIGA required: ", cdev->dev.bus_id);
481 if (irq_ptr->siga_flag.input)
482 sprintf(s + strlen(s), "Read ");
483 if (irq_ptr->siga_flag.output)
484 sprintf(s + strlen(s), "Write ");
485 if (irq_ptr->siga_flag.sync)
486 sprintf(s + strlen(s), "Sync ");
487 if (!irq_ptr->siga_flag.no_sync_ti)
488 sprintf(s + strlen(s), "SyncAI ");
489 if (!irq_ptr->siga_flag.no_sync_out_ti)
490 sprintf(s + strlen(s), "SyncOutAI ");
491 if (!irq_ptr->siga_flag.no_sync_out_pci)
492 sprintf(s + strlen(s), "SyncOutPCI");
493 sprintf(s + strlen(s), "\n"); 478 sprintf(s + strlen(s), "\n");
494 printk(KERN_INFO "qdio: %s", s); 479 printk(KERN_INFO "%s", s);
495} 480}
496 481
497int __init qdio_setup_init(void) 482int __init qdio_setup_init(void)
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c
index 9291a771d81..ea7f6140026 100644
--- a/drivers/s390/cio/qdio_thinint.c
+++ b/drivers/s390/cio/qdio_thinint.c
@@ -113,7 +113,11 @@ void tiqdio_remove_input_queues(struct qdio_irq *irq_ptr)
113 struct qdio_q *q; 113 struct qdio_q *q;
114 int i; 114 int i;
115 115
116 for_each_input_queue(irq_ptr, q, i) { 116 for (i = 0; i < irq_ptr->nr_input_qs; i++) {
117 q = irq_ptr->input_qs[i];
118 /* if establish triggered an error */
119 if (!q || !q->entry.prev || !q->entry.next)
120 continue;
117 list_del_rcu(&q->entry); 121 list_del_rcu(&q->entry);
118 synchronize_rcu(); 122 synchronize_rcu();
119 } 123 }
diff --git a/drivers/s390/net/claw.c b/drivers/s390/net/claw.c
index a08b1682c8e..e10ac9ab2d4 100644
--- a/drivers/s390/net/claw.c
+++ b/drivers/s390/net/claw.c
@@ -133,14 +133,14 @@ claw_register_debug_facility(void)
133static inline void 133static inline void
134claw_set_busy(struct net_device *dev) 134claw_set_busy(struct net_device *dev)
135{ 135{
136 ((struct claw_privbk *) dev->priv)->tbusy=1; 136 ((struct claw_privbk *)dev->ml_priv)->tbusy = 1;
137 eieio(); 137 eieio();
138} 138}
139 139
140static inline void 140static inline void
141claw_clear_busy(struct net_device *dev) 141claw_clear_busy(struct net_device *dev)
142{ 142{
143 clear_bit(0, &(((struct claw_privbk *) dev->priv)->tbusy)); 143 clear_bit(0, &(((struct claw_privbk *) dev->ml_priv)->tbusy));
144 netif_wake_queue(dev); 144 netif_wake_queue(dev);
145 eieio(); 145 eieio();
146} 146}
@@ -149,20 +149,20 @@ static inline int
149claw_check_busy(struct net_device *dev) 149claw_check_busy(struct net_device *dev)
150{ 150{
151 eieio(); 151 eieio();
152 return ((struct claw_privbk *) dev->priv)->tbusy; 152 return ((struct claw_privbk *) dev->ml_priv)->tbusy;
153} 153}
154 154
155static inline void 155static inline void
156claw_setbit_busy(int nr,struct net_device *dev) 156claw_setbit_busy(int nr,struct net_device *dev)
157{ 157{
158 netif_stop_queue(dev); 158 netif_stop_queue(dev);
159 set_bit(nr, (void *)&(((struct claw_privbk *)dev->priv)->tbusy)); 159 set_bit(nr, (void *)&(((struct claw_privbk *)dev->ml_priv)->tbusy));
160} 160}
161 161
162static inline void 162static inline void
163claw_clearbit_busy(int nr,struct net_device *dev) 163claw_clearbit_busy(int nr,struct net_device *dev)
164{ 164{
165 clear_bit(nr,(void *)&(((struct claw_privbk *)dev->priv)->tbusy)); 165 clear_bit(nr, (void *)&(((struct claw_privbk *)dev->ml_priv)->tbusy));
166 netif_wake_queue(dev); 166 netif_wake_queue(dev);
167} 167}
168 168
@@ -171,7 +171,7 @@ claw_test_and_setbit_busy(int nr,struct net_device *dev)
171{ 171{
172 netif_stop_queue(dev); 172 netif_stop_queue(dev);
173 return test_and_set_bit(nr, 173 return test_and_set_bit(nr,
174 (void *)&(((struct claw_privbk *) dev->priv)->tbusy)); 174 (void *)&(((struct claw_privbk *) dev->ml_priv)->tbusy));
175} 175}
176 176
177 177
@@ -271,6 +271,7 @@ claw_probe(struct ccwgroup_device *cgdev)
271 if (!get_device(&cgdev->dev)) 271 if (!get_device(&cgdev->dev))
272 return -ENODEV; 272 return -ENODEV;
273 privptr = kzalloc(sizeof(struct claw_privbk), GFP_KERNEL); 273 privptr = kzalloc(sizeof(struct claw_privbk), GFP_KERNEL);
274 cgdev->dev.driver_data = privptr;
274 if (privptr == NULL) { 275 if (privptr == NULL) {
275 probe_error(cgdev); 276 probe_error(cgdev);
276 put_device(&cgdev->dev); 277 put_device(&cgdev->dev);
@@ -305,7 +306,6 @@ claw_probe(struct ccwgroup_device *cgdev)
305 privptr->p_env->p_priv = privptr; 306 privptr->p_env->p_priv = privptr;
306 cgdev->cdev[0]->handler = claw_irq_handler; 307 cgdev->cdev[0]->handler = claw_irq_handler;
307 cgdev->cdev[1]->handler = claw_irq_handler; 308 cgdev->cdev[1]->handler = claw_irq_handler;
308 cgdev->dev.driver_data = privptr;
309 CLAW_DBF_TEXT(2, setup, "prbext 0"); 309 CLAW_DBF_TEXT(2, setup, "prbext 0");
310 310
311 return 0; 311 return 0;
@@ -319,7 +319,7 @@ static int
319claw_tx(struct sk_buff *skb, struct net_device *dev) 319claw_tx(struct sk_buff *skb, struct net_device *dev)
320{ 320{
321 int rc; 321 int rc;
322 struct claw_privbk *privptr=dev->priv; 322 struct claw_privbk *privptr = dev->ml_priv;
323 unsigned long saveflags; 323 unsigned long saveflags;
324 struct chbk *p_ch; 324 struct chbk *p_ch;
325 325
@@ -404,7 +404,7 @@ claw_pack_skb(struct claw_privbk *privptr)
404static int 404static int
405claw_change_mtu(struct net_device *dev, int new_mtu) 405claw_change_mtu(struct net_device *dev, int new_mtu)
406{ 406{
407 struct claw_privbk *privptr=dev->priv; 407 struct claw_privbk *privptr = dev->ml_priv;
408 int buff_size; 408 int buff_size;
409 CLAW_DBF_TEXT(4, trace, "setmtu"); 409 CLAW_DBF_TEXT(4, trace, "setmtu");
410 buff_size = privptr->p_env->write_size; 410 buff_size = privptr->p_env->write_size;
@@ -434,7 +434,7 @@ claw_open(struct net_device *dev)
434 struct ccwbk *p_buf; 434 struct ccwbk *p_buf;
435 435
436 CLAW_DBF_TEXT(4, trace, "open"); 436 CLAW_DBF_TEXT(4, trace, "open");
437 privptr = (struct claw_privbk *)dev->priv; 437 privptr = (struct claw_privbk *)dev->ml_priv;
438 /* allocate and initialize CCW blocks */ 438 /* allocate and initialize CCW blocks */
439 if (privptr->buffs_alloc == 0) { 439 if (privptr->buffs_alloc == 0) {
440 rc=init_ccw_bk(dev); 440 rc=init_ccw_bk(dev);
@@ -780,7 +780,7 @@ claw_irq_tasklet ( unsigned long data )
780 p_ch = (struct chbk *) data; 780 p_ch = (struct chbk *) data;
781 dev = (struct net_device *)p_ch->ndev; 781 dev = (struct net_device *)p_ch->ndev;
782 CLAW_DBF_TEXT(4, trace, "IRQtask"); 782 CLAW_DBF_TEXT(4, trace, "IRQtask");
783 privptr = (struct claw_privbk *) dev->priv; 783 privptr = (struct claw_privbk *)dev->ml_priv;
784 unpack_read(dev); 784 unpack_read(dev);
785 clear_bit(CLAW_BH_ACTIVE, (void *)&p_ch->flag_a); 785 clear_bit(CLAW_BH_ACTIVE, (void *)&p_ch->flag_a);
786 CLAW_DBF_TEXT(4, trace, "TskletXt"); 786 CLAW_DBF_TEXT(4, trace, "TskletXt");
@@ -805,7 +805,7 @@ claw_release(struct net_device *dev)
805 805
806 if (!dev) 806 if (!dev)
807 return 0; 807 return 0;
808 privptr = (struct claw_privbk *) dev->priv; 808 privptr = (struct claw_privbk *)dev->ml_priv;
809 if (!privptr) 809 if (!privptr)
810 return 0; 810 return 0;
811 CLAW_DBF_TEXT(4, trace, "release"); 811 CLAW_DBF_TEXT(4, trace, "release");
@@ -960,7 +960,7 @@ claw_write_next ( struct chbk * p_ch )
960 if (p_ch->claw_state == CLAW_STOP) 960 if (p_ch->claw_state == CLAW_STOP)
961 return; 961 return;
962 dev = (struct net_device *) p_ch->ndev; 962 dev = (struct net_device *) p_ch->ndev;
963 privptr = (struct claw_privbk *) dev->priv; 963 privptr = (struct claw_privbk *) dev->ml_priv;
964 claw_free_wrt_buf( dev ); 964 claw_free_wrt_buf( dev );
965 if ((privptr->write_free_count > 0) && 965 if ((privptr->write_free_count > 0) &&
966 !skb_queue_empty(&p_ch->collect_queue)) { 966 !skb_queue_empty(&p_ch->collect_queue)) {
@@ -1042,7 +1042,7 @@ add_claw_reads(struct net_device *dev, struct ccwbk* p_first,
1042 struct ccw1 temp_ccw; 1042 struct ccw1 temp_ccw;
1043 struct endccw * p_end; 1043 struct endccw * p_end;
1044 CLAW_DBF_TEXT(4, trace, "addreads"); 1044 CLAW_DBF_TEXT(4, trace, "addreads");
1045 privptr = dev->priv; 1045 privptr = dev->ml_priv;
1046 p_end = privptr->p_end_ccw; 1046 p_end = privptr->p_end_ccw;
1047 1047
1048 /* first CCW and last CCW contains a new set of read channel programs 1048 /* first CCW and last CCW contains a new set of read channel programs
@@ -1212,7 +1212,7 @@ find_link(struct net_device *dev, char *host_name, char *ws_name )
1212 int rc=0; 1212 int rc=0;
1213 1213
1214 CLAW_DBF_TEXT(2, setup, "findlink"); 1214 CLAW_DBF_TEXT(2, setup, "findlink");
1215 privptr=dev->priv; 1215 privptr = dev->ml_priv;
1216 p_env=privptr->p_env; 1216 p_env=privptr->p_env;
1217 switch (p_env->packing) 1217 switch (p_env->packing)
1218 { 1218 {
@@ -1264,7 +1264,7 @@ claw_hw_tx(struct sk_buff *skb, struct net_device *dev, long linkid)
1264 struct chbk *ch; 1264 struct chbk *ch;
1265 1265
1266 CLAW_DBF_TEXT(4, trace, "hw_tx"); 1266 CLAW_DBF_TEXT(4, trace, "hw_tx");
1267 privptr = (struct claw_privbk *) (dev->priv); 1267 privptr = (struct claw_privbk *)(dev->ml_priv);
1268 p_ch=(struct chbk *)&privptr->channel[WRITE]; 1268 p_ch=(struct chbk *)&privptr->channel[WRITE];
1269 p_env =privptr->p_env; 1269 p_env =privptr->p_env;
1270 claw_free_wrt_buf(dev); /* Clean up free chain if posible */ 1270 claw_free_wrt_buf(dev); /* Clean up free chain if posible */
@@ -1483,8 +1483,8 @@ init_ccw_bk(struct net_device *dev)
1483 struct ccwbk*p_last_CCWB; 1483 struct ccwbk*p_last_CCWB;
1484 struct ccwbk*p_first_CCWB; 1484 struct ccwbk*p_first_CCWB;
1485 struct endccw *p_endccw=NULL; 1485 struct endccw *p_endccw=NULL;
1486 addr_t real_address; 1486 addr_t real_address;
1487 struct claw_privbk *privptr=dev->priv; 1487 struct claw_privbk *privptr = dev->ml_priv;
1488 struct clawh *pClawH=NULL; 1488 struct clawh *pClawH=NULL;
1489 addr_t real_TIC_address; 1489 addr_t real_TIC_address;
1490 int i,j; 1490 int i,j;
@@ -1960,19 +1960,16 @@ init_ccw_bk(struct net_device *dev)
1960static void 1960static void
1961probe_error( struct ccwgroup_device *cgdev) 1961probe_error( struct ccwgroup_device *cgdev)
1962{ 1962{
1963 struct claw_privbk *privptr; 1963 struct claw_privbk *privptr;
1964 1964
1965 CLAW_DBF_TEXT(4, trace, "proberr"); 1965 CLAW_DBF_TEXT(4, trace, "proberr");
1966 privptr=(struct claw_privbk *)cgdev->dev.driver_data; 1966 privptr = (struct claw_privbk *) cgdev->dev.driver_data;
1967 if (privptr!=NULL) { 1967 if (privptr != NULL) {
1968 cgdev->dev.driver_data = NULL;
1968 kfree(privptr->p_env); 1969 kfree(privptr->p_env);
1969 privptr->p_env=NULL; 1970 kfree(privptr->p_mtc_envelope);
1970 kfree(privptr->p_mtc_envelope); 1971 kfree(privptr);
1971 privptr->p_mtc_envelope=NULL; 1972 }
1972 kfree(privptr);
1973 privptr=NULL;
1974 }
1975 return;
1976} /* probe_error */ 1973} /* probe_error */
1977 1974
1978/*-------------------------------------------------------------------* 1975/*-------------------------------------------------------------------*
@@ -2000,7 +1997,7 @@ claw_process_control( struct net_device *dev, struct ccwbk * p_ccw)
2000 CLAW_DBF_TEXT(2, setup, "clw_cntl"); 1997 CLAW_DBF_TEXT(2, setup, "clw_cntl");
2001 udelay(1000); /* Wait a ms for the control packets to 1998 udelay(1000); /* Wait a ms for the control packets to
2002 *catch up to each other */ 1999 *catch up to each other */
2003 privptr=dev->priv; 2000 privptr = dev->ml_priv;
2004 p_env=privptr->p_env; 2001 p_env=privptr->p_env;
2005 tdev = &privptr->channel[READ].cdev->dev; 2002 tdev = &privptr->channel[READ].cdev->dev;
2006 memcpy( &temp_host_name, p_env->host_name, 8); 2003 memcpy( &temp_host_name, p_env->host_name, 8);
@@ -2278,7 +2275,7 @@ claw_send_control(struct net_device *dev, __u8 type, __u8 link,
2278 struct sk_buff *skb; 2275 struct sk_buff *skb;
2279 2276
2280 CLAW_DBF_TEXT(2, setup, "sndcntl"); 2277 CLAW_DBF_TEXT(2, setup, "sndcntl");
2281 privptr=dev->priv; 2278 privptr = dev->ml_priv;
2282 p_ctl=(struct clawctl *)&privptr->ctl_bk; 2279 p_ctl=(struct clawctl *)&privptr->ctl_bk;
2283 2280
2284 p_ctl->command=type; 2281 p_ctl->command=type;
@@ -2348,7 +2345,7 @@ static int
2348claw_snd_conn_req(struct net_device *dev, __u8 link) 2345claw_snd_conn_req(struct net_device *dev, __u8 link)
2349{ 2346{
2350 int rc; 2347 int rc;
2351 struct claw_privbk *privptr=dev->priv; 2348 struct claw_privbk *privptr = dev->ml_priv;
2352 struct clawctl *p_ctl; 2349 struct clawctl *p_ctl;
2353 2350
2354 CLAW_DBF_TEXT(2, setup, "snd_conn"); 2351 CLAW_DBF_TEXT(2, setup, "snd_conn");
@@ -2408,7 +2405,7 @@ claw_snd_sys_validate_rsp(struct net_device *dev,
2408 int rc; 2405 int rc;
2409 2406
2410 CLAW_DBF_TEXT(2, setup, "chkresp"); 2407 CLAW_DBF_TEXT(2, setup, "chkresp");
2411 privptr = dev->priv; 2408 privptr = dev->ml_priv;
2412 p_env=privptr->p_env; 2409 p_env=privptr->p_env;
2413 rc=claw_send_control(dev, SYSTEM_VALIDATE_RESPONSE, 2410 rc=claw_send_control(dev, SYSTEM_VALIDATE_RESPONSE,
2414 p_ctl->linkid, 2411 p_ctl->linkid,
@@ -2446,7 +2443,7 @@ net_device_stats *claw_stats(struct net_device *dev)
2446 struct claw_privbk *privptr; 2443 struct claw_privbk *privptr;
2447 2444
2448 CLAW_DBF_TEXT(4, trace, "stats"); 2445 CLAW_DBF_TEXT(4, trace, "stats");
2449 privptr = dev->priv; 2446 privptr = dev->ml_priv;
2450 return &privptr->stats; 2447 return &privptr->stats;
2451} /* end of claw_stats */ 2448} /* end of claw_stats */
2452 2449
@@ -2482,7 +2479,7 @@ unpack_read(struct net_device *dev )
2482 p_last_ccw=NULL; 2479 p_last_ccw=NULL;
2483 p_packh=NULL; 2480 p_packh=NULL;
2484 p_packd=NULL; 2481 p_packd=NULL;
2485 privptr=dev->priv; 2482 privptr = dev->ml_priv;
2486 2483
2487 p_dev = &privptr->channel[READ].cdev->dev; 2484 p_dev = &privptr->channel[READ].cdev->dev;
2488 p_env = privptr->p_env; 2485 p_env = privptr->p_env;
@@ -2651,7 +2648,7 @@ claw_strt_read (struct net_device *dev, int lock )
2651 int rc = 0; 2648 int rc = 0;
2652 __u32 parm; 2649 __u32 parm;
2653 unsigned long saveflags = 0; 2650 unsigned long saveflags = 0;
2654 struct claw_privbk *privptr=dev->priv; 2651 struct claw_privbk *privptr = dev->ml_priv;
2655 struct ccwbk*p_ccwbk; 2652 struct ccwbk*p_ccwbk;
2656 struct chbk *p_ch; 2653 struct chbk *p_ch;
2657 struct clawh *p_clawh; 2654 struct clawh *p_clawh;
@@ -2708,7 +2705,7 @@ claw_strt_out_IO( struct net_device *dev )
2708 if (!dev) { 2705 if (!dev) {
2709 return; 2706 return;
2710 } 2707 }
2711 privptr=(struct claw_privbk *)dev->priv; 2708 privptr = (struct claw_privbk *)dev->ml_priv;
2712 p_ch=&privptr->channel[WRITE]; 2709 p_ch=&privptr->channel[WRITE];
2713 2710
2714 CLAW_DBF_TEXT(4, trace, "strt_io"); 2711 CLAW_DBF_TEXT(4, trace, "strt_io");
@@ -2741,7 +2738,7 @@ static void
2741claw_free_wrt_buf( struct net_device *dev ) 2738claw_free_wrt_buf( struct net_device *dev )
2742{ 2739{
2743 2740
2744 struct claw_privbk *privptr=(struct claw_privbk *)dev->priv; 2741 struct claw_privbk *privptr = (struct claw_privbk *)dev->ml_priv;
2745 struct ccwbk*p_first_ccw; 2742 struct ccwbk*p_first_ccw;
2746 struct ccwbk*p_last_ccw; 2743 struct ccwbk*p_last_ccw;
2747 struct ccwbk*p_this_ccw; 2744 struct ccwbk*p_this_ccw;
@@ -2798,13 +2795,13 @@ claw_free_netdevice(struct net_device * dev, int free_dev)
2798 if (!dev) 2795 if (!dev)
2799 return; 2796 return;
2800 CLAW_DBF_TEXT_(2, setup, "%s", dev->name); 2797 CLAW_DBF_TEXT_(2, setup, "%s", dev->name);
2801 privptr = dev->priv; 2798 privptr = dev->ml_priv;
2802 if (dev->flags & IFF_RUNNING) 2799 if (dev->flags & IFF_RUNNING)
2803 claw_release(dev); 2800 claw_release(dev);
2804 if (privptr) { 2801 if (privptr) {
2805 privptr->channel[READ].ndev = NULL; /* say it's free */ 2802 privptr->channel[READ].ndev = NULL; /* say it's free */
2806 } 2803 }
2807 dev->priv=NULL; 2804 dev->ml_priv = NULL;
2808#ifdef MODULE 2805#ifdef MODULE
2809 if (free_dev) { 2806 if (free_dev) {
2810 free_netdev(dev); 2807 free_netdev(dev);
@@ -2921,7 +2918,7 @@ claw_new_device(struct ccwgroup_device *cgdev)
2921 printk(KERN_WARNING "%s:alloc_netdev failed\n",__func__); 2918 printk(KERN_WARNING "%s:alloc_netdev failed\n",__func__);
2922 goto out; 2919 goto out;
2923 } 2920 }
2924 dev->priv = privptr; 2921 dev->ml_priv = privptr;
2925 cgdev->dev.driver_data = privptr; 2922 cgdev->dev.driver_data = privptr;
2926 cgdev->cdev[READ]->dev.driver_data = privptr; 2923 cgdev->cdev[READ]->dev.driver_data = privptr;
2927 cgdev->cdev[WRITE]->dev.driver_data = privptr; 2924 cgdev->cdev[WRITE]->dev.driver_data = privptr;
@@ -3002,7 +2999,7 @@ claw_shutdown_device(struct ccwgroup_device *cgdev)
3002 ret = claw_release(ndev); 2999 ret = claw_release(ndev);
3003 ndev->flags &=~IFF_RUNNING; 3000 ndev->flags &=~IFF_RUNNING;
3004 unregister_netdev(ndev); 3001 unregister_netdev(ndev);
3005 ndev->priv = NULL; /* cgdev data, not ndev's to free */ 3002 ndev->ml_priv = NULL; /* cgdev data, not ndev's to free */
3006 claw_free_netdevice(ndev, 1); 3003 claw_free_netdevice(ndev, 1);
3007 priv->channel[READ].ndev = NULL; 3004 priv->channel[READ].ndev = NULL;
3008 priv->channel[WRITE].ndev = NULL; 3005 priv->channel[WRITE].ndev = NULL;
diff --git a/drivers/s390/net/ctcm_fsms.c b/drivers/s390/net/ctcm_fsms.c
index 0b4e6253abe..42776550acf 100644
--- a/drivers/s390/net/ctcm_fsms.c
+++ b/drivers/s390/net/ctcm_fsms.c
@@ -245,7 +245,7 @@ static void chx_txdone(fsm_instance *fi, int event, void *arg)
245{ 245{
246 struct channel *ch = arg; 246 struct channel *ch = arg;
247 struct net_device *dev = ch->netdev; 247 struct net_device *dev = ch->netdev;
248 struct ctcm_priv *priv = dev->priv; 248 struct ctcm_priv *priv = dev->ml_priv;
249 struct sk_buff *skb; 249 struct sk_buff *skb;
250 int first = 1; 250 int first = 1;
251 int i; 251 int i;
@@ -336,7 +336,7 @@ void ctcm_chx_txidle(fsm_instance *fi, int event, void *arg)
336{ 336{
337 struct channel *ch = arg; 337 struct channel *ch = arg;
338 struct net_device *dev = ch->netdev; 338 struct net_device *dev = ch->netdev;
339 struct ctcm_priv *priv = dev->priv; 339 struct ctcm_priv *priv = dev->ml_priv;
340 340
341 CTCM_PR_DEBUG("%s(%s): %s\n", __func__, ch->id, dev->name); 341 CTCM_PR_DEBUG("%s(%s): %s\n", __func__, ch->id, dev->name);
342 342
@@ -357,7 +357,7 @@ static void chx_rx(fsm_instance *fi, int event, void *arg)
357{ 357{
358 struct channel *ch = arg; 358 struct channel *ch = arg;
359 struct net_device *dev = ch->netdev; 359 struct net_device *dev = ch->netdev;
360 struct ctcm_priv *priv = dev->priv; 360 struct ctcm_priv *priv = dev->ml_priv;
361 int len = ch->max_bufsize - ch->irb->scsw.cmd.count; 361 int len = ch->max_bufsize - ch->irb->scsw.cmd.count;
362 struct sk_buff *skb = ch->trans_skb; 362 struct sk_buff *skb = ch->trans_skb;
363 __u16 block_len = *((__u16 *)skb->data); 363 __u16 block_len = *((__u16 *)skb->data);
@@ -459,7 +459,7 @@ static void chx_firstio(fsm_instance *fi, int event, void *arg)
459 chx_rxidle(fi, event, arg); 459 chx_rxidle(fi, event, arg);
460 } else { 460 } else {
461 struct net_device *dev = ch->netdev; 461 struct net_device *dev = ch->netdev;
462 struct ctcm_priv *priv = dev->priv; 462 struct ctcm_priv *priv = dev->ml_priv;
463 fsm_newstate(fi, CTC_STATE_TXIDLE); 463 fsm_newstate(fi, CTC_STATE_TXIDLE);
464 fsm_event(priv->fsm, DEV_EVENT_TXUP, dev); 464 fsm_event(priv->fsm, DEV_EVENT_TXUP, dev);
465 } 465 }
@@ -496,7 +496,7 @@ static void chx_firstio(fsm_instance *fi, int event, void *arg)
496 if ((CHANNEL_DIRECTION(ch->flags) == READ) && 496 if ((CHANNEL_DIRECTION(ch->flags) == READ) &&
497 (ch->protocol == CTCM_PROTO_S390)) { 497 (ch->protocol == CTCM_PROTO_S390)) {
498 struct net_device *dev = ch->netdev; 498 struct net_device *dev = ch->netdev;
499 struct ctcm_priv *priv = dev->priv; 499 struct ctcm_priv *priv = dev->ml_priv;
500 fsm_event(priv->fsm, DEV_EVENT_RXUP, dev); 500 fsm_event(priv->fsm, DEV_EVENT_RXUP, dev);
501 } 501 }
502} 502}
@@ -514,7 +514,7 @@ static void chx_rxidle(fsm_instance *fi, int event, void *arg)
514{ 514{
515 struct channel *ch = arg; 515 struct channel *ch = arg;
516 struct net_device *dev = ch->netdev; 516 struct net_device *dev = ch->netdev;
517 struct ctcm_priv *priv = dev->priv; 517 struct ctcm_priv *priv = dev->ml_priv;
518 __u16 buflen; 518 __u16 buflen;
519 int rc; 519 int rc;
520 520
@@ -699,7 +699,7 @@ static void ctcm_chx_cleanup(fsm_instance *fi, int state,
699 struct channel *ch) 699 struct channel *ch)
700{ 700{
701 struct net_device *dev = ch->netdev; 701 struct net_device *dev = ch->netdev;
702 struct ctcm_priv *priv = dev->priv; 702 struct ctcm_priv *priv = dev->ml_priv;
703 703
704 CTCM_DBF_TEXT_(SETUP, CTC_DBF_NOTICE, 704 CTCM_DBF_TEXT_(SETUP, CTC_DBF_NOTICE,
705 "%s(%s): %s[%d]\n", 705 "%s(%s): %s[%d]\n",
@@ -784,7 +784,7 @@ static void ctcm_chx_setuperr(fsm_instance *fi, int event, void *arg)
784{ 784{
785 struct channel *ch = arg; 785 struct channel *ch = arg;
786 struct net_device *dev = ch->netdev; 786 struct net_device *dev = ch->netdev;
787 struct ctcm_priv *priv = dev->priv; 787 struct ctcm_priv *priv = dev->ml_priv;
788 788
789 /* 789 /*
790 * Special case: Got UC_RCRESET on setmode. 790 * Special case: Got UC_RCRESET on setmode.
@@ -874,7 +874,7 @@ static void ctcm_chx_rxiniterr(fsm_instance *fi, int event, void *arg)
874{ 874{
875 struct channel *ch = arg; 875 struct channel *ch = arg;
876 struct net_device *dev = ch->netdev; 876 struct net_device *dev = ch->netdev;
877 struct ctcm_priv *priv = dev->priv; 877 struct ctcm_priv *priv = dev->ml_priv;
878 878
879 if (event == CTC_EVENT_TIMER) { 879 if (event == CTC_EVENT_TIMER) {
880 if (!IS_MPCDEV(dev)) 880 if (!IS_MPCDEV(dev))
@@ -902,7 +902,7 @@ static void ctcm_chx_rxinitfail(fsm_instance *fi, int event, void *arg)
902{ 902{
903 struct channel *ch = arg; 903 struct channel *ch = arg;
904 struct net_device *dev = ch->netdev; 904 struct net_device *dev = ch->netdev;
905 struct ctcm_priv *priv = dev->priv; 905 struct ctcm_priv *priv = dev->ml_priv;
906 906
907 CTCM_DBF_TEXT_(ERROR, CTC_DBF_ERROR, 907 CTCM_DBF_TEXT_(ERROR, CTC_DBF_ERROR,
908 "%s(%s): RX %s busy, init. fail", 908 "%s(%s): RX %s busy, init. fail",
@@ -923,7 +923,7 @@ static void ctcm_chx_rxdisc(fsm_instance *fi, int event, void *arg)
923 struct channel *ch = arg; 923 struct channel *ch = arg;
924 struct channel *ch2; 924 struct channel *ch2;
925 struct net_device *dev = ch->netdev; 925 struct net_device *dev = ch->netdev;
926 struct ctcm_priv *priv = dev->priv; 926 struct ctcm_priv *priv = dev->ml_priv;
927 927
928 CTCM_DBF_TEXT_(TRACE, CTC_DBF_NOTICE, 928 CTCM_DBF_TEXT_(TRACE, CTC_DBF_NOTICE,
929 "%s: %s: remote disconnect - re-init ...", 929 "%s: %s: remote disconnect - re-init ...",
@@ -954,7 +954,7 @@ static void ctcm_chx_txiniterr(fsm_instance *fi, int event, void *arg)
954{ 954{
955 struct channel *ch = arg; 955 struct channel *ch = arg;
956 struct net_device *dev = ch->netdev; 956 struct net_device *dev = ch->netdev;
957 struct ctcm_priv *priv = dev->priv; 957 struct ctcm_priv *priv = dev->ml_priv;
958 958
959 if (event == CTC_EVENT_TIMER) { 959 if (event == CTC_EVENT_TIMER) {
960 fsm_deltimer(&ch->timer); 960 fsm_deltimer(&ch->timer);
@@ -984,7 +984,7 @@ static void ctcm_chx_txretry(fsm_instance *fi, int event, void *arg)
984{ 984{
985 struct channel *ch = arg; 985 struct channel *ch = arg;
986 struct net_device *dev = ch->netdev; 986 struct net_device *dev = ch->netdev;
987 struct ctcm_priv *priv = dev->priv; 987 struct ctcm_priv *priv = dev->ml_priv;
988 struct sk_buff *skb; 988 struct sk_buff *skb;
989 989
990 CTCM_PR_DEBUG("Enter: %s: cp=%i ch=0x%p id=%s\n", 990 CTCM_PR_DEBUG("Enter: %s: cp=%i ch=0x%p id=%s\n",
@@ -1057,7 +1057,7 @@ static void ctcm_chx_iofatal(fsm_instance *fi, int event, void *arg)
1057{ 1057{
1058 struct channel *ch = arg; 1058 struct channel *ch = arg;
1059 struct net_device *dev = ch->netdev; 1059 struct net_device *dev = ch->netdev;
1060 struct ctcm_priv *priv = dev->priv; 1060 struct ctcm_priv *priv = dev->ml_priv;
1061 int rd = CHANNEL_DIRECTION(ch->flags); 1061 int rd = CHANNEL_DIRECTION(ch->flags);
1062 1062
1063 fsm_deltimer(&ch->timer); 1063 fsm_deltimer(&ch->timer);
@@ -1207,7 +1207,7 @@ static void ctcmpc_chx_txdone(fsm_instance *fi, int event, void *arg)
1207{ 1207{
1208 struct channel *ch = arg; 1208 struct channel *ch = arg;
1209 struct net_device *dev = ch->netdev; 1209 struct net_device *dev = ch->netdev;
1210 struct ctcm_priv *priv = dev->priv; 1210 struct ctcm_priv *priv = dev->ml_priv;
1211 struct mpc_group *grp = priv->mpcg; 1211 struct mpc_group *grp = priv->mpcg;
1212 struct sk_buff *skb; 1212 struct sk_buff *skb;
1213 int first = 1; 1213 int first = 1;
@@ -1368,7 +1368,7 @@ static void ctcmpc_chx_rx(fsm_instance *fi, int event, void *arg)
1368{ 1368{
1369 struct channel *ch = arg; 1369 struct channel *ch = arg;
1370 struct net_device *dev = ch->netdev; 1370 struct net_device *dev = ch->netdev;
1371 struct ctcm_priv *priv = dev->priv; 1371 struct ctcm_priv *priv = dev->ml_priv;
1372 struct mpc_group *grp = priv->mpcg; 1372 struct mpc_group *grp = priv->mpcg;
1373 struct sk_buff *skb = ch->trans_skb; 1373 struct sk_buff *skb = ch->trans_skb;
1374 struct sk_buff *new_skb; 1374 struct sk_buff *new_skb;
@@ -1471,7 +1471,7 @@ static void ctcmpc_chx_firstio(fsm_instance *fi, int event, void *arg)
1471{ 1471{
1472 struct channel *ch = arg; 1472 struct channel *ch = arg;
1473 struct net_device *dev = ch->netdev; 1473 struct net_device *dev = ch->netdev;
1474 struct ctcm_priv *priv = dev->priv; 1474 struct ctcm_priv *priv = dev->ml_priv;
1475 struct mpc_group *gptr = priv->mpcg; 1475 struct mpc_group *gptr = priv->mpcg;
1476 1476
1477 CTCM_PR_DEBUG("Enter %s: id=%s, ch=0x%p\n", 1477 CTCM_PR_DEBUG("Enter %s: id=%s, ch=0x%p\n",
@@ -1525,7 +1525,7 @@ void ctcmpc_chx_rxidle(fsm_instance *fi, int event, void *arg)
1525{ 1525{
1526 struct channel *ch = arg; 1526 struct channel *ch = arg;
1527 struct net_device *dev = ch->netdev; 1527 struct net_device *dev = ch->netdev;
1528 struct ctcm_priv *priv = dev->priv; 1528 struct ctcm_priv *priv = dev->ml_priv;
1529 struct mpc_group *grp = priv->mpcg; 1529 struct mpc_group *grp = priv->mpcg;
1530 int rc; 1530 int rc;
1531 unsigned long saveflags = 0; /* avoids compiler warning */ 1531 unsigned long saveflags = 0; /* avoids compiler warning */
@@ -1580,7 +1580,7 @@ static void ctcmpc_chx_attn(fsm_instance *fsm, int event, void *arg)
1580{ 1580{
1581 struct channel *ch = arg; 1581 struct channel *ch = arg;
1582 struct net_device *dev = ch->netdev; 1582 struct net_device *dev = ch->netdev;
1583 struct ctcm_priv *priv = dev->priv; 1583 struct ctcm_priv *priv = dev->ml_priv;
1584 struct mpc_group *grp = priv->mpcg; 1584 struct mpc_group *grp = priv->mpcg;
1585 1585
1586 CTCM_PR_DEBUG("%s(%s): %s(ch=0x%p), cp=%i, ChStat:%s, GrpStat:%s\n", 1586 CTCM_PR_DEBUG("%s(%s): %s(ch=0x%p), cp=%i, ChStat:%s, GrpStat:%s\n",
@@ -1639,7 +1639,7 @@ static void ctcmpc_chx_attnbusy(fsm_instance *fsm, int event, void *arg)
1639{ 1639{
1640 struct channel *ch = arg; 1640 struct channel *ch = arg;
1641 struct net_device *dev = ch->netdev; 1641 struct net_device *dev = ch->netdev;
1642 struct ctcm_priv *priv = dev->priv; 1642 struct ctcm_priv *priv = dev->ml_priv;
1643 struct mpc_group *grp = priv->mpcg; 1643 struct mpc_group *grp = priv->mpcg;
1644 1644
1645 CTCM_PR_DEBUG("%s(%s): %s\n ChState:%s GrpState:%s\n", 1645 CTCM_PR_DEBUG("%s(%s): %s\n ChState:%s GrpState:%s\n",
@@ -1724,7 +1724,7 @@ static void ctcmpc_chx_resend(fsm_instance *fsm, int event, void *arg)
1724{ 1724{
1725 struct channel *ch = arg; 1725 struct channel *ch = arg;
1726 struct net_device *dev = ch->netdev; 1726 struct net_device *dev = ch->netdev;
1727 struct ctcm_priv *priv = dev->priv; 1727 struct ctcm_priv *priv = dev->ml_priv;
1728 struct mpc_group *grp = priv->mpcg; 1728 struct mpc_group *grp = priv->mpcg;
1729 1729
1730 fsm_event(grp->fsm, MPCG_EVENT_XID0DO, ch); 1730 fsm_event(grp->fsm, MPCG_EVENT_XID0DO, ch);
@@ -1740,7 +1740,7 @@ static void ctcmpc_chx_send_sweep(fsm_instance *fsm, int event, void *arg)
1740{ 1740{
1741 struct channel *ach = arg; 1741 struct channel *ach = arg;
1742 struct net_device *dev = ach->netdev; 1742 struct net_device *dev = ach->netdev;
1743 struct ctcm_priv *priv = dev->priv; 1743 struct ctcm_priv *priv = dev->ml_priv;
1744 struct mpc_group *grp = priv->mpcg; 1744 struct mpc_group *grp = priv->mpcg;
1745 struct channel *wch = priv->channel[WRITE]; 1745 struct channel *wch = priv->channel[WRITE];
1746 struct channel *rch = priv->channel[READ]; 1746 struct channel *rch = priv->channel[READ];
@@ -2050,7 +2050,7 @@ int mpc_ch_fsm_len = ARRAY_SIZE(ctcmpc_ch_fsm);
2050static void dev_action_start(fsm_instance *fi, int event, void *arg) 2050static void dev_action_start(fsm_instance *fi, int event, void *arg)
2051{ 2051{
2052 struct net_device *dev = arg; 2052 struct net_device *dev = arg;
2053 struct ctcm_priv *priv = dev->priv; 2053 struct ctcm_priv *priv = dev->ml_priv;
2054 int direction; 2054 int direction;
2055 2055
2056 CTCMY_DBF_DEV_NAME(SETUP, dev, ""); 2056 CTCMY_DBF_DEV_NAME(SETUP, dev, "");
@@ -2076,7 +2076,7 @@ static void dev_action_stop(fsm_instance *fi, int event, void *arg)
2076{ 2076{
2077 int direction; 2077 int direction;
2078 struct net_device *dev = arg; 2078 struct net_device *dev = arg;
2079 struct ctcm_priv *priv = dev->priv; 2079 struct ctcm_priv *priv = dev->ml_priv;
2080 2080
2081 CTCMY_DBF_DEV_NAME(SETUP, dev, ""); 2081 CTCMY_DBF_DEV_NAME(SETUP, dev, "");
2082 2082
@@ -2096,7 +2096,7 @@ static void dev_action_restart(fsm_instance *fi, int event, void *arg)
2096{ 2096{
2097 int restart_timer; 2097 int restart_timer;
2098 struct net_device *dev = arg; 2098 struct net_device *dev = arg;
2099 struct ctcm_priv *priv = dev->priv; 2099 struct ctcm_priv *priv = dev->ml_priv;
2100 2100
2101 CTCMY_DBF_DEV_NAME(TRACE, dev, ""); 2101 CTCMY_DBF_DEV_NAME(TRACE, dev, "");
2102 2102
@@ -2133,12 +2133,12 @@ static void dev_action_restart(fsm_instance *fi, int event, void *arg)
2133static void dev_action_chup(fsm_instance *fi, int event, void *arg) 2133static void dev_action_chup(fsm_instance *fi, int event, void *arg)
2134{ 2134{
2135 struct net_device *dev = arg; 2135 struct net_device *dev = arg;
2136 struct ctcm_priv *priv = dev->priv; 2136 struct ctcm_priv *priv = dev->ml_priv;
2137 int dev_stat = fsm_getstate(fi); 2137 int dev_stat = fsm_getstate(fi);
2138 2138
2139 CTCM_DBF_TEXT_(SETUP, CTC_DBF_NOTICE, 2139 CTCM_DBF_TEXT_(SETUP, CTC_DBF_NOTICE,
2140 "%s(%s): priv = %p [%d,%d]\n ", CTCM_FUNTAIL, 2140 "%s(%s): priv = %p [%d,%d]\n ", CTCM_FUNTAIL,
2141 dev->name, dev->priv, dev_stat, event); 2141 dev->name, dev->ml_priv, dev_stat, event);
2142 2142
2143 switch (fsm_getstate(fi)) { 2143 switch (fsm_getstate(fi)) {
2144 case DEV_STATE_STARTWAIT_RXTX: 2144 case DEV_STATE_STARTWAIT_RXTX:
@@ -2195,7 +2195,7 @@ static void dev_action_chdown(fsm_instance *fi, int event, void *arg)
2195{ 2195{
2196 2196
2197 struct net_device *dev = arg; 2197 struct net_device *dev = arg;
2198 struct ctcm_priv *priv = dev->priv; 2198 struct ctcm_priv *priv = dev->ml_priv;
2199 2199
2200 CTCMY_DBF_DEV_NAME(SETUP, dev, ""); 2200 CTCMY_DBF_DEV_NAME(SETUP, dev, "");
2201 2201
diff --git a/drivers/s390/net/ctcm_main.c b/drivers/s390/net/ctcm_main.c
index 126a3ebb8ab..b11fec24c7d 100644
--- a/drivers/s390/net/ctcm_main.c
+++ b/drivers/s390/net/ctcm_main.c
@@ -69,7 +69,7 @@ struct channel *channels;
69void ctcm_unpack_skb(struct channel *ch, struct sk_buff *pskb) 69void ctcm_unpack_skb(struct channel *ch, struct sk_buff *pskb)
70{ 70{
71 struct net_device *dev = ch->netdev; 71 struct net_device *dev = ch->netdev;
72 struct ctcm_priv *priv = dev->priv; 72 struct ctcm_priv *priv = dev->ml_priv;
73 __u16 len = *((__u16 *) pskb->data); 73 __u16 len = *((__u16 *) pskb->data);
74 74
75 skb_put(pskb, 2 + LL_HEADER_LENGTH); 75 skb_put(pskb, 2 + LL_HEADER_LENGTH);
@@ -414,7 +414,7 @@ int ctcm_ch_alloc_buffer(struct channel *ch)
414 */ 414 */
415int ctcm_open(struct net_device *dev) 415int ctcm_open(struct net_device *dev)
416{ 416{
417 struct ctcm_priv *priv = dev->priv; 417 struct ctcm_priv *priv = dev->ml_priv;
418 418
419 CTCMY_DBF_DEV_NAME(SETUP, dev, ""); 419 CTCMY_DBF_DEV_NAME(SETUP, dev, "");
420 if (!IS_MPC(priv)) 420 if (!IS_MPC(priv))
@@ -432,7 +432,7 @@ int ctcm_open(struct net_device *dev)
432 */ 432 */
433int ctcm_close(struct net_device *dev) 433int ctcm_close(struct net_device *dev)
434{ 434{
435 struct ctcm_priv *priv = dev->priv; 435 struct ctcm_priv *priv = dev->ml_priv;
436 436
437 CTCMY_DBF_DEV_NAME(SETUP, dev, ""); 437 CTCMY_DBF_DEV_NAME(SETUP, dev, "");
438 if (!IS_MPC(priv)) 438 if (!IS_MPC(priv))
@@ -573,7 +573,7 @@ static int ctcm_transmit_skb(struct channel *ch, struct sk_buff *skb)
573 skb_pull(skb, LL_HEADER_LENGTH + 2); 573 skb_pull(skb, LL_HEADER_LENGTH + 2);
574 } else if (ccw_idx == 0) { 574 } else if (ccw_idx == 0) {
575 struct net_device *dev = ch->netdev; 575 struct net_device *dev = ch->netdev;
576 struct ctcm_priv *priv = dev->priv; 576 struct ctcm_priv *priv = dev->ml_priv;
577 priv->stats.tx_packets++; 577 priv->stats.tx_packets++;
578 priv->stats.tx_bytes += skb->len - LL_HEADER_LENGTH; 578 priv->stats.tx_bytes += skb->len - LL_HEADER_LENGTH;
579 } 579 }
@@ -592,7 +592,7 @@ static void ctcmpc_send_sweep_req(struct channel *rch)
592 struct channel *ch; 592 struct channel *ch;
593 /* int rc = 0; */ 593 /* int rc = 0; */
594 594
595 priv = dev->priv; 595 priv = dev->ml_priv;
596 grp = priv->mpcg; 596 grp = priv->mpcg;
597 ch = priv->channel[WRITE]; 597 ch = priv->channel[WRITE];
598 598
@@ -652,7 +652,7 @@ static int ctcmpc_transmit_skb(struct channel *ch, struct sk_buff *skb)
652{ 652{
653 struct pdu *p_header; 653 struct pdu *p_header;
654 struct net_device *dev = ch->netdev; 654 struct net_device *dev = ch->netdev;
655 struct ctcm_priv *priv = dev->priv; 655 struct ctcm_priv *priv = dev->ml_priv;
656 struct mpc_group *grp = priv->mpcg; 656 struct mpc_group *grp = priv->mpcg;
657 struct th_header *header; 657 struct th_header *header;
658 struct sk_buff *nskb; 658 struct sk_buff *nskb;
@@ -867,7 +867,7 @@ done:
867/* first merge version - leaving both functions separated */ 867/* first merge version - leaving both functions separated */
868static int ctcm_tx(struct sk_buff *skb, struct net_device *dev) 868static int ctcm_tx(struct sk_buff *skb, struct net_device *dev)
869{ 869{
870 struct ctcm_priv *priv = dev->priv; 870 struct ctcm_priv *priv = dev->ml_priv;
871 871
872 if (skb == NULL) { 872 if (skb == NULL) {
873 CTCM_DBF_TEXT_(ERROR, CTC_DBF_ERROR, 873 CTCM_DBF_TEXT_(ERROR, CTC_DBF_ERROR,
@@ -911,7 +911,7 @@ static int ctcm_tx(struct sk_buff *skb, struct net_device *dev)
911static int ctcmpc_tx(struct sk_buff *skb, struct net_device *dev) 911static int ctcmpc_tx(struct sk_buff *skb, struct net_device *dev)
912{ 912{
913 int len = 0; 913 int len = 0;
914 struct ctcm_priv *priv = dev->priv; 914 struct ctcm_priv *priv = dev->ml_priv;
915 struct mpc_group *grp = priv->mpcg; 915 struct mpc_group *grp = priv->mpcg;
916 struct sk_buff *newskb = NULL; 916 struct sk_buff *newskb = NULL;
917 917
@@ -1025,7 +1025,7 @@ static int ctcm_change_mtu(struct net_device *dev, int new_mtu)
1025 if (new_mtu < 576 || new_mtu > 65527) 1025 if (new_mtu < 576 || new_mtu > 65527)
1026 return -EINVAL; 1026 return -EINVAL;
1027 1027
1028 priv = dev->priv; 1028 priv = dev->ml_priv;
1029 max_bufsize = priv->channel[READ]->max_bufsize; 1029 max_bufsize = priv->channel[READ]->max_bufsize;
1030 1030
1031 if (IS_MPC(priv)) { 1031 if (IS_MPC(priv)) {
@@ -1050,7 +1050,7 @@ static int ctcm_change_mtu(struct net_device *dev, int new_mtu)
1050 */ 1050 */
1051static struct net_device_stats *ctcm_stats(struct net_device *dev) 1051static struct net_device_stats *ctcm_stats(struct net_device *dev)
1052{ 1052{
1053 return &((struct ctcm_priv *)dev->priv)->stats; 1053 return &((struct ctcm_priv *)dev->ml_priv)->stats;
1054} 1054}
1055 1055
1056static void ctcm_free_netdevice(struct net_device *dev) 1056static void ctcm_free_netdevice(struct net_device *dev)
@@ -1060,7 +1060,7 @@ static void ctcm_free_netdevice(struct net_device *dev)
1060 1060
1061 CTCM_DBF_TEXT_(SETUP, CTC_DBF_INFO, 1061 CTCM_DBF_TEXT_(SETUP, CTC_DBF_INFO,
1062 "%s(%s)", CTCM_FUNTAIL, dev->name); 1062 "%s(%s)", CTCM_FUNTAIL, dev->name);
1063 priv = dev->priv; 1063 priv = dev->ml_priv;
1064 if (priv) { 1064 if (priv) {
1065 grp = priv->mpcg; 1065 grp = priv->mpcg;
1066 if (grp) { 1066 if (grp) {
@@ -1125,7 +1125,7 @@ static struct net_device *ctcm_init_netdevice(struct ctcm_priv *priv)
1125 CTCM_FUNTAIL); 1125 CTCM_FUNTAIL);
1126 return NULL; 1126 return NULL;
1127 } 1127 }
1128 dev->priv = priv; 1128 dev->ml_priv = priv;
1129 priv->fsm = init_fsm("ctcmdev", dev_state_names, dev_event_names, 1129 priv->fsm = init_fsm("ctcmdev", dev_state_names, dev_event_names,
1130 CTCM_NR_DEV_STATES, CTCM_NR_DEV_EVENTS, 1130 CTCM_NR_DEV_STATES, CTCM_NR_DEV_EVENTS,
1131 dev_fsm, dev_fsm_len, GFP_KERNEL); 1131 dev_fsm, dev_fsm_len, GFP_KERNEL);
diff --git a/drivers/s390/net/ctcm_main.h b/drivers/s390/net/ctcm_main.h
index a72e0feeb27..8e10ee86a5e 100644
--- a/drivers/s390/net/ctcm_main.h
+++ b/drivers/s390/net/ctcm_main.h
@@ -229,14 +229,14 @@ void ctcm_remove_files(struct device *dev);
229 */ 229 */
230static inline void ctcm_clear_busy_do(struct net_device *dev) 230static inline void ctcm_clear_busy_do(struct net_device *dev)
231{ 231{
232 clear_bit(0, &(((struct ctcm_priv *)dev->priv)->tbusy)); 232 clear_bit(0, &(((struct ctcm_priv *)dev->ml_priv)->tbusy));
233 netif_wake_queue(dev); 233 netif_wake_queue(dev);
234} 234}
235 235
236static inline void ctcm_clear_busy(struct net_device *dev) 236static inline void ctcm_clear_busy(struct net_device *dev)
237{ 237{
238 struct mpc_group *grp; 238 struct mpc_group *grp;
239 grp = ((struct ctcm_priv *)dev->priv)->mpcg; 239 grp = ((struct ctcm_priv *)dev->ml_priv)->mpcg;
240 240
241 if (!(grp && grp->in_sweep)) 241 if (!(grp && grp->in_sweep))
242 ctcm_clear_busy_do(dev); 242 ctcm_clear_busy_do(dev);
@@ -246,7 +246,8 @@ static inline void ctcm_clear_busy(struct net_device *dev)
246static inline int ctcm_test_and_set_busy(struct net_device *dev) 246static inline int ctcm_test_and_set_busy(struct net_device *dev)
247{ 247{
248 netif_stop_queue(dev); 248 netif_stop_queue(dev);
249 return test_and_set_bit(0, &(((struct ctcm_priv *)dev->priv)->tbusy)); 249 return test_and_set_bit(0,
250 &(((struct ctcm_priv *)dev->ml_priv)->tbusy));
250} 251}
251 252
252extern int loglevel; 253extern int loglevel;
@@ -292,7 +293,7 @@ struct mpc_group *ctcmpc_init_mpc_group(struct ctcm_priv *priv);
292#define IS_MPC(p) ((p)->protocol == CTCM_PROTO_MPC) 293#define IS_MPC(p) ((p)->protocol == CTCM_PROTO_MPC)
293 294
294/* test if struct ctcm_priv of struct net_device has MPC protocol setting */ 295/* test if struct ctcm_priv of struct net_device has MPC protocol setting */
295#define IS_MPCDEV(d) IS_MPC((struct ctcm_priv *)d->priv) 296#define IS_MPCDEV(dev) IS_MPC((struct ctcm_priv *)dev->ml_priv)
296 297
297static inline gfp_t gfp_type(void) 298static inline gfp_t gfp_type(void)
298{ 299{
diff --git a/drivers/s390/net/ctcm_mpc.c b/drivers/s390/net/ctcm_mpc.c
index 49ae1cd25ca..cbe470493bf 100644
--- a/drivers/s390/net/ctcm_mpc.c
+++ b/drivers/s390/net/ctcm_mpc.c
@@ -19,7 +19,6 @@
19#undef DEBUGDATA 19#undef DEBUGDATA
20#undef DEBUGCCW 20#undef DEBUGCCW
21 21
22#include <linux/version.h>
23#include <linux/module.h> 22#include <linux/module.h>
24#include <linux/init.h> 23#include <linux/init.h>
25#include <linux/kernel.h> 24#include <linux/kernel.h>
@@ -313,10 +312,10 @@ static struct net_device *ctcmpc_get_dev(int port_num)
313 CTCM_FUNTAIL, device); 312 CTCM_FUNTAIL, device);
314 return NULL; 313 return NULL;
315 } 314 }
316 priv = dev->priv; 315 priv = dev->ml_priv;
317 if (priv == NULL) { 316 if (priv == NULL) {
318 CTCM_DBF_TEXT_(MPC_ERROR, CTC_DBF_ERROR, 317 CTCM_DBF_TEXT_(MPC_ERROR, CTC_DBF_ERROR,
319 "%s(%s): dev->priv is NULL", 318 "%s(%s): dev->ml_priv is NULL",
320 CTCM_FUNTAIL, device); 319 CTCM_FUNTAIL, device);
321 return NULL; 320 return NULL;
322 } 321 }
@@ -345,7 +344,7 @@ int ctc_mpc_alloc_channel(int port_num, void (*callback)(int, int))
345 dev = ctcmpc_get_dev(port_num); 344 dev = ctcmpc_get_dev(port_num);
346 if (dev == NULL) 345 if (dev == NULL)
347 return 1; 346 return 1;
348 priv = dev->priv; 347 priv = dev->ml_priv;
349 grp = priv->mpcg; 348 grp = priv->mpcg;
350 349
351 grp->allochanfunc = callback; 350 grp->allochanfunc = callback;
@@ -417,7 +416,7 @@ void ctc_mpc_establish_connectivity(int port_num,
417 dev = ctcmpc_get_dev(port_num); 416 dev = ctcmpc_get_dev(port_num);
418 if (dev == NULL) 417 if (dev == NULL)
419 return; 418 return;
420 priv = dev->priv; 419 priv = dev->ml_priv;
421 grp = priv->mpcg; 420 grp = priv->mpcg;
422 rch = priv->channel[READ]; 421 rch = priv->channel[READ];
423 wch = priv->channel[WRITE]; 422 wch = priv->channel[WRITE];
@@ -535,7 +534,7 @@ void ctc_mpc_dealloc_ch(int port_num)
535 dev = ctcmpc_get_dev(port_num); 534 dev = ctcmpc_get_dev(port_num);
536 if (dev == NULL) 535 if (dev == NULL)
537 return; 536 return;
538 priv = dev->priv; 537 priv = dev->ml_priv;
539 grp = priv->mpcg; 538 grp = priv->mpcg;
540 539
541 CTCM_DBF_TEXT_(MPC_SETUP, CTC_DBF_DEBUG, 540 CTCM_DBF_TEXT_(MPC_SETUP, CTC_DBF_DEBUG,
@@ -571,7 +570,7 @@ void ctc_mpc_flow_control(int port_num, int flowc)
571 dev = ctcmpc_get_dev(port_num); 570 dev = ctcmpc_get_dev(port_num);
572 if (dev == NULL) 571 if (dev == NULL)
573 return; 572 return;
574 priv = dev->priv; 573 priv = dev->ml_priv;
575 grp = priv->mpcg; 574 grp = priv->mpcg;
576 575
577 CTCM_DBF_TEXT_(MPC_TRACE, CTC_DBF_DEBUG, 576 CTCM_DBF_TEXT_(MPC_TRACE, CTC_DBF_DEBUG,
@@ -620,7 +619,7 @@ static void mpc_rcvd_sweep_resp(struct mpcg_info *mpcginfo)
620{ 619{
621 struct channel *rch = mpcginfo->ch; 620 struct channel *rch = mpcginfo->ch;
622 struct net_device *dev = rch->netdev; 621 struct net_device *dev = rch->netdev;
623 struct ctcm_priv *priv = dev->priv; 622 struct ctcm_priv *priv = dev->ml_priv;
624 struct mpc_group *grp = priv->mpcg; 623 struct mpc_group *grp = priv->mpcg;
625 struct channel *ch = priv->channel[WRITE]; 624 struct channel *ch = priv->channel[WRITE];
626 625
@@ -651,7 +650,7 @@ static void mpc_rcvd_sweep_resp(struct mpcg_info *mpcginfo)
651static void ctcmpc_send_sweep_resp(struct channel *rch) 650static void ctcmpc_send_sweep_resp(struct channel *rch)
652{ 651{
653 struct net_device *dev = rch->netdev; 652 struct net_device *dev = rch->netdev;
654 struct ctcm_priv *priv = dev->priv; 653 struct ctcm_priv *priv = dev->ml_priv;
655 struct mpc_group *grp = priv->mpcg; 654 struct mpc_group *grp = priv->mpcg;
656 int rc = 0; 655 int rc = 0;
657 struct th_sweep *header; 656 struct th_sweep *header;
@@ -713,7 +712,7 @@ static void mpc_rcvd_sweep_req(struct mpcg_info *mpcginfo)
713{ 712{
714 struct channel *rch = mpcginfo->ch; 713 struct channel *rch = mpcginfo->ch;
715 struct net_device *dev = rch->netdev; 714 struct net_device *dev = rch->netdev;
716 struct ctcm_priv *priv = dev->priv; 715 struct ctcm_priv *priv = dev->ml_priv;
717 struct mpc_group *grp = priv->mpcg; 716 struct mpc_group *grp = priv->mpcg;
718 struct channel *ch = priv->channel[WRITE]; 717 struct channel *ch = priv->channel[WRITE];
719 718
@@ -847,7 +846,7 @@ static int mpcg_fsm_len = ARRAY_SIZE(mpcg_fsm);
847static void mpc_action_go_ready(fsm_instance *fsm, int event, void *arg) 846static void mpc_action_go_ready(fsm_instance *fsm, int event, void *arg)
848{ 847{
849 struct net_device *dev = arg; 848 struct net_device *dev = arg;
850 struct ctcm_priv *priv = dev->priv; 849 struct ctcm_priv *priv = dev->ml_priv;
851 struct mpc_group *grp = priv->mpcg; 850 struct mpc_group *grp = priv->mpcg;
852 851
853 if (grp == NULL) { 852 if (grp == NULL) {
@@ -891,7 +890,7 @@ static void mpc_action_go_ready(fsm_instance *fsm, int event, void *arg)
891void mpc_group_ready(unsigned long adev) 890void mpc_group_ready(unsigned long adev)
892{ 891{
893 struct net_device *dev = (struct net_device *)adev; 892 struct net_device *dev = (struct net_device *)adev;
894 struct ctcm_priv *priv = dev->priv; 893 struct ctcm_priv *priv = dev->ml_priv;
895 struct mpc_group *grp = priv->mpcg; 894 struct mpc_group *grp = priv->mpcg;
896 struct channel *ch = NULL; 895 struct channel *ch = NULL;
897 896
@@ -947,7 +946,7 @@ void mpc_group_ready(unsigned long adev)
947void mpc_channel_action(struct channel *ch, int direction, int action) 946void mpc_channel_action(struct channel *ch, int direction, int action)
948{ 947{
949 struct net_device *dev = ch->netdev; 948 struct net_device *dev = ch->netdev;
950 struct ctcm_priv *priv = dev->priv; 949 struct ctcm_priv *priv = dev->ml_priv;
951 struct mpc_group *grp = priv->mpcg; 950 struct mpc_group *grp = priv->mpcg;
952 951
953 if (grp == NULL) { 952 if (grp == NULL) {
@@ -1057,7 +1056,7 @@ done:
1057static void ctcmpc_unpack_skb(struct channel *ch, struct sk_buff *pskb) 1056static void ctcmpc_unpack_skb(struct channel *ch, struct sk_buff *pskb)
1058{ 1057{
1059 struct net_device *dev = ch->netdev; 1058 struct net_device *dev = ch->netdev;
1060 struct ctcm_priv *priv = dev->priv; 1059 struct ctcm_priv *priv = dev->ml_priv;
1061 struct mpc_group *grp = priv->mpcg; 1060 struct mpc_group *grp = priv->mpcg;
1062 struct pdu *curr_pdu; 1061 struct pdu *curr_pdu;
1063 struct mpcg_info *mpcginfo; 1062 struct mpcg_info *mpcginfo;
@@ -1255,7 +1254,7 @@ void ctcmpc_bh(unsigned long thischan)
1255 struct channel *ch = (struct channel *)thischan; 1254 struct channel *ch = (struct channel *)thischan;
1256 struct sk_buff *skb; 1255 struct sk_buff *skb;
1257 struct net_device *dev = ch->netdev; 1256 struct net_device *dev = ch->netdev;
1258 struct ctcm_priv *priv = dev->priv; 1257 struct ctcm_priv *priv = dev->ml_priv;
1259 struct mpc_group *grp = priv->mpcg; 1258 struct mpc_group *grp = priv->mpcg;
1260 1259
1261 CTCM_PR_DEBUG("%s cp:%i enter: %s() %s\n", 1260 CTCM_PR_DEBUG("%s cp:%i enter: %s() %s\n",
@@ -1377,7 +1376,7 @@ static void mpc_action_go_inop(fsm_instance *fi, int event, void *arg)
1377 BUG_ON(dev == NULL); 1376 BUG_ON(dev == NULL);
1378 CTCM_PR_DEBUG("Enter %s: %s\n", __func__, dev->name); 1377 CTCM_PR_DEBUG("Enter %s: %s\n", __func__, dev->name);
1379 1378
1380 priv = dev->priv; 1379 priv = dev->ml_priv;
1381 grp = priv->mpcg; 1380 grp = priv->mpcg;
1382 grp->flow_off_called = 0; 1381 grp->flow_off_called = 0;
1383 fsm_deltimer(&grp->timer); 1382 fsm_deltimer(&grp->timer);
@@ -1483,7 +1482,7 @@ static void mpc_action_timeout(fsm_instance *fi, int event, void *arg)
1483 1482
1484 BUG_ON(dev == NULL); 1483 BUG_ON(dev == NULL);
1485 1484
1486 priv = dev->priv; 1485 priv = dev->ml_priv;
1487 grp = priv->mpcg; 1486 grp = priv->mpcg;
1488 wch = priv->channel[WRITE]; 1487 wch = priv->channel[WRITE];
1489 rch = priv->channel[READ]; 1488 rch = priv->channel[READ];
@@ -1521,7 +1520,7 @@ void mpc_action_discontact(fsm_instance *fi, int event, void *arg)
1521 if (ch) { 1520 if (ch) {
1522 dev = ch->netdev; 1521 dev = ch->netdev;
1523 if (dev) { 1522 if (dev) {
1524 priv = dev->priv; 1523 priv = dev->ml_priv;
1525 if (priv) { 1524 if (priv) {
1526 CTCM_DBF_TEXT_(MPC_TRACE, CTC_DBF_NOTICE, 1525 CTCM_DBF_TEXT_(MPC_TRACE, CTC_DBF_NOTICE,
1527 "%s: %s: %s\n", 1526 "%s: %s: %s\n",
@@ -1569,7 +1568,7 @@ static int mpc_validate_xid(struct mpcg_info *mpcginfo)
1569{ 1568{
1570 struct channel *ch = mpcginfo->ch; 1569 struct channel *ch = mpcginfo->ch;
1571 struct net_device *dev = ch->netdev; 1570 struct net_device *dev = ch->netdev;
1572 struct ctcm_priv *priv = dev->priv; 1571 struct ctcm_priv *priv = dev->ml_priv;
1573 struct mpc_group *grp = priv->mpcg; 1572 struct mpc_group *grp = priv->mpcg;
1574 struct xid2 *xid = mpcginfo->xid; 1573 struct xid2 *xid = mpcginfo->xid;
1575 int rc = 0; 1574 int rc = 0;
@@ -1866,7 +1865,7 @@ static void mpc_action_doxid0(fsm_instance *fsm, int event, void *arg)
1866{ 1865{
1867 struct channel *ch = arg; 1866 struct channel *ch = arg;
1868 struct net_device *dev = ch->netdev; 1867 struct net_device *dev = ch->netdev;
1869 struct ctcm_priv *priv = dev->priv; 1868 struct ctcm_priv *priv = dev->ml_priv;
1870 struct mpc_group *grp = priv->mpcg; 1869 struct mpc_group *grp = priv->mpcg;
1871 1870
1872 CTCM_PR_DEBUG("Enter %s: cp=%i ch=0x%p id=%s\n", 1871 CTCM_PR_DEBUG("Enter %s: cp=%i ch=0x%p id=%s\n",
@@ -1906,7 +1905,7 @@ static void mpc_action_doxid0(fsm_instance *fsm, int event, void *arg)
1906static void mpc_action_doxid7(fsm_instance *fsm, int event, void *arg) 1905static void mpc_action_doxid7(fsm_instance *fsm, int event, void *arg)
1907{ 1906{
1908 struct net_device *dev = arg; 1907 struct net_device *dev = arg;
1909 struct ctcm_priv *priv = dev->priv; 1908 struct ctcm_priv *priv = dev->ml_priv;
1910 struct mpc_group *grp = NULL; 1909 struct mpc_group *grp = NULL;
1911 int direction; 1910 int direction;
1912 int send = 0; 1911 int send = 0;
@@ -1983,7 +1982,7 @@ static void mpc_action_rcvd_xid0(fsm_instance *fsm, int event, void *arg)
1983 struct mpcg_info *mpcginfo = arg; 1982 struct mpcg_info *mpcginfo = arg;
1984 struct channel *ch = mpcginfo->ch; 1983 struct channel *ch = mpcginfo->ch;
1985 struct net_device *dev = ch->netdev; 1984 struct net_device *dev = ch->netdev;
1986 struct ctcm_priv *priv = dev->priv; 1985 struct ctcm_priv *priv = dev->ml_priv;
1987 struct mpc_group *grp = priv->mpcg; 1986 struct mpc_group *grp = priv->mpcg;
1988 1987
1989 CTCM_PR_DEBUG("%s: ch-id:%s xid2:%i xid7:%i xidt_p2:%i \n", 1988 CTCM_PR_DEBUG("%s: ch-id:%s xid2:%i xid7:%i xidt_p2:%i \n",
@@ -2045,7 +2044,7 @@ static void mpc_action_rcvd_xid7(fsm_instance *fsm, int event, void *arg)
2045 struct mpcg_info *mpcginfo = arg; 2044 struct mpcg_info *mpcginfo = arg;
2046 struct channel *ch = mpcginfo->ch; 2045 struct channel *ch = mpcginfo->ch;
2047 struct net_device *dev = ch->netdev; 2046 struct net_device *dev = ch->netdev;
2048 struct ctcm_priv *priv = dev->priv; 2047 struct ctcm_priv *priv = dev->ml_priv;
2049 struct mpc_group *grp = priv->mpcg; 2048 struct mpc_group *grp = priv->mpcg;
2050 2049
2051 CTCM_PR_DEBUG("Enter %s: cp=%i ch=0x%p id=%s\n", 2050 CTCM_PR_DEBUG("Enter %s: cp=%i ch=0x%p id=%s\n",
@@ -2097,7 +2096,7 @@ static int mpc_send_qllc_discontact(struct net_device *dev)
2097 __u32 new_len = 0; 2096 __u32 new_len = 0;
2098 struct sk_buff *skb; 2097 struct sk_buff *skb;
2099 struct qllc *qllcptr; 2098 struct qllc *qllcptr;
2100 struct ctcm_priv *priv = dev->priv; 2099 struct ctcm_priv *priv = dev->ml_priv;
2101 struct mpc_group *grp = priv->mpcg; 2100 struct mpc_group *grp = priv->mpcg;
2102 2101
2103 CTCM_PR_DEBUG("%s: GROUP STATE: %s\n", 2102 CTCM_PR_DEBUG("%s: GROUP STATE: %s\n",
diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c
index 6de28385b35..9bcfa04d863 100644
--- a/drivers/s390/net/lcs.c
+++ b/drivers/s390/net/lcs.c
@@ -1412,7 +1412,8 @@ lcs_irq(struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
1412 } 1412 }
1413 /* How far in the ccw chain have we processed? */ 1413 /* How far in the ccw chain have we processed? */
1414 if ((channel->state != LCS_CH_STATE_INIT) && 1414 if ((channel->state != LCS_CH_STATE_INIT) &&
1415 (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC)) { 1415 (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC) &&
1416 (irb->scsw.cmd.cpa != 0)) {
1416 index = (struct ccw1 *) __va((addr_t) irb->scsw.cmd.cpa) 1417 index = (struct ccw1 *) __va((addr_t) irb->scsw.cmd.cpa)
1417 - channel->ccws; 1418 - channel->ccws;
1418 if ((irb->scsw.cmd.actl & SCSW_ACTL_SUSPENDED) || 1419 if ((irb->scsw.cmd.actl & SCSW_ACTL_SUSPENDED) ||
diff --git a/drivers/s390/net/qeth_core.h b/drivers/s390/net/qeth_core.h
index 80971c21ea1..bf8a75c92f2 100644
--- a/drivers/s390/net/qeth_core.h
+++ b/drivers/s390/net/qeth_core.h
@@ -689,6 +689,7 @@ struct qeth_mc_mac {
689 struct list_head list; 689 struct list_head list;
690 __u8 mc_addr[MAX_ADDR_LEN]; 690 __u8 mc_addr[MAX_ADDR_LEN];
691 unsigned char mc_addrlen; 691 unsigned char mc_addrlen;
692 int is_vmac;
692}; 693};
693 694
694struct qeth_card { 695struct qeth_card {
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index bd420d1b9a0..c7ab1b86451 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -3024,7 +3024,7 @@ static inline void __qeth_fill_buffer(struct sk_buff *skb,
3024 struct qdio_buffer *buffer, int is_tso, int *next_element_to_fill, 3024 struct qdio_buffer *buffer, int is_tso, int *next_element_to_fill,
3025 int offset) 3025 int offset)
3026{ 3026{
3027 int length = skb->len; 3027 int length = skb->len - offset;
3028 int length_here; 3028 int length_here;
3029 int element; 3029 int element;
3030 char *data; 3030 char *data;
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c
index b3cee032f57..3ac3cc1e03c 100644
--- a/drivers/s390/net/qeth_l2_main.c
+++ b/drivers/s390/net/qeth_l2_main.c
@@ -177,9 +177,10 @@ static int qeth_l2_send_delgroupmac(struct qeth_card *card, __u8 *mac)
177 qeth_l2_send_delgroupmac_cb); 177 qeth_l2_send_delgroupmac_cb);
178} 178}
179 179
180static void qeth_l2_add_mc(struct qeth_card *card, __u8 *mac) 180static void qeth_l2_add_mc(struct qeth_card *card, __u8 *mac, int vmac)
181{ 181{
182 struct qeth_mc_mac *mc; 182 struct qeth_mc_mac *mc;
183 int rc;
183 184
184 mc = kmalloc(sizeof(struct qeth_mc_mac), GFP_ATOMIC); 185 mc = kmalloc(sizeof(struct qeth_mc_mac), GFP_ATOMIC);
185 186
@@ -188,8 +189,16 @@ static void qeth_l2_add_mc(struct qeth_card *card, __u8 *mac)
188 189
189 memcpy(mc->mc_addr, mac, OSA_ADDR_LEN); 190 memcpy(mc->mc_addr, mac, OSA_ADDR_LEN);
190 mc->mc_addrlen = OSA_ADDR_LEN; 191 mc->mc_addrlen = OSA_ADDR_LEN;
192 mc->is_vmac = vmac;
193
194 if (vmac) {
195 rc = qeth_l2_send_setdelmac(card, mac, IPA_CMD_SETVMAC,
196 NULL);
197 } else {
198 rc = qeth_l2_send_setgroupmac(card, mac);
199 }
191 200
192 if (!qeth_l2_send_setgroupmac(card, mac)) 201 if (!rc)
193 list_add_tail(&mc->list, &card->mc_list); 202 list_add_tail(&mc->list, &card->mc_list);
194 else 203 else
195 kfree(mc); 204 kfree(mc);
@@ -201,7 +210,11 @@ static void qeth_l2_del_all_mc(struct qeth_card *card)
201 210
202 spin_lock_bh(&card->mclock); 211 spin_lock_bh(&card->mclock);
203 list_for_each_entry_safe(mc, tmp, &card->mc_list, list) { 212 list_for_each_entry_safe(mc, tmp, &card->mc_list, list) {
204 qeth_l2_send_delgroupmac(card, mc->mc_addr); 213 if (mc->is_vmac)
214 qeth_l2_send_setdelmac(card, mc->mc_addr,
215 IPA_CMD_DELVMAC, NULL);
216 else
217 qeth_l2_send_delgroupmac(card, mc->mc_addr);
205 list_del(&mc->list); 218 list_del(&mc->list);
206 kfree(mc); 219 kfree(mc);
207 } 220 }
@@ -590,7 +603,7 @@ static int qeth_l2_set_mac_address(struct net_device *dev, void *p)
590static void qeth_l2_set_multicast_list(struct net_device *dev) 603static void qeth_l2_set_multicast_list(struct net_device *dev)
591{ 604{
592 struct qeth_card *card = dev->ml_priv; 605 struct qeth_card *card = dev->ml_priv;
593 struct dev_mc_list *dm; 606 struct dev_addr_list *dm;
594 607
595 if (card->info.type == QETH_CARD_TYPE_OSN) 608 if (card->info.type == QETH_CARD_TYPE_OSN)
596 return ; 609 return ;
@@ -599,7 +612,11 @@ static void qeth_l2_set_multicast_list(struct net_device *dev)
599 qeth_l2_del_all_mc(card); 612 qeth_l2_del_all_mc(card);
600 spin_lock_bh(&card->mclock); 613 spin_lock_bh(&card->mclock);
601 for (dm = dev->mc_list; dm; dm = dm->next) 614 for (dm = dev->mc_list; dm; dm = dm->next)
602 qeth_l2_add_mc(card, dm->dmi_addr); 615 qeth_l2_add_mc(card, dm->da_addr, 0);
616
617 for (dm = dev->uc_list; dm; dm = dm->next)
618 qeth_l2_add_mc(card, dm->da_addr, 1);
619
603 spin_unlock_bh(&card->mclock); 620 spin_unlock_bh(&card->mclock);
604 if (!qeth_adp_supported(card, IPA_SETADP_SET_PROMISC_MODE)) 621 if (!qeth_adp_supported(card, IPA_SETADP_SET_PROMISC_MODE))
605 return; 622 return;
diff --git a/drivers/s390/net/qeth_l3_sys.c b/drivers/s390/net/qeth_l3_sys.c
index ac1993708ae..210ddb63974 100644
--- a/drivers/s390/net/qeth_l3_sys.c
+++ b/drivers/s390/net/qeth_l3_sys.c
@@ -136,7 +136,7 @@ static ssize_t qeth_l3_dev_route6_store(struct device *dev,
136 return -EINVAL; 136 return -EINVAL;
137 137
138 if (!qeth_is_supported(card, IPA_IPV6)) { 138 if (!qeth_is_supported(card, IPA_IPV6)) {
139 return -ENOTSUPP; 139 return -EOPNOTSUPP;
140 } 140 }
141 141
142 return qeth_l3_dev_route_store(card, &card->options.route6, 142 return qeth_l3_dev_route_store(card, &card->options.route6,
diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c
index 391dd29749f..51b6a05f4d1 100644
--- a/drivers/s390/scsi/zfcp_ccw.c
+++ b/drivers/s390/scsi/zfcp_ccw.c
@@ -152,10 +152,8 @@ static int zfcp_ccw_set_offline(struct ccw_device *ccw_device)
152 */ 152 */
153static int zfcp_ccw_notify(struct ccw_device *ccw_device, int event) 153static int zfcp_ccw_notify(struct ccw_device *ccw_device, int event)
154{ 154{
155 struct zfcp_adapter *adapter; 155 struct zfcp_adapter *adapter = dev_get_drvdata(&ccw_device->dev);
156 156
157 down(&zfcp_data.config_sema);
158 adapter = dev_get_drvdata(&ccw_device->dev);
159 switch (event) { 157 switch (event) {
160 case CIO_GONE: 158 case CIO_GONE:
161 dev_warn(&adapter->ccw_device->dev, "device gone\n"); 159 dev_warn(&adapter->ccw_device->dev, "device gone\n");
@@ -174,8 +172,6 @@ static int zfcp_ccw_notify(struct ccw_device *ccw_device, int event)
174 89, NULL); 172 89, NULL);
175 break; 173 break;
176 } 174 }
177 zfcp_erp_wait(adapter);
178 up(&zfcp_data.config_sema);
179 return 1; 175 return 1;
180} 176}
181 177
diff --git a/drivers/s390/scsi/zfcp_fc.c b/drivers/s390/scsi/zfcp_fc.c
index e984469bb98..56196c98c07 100644
--- a/drivers/s390/scsi/zfcp_fc.c
+++ b/drivers/s390/scsi/zfcp_fc.c
@@ -39,18 +39,6 @@ struct zfcp_gpn_ft {
39 struct scatterlist sg_resp[ZFCP_GPN_FT_BUFFERS]; 39 struct scatterlist sg_resp[ZFCP_GPN_FT_BUFFERS];
40}; 40};
41 41
42static struct zfcp_port *zfcp_get_port_by_did(struct zfcp_adapter *adapter,
43 u32 d_id)
44{
45 struct zfcp_port *port;
46
47 list_for_each_entry(port, &adapter->port_list_head, list)
48 if ((port->d_id == d_id) &&
49 !atomic_test_mask(ZFCP_STATUS_COMMON_REMOVE, &port->status))
50 return port;
51 return NULL;
52}
53
54static void _zfcp_fc_incoming_rscn(struct zfcp_fsf_req *fsf_req, u32 range, 42static void _zfcp_fc_incoming_rscn(struct zfcp_fsf_req *fsf_req, u32 range,
55 struct fcp_rscn_element *elem) 43 struct fcp_rscn_element *elem)
56{ 44{
@@ -341,12 +329,13 @@ void zfcp_test_link(struct zfcp_port *port)
341 329
342 zfcp_port_get(port); 330 zfcp_port_get(port);
343 retval = zfcp_fc_adisc(port); 331 retval = zfcp_fc_adisc(port);
344 if (retval == 0 || retval == -EBUSY) 332 if (retval == 0)
345 return; 333 return;
346 334
347 /* send of ADISC was not possible */ 335 /* send of ADISC was not possible */
348 zfcp_port_put(port); 336 zfcp_port_put(port);
349 zfcp_erp_port_forced_reopen(port, 0, 65, NULL); 337 if (retval != -EBUSY)
338 zfcp_erp_port_forced_reopen(port, 0, 65, NULL);
350} 339}
351 340
352static int zfcp_scan_get_nameserver(struct zfcp_adapter *adapter) 341static int zfcp_scan_get_nameserver(struct zfcp_adapter *adapter)
@@ -363,7 +352,6 @@ static int zfcp_scan_get_nameserver(struct zfcp_adapter *adapter)
363 if (ret) 352 if (ret)
364 return ret; 353 return ret;
365 zfcp_erp_wait(adapter); 354 zfcp_erp_wait(adapter);
366 zfcp_port_put(adapter->nameserver_port);
367 } 355 }
368 return !atomic_test_mask(ZFCP_STATUS_COMMON_UNBLOCKED, 356 return !atomic_test_mask(ZFCP_STATUS_COMMON_UNBLOCKED,
369 &adapter->nameserver_port->status); 357 &adapter->nameserver_port->status);
@@ -475,7 +463,7 @@ static int zfcp_scan_eval_gpn_ft(struct zfcp_gpn_ft *gpn_ft)
475 struct zfcp_adapter *adapter = ct->port->adapter; 463 struct zfcp_adapter *adapter = ct->port->adapter;
476 struct zfcp_port *port, *tmp; 464 struct zfcp_port *port, *tmp;
477 u32 d_id; 465 u32 d_id;
478 int ret = 0, x; 466 int ret = 0, x, last = 0;
479 467
480 if (ct->status) 468 if (ct->status)
481 return -EIO; 469 return -EIO;
@@ -492,19 +480,24 @@ static int zfcp_scan_eval_gpn_ft(struct zfcp_gpn_ft *gpn_ft)
492 down(&zfcp_data.config_sema); 480 down(&zfcp_data.config_sema);
493 481
494 /* first entry is the header */ 482 /* first entry is the header */
495 for (x = 1; x < ZFCP_GPN_FT_MAX_ENTRIES; x++) { 483 for (x = 1; x < ZFCP_GPN_FT_MAX_ENTRIES && !last; x++) {
496 if (x % (ZFCP_GPN_FT_ENTRIES + 1)) 484 if (x % (ZFCP_GPN_FT_ENTRIES + 1))
497 acc++; 485 acc++;
498 else 486 else
499 acc = sg_virt(++sg); 487 acc = sg_virt(++sg);
500 488
489 last = acc->control & 0x80;
501 d_id = acc->port_id[0] << 16 | acc->port_id[1] << 8 | 490 d_id = acc->port_id[0] << 16 | acc->port_id[1] << 8 |
502 acc->port_id[2]; 491 acc->port_id[2];
503 492
504 /* skip the adapter's port and known remote ports */ 493 /* skip the adapter's port and known remote ports */
505 if (acc->wwpn == fc_host_port_name(adapter->scsi_host) || 494 if (acc->wwpn == fc_host_port_name(adapter->scsi_host))
506 zfcp_get_port_by_did(adapter, d_id)) 495 continue;
496 port = zfcp_get_port_by_wwpn(adapter, acc->wwpn);
497 if (port) {
498 zfcp_port_get(port);
507 continue; 499 continue;
500 }
508 501
509 port = zfcp_port_enqueue(adapter, acc->wwpn, 502 port = zfcp_port_enqueue(adapter, acc->wwpn,
510 ZFCP_STATUS_PORT_DID_DID | 503 ZFCP_STATUS_PORT_DID_DID |
@@ -513,8 +506,6 @@ static int zfcp_scan_eval_gpn_ft(struct zfcp_gpn_ft *gpn_ft)
513 ret = PTR_ERR(port); 506 ret = PTR_ERR(port);
514 else 507 else
515 zfcp_erp_port_reopen(port, 0, 149, NULL); 508 zfcp_erp_port_reopen(port, 0, 149, NULL);
516 if (acc->control & 0x80) /* last entry */
517 break;
518 } 509 }
519 510
520 zfcp_erp_wait(adapter); 511 zfcp_erp_wait(adapter);
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 19c1ca91387..49dbeb754e5 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -710,10 +710,10 @@ static void zfcp_fsf_exchange_port_data_handler(struct zfcp_fsf_req *req)
710 710
711static int zfcp_fsf_sbal_check(struct zfcp_qdio_queue *queue) 711static int zfcp_fsf_sbal_check(struct zfcp_qdio_queue *queue)
712{ 712{
713 spin_lock(&queue->lock); 713 spin_lock_bh(&queue->lock);
714 if (atomic_read(&queue->count)) 714 if (atomic_read(&queue->count))
715 return 1; 715 return 1;
716 spin_unlock(&queue->lock); 716 spin_unlock_bh(&queue->lock);
717 return 0; 717 return 0;
718} 718}
719 719
@@ -722,13 +722,13 @@ static int zfcp_fsf_req_sbal_get(struct zfcp_adapter *adapter)
722 long ret; 722 long ret;
723 struct zfcp_qdio_queue *req_q = &adapter->req_q; 723 struct zfcp_qdio_queue *req_q = &adapter->req_q;
724 724
725 spin_unlock(&req_q->lock); 725 spin_unlock_bh(&req_q->lock);
726 ret = wait_event_interruptible_timeout(adapter->request_wq, 726 ret = wait_event_interruptible_timeout(adapter->request_wq,
727 zfcp_fsf_sbal_check(req_q), 5 * HZ); 727 zfcp_fsf_sbal_check(req_q), 5 * HZ);
728 if (ret > 0) 728 if (ret > 0)
729 return 0; 729 return 0;
730 730
731 spin_lock(&req_q->lock); 731 spin_lock_bh(&req_q->lock);
732 return -EIO; 732 return -EIO;
733} 733}
734 734
@@ -870,14 +870,14 @@ int zfcp_fsf_status_read(struct zfcp_adapter *adapter)
870 volatile struct qdio_buffer_element *sbale; 870 volatile struct qdio_buffer_element *sbale;
871 int retval = -EIO; 871 int retval = -EIO;
872 872
873 spin_lock(&adapter->req_q.lock); 873 spin_lock_bh(&adapter->req_q.lock);
874 if (zfcp_fsf_req_sbal_get(adapter)) 874 if (zfcp_fsf_req_sbal_get(adapter))
875 goto out; 875 goto out;
876 876
877 req = zfcp_fsf_req_create(adapter, FSF_QTCB_UNSOLICITED_STATUS, 877 req = zfcp_fsf_req_create(adapter, FSF_QTCB_UNSOLICITED_STATUS,
878 ZFCP_REQ_NO_QTCB, 878 ZFCP_REQ_NO_QTCB,
879 adapter->pool.fsf_req_status_read); 879 adapter->pool.fsf_req_status_read);
880 if (unlikely(IS_ERR(req))) { 880 if (IS_ERR(req)) {
881 retval = PTR_ERR(req); 881 retval = PTR_ERR(req);
882 goto out; 882 goto out;
883 } 883 }
@@ -910,7 +910,7 @@ failed_buf:
910 zfcp_fsf_req_free(req); 910 zfcp_fsf_req_free(req);
911 zfcp_hba_dbf_event_fsf_unsol("fail", adapter, NULL); 911 zfcp_hba_dbf_event_fsf_unsol("fail", adapter, NULL);
912out: 912out:
913 spin_unlock(&adapter->req_q.lock); 913 spin_unlock_bh(&adapter->req_q.lock);
914 return retval; 914 return retval;
915} 915}
916 916
@@ -988,7 +988,7 @@ struct zfcp_fsf_req *zfcp_fsf_abort_fcp_command(unsigned long old_req_id,
988 goto out; 988 goto out;
989 req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND, 989 req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND,
990 req_flags, adapter->pool.fsf_req_abort); 990 req_flags, adapter->pool.fsf_req_abort);
991 if (unlikely(IS_ERR(req))) 991 if (IS_ERR(req))
992 goto out; 992 goto out;
993 993
994 if (unlikely(!(atomic_read(&unit->status) & 994 if (unlikely(!(atomic_read(&unit->status) &
@@ -1106,13 +1106,13 @@ int zfcp_fsf_send_ct(struct zfcp_send_ct *ct, mempool_t *pool,
1106 struct zfcp_fsf_req *req; 1106 struct zfcp_fsf_req *req;
1107 int ret = -EIO; 1107 int ret = -EIO;
1108 1108
1109 spin_lock(&adapter->req_q.lock); 1109 spin_lock_bh(&adapter->req_q.lock);
1110 if (zfcp_fsf_req_sbal_get(adapter)) 1110 if (zfcp_fsf_req_sbal_get(adapter))
1111 goto out; 1111 goto out;
1112 1112
1113 req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_GENERIC, 1113 req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_GENERIC,
1114 ZFCP_REQ_AUTO_CLEANUP, pool); 1114 ZFCP_REQ_AUTO_CLEANUP, pool);
1115 if (unlikely(IS_ERR(req))) { 1115 if (IS_ERR(req)) {
1116 ret = PTR_ERR(req); 1116 ret = PTR_ERR(req);
1117 goto out; 1117 goto out;
1118 } 1118 }
@@ -1148,7 +1148,7 @@ failed_send:
1148 if (erp_action) 1148 if (erp_action)
1149 erp_action->fsf_req = NULL; 1149 erp_action->fsf_req = NULL;
1150out: 1150out:
1151 spin_unlock(&adapter->req_q.lock); 1151 spin_unlock_bh(&adapter->req_q.lock);
1152 return ret; 1152 return ret;
1153} 1153}
1154 1154
@@ -1223,7 +1223,7 @@ int zfcp_fsf_send_els(struct zfcp_send_els *els)
1223 goto out; 1223 goto out;
1224 req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_ELS, 1224 req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_ELS,
1225 ZFCP_REQ_AUTO_CLEANUP, NULL); 1225 ZFCP_REQ_AUTO_CLEANUP, NULL);
1226 if (unlikely(IS_ERR(req))) { 1226 if (IS_ERR(req)) {
1227 ret = PTR_ERR(req); 1227 ret = PTR_ERR(req);
1228 goto out; 1228 goto out;
1229 } 1229 }
@@ -1263,14 +1263,14 @@ int zfcp_fsf_exchange_config_data(struct zfcp_erp_action *erp_action)
1263 struct zfcp_adapter *adapter = erp_action->adapter; 1263 struct zfcp_adapter *adapter = erp_action->adapter;
1264 int retval = -EIO; 1264 int retval = -EIO;
1265 1265
1266 spin_lock(&adapter->req_q.lock); 1266 spin_lock_bh(&adapter->req_q.lock);
1267 if (!atomic_read(&adapter->req_q.count)) 1267 if (!atomic_read(&adapter->req_q.count))
1268 goto out; 1268 goto out;
1269 req = zfcp_fsf_req_create(adapter, 1269 req = zfcp_fsf_req_create(adapter,
1270 FSF_QTCB_EXCHANGE_CONFIG_DATA, 1270 FSF_QTCB_EXCHANGE_CONFIG_DATA,
1271 ZFCP_REQ_AUTO_CLEANUP, 1271 ZFCP_REQ_AUTO_CLEANUP,
1272 adapter->pool.fsf_req_erp); 1272 adapter->pool.fsf_req_erp);
1273 if (unlikely(IS_ERR(req))) { 1273 if (IS_ERR(req)) {
1274 retval = PTR_ERR(req); 1274 retval = PTR_ERR(req);
1275 goto out; 1275 goto out;
1276 } 1276 }
@@ -1295,7 +1295,7 @@ int zfcp_fsf_exchange_config_data(struct zfcp_erp_action *erp_action)
1295 erp_action->fsf_req = NULL; 1295 erp_action->fsf_req = NULL;
1296 } 1296 }
1297out: 1297out:
1298 spin_unlock(&adapter->req_q.lock); 1298 spin_unlock_bh(&adapter->req_q.lock);
1299 return retval; 1299 return retval;
1300} 1300}
1301 1301
@@ -1306,13 +1306,13 @@ int zfcp_fsf_exchange_config_data_sync(struct zfcp_adapter *adapter,
1306 struct zfcp_fsf_req *req = NULL; 1306 struct zfcp_fsf_req *req = NULL;
1307 int retval = -EIO; 1307 int retval = -EIO;
1308 1308
1309 spin_lock(&adapter->req_q.lock); 1309 spin_lock_bh(&adapter->req_q.lock);
1310 if (zfcp_fsf_req_sbal_get(adapter)) 1310 if (zfcp_fsf_req_sbal_get(adapter))
1311 goto out; 1311 goto out;
1312 1312
1313 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_CONFIG_DATA, 1313 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_CONFIG_DATA,
1314 0, NULL); 1314 0, NULL);
1315 if (unlikely(IS_ERR(req))) { 1315 if (IS_ERR(req)) {
1316 retval = PTR_ERR(req); 1316 retval = PTR_ERR(req);
1317 goto out; 1317 goto out;
1318 } 1318 }
@@ -1334,7 +1334,7 @@ int zfcp_fsf_exchange_config_data_sync(struct zfcp_adapter *adapter,
1334 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT); 1334 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
1335 retval = zfcp_fsf_req_send(req); 1335 retval = zfcp_fsf_req_send(req);
1336out: 1336out:
1337 spin_unlock(&adapter->req_q.lock); 1337 spin_unlock_bh(&adapter->req_q.lock);
1338 if (!retval) 1338 if (!retval)
1339 wait_event(req->completion_wq, 1339 wait_event(req->completion_wq,
1340 req->status & ZFCP_STATUS_FSFREQ_COMPLETED); 1340 req->status & ZFCP_STATUS_FSFREQ_COMPLETED);
@@ -1359,13 +1359,13 @@ int zfcp_fsf_exchange_port_data(struct zfcp_erp_action *erp_action)
1359 if (!(adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT)) 1359 if (!(adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT))
1360 return -EOPNOTSUPP; 1360 return -EOPNOTSUPP;
1361 1361
1362 spin_lock(&adapter->req_q.lock); 1362 spin_lock_bh(&adapter->req_q.lock);
1363 if (!atomic_read(&adapter->req_q.count)) 1363 if (!atomic_read(&adapter->req_q.count))
1364 goto out; 1364 goto out;
1365 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 1365 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA,
1366 ZFCP_REQ_AUTO_CLEANUP, 1366 ZFCP_REQ_AUTO_CLEANUP,
1367 adapter->pool.fsf_req_erp); 1367 adapter->pool.fsf_req_erp);
1368 if (unlikely(IS_ERR(req))) { 1368 if (IS_ERR(req)) {
1369 retval = PTR_ERR(req); 1369 retval = PTR_ERR(req);
1370 goto out; 1370 goto out;
1371 } 1371 }
@@ -1385,7 +1385,7 @@ int zfcp_fsf_exchange_port_data(struct zfcp_erp_action *erp_action)
1385 erp_action->fsf_req = NULL; 1385 erp_action->fsf_req = NULL;
1386 } 1386 }
1387out: 1387out:
1388 spin_unlock(&adapter->req_q.lock); 1388 spin_unlock_bh(&adapter->req_q.lock);
1389 return retval; 1389 return retval;
1390} 1390}
1391 1391
@@ -1405,13 +1405,13 @@ int zfcp_fsf_exchange_port_data_sync(struct zfcp_adapter *adapter,
1405 if (!(adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT)) 1405 if (!(adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT))
1406 return -EOPNOTSUPP; 1406 return -EOPNOTSUPP;
1407 1407
1408 spin_lock(&adapter->req_q.lock); 1408 spin_lock_bh(&adapter->req_q.lock);
1409 if (!atomic_read(&adapter->req_q.count)) 1409 if (!atomic_read(&adapter->req_q.count))
1410 goto out; 1410 goto out;
1411 1411
1412 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 0, 1412 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 0,
1413 NULL); 1413 NULL);
1414 if (unlikely(IS_ERR(req))) { 1414 if (IS_ERR(req)) {
1415 retval = PTR_ERR(req); 1415 retval = PTR_ERR(req);
1416 goto out; 1416 goto out;
1417 } 1417 }
@@ -1427,7 +1427,7 @@ int zfcp_fsf_exchange_port_data_sync(struct zfcp_adapter *adapter,
1427 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT); 1427 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
1428 retval = zfcp_fsf_req_send(req); 1428 retval = zfcp_fsf_req_send(req);
1429out: 1429out:
1430 spin_unlock(&adapter->req_q.lock); 1430 spin_unlock_bh(&adapter->req_q.lock);
1431 if (!retval) 1431 if (!retval)
1432 wait_event(req->completion_wq, 1432 wait_event(req->completion_wq,
1433 req->status & ZFCP_STATUS_FSFREQ_COMPLETED); 1433 req->status & ZFCP_STATUS_FSFREQ_COMPLETED);
@@ -1531,7 +1531,7 @@ int zfcp_fsf_open_port(struct zfcp_erp_action *erp_action)
1531 struct zfcp_fsf_req *req; 1531 struct zfcp_fsf_req *req;
1532 int retval = -EIO; 1532 int retval = -EIO;
1533 1533
1534 spin_lock(&adapter->req_q.lock); 1534 spin_lock_bh(&adapter->req_q.lock);
1535 if (zfcp_fsf_req_sbal_get(adapter)) 1535 if (zfcp_fsf_req_sbal_get(adapter))
1536 goto out; 1536 goto out;
1537 1537
@@ -1539,7 +1539,7 @@ int zfcp_fsf_open_port(struct zfcp_erp_action *erp_action)
1539 FSF_QTCB_OPEN_PORT_WITH_DID, 1539 FSF_QTCB_OPEN_PORT_WITH_DID,
1540 ZFCP_REQ_AUTO_CLEANUP, 1540 ZFCP_REQ_AUTO_CLEANUP,
1541 adapter->pool.fsf_req_erp); 1541 adapter->pool.fsf_req_erp);
1542 if (unlikely(IS_ERR(req))) { 1542 if (IS_ERR(req)) {
1543 retval = PTR_ERR(req); 1543 retval = PTR_ERR(req);
1544 goto out; 1544 goto out;
1545 } 1545 }
@@ -1562,7 +1562,7 @@ int zfcp_fsf_open_port(struct zfcp_erp_action *erp_action)
1562 erp_action->fsf_req = NULL; 1562 erp_action->fsf_req = NULL;
1563 } 1563 }
1564out: 1564out:
1565 spin_unlock(&adapter->req_q.lock); 1565 spin_unlock_bh(&adapter->req_q.lock);
1566 return retval; 1566 return retval;
1567} 1567}
1568 1568
@@ -1603,14 +1603,14 @@ int zfcp_fsf_close_port(struct zfcp_erp_action *erp_action)
1603 struct zfcp_fsf_req *req; 1603 struct zfcp_fsf_req *req;
1604 int retval = -EIO; 1604 int retval = -EIO;
1605 1605
1606 spin_lock(&adapter->req_q.lock); 1606 spin_lock_bh(&adapter->req_q.lock);
1607 if (zfcp_fsf_req_sbal_get(adapter)) 1607 if (zfcp_fsf_req_sbal_get(adapter))
1608 goto out; 1608 goto out;
1609 1609
1610 req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PORT, 1610 req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PORT,
1611 ZFCP_REQ_AUTO_CLEANUP, 1611 ZFCP_REQ_AUTO_CLEANUP,
1612 adapter->pool.fsf_req_erp); 1612 adapter->pool.fsf_req_erp);
1613 if (unlikely(IS_ERR(req))) { 1613 if (IS_ERR(req)) {
1614 retval = PTR_ERR(req); 1614 retval = PTR_ERR(req);
1615 goto out; 1615 goto out;
1616 } 1616 }
@@ -1633,7 +1633,7 @@ int zfcp_fsf_close_port(struct zfcp_erp_action *erp_action)
1633 erp_action->fsf_req = NULL; 1633 erp_action->fsf_req = NULL;
1634 } 1634 }
1635out: 1635out:
1636 spin_unlock(&adapter->req_q.lock); 1636 spin_unlock_bh(&adapter->req_q.lock);
1637 return retval; 1637 return retval;
1638} 1638}
1639 1639
@@ -1700,14 +1700,14 @@ int zfcp_fsf_close_physical_port(struct zfcp_erp_action *erp_action)
1700 struct zfcp_fsf_req *req; 1700 struct zfcp_fsf_req *req;
1701 int retval = -EIO; 1701 int retval = -EIO;
1702 1702
1703 spin_lock(&adapter->req_q.lock); 1703 spin_lock_bh(&adapter->req_q.lock);
1704 if (zfcp_fsf_req_sbal_get(adapter)) 1704 if (zfcp_fsf_req_sbal_get(adapter))
1705 goto out; 1705 goto out;
1706 1706
1707 req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PHYSICAL_PORT, 1707 req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PHYSICAL_PORT,
1708 ZFCP_REQ_AUTO_CLEANUP, 1708 ZFCP_REQ_AUTO_CLEANUP,
1709 adapter->pool.fsf_req_erp); 1709 adapter->pool.fsf_req_erp);
1710 if (unlikely(IS_ERR(req))) { 1710 if (IS_ERR(req)) {
1711 retval = PTR_ERR(req); 1711 retval = PTR_ERR(req);
1712 goto out; 1712 goto out;
1713 } 1713 }
@@ -1731,7 +1731,7 @@ int zfcp_fsf_close_physical_port(struct zfcp_erp_action *erp_action)
1731 erp_action->fsf_req = NULL; 1731 erp_action->fsf_req = NULL;
1732 } 1732 }
1733out: 1733out:
1734 spin_unlock(&adapter->req_q.lock); 1734 spin_unlock_bh(&adapter->req_q.lock);
1735 return retval; 1735 return retval;
1736} 1736}
1737 1737
@@ -1875,14 +1875,14 @@ int zfcp_fsf_open_unit(struct zfcp_erp_action *erp_action)
1875 struct zfcp_fsf_req *req; 1875 struct zfcp_fsf_req *req;
1876 int retval = -EIO; 1876 int retval = -EIO;
1877 1877
1878 spin_lock(&adapter->req_q.lock); 1878 spin_lock_bh(&adapter->req_q.lock);
1879 if (zfcp_fsf_req_sbal_get(adapter)) 1879 if (zfcp_fsf_req_sbal_get(adapter))
1880 goto out; 1880 goto out;
1881 1881
1882 req = zfcp_fsf_req_create(adapter, FSF_QTCB_OPEN_LUN, 1882 req = zfcp_fsf_req_create(adapter, FSF_QTCB_OPEN_LUN,
1883 ZFCP_REQ_AUTO_CLEANUP, 1883 ZFCP_REQ_AUTO_CLEANUP,
1884 adapter->pool.fsf_req_erp); 1884 adapter->pool.fsf_req_erp);
1885 if (unlikely(IS_ERR(req))) { 1885 if (IS_ERR(req)) {
1886 retval = PTR_ERR(req); 1886 retval = PTR_ERR(req);
1887 goto out; 1887 goto out;
1888 } 1888 }
@@ -1910,7 +1910,7 @@ int zfcp_fsf_open_unit(struct zfcp_erp_action *erp_action)
1910 erp_action->fsf_req = NULL; 1910 erp_action->fsf_req = NULL;
1911 } 1911 }
1912out: 1912out:
1913 spin_unlock(&adapter->req_q.lock); 1913 spin_unlock_bh(&adapter->req_q.lock);
1914 return retval; 1914 return retval;
1915} 1915}
1916 1916
@@ -1965,13 +1965,13 @@ int zfcp_fsf_close_unit(struct zfcp_erp_action *erp_action)
1965 struct zfcp_fsf_req *req; 1965 struct zfcp_fsf_req *req;
1966 int retval = -EIO; 1966 int retval = -EIO;
1967 1967
1968 spin_lock(&adapter->req_q.lock); 1968 spin_lock_bh(&adapter->req_q.lock);
1969 if (zfcp_fsf_req_sbal_get(adapter)) 1969 if (zfcp_fsf_req_sbal_get(adapter))
1970 goto out; 1970 goto out;
1971 req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_LUN, 1971 req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_LUN,
1972 ZFCP_REQ_AUTO_CLEANUP, 1972 ZFCP_REQ_AUTO_CLEANUP,
1973 adapter->pool.fsf_req_erp); 1973 adapter->pool.fsf_req_erp);
1974 if (unlikely(IS_ERR(req))) { 1974 if (IS_ERR(req)) {
1975 retval = PTR_ERR(req); 1975 retval = PTR_ERR(req);
1976 goto out; 1976 goto out;
1977 } 1977 }
@@ -1995,7 +1995,7 @@ int zfcp_fsf_close_unit(struct zfcp_erp_action *erp_action)
1995 erp_action->fsf_req = NULL; 1995 erp_action->fsf_req = NULL;
1996 } 1996 }
1997out: 1997out:
1998 spin_unlock(&adapter->req_q.lock); 1998 spin_unlock_bh(&adapter->req_q.lock);
1999 return retval; 1999 return retval;
2000} 2000}
2001 2001
@@ -2228,7 +2228,7 @@ int zfcp_fsf_send_fcp_command_task(struct zfcp_adapter *adapter,
2228 goto out; 2228 goto out;
2229 req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags, 2229 req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags,
2230 adapter->pool.fsf_req_scsi); 2230 adapter->pool.fsf_req_scsi);
2231 if (unlikely(IS_ERR(req))) { 2231 if (IS_ERR(req)) {
2232 retval = PTR_ERR(req); 2232 retval = PTR_ERR(req);
2233 goto out; 2233 goto out;
2234 } 2234 }
@@ -2351,7 +2351,7 @@ struct zfcp_fsf_req *zfcp_fsf_send_fcp_ctm(struct zfcp_adapter *adapter,
2351 goto out; 2351 goto out;
2352 req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags, 2352 req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags,
2353 adapter->pool.fsf_req_scsi); 2353 adapter->pool.fsf_req_scsi);
2354 if (unlikely(IS_ERR(req))) 2354 if (IS_ERR(req))
2355 goto out; 2355 goto out;
2356 2356
2357 req->status |= ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT; 2357 req->status |= ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT;
@@ -2417,12 +2417,12 @@ struct zfcp_fsf_req *zfcp_fsf_control_file(struct zfcp_adapter *adapter,
2417 return ERR_PTR(-EINVAL); 2417 return ERR_PTR(-EINVAL);
2418 } 2418 }
2419 2419
2420 spin_lock(&adapter->req_q.lock); 2420 spin_lock_bh(&adapter->req_q.lock);
2421 if (zfcp_fsf_req_sbal_get(adapter)) 2421 if (zfcp_fsf_req_sbal_get(adapter))
2422 goto out; 2422 goto out;
2423 2423
2424 req = zfcp_fsf_req_create(adapter, fsf_cfdc->command, 0, NULL); 2424 req = zfcp_fsf_req_create(adapter, fsf_cfdc->command, 0, NULL);
2425 if (unlikely(IS_ERR(req))) { 2425 if (IS_ERR(req)) {
2426 retval = -EPERM; 2426 retval = -EPERM;
2427 goto out; 2427 goto out;
2428 } 2428 }
@@ -2447,7 +2447,7 @@ struct zfcp_fsf_req *zfcp_fsf_control_file(struct zfcp_adapter *adapter,
2447 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT); 2447 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
2448 retval = zfcp_fsf_req_send(req); 2448 retval = zfcp_fsf_req_send(req);
2449out: 2449out:
2450 spin_unlock(&adapter->req_q.lock); 2450 spin_unlock_bh(&adapter->req_q.lock);
2451 2451
2452 if (!retval) { 2452 if (!retval) {
2453 wait_event(req->completion_wq, 2453 wait_event(req->completion_wq,
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c
index d6dbd653fde..69d632d851d 100644
--- a/drivers/s390/scsi/zfcp_qdio.c
+++ b/drivers/s390/scsi/zfcp_qdio.c
@@ -423,9 +423,9 @@ void zfcp_qdio_close(struct zfcp_adapter *adapter)
423 423
424 /* clear QDIOUP flag, thus do_QDIO is not called during qdio_shutdown */ 424 /* clear QDIOUP flag, thus do_QDIO is not called during qdio_shutdown */
425 req_q = &adapter->req_q; 425 req_q = &adapter->req_q;
426 spin_lock(&req_q->lock); 426 spin_lock_bh(&req_q->lock);
427 atomic_clear_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &adapter->status); 427 atomic_clear_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &adapter->status);
428 spin_unlock(&req_q->lock); 428 spin_unlock_bh(&req_q->lock);
429 429
430 qdio_shutdown(adapter->ccw_device, QDIO_FLAG_CLEANUP_USING_CLEAR); 430 qdio_shutdown(adapter->ccw_device, QDIO_FLAG_CLEANUP_USING_CLEAR);
431 431
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index c7f06298bd3..4e0322b1c1e 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -63,7 +63,7 @@ comment "SCSI support type (disk, tape, CD-ROM)"
63config BLK_DEV_SD 63config BLK_DEV_SD
64 tristate "SCSI disk support" 64 tristate "SCSI disk support"
65 depends on SCSI 65 depends on SCSI
66 select CRC_T10DIF 66 select CRC_T10DIF if BLK_DEV_INTEGRITY
67 ---help--- 67 ---help---
68 If you want to use SCSI hard disks, Fibre Channel disks, 68 If you want to use SCSI hard disks, Fibre Channel disks,
69 Serial ATA (SATA) or Parallel ATA (PATA) hard disks, 69 Serial ATA (SATA) or Parallel ATA (PATA) hard disks,
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index 994da56fffe..708e475896b 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -425,7 +425,7 @@ static int alua_check_sense(struct scsi_device *sdev,
425 /* 425 /*
426 * LUN Not Accessible - ALUA state transition 426 * LUN Not Accessible - ALUA state transition
427 */ 427 */
428 return NEEDS_RETRY; 428 return ADD_TO_MLQUEUE;
429 if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x0b) 429 if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x0b)
430 /* 430 /*
431 * LUN Not Accessible -- Target port in standby state 431 * LUN Not Accessible -- Target port in standby state
@@ -447,18 +447,18 @@ static int alua_check_sense(struct scsi_device *sdev,
447 /* 447 /*
448 * Power On, Reset, or Bus Device Reset, just retry. 448 * Power On, Reset, or Bus Device Reset, just retry.
449 */ 449 */
450 return NEEDS_RETRY; 450 return ADD_TO_MLQUEUE;
451 if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x06) { 451 if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x06) {
452 /* 452 /*
453 * ALUA state changed 453 * ALUA state changed
454 */ 454 */
455 return NEEDS_RETRY; 455 return ADD_TO_MLQUEUE;
456 } 456 }
457 if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x07) { 457 if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x07) {
458 /* 458 /*
459 * Implicit ALUA state transition failed 459 * Implicit ALUA state transition failed
460 */ 460 */
461 return NEEDS_RETRY; 461 return ADD_TO_MLQUEUE;
462 } 462 }
463 break; 463 break;
464 } 464 }
@@ -490,7 +490,7 @@ static int alua_stpg(struct scsi_device *sdev, int state,
490 if (!err) 490 if (!err)
491 return SCSI_DH_IO; 491 return SCSI_DH_IO;
492 err = alua_check_sense(sdev, &sense_hdr); 492 err = alua_check_sense(sdev, &sense_hdr);
493 if (retry > 0 && err == NEEDS_RETRY) { 493 if (retry > 0 && err == ADD_TO_MLQUEUE) {
494 retry--; 494 retry--;
495 goto retry; 495 goto retry;
496 } 496 }
@@ -535,7 +535,7 @@ static int alua_rtpg(struct scsi_device *sdev, struct alua_dh_data *h)
535 return SCSI_DH_IO; 535 return SCSI_DH_IO;
536 536
537 err = alua_check_sense(sdev, &sense_hdr); 537 err = alua_check_sense(sdev, &sense_hdr);
538 if (err == NEEDS_RETRY) 538 if (err == ADD_TO_MLQUEUE)
539 goto retry; 539 goto retry;
540 sdev_printk(KERN_INFO, sdev, 540 sdev_printk(KERN_INFO, sdev,
541 "%s: rtpg sense code %02x/%02x/%02x\n", 541 "%s: rtpg sense code %02x/%02x/%02x\n",
diff --git a/drivers/scsi/device_handler/scsi_dh_emc.c b/drivers/scsi/device_handler/scsi_dh_emc.c
index b9d23e9e9a4..ef693e8412e 100644
--- a/drivers/scsi/device_handler/scsi_dh_emc.c
+++ b/drivers/scsi/device_handler/scsi_dh_emc.c
@@ -439,7 +439,7 @@ static int clariion_check_sense(struct scsi_device *sdev,
439 * Unit Attention Code. This is the first IO 439 * Unit Attention Code. This is the first IO
440 * to the new path, so just retry. 440 * to the new path, so just retry.
441 */ 441 */
442 return NEEDS_RETRY; 442 return ADD_TO_MLQUEUE;
443 break; 443 break;
444 } 444 }
445 445
@@ -514,7 +514,7 @@ retry:
514 return SCSI_DH_IO; 514 return SCSI_DH_IO;
515 515
516 err = clariion_check_sense(sdev, &sshdr); 516 err = clariion_check_sense(sdev, &sshdr);
517 if (retry > 0 && err == NEEDS_RETRY) { 517 if (retry > 0 && err == ADD_TO_MLQUEUE) {
518 retry--; 518 retry--;
519 goto retry; 519 goto retry;
520 } 520 }
diff --git a/drivers/scsi/device_handler/scsi_dh_rdac.c b/drivers/scsi/device_handler/scsi_dh_rdac.c
index 2dee69da35c..6e2f130d56d 100644
--- a/drivers/scsi/device_handler/scsi_dh_rdac.c
+++ b/drivers/scsi/device_handler/scsi_dh_rdac.c
@@ -551,7 +551,7 @@ static int rdac_check_sense(struct scsi_device *sdev,
551 * 551 *
552 * Just retry and wait. 552 * Just retry and wait.
553 */ 553 */
554 return NEEDS_RETRY; 554 return ADD_TO_MLQUEUE;
555 break; 555 break;
556 case ILLEGAL_REQUEST: 556 case ILLEGAL_REQUEST:
557 if (sense_hdr->asc == 0x94 && sense_hdr->ascq == 0x01) { 557 if (sense_hdr->asc == 0x94 && sense_hdr->ascq == 0x01) {
@@ -568,7 +568,7 @@ static int rdac_check_sense(struct scsi_device *sdev,
568 /* 568 /*
569 * Power On, Reset, or Bus Device Reset, just retry. 569 * Power On, Reset, or Bus Device Reset, just retry.
570 */ 570 */
571 return NEEDS_RETRY; 571 return ADD_TO_MLQUEUE;
572 break; 572 break;
573 } 573 }
574 /* success just means we do not care what scsi-ml does */ 574 /* success just means we do not care what scsi-ml does */
diff --git a/drivers/scsi/dpt/dpti_i2o.h b/drivers/scsi/dpt/dpti_i2o.h
index 19406cea6d6..179ad77f6cc 100644
--- a/drivers/scsi/dpt/dpti_i2o.h
+++ b/drivers/scsi/dpt/dpti_i2o.h
@@ -21,7 +21,6 @@
21 21
22#include <linux/i2o-dev.h> 22#include <linux/i2o-dev.h>
23 23
24#include <linux/version.h>
25#include <linux/notifier.h> 24#include <linux/notifier.h>
26#include <asm/atomic.h> 25#include <asm/atomic.h>
27 26
diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c
index 7c615c70ec5..bc9e6ddf41d 100644
--- a/drivers/scsi/ips.c
+++ b/drivers/scsi/ips.c
@@ -165,7 +165,6 @@
165#include <asm/byteorder.h> 165#include <asm/byteorder.h>
166#include <asm/page.h> 166#include <asm/page.h>
167#include <linux/stddef.h> 167#include <linux/stddef.h>
168#include <linux/version.h>
169#include <linux/string.h> 168#include <linux/string.h>
170#include <linux/errno.h> 169#include <linux/errno.h>
171#include <linux/kernel.h> 170#include <linux/kernel.h>
diff --git a/drivers/scsi/ips.h b/drivers/scsi/ips.h
index e0657b6f009..4e49fbcfe8a 100644
--- a/drivers/scsi/ips.h
+++ b/drivers/scsi/ips.h
@@ -50,7 +50,6 @@
50#ifndef _IPS_H_ 50#ifndef _IPS_H_
51 #define _IPS_H_ 51 #define _IPS_H_
52 52
53#include <linux/version.h>
54#include <linux/nmi.h> 53#include <linux/nmi.h>
55 #include <asm/uaccess.h> 54 #include <asm/uaccess.h>
56 #include <asm/io.h> 55 #include <asm/io.h>
diff --git a/drivers/scsi/lpfc/lpfc_debugfs.c b/drivers/scsi/lpfc/lpfc_debugfs.c
index 90272e65957..094b47e94b2 100644
--- a/drivers/scsi/lpfc/lpfc_debugfs.c
+++ b/drivers/scsi/lpfc/lpfc_debugfs.c
@@ -27,7 +27,6 @@
27#include <linux/pci.h> 27#include <linux/pci.h>
28#include <linux/spinlock.h> 28#include <linux/spinlock.h>
29#include <linux/ctype.h> 29#include <linux/ctype.h>
30#include <linux/version.h>
31 30
32#include <scsi/scsi.h> 31#include <scsi/scsi.h>
33#include <scsi/scsi_device.h> 32#include <scsi/scsi_device.h>
diff --git a/drivers/scsi/nsp32.c b/drivers/scsi/nsp32.c
index edf9fdb3cb3..22052bb7bec 100644
--- a/drivers/scsi/nsp32.c
+++ b/drivers/scsi/nsp32.c
@@ -23,7 +23,6 @@
23 * 1.2: PowerPC (big endian) support. 23 * 1.2: PowerPC (big endian) support.
24 */ 24 */
25 25
26#include <linux/version.h>
27#include <linux/module.h> 26#include <linux/module.h>
28#include <linux/init.h> 27#include <linux/init.h>
29#include <linux/kernel.h> 28#include <linux/kernel.h>
diff --git a/drivers/scsi/nsp32.h b/drivers/scsi/nsp32.h
index 6715ecb3bfc..9565acf1aa7 100644
--- a/drivers/scsi/nsp32.h
+++ b/drivers/scsi/nsp32.h
@@ -16,7 +16,6 @@
16#ifndef _NSP32_H 16#ifndef _NSP32_H
17#define _NSP32_H 17#define _NSP32_H
18 18
19#include <linux/version.h>
20//#define NSP32_DEBUG 9 19//#define NSP32_DEBUG 9
21 20
22/* 21/*
diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c
index a221b6ef9fa..24e6cb8396e 100644
--- a/drivers/scsi/pcmcia/nsp_cs.c
+++ b/drivers/scsi/pcmcia/nsp_cs.c
@@ -25,7 +25,6 @@
25 25
26***********************************************************************/ 26***********************************************************************/
27 27
28#include <linux/version.h>
29#include <linux/module.h> 28#include <linux/module.h>
30#include <linux/kernel.h> 29#include <linux/kernel.h>
31#include <linux/init.h> 30#include <linux/init.h>
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index 45a3b93eed5..bf41887cdd6 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -1834,7 +1834,6 @@ clear_risc_ints:
1834 WRT_REG_WORD(&reg->isp.hccr, HCCR_CLR_HOST_INT); 1834 WRT_REG_WORD(&reg->isp.hccr, HCCR_CLR_HOST_INT);
1835 } 1835 }
1836 spin_unlock_irq(&ha->hardware_lock); 1836 spin_unlock_irq(&ha->hardware_lock);
1837 ha->isp_ops->enable_intrs(ha);
1838 1837
1839fail: 1838fail:
1840 return ret; 1839 return ret;
diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c
index 50baf6a1d67..93560cd7278 100644
--- a/drivers/scsi/qla2xxx/qla_mid.c
+++ b/drivers/scsi/qla2xxx/qla_mid.c
@@ -6,7 +6,6 @@
6 */ 6 */
7#include "qla_def.h" 7#include "qla_def.h"
8 8
9#include <linux/version.h>
10#include <linux/moduleparam.h> 9#include <linux/moduleparam.h>
11#include <linux/vmalloc.h> 10#include <linux/vmalloc.h>
12#include <linux/smp_lock.h> 11#include <linux/smp_lock.h>
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 26afe44265c..6d0f0e5f282 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -1740,6 +1740,8 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
1740 if (ret) 1740 if (ret)
1741 goto probe_failed; 1741 goto probe_failed;
1742 1742
1743 ha->isp_ops->enable_intrs(ha);
1744
1743 scsi_scan_host(host); 1745 scsi_scan_host(host);
1744 1746
1745 qla2x00_alloc_sysfs_attr(ha); 1747 qla2x00_alloc_sysfs_attr(ha);
diff --git a/drivers/scsi/qlogicpti.c b/drivers/scsi/qlogicpti.c
index 4a1cf6377f6..90535089672 100644
--- a/drivers/scsi/qlogicpti.c
+++ b/drivers/scsi/qlogicpti.c
@@ -914,6 +914,7 @@ static inline int load_cmd(struct scsi_cmnd *Cmnd, struct Command_Entry *cmd,
914 ds[i].d_count = sg_dma_len(s); 914 ds[i].d_count = sg_dma_len(s);
915 } 915 }
916 sg_count -= n; 916 sg_count -= n;
917 sg = s;
917 } 918 }
918 } else { 919 } else {
919 cmd->dataseg[0].d_base = 0; 920 cmd->dataseg[0].d_base = 0;
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index 880051c89bd..39ce3aba1da 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -391,7 +391,7 @@ static int scsi_check_sense(struct scsi_cmnd *scmd)
391 391
392 case HARDWARE_ERROR: 392 case HARDWARE_ERROR:
393 if (scmd->device->retry_hwerror) 393 if (scmd->device->retry_hwerror)
394 return NEEDS_RETRY; 394 return ADD_TO_MLQUEUE;
395 else 395 else
396 return SUCCESS; 396 return SUCCESS;
397 397
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
index ff5d56b3ee4..62307bd794a 100644
--- a/drivers/scsi/scsi_lib.c
+++ b/drivers/scsi/scsi_lib.c
@@ -852,7 +852,7 @@ static void scsi_end_bidi_request(struct scsi_cmnd *cmd)
852void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) 852void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
853{ 853{
854 int result = cmd->result; 854 int result = cmd->result;
855 int this_count = scsi_bufflen(cmd); 855 int this_count;
856 struct request_queue *q = cmd->device->request_queue; 856 struct request_queue *q = cmd->device->request_queue;
857 struct request *req = cmd->request; 857 struct request *req = cmd->request;
858 int error = 0; 858 int error = 0;
@@ -908,6 +908,7 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
908 */ 908 */
909 if (scsi_end_request(cmd, error, good_bytes, result == 0) == NULL) 909 if (scsi_end_request(cmd, error, good_bytes, result == 0) == NULL)
910 return; 910 return;
911 this_count = blk_rq_bytes(req);
911 912
912 /* good_bytes = 0, or (inclusive) there were leftovers and 913 /* good_bytes = 0, or (inclusive) there were leftovers and
913 * result = 0, so scsi_end_request couldn't retry. 914 * result = 0, so scsi_end_request couldn't retry.
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 84b4879cff1..34d0de6cd51 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -1080,7 +1080,8 @@ static int scsi_probe_and_add_lun(struct scsi_target *starget,
1080 * PDT=1Fh none (no FDD connected to the requested logical unit) 1080 * PDT=1Fh none (no FDD connected to the requested logical unit)
1081 */ 1081 */
1082 if (((result[0] >> 5) == 1 || starget->pdt_1f_for_no_lun) && 1082 if (((result[0] >> 5) == 1 || starget->pdt_1f_for_no_lun) &&
1083 (result[0] & 0x1f) == 0x1f) { 1083 (result[0] & 0x1f) == 0x1f &&
1084 !scsi_is_wlun(lun)) {
1084 SCSI_LOG_SCAN_BUS(3, printk(KERN_INFO 1085 SCSI_LOG_SCAN_BUS(3, printk(KERN_INFO
1085 "scsi scan: peripheral device type" 1086 "scsi scan: peripheral device type"
1086 " of 31, no device added\n")); 1087 " of 31, no device added\n"));
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 3d36270a8b4..661f9f21650 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -217,6 +217,18 @@ static int sg_last_dev(void);
217#define SZ_SG_IOVEC sizeof(sg_iovec_t) 217#define SZ_SG_IOVEC sizeof(sg_iovec_t)
218#define SZ_SG_REQ_INFO sizeof(sg_req_info_t) 218#define SZ_SG_REQ_INFO sizeof(sg_req_info_t)
219 219
220static int sg_allow_access(struct file *filp, unsigned char *cmd)
221{
222 struct sg_fd *sfp = (struct sg_fd *)filp->private_data;
223 struct request_queue *q = sfp->parentdp->device->request_queue;
224
225 if (sfp->parentdp->device->type == TYPE_SCANNER)
226 return 0;
227
228 return blk_verify_command(&q->cmd_filter,
229 cmd, filp->f_mode & FMODE_WRITE);
230}
231
220static int 232static int
221sg_open(struct inode *inode, struct file *filp) 233sg_open(struct inode *inode, struct file *filp)
222{ 234{
@@ -689,7 +701,7 @@ sg_new_write(Sg_fd *sfp, struct file *file, const char __user *buf,
689 sg_remove_request(sfp, srp); 701 sg_remove_request(sfp, srp);
690 return -EFAULT; 702 return -EFAULT;
691 } 703 }
692 if (read_only && !blk_verify_command(file, cmnd)) { 704 if (read_only && sg_allow_access(file, cmnd)) {
693 sg_remove_request(sfp, srp); 705 sg_remove_request(sfp, srp);
694 return -EPERM; 706 return -EPERM;
695 } 707 }
@@ -793,6 +805,7 @@ sg_ioctl(struct inode *inode, struct file *filp,
793 805
794 if ((!(sfp = (Sg_fd *) filp->private_data)) || (!(sdp = sfp->parentdp))) 806 if ((!(sfp = (Sg_fd *) filp->private_data)) || (!(sdp = sfp->parentdp)))
795 return -ENXIO; 807 return -ENXIO;
808
796 SCSI_LOG_TIMEOUT(3, printk("sg_ioctl: %s, cmd=0x%x\n", 809 SCSI_LOG_TIMEOUT(3, printk("sg_ioctl: %s, cmd=0x%x\n",
797 sdp->disk->disk_name, (int) cmd_in)); 810 sdp->disk->disk_name, (int) cmd_in));
798 read_only = (O_RDWR != (filp->f_flags & O_ACCMODE)); 811 read_only = (O_RDWR != (filp->f_flags & O_ACCMODE));
@@ -1061,7 +1074,7 @@ sg_ioctl(struct inode *inode, struct file *filp,
1061 1074
1062 if (copy_from_user(&opcode, siocp->data, 1)) 1075 if (copy_from_user(&opcode, siocp->data, 1))
1063 return -EFAULT; 1076 return -EFAULT;
1064 if (!blk_verify_command(filp, &opcode)) 1077 if (sg_allow_access(filp, &opcode))
1065 return -EPERM; 1078 return -EPERM;
1066 } 1079 }
1067 return sg_scsi_ioctl(filp, sdp->device->request_queue, NULL, p); 1080 return sg_scsi_ioctl(filp, sdp->device->request_queue, NULL, p);
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 342e12fb1c2..9ccc563d873 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -1908,15 +1908,23 @@ static int serial8250_startup(struct uart_port *port)
1908 * kick the UART on a regular basis. 1908 * kick the UART on a regular basis.
1909 */ 1909 */
1910 if (!(iir1 & UART_IIR_NO_INT) && (iir & UART_IIR_NO_INT)) { 1910 if (!(iir1 & UART_IIR_NO_INT) && (iir & UART_IIR_NO_INT)) {
1911 up->bugs |= UART_BUG_THRE;
1911 pr_debug("ttyS%d - using backup timer\n", port->line); 1912 pr_debug("ttyS%d - using backup timer\n", port->line);
1912 up->timer.function = serial8250_backup_timeout;
1913 up->timer.data = (unsigned long)up;
1914 mod_timer(&up->timer, jiffies +
1915 poll_timeout(up->port.timeout) + HZ / 5);
1916 } 1913 }
1917 } 1914 }
1918 1915
1919 /* 1916 /*
1917 * The above check will only give an accurate result the first time
1918 * the port is opened so this value needs to be preserved.
1919 */
1920 if (up->bugs & UART_BUG_THRE) {
1921 up->timer.function = serial8250_backup_timeout;
1922 up->timer.data = (unsigned long)up;
1923 mod_timer(&up->timer, jiffies +
1924 poll_timeout(up->port.timeout) + HZ / 5);
1925 }
1926
1927 /*
1920 * If the "interrupt" for this port doesn't correspond with any 1928 * If the "interrupt" for this port doesn't correspond with any
1921 * hardware interrupt, we use a timer-based system. The original 1929 * hardware interrupt, we use a timer-based system. The original
1922 * driver used to do this with IRQ0. 1930 * driver used to do this with IRQ0.
diff --git a/drivers/serial/8250.h b/drivers/serial/8250.h
index 78c00162b04..520260326f3 100644
--- a/drivers/serial/8250.h
+++ b/drivers/serial/8250.h
@@ -47,6 +47,7 @@ struct serial8250_config {
47#define UART_BUG_QUOT (1 << 0) /* UART has buggy quot LSB */ 47#define UART_BUG_QUOT (1 << 0) /* UART has buggy quot LSB */
48#define UART_BUG_TXEN (1 << 1) /* UART has buggy TX IIR status */ 48#define UART_BUG_TXEN (1 << 1) /* UART has buggy TX IIR status */
49#define UART_BUG_NOMSR (1 << 2) /* UART has buggy MSR status bits (Au1x00) */ 49#define UART_BUG_NOMSR (1 << 2) /* UART has buggy MSR status bits (Au1x00) */
50#define UART_BUG_THRE (1 << 3) /* UART has buggy THRE reassertion */
50 51
51#define PROBE_RSA (1 << 0) 52#define PROBE_RSA (1 << 0)
52#define PROBE_ANY (~0) 53#define PROBE_ANY (~0)
diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c
index 3a6da80b081..61fb8b6d19a 100644
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
@@ -131,7 +131,8 @@ struct atmel_uart_char {
131struct atmel_uart_port { 131struct atmel_uart_port {
132 struct uart_port uart; /* uart */ 132 struct uart_port uart; /* uart */
133 struct clk *clk; /* uart clock */ 133 struct clk *clk; /* uart clock */
134 unsigned short suspended; /* is port suspended? */ 134 int may_wakeup; /* cached value of device_may_wakeup for times we need to disable it */
135 u32 backup_imr; /* IMR saved during suspend */
135 int break_active; /* break being received */ 136 int break_active; /* break being received */
136 137
137 short use_dma_rx; /* enable PDC receiver */ 138 short use_dma_rx; /* enable PDC receiver */
@@ -984,8 +985,15 @@ static void atmel_serial_pm(struct uart_port *port, unsigned int state,
984 * This is called on uart_open() or a resume event. 985 * This is called on uart_open() or a resume event.
985 */ 986 */
986 clk_enable(atmel_port->clk); 987 clk_enable(atmel_port->clk);
988
989 /* re-enable interrupts if we disabled some on suspend */
990 UART_PUT_IER(port, atmel_port->backup_imr);
987 break; 991 break;
988 case 3: 992 case 3:
993 /* Back up the interrupt mask and disable all interrupts */
994 atmel_port->backup_imr = UART_GET_IMR(port);
995 UART_PUT_IDR(port, -1);
996
989 /* 997 /*
990 * Disable the peripheral clock for this serial port. 998 * Disable the peripheral clock for this serial port.
991 * This is called on uart_close() or a suspend event. 999 * This is called on uart_close() or a suspend event.
@@ -1475,13 +1483,12 @@ static int atmel_serial_suspend(struct platform_device *pdev,
1475 cpu_relax(); 1483 cpu_relax();
1476 } 1484 }
1477 1485
1478 if (device_may_wakeup(&pdev->dev) 1486 /* we can not wake up if we're running on slow clock */
1479 && !atmel_serial_clk_will_stop()) 1487 atmel_port->may_wakeup = device_may_wakeup(&pdev->dev);
1480 enable_irq_wake(port->irq); 1488 if (atmel_serial_clk_will_stop())
1481 else { 1489 device_set_wakeup_enable(&pdev->dev, 0);
1482 uart_suspend_port(&atmel_uart, port); 1490
1483 atmel_port->suspended = 1; 1491 uart_suspend_port(&atmel_uart, port);
1484 }
1485 1492
1486 return 0; 1493 return 0;
1487} 1494}
@@ -1491,11 +1498,8 @@ static int atmel_serial_resume(struct platform_device *pdev)
1491 struct uart_port *port = platform_get_drvdata(pdev); 1498 struct uart_port *port = platform_get_drvdata(pdev);
1492 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); 1499 struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);
1493 1500
1494 if (atmel_port->suspended) { 1501 uart_resume_port(&atmel_uart, port);
1495 uart_resume_port(&atmel_uart, port); 1502 device_set_wakeup_enable(&pdev->dev, atmel_port->may_wakeup);
1496 atmel_port->suspended = 0;
1497 } else
1498 disable_irq_wake(port->irq);
1499 1503
1500 return 0; 1504 return 0;
1501} 1505}
@@ -1513,6 +1517,8 @@ static int __devinit atmel_serial_probe(struct platform_device *pdev)
1513 BUILD_BUG_ON(!is_power_of_2(ATMEL_SERIAL_RINGSIZE)); 1517 BUILD_BUG_ON(!is_power_of_2(ATMEL_SERIAL_RINGSIZE));
1514 1518
1515 port = &atmel_ports[pdev->id]; 1519 port = &atmel_ports[pdev->id];
1520 port->backup_imr = 0;
1521
1516 atmel_init_port(port, pdev); 1522 atmel_init_port(port, pdev);
1517 1523
1518 if (!atmel_use_dma_rx(&port->uart)) { 1524 if (!atmel_use_dma_rx(&port->uart)) {
diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c
index efcd44344fb..4a0d30bed9f 100644
--- a/drivers/serial/bfin_5xx.c
+++ b/drivers/serial/bfin_5xx.c
@@ -28,7 +28,7 @@
28#endif 28#endif
29 29
30#include <asm/gpio.h> 30#include <asm/gpio.h>
31#include <asm/mach/bfin_serial_5xx.h> 31#include <mach/bfin_serial_5xx.h>
32 32
33#ifdef CONFIG_SERIAL_BFIN_DMA 33#ifdef CONFIG_SERIAL_BFIN_DMA
34#include <linux/dma-mapping.h> 34#include <linux/dma-mapping.h>
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c
index 6a29f9330a7..3f90f1bbbbc 100644
--- a/drivers/serial/imx.c
+++ b/drivers/serial/imx.c
@@ -127,8 +127,13 @@
127#define UCR3_RXDSEN (1<<6) /* Receive status interrupt enable */ 127#define UCR3_RXDSEN (1<<6) /* Receive status interrupt enable */
128#define UCR3_AIRINTEN (1<<5) /* Async IR wake interrupt enable */ 128#define UCR3_AIRINTEN (1<<5) /* Async IR wake interrupt enable */
129#define UCR3_AWAKEN (1<<4) /* Async wake interrupt enable */ 129#define UCR3_AWAKEN (1<<4) /* Async wake interrupt enable */
130#define UCR3_REF25 (1<<3) /* Ref freq 25 MHz */ 130#ifdef CONFIG_ARCH_IMX
131#define UCR3_REF30 (1<<2) /* Ref Freq 30 MHz */ 131#define UCR3_REF25 (1<<3) /* Ref freq 25 MHz, only on mx1 */
132#define UCR3_REF30 (1<<2) /* Ref Freq 30 MHz, only on mx1 */
133#endif
134#if defined CONFIG_ARCH_MX2 || defined CONFIG_ARCH_MX3
135#define UCR3_RXDMUXSEL (1<<2) /* RXD Muxed Input Select, on mx2/mx3 */
136#endif
132#define UCR3_INVT (1<<1) /* Inverted Infrared transmission */ 137#define UCR3_INVT (1<<1) /* Inverted Infrared transmission */
133#define UCR3_BPEN (1<<0) /* Preset registers enable */ 138#define UCR3_BPEN (1<<0) /* Preset registers enable */
134#define UCR4_CTSTL_32 (32<<10) /* CTS trigger level (32 chars) */ 139#define UCR4_CTSTL_32 (32<<10) /* CTS trigger level (32 chars) */
@@ -445,7 +450,7 @@ static irqreturn_t imx_int(int irq, void *dev_id)
445 readl(sport->port.membase + UCR1) & UCR1_TXMPTYEN) 450 readl(sport->port.membase + UCR1) & UCR1_TXMPTYEN)
446 imx_txint(irq, dev_id); 451 imx_txint(irq, dev_id);
447 452
448 if (sts & USR1_RTSS) 453 if (sts & USR1_RTSD)
449 imx_rtsint(irq, dev_id); 454 imx_rtsint(irq, dev_id);
450 455
451 return IRQ_HANDLED; 456 return IRQ_HANDLED;
@@ -598,6 +603,12 @@ static int imx_startup(struct uart_port *port)
598 temp |= (UCR2_RXEN | UCR2_TXEN); 603 temp |= (UCR2_RXEN | UCR2_TXEN);
599 writel(temp, sport->port.membase + UCR2); 604 writel(temp, sport->port.membase + UCR2);
600 605
606#if defined CONFIG_ARCH_MX2 || defined CONFIG_ARCH_MX3
607 temp = readl(sport->port.membase + UCR3);
608 temp |= UCR3_RXDMUXSEL;
609 writel(temp, sport->port.membase + UCR3);
610#endif
611
601 /* 612 /*
602 * Enable modem status interrupts 613 * Enable modem status interrupts
603 */ 614 */
@@ -1133,13 +1144,19 @@ static int serial_imx_probe(struct platform_device *pdev)
1133 if(pdata && (pdata->flags & IMXUART_HAVE_RTSCTS)) 1144 if(pdata && (pdata->flags & IMXUART_HAVE_RTSCTS))
1134 sport->have_rtscts = 1; 1145 sport->have_rtscts = 1;
1135 1146
1136 if (pdata->init) 1147 if (pdata->init) {
1137 pdata->init(pdev); 1148 ret = pdata->init(pdev);
1149 if (ret)
1150 goto clkput;
1151 }
1138 1152
1139 uart_add_one_port(&imx_reg, &sport->port); 1153 uart_add_one_port(&imx_reg, &sport->port);
1140 platform_set_drvdata(pdev, &sport->port); 1154 platform_set_drvdata(pdev, &sport->port);
1141 1155
1142 return 0; 1156 return 0;
1157clkput:
1158 clk_put(sport->clk);
1159 clk_disable(sport->clk);
1143unmap: 1160unmap:
1144 iounmap(sport->port.membase); 1161 iounmap(sport->port.membase);
1145free: 1162free:
diff --git a/drivers/spi/orion_spi.c b/drivers/spi/orion_spi.c
index c4eaacd6e55..b872bfaf4bd 100644
--- a/drivers/spi/orion_spi.c
+++ b/drivers/spi/orion_spi.c
@@ -427,7 +427,7 @@ static int orion_spi_transfer(struct spi_device *spi, struct spi_message *m)
427 goto msg_rejected; 427 goto msg_rejected;
428 } 428 }
429 429
430 if (t->speed_hz < orion_spi->min_speed) { 430 if (t->speed_hz && t->speed_hz < orion_spi->min_speed) {
431 dev_err(&spi->dev, 431 dev_err(&spi->dev,
432 "message rejected : " 432 "message rejected : "
433 "device min speed (%d Hz) exceeds " 433 "device min speed (%d Hz) exceeds "
diff --git a/drivers/spi/pxa2xx_spi.c b/drivers/spi/pxa2xx_spi.c
index 34c7c987568..d47d3636227 100644
--- a/drivers/spi/pxa2xx_spi.c
+++ b/drivers/spi/pxa2xx_spi.c
@@ -47,9 +47,10 @@ MODULE_ALIAS("platform:pxa2xx-spi");
47 47
48#define MAX_BUSES 3 48#define MAX_BUSES 3
49 49
50#define DMA_INT_MASK (DCSR_ENDINTR | DCSR_STARTINTR | DCSR_BUSERR) 50#define DMA_INT_MASK (DCSR_ENDINTR | DCSR_STARTINTR | DCSR_BUSERR)
51#define RESET_DMA_CHANNEL (DCSR_NODESC | DMA_INT_MASK) 51#define RESET_DMA_CHANNEL (DCSR_NODESC | DMA_INT_MASK)
52#define IS_DMA_ALIGNED(x) (((u32)(x)&0x07)==0) 52#define IS_DMA_ALIGNED(x) ((((u32)(x)) & 0x07) == 0)
53#define MAX_DMA_LEN 8191
53 54
54/* 55/*
55 * for testing SSCR1 changes that require SSP restart, basically 56 * for testing SSCR1 changes that require SSP restart, basically
@@ -144,7 +145,6 @@ struct driver_data {
144 size_t tx_map_len; 145 size_t tx_map_len;
145 u8 n_bytes; 146 u8 n_bytes;
146 u32 dma_width; 147 u32 dma_width;
147 int cs_change;
148 int (*write)(struct driver_data *drv_data); 148 int (*write)(struct driver_data *drv_data);
149 int (*read)(struct driver_data *drv_data); 149 int (*read)(struct driver_data *drv_data);
150 irqreturn_t (*transfer_handler)(struct driver_data *drv_data); 150 irqreturn_t (*transfer_handler)(struct driver_data *drv_data);
@@ -406,8 +406,45 @@ static void giveback(struct driver_data *drv_data)
406 struct spi_transfer, 406 struct spi_transfer,
407 transfer_list); 407 transfer_list);
408 408
409 /* Delay if requested before any change in chip select */
410 if (last_transfer->delay_usecs)
411 udelay(last_transfer->delay_usecs);
412
413 /* Drop chip select UNLESS cs_change is true or we are returning
414 * a message with an error, or next message is for another chip
415 */
409 if (!last_transfer->cs_change) 416 if (!last_transfer->cs_change)
410 drv_data->cs_control(PXA2XX_CS_DEASSERT); 417 drv_data->cs_control(PXA2XX_CS_DEASSERT);
418 else {
419 struct spi_message *next_msg;
420
421 /* Holding of cs was hinted, but we need to make sure
422 * the next message is for the same chip. Don't waste
423 * time with the following tests unless this was hinted.
424 *
425 * We cannot postpone this until pump_messages, because
426 * after calling msg->complete (below) the driver that
427 * sent the current message could be unloaded, which
428 * could invalidate the cs_control() callback...
429 */
430
431 /* get a pointer to the next message, if any */
432 spin_lock_irqsave(&drv_data->lock, flags);
433 if (list_empty(&drv_data->queue))
434 next_msg = NULL;
435 else
436 next_msg = list_entry(drv_data->queue.next,
437 struct spi_message, queue);
438 spin_unlock_irqrestore(&drv_data->lock, flags);
439
440 /* see if the next and current messages point
441 * to the same chip
442 */
443 if (next_msg && next_msg->spi != msg->spi)
444 next_msg = NULL;
445 if (!next_msg || msg->state == ERROR_STATE)
446 drv_data->cs_control(PXA2XX_CS_DEASSERT);
447 }
411 448
412 msg->state = NULL; 449 msg->state = NULL;
413 if (msg->complete) 450 if (msg->complete)
@@ -490,10 +527,9 @@ static void dma_transfer_complete(struct driver_data *drv_data)
490 msg->actual_length += drv_data->len - 527 msg->actual_length += drv_data->len -
491 (drv_data->rx_end - drv_data->rx); 528 (drv_data->rx_end - drv_data->rx);
492 529
493 /* Release chip select if requested, transfer delays are 530 /* Transfer delays and chip select release are
494 * handled in pump_transfers */ 531 * handled in pump_transfers or giveback
495 if (drv_data->cs_change) 532 */
496 drv_data->cs_control(PXA2XX_CS_DEASSERT);
497 533
498 /* Move to next transfer */ 534 /* Move to next transfer */
499 msg->state = next_transfer(drv_data); 535 msg->state = next_transfer(drv_data);
@@ -602,10 +638,9 @@ static void int_transfer_complete(struct driver_data *drv_data)
602 drv_data->cur_msg->actual_length += drv_data->len - 638 drv_data->cur_msg->actual_length += drv_data->len -
603 (drv_data->rx_end - drv_data->rx); 639 (drv_data->rx_end - drv_data->rx);
604 640
605 /* Release chip select if requested, transfer delays are 641 /* Transfer delays and chip select release are
606 * handled in pump_transfers */ 642 * handled in pump_transfers or giveback
607 if (drv_data->cs_change) 643 */
608 drv_data->cs_control(PXA2XX_CS_DEASSERT);
609 644
610 /* Move to next transfer */ 645 /* Move to next transfer */
611 drv_data->cur_msg->state = next_transfer(drv_data); 646 drv_data->cur_msg->state = next_transfer(drv_data);
@@ -840,23 +875,40 @@ static void pump_transfers(unsigned long data)
840 return; 875 return;
841 } 876 }
842 877
843 /* Delay if requested at end of transfer*/ 878 /* Delay if requested at end of transfer before CS change */
844 if (message->state == RUNNING_STATE) { 879 if (message->state == RUNNING_STATE) {
845 previous = list_entry(transfer->transfer_list.prev, 880 previous = list_entry(transfer->transfer_list.prev,
846 struct spi_transfer, 881 struct spi_transfer,
847 transfer_list); 882 transfer_list);
848 if (previous->delay_usecs) 883 if (previous->delay_usecs)
849 udelay(previous->delay_usecs); 884 udelay(previous->delay_usecs);
885
886 /* Drop chip select only if cs_change is requested */
887 if (previous->cs_change)
888 drv_data->cs_control(PXA2XX_CS_DEASSERT);
850 } 889 }
851 890
852 /* Check transfer length */ 891 /* Check for transfers that need multiple DMA segments */
853 if (transfer->len > 8191) 892 if (transfer->len > MAX_DMA_LEN && chip->enable_dma) {
854 { 893
855 dev_warn(&drv_data->pdev->dev, "pump_transfers: transfer " 894 /* reject already-mapped transfers; PIO won't always work */
856 "length greater than 8191\n"); 895 if (message->is_dma_mapped
857 message->status = -EINVAL; 896 || transfer->rx_dma || transfer->tx_dma) {
858 giveback(drv_data); 897 dev_err(&drv_data->pdev->dev,
859 return; 898 "pump_transfers: mapped transfer length "
899 "of %u is greater than %d\n",
900 transfer->len, MAX_DMA_LEN);
901 message->status = -EINVAL;
902 giveback(drv_data);
903 return;
904 }
905
906 /* warn ... we force this to PIO mode */
907 if (printk_ratelimit())
908 dev_warn(&message->spi->dev, "pump_transfers: "
909 "DMA disabled for transfer length %ld "
910 "greater than %d\n",
911 (long)drv_data->len, MAX_DMA_LEN);
860 } 912 }
861 913
862 /* Setup the transfer state based on the type of transfer */ 914 /* Setup the transfer state based on the type of transfer */
@@ -878,7 +930,6 @@ static void pump_transfers(unsigned long data)
878 drv_data->len = transfer->len & DCMD_LENGTH; 930 drv_data->len = transfer->len & DCMD_LENGTH;
879 drv_data->write = drv_data->tx ? chip->write : null_writer; 931 drv_data->write = drv_data->tx ? chip->write : null_writer;
880 drv_data->read = drv_data->rx ? chip->read : null_reader; 932 drv_data->read = drv_data->rx ? chip->read : null_reader;
881 drv_data->cs_change = transfer->cs_change;
882 933
883 /* Change speed and bit per word on a per transfer */ 934 /* Change speed and bit per word on a per transfer */
884 cr0 = chip->cr0; 935 cr0 = chip->cr0;
@@ -925,7 +976,7 @@ static void pump_transfers(unsigned long data)
925 &dma_thresh)) 976 &dma_thresh))
926 if (printk_ratelimit()) 977 if (printk_ratelimit())
927 dev_warn(&message->spi->dev, 978 dev_warn(&message->spi->dev,
928 "pump_transfer: " 979 "pump_transfers: "
929 "DMA burst size reduced to " 980 "DMA burst size reduced to "
930 "match bits_per_word\n"); 981 "match bits_per_word\n");
931 } 982 }
@@ -939,8 +990,23 @@ static void pump_transfers(unsigned long data)
939 990
940 message->state = RUNNING_STATE; 991 message->state = RUNNING_STATE;
941 992
942 /* Try to map dma buffer and do a dma transfer if successful */ 993 /* Try to map dma buffer and do a dma transfer if successful, but
943 if ((drv_data->dma_mapped = map_dma_buffers(drv_data))) { 994 * only if the length is non-zero and less than MAX_DMA_LEN.
995 *
996 * Zero-length non-descriptor DMA is illegal on PXA2xx; force use
997 * of PIO instead. Care is needed above because the transfer may
998 * have have been passed with buffers that are already dma mapped.
999 * A zero-length transfer in PIO mode will not try to write/read
1000 * to/from the buffers
1001 *
1002 * REVISIT large transfers are exactly where we most want to be
1003 * using DMA. If this happens much, split those transfers into
1004 * multiple DMA segments rather than forcing PIO.
1005 */
1006 drv_data->dma_mapped = 0;
1007 if (drv_data->len > 0 && drv_data->len <= MAX_DMA_LEN)
1008 drv_data->dma_mapped = map_dma_buffers(drv_data);
1009 if (drv_data->dma_mapped) {
944 1010
945 /* Ensure we have the correct interrupt handler */ 1011 /* Ensure we have the correct interrupt handler */
946 drv_data->transfer_handler = dma_transfer; 1012 drv_data->transfer_handler = dma_transfer;
diff --git a/drivers/spi/spi_mpc83xx.c b/drivers/spi/spi_mpc83xx.c
index 070c6219e2d..ac0e3e4b3c5 100644
--- a/drivers/spi/spi_mpc83xx.c
+++ b/drivers/spi/spi_mpc83xx.c
@@ -267,16 +267,13 @@ int mpc83xx_spi_setup_transfer(struct spi_device *spi, struct spi_transfer *t)
267 cs->hw_mode |= SPMODE_LEN(bits_per_word); 267 cs->hw_mode |= SPMODE_LEN(bits_per_word);
268 268
269 if ((mpc83xx_spi->spibrg / hz) > 64) { 269 if ((mpc83xx_spi->spibrg / hz) > 64) {
270 cs->hw_mode |= SPMODE_DIV16;
270 pm = mpc83xx_spi->spibrg / (hz * 64); 271 pm = mpc83xx_spi->spibrg / (hz * 64);
271 if (pm > 16) { 272 if (pm > 16) {
272 cs->hw_mode |= SPMODE_DIV16; 273 dev_err(&spi->dev, "Requested speed is too "
273 pm /= 16; 274 "low: %d Hz. Will use %d Hz instead.\n",
274 if (pm > 16) { 275 hz, mpc83xx_spi->spibrg / 1024);
275 dev_err(&spi->dev, "Requested speed is too " 276 pm = 16;
276 "low: %d Hz. Will use %d Hz instead.\n",
277 hz, mpc83xx_spi->spibrg / 1024);
278 pm = 16;
279 }
280 } 277 }
281 } else 278 } else
282 pm = mpc83xx_spi->spibrg / (hz * 4); 279 pm = mpc83xx_spi->spibrg / (hz * 4);
@@ -315,11 +312,20 @@ static int mpc83xx_spi_bufs(struct spi_device *spi, struct spi_transfer *t)
315 if (t->bits_per_word) 312 if (t->bits_per_word)
316 bits_per_word = t->bits_per_word; 313 bits_per_word = t->bits_per_word;
317 len = t->len; 314 len = t->len;
318 if (bits_per_word > 8) 315 if (bits_per_word > 8) {
316 /* invalid length? */
317 if (len & 1)
318 return -EINVAL;
319 len /= 2; 319 len /= 2;
320 if (bits_per_word > 16) 320 }
321 if (bits_per_word > 16) {
322 /* invalid length? */
323 if (len & 1)
324 return -EINVAL;
321 len /= 2; 325 len /= 2;
326 }
322 mpc83xx_spi->count = len; 327 mpc83xx_spi->count = len;
328
323 INIT_COMPLETION(mpc83xx_spi->done); 329 INIT_COMPLETION(mpc83xx_spi->done);
324 330
325 /* enable rx ints */ 331 /* enable rx ints */
diff --git a/drivers/spi/spi_s3c24xx.c b/drivers/spi/spi_s3c24xx.c
index 98abc73c1a1..3eb414b84a9 100644
--- a/drivers/spi/spi_s3c24xx.c
+++ b/drivers/spi/spi_s3c24xx.c
@@ -430,7 +430,7 @@ static int s3c24xx_spi_resume(struct platform_device *pdev)
430#endif 430#endif
431 431
432MODULE_ALIAS("platform:s3c2410-spi"); 432MODULE_ALIAS("platform:s3c2410-spi");
433static struct platform_driver s3c24xx_spidrv = { 433static struct platform_driver s3c24xx_spi_driver = {
434 .remove = __exit_p(s3c24xx_spi_remove), 434 .remove = __exit_p(s3c24xx_spi_remove),
435 .suspend = s3c24xx_spi_suspend, 435 .suspend = s3c24xx_spi_suspend,
436 .resume = s3c24xx_spi_resume, 436 .resume = s3c24xx_spi_resume,
@@ -442,12 +442,12 @@ static struct platform_driver s3c24xx_spidrv = {
442 442
443static int __init s3c24xx_spi_init(void) 443static int __init s3c24xx_spi_init(void)
444{ 444{
445 return platform_driver_probe(&s3c24xx_spidrv, s3c24xx_spi_probe); 445 return platform_driver_probe(&s3c24xx_spi_driver, s3c24xx_spi_probe);
446} 446}
447 447
448static void __exit s3c24xx_spi_exit(void) 448static void __exit s3c24xx_spi_exit(void)
449{ 449{
450 platform_driver_unregister(&s3c24xx_spidrv); 450 platform_driver_unregister(&s3c24xx_spi_driver);
451} 451}
452 452
453module_init(s3c24xx_spi_init); 453module_init(s3c24xx_spi_init);
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
index 87ab2443e66..0ffabf5c0b6 100644
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -471,6 +471,7 @@ static int ssb_devices_register(struct ssb_bus *bus)
471#endif 471#endif
472 break; 472 break;
473 case SSB_BUSTYPE_SSB: 473 case SSB_BUSTYPE_SSB:
474 dev->dma_mask = &dev->coherent_dma_mask;
474 break; 475 break;
475 } 476 }
476 477
diff --git a/drivers/uio/Kconfig b/drivers/uio/Kconfig
index 2e9079df26b..4190be64917 100644
--- a/drivers/uio/Kconfig
+++ b/drivers/uio/Kconfig
@@ -33,6 +33,19 @@ config UIO_PDRV
33 33
34 If you don't know what to do here, say N. 34 If you don't know what to do here, say N.
35 35
36config UIO_PDRV_GENIRQ
37 tristate "Userspace I/O platform driver with generic IRQ handling"
38 help
39 Platform driver for Userspace I/O devices, including generic
40 interrupt handling code. Shared interrupts are not supported.
41
42 This kernel driver requires that the matching userspace driver
43 handles interrupts in a special way. Userspace is responsible
44 for acknowledging the hardware device if needed, and re-enabling
45 interrupts in the interrupt controller using the write() syscall.
46
47 If you don't know what to do here, say N.
48
36config UIO_SMX 49config UIO_SMX
37 tristate "SMX cryptengine UIO interface" 50 tristate "SMX cryptengine UIO interface"
38 default n 51 default n
diff --git a/drivers/uio/Makefile b/drivers/uio/Makefile
index e00ce0def1a..8667bbdef90 100644
--- a/drivers/uio/Makefile
+++ b/drivers/uio/Makefile
@@ -1,4 +1,5 @@
1obj-$(CONFIG_UIO) += uio.o 1obj-$(CONFIG_UIO) += uio.o
2obj-$(CONFIG_UIO_CIF) += uio_cif.o 2obj-$(CONFIG_UIO_CIF) += uio_cif.o
3obj-$(CONFIG_UIO_PDRV) += uio_pdrv.o 3obj-$(CONFIG_UIO_PDRV) += uio_pdrv.o
4obj-$(CONFIG_UIO_PDRV_GENIRQ) += uio_pdrv_genirq.o
4obj-$(CONFIG_UIO_SMX) += uio_smx.o 5obj-$(CONFIG_UIO_SMX) += uio_smx.o
diff --git a/drivers/uio/uio_pdrv.c b/drivers/uio/uio_pdrv.c
index 5d0d2e85d98..0b4ef39cd85 100644
--- a/drivers/uio/uio_pdrv.c
+++ b/drivers/uio/uio_pdrv.c
@@ -88,6 +88,8 @@ static int uio_pdrv_remove(struct platform_device *pdev)
88 88
89 uio_unregister_device(pdata->uioinfo); 89 uio_unregister_device(pdata->uioinfo);
90 90
91 kfree(pdata);
92
91 return 0; 93 return 0;
92} 94}
93 95
@@ -114,5 +116,5 @@ module_exit(uio_pdrv_exit);
114 116
115MODULE_AUTHOR("Uwe Kleine-Koenig"); 117MODULE_AUTHOR("Uwe Kleine-Koenig");
116MODULE_DESCRIPTION("Userspace I/O platform driver"); 118MODULE_DESCRIPTION("Userspace I/O platform driver");
117MODULE_LICENSE("GPL"); 119MODULE_LICENSE("GPL v2");
118MODULE_ALIAS("platform:" DRIVER_NAME); 120MODULE_ALIAS("platform:" DRIVER_NAME);
diff --git a/drivers/uio/uio_pdrv_genirq.c b/drivers/uio/uio_pdrv_genirq.c
new file mode 100644
index 00000000000..1f82c83a92a
--- /dev/null
+++ b/drivers/uio/uio_pdrv_genirq.c
@@ -0,0 +1,188 @@
1/*
2 * drivers/uio/uio_pdrv_genirq.c
3 *
4 * Userspace I/O platform driver with generic IRQ handling code.
5 *
6 * Copyright (C) 2008 Magnus Damm
7 *
8 * Based on uio_pdrv.c by Uwe Kleine-Koenig,
9 * Copyright (C) 2008 by Digi International Inc.
10 * All rights reserved.
11 *
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License version 2 as published by
14 * the Free Software Foundation.
15 */
16
17#include <linux/platform_device.h>
18#include <linux/uio_driver.h>
19#include <linux/spinlock.h>
20#include <linux/bitops.h>
21#include <linux/interrupt.h>
22#include <linux/stringify.h>
23
24#define DRIVER_NAME "uio_pdrv_genirq"
25
26struct uio_pdrv_genirq_platdata {
27 struct uio_info *uioinfo;
28 spinlock_t lock;
29 unsigned long flags;
30};
31
32static irqreturn_t uio_pdrv_genirq_handler(int irq, struct uio_info *dev_info)
33{
34 struct uio_pdrv_genirq_platdata *priv = dev_info->priv;
35
36 /* Just disable the interrupt in the interrupt controller, and
37 * remember the state so we can allow user space to enable it later.
38 */
39
40 if (!test_and_set_bit(0, &priv->flags))
41 disable_irq_nosync(irq);
42
43 return IRQ_HANDLED;
44}
45
46static int uio_pdrv_genirq_irqcontrol(struct uio_info *dev_info, s32 irq_on)
47{
48 struct uio_pdrv_genirq_platdata *priv = dev_info->priv;
49 unsigned long flags;
50
51 /* Allow user space to enable and disable the interrupt
52 * in the interrupt controller, but keep track of the
53 * state to prevent per-irq depth damage.
54 *
55 * Serialize this operation to support multiple tasks.
56 */
57
58 spin_lock_irqsave(&priv->lock, flags);
59 if (irq_on) {
60 if (test_and_clear_bit(0, &priv->flags))
61 enable_irq(dev_info->irq);
62 } else {
63 if (!test_and_set_bit(0, &priv->flags))
64 disable_irq(dev_info->irq);
65 }
66 spin_unlock_irqrestore(&priv->lock, flags);
67
68 return 0;
69}
70
71static int uio_pdrv_genirq_probe(struct platform_device *pdev)
72{
73 struct uio_info *uioinfo = pdev->dev.platform_data;
74 struct uio_pdrv_genirq_platdata *priv;
75 struct uio_mem *uiomem;
76 int ret = -EINVAL;
77 int i;
78
79 if (!uioinfo || !uioinfo->name || !uioinfo->version) {
80 dev_err(&pdev->dev, "missing platform_data\n");
81 goto bad0;
82 }
83
84 if (uioinfo->handler || uioinfo->irqcontrol || uioinfo->irq_flags) {
85 dev_err(&pdev->dev, "interrupt configuration error\n");
86 goto bad0;
87 }
88
89 priv = kzalloc(sizeof(*priv), GFP_KERNEL);
90 if (!priv) {
91 ret = -ENOMEM;
92 dev_err(&pdev->dev, "unable to kmalloc\n");
93 goto bad0;
94 }
95
96 priv->uioinfo = uioinfo;
97 spin_lock_init(&priv->lock);
98 priv->flags = 0; /* interrupt is enabled to begin with */
99
100 uiomem = &uioinfo->mem[0];
101
102 for (i = 0; i < pdev->num_resources; ++i) {
103 struct resource *r = &pdev->resource[i];
104
105 if (r->flags != IORESOURCE_MEM)
106 continue;
107
108 if (uiomem >= &uioinfo->mem[MAX_UIO_MAPS]) {
109 dev_warn(&pdev->dev, "device has more than "
110 __stringify(MAX_UIO_MAPS)
111 " I/O memory resources.\n");
112 break;
113 }
114
115 uiomem->memtype = UIO_MEM_PHYS;
116 uiomem->addr = r->start;
117 uiomem->size = r->end - r->start + 1;
118 ++uiomem;
119 }
120
121 while (uiomem < &uioinfo->mem[MAX_UIO_MAPS]) {
122 uiomem->size = 0;
123 ++uiomem;
124 }
125
126 /* This driver requires no hardware specific kernel code to handle
127 * interrupts. Instead, the interrupt handler simply disables the
128 * interrupt in the interrupt controller. User space is responsible
129 * for performing hardware specific acknowledge and re-enabling of
130 * the interrupt in the interrupt controller.
131 *
132 * Interrupt sharing is not supported.
133 */
134
135 uioinfo->irq_flags = IRQF_DISABLED;
136 uioinfo->handler = uio_pdrv_genirq_handler;
137 uioinfo->irqcontrol = uio_pdrv_genirq_irqcontrol;
138 uioinfo->priv = priv;
139
140 ret = uio_register_device(&pdev->dev, priv->uioinfo);
141 if (ret) {
142 dev_err(&pdev->dev, "unable to register uio device\n");
143 goto bad1;
144 }
145
146 platform_set_drvdata(pdev, priv);
147 return 0;
148 bad1:
149 kfree(priv);
150 bad0:
151 return ret;
152}
153
154static int uio_pdrv_genirq_remove(struct platform_device *pdev)
155{
156 struct uio_pdrv_genirq_platdata *priv = platform_get_drvdata(pdev);
157
158 uio_unregister_device(priv->uioinfo);
159 kfree(priv);
160 return 0;
161}
162
163static struct platform_driver uio_pdrv_genirq = {
164 .probe = uio_pdrv_genirq_probe,
165 .remove = uio_pdrv_genirq_remove,
166 .driver = {
167 .name = DRIVER_NAME,
168 .owner = THIS_MODULE,
169 },
170};
171
172static int __init uio_pdrv_genirq_init(void)
173{
174 return platform_driver_register(&uio_pdrv_genirq);
175}
176
177static void __exit uio_pdrv_genirq_exit(void)
178{
179 platform_driver_unregister(&uio_pdrv_genirq);
180}
181
182module_init(uio_pdrv_genirq_init);
183module_exit(uio_pdrv_genirq_exit);
184
185MODULE_AUTHOR("Magnus Damm");
186MODULE_DESCRIPTION("Userspace I/O platform driver with generic IRQ handling");
187MODULE_LICENSE("GPL v2");
188MODULE_ALIAS("platform:" DRIVER_NAME);
diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c
index cb01b5106ef..b6483dd98ac 100644
--- a/drivers/usb/atm/ueagle-atm.c
+++ b/drivers/usb/atm/ueagle-atm.c
@@ -64,7 +64,6 @@
64#include <linux/ctype.h> 64#include <linux/ctype.h>
65#include <linux/sched.h> 65#include <linux/sched.h>
66#include <linux/kthread.h> 66#include <linux/kthread.h>
67#include <linux/version.h>
68#include <linux/mutex.h> 67#include <linux/mutex.h>
69#include <linux/freezer.h> 68#include <linux/freezer.h>
70 69
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index efc4373eded..c257453fa9d 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -589,8 +589,8 @@ static int acm_tty_open(struct tty_struct *tty, struct file *filp)
589 tasklet_schedule(&acm->urb_task); 589 tasklet_schedule(&acm->urb_task);
590 590
591done: 591done:
592err_out:
593 mutex_unlock(&acm->mutex); 592 mutex_unlock(&acm->mutex);
593err_out:
594 mutex_unlock(&open_mutex); 594 mutex_unlock(&open_mutex);
595 return rv; 595 return rv;
596 596
@@ -1362,6 +1362,9 @@ static struct usb_device_id acm_ids[] = {
1362 { USB_DEVICE(0x0803, 0x3095), /* Zoom Telephonics Model 3095F USB MODEM */ 1362 { USB_DEVICE(0x0803, 0x3095), /* Zoom Telephonics Model 3095F USB MODEM */
1363 .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ 1363 .driver_info = NO_UNION_NORMAL, /* has no union descriptor */
1364 }, 1364 },
1365 { USB_DEVICE(0x0572, 0x1321), /* Conexant USB MODEM CX93010 */
1366 .driver_info = NO_UNION_NORMAL, /* has no union descriptor */
1367 },
1365 1368
1366 /* control interfaces with various AT-command sets */ 1369 /* control interfaces with various AT-command sets */
1367 { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, 1370 { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index 2be37fe466f..5a7fa6f0995 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -230,6 +230,13 @@ static int usb_probe_interface(struct device *dev)
230 */ 230 */
231 intf->pm_usage_cnt = !(driver->supports_autosuspend); 231 intf->pm_usage_cnt = !(driver->supports_autosuspend);
232 232
233 /* Carry out a deferred switch to altsetting 0 */
234 if (intf->needs_altsetting0) {
235 usb_set_interface(udev, intf->altsetting[0].
236 desc.bInterfaceNumber, 0);
237 intf->needs_altsetting0 = 0;
238 }
239
233 error = driver->probe(intf, id); 240 error = driver->probe(intf, id);
234 if (error) { 241 if (error) {
235 mark_quiesced(intf); 242 mark_quiesced(intf);
@@ -266,8 +273,17 @@ static int usb_unbind_interface(struct device *dev)
266 273
267 driver->disconnect(intf); 274 driver->disconnect(intf);
268 275
269 /* reset other interface state */ 276 /* Reset other interface state.
270 usb_set_interface(udev, intf->altsetting[0].desc.bInterfaceNumber, 0); 277 * We cannot do a Set-Interface if the device is suspended or
278 * if it is prepared for a system sleep (since installing a new
279 * altsetting means creating new endpoint device entries).
280 * When either of these happens, defer the Set-Interface.
281 */
282 if (!error && intf->dev.power.status == DPM_ON)
283 usb_set_interface(udev, intf->altsetting[0].
284 desc.bInterfaceNumber, 0);
285 else
286 intf->needs_altsetting0 = 1;
271 usb_set_intfdata(intf, NULL); 287 usb_set_intfdata(intf, NULL);
272 288
273 intf->condition = USB_INTERFACE_UNBOUND; 289 intf->condition = USB_INTERFACE_UNBOUND;
@@ -798,7 +814,8 @@ void usb_forced_unbind_intf(struct usb_interface *intf)
798 * The caller must hold @intf's device's lock, but not its pm_mutex 814 * The caller must hold @intf's device's lock, but not its pm_mutex
799 * and not @intf->dev.sem. 815 * and not @intf->dev.sem.
800 * 816 *
801 * FIXME: The caller must block system sleep transitions. 817 * Note: Rebinds will be skipped if a system sleep transition is in
818 * progress and the PM "complete" callback hasn't occurred yet.
802 */ 819 */
803void usb_rebind_intf(struct usb_interface *intf) 820void usb_rebind_intf(struct usb_interface *intf)
804{ 821{
@@ -814,10 +831,12 @@ void usb_rebind_intf(struct usb_interface *intf)
814 } 831 }
815 832
816 /* Try to rebind the interface */ 833 /* Try to rebind the interface */
817 intf->needs_binding = 0; 834 if (intf->dev.power.status == DPM_ON) {
818 rc = device_attach(&intf->dev); 835 intf->needs_binding = 0;
819 if (rc < 0) 836 rc = device_attach(&intf->dev);
820 dev_warn(&intf->dev, "rebind failed: %d\n", rc); 837 if (rc < 0)
838 dev_warn(&intf->dev, "rebind failed: %d\n", rc);
839 }
821} 840}
822 841
823#ifdef CONFIG_PM 842#ifdef CONFIG_PM
@@ -829,7 +848,6 @@ void usb_rebind_intf(struct usb_interface *intf)
829 * or rebind interfaces that have been unbound, according to @action. 848 * or rebind interfaces that have been unbound, according to @action.
830 * 849 *
831 * The caller must hold @udev's device lock. 850 * The caller must hold @udev's device lock.
832 * FIXME: For rebinds, the caller must block system sleep transitions.
833 */ 851 */
834static void do_unbind_rebind(struct usb_device *udev, int action) 852static void do_unbind_rebind(struct usb_device *udev, int action)
835{ 853{
@@ -851,22 +869,8 @@ static void do_unbind_rebind(struct usb_device *udev, int action)
851 } 869 }
852 break; 870 break;
853 case DO_REBIND: 871 case DO_REBIND:
854 if (intf->needs_binding) { 872 if (intf->needs_binding)
855
856 /* FIXME: The next line is needed because we are going to probe
857 * the interface, but as far as the PM core is concerned the
858 * interface is still suspended. The problem wouldn't exist
859 * if we could rebind the interface during the interface's own
860 * resume() call, but at the time the usb_device isn't locked!
861 *
862 * The real solution will be to carry this out during the device's
863 * complete() callback. Until that is implemented, we have to
864 * use this hack.
865 */
866// intf->dev.power.sleeping = 0;
867
868 usb_rebind_intf(intf); 873 usb_rebind_intf(intf);
869 }
870 break; 874 break;
871 } 875 }
872 } 876 }
@@ -926,14 +930,14 @@ static int usb_resume_device(struct usb_device *udev)
926} 930}
927 931
928/* Caller has locked intf's usb_device's pm mutex */ 932/* Caller has locked intf's usb_device's pm mutex */
929static int usb_suspend_interface(struct usb_interface *intf, pm_message_t msg) 933static int usb_suspend_interface(struct usb_device *udev,
934 struct usb_interface *intf, pm_message_t msg)
930{ 935{
931 struct usb_driver *driver; 936 struct usb_driver *driver;
932 int status = 0; 937 int status = 0;
933 938
934 /* with no hardware, USB interfaces only use FREEZE and ON states */ 939 /* with no hardware, USB interfaces only use FREEZE and ON states */
935 if (interface_to_usbdev(intf)->state == USB_STATE_NOTATTACHED || 940 if (udev->state == USB_STATE_NOTATTACHED || !is_active(intf))
936 !is_active(intf))
937 goto done; 941 goto done;
938 942
939 if (intf->condition == USB_INTERFACE_UNBOUND) /* This can't happen */ 943 if (intf->condition == USB_INTERFACE_UNBOUND) /* This can't happen */
@@ -944,7 +948,7 @@ static int usb_suspend_interface(struct usb_interface *intf, pm_message_t msg)
944 status = driver->suspend(intf, msg); 948 status = driver->suspend(intf, msg);
945 if (status == 0) 949 if (status == 0)
946 mark_quiesced(intf); 950 mark_quiesced(intf);
947 else if (!interface_to_usbdev(intf)->auto_pm) 951 else if (!udev->auto_pm)
948 dev_err(&intf->dev, "%s error %d\n", 952 dev_err(&intf->dev, "%s error %d\n",
949 "suspend", status); 953 "suspend", status);
950 } else { 954 } else {
@@ -961,13 +965,13 @@ static int usb_suspend_interface(struct usb_interface *intf, pm_message_t msg)
961} 965}
962 966
963/* Caller has locked intf's usb_device's pm_mutex */ 967/* Caller has locked intf's usb_device's pm_mutex */
964static int usb_resume_interface(struct usb_interface *intf, int reset_resume) 968static int usb_resume_interface(struct usb_device *udev,
969 struct usb_interface *intf, int reset_resume)
965{ 970{
966 struct usb_driver *driver; 971 struct usb_driver *driver;
967 int status = 0; 972 int status = 0;
968 973
969 if (interface_to_usbdev(intf)->state == USB_STATE_NOTATTACHED || 974 if (udev->state == USB_STATE_NOTATTACHED || is_active(intf))
970 is_active(intf))
971 goto done; 975 goto done;
972 976
973 /* Don't let autoresume interfere with unbinding */ 977 /* Don't let autoresume interfere with unbinding */
@@ -975,8 +979,17 @@ static int usb_resume_interface(struct usb_interface *intf, int reset_resume)
975 goto done; 979 goto done;
976 980
977 /* Can't resume it if it doesn't have a driver. */ 981 /* Can't resume it if it doesn't have a driver. */
978 if (intf->condition == USB_INTERFACE_UNBOUND) 982 if (intf->condition == USB_INTERFACE_UNBOUND) {
983
984 /* Carry out a deferred switch to altsetting 0 */
985 if (intf->needs_altsetting0 &&
986 intf->dev.power.status == DPM_ON) {
987 usb_set_interface(udev, intf->altsetting[0].
988 desc.bInterfaceNumber, 0);
989 intf->needs_altsetting0 = 0;
990 }
979 goto done; 991 goto done;
992 }
980 993
981 /* Don't resume if the interface is marked for rebinding */ 994 /* Don't resume if the interface is marked for rebinding */
982 if (intf->needs_binding) 995 if (intf->needs_binding)
@@ -1151,7 +1164,7 @@ static int usb_suspend_both(struct usb_device *udev, pm_message_t msg)
1151 if (udev->actconfig) { 1164 if (udev->actconfig) {
1152 for (; i < udev->actconfig->desc.bNumInterfaces; i++) { 1165 for (; i < udev->actconfig->desc.bNumInterfaces; i++) {
1153 intf = udev->actconfig->interface[i]; 1166 intf = udev->actconfig->interface[i];
1154 status = usb_suspend_interface(intf, msg); 1167 status = usb_suspend_interface(udev, intf, msg);
1155 if (status != 0) 1168 if (status != 0)
1156 break; 1169 break;
1157 } 1170 }
@@ -1163,7 +1176,7 @@ static int usb_suspend_both(struct usb_device *udev, pm_message_t msg)
1163 if (status != 0) { 1176 if (status != 0) {
1164 while (--i >= 0) { 1177 while (--i >= 0) {
1165 intf = udev->actconfig->interface[i]; 1178 intf = udev->actconfig->interface[i];
1166 usb_resume_interface(intf, 0); 1179 usb_resume_interface(udev, intf, 0);
1167 } 1180 }
1168 1181
1169 /* Try another autosuspend when the interfaces aren't busy */ 1182 /* Try another autosuspend when the interfaces aren't busy */
@@ -1276,7 +1289,7 @@ static int usb_resume_both(struct usb_device *udev)
1276 if (status == 0 && udev->actconfig) { 1289 if (status == 0 && udev->actconfig) {
1277 for (i = 0; i < udev->actconfig->desc.bNumInterfaces; i++) { 1290 for (i = 0; i < udev->actconfig->desc.bNumInterfaces; i++) {
1278 intf = udev->actconfig->interface[i]; 1291 intf = udev->actconfig->interface[i];
1279 usb_resume_interface(intf, udev->reset_resume); 1292 usb_resume_interface(udev, intf, udev->reset_resume);
1280 } 1293 }
1281 } 1294 }
1282 1295
@@ -1605,12 +1618,10 @@ int usb_external_resume_device(struct usb_device *udev)
1605 return status; 1618 return status;
1606} 1619}
1607 1620
1608static int usb_suspend(struct device *dev, pm_message_t message) 1621int usb_suspend(struct device *dev, pm_message_t message)
1609{ 1622{
1610 struct usb_device *udev; 1623 struct usb_device *udev;
1611 1624
1612 if (!is_usb_device(dev)) /* Ignore PM for interfaces */
1613 return 0;
1614 udev = to_usb_device(dev); 1625 udev = to_usb_device(dev);
1615 1626
1616 /* If udev is already suspended, we can skip this suspend and 1627 /* If udev is already suspended, we can skip this suspend and
@@ -1629,12 +1640,10 @@ static int usb_suspend(struct device *dev, pm_message_t message)
1629 return usb_external_suspend_device(udev, message); 1640 return usb_external_suspend_device(udev, message);
1630} 1641}
1631 1642
1632static int usb_resume(struct device *dev) 1643int usb_resume(struct device *dev)
1633{ 1644{
1634 struct usb_device *udev; 1645 struct usb_device *udev;
1635 1646
1636 if (!is_usb_device(dev)) /* Ignore PM for interfaces */
1637 return 0;
1638 udev = to_usb_device(dev); 1647 udev = to_usb_device(dev);
1639 1648
1640 /* If udev->skip_sys_resume is set then udev was already suspended 1649 /* If udev->skip_sys_resume is set then udev was already suspended
@@ -1646,17 +1655,10 @@ static int usb_resume(struct device *dev)
1646 return usb_external_resume_device(udev); 1655 return usb_external_resume_device(udev);
1647} 1656}
1648 1657
1649#else
1650
1651#define usb_suspend NULL
1652#define usb_resume NULL
1653
1654#endif /* CONFIG_PM */ 1658#endif /* CONFIG_PM */
1655 1659
1656struct bus_type usb_bus_type = { 1660struct bus_type usb_bus_type = {
1657 .name = "usb", 1661 .name = "usb",
1658 .match = usb_device_match, 1662 .match = usb_device_match,
1659 .uevent = usb_uevent, 1663 .uevent = usb_uevent,
1660 .suspend = usb_suspend,
1661 .resume = usb_resume,
1662}; 1664};
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index f7bfd72ef11..8ab389dca2b 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -924,15 +924,6 @@ static int register_root_hub(struct usb_hcd *hcd)
924 return retval; 924 return retval;
925} 925}
926 926
927void usb_enable_root_hub_irq (struct usb_bus *bus)
928{
929 struct usb_hcd *hcd;
930
931 hcd = container_of (bus, struct usb_hcd, self);
932 if (hcd->driver->hub_irq_enable && hcd->state != HC_STATE_HALT)
933 hcd->driver->hub_irq_enable (hcd);
934}
935
936 927
937/*-------------------------------------------------------------------------*/ 928/*-------------------------------------------------------------------------*/
938 929
@@ -1885,7 +1876,8 @@ int usb_add_hcd(struct usb_hcd *hcd,
1885 * with IRQF_SHARED. As usb_hcd_irq() will always disable 1876 * with IRQF_SHARED. As usb_hcd_irq() will always disable
1886 * interrupts we can remove it here. 1877 * interrupts we can remove it here.
1887 */ 1878 */
1888 irqflags &= ~IRQF_DISABLED; 1879 if (irqflags & IRQF_SHARED)
1880 irqflags &= ~IRQF_DISABLED;
1889 1881
1890 snprintf(hcd->irq_descr, sizeof(hcd->irq_descr), "%s:usb%d", 1882 snprintf(hcd->irq_descr, sizeof(hcd->irq_descr), "%s:usb%d",
1891 hcd->driver->description, hcd->self.busnum); 1883 hcd->driver->description, hcd->self.busnum);
diff --git a/drivers/usb/core/hcd.h b/drivers/usb/core/hcd.h
index 5b0b59b0d89..e710ce04e22 100644
--- a/drivers/usb/core/hcd.h
+++ b/drivers/usb/core/hcd.h
@@ -212,8 +212,6 @@ struct hc_driver {
212 int (*bus_suspend)(struct usb_hcd *); 212 int (*bus_suspend)(struct usb_hcd *);
213 int (*bus_resume)(struct usb_hcd *); 213 int (*bus_resume)(struct usb_hcd *);
214 int (*start_port_reset)(struct usb_hcd *, unsigned port_num); 214 int (*start_port_reset)(struct usb_hcd *, unsigned port_num);
215 void (*hub_irq_enable)(struct usb_hcd *);
216 /* Needed only if port-change IRQs are level-triggered */
217 215
218 /* force handover of high-speed port to full-speed companion */ 216 /* force handover of high-speed port to full-speed companion */
219 void (*relinquish_port)(struct usb_hcd *, int); 217 void (*relinquish_port)(struct usb_hcd *, int);
@@ -379,8 +377,6 @@ extern struct list_head usb_bus_list;
379extern struct mutex usb_bus_list_lock; 377extern struct mutex usb_bus_list_lock;
380extern wait_queue_head_t usb_kill_urb_queue; 378extern wait_queue_head_t usb_kill_urb_queue;
381 379
382extern void usb_enable_root_hub_irq(struct usb_bus *bus);
383
384extern int usb_find_interface_driver(struct usb_device *dev, 380extern int usb_find_interface_driver(struct usb_device *dev,
385 struct usb_interface *interface); 381 struct usb_interface *interface);
386 382
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 107e1d25dde..d99963873e3 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -2102,8 +2102,6 @@ int usb_port_resume(struct usb_device *udev)
2102 } 2102 }
2103 2103
2104 clear_bit(port1, hub->busy_bits); 2104 clear_bit(port1, hub->busy_bits);
2105 if (!hub->hdev->parent && !hub->busy_bits[0])
2106 usb_enable_root_hub_irq(hub->hdev->bus);
2107 2105
2108 status = check_port_resume_type(udev, 2106 status = check_port_resume_type(udev,
2109 hub, port1, status, portchange, portstatus); 2107 hub, port1, status, portchange, portstatus);
@@ -2685,35 +2683,17 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
2685 USB_PORT_STAT_C_ENABLE); 2683 USB_PORT_STAT_C_ENABLE);
2686#endif 2684#endif
2687 2685
2688 /* Try to use the debounce delay for protection against
2689 * port-enable changes caused, for example, by EMI.
2690 */
2691 if (portchange & (USB_PORT_STAT_C_CONNECTION |
2692 USB_PORT_STAT_C_ENABLE)) {
2693 status = hub_port_debounce(hub, port1);
2694 if (status < 0) {
2695 if (printk_ratelimit())
2696 dev_err (hub_dev, "connect-debounce failed, "
2697 "port %d disabled\n", port1);
2698 portstatus &= ~USB_PORT_STAT_CONNECTION;
2699 } else {
2700 portstatus = status;
2701 }
2702 }
2703
2704 /* Try to resuscitate an existing device */ 2686 /* Try to resuscitate an existing device */
2705 udev = hdev->children[port1-1]; 2687 udev = hdev->children[port1-1];
2706 if ((portstatus & USB_PORT_STAT_CONNECTION) && udev && 2688 if ((portstatus & USB_PORT_STAT_CONNECTION) && udev &&
2707 udev->state != USB_STATE_NOTATTACHED) { 2689 udev->state != USB_STATE_NOTATTACHED) {
2708
2709 usb_lock_device(udev); 2690 usb_lock_device(udev);
2710 if (portstatus & USB_PORT_STAT_ENABLE) { 2691 if (portstatus & USB_PORT_STAT_ENABLE) {
2711 status = 0; /* Nothing to do */ 2692 status = 0; /* Nothing to do */
2712 } else if (!udev->persist_enabled) {
2713 status = -ENODEV; /* Mustn't resuscitate */
2714 2693
2715#ifdef CONFIG_USB_SUSPEND 2694#ifdef CONFIG_USB_SUSPEND
2716 } else if (udev->state == USB_STATE_SUSPENDED) { 2695 } else if (udev->state == USB_STATE_SUSPENDED &&
2696 udev->persist_enabled) {
2717 /* For a suspended device, treat this as a 2697 /* For a suspended device, treat this as a
2718 * remote wakeup event. 2698 * remote wakeup event.
2719 */ 2699 */
@@ -2728,7 +2708,7 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
2728#endif 2708#endif
2729 2709
2730 } else { 2710 } else {
2731 status = usb_reset_device(udev); 2711 status = -ENODEV; /* Don't resuscitate */
2732 } 2712 }
2733 usb_unlock_device(udev); 2713 usb_unlock_device(udev);
2734 2714
@@ -2743,6 +2723,19 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
2743 usb_disconnect(&hdev->children[port1-1]); 2723 usb_disconnect(&hdev->children[port1-1]);
2744 clear_bit(port1, hub->change_bits); 2724 clear_bit(port1, hub->change_bits);
2745 2725
2726 if (portchange & (USB_PORT_STAT_C_CONNECTION |
2727 USB_PORT_STAT_C_ENABLE)) {
2728 status = hub_port_debounce(hub, port1);
2729 if (status < 0) {
2730 if (printk_ratelimit())
2731 dev_err(hub_dev, "connect-debounce failed, "
2732 "port %d disabled\n", port1);
2733 portstatus &= ~USB_PORT_STAT_CONNECTION;
2734 } else {
2735 portstatus = status;
2736 }
2737 }
2738
2746 /* Return now if debouncing failed or nothing is connected */ 2739 /* Return now if debouncing failed or nothing is connected */
2747 if (!(portstatus & USB_PORT_STAT_CONNECTION)) { 2740 if (!(portstatus & USB_PORT_STAT_CONNECTION)) {
2748 2741
@@ -2750,7 +2743,7 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
2750 if ((wHubCharacteristics & HUB_CHAR_LPSM) < 2 2743 if ((wHubCharacteristics & HUB_CHAR_LPSM) < 2
2751 && !(portstatus & (1 << USB_PORT_FEAT_POWER))) 2744 && !(portstatus & (1 << USB_PORT_FEAT_POWER)))
2752 set_port_feature(hdev, port1, USB_PORT_FEAT_POWER); 2745 set_port_feature(hdev, port1, USB_PORT_FEAT_POWER);
2753 2746
2754 if (portstatus & USB_PORT_STAT_ENABLE) 2747 if (portstatus & USB_PORT_STAT_ENABLE)
2755 goto done; 2748 goto done;
2756 return; 2749 return;
@@ -3081,11 +3074,6 @@ static void hub_events(void)
3081 } 3074 }
3082 } 3075 }
3083 3076
3084 /* If this is a root hub, tell the HCD it's okay to
3085 * re-enable port-change interrupts now. */
3086 if (!hdev->parent && !hub->busy_bits[0])
3087 usb_enable_root_hub_irq(hdev->bus);
3088
3089loop_autopm: 3077loop_autopm:
3090 /* Allow autosuspend if we're not going to run again */ 3078 /* Allow autosuspend if we're not going to run again */
3091 if (list_empty(&hub->event_list)) 3079 if (list_empty(&hub->event_list))
@@ -3311,8 +3299,6 @@ static int usb_reset_and_verify_device(struct usb_device *udev)
3311 break; 3299 break;
3312 } 3300 }
3313 clear_bit(port1, parent_hub->busy_bits); 3301 clear_bit(port1, parent_hub->busy_bits);
3314 if (!parent_hdev->parent && !parent_hub->busy_bits[0])
3315 usb_enable_root_hub_irq(parent_hdev->bus);
3316 3302
3317 if (ret < 0) 3303 if (ret < 0)
3318 goto re_enumerate; 3304 goto re_enumerate;
diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c
index c0b1ae25ae2..47111e88f79 100644
--- a/drivers/usb/core/urb.c
+++ b/drivers/usb/core/urb.c
@@ -601,15 +601,20 @@ EXPORT_SYMBOL_GPL(usb_kill_anchored_urbs);
601void usb_unlink_anchored_urbs(struct usb_anchor *anchor) 601void usb_unlink_anchored_urbs(struct usb_anchor *anchor)
602{ 602{
603 struct urb *victim; 603 struct urb *victim;
604 unsigned long flags;
604 605
605 spin_lock_irq(&anchor->lock); 606 spin_lock_irqsave(&anchor->lock, flags);
606 while (!list_empty(&anchor->urb_list)) { 607 while (!list_empty(&anchor->urb_list)) {
607 victim = list_entry(anchor->urb_list.prev, struct urb, 608 victim = list_entry(anchor->urb_list.prev, struct urb,
608 anchor_list); 609 anchor_list);
610 usb_get_urb(victim);
611 spin_unlock_irqrestore(&anchor->lock, flags);
609 /* this will unanchor the URB */ 612 /* this will unanchor the URB */
610 usb_unlink_urb(victim); 613 usb_unlink_urb(victim);
614 usb_put_urb(victim);
615 spin_lock_irqsave(&anchor->lock, flags);
611 } 616 }
612 spin_unlock_irq(&anchor->lock); 617 spin_unlock_irqrestore(&anchor->lock, flags);
613} 618}
614EXPORT_SYMBOL_GPL(usb_unlink_anchored_urbs); 619EXPORT_SYMBOL_GPL(usb_unlink_anchored_urbs);
615 620
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index 84fcaa6a21e..be1fa0723f2 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -219,12 +219,6 @@ static int usb_dev_uevent(struct device *dev, struct kobj_uevent_env *env)
219} 219}
220#endif /* CONFIG_HOTPLUG */ 220#endif /* CONFIG_HOTPLUG */
221 221
222struct device_type usb_device_type = {
223 .name = "usb_device",
224 .release = usb_release_dev,
225 .uevent = usb_dev_uevent,
226};
227
228#ifdef CONFIG_PM 222#ifdef CONFIG_PM
229 223
230static int ksuspend_usb_init(void) 224static int ksuspend_usb_init(void)
@@ -244,13 +238,80 @@ static void ksuspend_usb_cleanup(void)
244 destroy_workqueue(ksuspend_usb_wq); 238 destroy_workqueue(ksuspend_usb_wq);
245} 239}
246 240
241/* USB device Power-Management thunks.
242 * There's no need to distinguish here between quiescing a USB device
243 * and powering it down; the generic_suspend() routine takes care of
244 * it by skipping the usb_port_suspend() call for a quiesce. And for
245 * USB interfaces there's no difference at all.
246 */
247
248static int usb_dev_prepare(struct device *dev)
249{
250 return 0; /* Implement eventually? */
251}
252
253static void usb_dev_complete(struct device *dev)
254{
255 /* Currently used only for rebinding interfaces */
256 usb_resume(dev); /* Implement eventually? */
257}
258
259static int usb_dev_suspend(struct device *dev)
260{
261 return usb_suspend(dev, PMSG_SUSPEND);
262}
263
264static int usb_dev_resume(struct device *dev)
265{
266 return usb_resume(dev);
267}
268
269static int usb_dev_freeze(struct device *dev)
270{
271 return usb_suspend(dev, PMSG_FREEZE);
272}
273
274static int usb_dev_thaw(struct device *dev)
275{
276 return usb_resume(dev);
277}
278
279static int usb_dev_poweroff(struct device *dev)
280{
281 return usb_suspend(dev, PMSG_HIBERNATE);
282}
283
284static int usb_dev_restore(struct device *dev)
285{
286 return usb_resume(dev);
287}
288
289static struct pm_ops usb_device_pm_ops = {
290 .prepare = usb_dev_prepare,
291 .complete = usb_dev_complete,
292 .suspend = usb_dev_suspend,
293 .resume = usb_dev_resume,
294 .freeze = usb_dev_freeze,
295 .thaw = usb_dev_thaw,
296 .poweroff = usb_dev_poweroff,
297 .restore = usb_dev_restore,
298};
299
247#else 300#else
248 301
249#define ksuspend_usb_init() 0 302#define ksuspend_usb_init() 0
250#define ksuspend_usb_cleanup() do {} while (0) 303#define ksuspend_usb_cleanup() do {} while (0)
304#define usb_device_pm_ops (*(struct pm_ops *)0)
251 305
252#endif /* CONFIG_PM */ 306#endif /* CONFIG_PM */
253 307
308struct device_type usb_device_type = {
309 .name = "usb_device",
310 .release = usb_release_dev,
311 .uevent = usb_dev_uevent,
312 .pm = &usb_device_pm_ops,
313};
314
254 315
255/* Returns 1 if @usb_bus is WUSB, 0 otherwise */ 316/* Returns 1 if @usb_bus is WUSB, 0 otherwise */
256static unsigned usb_bus_is_wusb(struct usb_bus *bus) 317static unsigned usb_bus_is_wusb(struct usb_bus *bus)
diff --git a/drivers/usb/core/usb.h b/drivers/usb/core/usb.h
index d9a6e16dbf8..9a1a45ac3ad 100644
--- a/drivers/usb/core/usb.h
+++ b/drivers/usb/core/usb.h
@@ -41,6 +41,9 @@ extern void usb_host_cleanup(void);
41 41
42#ifdef CONFIG_PM 42#ifdef CONFIG_PM
43 43
44extern int usb_suspend(struct device *dev, pm_message_t msg);
45extern int usb_resume(struct device *dev);
46
44extern void usb_autosuspend_work(struct work_struct *work); 47extern void usb_autosuspend_work(struct work_struct *work);
45extern int usb_port_suspend(struct usb_device *dev); 48extern int usb_port_suspend(struct usb_device *dev);
46extern int usb_port_resume(struct usb_device *dev); 49extern int usb_port_resume(struct usb_device *dev);
diff --git a/drivers/usb/gadget/amd5536udc.c b/drivers/usb/gadget/amd5536udc.c
index 1500e1b3c30..abf8192f89e 100644
--- a/drivers/usb/gadget/amd5536udc.c
+++ b/drivers/usb/gadget/amd5536udc.c
@@ -44,7 +44,6 @@
44#include <linux/module.h> 44#include <linux/module.h>
45#include <linux/pci.h> 45#include <linux/pci.h>
46#include <linux/kernel.h> 46#include <linux/kernel.h>
47#include <linux/version.h>
48#include <linux/delay.h> 47#include <linux/delay.h>
49#include <linux/ioport.h> 48#include <linux/ioport.h>
50#include <linux/sched.h> 49#include <linux/sched.h>
diff --git a/drivers/usb/gadget/fsl_usb2_udc.c b/drivers/usb/gadget/fsl_usb2_udc.c
index 1cfccf102a2..45ad556169f 100644
--- a/drivers/usb/gadget/fsl_usb2_udc.c
+++ b/drivers/usb/gadget/fsl_usb2_udc.c
@@ -223,7 +223,7 @@ static int dr_controller_setup(struct fsl_udc *udc)
223 fsl_writel(tmp, &dr_regs->endpointlistaddr); 223 fsl_writel(tmp, &dr_regs->endpointlistaddr);
224 224
225 VDBG("vir[qh_base] is %p phy[qh_base] is 0x%8x reg is 0x%8x", 225 VDBG("vir[qh_base] is %p phy[qh_base] is 0x%8x reg is 0x%8x",
226 (int)udc->ep_qh, (int)tmp, 226 udc->ep_qh, (int)tmp,
227 fsl_readl(&dr_regs->endpointlistaddr)); 227 fsl_readl(&dr_regs->endpointlistaddr));
228 228
229 /* Config PHY interface */ 229 /* Config PHY interface */
diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c
index 574c53831a0..bb54cca4c54 100644
--- a/drivers/usb/gadget/omap_udc.c
+++ b/drivers/usb/gadget/omap_udc.c
@@ -787,7 +787,7 @@ static void dma_channel_claim(struct omap_ep *ep, unsigned channel)
787 omap_set_dma_dest_params(ep->lch, 787 omap_set_dma_dest_params(ep->lch,
788 OMAP_DMA_PORT_TIPB, 788 OMAP_DMA_PORT_TIPB,
789 OMAP_DMA_AMODE_CONSTANT, 789 OMAP_DMA_AMODE_CONSTANT,
790 (unsigned long) io_v2p(UDC_DATA_DMA), 790 UDC_DATA_DMA,
791 0, 0); 791 0, 0);
792 } 792 }
793 } else { 793 } else {
@@ -804,7 +804,7 @@ static void dma_channel_claim(struct omap_ep *ep, unsigned channel)
804 omap_set_dma_src_params(ep->lch, 804 omap_set_dma_src_params(ep->lch,
805 OMAP_DMA_PORT_TIPB, 805 OMAP_DMA_PORT_TIPB,
806 OMAP_DMA_AMODE_CONSTANT, 806 OMAP_DMA_AMODE_CONSTANT,
807 (unsigned long) io_v2p(UDC_DATA_DMA), 807 UDC_DATA_DMA,
808 0, 0); 808 0, 0);
809 /* EMIFF or SDRC */ 809 /* EMIFF or SDRC */
810 omap_set_dma_dest_burst_mode(ep->lch, 810 omap_set_dma_dest_burst_mode(ep->lch,
diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
index a28513ecbe5..7cbc78a6853 100644
--- a/drivers/usb/gadget/pxa27x_udc.c
+++ b/drivers/usb/gadget/pxa27x_udc.c
@@ -1622,7 +1622,7 @@ int usb_gadget_register_driver(struct usb_gadget_driver *driver)
1622 struct pxa_udc *udc = the_controller; 1622 struct pxa_udc *udc = the_controller;
1623 int retval; 1623 int retval;
1624 1624
1625 if (!driver || driver->speed != USB_SPEED_FULL || !driver->bind 1625 if (!driver || driver->speed < USB_SPEED_FULL || !driver->bind
1626 || !driver->disconnect || !driver->setup) 1626 || !driver->disconnect || !driver->setup)
1627 return -EINVAL; 1627 return -EINVAL;
1628 if (!udc) 1628 if (!udc)
diff --git a/drivers/usb/gadget/s3c2410_udc.c b/drivers/usb/gadget/s3c2410_udc.c
index 53880738459..29d13ebe750 100644
--- a/drivers/usb/gadget/s3c2410_udc.c
+++ b/drivers/usb/gadget/s3c2410_udc.c
@@ -35,7 +35,6 @@
35#include <linux/list.h> 35#include <linux/list.h>
36#include <linux/interrupt.h> 36#include <linux/interrupt.h>
37#include <linux/platform_device.h> 37#include <linux/platform_device.h>
38#include <linux/version.h>
39#include <linux/clk.h> 38#include <linux/clk.h>
40 39
41#include <linux/debugfs.h> 40#include <linux/debugfs.h>
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index d9d53f289ca..8409e0705d6 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -145,16 +145,6 @@ static int handshake (struct ehci_hcd *ehci, void __iomem *ptr,
145 return -ETIMEDOUT; 145 return -ETIMEDOUT;
146} 146}
147 147
148static int handshake_on_error_set_halt(struct ehci_hcd *ehci, void __iomem *ptr,
149 u32 mask, u32 done, int usec)
150{
151 int error = handshake(ehci, ptr, mask, done, usec);
152 if (error)
153 ehci_to_hcd(ehci)->state = HC_STATE_HALT;
154
155 return error;
156}
157
158/* force HC to halt state from unknown (EHCI spec section 2.3) */ 148/* force HC to halt state from unknown (EHCI spec section 2.3) */
159static int ehci_halt (struct ehci_hcd *ehci) 149static int ehci_halt (struct ehci_hcd *ehci)
160{ 150{
@@ -173,6 +163,22 @@ static int ehci_halt (struct ehci_hcd *ehci)
173 STS_HALT, STS_HALT, 16 * 125); 163 STS_HALT, STS_HALT, 16 * 125);
174} 164}
175 165
166static int handshake_on_error_set_halt(struct ehci_hcd *ehci, void __iomem *ptr,
167 u32 mask, u32 done, int usec)
168{
169 int error;
170
171 error = handshake(ehci, ptr, mask, done, usec);
172 if (error) {
173 ehci_halt(ehci);
174 ehci_to_hcd(ehci)->state = HC_STATE_HALT;
175 ehci_err(ehci, "force halt; handhake %p %08x %08x -> %d\n",
176 ptr, mask, done, error);
177 }
178
179 return error;
180}
181
176/* put TDI/ARC silicon into EHCI mode */ 182/* put TDI/ARC silicon into EHCI mode */
177static void tdi_reset (struct ehci_hcd *ehci) 183static void tdi_reset (struct ehci_hcd *ehci)
178{ 184{
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index b7853c8bac0..4a0c5a78b2e 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -437,6 +437,9 @@ static int enable_periodic (struct ehci_hcd *ehci)
437 u32 cmd; 437 u32 cmd;
438 int status; 438 int status;
439 439
440 if (ehci->periodic_sched++)
441 return 0;
442
440 /* did clearing PSE did take effect yet? 443 /* did clearing PSE did take effect yet?
441 * takes effect only at frame boundaries... 444 * takes effect only at frame boundaries...
442 */ 445 */
@@ -461,6 +464,9 @@ static int disable_periodic (struct ehci_hcd *ehci)
461 u32 cmd; 464 u32 cmd;
462 int status; 465 int status;
463 466
467 if (--ehci->periodic_sched)
468 return 0;
469
464 /* did setting PSE not take effect yet? 470 /* did setting PSE not take effect yet?
465 * takes effect only at frame boundaries... 471 * takes effect only at frame boundaries...
466 */ 472 */
@@ -544,13 +550,10 @@ static int qh_link_periodic (struct ehci_hcd *ehci, struct ehci_qh *qh)
544 : (qh->usecs * 8); 550 : (qh->usecs * 8);
545 551
546 /* maybe enable periodic schedule processing */ 552 /* maybe enable periodic schedule processing */
547 if (!ehci->periodic_sched++) 553 return enable_periodic(ehci);
548 return enable_periodic (ehci);
549
550 return 0;
551} 554}
552 555
553static void qh_unlink_periodic (struct ehci_hcd *ehci, struct ehci_qh *qh) 556static int qh_unlink_periodic(struct ehci_hcd *ehci, struct ehci_qh *qh)
554{ 557{
555 unsigned i; 558 unsigned i;
556 unsigned period; 559 unsigned period;
@@ -586,9 +589,7 @@ static void qh_unlink_periodic (struct ehci_hcd *ehci, struct ehci_qh *qh)
586 qh_put (qh); 589 qh_put (qh);
587 590
588 /* maybe turn off periodic schedule */ 591 /* maybe turn off periodic schedule */
589 ehci->periodic_sched--; 592 return disable_periodic(ehci);
590 if (!ehci->periodic_sched)
591 (void) disable_periodic (ehci);
592} 593}
593 594
594static void intr_deschedule (struct ehci_hcd *ehci, struct ehci_qh *qh) 595static void intr_deschedule (struct ehci_hcd *ehci, struct ehci_qh *qh)
@@ -1562,9 +1563,7 @@ itd_link_urb (
1562 urb->hcpriv = NULL; 1563 urb->hcpriv = NULL;
1563 1564
1564 timer_action (ehci, TIMER_IO_WATCHDOG); 1565 timer_action (ehci, TIMER_IO_WATCHDOG);
1565 if (unlikely (!ehci->periodic_sched++)) 1566 return enable_periodic(ehci);
1566 return enable_periodic (ehci);
1567 return 0;
1568} 1567}
1569 1568
1570#define ISO_ERRS (EHCI_ISOC_BUF_ERR | EHCI_ISOC_BABBLE | EHCI_ISOC_XACTERR) 1569#define ISO_ERRS (EHCI_ISOC_BUF_ERR | EHCI_ISOC_BABBLE | EHCI_ISOC_XACTERR)
@@ -1642,7 +1641,7 @@ itd_complete (
1642 ehci_urb_done(ehci, urb, 0); 1641 ehci_urb_done(ehci, urb, 0);
1643 retval = true; 1642 retval = true;
1644 urb = NULL; 1643 urb = NULL;
1645 ehci->periodic_sched--; 1644 (void) disable_periodic(ehci);
1646 ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--; 1645 ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--;
1647 1646
1648 if (unlikely (list_empty (&stream->td_list))) { 1647 if (unlikely (list_empty (&stream->td_list))) {
@@ -1951,9 +1950,7 @@ sitd_link_urb (
1951 urb->hcpriv = NULL; 1950 urb->hcpriv = NULL;
1952 1951
1953 timer_action (ehci, TIMER_IO_WATCHDOG); 1952 timer_action (ehci, TIMER_IO_WATCHDOG);
1954 if (!ehci->periodic_sched++) 1953 return enable_periodic(ehci);
1955 return enable_periodic (ehci);
1956 return 0;
1957} 1954}
1958 1955
1959/*-------------------------------------------------------------------------*/ 1956/*-------------------------------------------------------------------------*/
@@ -2019,7 +2016,7 @@ sitd_complete (
2019 ehci_urb_done(ehci, urb, 0); 2016 ehci_urb_done(ehci, urb, 0);
2020 retval = true; 2017 retval = true;
2021 urb = NULL; 2018 urb = NULL;
2022 ehci->periodic_sched--; 2019 (void) disable_periodic(ehci);
2023 ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--; 2020 ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--;
2024 2021
2025 if (list_empty (&stream->td_list)) { 2022 if (list_empty (&stream->td_list)) {
@@ -2243,8 +2240,7 @@ restart:
2243 if (unlikely (modified)) { 2240 if (unlikely (modified)) {
2244 if (likely(ehci->periodic_sched > 0)) 2241 if (likely(ehci->periodic_sched > 0))
2245 goto restart; 2242 goto restart;
2246 /* maybe we can short-circuit this scan! */ 2243 /* short-circuit this scan */
2247 disable_periodic(ehci);
2248 now_uframe = clock; 2244 now_uframe = clock;
2249 break; 2245 break;
2250 } 2246 }
diff --git a/drivers/usb/host/isp1760-hcd.c b/drivers/usb/host/isp1760-hcd.c
index d22a84f86a3..8017f1cf78e 100644
--- a/drivers/usb/host/isp1760-hcd.c
+++ b/drivers/usb/host/isp1760-hcd.c
@@ -988,7 +988,7 @@ static void do_atl_int(struct usb_hcd *usb_hcd)
988 /* 988 /*
989 * write bank1 address twice to ensure the 90ns delay (time 989 * write bank1 address twice to ensure the 90ns delay (time
990 * between BANK0 write and the priv_read_copy() call is at 990 * between BANK0 write and the priv_read_copy() call is at
991 * least 3*t_WHWL + 2*t_w11 = 3*25ns + 2*17ns = 92ns) 991 * least 3*t_WHWL + 2*t_w11 = 3*25ns + 2*17ns = 109ns)
992 */ 992 */
993 isp1760_writel(payload + ISP_BANK(1), usb_hcd->regs + 993 isp1760_writel(payload + ISP_BANK(1), usb_hcd->regs +
994 HC_MEMORY_REG); 994 HC_MEMORY_REG);
diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c
index 6db7a2889e6..4ed228a8994 100644
--- a/drivers/usb/host/ohci-at91.c
+++ b/drivers/usb/host/ohci-at91.c
@@ -260,7 +260,6 @@ static const struct hc_driver ohci_at91_hc_driver = {
260 */ 260 */
261 .hub_status_data = ohci_hub_status_data, 261 .hub_status_data = ohci_hub_status_data,
262 .hub_control = ohci_hub_control, 262 .hub_control = ohci_hub_control,
263 .hub_irq_enable = ohci_rhsc_enable,
264#ifdef CONFIG_PM 263#ifdef CONFIG_PM
265 .bus_suspend = ohci_bus_suspend, 264 .bus_suspend = ohci_bus_suspend,
266 .bus_resume = ohci_bus_resume, 265 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-au1xxx.c b/drivers/usb/host/ohci-au1xxx.c
index c0948008fe3..2ac4e022a13 100644
--- a/drivers/usb/host/ohci-au1xxx.c
+++ b/drivers/usb/host/ohci-au1xxx.c
@@ -163,7 +163,6 @@ static const struct hc_driver ohci_au1xxx_hc_driver = {
163 */ 163 */
164 .hub_status_data = ohci_hub_status_data, 164 .hub_status_data = ohci_hub_status_data,
165 .hub_control = ohci_hub_control, 165 .hub_control = ohci_hub_control,
166 .hub_irq_enable = ohci_rhsc_enable,
167#ifdef CONFIG_PM 166#ifdef CONFIG_PM
168 .bus_suspend = ohci_bus_suspend, 167 .bus_suspend = ohci_bus_suspend,
169 .bus_resume = ohci_bus_resume, 168 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-ep93xx.c b/drivers/usb/host/ohci-ep93xx.c
index cb0b506f825..fb3055f084b 100644
--- a/drivers/usb/host/ohci-ep93xx.c
+++ b/drivers/usb/host/ohci-ep93xx.c
@@ -134,7 +134,6 @@ static struct hc_driver ohci_ep93xx_hc_driver = {
134 .get_frame_number = ohci_get_frame, 134 .get_frame_number = ohci_get_frame,
135 .hub_status_data = ohci_hub_status_data, 135 .hub_status_data = ohci_hub_status_data,
136 .hub_control = ohci_hub_control, 136 .hub_control = ohci_hub_control,
137 .hub_irq_enable = ohci_rhsc_enable,
138#ifdef CONFIG_PM 137#ifdef CONFIG_PM
139 .bus_suspend = ohci_bus_suspend, 138 .bus_suspend = ohci_bus_suspend,
140 .bus_resume = ohci_bus_resume, 139 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-hub.c b/drivers/usb/host/ohci-hub.c
index 439beb784f3..7ea9a7b3115 100644
--- a/drivers/usb/host/ohci-hub.c
+++ b/drivers/usb/host/ohci-hub.c
@@ -36,18 +36,6 @@
36 36
37/*-------------------------------------------------------------------------*/ 37/*-------------------------------------------------------------------------*/
38 38
39/* hcd->hub_irq_enable() */
40static void ohci_rhsc_enable (struct usb_hcd *hcd)
41{
42 struct ohci_hcd *ohci = hcd_to_ohci (hcd);
43
44 spin_lock_irq(&ohci->lock);
45 if (!ohci->autostop)
46 del_timer(&hcd->rh_timer); /* Prevent next poll */
47 ohci_writel(ohci, OHCI_INTR_RHSC, &ohci->regs->intrenable);
48 spin_unlock_irq(&ohci->lock);
49}
50
51#define OHCI_SCHED_ENABLES \ 39#define OHCI_SCHED_ENABLES \
52 (OHCI_CTRL_CLE|OHCI_CTRL_BLE|OHCI_CTRL_PLE|OHCI_CTRL_IE) 40 (OHCI_CTRL_CLE|OHCI_CTRL_BLE|OHCI_CTRL_PLE|OHCI_CTRL_IE)
53 41
@@ -374,18 +362,28 @@ static int ohci_root_hub_state_changes(struct ohci_hcd *ohci, int changed,
374 int any_connected) 362 int any_connected)
375{ 363{
376 int poll_rh = 1; 364 int poll_rh = 1;
365 int rhsc;
377 366
367 rhsc = ohci_readl(ohci, &ohci->regs->intrenable) & OHCI_INTR_RHSC;
378 switch (ohci->hc_control & OHCI_CTRL_HCFS) { 368 switch (ohci->hc_control & OHCI_CTRL_HCFS) {
379 369
380 case OHCI_USB_OPER: 370 case OHCI_USB_OPER:
381 /* keep on polling until we know a device is connected 371 /* If no status changes are pending, enable status-change
382 * and RHSC is enabled */ 372 * interrupts.
373 */
374 if (!rhsc && !changed) {
375 rhsc = OHCI_INTR_RHSC;
376 ohci_writel(ohci, rhsc, &ohci->regs->intrenable);
377 }
378
379 /* Keep on polling until we know a device is connected
380 * and RHSC is enabled, or until we autostop.
381 */
383 if (!ohci->autostop) { 382 if (!ohci->autostop) {
384 if (any_connected || 383 if (any_connected ||
385 !device_may_wakeup(&ohci_to_hcd(ohci) 384 !device_may_wakeup(&ohci_to_hcd(ohci)
386 ->self.root_hub->dev)) { 385 ->self.root_hub->dev)) {
387 if (ohci_readl(ohci, &ohci->regs->intrenable) & 386 if (rhsc)
388 OHCI_INTR_RHSC)
389 poll_rh = 0; 387 poll_rh = 0;
390 } else { 388 } else {
391 ohci->autostop = 1; 389 ohci->autostop = 1;
@@ -398,12 +396,13 @@ static int ohci_root_hub_state_changes(struct ohci_hcd *ohci, int changed,
398 ohci->autostop = 0; 396 ohci->autostop = 0;
399 ohci->next_statechange = jiffies + 397 ohci->next_statechange = jiffies +
400 STATECHANGE_DELAY; 398 STATECHANGE_DELAY;
401 } else if (time_after_eq(jiffies, 399 } else if (rhsc && time_after_eq(jiffies,
402 ohci->next_statechange) 400 ohci->next_statechange)
403 && !ohci->ed_rm_list 401 && !ohci->ed_rm_list
404 && !(ohci->hc_control & 402 && !(ohci->hc_control &
405 OHCI_SCHED_ENABLES)) { 403 OHCI_SCHED_ENABLES)) {
406 ohci_rh_suspend(ohci, 1); 404 ohci_rh_suspend(ohci, 1);
405 poll_rh = 0;
407 } 406 }
408 } 407 }
409 break; 408 break;
@@ -417,6 +416,12 @@ static int ohci_root_hub_state_changes(struct ohci_hcd *ohci, int changed,
417 else 416 else
418 usb_hcd_resume_root_hub(ohci_to_hcd(ohci)); 417 usb_hcd_resume_root_hub(ohci_to_hcd(ohci));
419 } else { 418 } else {
419 if (!rhsc && (ohci->autostop ||
420 ohci_to_hcd(ohci)->self.root_hub->
421 do_remote_wakeup))
422 ohci_writel(ohci, OHCI_INTR_RHSC,
423 &ohci->regs->intrenable);
424
420 /* everything is idle, no need for polling */ 425 /* everything is idle, no need for polling */
421 poll_rh = 0; 426 poll_rh = 0;
422 } 427 }
@@ -438,12 +443,16 @@ static inline int ohci_rh_resume(struct ohci_hcd *ohci)
438static int ohci_root_hub_state_changes(struct ohci_hcd *ohci, int changed, 443static int ohci_root_hub_state_changes(struct ohci_hcd *ohci, int changed,
439 int any_connected) 444 int any_connected)
440{ 445{
441 int poll_rh = 1; 446 /* If RHSC is enabled, don't poll */
442
443 /* keep on polling until RHSC is enabled */
444 if (ohci_readl(ohci, &ohci->regs->intrenable) & OHCI_INTR_RHSC) 447 if (ohci_readl(ohci, &ohci->regs->intrenable) & OHCI_INTR_RHSC)
445 poll_rh = 0; 448 return 0;
446 return poll_rh; 449
450 /* If no status changes are pending, enable status-change interrupts */
451 if (!changed) {
452 ohci_writel(ohci, OHCI_INTR_RHSC, &ohci->regs->intrenable);
453 return 0;
454 }
455 return 1;
447} 456}
448 457
449#endif /* CONFIG_PM */ 458#endif /* CONFIG_PM */
diff --git a/drivers/usb/host/ohci-lh7a404.c b/drivers/usb/host/ohci-lh7a404.c
index 9e31d440d11..de42283149c 100644
--- a/drivers/usb/host/ohci-lh7a404.c
+++ b/drivers/usb/host/ohci-lh7a404.c
@@ -193,7 +193,6 @@ static const struct hc_driver ohci_lh7a404_hc_driver = {
193 */ 193 */
194 .hub_status_data = ohci_hub_status_data, 194 .hub_status_data = ohci_hub_status_data,
195 .hub_control = ohci_hub_control, 195 .hub_control = ohci_hub_control,
196 .hub_irq_enable = ohci_rhsc_enable,
197#ifdef CONFIG_PM 196#ifdef CONFIG_PM
198 .bus_suspend = ohci_bus_suspend, 197 .bus_suspend = ohci_bus_suspend,
199 .bus_resume = ohci_bus_resume, 198 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-omap.c b/drivers/usb/host/ohci-omap.c
index 3d532b70967..95b3ec89c12 100644
--- a/drivers/usb/host/ohci-omap.c
+++ b/drivers/usb/host/ohci-omap.c
@@ -208,7 +208,7 @@ static int ohci_omap_init(struct usb_hcd *hcd)
208 if (cpu_is_omap16xx()) 208 if (cpu_is_omap16xx())
209 ocpi_enable(); 209 ocpi_enable();
210 210
211#ifdef CONFIG_ARCH_OMAP_OTG 211#ifdef CONFIG_USB_OTG
212 if (need_transceiver) { 212 if (need_transceiver) {
213 ohci->transceiver = otg_get_transceiver(); 213 ohci->transceiver = otg_get_transceiver();
214 if (ohci->transceiver) { 214 if (ohci->transceiver) {
@@ -470,7 +470,6 @@ static const struct hc_driver ohci_omap_hc_driver = {
470 */ 470 */
471 .hub_status_data = ohci_hub_status_data, 471 .hub_status_data = ohci_hub_status_data,
472 .hub_control = ohci_hub_control, 472 .hub_control = ohci_hub_control,
473 .hub_irq_enable = ohci_rhsc_enable,
474#ifdef CONFIG_PM 473#ifdef CONFIG_PM
475 .bus_suspend = ohci_bus_suspend, 474 .bus_suspend = ohci_bus_suspend,
476 .bus_resume = ohci_bus_resume, 475 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-pci.c b/drivers/usb/host/ohci-pci.c
index 083e8df0a81..a9c2ae36c7a 100644
--- a/drivers/usb/host/ohci-pci.c
+++ b/drivers/usb/host/ohci-pci.c
@@ -459,7 +459,6 @@ static const struct hc_driver ohci_pci_hc_driver = {
459 */ 459 */
460 .hub_status_data = ohci_hub_status_data, 460 .hub_status_data = ohci_hub_status_data,
461 .hub_control = ohci_hub_control, 461 .hub_control = ohci_hub_control,
462 .hub_irq_enable = ohci_rhsc_enable,
463#ifdef CONFIG_PM 462#ifdef CONFIG_PM
464 .bus_suspend = ohci_bus_suspend, 463 .bus_suspend = ohci_bus_suspend,
465 .bus_resume = ohci_bus_resume, 464 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-pnx4008.c b/drivers/usb/host/ohci-pnx4008.c
index b02cd076197..658a2a978c3 100644
--- a/drivers/usb/host/ohci-pnx4008.c
+++ b/drivers/usb/host/ohci-pnx4008.c
@@ -277,7 +277,6 @@ static const struct hc_driver ohci_pnx4008_hc_driver = {
277 */ 277 */
278 .hub_status_data = ohci_hub_status_data, 278 .hub_status_data = ohci_hub_status_data,
279 .hub_control = ohci_hub_control, 279 .hub_control = ohci_hub_control,
280 .hub_irq_enable = ohci_rhsc_enable,
281#ifdef CONFIG_PM 280#ifdef CONFIG_PM
282 .bus_suspend = ohci_bus_suspend, 281 .bus_suspend = ohci_bus_suspend,
283 .bus_resume = ohci_bus_resume, 282 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-pnx8550.c b/drivers/usb/host/ohci-pnx8550.c
index 605d59cba28..28467e288a9 100644
--- a/drivers/usb/host/ohci-pnx8550.c
+++ b/drivers/usb/host/ohci-pnx8550.c
@@ -201,7 +201,6 @@ static const struct hc_driver ohci_pnx8550_hc_driver = {
201 */ 201 */
202 .hub_status_data = ohci_hub_status_data, 202 .hub_status_data = ohci_hub_status_data,
203 .hub_control = ohci_hub_control, 203 .hub_control = ohci_hub_control,
204 .hub_irq_enable = ohci_rhsc_enable,
205#ifdef CONFIG_PM 204#ifdef CONFIG_PM
206 .bus_suspend = ohci_bus_suspend, 205 .bus_suspend = ohci_bus_suspend,
207 .bus_resume = ohci_bus_resume, 206 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-ppc-of.c b/drivers/usb/host/ohci-ppc-of.c
index 91e6e101a4c..7ac53264ead 100644
--- a/drivers/usb/host/ohci-ppc-of.c
+++ b/drivers/usb/host/ohci-ppc-of.c
@@ -72,7 +72,6 @@ static const struct hc_driver ohci_ppc_of_hc_driver = {
72 */ 72 */
73 .hub_status_data = ohci_hub_status_data, 73 .hub_status_data = ohci_hub_status_data,
74 .hub_control = ohci_hub_control, 74 .hub_control = ohci_hub_control,
75 .hub_irq_enable = ohci_rhsc_enable,
76#ifdef CONFIG_PM 75#ifdef CONFIG_PM
77 .bus_suspend = ohci_bus_suspend, 76 .bus_suspend = ohci_bus_suspend,
78 .bus_resume = ohci_bus_resume, 77 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-ppc-soc.c b/drivers/usb/host/ohci-ppc-soc.c
index 523c3012557..cd3398b675b 100644
--- a/drivers/usb/host/ohci-ppc-soc.c
+++ b/drivers/usb/host/ohci-ppc-soc.c
@@ -172,7 +172,6 @@ static const struct hc_driver ohci_ppc_soc_hc_driver = {
172 */ 172 */
173 .hub_status_data = ohci_hub_status_data, 173 .hub_status_data = ohci_hub_status_data,
174 .hub_control = ohci_hub_control, 174 .hub_control = ohci_hub_control,
175 .hub_irq_enable = ohci_rhsc_enable,
176#ifdef CONFIG_PM 175#ifdef CONFIG_PM
177 .bus_suspend = ohci_bus_suspend, 176 .bus_suspend = ohci_bus_suspend,
178 .bus_resume = ohci_bus_resume, 177 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-ps3.c b/drivers/usb/host/ohci-ps3.c
index 55c95647f00..2089d8a46c4 100644
--- a/drivers/usb/host/ohci-ps3.c
+++ b/drivers/usb/host/ohci-ps3.c
@@ -68,7 +68,6 @@ static const struct hc_driver ps3_ohci_hc_driver = {
68 .get_frame_number = ohci_get_frame, 68 .get_frame_number = ohci_get_frame,
69 .hub_status_data = ohci_hub_status_data, 69 .hub_status_data = ohci_hub_status_data,
70 .hub_control = ohci_hub_control, 70 .hub_control = ohci_hub_control,
71 .hub_irq_enable = ohci_rhsc_enable,
72 .start_port_reset = ohci_start_port_reset, 71 .start_port_reset = ohci_start_port_reset,
73#if defined(CONFIG_PM) 72#if defined(CONFIG_PM)
74 .bus_suspend = ohci_bus_suspend, 73 .bus_suspend = ohci_bus_suspend,
diff --git a/drivers/usb/host/ohci-pxa27x.c b/drivers/usb/host/ohci-pxa27x.c
index 8c9c4849db6..7f0f35c7818 100644
--- a/drivers/usb/host/ohci-pxa27x.c
+++ b/drivers/usb/host/ohci-pxa27x.c
@@ -298,7 +298,6 @@ static const struct hc_driver ohci_pxa27x_hc_driver = {
298 */ 298 */
299 .hub_status_data = ohci_hub_status_data, 299 .hub_status_data = ohci_hub_status_data,
300 .hub_control = ohci_hub_control, 300 .hub_control = ohci_hub_control,
301 .hub_irq_enable = ohci_rhsc_enable,
302#ifdef CONFIG_PM 301#ifdef CONFIG_PM
303 .bus_suspend = ohci_bus_suspend, 302 .bus_suspend = ohci_bus_suspend,
304 .bus_resume = ohci_bus_resume, 303 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-s3c2410.c b/drivers/usb/host/ohci-s3c2410.c
index 9e3dc4069e8..f46af7a718d 100644
--- a/drivers/usb/host/ohci-s3c2410.c
+++ b/drivers/usb/host/ohci-s3c2410.c
@@ -466,7 +466,6 @@ static const struct hc_driver ohci_s3c2410_hc_driver = {
466 */ 466 */
467 .hub_status_data = ohci_s3c2410_hub_status_data, 467 .hub_status_data = ohci_s3c2410_hub_status_data,
468 .hub_control = ohci_s3c2410_hub_control, 468 .hub_control = ohci_s3c2410_hub_control,
469 .hub_irq_enable = ohci_rhsc_enable,
470#ifdef CONFIG_PM 469#ifdef CONFIG_PM
471 .bus_suspend = ohci_bus_suspend, 470 .bus_suspend = ohci_bus_suspend,
472 .bus_resume = ohci_bus_resume, 471 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-sa1111.c b/drivers/usb/host/ohci-sa1111.c
index 4626b002e67..e4bbe8e188e 100644
--- a/drivers/usb/host/ohci-sa1111.c
+++ b/drivers/usb/host/ohci-sa1111.c
@@ -231,7 +231,6 @@ static const struct hc_driver ohci_sa1111_hc_driver = {
231 */ 231 */
232 .hub_status_data = ohci_hub_status_data, 232 .hub_status_data = ohci_hub_status_data,
233 .hub_control = ohci_hub_control, 233 .hub_control = ohci_hub_control,
234 .hub_irq_enable = ohci_rhsc_enable,
235#ifdef CONFIG_PM 234#ifdef CONFIG_PM
236 .bus_suspend = ohci_bus_suspend, 235 .bus_suspend = ohci_bus_suspend,
237 .bus_resume = ohci_bus_resume, 236 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-sh.c b/drivers/usb/host/ohci-sh.c
index e7ee607278f..60f03cc7ec4 100644
--- a/drivers/usb/host/ohci-sh.c
+++ b/drivers/usb/host/ohci-sh.c
@@ -68,7 +68,6 @@ static const struct hc_driver ohci_sh_hc_driver = {
68 */ 68 */
69 .hub_status_data = ohci_hub_status_data, 69 .hub_status_data = ohci_hub_status_data,
70 .hub_control = ohci_hub_control, 70 .hub_control = ohci_hub_control,
71 .hub_irq_enable = ohci_rhsc_enable,
72#ifdef CONFIG_PM 71#ifdef CONFIG_PM
73 .bus_suspend = ohci_bus_suspend, 72 .bus_suspend = ohci_bus_suspend,
74 .bus_resume = ohci_bus_resume, 73 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-sm501.c b/drivers/usb/host/ohci-sm501.c
index 21b164e4abe..cff23637cfc 100644
--- a/drivers/usb/host/ohci-sm501.c
+++ b/drivers/usb/host/ohci-sm501.c
@@ -75,7 +75,6 @@ static const struct hc_driver ohci_sm501_hc_driver = {
75 */ 75 */
76 .hub_status_data = ohci_hub_status_data, 76 .hub_status_data = ohci_hub_status_data,
77 .hub_control = ohci_hub_control, 77 .hub_control = ohci_hub_control,
78 .hub_irq_enable = ohci_rhsc_enable,
79#ifdef CONFIG_PM 78#ifdef CONFIG_PM
80 .bus_suspend = ohci_bus_suspend, 79 .bus_suspend = ohci_bus_suspend,
81 .bus_resume = ohci_bus_resume, 80 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/ohci-ssb.c b/drivers/usb/host/ohci-ssb.c
index 3660c83d80a..23fd6a886bd 100644
--- a/drivers/usb/host/ohci-ssb.c
+++ b/drivers/usb/host/ohci-ssb.c
@@ -81,7 +81,6 @@ static const struct hc_driver ssb_ohci_hc_driver = {
81 81
82 .hub_status_data = ohci_hub_status_data, 82 .hub_status_data = ohci_hub_status_data,
83 .hub_control = ohci_hub_control, 83 .hub_control = ohci_hub_control,
84 .hub_irq_enable = ohci_rhsc_enable,
85#ifdef CONFIG_PM 84#ifdef CONFIG_PM
86 .bus_suspend = ohci_bus_suspend, 85 .bus_suspend = ohci_bus_suspend,
87 .bus_resume = ohci_bus_resume, 86 .bus_resume = ohci_bus_resume,
diff --git a/drivers/usb/host/u132-hcd.c b/drivers/usb/host/u132-hcd.c
index 20ad3c48fcb..228f2b070f2 100644
--- a/drivers/usb/host/u132-hcd.c
+++ b/drivers/usb/host/u132-hcd.c
@@ -2934,16 +2934,6 @@ static int u132_start_port_reset(struct usb_hcd *hcd, unsigned port_num)
2934 return 0; 2934 return 0;
2935} 2935}
2936 2936
2937static void u132_hub_irq_enable(struct usb_hcd *hcd)
2938{
2939 struct u132 *u132 = hcd_to_u132(hcd);
2940 if (u132->going > 1) {
2941 dev_err(&u132->platform_dev->dev, "device has been removed %d\n"
2942 , u132->going);
2943 } else if (u132->going > 0)
2944 dev_err(&u132->platform_dev->dev, "device is being removed\n");
2945}
2946
2947 2937
2948#ifdef CONFIG_PM 2938#ifdef CONFIG_PM
2949static int u132_bus_suspend(struct usb_hcd *hcd) 2939static int u132_bus_suspend(struct usb_hcd *hcd)
@@ -2995,7 +2985,6 @@ static struct hc_driver u132_hc_driver = {
2995 .bus_suspend = u132_bus_suspend, 2985 .bus_suspend = u132_bus_suspend,
2996 .bus_resume = u132_bus_resume, 2986 .bus_resume = u132_bus_resume,
2997 .start_port_reset = u132_start_port_reset, 2987 .start_port_reset = u132_start_port_reset,
2998 .hub_irq_enable = u132_hub_irq_enable,
2999}; 2988};
3000 2989
3001/* 2990/*
diff --git a/drivers/usb/misc/iowarrior.c b/drivers/usb/misc/iowarrior.c
index e6ca9979e3a..a4ef77ef917 100644
--- a/drivers/usb/misc/iowarrior.c
+++ b/drivers/usb/misc/iowarrior.c
@@ -19,7 +19,6 @@
19#include <linux/slab.h> 19#include <linux/slab.h>
20#include <linux/sched.h> 20#include <linux/sched.h>
21#include <linux/poll.h> 21#include <linux/poll.h>
22#include <linux/version.h>
23#include <linux/usb/iowarrior.h> 22#include <linux/usb/iowarrior.h>
24 23
25/* Version Information */ 24/* Version Information */
diff --git a/drivers/usb/misc/sisusbvga/sisusb.c b/drivers/usb/misc/sisusbvga/sisusb.c
index fbace41a7cb..69c34a58e20 100644
--- a/drivers/usb/misc/sisusbvga/sisusb.c
+++ b/drivers/usb/misc/sisusbvga/sisusb.c
@@ -3270,6 +3270,7 @@ static struct usb_device_id sisusb_table [] = {
3270 { USB_DEVICE(0x0711, 0x0900) }, 3270 { USB_DEVICE(0x0711, 0x0900) },
3271 { USB_DEVICE(0x0711, 0x0901) }, 3271 { USB_DEVICE(0x0711, 0x0901) },
3272 { USB_DEVICE(0x0711, 0x0902) }, 3272 { USB_DEVICE(0x0711, 0x0902) },
3273 { USB_DEVICE(0x0711, 0x0918) },
3273 { USB_DEVICE(0x182d, 0x021c) }, 3274 { USB_DEVICE(0x182d, 0x021c) },
3274 { USB_DEVICE(0x182d, 0x0269) }, 3275 { USB_DEVICE(0x182d, 0x0269) },
3275 { } 3276 { }
diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
index faca4333f27..58b2b8fc943 100644
--- a/drivers/usb/musb/Kconfig
+++ b/drivers/usb/musb/Kconfig
@@ -9,6 +9,7 @@ comment "Enable Host or Gadget support to see Inventra options"
9# (M)HDRC = (Multipoint) Highspeed Dual-Role Controller 9# (M)HDRC = (Multipoint) Highspeed Dual-Role Controller
10config USB_MUSB_HDRC 10config USB_MUSB_HDRC
11 depends on (USB || USB_GADGET) && HAVE_CLK 11 depends on (USB || USB_GADGET) && HAVE_CLK
12 depends on !SUPERH
12 select TWL4030_USB if MACH_OMAP_3430SDP 13 select TWL4030_USB if MACH_OMAP_3430SDP
13 tristate 'Inventra Highspeed Dual Role Controller (TI, ...)' 14 tristate 'Inventra Highspeed Dual Role Controller (TI, ...)'
14 help 15 help
@@ -165,12 +166,11 @@ config USB_TUSB_OMAP_DMA
165 help 166 help
166 Enable DMA transfers on TUSB 6010 when OMAP DMA is available. 167 Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
167 168
168config USB_MUSB_LOGLEVEL 169config USB_MUSB_DEBUG
169 depends on USB_MUSB_HDRC 170 depends on USB_MUSB_HDRC
170 int 'Logging Level (0 - none / 3 - annoying / ... )' 171 bool "Enable debugging messages"
171 default 0 172 default n
172 help 173 help
173 Set the logging level. 0 disables the debugging altogether, 174 This enables musb debugging. To set the logging level use the debug
174 although when USB_DEBUG is set the value is at least 1. 175 module parameter. Starting at level 3, per-transfer (urb, usb_request,
175 Starting at level 3, per-transfer (urb, usb_request, packet, 176 packet, or dma transfer) tracing may kick in.
176 or dma transfer) tracing may kick in.
diff --git a/drivers/usb/musb/Makefile b/drivers/usb/musb/Makefile
index 88eb67de08a..b6af0d687a7 100644
--- a/drivers/usb/musb/Makefile
+++ b/drivers/usb/musb/Makefile
@@ -64,23 +64,6 @@ endif
64 64
65# Debugging 65# Debugging
66 66
67MUSB_DEBUG:=$(CONFIG_USB_MUSB_LOGLEVEL) 67ifeq ($(CONFIG_USB_MUSB_DEBUG),y)
68 68 EXTRA_CFLAGS += -DDEBUG
69ifeq ("$(strip $(MUSB_DEBUG))","")
70 ifdef CONFIG_USB_DEBUG
71 MUSB_DEBUG:=1
72 else
73 MUSB_DEBUG:=0
74 endif
75endif 69endif
76
77ifneq ($(MUSB_DEBUG),0)
78 EXTRA_CFLAGS += -DDEBUG
79
80 ifeq ($(CONFIG_PROC_FS),y)
81 musb_hdrc-objs += musb_procfs.o
82 endif
83
84endif
85
86EXTRA_CFLAGS += -DMUSB_DEBUG=$(MUSB_DEBUG)
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index d68ec6daf33..128e949db47 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -100,8 +100,8 @@
100#include <linux/io.h> 100#include <linux/io.h>
101 101
102#ifdef CONFIG_ARM 102#ifdef CONFIG_ARM
103#include <asm/arch/hardware.h> 103#include <mach/hardware.h>
104#include <asm/arch/memory.h> 104#include <mach/memory.h>
105#include <asm/mach-types.h> 105#include <asm/mach-types.h>
106#endif 106#endif
107 107
@@ -114,23 +114,14 @@
114 114
115 115
116 116
117#if MUSB_DEBUG > 0 117unsigned debug;
118unsigned debug = MUSB_DEBUG; 118module_param(debug, uint, S_IRUGO | S_IWUSR);
119module_param(debug, uint, 0); 119MODULE_PARM_DESC(debug, "Debug message level. Default = 0");
120MODULE_PARM_DESC(debug, "initial debug message level");
121
122#define MUSB_VERSION_SUFFIX "/dbg"
123#endif
124 120
125#define DRIVER_AUTHOR "Mentor Graphics, Texas Instruments, Nokia" 121#define DRIVER_AUTHOR "Mentor Graphics, Texas Instruments, Nokia"
126#define DRIVER_DESC "Inventra Dual-Role USB Controller Driver" 122#define DRIVER_DESC "Inventra Dual-Role USB Controller Driver"
127 123
128#define MUSB_VERSION_BASE "6.0" 124#define MUSB_VERSION "6.0"
129
130#ifndef MUSB_VERSION_SUFFIX
131#define MUSB_VERSION_SUFFIX ""
132#endif
133#define MUSB_VERSION MUSB_VERSION_BASE MUSB_VERSION_SUFFIX
134 125
135#define DRIVER_INFO DRIVER_DESC ", v" MUSB_VERSION 126#define DRIVER_INFO DRIVER_DESC ", v" MUSB_VERSION
136 127
@@ -2037,6 +2028,8 @@ bad_config:
2037 musb->xceiv.state = OTG_STATE_A_IDLE; 2028 musb->xceiv.state = OTG_STATE_A_IDLE;
2038 2029
2039 status = usb_add_hcd(musb_to_hcd(musb), -1, 0); 2030 status = usb_add_hcd(musb_to_hcd(musb), -1, 0);
2031 if (status)
2032 goto fail;
2040 2033
2041 DBG(1, "%s mode, status %d, devctl %02x %c\n", 2034 DBG(1, "%s mode, status %d, devctl %02x %c\n",
2042 "HOST", status, 2035 "HOST", status,
@@ -2051,6 +2044,8 @@ bad_config:
2051 musb->xceiv.state = OTG_STATE_B_IDLE; 2044 musb->xceiv.state = OTG_STATE_B_IDLE;
2052 2045
2053 status = musb_gadget_setup(musb); 2046 status = musb_gadget_setup(musb);
2047 if (status)
2048 goto fail;
2054 2049
2055 DBG(1, "%s mode, status %d, dev%02x\n", 2050 DBG(1, "%s mode, status %d, dev%02x\n",
2056 is_otg_enabled(musb) ? "OTG" : "PERIPHERAL", 2051 is_otg_enabled(musb) ? "OTG" : "PERIPHERAL",
@@ -2059,16 +2054,14 @@ bad_config:
2059 2054
2060 } 2055 }
2061 2056
2062 if (status == 0) 2057 return 0;
2063 musb_debug_create("driver/musb_hdrc", musb); 2058
2064 else {
2065fail: 2059fail:
2066 if (musb->clock) 2060 if (musb->clock)
2067 clk_put(musb->clock); 2061 clk_put(musb->clock);
2068 device_init_wakeup(dev, 0); 2062 device_init_wakeup(dev, 0);
2069 musb_free(musb); 2063 musb_free(musb);
2070 return status; 2064 return status;
2071 }
2072 2065
2073#ifdef CONFIG_SYSFS 2066#ifdef CONFIG_SYSFS
2074 status = device_create_file(dev, &dev_attr_mode); 2067 status = device_create_file(dev, &dev_attr_mode);
@@ -2131,7 +2124,6 @@ static int __devexit musb_remove(struct platform_device *pdev)
2131 * - OTG mode: both roles are deactivated (or never-activated) 2124 * - OTG mode: both roles are deactivated (or never-activated)
2132 */ 2125 */
2133 musb_shutdown(pdev); 2126 musb_shutdown(pdev);
2134 musb_debug_delete("driver/musb_hdrc", musb);
2135#ifdef CONFIG_USB_MUSB_HDRC_HCD 2127#ifdef CONFIG_USB_MUSB_HDRC_HCD
2136 if (musb->board_mode == MUSB_HOST) 2128 if (musb->board_mode == MUSB_HOST)
2137 usb_remove_hcd(musb_to_hcd(musb)); 2129 usb_remove_hcd(musb_to_hcd(musb));
diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h
index eade46d8170..82227251931 100644
--- a/drivers/usb/musb/musb_core.h
+++ b/drivers/usb/musb/musb_core.h
@@ -485,23 +485,4 @@ extern int musb_platform_get_vbus_status(struct musb *musb);
485extern int __init musb_platform_init(struct musb *musb); 485extern int __init musb_platform_init(struct musb *musb);
486extern int musb_platform_exit(struct musb *musb); 486extern int musb_platform_exit(struct musb *musb);
487 487
488/*-------------------------- ProcFS definitions ---------------------*/
489
490struct proc_dir_entry;
491
492#if (MUSB_DEBUG > 0) && defined(MUSB_CONFIG_PROC_FS)
493extern struct proc_dir_entry *musb_debug_create(char *name, struct musb *data);
494extern void musb_debug_delete(char *name, struct musb *data);
495
496#else
497static inline struct proc_dir_entry *
498musb_debug_create(char *name, struct musb *data)
499{
500 return NULL;
501}
502static inline void musb_debug_delete(char *name, struct musb *data)
503{
504}
505#endif
506
507#endif /* __MUSB_CORE_H__ */ 488#endif /* __MUSB_CORE_H__ */
diff --git a/drivers/usb/musb/musb_debug.h b/drivers/usb/musb/musb_debug.h
index 3bdb311e820..4d2794441b1 100644
--- a/drivers/usb/musb/musb_debug.h
+++ b/drivers/usb/musb/musb_debug.h
@@ -48,11 +48,7 @@
48 __func__, __LINE__ , ## args); \ 48 __func__, __LINE__ , ## args); \
49 } } while (0) 49 } } while (0)
50 50
51#if MUSB_DEBUG > 0
52extern unsigned debug; 51extern unsigned debug;
53#else
54#define debug 0
55#endif
56 52
57static inline int _dbg_level(unsigned l) 53static inline int _dbg_level(unsigned l)
58{ 54{
diff --git a/drivers/usb/musb/musb_gadget_ep0.c b/drivers/usb/musb/musb_gadget_ep0.c
index 48d7d3ccb24..a57652fff39 100644
--- a/drivers/usb/musb/musb_gadget_ep0.c
+++ b/drivers/usb/musb/musb_gadget_ep0.c
@@ -476,6 +476,7 @@ static void ep0_rxstate(struct musb *musb)
476 return; 476 return;
477 musb->ackpend = 0; 477 musb->ackpend = 0;
478 } 478 }
479 musb_ep_select(musb->mregs, 0);
479 musb_writew(regs, MUSB_CSR0, tmp); 480 musb_writew(regs, MUSB_CSR0, tmp);
480} 481}
481 482
@@ -528,6 +529,7 @@ static void ep0_txstate(struct musb *musb)
528 } 529 }
529 530
530 /* send it out, triggering a "txpktrdy cleared" irq */ 531 /* send it out, triggering a "txpktrdy cleared" irq */
532 musb_ep_select(musb->mregs, 0);
531 musb_writew(regs, MUSB_CSR0, csr); 533 musb_writew(regs, MUSB_CSR0, csr);
532} 534}
533 535
diff --git a/drivers/usb/musb/musb_procfs.c b/drivers/usb/musb/musb_procfs.c
deleted file mode 100644
index 55e6b78bdcc..00000000000
--- a/drivers/usb/musb/musb_procfs.c
+++ /dev/null
@@ -1,830 +0,0 @@
1/*
2 * MUSB OTG driver debug support
3 *
4 * Copyright 2005 Mentor Graphics Corporation
5 * Copyright (C) 2005-2006 by Texas Instruments
6 * Copyright (C) 2006-2007 Nokia Corporation
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * version 2 as published by the Free Software Foundation.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20 * 02110-1301 USA
21 *
22 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
23 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
24 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
25 * NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
27 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
28 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
29 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
31 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 *
33 */
34
35#include <linux/kernel.h>
36#include <linux/proc_fs.h>
37#include <linux/seq_file.h>
38#include <linux/uaccess.h> /* FIXME remove procfs writes */
39#include <asm/arch/hardware.h>
40
41#include "musb_core.h"
42
43#include "davinci.h"
44
45#ifdef CONFIG_USB_MUSB_HDRC_HCD
46
47static int dump_qh(struct musb_qh *qh, char *buf, unsigned max)
48{
49 int count;
50 int tmp;
51 struct usb_host_endpoint *hep = qh->hep;
52 struct urb *urb;
53
54 count = snprintf(buf, max, " qh %p dev%d ep%d%s max%d\n",
55 qh, qh->dev->devnum, qh->epnum,
56 ({ char *s; switch (qh->type) {
57 case USB_ENDPOINT_XFER_BULK:
58 s = "-bulk"; break;
59 case USB_ENDPOINT_XFER_INT:
60 s = "-int"; break;
61 case USB_ENDPOINT_XFER_CONTROL:
62 s = ""; break;
63 default:
64 s = "iso"; break;
65 }; s; }),
66 qh->maxpacket);
67 if (count <= 0)
68 return 0;
69 buf += count;
70 max -= count;
71
72 list_for_each_entry(urb, &hep->urb_list, urb_list) {
73 tmp = snprintf(buf, max, "\t%s urb %p %d/%d\n",
74 usb_pipein(urb->pipe) ? "in" : "out",
75 urb, urb->actual_length,
76 urb->transfer_buffer_length);
77 if (tmp <= 0)
78 break;
79 tmp = min(tmp, (int)max);
80 count += tmp;
81 buf += tmp;
82 max -= tmp;
83 }
84 return count;
85}
86
87static int
88dump_queue(struct list_head *q, char *buf, unsigned max)
89{
90 int count = 0;
91 struct musb_qh *qh;
92
93 list_for_each_entry(qh, q, ring) {
94 int tmp;
95
96 tmp = dump_qh(qh, buf, max);
97 if (tmp <= 0)
98 break;
99 tmp = min(tmp, (int)max);
100 count += tmp;
101 buf += tmp;
102 max -= tmp;
103 }
104 return count;
105}
106
107#endif /* HCD */
108
109#ifdef CONFIG_USB_GADGET_MUSB_HDRC
110static int dump_ep(struct musb_ep *ep, char *buffer, unsigned max)
111{
112 char *buf = buffer;
113 int code = 0;
114 void __iomem *regs = ep->hw_ep->regs;
115 char *mode = "1buf";
116
117 if (ep->is_in) {
118 if (ep->hw_ep->tx_double_buffered)
119 mode = "2buf";
120 } else {
121 if (ep->hw_ep->rx_double_buffered)
122 mode = "2buf";
123 }
124
125 do {
126 struct usb_request *req;
127
128 code = snprintf(buf, max,
129 "\n%s (hw%d): %s%s, csr %04x maxp %04x\n",
130 ep->name, ep->current_epnum,
131 mode, ep->dma ? " dma" : "",
132 musb_readw(regs,
133 (ep->is_in || !ep->current_epnum)
134 ? MUSB_TXCSR
135 : MUSB_RXCSR),
136 musb_readw(regs, ep->is_in
137 ? MUSB_TXMAXP
138 : MUSB_RXMAXP)
139 );
140 if (code <= 0)
141 break;
142 code = min(code, (int) max);
143 buf += code;
144 max -= code;
145
146 if (is_cppi_enabled() && ep->current_epnum) {
147 unsigned cppi = ep->current_epnum - 1;
148 void __iomem *base = ep->musb->ctrl_base;
149 unsigned off1 = cppi << 2;
150 void __iomem *ram = base;
151 char tmp[16];
152
153 if (ep->is_in) {
154 ram += DAVINCI_TXCPPI_STATERAM_OFFSET(cppi);
155 tmp[0] = 0;
156 } else {
157 ram += DAVINCI_RXCPPI_STATERAM_OFFSET(cppi);
158 snprintf(tmp, sizeof tmp, "%d left, ",
159 musb_readl(base,
160 DAVINCI_RXCPPI_BUFCNT0_REG + off1));
161 }
162
163 code = snprintf(buf, max, "%cX DMA%d: %s"
164 "%08x %08x, %08x %08x; "
165 "%08x %08x %08x .. %08x\n",
166 ep->is_in ? 'T' : 'R',
167 ep->current_epnum - 1, tmp,
168 musb_readl(ram, 0 * 4),
169 musb_readl(ram, 1 * 4),
170 musb_readl(ram, 2 * 4),
171 musb_readl(ram, 3 * 4),
172 musb_readl(ram, 4 * 4),
173 musb_readl(ram, 5 * 4),
174 musb_readl(ram, 6 * 4),
175 musb_readl(ram, 7 * 4));
176 if (code <= 0)
177 break;
178 code = min(code, (int) max);
179 buf += code;
180 max -= code;
181 }
182
183 if (list_empty(&ep->req_list)) {
184 code = snprintf(buf, max, "\t(queue empty)\n");
185 if (code <= 0)
186 break;
187 code = min(code, (int) max);
188 buf += code;
189 max -= code;
190 break;
191 }
192 list_for_each_entry(req, &ep->req_list, list) {
193 code = snprintf(buf, max, "\treq %p, %s%s%d/%d\n",
194 req,
195 req->zero ? "zero, " : "",
196 req->short_not_ok ? "!short, " : "",
197 req->actual, req->length);
198 if (code <= 0)
199 break;
200 code = min(code, (int) max);
201 buf += code;
202 max -= code;
203 }
204 } while (0);
205 return buf - buffer;
206}
207#endif
208
209static int
210dump_end_info(struct musb *musb, u8 epnum, char *aBuffer, unsigned max)
211{
212 int code = 0;
213 char *buf = aBuffer;
214 struct musb_hw_ep *hw_ep = &musb->endpoints[epnum];
215
216 do {
217 musb_ep_select(musb->mregs, epnum);
218#ifdef CONFIG_USB_MUSB_HDRC_HCD
219 if (is_host_active(musb)) {
220 int dump_rx, dump_tx;
221 void __iomem *regs = hw_ep->regs;
222
223 /* TEMPORARY (!) until we have a real periodic
224 * schedule tree ...
225 */
226 if (!epnum) {
227 /* control is shared, uses RX queue
228 * but (mostly) shadowed tx registers
229 */
230 dump_tx = !list_empty(&musb->control);
231 dump_rx = 0;
232 } else if (hw_ep == musb->bulk_ep) {
233 dump_tx = !list_empty(&musb->out_bulk);
234 dump_rx = !list_empty(&musb->in_bulk);
235 } else if (musb->periodic[epnum]) {
236 struct usb_host_endpoint *hep;
237
238 hep = musb->periodic[epnum]->hep;
239 dump_rx = hep->desc.bEndpointAddress
240 & USB_ENDPOINT_DIR_MASK;
241 dump_tx = !dump_rx;
242 } else
243 break;
244 /* END TEMPORARY */
245
246
247 if (dump_rx) {
248 code = snprintf(buf, max,
249 "\nRX%d: %s rxcsr %04x interval %02x "
250 "max %04x type %02x; "
251 "dev %d hub %d port %d"
252 "\n",
253 epnum,
254 hw_ep->rx_double_buffered
255 ? "2buf" : "1buf",
256 musb_readw(regs, MUSB_RXCSR),
257 musb_readb(regs, MUSB_RXINTERVAL),
258 musb_readw(regs, MUSB_RXMAXP),
259 musb_readb(regs, MUSB_RXTYPE),
260 /* FIXME: assumes multipoint */
261 musb_readb(musb->mregs,
262 MUSB_BUSCTL_OFFSET(epnum,
263 MUSB_RXFUNCADDR)),
264 musb_readb(musb->mregs,
265 MUSB_BUSCTL_OFFSET(epnum,
266 MUSB_RXHUBADDR)),
267 musb_readb(musb->mregs,
268 MUSB_BUSCTL_OFFSET(epnum,
269 MUSB_RXHUBPORT))
270 );
271 if (code <= 0)
272 break;
273 code = min(code, (int) max);
274 buf += code;
275 max -= code;
276
277 if (is_cppi_enabled()
278 && epnum
279 && hw_ep->rx_channel) {
280 unsigned cppi = epnum - 1;
281 unsigned off1 = cppi << 2;
282 void __iomem *base;
283 void __iomem *ram;
284 char tmp[16];
285
286 base = musb->ctrl_base;
287 ram = DAVINCI_RXCPPI_STATERAM_OFFSET(
288 cppi) + base;
289 snprintf(tmp, sizeof tmp, "%d left, ",
290 musb_readl(base,
291 DAVINCI_RXCPPI_BUFCNT0_REG
292 + off1));
293
294 code = snprintf(buf, max,
295 " rx dma%d: %s"
296 "%08x %08x, %08x %08x; "
297 "%08x %08x %08x .. %08x\n",
298 cppi, tmp,
299 musb_readl(ram, 0 * 4),
300 musb_readl(ram, 1 * 4),
301 musb_readl(ram, 2 * 4),
302 musb_readl(ram, 3 * 4),
303 musb_readl(ram, 4 * 4),
304 musb_readl(ram, 5 * 4),
305 musb_readl(ram, 6 * 4),
306 musb_readl(ram, 7 * 4));
307 if (code <= 0)
308 break;
309 code = min(code, (int) max);
310 buf += code;
311 max -= code;
312 }
313
314 if (hw_ep == musb->bulk_ep
315 && !list_empty(
316 &musb->in_bulk)) {
317 code = dump_queue(&musb->in_bulk,
318 buf, max);
319 if (code <= 0)
320 break;
321 code = min(code, (int) max);
322 buf += code;
323 max -= code;
324 } else if (musb->periodic[epnum]) {
325 code = dump_qh(musb->periodic[epnum],
326 buf, max);
327 if (code <= 0)
328 break;
329 code = min(code, (int) max);
330 buf += code;
331 max -= code;
332 }
333 }
334
335 if (dump_tx) {
336 code = snprintf(buf, max,
337 "\nTX%d: %s txcsr %04x interval %02x "
338 "max %04x type %02x; "
339 "dev %d hub %d port %d"
340 "\n",
341 epnum,
342 hw_ep->tx_double_buffered
343 ? "2buf" : "1buf",
344 musb_readw(regs, MUSB_TXCSR),
345 musb_readb(regs, MUSB_TXINTERVAL),
346 musb_readw(regs, MUSB_TXMAXP),
347 musb_readb(regs, MUSB_TXTYPE),
348 /* FIXME: assumes multipoint */
349 musb_readb(musb->mregs,
350 MUSB_BUSCTL_OFFSET(epnum,
351 MUSB_TXFUNCADDR)),
352 musb_readb(musb->mregs,
353 MUSB_BUSCTL_OFFSET(epnum,
354 MUSB_TXHUBADDR)),
355 musb_readb(musb->mregs,
356 MUSB_BUSCTL_OFFSET(epnum,
357 MUSB_TXHUBPORT))
358 );
359 if (code <= 0)
360 break;
361 code = min(code, (int) max);
362 buf += code;
363 max -= code;
364
365 if (is_cppi_enabled()
366 && epnum
367 && hw_ep->tx_channel) {
368 unsigned cppi = epnum - 1;
369 void __iomem *base;
370 void __iomem *ram;
371
372 base = musb->ctrl_base;
373 ram = DAVINCI_RXCPPI_STATERAM_OFFSET(
374 cppi) + base;
375 code = snprintf(buf, max,
376 " tx dma%d: "
377 "%08x %08x, %08x %08x; "
378 "%08x %08x %08x .. %08x\n",
379 cppi,
380 musb_readl(ram, 0 * 4),
381 musb_readl(ram, 1 * 4),
382 musb_readl(ram, 2 * 4),
383 musb_readl(ram, 3 * 4),
384 musb_readl(ram, 4 * 4),
385 musb_readl(ram, 5 * 4),
386 musb_readl(ram, 6 * 4),
387 musb_readl(ram, 7 * 4));
388 if (code <= 0)
389 break;
390 code = min(code, (int) max);
391 buf += code;
392 max -= code;
393 }
394
395 if (hw_ep == musb->control_ep
396 && !list_empty(
397 &musb->control)) {
398 code = dump_queue(&musb->control,
399 buf, max);
400 if (code <= 0)
401 break;
402 code = min(code, (int) max);
403 buf += code;
404 max -= code;
405 } else if (hw_ep == musb->bulk_ep
406 && !list_empty(
407 &musb->out_bulk)) {
408 code = dump_queue(&musb->out_bulk,
409 buf, max);
410 if (code <= 0)
411 break;
412 code = min(code, (int) max);
413 buf += code;
414 max -= code;
415 } else if (musb->periodic[epnum]) {
416 code = dump_qh(musb->periodic[epnum],
417 buf, max);
418 if (code <= 0)
419 break;
420 code = min(code, (int) max);
421 buf += code;
422 max -= code;
423 }
424 }
425 }
426#endif
427#ifdef CONFIG_USB_GADGET_MUSB_HDRC
428 if (is_peripheral_active(musb)) {
429 code = 0;
430
431 if (hw_ep->ep_in.desc || !epnum) {
432 code = dump_ep(&hw_ep->ep_in, buf, max);
433 if (code <= 0)
434 break;
435 code = min(code, (int) max);
436 buf += code;
437 max -= code;
438 }
439 if (hw_ep->ep_out.desc) {
440 code = dump_ep(&hw_ep->ep_out, buf, max);
441 if (code <= 0)
442 break;
443 code = min(code, (int) max);
444 buf += code;
445 max -= code;
446 }
447 }
448#endif
449 } while (0);
450
451 return buf - aBuffer;
452}
453
454/* Dump the current status and compile options.
455 * @param musb the device driver instance
456 * @param buffer where to dump the status; it must be big enough to hold the
457 * result otherwise "BAD THINGS HAPPENS(TM)".
458 */
459static int dump_header_stats(struct musb *musb, char *buffer)
460{
461 int code, count = 0;
462 const void __iomem *mbase = musb->mregs;
463
464 *buffer = 0;
465 count = sprintf(buffer, "Status: %sHDRC, Mode=%s "
466 "(Power=%02x, DevCtl=%02x)\n",
467 (musb->is_multipoint ? "M" : ""), MUSB_MODE(musb),
468 musb_readb(mbase, MUSB_POWER),
469 musb_readb(mbase, MUSB_DEVCTL));
470 if (count <= 0)
471 return 0;
472 buffer += count;
473
474 code = sprintf(buffer, "OTG state: %s; %sactive\n",
475 otg_state_string(musb),
476 musb->is_active ? "" : "in");
477 if (code <= 0)
478 goto done;
479 buffer += code;
480 count += code;
481
482 code = sprintf(buffer,
483 "Options: "
484#ifdef CONFIG_MUSB_PIO_ONLY
485 "pio"
486#elif defined(CONFIG_USB_TI_CPPI_DMA)
487 "cppi-dma"
488#elif defined(CONFIG_USB_INVENTRA_DMA)
489 "musb-dma"
490#elif defined(CONFIG_USB_TUSB_OMAP_DMA)
491 "tusb-omap-dma"
492#else
493 "?dma?"
494#endif
495 ", "
496#ifdef CONFIG_USB_MUSB_OTG
497 "otg (peripheral+host)"
498#elif defined(CONFIG_USB_GADGET_MUSB_HDRC)
499 "peripheral"
500#elif defined(CONFIG_USB_MUSB_HDRC_HCD)
501 "host"
502#endif
503 ", debug=%d [eps=%d]\n",
504 debug,
505 musb->nr_endpoints);
506 if (code <= 0)
507 goto done;
508 count += code;
509 buffer += code;
510
511#ifdef CONFIG_USB_GADGET_MUSB_HDRC
512 code = sprintf(buffer, "Peripheral address: %02x\n",
513 musb_readb(musb->ctrl_base, MUSB_FADDR));
514 if (code <= 0)
515 goto done;
516 buffer += code;
517 count += code;
518#endif
519
520#ifdef CONFIG_USB_MUSB_HDRC_HCD
521 code = sprintf(buffer, "Root port status: %08x\n",
522 musb->port1_status);
523 if (code <= 0)
524 goto done;
525 buffer += code;
526 count += code;
527#endif
528
529#ifdef CONFIG_ARCH_DAVINCI
530 code = sprintf(buffer,
531 "DaVinci: ctrl=%02x stat=%1x phy=%03x\n"
532 "\trndis=%05x auto=%04x intsrc=%08x intmsk=%08x"
533 "\n",
534 musb_readl(musb->ctrl_base, DAVINCI_USB_CTRL_REG),
535 musb_readl(musb->ctrl_base, DAVINCI_USB_STAT_REG),
536 __raw_readl((void __force __iomem *)
537 IO_ADDRESS(USBPHY_CTL_PADDR)),
538 musb_readl(musb->ctrl_base, DAVINCI_RNDIS_REG),
539 musb_readl(musb->ctrl_base, DAVINCI_AUTOREQ_REG),
540 musb_readl(musb->ctrl_base,
541 DAVINCI_USB_INT_SOURCE_REG),
542 musb_readl(musb->ctrl_base,
543 DAVINCI_USB_INT_MASK_REG));
544 if (code <= 0)
545 goto done;
546 count += code;
547 buffer += code;
548#endif /* DAVINCI */
549
550#ifdef CONFIG_USB_TUSB6010
551 code = sprintf(buffer,
552 "TUSB6010: devconf %08x, phy enable %08x drive %08x"
553 "\n\totg %03x timer %08x"
554 "\n\tprcm conf %08x mgmt %08x; int src %08x mask %08x"
555 "\n",
556 musb_readl(musb->ctrl_base, TUSB_DEV_CONF),
557 musb_readl(musb->ctrl_base, TUSB_PHY_OTG_CTRL_ENABLE),
558 musb_readl(musb->ctrl_base, TUSB_PHY_OTG_CTRL),
559 musb_readl(musb->ctrl_base, TUSB_DEV_OTG_STAT),
560 musb_readl(musb->ctrl_base, TUSB_DEV_OTG_TIMER),
561 musb_readl(musb->ctrl_base, TUSB_PRCM_CONF),
562 musb_readl(musb->ctrl_base, TUSB_PRCM_MNGMT),
563 musb_readl(musb->ctrl_base, TUSB_INT_SRC),
564 musb_readl(musb->ctrl_base, TUSB_INT_MASK));
565 if (code <= 0)
566 goto done;
567 count += code;
568 buffer += code;
569#endif /* DAVINCI */
570
571 if (is_cppi_enabled() && musb->dma_controller) {
572 code = sprintf(buffer,
573 "CPPI: txcr=%d txsrc=%01x txena=%01x; "
574 "rxcr=%d rxsrc=%01x rxena=%01x "
575 "\n",
576 musb_readl(musb->ctrl_base,
577 DAVINCI_TXCPPI_CTRL_REG),
578 musb_readl(musb->ctrl_base,
579 DAVINCI_TXCPPI_RAW_REG),
580 musb_readl(musb->ctrl_base,
581 DAVINCI_TXCPPI_INTENAB_REG),
582 musb_readl(musb->ctrl_base,
583 DAVINCI_RXCPPI_CTRL_REG),
584 musb_readl(musb->ctrl_base,
585 DAVINCI_RXCPPI_RAW_REG),
586 musb_readl(musb->ctrl_base,
587 DAVINCI_RXCPPI_INTENAB_REG));
588 if (code <= 0)
589 goto done;
590 count += code;
591 buffer += code;
592 }
593
594#ifdef CONFIG_USB_GADGET_MUSB_HDRC
595 if (is_peripheral_enabled(musb)) {
596 code = sprintf(buffer, "Gadget driver: %s\n",
597 musb->gadget_driver
598 ? musb->gadget_driver->driver.name
599 : "(none)");
600 if (code <= 0)
601 goto done;
602 count += code;
603 buffer += code;
604 }
605#endif
606
607done:
608 return count;
609}
610
611/* Write to ProcFS
612 *
613 * C soft-connect
614 * c soft-disconnect
615 * I enable HS
616 * i disable HS
617 * s stop session
618 * F force session (OTG-unfriendly)
619 * E rElinquish bus (OTG)
620 * H request host mode
621 * h cancel host request
622 * T start sending TEST_PACKET
623 * D<num> set/query the debug level
624 */
625static int musb_proc_write(struct file *file, const char __user *buffer,
626 unsigned long count, void *data)
627{
628 char cmd;
629 u8 reg;
630 struct musb *musb = (struct musb *)data;
631 void __iomem *mbase = musb->mregs;
632
633 /* MOD_INC_USE_COUNT; */
634
635 if (unlikely(copy_from_user(&cmd, buffer, 1)))
636 return -EFAULT;
637
638 switch (cmd) {
639 case 'C':
640 if (mbase) {
641 reg = musb_readb(mbase, MUSB_POWER)
642 | MUSB_POWER_SOFTCONN;
643 musb_writeb(mbase, MUSB_POWER, reg);
644 }
645 break;
646
647 case 'c':
648 if (mbase) {
649 reg = musb_readb(mbase, MUSB_POWER)
650 & ~MUSB_POWER_SOFTCONN;
651 musb_writeb(mbase, MUSB_POWER, reg);
652 }
653 break;
654
655 case 'I':
656 if (mbase) {
657 reg = musb_readb(mbase, MUSB_POWER)
658 | MUSB_POWER_HSENAB;
659 musb_writeb(mbase, MUSB_POWER, reg);
660 }
661 break;
662
663 case 'i':
664 if (mbase) {
665 reg = musb_readb(mbase, MUSB_POWER)
666 & ~MUSB_POWER_HSENAB;
667 musb_writeb(mbase, MUSB_POWER, reg);
668 }
669 break;
670
671 case 'F':
672 reg = musb_readb(mbase, MUSB_DEVCTL);
673 reg |= MUSB_DEVCTL_SESSION;
674 musb_writeb(mbase, MUSB_DEVCTL, reg);
675 break;
676
677 case 'H':
678 if (mbase) {
679 reg = musb_readb(mbase, MUSB_DEVCTL);
680 reg |= MUSB_DEVCTL_HR;
681 musb_writeb(mbase, MUSB_DEVCTL, reg);
682 /* MUSB_HST_MODE( ((struct musb*)data) ); */
683 /* WARNING("Host Mode\n"); */
684 }
685 break;
686
687 case 'h':
688 if (mbase) {
689 reg = musb_readb(mbase, MUSB_DEVCTL);
690 reg &= ~MUSB_DEVCTL_HR;
691 musb_writeb(mbase, MUSB_DEVCTL, reg);
692 }
693 break;
694
695 case 'T':
696 if (mbase) {
697 musb_load_testpacket(musb);
698 musb_writeb(mbase, MUSB_TESTMODE,
699 MUSB_TEST_PACKET);
700 }
701 break;
702
703#if (MUSB_DEBUG > 0)
704 /* set/read debug level */
705 case 'D':{
706 if (count > 1) {
707 char digits[8], *p = digits;
708 int i = 0, level = 0, sign = 1;
709 int len = min(count - 1, (unsigned long)8);
710
711 if (copy_from_user(&digits, &buffer[1], len))
712 return -EFAULT;
713
714 /* optional sign */
715 if (*p == '-') {
716 len -= 1;
717 sign = -sign;
718 p++;
719 }
720
721 /* read it */
722 while (i++ < len && *p > '0' && *p < '9') {
723 level = level * 10 + (*p - '0');
724 p++;
725 }
726
727 level *= sign;
728 DBG(1, "debug level %d\n", level);
729 debug = level;
730 }
731 }
732 break;
733
734
735 case '?':
736 INFO("?: you are seeing it\n");
737 INFO("C/c: soft connect enable/disable\n");
738 INFO("I/i: hispeed enable/disable\n");
739 INFO("F: force session start\n");
740 INFO("H: host mode\n");
741 INFO("T: start sending TEST_PACKET\n");
742 INFO("D: set/read dbug level\n");
743 break;
744#endif
745
746 default:
747 ERR("Command %c not implemented\n", cmd);
748 break;
749 }
750
751 musb_platform_try_idle(musb, 0);
752
753 return count;
754}
755
756static int musb_proc_read(char *page, char **start,
757 off_t off, int count, int *eof, void *data)
758{
759 char *buffer = page;
760 int code = 0;
761 unsigned long flags;
762 struct musb *musb = data;
763 unsigned epnum;
764
765 count -= off;
766 count -= 1; /* for NUL at end */
767 if (count <= 0)
768 return -EINVAL;
769
770 spin_lock_irqsave(&musb->lock, flags);
771
772 code = dump_header_stats(musb, buffer);
773 if (code > 0) {
774 buffer += code;
775 count -= code;
776 }
777
778 /* generate the report for the end points */
779 /* REVISIT ... not unless something's connected! */
780 for (epnum = 0; count >= 0 && epnum < musb->nr_endpoints;
781 epnum++) {
782 code = dump_end_info(musb, epnum, buffer, count);
783 if (code > 0) {
784 buffer += code;
785 count -= code;
786 }
787 }
788
789 musb_platform_try_idle(musb, 0);
790
791 spin_unlock_irqrestore(&musb->lock, flags);
792 *eof = 1;
793
794 return buffer - page;
795}
796
797void __devexit musb_debug_delete(char *name, struct musb *musb)
798{
799 if (musb->proc_entry)
800 remove_proc_entry(name, NULL);
801}
802
803struct proc_dir_entry *__init
804musb_debug_create(char *name, struct musb *data)
805{
806 struct proc_dir_entry *pde;
807
808 /* FIXME convert everything to seq_file; then later, debugfs */
809
810 if (!name)
811 return NULL;
812
813 pde = create_proc_entry(name, S_IFREG | S_IRUGO | S_IWUSR, NULL);
814 data->proc_entry = pde;
815 if (pde) {
816 pde->data = data;
817 /* pde->owner = THIS_MODULE; */
818
819 pde->read_proc = musb_proc_read;
820 pde->write_proc = musb_proc_write;
821
822 pde->size = 0;
823
824 pr_debug("Registered /proc/%s\n", name);
825 } else {
826 pr_debug("Cannot create a valid proc file entry");
827 }
828
829 return pde;
830}
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
index 298b22e6ad0..9d2dcb121c5 100644
--- a/drivers/usb/musb/omap2430.c
+++ b/drivers/usb/musb/omap2430.c
@@ -35,8 +35,8 @@
35#include <linux/io.h> 35#include <linux/io.h>
36 36
37#include <asm/mach-types.h> 37#include <asm/mach-types.h>
38#include <asm/arch/hardware.h> 38#include <mach/hardware.h>
39#include <asm/arch/mux.h> 39#include <mach/mux.h>
40 40
41#include "musb_core.h" 41#include "musb_core.h"
42#include "omap2430.h" 42#include "omap2430.h"
diff --git a/drivers/usb/musb/omap2430.h b/drivers/usb/musb/omap2430.h
index 786a62071f7..dc7670718cd 100644
--- a/drivers/usb/musb/omap2430.h
+++ b/drivers/usb/musb/omap2430.h
@@ -11,8 +11,8 @@
11#define __MUSB_OMAP243X_H__ 11#define __MUSB_OMAP243X_H__
12 12
13#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3430) 13#if defined(CONFIG_ARCH_OMAP2430) || defined(CONFIG_ARCH_OMAP3430)
14#include <asm/arch/hardware.h> 14#include <mach/hardware.h>
15#include <asm/arch/usb.h> 15#include <mach/usb.h>
16 16
17/* 17/*
18 * OMAP2430-specific definitions 18 * OMAP2430-specific definitions
diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c
index 7b74238ad1c..e980766bb84 100644
--- a/drivers/usb/serial/console.c
+++ b/drivers/usb/serial/console.c
@@ -161,7 +161,7 @@ static int usb_console_setup(struct console *co, char *options)
161 if (serial->type->set_termios) { 161 if (serial->type->set_termios) {
162 termios->c_cflag = cflag; 162 termios->c_cflag = cflag;
163 tty_termios_encode_baud_rate(termios, baud, baud); 163 tty_termios_encode_baud_rate(termios, baud, baud);
164 serial->type->set_termios(NULL, port, &dummy); 164 serial->type->set_termios(tty, port, &dummy);
165 165
166 port->port.tty = NULL; 166 port->port.tty = NULL;
167 kfree(termios); 167 kfree(termios);
diff --git a/drivers/usb/serial/cp2101.c b/drivers/usb/serial/cp2101.c
index 442cba69cce..1279553381e 100644
--- a/drivers/usb/serial/cp2101.c
+++ b/drivers/usb/serial/cp2101.c
@@ -72,6 +72,7 @@ static struct usb_device_id id_table [] = {
72 { USB_DEVICE(0x10C4, 0x80CA) }, /* Degree Controls Inc */ 72 { USB_DEVICE(0x10C4, 0x80CA) }, /* Degree Controls Inc */
73 { USB_DEVICE(0x10C4, 0x80DD) }, /* Tracient RFID */ 73 { USB_DEVICE(0x10C4, 0x80DD) }, /* Tracient RFID */
74 { USB_DEVICE(0x10C4, 0x80F6) }, /* Suunto sports instrument */ 74 { USB_DEVICE(0x10C4, 0x80F6) }, /* Suunto sports instrument */
75 { USB_DEVICE(0x10C4, 0x8115) }, /* Arygon NFC/Mifare Reader */
75 { USB_DEVICE(0x10C4, 0x813D) }, /* Burnside Telecom Deskmobile */ 76 { USB_DEVICE(0x10C4, 0x813D) }, /* Burnside Telecom Deskmobile */
76 { USB_DEVICE(0x10C4, 0x814A) }, /* West Mountain Radio RIGblaster P&P */ 77 { USB_DEVICE(0x10C4, 0x814A) }, /* West Mountain Radio RIGblaster P&P */
77 { USB_DEVICE(0x10C4, 0x814B) }, /* West Mountain Radio RIGtalk */ 78 { USB_DEVICE(0x10C4, 0x814B) }, /* West Mountain Radio RIGtalk */
@@ -83,6 +84,7 @@ static struct usb_device_id id_table [] = {
83 { USB_DEVICE(0x10C4, 0x81E7) }, /* Aerocomm Radio */ 84 { USB_DEVICE(0x10C4, 0x81E7) }, /* Aerocomm Radio */
84 { USB_DEVICE(0x10C4, 0x8218) }, /* Lipowsky Industrie Elektronik GmbH, HARP-1 */ 85 { USB_DEVICE(0x10C4, 0x8218) }, /* Lipowsky Industrie Elektronik GmbH, HARP-1 */
85 { USB_DEVICE(0x10c4, 0x8293) }, /* Telegesys ETRX2USB */ 86 { USB_DEVICE(0x10c4, 0x8293) }, /* Telegesys ETRX2USB */
87 { USB_DEVICE(0x10C4, 0x8341) }, /* Siemens MC35PU GPRS Modem */
86 { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */ 88 { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
87 { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */ 89 { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
88 { USB_DEVICE(0x10C4, 0xF001) }, /* Elan Digital Systems USBscope50 */ 90 { USB_DEVICE(0x10C4, 0xF001) }, /* Elan Digital Systems USBscope50 */
@@ -93,6 +95,7 @@ static struct usb_device_id id_table [] = {
93 { USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */ 95 { USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */
94 { USB_DEVICE(0x166A, 0x0303) }, /* Clipsal 5500PCU C-Bus USB interface */ 96 { USB_DEVICE(0x166A, 0x0303) }, /* Clipsal 5500PCU C-Bus USB interface */
95 { USB_DEVICE(0x16D6, 0x0001) }, /* Jablotron serial interface */ 97 { USB_DEVICE(0x16D6, 0x0001) }, /* Jablotron serial interface */
98 { USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */
96 { } /* Terminating Entry */ 99 { } /* Terminating Entry */
97}; 100};
98 101
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 984f6eff4c4..3dc93b542b3 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -654,6 +654,9 @@ static struct usb_device_id id_table_combined [] = {
654 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, 654 .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
655 { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID_USB60F) }, 655 { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID_USB60F) },
656 { USB_DEVICE(FTDI_VID, FTDI_REU_TINY_PID) }, 656 { USB_DEVICE(FTDI_VID, FTDI_REU_TINY_PID) },
657 { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO4x4_PID) },
658 { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DGQG_PID) },
659 { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DUSB_PID) },
657 { }, /* Optional parameter entry */ 660 { }, /* Optional parameter entry */
658 { } /* Terminating entry */ 661 { } /* Terminating entry */
659}; 662};
diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h
index 382265bba96..8a5b6df3a97 100644
--- a/drivers/usb/serial/ftdi_sio.h
+++ b/drivers/usb/serial/ftdi_sio.h
@@ -750,6 +750,7 @@
750 750
751#define PAPOUCH_VID 0x5050 /* Vendor ID */ 751#define PAPOUCH_VID 0x5050 /* Vendor ID */
752#define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */ 752#define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */
753#define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */
753 754
754/* 755/*
755 * ACG Identification Technologies GmbH products (http://www.acg.de/). 756 * ACG Identification Technologies GmbH products (http://www.acg.de/).
@@ -838,6 +839,10 @@
838/* Rig Expert Ukraine devices */ 839/* Rig Expert Ukraine devices */
839#define FTDI_REU_TINY_PID 0xED22 /* RigExpert Tiny */ 840#define FTDI_REU_TINY_PID 0xED22 /* RigExpert Tiny */
840 841
842/* Domintell products http://www.domintell.com */
843#define FTDI_DOMINTELL_DGQG_PID 0xEF50 /* Master */
844#define FTDI_DOMINTELL_DUSB_PID 0xEF51 /* DUSB01 module */
845
841/* Commands */ 846/* Commands */
842#define FTDI_SIO_RESET 0 /* Reset the port */ 847#define FTDI_SIO_RESET 0 /* Reset the port */
843#define FTDI_SIO_MODEM_CTRL 1 /* Set the modem control register */ 848#define FTDI_SIO_MODEM_CTRL 1 /* Set the modem control register */
diff --git a/drivers/usb/serial/garmin_gps.c b/drivers/usb/serial/garmin_gps.c
index 2e663f1afd5..d9538208807 100644
--- a/drivers/usb/serial/garmin_gps.c
+++ b/drivers/usb/serial/garmin_gps.c
@@ -38,8 +38,6 @@
38#include <linux/usb.h> 38#include <linux/usb.h>
39#include <linux/usb/serial.h> 39#include <linux/usb/serial.h>
40 40
41#include <linux/version.h>
42
43/* the mode to be set when the port ist opened */ 41/* the mode to be set when the port ist opened */
44static int initial_mode = 1; 42static int initial_mode = 1;
45 43
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index e143198aeb0..73f8277f88f 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -173,6 +173,7 @@ static int option_send_setup(struct tty_struct *tty, struct usb_serial_port *po
173#define KYOCERA_PRODUCT_KPC680 0x180a 173#define KYOCERA_PRODUCT_KPC680 0x180a
174 174
175#define ANYDATA_VENDOR_ID 0x16d5 175#define ANYDATA_VENDOR_ID 0x16d5
176#define ANYDATA_PRODUCT_ADU_620UW 0x6202
176#define ANYDATA_PRODUCT_ADU_E100A 0x6501 177#define ANYDATA_PRODUCT_ADU_E100A 0x6501
177#define ANYDATA_PRODUCT_ADU_500A 0x6502 178#define ANYDATA_PRODUCT_ADU_500A 0x6502
178 179
@@ -217,6 +218,7 @@ static int option_send_setup(struct tty_struct *tty, struct usb_serial_port *po
217/* ZTE PRODUCTS */ 218/* ZTE PRODUCTS */
218#define ZTE_VENDOR_ID 0x19d2 219#define ZTE_VENDOR_ID 0x19d2
219#define ZTE_PRODUCT_MF628 0x0015 220#define ZTE_PRODUCT_MF628 0x0015
221#define ZTE_PRODUCT_CDMA_TECH 0xfffe
220 222
221static struct usb_device_id option_ids[] = { 223static struct usb_device_id option_ids[] = {
222 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, 224 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
@@ -318,6 +320,7 @@ static struct usb_device_id option_ids[] = {
318 { USB_DEVICE(DELL_VENDOR_ID, 0x8138) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */ 320 { USB_DEVICE(DELL_VENDOR_ID, 0x8138) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */
319 { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, 321 { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) },
320 { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) }, 322 { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) },
323 { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_620UW) },
321 { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) }, 324 { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) },
322 { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) }, 325 { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) },
323 { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) }, 326 { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) },
@@ -345,6 +348,7 @@ static struct usb_device_id option_ids[] = {
345 { USB_DEVICE(MAXON_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */ 348 { USB_DEVICE(MAXON_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */
346 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, 349 { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) },
347 { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, 350 { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) },
351 { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) },
348 { } /* Terminating entry */ 352 { } /* Terminating entry */
349}; 353};
350MODULE_DEVICE_TABLE(usb, option_ids); 354MODULE_DEVICE_TABLE(usb, option_ids);
diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index 706033753ad..ea1a103c99b 100644
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -14,7 +14,7 @@
14 Whom based his on the Keyspan driver by Hugh Blemings <hugh@blemings.org> 14 Whom based his on the Keyspan driver by Hugh Blemings <hugh@blemings.org>
15*/ 15*/
16 16
17#define DRIVER_VERSION "v.1.2.13a" 17#define DRIVER_VERSION "v.1.3.2"
18#define DRIVER_AUTHOR "Kevin Lloyd <klloyd@sierrawireless.com>" 18#define DRIVER_AUTHOR "Kevin Lloyd <klloyd@sierrawireless.com>"
19#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems" 19#define DRIVER_DESC "USB Driver for Sierra Wireless USB modems"
20 20
@@ -30,9 +30,6 @@
30 30
31#define SWIMS_USB_REQUEST_SetPower 0x00 31#define SWIMS_USB_REQUEST_SetPower 0x00
32#define SWIMS_USB_REQUEST_SetNmea 0x07 32#define SWIMS_USB_REQUEST_SetNmea 0x07
33#define SWIMS_USB_REQUEST_SetMode 0x0B
34#define SWIMS_USB_REQUEST_GetSwocInfo 0x0A
35#define SWIMS_SET_MODE_Modem 0x0001
36 33
37/* per port private data */ 34/* per port private data */
38#define N_IN_URB 4 35#define N_IN_URB 4
@@ -163,7 +160,7 @@ static struct usb_device_id id_table [] = {
163 { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */ 160 { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */
164 { USB_DEVICE(0x1199, 0x0018) }, /* Sierra Wireless MC5720 */ 161 { USB_DEVICE(0x1199, 0x0018) }, /* Sierra Wireless MC5720 */
165 { USB_DEVICE(0x1199, 0x0218) }, /* Sierra Wireless MC5720 */ 162 { USB_DEVICE(0x1199, 0x0218) }, /* Sierra Wireless MC5720 */
166 { USB_DEVICE(0x0f30, 0x1b1d) }, /* Sierra Wireless MC5720 */ 163 { USB_DEVICE(0x03f0, 0x1b1d) }, /* HP ev2200 a.k.a MC5720 */
167 { USB_DEVICE(0x1199, 0x0020) }, /* Sierra Wireless MC5725 */ 164 { USB_DEVICE(0x1199, 0x0020) }, /* Sierra Wireless MC5725 */
168 { USB_DEVICE(0x1199, 0x0024) }, /* Sierra Wireless MC5727 */ 165 { USB_DEVICE(0x1199, 0x0024) }, /* Sierra Wireless MC5727 */
169 { USB_DEVICE(0x1199, 0x0220) }, /* Sierra Wireless MC5725 */ 166 { USB_DEVICE(0x1199, 0x0220) }, /* Sierra Wireless MC5725 */
@@ -175,6 +172,8 @@ static struct usb_device_id id_table [] = {
175 /* Sierra Wireless Device */ 172 /* Sierra Wireless Device */
176 { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x0025, 0xFF, 0xFF, 0xFF) }, 173 { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x0025, 0xFF, 0xFF, 0xFF) },
177 { USB_DEVICE(0x1199, 0x0026) }, /* Sierra Wireless Device */ 174 { USB_DEVICE(0x1199, 0x0026) }, /* Sierra Wireless Device */
175 { USB_DEVICE(0x1199, 0x0027) }, /* Sierra Wireless Device */
176 { USB_DEVICE(0x1199, 0x0028) }, /* Sierra Wireless Device */
178 177
179 { USB_DEVICE(0x1199, 0x6802) }, /* Sierra Wireless MC8755 */ 178 { USB_DEVICE(0x1199, 0x6802) }, /* Sierra Wireless MC8755 */
180 { USB_DEVICE(0x1199, 0x6804) }, /* Sierra Wireless MC8755 */ 179 { USB_DEVICE(0x1199, 0x6804) }, /* Sierra Wireless MC8755 */
@@ -187,6 +186,7 @@ static struct usb_device_id id_table [] = {
187 { USB_DEVICE(0x1199, 0x6821) }, /* Sierra Wireless AirCard 875U */ 186 { USB_DEVICE(0x1199, 0x6821) }, /* Sierra Wireless AirCard 875U */
188 { USB_DEVICE(0x1199, 0x6832) }, /* Sierra Wireless MC8780 */ 187 { USB_DEVICE(0x1199, 0x6832) }, /* Sierra Wireless MC8780 */
189 { USB_DEVICE(0x1199, 0x6833) }, /* Sierra Wireless MC8781 */ 188 { USB_DEVICE(0x1199, 0x6833) }, /* Sierra Wireless MC8781 */
189 { USB_DEVICE(0x1199, 0x683A) }, /* Sierra Wireless MC8785 */
190 { USB_DEVICE(0x1199, 0x683B) }, /* Sierra Wireless MC8785 Composite */ 190 { USB_DEVICE(0x1199, 0x683B) }, /* Sierra Wireless MC8785 Composite */
191 { USB_DEVICE(0x1199, 0x683C) }, /* Sierra Wireless MC8790 */ 191 { USB_DEVICE(0x1199, 0x683C) }, /* Sierra Wireless MC8790 */
192 { USB_DEVICE(0x1199, 0x683D) }, /* Sierra Wireless MC8790 */ 192 { USB_DEVICE(0x1199, 0x683D) }, /* Sierra Wireless MC8790 */
@@ -204,6 +204,8 @@ static struct usb_device_id id_table [] = {
204 /* Sierra Wireless Device */ 204 /* Sierra Wireless Device */
205 { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6890, 0xFF, 0xFF, 0xFF)}, 205 { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6890, 0xFF, 0xFF, 0xFF)},
206 /* Sierra Wireless Device */ 206 /* Sierra Wireless Device */
207 { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6891, 0xFF, 0xFF, 0xFF)},
208 /* Sierra Wireless Device */
207 { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6892, 0xFF, 0xFF, 0xFF)}, 209 { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6892, 0xFF, 0xFF, 0xFF)},
208 210
209 { USB_DEVICE(0x1199, 0x0112) }, /* Sierra Wireless AirCard 580 */ 211 { USB_DEVICE(0x1199, 0x0112) }, /* Sierra Wireless AirCard 580 */
diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c
index e39c779e416..9a3e495c769 100644
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
@@ -1744,7 +1744,7 @@ static int ti_download_firmware(struct ti_device *tdev, int type)
1744 if (buffer) { 1744 if (buffer) {
1745 memcpy(buffer, fw_p->data, fw_p->size); 1745 memcpy(buffer, fw_p->data, fw_p->size);
1746 memset(buffer + fw_p->size, 0xff, buffer_size - fw_p->size); 1746 memset(buffer + fw_p->size, 0xff, buffer_size - fw_p->size);
1747 ti_do_download(dev, pipe, buffer, fw_p->size); 1747 status = ti_do_download(dev, pipe, buffer, fw_p->size);
1748 kfree(buffer); 1748 kfree(buffer);
1749 } 1749 }
1750 release_firmware(fw_p); 1750 release_firmware(fw_p);
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
index b157c48e8b7..4f7f9e3ae0a 100644
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
@@ -733,7 +733,9 @@ int usb_serial_probe(struct usb_interface *interface,
733 ((le16_to_cpu(dev->descriptor.idVendor) == ATEN_VENDOR_ID) && 733 ((le16_to_cpu(dev->descriptor.idVendor) == ATEN_VENDOR_ID) &&
734 (le16_to_cpu(dev->descriptor.idProduct) == ATEN_PRODUCT_ID)) || 734 (le16_to_cpu(dev->descriptor.idProduct) == ATEN_PRODUCT_ID)) ||
735 ((le16_to_cpu(dev->descriptor.idVendor) == ALCOR_VENDOR_ID) && 735 ((le16_to_cpu(dev->descriptor.idVendor) == ALCOR_VENDOR_ID) &&
736 (le16_to_cpu(dev->descriptor.idProduct) == ALCOR_PRODUCT_ID))) { 736 (le16_to_cpu(dev->descriptor.idProduct) == ALCOR_PRODUCT_ID)) ||
737 ((le16_to_cpu(dev->descriptor.idVendor) == SIEMENS_VENDOR_ID) &&
738 (le16_to_cpu(dev->descriptor.idProduct) == SIEMENS_PRODUCT_ID_EF81))) {
737 if (interface != dev->actconfig->interface[0]) { 739 if (interface != dev->actconfig->interface[0]) {
738 /* check out the endpoints of the other interface*/ 740 /* check out the endpoints of the other interface*/
739 iface_desc = dev->actconfig->interface[0]->cur_altsetting; 741 iface_desc = dev->actconfig->interface[0]->cur_altsetting;
diff --git a/drivers/usb/storage/Kconfig b/drivers/usb/storage/Kconfig
index c76034672c1..3d9249632ae 100644
--- a/drivers/usb/storage/Kconfig
+++ b/drivers/usb/storage/Kconfig
@@ -146,18 +146,6 @@ config USB_STORAGE_KARMA
146 on the resulting scsi device node returns the Karma to normal 146 on the resulting scsi device node returns the Karma to normal
147 operation. 147 operation.
148 148
149config USB_STORAGE_SIERRA
150 bool "Sierra Wireless TRU-Install Feature Support"
151 depends on USB_STORAGE
152 help
153 Say Y here to include additional code to support Sierra Wireless
154 products with the TRU-Install feature (e.g., AC597E, AC881U).
155
156 This code switches the Sierra Wireless device from being in
157 Mass Storage mode to Modem mode. It also has the ability to
158 support host software upgrades should full Linux support be added
159 to TRU-Install.
160
161config USB_STORAGE_CYPRESS_ATACB 149config USB_STORAGE_CYPRESS_ATACB
162 bool "SAT emulation on Cypress USB/ATA Bridge with ATACB" 150 bool "SAT emulation on Cypress USB/ATA Bridge with ATACB"
163 depends on USB_STORAGE 151 depends on USB_STORAGE
diff --git a/drivers/usb/storage/Makefile b/drivers/usb/storage/Makefile
index bc3415b475c..7f8beb5366a 100644
--- a/drivers/usb/storage/Makefile
+++ b/drivers/usb/storage/Makefile
@@ -21,11 +21,10 @@ usb-storage-obj-$(CONFIG_USB_STORAGE_JUMPSHOT) += jumpshot.o
21usb-storage-obj-$(CONFIG_USB_STORAGE_ALAUDA) += alauda.o 21usb-storage-obj-$(CONFIG_USB_STORAGE_ALAUDA) += alauda.o
22usb-storage-obj-$(CONFIG_USB_STORAGE_ONETOUCH) += onetouch.o 22usb-storage-obj-$(CONFIG_USB_STORAGE_ONETOUCH) += onetouch.o
23usb-storage-obj-$(CONFIG_USB_STORAGE_KARMA) += karma.o 23usb-storage-obj-$(CONFIG_USB_STORAGE_KARMA) += karma.o
24usb-storage-obj-$(CONFIG_USB_STORAGE_SIERRA) += sierra_ms.o
25usb-storage-obj-$(CONFIG_USB_STORAGE_CYPRESS_ATACB) += cypress_atacb.o 24usb-storage-obj-$(CONFIG_USB_STORAGE_CYPRESS_ATACB) += cypress_atacb.o
26 25
27usb-storage-objs := scsiglue.o protocol.o transport.o usb.o \ 26usb-storage-objs := scsiglue.o protocol.o transport.o usb.o \
28 initializers.o $(usb-storage-obj-y) 27 initializers.o sierra_ms.o $(usb-storage-obj-y)
29 28
30ifneq ($(CONFIG_USB_LIBUSUAL),) 29ifneq ($(CONFIG_USB_LIBUSUAL),)
31 obj-$(CONFIG_USB) += libusual.o 30 obj-$(CONFIG_USB) += libusual.o
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index ba412e68d47..cd155475cb6 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -160,6 +160,13 @@ UNUSUAL_DEV( 0x0421, 0x0019, 0x0592, 0x0592,
160 US_SC_DEVICE, US_PR_DEVICE, NULL, 160 US_SC_DEVICE, US_PR_DEVICE, NULL,
161 US_FL_MAX_SECTORS_64 ), 161 US_FL_MAX_SECTORS_64 ),
162 162
163/* Reported by Filip Joelsson <filip@blueturtle.nu> */
164UNUSUAL_DEV( 0x0421, 0x005d, 0x0001, 0x0600,
165 "Nokia",
166 "Nokia 3110c",
167 US_SC_DEVICE, US_PR_DEVICE, NULL,
168 US_FL_FIX_CAPACITY ),
169
163/* Reported by Mario Rettig <mariorettig@web.de> */ 170/* Reported by Mario Rettig <mariorettig@web.de> */
164UNUSUAL_DEV( 0x0421, 0x042e, 0x0100, 0x0100, 171UNUSUAL_DEV( 0x0421, 0x042e, 0x0100, 0x0100,
165 "Nokia", 172 "Nokia",
@@ -232,6 +239,20 @@ UNUSUAL_DEV( 0x0421, 0x04b9, 0x0551, 0x0551,
232 US_SC_DEVICE, US_PR_DEVICE, NULL, 239 US_SC_DEVICE, US_PR_DEVICE, NULL,
233 US_FL_FIX_CAPACITY ), 240 US_FL_FIX_CAPACITY ),
234 241
242/* Reported by Richard Nauber <RichardNauber@web.de> */
243UNUSUAL_DEV( 0x0421, 0x04fa, 0x0601, 0x0601,
244 "Nokia",
245 "6300",
246 US_SC_DEVICE, US_PR_DEVICE, NULL,
247 US_FL_FIX_CAPACITY ),
248
249/* Patch for Nokia 5310 capacity */
250UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0591,
251 "Nokia",
252 "5310",
253 US_SC_DEVICE, US_PR_DEVICE, NULL,
254 US_FL_FIX_CAPACITY ),
255
235/* Reported by Olaf Hering <olh@suse.de> from novell bug #105878 */ 256/* Reported by Olaf Hering <olh@suse.de> from novell bug #105878 */
236UNUSUAL_DEV( 0x0424, 0x0fdc, 0x0210, 0x0210, 257UNUSUAL_DEV( 0x0424, 0x0fdc, 0x0210, 0x0210,
237 "SMSC", 258 "SMSC",
@@ -987,6 +1008,13 @@ UNUSUAL_DEV( 0x069b, 0x3004, 0x0001, 0x0001,
987 US_SC_DEVICE, US_PR_DEVICE, NULL, 1008 US_SC_DEVICE, US_PR_DEVICE, NULL,
988 US_FL_FIX_CAPACITY ), 1009 US_FL_FIX_CAPACITY ),
989 1010
1011/* Reported by Adrian Pilchowiec <adi1981@epf.pl> */
1012UNUSUAL_DEV( 0x071b, 0x3203, 0x0000, 0x0000,
1013 "RockChip",
1014 "MP3",
1015 US_SC_DEVICE, US_PR_DEVICE, NULL,
1016 US_FL_NO_WP_DETECT | US_FL_MAX_SECTORS_64),
1017
990/* Reported by Massimiliano Ghilardi <massimiliano.ghilardi@gmail.com> 1018/* Reported by Massimiliano Ghilardi <massimiliano.ghilardi@gmail.com>
991 * This USB MP3/AVI player device fails and disconnects if more than 128 1019 * This USB MP3/AVI player device fails and disconnects if more than 128
992 * sectors (64kB) are read/written in a single command, and may be present 1020 * sectors (64kB) are read/written in a single command, and may be present
@@ -1576,7 +1604,6 @@ UNUSUAL_DEV( 0x10d6, 0x2200, 0x0100, 0x0100,
1576 US_SC_DEVICE, US_PR_DEVICE, NULL, 1604 US_SC_DEVICE, US_PR_DEVICE, NULL,
1577 0), 1605 0),
1578 1606
1579#ifdef CONFIG_USB_STORAGE_SIERRA
1580/* Reported by Kevin Lloyd <linux@sierrawireless.com> 1607/* Reported by Kevin Lloyd <linux@sierrawireless.com>
1581 * Entry is needed for the initializer function override, 1608 * Entry is needed for the initializer function override,
1582 * which instructs the device to load as a modem 1609 * which instructs the device to load as a modem
@@ -1587,7 +1614,6 @@ UNUSUAL_DEV( 0x1199, 0x0fff, 0x0000, 0x9999,
1587 "USB MMC Storage", 1614 "USB MMC Storage",
1588 US_SC_DEVICE, US_PR_DEVICE, sierra_ms_init, 1615 US_SC_DEVICE, US_PR_DEVICE, sierra_ms_init,
1589 0), 1616 0),
1590#endif
1591 1617
1592/* Reported by Jaco Kroon <jaco@kroon.co.za> 1618/* Reported by Jaco Kroon <jaco@kroon.co.za>
1593 * The usb-storage module found on the Digitech GNX4 (and supposedly other 1619 * The usb-storage module found on the Digitech GNX4 (and supposedly other
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
index 73679aa506d..27016fd2cad 100644
--- a/drivers/usb/storage/usb.c
+++ b/drivers/usb/storage/usb.c
@@ -102,9 +102,7 @@
102#ifdef CONFIG_USB_STORAGE_CYPRESS_ATACB 102#ifdef CONFIG_USB_STORAGE_CYPRESS_ATACB
103#include "cypress_atacb.h" 103#include "cypress_atacb.h"
104#endif 104#endif
105#ifdef CONFIG_USB_STORAGE_SIERRA
106#include "sierra_ms.h" 105#include "sierra_ms.h"
107#endif
108 106
109/* Some informational data */ 107/* Some informational data */
110MODULE_AUTHOR("Matthew Dharm <mdharm-usb@one-eyed-alien.net>"); 108MODULE_AUTHOR("Matthew Dharm <mdharm-usb@one-eyed-alien.net>");
diff --git a/drivers/video/arkfb.c b/drivers/video/arkfb.c
index 4bd569e479a..314d18694b6 100644
--- a/drivers/video/arkfb.c
+++ b/drivers/video/arkfb.c
@@ -11,7 +11,6 @@
11 * Code is based on s3fb 11 * Code is based on s3fb
12 */ 12 */
13 13
14#include <linux/version.h>
15#include <linux/module.h> 14#include <linux/module.h>
16#include <linux/kernel.h> 15#include <linux/kernel.h>
17#include <linux/errno.h> 16#include <linux/errno.h>
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
index 9c5925927ec..75dac578104 100644
--- a/drivers/video/atmel_lcdfb.c
+++ b/drivers/video/atmel_lcdfb.c
@@ -208,6 +208,36 @@ static unsigned long compute_hozval(unsigned long xres, unsigned long lcdcon2)
208 return value; 208 return value;
209} 209}
210 210
211static void atmel_lcdfb_stop_nowait(struct atmel_lcdfb_info *sinfo)
212{
213 /* Turn off the LCD controller and the DMA controller */
214 lcdc_writel(sinfo, ATMEL_LCDC_PWRCON,
215 sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET);
216
217 /* Wait for the LCDC core to become idle */
218 while (lcdc_readl(sinfo, ATMEL_LCDC_PWRCON) & ATMEL_LCDC_BUSY)
219 msleep(10);
220
221 lcdc_writel(sinfo, ATMEL_LCDC_DMACON, 0);
222}
223
224static void atmel_lcdfb_stop(struct atmel_lcdfb_info *sinfo)
225{
226 atmel_lcdfb_stop_nowait(sinfo);
227
228 /* Wait for DMA engine to become idle... */
229 while (lcdc_readl(sinfo, ATMEL_LCDC_DMACON) & ATMEL_LCDC_DMABUSY)
230 msleep(10);
231}
232
233static void atmel_lcdfb_start(struct atmel_lcdfb_info *sinfo)
234{
235 lcdc_writel(sinfo, ATMEL_LCDC_DMACON, sinfo->default_dmacon);
236 lcdc_writel(sinfo, ATMEL_LCDC_PWRCON,
237 (sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET)
238 | ATMEL_LCDC_PWR);
239}
240
211static void atmel_lcdfb_update_dma(struct fb_info *info, 241static void atmel_lcdfb_update_dma(struct fb_info *info,
212 struct fb_var_screeninfo *var) 242 struct fb_var_screeninfo *var)
213{ 243{
@@ -420,26 +450,8 @@ static void atmel_lcdfb_reset(struct atmel_lcdfb_info *sinfo)
420{ 450{
421 might_sleep(); 451 might_sleep();
422 452
423 /* LCD power off */ 453 atmel_lcdfb_stop(sinfo);
424 lcdc_writel(sinfo, ATMEL_LCDC_PWRCON, sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET); 454 atmel_lcdfb_start(sinfo);
425
426 /* wait for the LCDC core to become idle */
427 while (lcdc_readl(sinfo, ATMEL_LCDC_PWRCON) & ATMEL_LCDC_BUSY)
428 msleep(10);
429
430 /* DMA disable */
431 lcdc_writel(sinfo, ATMEL_LCDC_DMACON, 0);
432
433 /* wait for DMA engine to become idle */
434 while (lcdc_readl(sinfo, ATMEL_LCDC_DMACON) & ATMEL_LCDC_DMABUSY)
435 msleep(10);
436
437 /* LCD power on */
438 lcdc_writel(sinfo, ATMEL_LCDC_PWRCON,
439 (sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET) | ATMEL_LCDC_PWR);
440
441 /* DMA enable */
442 lcdc_writel(sinfo, ATMEL_LCDC_DMACON, sinfo->default_dmacon);
443} 455}
444 456
445/** 457/**
@@ -471,14 +483,7 @@ static int atmel_lcdfb_set_par(struct fb_info *info)
471 info->var.xres, info->var.yres, 483 info->var.xres, info->var.yres,
472 info->var.xres_virtual, info->var.yres_virtual); 484 info->var.xres_virtual, info->var.yres_virtual);
473 485
474 /* Turn off the LCD controller and the DMA controller */ 486 atmel_lcdfb_stop_nowait(sinfo);
475 lcdc_writel(sinfo, ATMEL_LCDC_PWRCON, sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET);
476
477 /* Wait for the LCDC core to become idle */
478 while (lcdc_readl(sinfo, ATMEL_LCDC_PWRCON) & ATMEL_LCDC_BUSY)
479 msleep(10);
480
481 lcdc_writel(sinfo, ATMEL_LCDC_DMACON, 0);
482 487
483 if (info->var.bits_per_pixel == 1) 488 if (info->var.bits_per_pixel == 1)
484 info->fix.visual = FB_VISUAL_MONO01; 489 info->fix.visual = FB_VISUAL_MONO01;
@@ -583,13 +588,7 @@ static int atmel_lcdfb_set_par(struct fb_info *info)
583 while (lcdc_readl(sinfo, ATMEL_LCDC_DMACON) & ATMEL_LCDC_DMABUSY) 588 while (lcdc_readl(sinfo, ATMEL_LCDC_DMACON) & ATMEL_LCDC_DMABUSY)
584 msleep(10); 589 msleep(10);
585 590
586 dev_dbg(info->device, " * re-enable DMA engine\n"); 591 atmel_lcdfb_start(sinfo);
587 /* ...and enable it with updated configuration */
588 lcdc_writel(sinfo, ATMEL_LCDC_DMACON, sinfo->default_dmacon);
589
590 dev_dbg(info->device, " * re-enable LCDC core\n");
591 lcdc_writel(sinfo, ATMEL_LCDC_PWRCON,
592 (sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET) | ATMEL_LCDC_PWR);
593 592
594 dev_dbg(info->device, " * DONE\n"); 593 dev_dbg(info->device, " * DONE\n");
595 594
@@ -939,7 +938,7 @@ static int __init atmel_lcdfb_probe(struct platform_device *pdev)
939 ret = register_framebuffer(info); 938 ret = register_framebuffer(info);
940 if (ret < 0) { 939 if (ret < 0) {
941 dev_err(dev, "failed to register framebuffer device: %d\n", ret); 940 dev_err(dev, "failed to register framebuffer device: %d\n", ret);
942 goto free_cmap; 941 goto reset_drvdata;
943 } 942 }
944 943
945 /* add selected videomode to modelist */ 944 /* add selected videomode to modelist */
@@ -955,7 +954,8 @@ static int __init atmel_lcdfb_probe(struct platform_device *pdev)
955 954
956 return 0; 955 return 0;
957 956
958 957reset_drvdata:
958 dev_set_drvdata(dev, NULL);
959free_cmap: 959free_cmap:
960 fb_dealloc_cmap(&info->cmap); 960 fb_dealloc_cmap(&info->cmap);
961unregister_irqs: 961unregister_irqs:
@@ -992,10 +992,11 @@ static int __exit atmel_lcdfb_remove(struct platform_device *pdev)
992{ 992{
993 struct device *dev = &pdev->dev; 993 struct device *dev = &pdev->dev;
994 struct fb_info *info = dev_get_drvdata(dev); 994 struct fb_info *info = dev_get_drvdata(dev);
995 struct atmel_lcdfb_info *sinfo = info->par; 995 struct atmel_lcdfb_info *sinfo;
996 996
997 if (!sinfo) 997 if (!info || !info->par)
998 return 0; 998 return 0;
999 sinfo = info->par;
999 1000
1000 cancel_work_sync(&sinfo->task); 1001 cancel_work_sync(&sinfo->task);
1001 exit_backlight(sinfo); 1002 exit_backlight(sinfo);
@@ -1030,11 +1031,20 @@ static int atmel_lcdfb_suspend(struct platform_device *pdev, pm_message_t mesg)
1030 struct fb_info *info = platform_get_drvdata(pdev); 1031 struct fb_info *info = platform_get_drvdata(pdev);
1031 struct atmel_lcdfb_info *sinfo = info->par; 1032 struct atmel_lcdfb_info *sinfo = info->par;
1032 1033
1034 /*
1035 * We don't want to handle interrupts while the clock is
1036 * stopped. It may take forever.
1037 */
1038 lcdc_writel(sinfo, ATMEL_LCDC_IDR, ~0UL);
1039
1033 sinfo->saved_lcdcon = lcdc_readl(sinfo, ATMEL_LCDC_CONTRAST_VAL); 1040 sinfo->saved_lcdcon = lcdc_readl(sinfo, ATMEL_LCDC_CONTRAST_VAL);
1034 lcdc_writel(sinfo, ATMEL_LCDC_CONTRAST_CTR, 0); 1041 lcdc_writel(sinfo, ATMEL_LCDC_CONTRAST_CTR, 0);
1035 if (sinfo->atmel_lcdfb_power_control) 1042 if (sinfo->atmel_lcdfb_power_control)
1036 sinfo->atmel_lcdfb_power_control(0); 1043 sinfo->atmel_lcdfb_power_control(0);
1044
1045 atmel_lcdfb_stop(sinfo);
1037 atmel_lcdfb_stop_clock(sinfo); 1046 atmel_lcdfb_stop_clock(sinfo);
1047
1038 return 0; 1048 return 0;
1039} 1049}
1040 1050
@@ -1044,9 +1054,15 @@ static int atmel_lcdfb_resume(struct platform_device *pdev)
1044 struct atmel_lcdfb_info *sinfo = info->par; 1054 struct atmel_lcdfb_info *sinfo = info->par;
1045 1055
1046 atmel_lcdfb_start_clock(sinfo); 1056 atmel_lcdfb_start_clock(sinfo);
1057 atmel_lcdfb_start(sinfo);
1047 if (sinfo->atmel_lcdfb_power_control) 1058 if (sinfo->atmel_lcdfb_power_control)
1048 sinfo->atmel_lcdfb_power_control(1); 1059 sinfo->atmel_lcdfb_power_control(1);
1049 lcdc_writel(sinfo, ATMEL_LCDC_CONTRAST_CTR, sinfo->saved_lcdcon); 1060 lcdc_writel(sinfo, ATMEL_LCDC_CONTRAST_CTR, sinfo->saved_lcdcon);
1061
1062 /* Enable FIFO & DMA errors */
1063 lcdc_writel(sinfo, ATMEL_LCDC_IER, ATMEL_LCDC_UFLWI
1064 | ATMEL_LCDC_OWRI | ATMEL_LCDC_MERI);
1065
1050 return 0; 1066 return 0;
1051} 1067}
1052 1068
diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
index 6d5aa806777..7644ed24956 100644
--- a/drivers/video/bf54x-lq043fb.c
+++ b/drivers/video/bf54x-lq043fb.c
@@ -58,7 +58,7 @@
58#include <asm/gpio.h> 58#include <asm/gpio.h>
59#include <asm/portmux.h> 59#include <asm/portmux.h>
60 60
61#include <asm/mach/bf54x-lq043.h> 61#include <mach/bf54x-lq043.h>
62 62
63#define NO_BL_SUPPORT 63#define NO_BL_SUPPORT
64 64
diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c
index c14b2435d23..e729fb27964 100644
--- a/drivers/video/cirrusfb.c
+++ b/drivers/video/cirrusfb.c
@@ -628,27 +628,18 @@ static long cirrusfb_get_mclk(long freq, int bpp, long *div)
628static int cirrusfb_check_var(struct fb_var_screeninfo *var, 628static int cirrusfb_check_var(struct fb_var_screeninfo *var,
629 struct fb_info *info) 629 struct fb_info *info)
630{ 630{
631 int nom, den; /* translyting from pixels->bytes */ 631 int yres;
632 int yres, i; 632 /* memory size in pixels */
633 static struct { int xres, yres; } modes[] = 633 unsigned pixels = info->screen_size * 8 / var->bits_per_pixel;
634 { { 1600, 1280 },
635 { 1280, 1024 },
636 { 1024, 768 },
637 { 800, 600 },
638 { 640, 480 },
639 { -1, -1 } };
640 634
641 switch (var->bits_per_pixel) { 635 switch (var->bits_per_pixel) {
642 case 1: 636 case 1:
643 nom = 4; 637 pixels /= 4;
644 den = 8;
645 break; /* 8 pixel per byte, only 1/4th of mem usable */ 638 break; /* 8 pixel per byte, only 1/4th of mem usable */
646 case 8: 639 case 8:
647 case 16: 640 case 16:
648 case 24: 641 case 24:
649 case 32: 642 case 32:
650 nom = var->bits_per_pixel / 8;
651 den = 1;
652 break; /* 1 pixel == 1 byte */ 643 break; /* 1 pixel == 1 byte */
653 default: 644 default:
654 printk(KERN_ERR "cirrusfb: mode %dx%dx%d rejected..." 645 printk(KERN_ERR "cirrusfb: mode %dx%dx%d rejected..."
@@ -658,43 +649,29 @@ static int cirrusfb_check_var(struct fb_var_screeninfo *var,
658 return -EINVAL; 649 return -EINVAL;
659 } 650 }
660 651
661 if (var->xres * nom / den * var->yres > info->screen_size) { 652 if (var->xres_virtual < var->xres)
662 printk(KERN_ERR "cirrusfb: mode %dx%dx%d rejected..." 653 var->xres_virtual = var->xres;
663 "resolution too high to fit into video memory!\n",
664 var->xres, var->yres, var->bits_per_pixel);
665 DPRINTK("EXIT - EINVAL error\n");
666 return -EINVAL;
667 }
668
669 /* use highest possible virtual resolution */ 654 /* use highest possible virtual resolution */
670 if (var->xres_virtual == -1 && 655 if (var->yres_virtual == -1) {
671 var->yres_virtual == -1) { 656 var->yres_virtual = pixels / var->xres_virtual;
672 printk(KERN_INFO
673 "cirrusfb: using maximum available virtual resolution\n");
674 for (i = 0; modes[i].xres != -1; i++) {
675 int size = modes[i].xres * nom / den * modes[i].yres;
676 if (size < info->screen_size / 2)
677 break;
678 }
679 if (modes[i].xres == -1) {
680 printk(KERN_ERR "cirrusfb: could not find a virtual "
681 "resolution that fits into video memory!!\n");
682 DPRINTK("EXIT - EINVAL error\n");
683 return -EINVAL;
684 }
685 var->xres_virtual = modes[i].xres;
686 var->yres_virtual = modes[i].yres;
687 657
688 printk(KERN_INFO "cirrusfb: virtual resolution set to " 658 printk(KERN_INFO "cirrusfb: virtual resolution set to "
689 "maximum of %dx%d\n", var->xres_virtual, 659 "maximum of %dx%d\n", var->xres_virtual,
690 var->yres_virtual); 660 var->yres_virtual);
691 } 661 }
692
693 if (var->xres_virtual < var->xres)
694 var->xres_virtual = var->xres;
695 if (var->yres_virtual < var->yres) 662 if (var->yres_virtual < var->yres)
696 var->yres_virtual = var->yres; 663 var->yres_virtual = var->yres;
697 664
665 if (var->xres_virtual * var->yres_virtual > pixels) {
666 printk(KERN_ERR "cirrusfb: mode %dx%dx%d rejected... "
667 "virtual resolution too high to fit into video memory!\n",
668 var->xres_virtual, var->yres_virtual,
669 var->bits_per_pixel);
670 DPRINTK("EXIT - EINVAL error\n");
671 return -EINVAL;
672 }
673
674
698 if (var->xoffset < 0) 675 if (var->xoffset < 0)
699 var->xoffset = 0; 676 var->xoffset = 0;
700 if (var->yoffset < 0) 677 if (var->yoffset < 0)
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index c6299e8a041..9cbff84b787 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -2400,11 +2400,15 @@ static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch)
2400 2400
2401 if (!fbcon_is_inactive(vc, info)) { 2401 if (!fbcon_is_inactive(vc, info)) {
2402 if (ops->blank_state != blank) { 2402 if (ops->blank_state != blank) {
2403 int ret = 1;
2404
2403 ops->blank_state = blank; 2405 ops->blank_state = blank;
2404 fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW); 2406 fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW);
2405 ops->cursor_flash = (!blank); 2407 ops->cursor_flash = (!blank);
2406 2408
2407 if (fb_blank(info, blank)) 2409 if (info->fbops->fb_blank)
2410 ret = info->fbops->fb_blank(blank, info);
2411 if (ret)
2408 fbcon_generic_blank(vc, info, blank); 2412 fbcon_generic_blank(vc, info, blank);
2409 } 2413 }
2410 2414
diff --git a/drivers/video/console/fbcon.h b/drivers/video/console/fbcon.h
index a6e38e9ea73..89a346880ec 100644
--- a/drivers/video/console/fbcon.h
+++ b/drivers/video/console/fbcon.h
@@ -110,7 +110,7 @@ static inline int mono_col(const struct fb_info *info)
110 __u32 max_len; 110 __u32 max_len;
111 max_len = max(info->var.green.length, info->var.red.length); 111 max_len = max(info->var.green.length, info->var.red.length);
112 max_len = max(info->var.blue.length, max_len); 112 max_len = max(info->var.blue.length, max_len);
113 return ~(0xfff << (max_len & 0xff)); 113 return (~(0xfff << max_len)) & 0xff;
114} 114}
115 115
116static inline int attr_col_ec(int shift, struct vc_data *vc, 116static inline int attr_col_ec(int shift, struct vc_data *vc,
diff --git a/drivers/video/s3fb.c b/drivers/video/s3fb.c
index 8361bd0e3df..4dcec48a1d7 100644
--- a/drivers/video/s3fb.c
+++ b/drivers/video/s3fb.c
@@ -11,7 +11,6 @@
11 * which is based on the code of neofb. 11 * which is based on the code of neofb.
12 */ 12 */
13 13
14#include <linux/version.h>
15#include <linux/module.h> 14#include <linux/module.h>
16#include <linux/kernel.h> 15#include <linux/kernel.h>
17#include <linux/errno.h> 16#include <linux/errno.h>
diff --git a/drivers/video/tdfxfb.c b/drivers/video/tdfxfb.c
index 77aafcfae03..4599a4385bc 100644
--- a/drivers/video/tdfxfb.c
+++ b/drivers/video/tdfxfb.c
@@ -95,7 +95,6 @@ static inline int mtrr_del(int reg, unsigned long base,
95#define VOODOO5_MAX_PIXCLOCK 350000 95#define VOODOO5_MAX_PIXCLOCK 350000
96 96
97static struct fb_fix_screeninfo tdfx_fix __devinitdata = { 97static struct fb_fix_screeninfo tdfx_fix __devinitdata = {
98 .id = "3Dfx",
99 .type = FB_TYPE_PACKED_PIXELS, 98 .type = FB_TYPE_PACKED_PIXELS,
100 .visual = FB_VISUAL_PSEUDOCOLOR, 99 .visual = FB_VISUAL_PSEUDOCOLOR,
101 .ypanstep = 1, 100 .ypanstep = 1,
@@ -426,7 +425,7 @@ static unsigned long do_lfb_size(struct tdfx_par *par, unsigned short dev_id)
426 if (dev_id < PCI_DEVICE_ID_3DFX_VOODOO5) { 425 if (dev_id < PCI_DEVICE_ID_3DFX_VOODOO5) {
427 /* Banshee/Voodoo3 */ 426 /* Banshee/Voodoo3 */
428 chip_size = 2; 427 chip_size = 2;
429 if (has_sgram && (draminit0 & DRAMINIT0_SGRAM_TYPE)) 428 if (has_sgram && !(draminit0 & DRAMINIT0_SGRAM_TYPE))
430 chip_size = 1; 429 chip_size = 1;
431 } else { 430 } else {
432 /* Voodoo4/5 */ 431 /* Voodoo4/5 */
@@ -1200,15 +1199,15 @@ static int __devinit tdfxfb_probe(struct pci_dev *pdev,
1200 /* Configure the default fb_fix_screeninfo first */ 1199 /* Configure the default fb_fix_screeninfo first */
1201 switch (pdev->device) { 1200 switch (pdev->device) {
1202 case PCI_DEVICE_ID_3DFX_BANSHEE: 1201 case PCI_DEVICE_ID_3DFX_BANSHEE:
1203 strcat(tdfx_fix.id, " Banshee"); 1202 strcpy(tdfx_fix.id, "3Dfx Banshee");
1204 default_par->max_pixclock = BANSHEE_MAX_PIXCLOCK; 1203 default_par->max_pixclock = BANSHEE_MAX_PIXCLOCK;
1205 break; 1204 break;
1206 case PCI_DEVICE_ID_3DFX_VOODOO3: 1205 case PCI_DEVICE_ID_3DFX_VOODOO3:
1207 strcat(tdfx_fix.id, " Voodoo3"); 1206 strcpy(tdfx_fix.id, "3Dfx Voodoo3");
1208 default_par->max_pixclock = VOODOO3_MAX_PIXCLOCK; 1207 default_par->max_pixclock = VOODOO3_MAX_PIXCLOCK;
1209 break; 1208 break;
1210 case PCI_DEVICE_ID_3DFX_VOODOO5: 1209 case PCI_DEVICE_ID_3DFX_VOODOO5:
1211 strcat(tdfx_fix.id, " Voodoo5"); 1210 strcpy(tdfx_fix.id, "3Dfx Voodoo5");
1212 default_par->max_pixclock = VOODOO5_MAX_PIXCLOCK; 1211 default_par->max_pixclock = VOODOO5_MAX_PIXCLOCK;
1213 break; 1212 break;
1214 } 1213 }
diff --git a/drivers/video/vermilion/vermilion.h b/drivers/video/vermilion/vermilion.h
index c4aba59d480..7491abfcf1f 100644
--- a/drivers/video/vermilion/vermilion.h
+++ b/drivers/video/vermilion/vermilion.h
@@ -30,7 +30,6 @@
30#define _VERMILION_H_ 30#define _VERMILION_H_
31 31
32#include <linux/kernel.h> 32#include <linux/kernel.h>
33#include <linux/version.h>
34#include <linux/pci.h> 33#include <linux/pci.h>
35#include <asm/atomic.h> 34#include <asm/atomic.h>
36#include <linux/mutex.h> 35#include <linux/mutex.h>
diff --git a/drivers/video/vt8623fb.c b/drivers/video/vt8623fb.c
index 34aae7a2a62..3df17dc8c3d 100644
--- a/drivers/video/vt8623fb.c
+++ b/drivers/video/vt8623fb.c
@@ -12,7 +12,6 @@
12 * (http://davesdomain.org.uk/viafb/) 12 * (http://davesdomain.org.uk/viafb/)
13 */ 13 */
14 14
15#include <linux/version.h>
16#include <linux/module.h> 15#include <linux/module.h>
17#include <linux/kernel.h> 16#include <linux/kernel.h>
18#include <linux/errno.h> 17#include <linux/errno.h>
diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c
index 7b3a8423f48..5da3d2423cc 100644
--- a/drivers/video/xilinxfb.c
+++ b/drivers/video/xilinxfb.c
@@ -24,7 +24,6 @@
24#include <linux/device.h> 24#include <linux/device.h>
25#include <linux/module.h> 25#include <linux/module.h>
26#include <linux/kernel.h> 26#include <linux/kernel.h>
27#include <linux/version.h>
28#include <linux/errno.h> 27#include <linux/errno.h>
29#include <linux/string.h> 28#include <linux/string.h>
30#include <linux/mm.h> 29#include <linux/mm.h>
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index bfef604160d..62eab43152d 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -158,7 +158,7 @@ static inline s64 towards_target(struct virtio_balloon *vb)
158 vb->vdev->config->get(vb->vdev, 158 vb->vdev->config->get(vb->vdev,
159 offsetof(struct virtio_balloon_config, num_pages), 159 offsetof(struct virtio_balloon_config, num_pages),
160 &v, sizeof(v)); 160 &v, sizeof(v));
161 return v - vb->num_pages; 161 return (s64)v - vb->num_pages;
162} 162}
163 163
164static void update_balloon_size(struct virtio_balloon *vb) 164static void update_balloon_size(struct virtio_balloon *vb)
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index db20542796b..c5103671670 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -465,6 +465,16 @@ config PC87413_WDT
465 465
466 Most people will say N. 466 Most people will say N.
467 467
468config RDC321X_WDT
469 tristate "RDC R-321x SoC watchdog"
470 depends on X86_RDC321X
471 help
472 This is the driver for the built in hardware watchdog
473 in the RDC R-321x SoC.
474
475 To compile this driver as a module, choose M here: the
476 module will be called rdc321x_wdt.
477
468config 60XX_WDT 478config 60XX_WDT
469 tristate "SBC-60XX Watchdog Timer" 479 tristate "SBC-60XX Watchdog Timer"
470 depends on X86 480 depends on X86
@@ -633,6 +643,16 @@ config SBC_EPX_C3_WATCHDOG
633 643
634# MIPS Architecture 644# MIPS Architecture
635 645
646config RC32434_WDT
647 tristate "IDT RC32434 SoC Watchdog Timer"
648 depends on MIKROTIK_RB532
649 help
650 Hardware driver for the IDT RC32434 SoC built-in
651 watchdog timer.
652
653 To compile this driver as a module, choose M here: the
654 module will be called rc32434_wdt.
655
636config INDYDOG 656config INDYDOG
637 tristate "Indy/I2 Hardware Watchdog" 657 tristate "Indy/I2 Hardware Watchdog"
638 depends on SGI_HAS_INDYDOG 658 depends on SGI_HAS_INDYDOG
@@ -692,10 +712,6 @@ config MPC5200_WDT
692 tristate "MPC5200 Watchdog Timer" 712 tristate "MPC5200 Watchdog Timer"
693 depends on PPC_MPC52xx 713 depends on PPC_MPC52xx
694 714
695config 8xx_WDT
696 tristate "MPC8xx Watchdog Timer"
697 depends on 8xx
698
699config 8xxx_WDT 715config 8xxx_WDT
700 tristate "MPC8xxx Platform Watchdog Timer" 716 tristate "MPC8xxx Platform Watchdog Timer"
701 depends on PPC_8xx || PPC_83xx || PPC_86xx 717 depends on PPC_8xx || PPC_83xx || PPC_86xx
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index ca3dc043d78..e0ef123fbde 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -75,6 +75,7 @@ obj-$(CONFIG_HP_WATCHDOG) += hpwdt.o
75obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o 75obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o
76obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o 76obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o
77obj-$(CONFIG_PC87413_WDT) += pc87413_wdt.o 77obj-$(CONFIG_PC87413_WDT) += pc87413_wdt.o
78obj-$(CONFIG_RDC321X_WDT) += rdc321x_wdt.o
78obj-$(CONFIG_60XX_WDT) += sbc60xxwdt.o 79obj-$(CONFIG_60XX_WDT) += sbc60xxwdt.o
79obj-$(CONFIG_SBC8360_WDT) += sbc8360.o 80obj-$(CONFIG_SBC8360_WDT) += sbc8360.o
80obj-$(CONFIG_SBC7240_WDT) += sbc7240_wdt.o 81obj-$(CONFIG_SBC7240_WDT) += sbc7240_wdt.o
@@ -94,6 +95,7 @@ obj-$(CONFIG_SBC_EPX_C3_WATCHDOG) += sbc_epx_c3.o
94# M68KNOMMU Architecture 95# M68KNOMMU Architecture
95 96
96# MIPS Architecture 97# MIPS Architecture
98obj-$(CONFIG_RC32434_WDT) += rc32434_wdt.o
97obj-$(CONFIG_INDYDOG) += indydog.o 99obj-$(CONFIG_INDYDOG) += indydog.o
98obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o 100obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o
99obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o 101obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o
@@ -104,7 +106,6 @@ obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
104# PARISC Architecture 106# PARISC Architecture
105 107
106# POWERPC Architecture 108# POWERPC Architecture
107obj-$(CONFIG_8xx_WDT) += mpc8xx_wdt.o
108obj-$(CONFIG_MPC5200_WDT) += mpc5200_wdt.o 109obj-$(CONFIG_MPC5200_WDT) += mpc5200_wdt.o
109obj-$(CONFIG_8xxx_WDT) += mpc8xxx_wdt.o 110obj-$(CONFIG_8xxx_WDT) += mpc8xxx_wdt.o
110obj-$(CONFIG_MV64X60_WDT) += mv64x60_wdt.o 111obj-$(CONFIG_MV64X60_WDT) += mv64x60_wdt.o
diff --git a/drivers/watchdog/at91rm9200_wdt.c b/drivers/watchdog/at91rm9200_wdt.c
index d061f0ad2d2..993e5f52afe 100644
--- a/drivers/watchdog/at91rm9200_wdt.c
+++ b/drivers/watchdog/at91rm9200_wdt.c
@@ -241,7 +241,7 @@ static int at91wdt_resume(struct platform_device *pdev)
241{ 241{
242 if (at91wdt_busy) 242 if (at91wdt_busy)
243 at91_wdt_start(); 243 at91_wdt_start();
244 return 0; 244 return 0;
245} 245}
246 246
247#else 247#else
diff --git a/drivers/watchdog/geodewdt.c b/drivers/watchdog/geodewdt.c
index 614a5c7017b..6799a6de66f 100644
--- a/drivers/watchdog/geodewdt.c
+++ b/drivers/watchdog/geodewdt.c
@@ -130,8 +130,8 @@ static ssize_t geodewdt_write(struct file *file, const char __user *data,
130 return len; 130 return len;
131} 131}
132 132
133static int geodewdt_ioctl(struct inode *inode, struct file *file, 133static long geodewdt_ioctl(struct file *file, unsigned int cmd,
134 unsigned int cmd, unsigned long arg) 134 unsigned long arg)
135{ 135{
136 void __user *argp = (void __user *)arg; 136 void __user *argp = (void __user *)arg;
137 int __user *p = argp; 137 int __user *p = argp;
@@ -198,7 +198,7 @@ static const struct file_operations geodewdt_fops = {
198 .owner = THIS_MODULE, 198 .owner = THIS_MODULE,
199 .llseek = no_llseek, 199 .llseek = no_llseek,
200 .write = geodewdt_write, 200 .write = geodewdt_write,
201 .ioctl = geodewdt_ioctl, 201 .unlocked_ioctl = geodewdt_ioctl,
202 .open = geodewdt_open, 202 .open = geodewdt_open,
203 .release = geodewdt_release, 203 .release = geodewdt_release,
204}; 204};
diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
index d039d5f2fd1..a3765e0be4a 100644
--- a/drivers/watchdog/hpwdt.c
+++ b/drivers/watchdog/hpwdt.c
@@ -116,6 +116,7 @@ static unsigned int reload; /* the computed soft_margin */
116static int nowayout = WATCHDOG_NOWAYOUT; 116static int nowayout = WATCHDOG_NOWAYOUT;
117static char expect_release; 117static char expect_release;
118static unsigned long hpwdt_is_open; 118static unsigned long hpwdt_is_open;
119static unsigned int allow_kdump;
119 120
120static void __iomem *pci_mem_addr; /* the PCI-memory address */ 121static void __iomem *pci_mem_addr; /* the PCI-memory address */
121static unsigned long __iomem *hpwdt_timer_reg; 122static unsigned long __iomem *hpwdt_timer_reg;
@@ -221,19 +222,19 @@ static int __devinit cru_detect(unsigned long map_entry,
221 222
222 if (cmn_regs.u1.ral != 0) { 223 if (cmn_regs.u1.ral != 0) {
223 printk(KERN_WARNING 224 printk(KERN_WARNING
224 "hpwdt: Call succeeded but with an error: 0x%x\n", 225 "hpwdt: Call succeeded but with an error: 0x%x\n",
225 cmn_regs.u1.ral); 226 cmn_regs.u1.ral);
226 } else { 227 } else {
227 physical_bios_base = cmn_regs.u2.rebx; 228 physical_bios_base = cmn_regs.u2.rebx;
228 physical_bios_offset = cmn_regs.u4.redx; 229 physical_bios_offset = cmn_regs.u4.redx;
229 cru_length = cmn_regs.u3.recx; 230 cru_length = cmn_regs.u3.recx;
230 cru_physical_address = 231 cru_physical_address =
231 physical_bios_base + physical_bios_offset; 232 physical_bios_base + physical_bios_offset;
232 233
233 /* If the values look OK, then map it in. */ 234 /* If the values look OK, then map it in. */
234 if ((physical_bios_base + physical_bios_offset)) { 235 if ((physical_bios_base + physical_bios_offset)) {
235 cru_rom_addr = 236 cru_rom_addr =
236 ioremap(cru_physical_address, cru_length); 237 ioremap(cru_physical_address, cru_length);
237 if (cru_rom_addr) 238 if (cru_rom_addr)
238 retval = 0; 239 retval = 0;
239 } 240 }
@@ -356,7 +357,6 @@ asm(".text \n\t"
356 "call *%r12 \n\t" 357 "call *%r12 \n\t"
357 "pushfq \n\t" 358 "pushfq \n\t"
358 "popq %r12 \n\t" 359 "popq %r12 \n\t"
359 "popfq \n\t"
360 "movl %eax, (%r9) \n\t" 360 "movl %eax, (%r9) \n\t"
361 "movl %ebx, 4(%r9) \n\t" 361 "movl %ebx, 4(%r9) \n\t"
362 "movl %ecx, 8(%r9) \n\t" 362 "movl %ecx, 8(%r9) \n\t"
@@ -390,10 +390,10 @@ static void __devinit dmi_find_cru(const struct dmi_header *dm)
390 smbios_cru64_ptr = (struct smbios_cru64_info *) dm; 390 smbios_cru64_ptr = (struct smbios_cru64_info *) dm;
391 if (smbios_cru64_ptr->signature == CRU_BIOS_SIGNATURE_VALUE) { 391 if (smbios_cru64_ptr->signature == CRU_BIOS_SIGNATURE_VALUE) {
392 cru_physical_address = 392 cru_physical_address =
393 smbios_cru64_ptr->physical_address + 393 smbios_cru64_ptr->physical_address +
394 smbios_cru64_ptr->double_offset; 394 smbios_cru64_ptr->double_offset;
395 cru_rom_addr = ioremap(cru_physical_address, 395 cru_rom_addr = ioremap(cru_physical_address,
396 smbios_cru64_ptr->double_length); 396 smbios_cru64_ptr->double_length);
397 } 397 }
398 } 398 }
399} 399}
@@ -405,7 +405,7 @@ static int __devinit detect_cru_service(void)
405 dmi_walk(dmi_find_cru); 405 dmi_walk(dmi_find_cru);
406 406
407 /* if cru_rom_addr has been set then we found a CRU service */ 407 /* if cru_rom_addr has been set then we found a CRU service */
408 return ((cru_rom_addr != NULL) ? 0: -ENODEV); 408 return ((cru_rom_addr != NULL) ? 0 : -ENODEV);
409} 409}
410 410
411/* ------------------------------------------------------------------------- */ 411/* ------------------------------------------------------------------------- */
@@ -413,34 +413,6 @@ static int __devinit detect_cru_service(void)
413#endif 413#endif
414 414
415/* 415/*
416 * NMI Handler
417 */
418static int hpwdt_pretimeout(struct notifier_block *nb, unsigned long ulReason,
419 void *data)
420{
421 unsigned long rom_pl;
422 static int die_nmi_called;
423
424 if (ulReason != DIE_NMI && ulReason != DIE_NMI_IPI)
425 return NOTIFY_OK;
426
427 spin_lock_irqsave(&rom_lock, rom_pl);
428 if (!die_nmi_called)
429 asminline_call(&cmn_regs, cru_rom_addr);
430 die_nmi_called = 1;
431 spin_unlock_irqrestore(&rom_lock, rom_pl);
432 if (cmn_regs.u1.ral == 0) {
433 printk(KERN_WARNING "hpwdt: An NMI occurred, "
434 "but unable to determine source.\n");
435 } else {
436 panic("An NMI occurred, please see the Integrated "
437 "Management Log for details.\n");
438 }
439
440 return NOTIFY_STOP;
441}
442
443/*
444 * Watchdog operations 416 * Watchdog operations
445 */ 417 */
446static void hpwdt_start(void) 418static void hpwdt_start(void)
@@ -484,6 +456,36 @@ static int hpwdt_change_timer(int new_margin)
484} 456}
485 457
486/* 458/*
459 * NMI Handler
460 */
461static int hpwdt_pretimeout(struct notifier_block *nb, unsigned long ulReason,
462 void *data)
463{
464 unsigned long rom_pl;
465 static int die_nmi_called;
466
467 if (ulReason != DIE_NMI && ulReason != DIE_NMI_IPI)
468 return NOTIFY_OK;
469
470 spin_lock_irqsave(&rom_lock, rom_pl);
471 if (!die_nmi_called)
472 asminline_call(&cmn_regs, cru_rom_addr);
473 die_nmi_called = 1;
474 spin_unlock_irqrestore(&rom_lock, rom_pl);
475 if (cmn_regs.u1.ral == 0) {
476 printk(KERN_WARNING "hpwdt: An NMI occurred, "
477 "but unable to determine source.\n");
478 } else {
479 if (allow_kdump)
480 hpwdt_stop();
481 panic("An NMI occurred, please see the Integrated "
482 "Management Log for details.\n");
483 }
484
485 return NOTIFY_STOP;
486}
487
488/*
487 * /dev/watchdog handling 489 * /dev/watchdog handling
488 */ 490 */
489static int hpwdt_open(struct inode *inode, struct file *file) 491static int hpwdt_open(struct inode *inode, struct file *file)
@@ -625,17 +627,18 @@ static struct notifier_block die_notifier = {
625 */ 627 */
626 628
627static int __devinit hpwdt_init_one(struct pci_dev *dev, 629static int __devinit hpwdt_init_one(struct pci_dev *dev,
628 const struct pci_device_id *ent) 630 const struct pci_device_id *ent)
629{ 631{
630 int retval; 632 int retval;
631 633
632 /* 634 /*
633 * First let's find out if we are on an iLO2 server. We will 635 * First let's find out if we are on an iLO2 server. We will
634 * not run on a legacy ASM box. 636 * not run on a legacy ASM box.
637 * So we only support the G5 ProLiant servers and higher.
635 */ 638 */
636 if (dev->subsystem_vendor != PCI_VENDOR_ID_HP) { 639 if (dev->subsystem_vendor != PCI_VENDOR_ID_HP) {
637 dev_warn(&dev->dev, 640 dev_warn(&dev->dev,
638 "This server does not have an iLO2 ASIC.\n"); 641 "This server does not have an iLO2 ASIC.\n");
639 return -ENODEV; 642 return -ENODEV;
640 } 643 }
641 644
@@ -669,7 +672,7 @@ static int __devinit hpwdt_init_one(struct pci_dev *dev,
669 retval = detect_cru_service(); 672 retval = detect_cru_service();
670 if (retval < 0) { 673 if (retval < 0) {
671 dev_warn(&dev->dev, 674 dev_warn(&dev->dev,
672 "Unable to detect the %d Bit CRU Service.\n", 675 "Unable to detect the %d Bit CRU Service.\n",
673 HPWDT_ARCH); 676 HPWDT_ARCH);
674 goto error_get_cru; 677 goto error_get_cru;
675 } 678 }
@@ -684,7 +687,7 @@ static int __devinit hpwdt_init_one(struct pci_dev *dev,
684 retval = register_die_notifier(&die_notifier); 687 retval = register_die_notifier(&die_notifier);
685 if (retval != 0) { 688 if (retval != 0) {
686 dev_warn(&dev->dev, 689 dev_warn(&dev->dev,
687 "Unable to register a die notifier (err=%d).\n", 690 "Unable to register a die notifier (err=%d).\n",
688 retval); 691 retval);
689 goto error_die_notifier; 692 goto error_die_notifier;
690 } 693 }
@@ -699,8 +702,9 @@ static int __devinit hpwdt_init_one(struct pci_dev *dev,
699 702
700 printk(KERN_INFO 703 printk(KERN_INFO
701 "hp Watchdog Timer Driver: 1.00" 704 "hp Watchdog Timer Driver: 1.00"
702 ", timer margin: %d seconds( nowayout=%d).\n", 705 ", timer margin: %d seconds (nowayout=%d)"
703 soft_margin, nowayout); 706 ", allow kernel dump: %s (default = 0/OFF).\n",
707 soft_margin, nowayout, (allow_kdump == 0) ? "OFF" : "ON");
704 708
705 return 0; 709 return 0;
706 710
@@ -755,6 +759,9 @@ MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
755module_param(soft_margin, int, 0); 759module_param(soft_margin, int, 0);
756MODULE_PARM_DESC(soft_margin, "Watchdog timeout in seconds"); 760MODULE_PARM_DESC(soft_margin, "Watchdog timeout in seconds");
757 761
762module_param(allow_kdump, int, 0);
763MODULE_PARM_DESC(allow_kdump, "Start a kernel dump after NMI occurs");
764
758module_param(nowayout, int, 0); 765module_param(nowayout, int, 0);
759MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=" 766MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
760 __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); 767 __MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
diff --git a/drivers/watchdog/ibmasr.c b/drivers/watchdog/ibmasr.c
index b82405cfb4c..89fcefcc851 100644
--- a/drivers/watchdog/ibmasr.c
+++ b/drivers/watchdog/ibmasr.c
@@ -85,7 +85,6 @@ static void __asr_toggle(void)
85 85
86 outb(reg & ~asr_toggle_mask, asr_write_addr); 86 outb(reg & ~asr_toggle_mask, asr_write_addr);
87 reg = inb(asr_read_addr); 87 reg = inb(asr_read_addr);
88 spin_unlock(&asr_lock);
89} 88}
90 89
91static void asr_toggle(void) 90static void asr_toggle(void)
diff --git a/drivers/watchdog/mpc8xx_wdt.c b/drivers/watchdog/mpc8xx_wdt.c
deleted file mode 100644
index 1336425acf2..00000000000
--- a/drivers/watchdog/mpc8xx_wdt.c
+++ /dev/null
@@ -1,170 +0,0 @@
1/*
2 * mpc8xx_wdt.c - MPC8xx watchdog userspace interface
3 *
4 * Author: Florian Schirmer <jolt@tuxbox.org>
5 *
6 * 2002 (c) Florian Schirmer <jolt@tuxbox.org> This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 */
11
12#include <linux/fs.h>
13#include <linux/init.h>
14#include <linux/kernel.h>
15#include <linux/miscdevice.h>
16#include <linux/module.h>
17#include <linux/watchdog.h>
18#include <asm/8xx_immap.h>
19#include <linux/uaccess.h>
20#include <linux/io.h>
21#include <syslib/m8xx_wdt.h>
22
23static unsigned long wdt_opened;
24static int wdt_status;
25static spinlock_t wdt_lock;
26
27static void mpc8xx_wdt_handler_disable(void)
28{
29 volatile uint __iomem *piscr;
30 piscr = (uint *)&((immap_t *)IMAP_ADDR)->im_sit.sit_piscr;
31
32 if (!m8xx_has_internal_rtc)
33 m8xx_wdt_stop_timer();
34 else
35 out_be32(piscr, in_be32(piscr) & ~(PISCR_PIE | PISCR_PTE));
36 printk(KERN_NOTICE "mpc8xx_wdt: keep-alive handler deactivated\n");
37}
38
39static void mpc8xx_wdt_handler_enable(void)
40{
41 volatile uint __iomem *piscr;
42 piscr = (uint *)&((immap_t *)IMAP_ADDR)->im_sit.sit_piscr;
43
44 if (!m8xx_has_internal_rtc)
45 m8xx_wdt_install_timer();
46 else
47 out_be32(piscr, in_be32(piscr) | PISCR_PIE | PISCR_PTE);
48 printk(KERN_NOTICE "mpc8xx_wdt: keep-alive handler activated\n");
49}
50
51static int mpc8xx_wdt_open(struct inode *inode, struct file *file)
52{
53 if (test_and_set_bit(0, &wdt_opened))
54 return -EBUSY;
55 m8xx_wdt_reset();
56 mpc8xx_wdt_handler_disable();
57 return nonseekable_open(inode, file);
58}
59
60static int mpc8xx_wdt_release(struct inode *inode, struct file *file)
61{
62 m8xx_wdt_reset();
63#if !defined(CONFIG_WATCHDOG_NOWAYOUT)
64 mpc8xx_wdt_handler_enable();
65#endif
66 clear_bit(0, &wdt_opened);
67 return 0;
68}
69
70static ssize_t mpc8xx_wdt_write(struct file *file, const char *data,
71 size_t len, loff_t *ppos)
72{
73 if (len) {
74 spin_lock(&wdt_lock);
75 m8xx_wdt_reset();
76 spin_unlock(&wdt_lock);
77 }
78 return len;
79}
80
81static long mpc8xx_wdt_ioctl(struct file *file,
82 unsigned int cmd, unsigned long arg)
83{
84 int timeout;
85 static struct watchdog_info info = {
86 .options = WDIOF_KEEPALIVEPING,
87 .firmware_version = 0,
88 .identity = "MPC8xx watchdog",
89 };
90
91 switch (cmd) {
92 case WDIOC_GETSUPPORT:
93 if (copy_to_user((void *)arg, &info, sizeof(info)))
94 return -EFAULT;
95 break;
96
97 case WDIOC_GETSTATUS:
98 case WDIOC_GETBOOTSTATUS:
99 if (put_user(wdt_status, (int *)arg))
100 return -EFAULT;
101 wdt_status &= ~WDIOF_KEEPALIVEPING;
102 break;
103
104 case WDIOC_GETTEMP:
105 return -EOPNOTSUPP;
106
107 case WDIOC_SETOPTIONS:
108 return -EOPNOTSUPP;
109
110 case WDIOC_KEEPALIVE:
111 spin_lock(&wdt_lock);
112 m8xx_wdt_reset();
113 wdt_status |= WDIOF_KEEPALIVEPING;
114 spin_unlock(&wdt_lock);
115 break;
116
117 case WDIOC_SETTIMEOUT:
118 return -EOPNOTSUPP;
119
120 case WDIOC_GETTIMEOUT:
121 spin_lock(&wdt_lock);
122 timeout = m8xx_wdt_get_timeout();
123 spin_unlock(&wdt_lock);
124 if (put_user(timeout, (int *)arg))
125 return -EFAULT;
126 break;
127
128 default:
129 return -ENOTTY;
130 }
131
132 return 0;
133}
134
135static const struct file_operations mpc8xx_wdt_fops = {
136 .owner = THIS_MODULE,
137 .llseek = no_llseek,
138 .write = mpc8xx_wdt_write,
139 .unlocked_ioctl = mpc8xx_wdt_ioctl,
140 .open = mpc8xx_wdt_open,
141 .release = mpc8xx_wdt_release,
142};
143
144static struct miscdevice mpc8xx_wdt_miscdev = {
145 .minor = WATCHDOG_MINOR,
146 .name = "watchdog",
147 .fops = &mpc8xx_wdt_fops,
148};
149
150static int __init mpc8xx_wdt_init(void)
151{
152 spin_lock_init(&wdt_lock);
153 return misc_register(&mpc8xx_wdt_miscdev);
154}
155
156static void __exit mpc8xx_wdt_exit(void)
157{
158 misc_deregister(&mpc8xx_wdt_miscdev);
159
160 m8xx_wdt_reset();
161 mpc8xx_wdt_handler_enable();
162}
163
164module_init(mpc8xx_wdt_init);
165module_exit(mpc8xx_wdt_exit);
166
167MODULE_AUTHOR("Florian Schirmer <jolt@tuxbox.org>");
168MODULE_DESCRIPTION("MPC8xx watchdog driver");
169MODULE_LICENSE("GPL");
170MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
diff --git a/drivers/watchdog/mpc8xxx_wdt.c b/drivers/watchdog/mpc8xxx_wdt.c
index f2094960e66..38c588ee694 100644
--- a/drivers/watchdog/mpc8xxx_wdt.c
+++ b/drivers/watchdog/mpc8xxx_wdt.c
@@ -48,6 +48,7 @@ struct mpc8xxx_wdt_type {
48}; 48};
49 49
50static struct mpc8xxx_wdt __iomem *wd_base; 50static struct mpc8xxx_wdt __iomem *wd_base;
51static int mpc8xxx_wdt_init_late(void);
51 52
52static u16 timeout = 0xffff; 53static u16 timeout = 0xffff;
53module_param(timeout, ushort, 0); 54module_param(timeout, ushort, 0);
@@ -213,6 +214,12 @@ static int __devinit mpc8xxx_wdt_probe(struct of_device *ofdev,
213 else 214 else
214 timeout_sec = timeout / freq; 215 timeout_sec = timeout / freq;
215 216
217#ifdef MODULE
218 ret = mpc8xxx_wdt_init_late();
219 if (ret)
220 goto err_unmap;
221#endif
222
216 pr_info("WDT driver for MPC8xxx initialized. mode:%s timeout=%d " 223 pr_info("WDT driver for MPC8xxx initialized. mode:%s timeout=%d "
217 "(%d seconds)\n", reset ? "reset" : "interrupt", timeout, 224 "(%d seconds)\n", reset ? "reset" : "interrupt", timeout,
218 timeout_sec); 225 timeout_sec);
@@ -280,7 +287,7 @@ static struct of_platform_driver mpc8xxx_wdt_driver = {
280 * very early to start pinging the watchdog (misc devices are not yet 287 * very early to start pinging the watchdog (misc devices are not yet
281 * available), and later module_init() just registers the misc device. 288 * available), and later module_init() just registers the misc device.
282 */ 289 */
283static int __init mpc8xxx_wdt_init_late(void) 290static int mpc8xxx_wdt_init_late(void)
284{ 291{
285 int ret; 292 int ret;
286 293
@@ -295,7 +302,9 @@ static int __init mpc8xxx_wdt_init_late(void)
295 } 302 }
296 return 0; 303 return 0;
297} 304}
305#ifndef MODULE
298module_init(mpc8xxx_wdt_init_late); 306module_init(mpc8xxx_wdt_init_late);
307#endif
299 308
300static int __init mpc8xxx_wdt_init(void) 309static int __init mpc8xxx_wdt_init(void)
301{ 310{
diff --git a/drivers/watchdog/pc87413_wdt.c b/drivers/watchdog/pc87413_wdt.c
index e91ada72da1..484c215e9f3 100644
--- a/drivers/watchdog/pc87413_wdt.c
+++ b/drivers/watchdog/pc87413_wdt.c
@@ -30,7 +30,6 @@
30#include <linux/init.h> 30#include <linux/init.h>
31#include <linux/spinlock.h> 31#include <linux/spinlock.h>
32#include <linux/moduleparam.h> 32#include <linux/moduleparam.h>
33#include <linux/version.h>
34#include <linux/io.h> 33#include <linux/io.h>
35#include <linux/uaccess.h> 34#include <linux/uaccess.h>
36 35
diff --git a/drivers/watchdog/pnx4008_wdt.c b/drivers/watchdog/pnx4008_wdt.c
index 0ed84162437..6d9f3d4a998 100644
--- a/drivers/watchdog/pnx4008_wdt.c
+++ b/drivers/watchdog/pnx4008_wdt.c
@@ -173,8 +173,8 @@ static const struct watchdog_info ident = {
173 .identity = "PNX4008 Watchdog", 173 .identity = "PNX4008 Watchdog",
174}; 174};
175 175
176static long pnx4008_wdt_ioctl(struct inode *inode, struct file *file, 176static long pnx4008_wdt_ioctl(struct file *file, unsigned int cmd,
177 unsigned int cmd, unsigned long arg) 177 unsigned long arg)
178{ 178{
179 int ret = -ENOTTY; 179 int ret = -ENOTTY;
180 int time; 180 int time;
diff --git a/drivers/watchdog/rc32434_wdt.c b/drivers/watchdog/rc32434_wdt.c
new file mode 100644
index 00000000000..c9c73b69c5e
--- /dev/null
+++ b/drivers/watchdog/rc32434_wdt.c
@@ -0,0 +1,344 @@
1/*
2 * IDT Interprise 79RC32434 watchdog driver
3 *
4 * Copyright (C) 2006, Ondrej Zajicek <santiago@crfreenet.org>
5 * Copyright (C) 2008, Florian Fainelli <florian@openwrt.org>
6 *
7 * based on
8 * SoftDog 0.05: A Software Watchdog Device
9 *
10 * (c) Copyright 1996 Alan Cox <alan@redhat.com>, All Rights Reserved.
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version
15 * 2 of the License, or (at your option) any later version.
16 *
17 */
18
19#include <linux/module.h>
20#include <linux/types.h>
21#include <linux/kernel.h>
22#include <linux/fs.h>
23#include <linux/mm.h>
24#include <linux/miscdevice.h>
25#include <linux/watchdog.h>
26#include <linux/reboot.h>
27#include <linux/smp_lock.h>
28#include <linux/init.h>
29#include <linux/platform_device.h>
30#include <linux/uaccess.h>
31
32#include <asm/bootinfo.h>
33#include <asm/time.h>
34#include <asm/mach-rc32434/integ.h>
35
36#define MAX_TIMEOUT 20
37#define RC32434_WDT_INTERVAL (15 * HZ)
38
39#define VERSION "0.2"
40
41static struct {
42 struct completion stop;
43 int running;
44 struct timer_list timer;
45 int queue;
46 int default_ticks;
47 unsigned long inuse;
48} rc32434_wdt_device;
49
50static struct integ __iomem *wdt_reg;
51static int ticks = 100 * HZ;
52
53static int expect_close;
54static int timeout;
55
56static int nowayout = WATCHDOG_NOWAYOUT;
57module_param(nowayout, int, 0);
58MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
59 __MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
60
61
62static void rc32434_wdt_start(void)
63{
64 u32 val;
65
66 if (!rc32434_wdt_device.inuse) {
67 writel(0, &wdt_reg->wtcount);
68
69 val = RC32434_ERR_WRE;
70 writel(readl(&wdt_reg->errcs) | val, &wdt_reg->errcs);
71
72 val = RC32434_WTC_EN;
73 writel(readl(&wdt_reg->wtc) | val, &wdt_reg->wtc);
74 }
75 rc32434_wdt_device.running++;
76}
77
78static void rc32434_wdt_stop(void)
79{
80 u32 val;
81
82 if (rc32434_wdt_device.running) {
83
84 val = ~RC32434_WTC_EN;
85 writel(readl(&wdt_reg->wtc) & val, &wdt_reg->wtc);
86
87 val = ~RC32434_ERR_WRE;
88 writel(readl(&wdt_reg->errcs) & val, &wdt_reg->errcs);
89
90 rc32434_wdt_device.running = 0;
91 }
92}
93
94static void rc32434_wdt_set(int new_timeout)
95{
96 u32 cmp = new_timeout * HZ;
97 u32 state, val;
98
99 timeout = new_timeout;
100 /*
101 * store and disable WTC
102 */
103 state = (u32)(readl(&wdt_reg->wtc) & RC32434_WTC_EN);
104 val = ~RC32434_WTC_EN;
105 writel(readl(&wdt_reg->wtc) & val, &wdt_reg->wtc);
106
107 writel(0, &wdt_reg->wtcount);
108 writel(cmp, &wdt_reg->wtcompare);
109
110 /*
111 * restore WTC
112 */
113
114 writel(readl(&wdt_reg->wtc) | state, &wdt_reg);
115}
116
117static void rc32434_wdt_reset(void)
118{
119 ticks = rc32434_wdt_device.default_ticks;
120}
121
122static void rc32434_wdt_update(unsigned long unused)
123{
124 if (rc32434_wdt_device.running)
125 ticks--;
126
127 writel(0, &wdt_reg->wtcount);
128
129 if (rc32434_wdt_device.queue && ticks)
130 mod_timer(&rc32434_wdt_device.timer,
131 jiffies + RC32434_WDT_INTERVAL);
132 else
133 complete(&rc32434_wdt_device.stop);
134}
135
136static int rc32434_wdt_open(struct inode *inode, struct file *file)
137{
138 if (test_and_set_bit(0, &rc32434_wdt_device.inuse))
139 return -EBUSY;
140
141 if (nowayout)
142 __module_get(THIS_MODULE);
143
144 return nonseekable_open(inode, file);
145}
146
147static int rc32434_wdt_release(struct inode *inode, struct file *file)
148{
149 if (expect_close && nowayout == 0) {
150 rc32434_wdt_stop();
151 printk(KERN_INFO KBUILD_MODNAME ": disabling watchdog timer\n");
152 module_put(THIS_MODULE);
153 } else
154 printk(KERN_CRIT KBUILD_MODNAME
155 ": device closed unexpectedly. WDT will not stop !\n");
156
157 clear_bit(0, &rc32434_wdt_device.inuse);
158 return 0;
159}
160
161static ssize_t rc32434_wdt_write(struct file *file, const char *data,
162 size_t len, loff_t *ppos)
163{
164 if (len) {
165 if (!nowayout) {
166 size_t i;
167
168 /* In case it was set long ago */
169 expect_close = 0;
170
171 for (i = 0; i != len; i++) {
172 char c;
173 if (get_user(c, data + i))
174 return -EFAULT;
175 if (c == 'V')
176 expect_close = 1;
177 }
178 }
179 rc32434_wdt_update(0);
180 return len;
181 }
182 return 0;
183}
184
185static long rc32434_wdt_ioctl(struct file *file, unsigned int cmd,
186 unsigned long arg)
187{
188 void __user *argp = (void __user *)arg;
189 int new_timeout;
190 unsigned int value;
191 static struct watchdog_info ident = {
192 .options = WDIOF_SETTIMEOUT |
193 WDIOF_KEEPALIVEPING |
194 WDIOF_MAGICCLOSE,
195 .identity = "RC32434_WDT Watchdog",
196 };
197 switch (cmd) {
198 case WDIOC_KEEPALIVE:
199 rc32434_wdt_reset();
200 break;
201 case WDIOC_GETSTATUS:
202 case WDIOC_GETBOOTSTATUS:
203 value = readl(&wdt_reg->wtcount);
204 if (copy_to_user(argp, &value, sizeof(int)))
205 return -EFAULT;
206 break;
207 case WDIOC_GETSUPPORT:
208 if (copy_to_user(argp, &ident, sizeof(ident)))
209 return -EFAULT;
210 break;
211 case WDIOC_SETOPTIONS:
212 if (copy_from_user(&value, argp, sizeof(int)))
213 return -EFAULT;
214 switch (value) {
215 case WDIOS_ENABLECARD:
216 rc32434_wdt_start();
217 break;
218 case WDIOS_DISABLECARD:
219 rc32434_wdt_stop();
220 default:
221 return -EINVAL;
222 }
223 break;
224 case WDIOC_SETTIMEOUT:
225 if (copy_from_user(&new_timeout, argp, sizeof(int)))
226 return -EFAULT;
227 if (new_timeout < 1)
228 return -EINVAL;
229 if (new_timeout > MAX_TIMEOUT)
230 return -EINVAL;
231 rc32434_wdt_set(new_timeout);
232 case WDIOC_GETTIMEOUT:
233 return copy_to_user(argp, &timeout, sizeof(int));
234 default:
235 return -ENOTTY;
236 }
237
238 return 0;
239}
240
241static struct file_operations rc32434_wdt_fops = {
242 .owner = THIS_MODULE,
243 .llseek = no_llseek,
244 .write = rc32434_wdt_write,
245 .unlocked_ioctl = rc32434_wdt_ioctl,
246 .open = rc32434_wdt_open,
247 .release = rc32434_wdt_release,
248};
249
250static struct miscdevice rc32434_wdt_miscdev = {
251 .minor = WATCHDOG_MINOR,
252 .name = "watchdog",
253 .fops = &rc32434_wdt_fops,
254};
255
256static char banner[] = KERN_INFO KBUILD_MODNAME
257 ": Watchdog Timer version " VERSION ", timer margin: %d sec\n";
258
259static int rc32434_wdt_probe(struct platform_device *pdev)
260{
261 int ret;
262 struct resource *r;
263
264 r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rb500_wdt_res");
265 if (!r) {
266 printk(KERN_ERR KBUILD_MODNAME
267 "failed to retrieve resources\n");
268 return -ENODEV;
269 }
270
271 wdt_reg = ioremap_nocache(r->start, r->end - r->start);
272 if (!wdt_reg) {
273 printk(KERN_ERR KBUILD_MODNAME
274 "failed to remap I/O resources\n");
275 return -ENXIO;
276 }
277
278 ret = misc_register(&rc32434_wdt_miscdev);
279
280 if (ret < 0) {
281 printk(KERN_ERR KBUILD_MODNAME
282 "failed to register watchdog device\n");
283 goto unmap;
284 }
285
286 init_completion(&rc32434_wdt_device.stop);
287 rc32434_wdt_device.queue = 0;
288
289 clear_bit(0, &rc32434_wdt_device.inuse);
290
291 setup_timer(&rc32434_wdt_device.timer, rc32434_wdt_update, 0L);
292
293 rc32434_wdt_device.default_ticks = ticks;
294
295 rc32434_wdt_start();
296
297 printk(banner, timeout);
298
299 return 0;
300
301unmap:
302 iounmap(wdt_reg);
303 return ret;
304}
305
306static int rc32434_wdt_remove(struct platform_device *pdev)
307{
308 if (rc32434_wdt_device.queue) {
309 rc32434_wdt_device.queue = 0;
310 wait_for_completion(&rc32434_wdt_device.stop);
311 }
312 misc_deregister(&rc32434_wdt_miscdev);
313
314 iounmap(wdt_reg);
315
316 return 0;
317}
318
319static struct platform_driver rc32434_wdt = {
320 .probe = rc32434_wdt_probe,
321 .remove = rc32434_wdt_remove,
322 .driver = {
323 .name = "rc32434_wdt",
324 }
325};
326
327static int __init rc32434_wdt_init(void)
328{
329 return platform_driver_register(&rc32434_wdt);
330}
331
332static void __exit rc32434_wdt_exit(void)
333{
334 platform_driver_unregister(&rc32434_wdt);
335}
336
337module_init(rc32434_wdt_init);
338module_exit(rc32434_wdt_exit);
339
340MODULE_AUTHOR("Ondrej Zajicek <santiago@crfreenet.org>,"
341 "Florian Fainelli <florian@openwrt.org>");
342MODULE_DESCRIPTION("Driver for the IDT RC32434 SoC watchdog");
343MODULE_LICENSE("GPL");
344MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
diff --git a/drivers/watchdog/rdc321x_wdt.c b/drivers/watchdog/rdc321x_wdt.c
new file mode 100644
index 00000000000..bf92802f2bb
--- /dev/null
+++ b/drivers/watchdog/rdc321x_wdt.c
@@ -0,0 +1,285 @@
1/*
2 * RDC321x watchdog driver
3 *
4 * Copyright (C) 2007 Florian Fainelli <florian@openwrt.org>
5 *
6 * This driver is highly inspired from the cpu5_wdt driver
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 *
22 */
23
24#include <linux/module.h>
25#include <linux/moduleparam.h>
26#include <linux/types.h>
27#include <linux/errno.h>
28#include <linux/miscdevice.h>
29#include <linux/fs.h>
30#include <linux/init.h>
31#include <linux/ioport.h>
32#include <linux/timer.h>
33#include <linux/completion.h>
34#include <linux/jiffies.h>
35#include <linux/platform_device.h>
36#include <linux/watchdog.h>
37#include <linux/io.h>
38#include <linux/uaccess.h>
39
40#include <asm/mach-rdc321x/rdc321x_defs.h>
41
42#define RDC_WDT_MASK 0x80000000 /* Mask */
43#define RDC_WDT_EN 0x00800000 /* Enable bit */
44#define RDC_WDT_WTI 0x00200000 /* Generate CPU reset/NMI/WDT on timeout */
45#define RDC_WDT_RST 0x00100000 /* Reset bit */
46#define RDC_WDT_WIF 0x00040000 /* WDT IRQ Flag */
47#define RDC_WDT_IRT 0x00000100 /* IRQ Routing table */
48#define RDC_WDT_CNT 0x00000001 /* WDT count */
49
50#define RDC_CLS_TMR 0x80003844 /* Clear timer */
51
52#define RDC_WDT_INTERVAL (HZ/10+1)
53
54static int ticks = 1000;
55
56/* some device data */
57
58static struct {
59 struct completion stop;
60 int running;
61 struct timer_list timer;
62 int queue;
63 int default_ticks;
64 unsigned long inuse;
65 spinlock_t lock;
66} rdc321x_wdt_device;
67
68/* generic helper functions */
69
70static void rdc321x_wdt_trigger(unsigned long unused)
71{
72 unsigned long flags;
73
74 if (rdc321x_wdt_device.running)
75 ticks--;
76
77 /* keep watchdog alive */
78 spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
79 outl(RDC_WDT_EN | inl(RDC3210_CFGREG_DATA),
80 RDC3210_CFGREG_DATA);
81 spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
82
83 /* requeue?? */
84 if (rdc321x_wdt_device.queue && ticks)
85 mod_timer(&rdc321x_wdt_device.timer,
86 jiffies + RDC_WDT_INTERVAL);
87 else {
88 /* ticks doesn't matter anyway */
89 complete(&rdc321x_wdt_device.stop);
90 }
91
92}
93
94static void rdc321x_wdt_reset(void)
95{
96 ticks = rdc321x_wdt_device.default_ticks;
97}
98
99static void rdc321x_wdt_start(void)
100{
101 unsigned long flags;
102
103 if (!rdc321x_wdt_device.queue) {
104 rdc321x_wdt_device.queue = 1;
105
106 /* Clear the timer */
107 spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
108 outl(RDC_CLS_TMR, RDC3210_CFGREG_ADDR);
109
110 /* Enable watchdog and set the timeout to 81.92 us */
111 outl(RDC_WDT_EN | RDC_WDT_CNT, RDC3210_CFGREG_DATA);
112 spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
113
114 mod_timer(&rdc321x_wdt_device.timer,
115 jiffies + RDC_WDT_INTERVAL);
116 }
117
118 /* if process dies, counter is not decremented */
119 rdc321x_wdt_device.running++;
120}
121
122static int rdc321x_wdt_stop(void)
123{
124 if (rdc321x_wdt_device.running)
125 rdc321x_wdt_device.running = 0;
126
127 ticks = rdc321x_wdt_device.default_ticks;
128
129 return -EIO;
130}
131
132/* filesystem operations */
133static int rdc321x_wdt_open(struct inode *inode, struct file *file)
134{
135 if (test_and_set_bit(0, &rdc321x_wdt_device.inuse))
136 return -EBUSY;
137
138 return nonseekable_open(inode, file);
139}
140
141static int rdc321x_wdt_release(struct inode *inode, struct file *file)
142{
143 clear_bit(0, &rdc321x_wdt_device.inuse);
144 return 0;
145}
146
147static long rdc321x_wdt_ioctl(struct file *file, unsigned int cmd,
148 unsigned long arg)
149{
150 void __user *argp = (void __user *)arg;
151 unsigned int value;
152 static struct watchdog_info ident = {
153 .options = WDIOF_CARDRESET,
154 .identity = "RDC321x WDT",
155 };
156 unsigned long flags;
157
158 switch (cmd) {
159 case WDIOC_KEEPALIVE:
160 rdc321x_wdt_reset();
161 break;
162 case WDIOC_GETSTATUS:
163 /* Read the value from the DATA register */
164 spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
165 value = inl(RDC3210_CFGREG_DATA);
166 spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
167 if (copy_to_user(argp, &value, sizeof(int)))
168 return -EFAULT;
169 break;
170 case WDIOC_GETSUPPORT:
171 if (copy_to_user(argp, &ident, sizeof(ident)))
172 return -EFAULT;
173 break;
174 case WDIOC_SETOPTIONS:
175 if (copy_from_user(&value, argp, sizeof(int)))
176 return -EFAULT;
177 switch (value) {
178 case WDIOS_ENABLECARD:
179 rdc321x_wdt_start();
180 break;
181 case WDIOS_DISABLECARD:
182 return rdc321x_wdt_stop();
183 default:
184 return -EINVAL;
185 }
186 break;
187 default:
188 return -ENOTTY;
189 }
190 return 0;
191}
192
193static ssize_t rdc321x_wdt_write(struct file *file, const char __user *buf,
194 size_t count, loff_t *ppos)
195{
196 if (!count)
197 return -EIO;
198
199 rdc321x_wdt_reset();
200
201 return count;
202}
203
204static const struct file_operations rdc321x_wdt_fops = {
205 .owner = THIS_MODULE,
206 .llseek = no_llseek,
207 .unlocked_ioctl = rdc321x_wdt_ioctl,
208 .open = rdc321x_wdt_open,
209 .write = rdc321x_wdt_write,
210 .release = rdc321x_wdt_release,
211};
212
213static struct miscdevice rdc321x_wdt_misc = {
214 .minor = WATCHDOG_MINOR,
215 .name = "watchdog",
216 .fops = &rdc321x_wdt_fops,
217};
218
219static int __devinit rdc321x_wdt_probe(struct platform_device *pdev)
220{
221 int err;
222
223 err = misc_register(&rdc321x_wdt_misc);
224 if (err < 0) {
225 printk(KERN_ERR PFX "watchdog misc_register failed\n");
226 return err;
227 }
228
229 spin_lock_init(&rdc321x_wdt_device.lock);
230
231 /* Reset the watchdog */
232 outl(RDC_WDT_RST, RDC3210_CFGREG_DATA);
233
234 init_completion(&rdc321x_wdt_device.stop);
235 rdc321x_wdt_device.queue = 0;
236
237 clear_bit(0, &rdc321x_wdt_device.inuse);
238
239 setup_timer(&rdc321x_wdt_device.timer, rdc321x_wdt_trigger, 0);
240
241 rdc321x_wdt_device.default_ticks = ticks;
242
243 printk(KERN_INFO PFX "watchdog init success\n");
244
245 return 0;
246}
247
248static int rdc321x_wdt_remove(struct platform_device *pdev)
249{
250 if (rdc321x_wdt_device.queue) {
251 rdc321x_wdt_device.queue = 0;
252 wait_for_completion(&rdc321x_wdt_device.stop);
253 }
254
255 misc_deregister(&rdc321x_wdt_misc);
256
257 return 0;
258}
259
260static struct platform_driver rdc321x_wdt_driver = {
261 .probe = rdc321x_wdt_probe,
262 .remove = rdc321x_wdt_remove,
263 .driver = {
264 .owner = THIS_MODULE,
265 .name = "rdc321x-wdt",
266 },
267};
268
269static int __init rdc321x_wdt_init(void)
270{
271 return platform_driver_register(&rdc321x_wdt_driver);
272}
273
274static void __exit rdc321x_wdt_exit(void)
275{
276 platform_driver_unregister(&rdc321x_wdt_driver);
277}
278
279module_init(rdc321x_wdt_init);
280module_exit(rdc321x_wdt_exit);
281
282MODULE_AUTHOR("Florian Fainelli <florian@openwrt.org>");
283MODULE_DESCRIPTION("RDC321x watchdog driver");
284MODULE_LICENSE("GPL");
285MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c
index 22715e3be5e..86d42801de4 100644
--- a/drivers/watchdog/s3c2410_wdt.c
+++ b/drivers/watchdog/s3c2410_wdt.c
@@ -21,18 +21,6 @@
21 * You should have received a copy of the GNU General Public License 21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software 22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 *
25 * Changelog:
26 * 05-Oct-2004 BJD Added semaphore init to stop crashes on open
27 * Fixed tmr_count / wdt_count confusion
28 * Added configurable debug
29 *
30 * 11-Jan-2005 BJD Fixed divide-by-2 in timeout code
31 *
32 * 25-Jan-2005 DA Added suspend/resume support
33 * Replaced reboot notifier with .shutdown method
34 *
35 * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
36*/ 24*/
37 25
38#include <linux/module.h> 26#include <linux/module.h>
@@ -365,7 +353,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
365 return -ENOENT; 353 return -ENOENT;
366 } 354 }
367 355
368 size = (res->end-res->start)+1; 356 size = (res->end - res->start) + 1;
369 wdt_mem = request_mem_region(res->start, size, pdev->name); 357 wdt_mem = request_mem_region(res->start, size, pdev->name);
370 if (wdt_mem == NULL) { 358 if (wdt_mem == NULL) {
371 dev_err(dev, "failed to get memory region\n"); 359 dev_err(dev, "failed to get memory region\n");
@@ -374,7 +362,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
374 } 362 }
375 363
376 wdt_base = ioremap(res->start, size); 364 wdt_base = ioremap(res->start, size);
377 if (wdt_base == 0) { 365 if (wdt_base == NULL) {
378 dev_err(dev, "failed to ioremap() region\n"); 366 dev_err(dev, "failed to ioremap() region\n");
379 ret = -EINVAL; 367 ret = -EINVAL;
380 goto err_req; 368 goto err_req;
diff --git a/drivers/watchdog/wdt285.c b/drivers/watchdog/wdt285.c
index db362c34958..191ea630210 100644
--- a/drivers/watchdog/wdt285.c
+++ b/drivers/watchdog/wdt285.c
@@ -115,8 +115,8 @@ static int watchdog_release(struct inode *inode, struct file *file)
115 return 0; 115 return 0;
116} 116}
117 117
118static ssize_t watchdog_write(struct file *file, const char *data, 118static ssize_t watchdog_write(struct file *file, const char __user *data,
119 size_t len, loff_t *ppos) 119 size_t len, loff_t *ppos)
120{ 120{
121 /* 121 /*
122 * Refresh the timer. 122 * Refresh the timer.
@@ -133,21 +133,22 @@ static const struct watchdog_info ident = {
133}; 133};
134 134
135static long watchdog_ioctl(struct file *file, unsigned int cmd, 135static long watchdog_ioctl(struct file *file, unsigned int cmd,
136 unsigned long arg) 136 unsigned long arg)
137{ 137{
138 unsigned int new_margin; 138 unsigned int new_margin;
139 int __user *int_arg = (int __user *)arg;
139 int ret = -ENOTTY; 140 int ret = -ENOTTY;
140 141
141 switch (cmd) { 142 switch (cmd) {
142 case WDIOC_GETSUPPORT: 143 case WDIOC_GETSUPPORT:
143 ret = 0; 144 ret = 0;
144 if (copy_to_user((void *)arg, &ident, sizeof(ident))) 145 if (copy_to_user((void __user *)arg, &ident, sizeof(ident)))
145 ret = -EFAULT; 146 ret = -EFAULT;
146 break; 147 break;
147 148
148 case WDIOC_GETSTATUS: 149 case WDIOC_GETSTATUS:
149 case WDIOC_GETBOOTSTATUS: 150 case WDIOC_GETBOOTSTATUS:
150 ret = put_user(0, (int *)arg); 151 ret = put_user(0, int_arg);
151 break; 152 break;
152 153
153 case WDIOC_KEEPALIVE: 154 case WDIOC_KEEPALIVE:
@@ -156,7 +157,7 @@ static long watchdog_ioctl(struct file *file, unsigned int cmd,
156 break; 157 break;
157 158
158 case WDIOC_SETTIMEOUT: 159 case WDIOC_SETTIMEOUT:
159 ret = get_user(new_margin, (int *)arg); 160 ret = get_user(new_margin, int_arg);
160 if (ret) 161 if (ret)
161 break; 162 break;
162 163
@@ -171,7 +172,7 @@ static long watchdog_ioctl(struct file *file, unsigned int cmd,
171 watchdog_ping(); 172 watchdog_ping();
172 /* Fall */ 173 /* Fall */
173 case WDIOC_GETTIMEOUT: 174 case WDIOC_GETTIMEOUT:
174 ret = put_user(soft_margin, (int *)arg); 175 ret = put_user(soft_margin, int_arg);
175 break; 176 break;
176 } 177 }
177 return ret; 178 return ret;
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index d4427cb8697..2e15da5459c 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -60,7 +60,7 @@
60 60
61#define PAGES2KB(_p) ((_p)<<(PAGE_SHIFT-10)) 61#define PAGES2KB(_p) ((_p)<<(PAGE_SHIFT-10))
62 62
63#define BALLOON_CLASS_NAME "memory" 63#define BALLOON_CLASS_NAME "xen_memory"
64 64
65struct balloon_stats { 65struct balloon_stats {
66 /* We aim for 'current allocation' == 'target allocation'. */ 66 /* We aim for 'current allocation' == 'target allocation'. */
diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c
index a5bc91ae6ff..d0e87cbe157 100644
--- a/drivers/xen/manage.c
+++ b/drivers/xen/manage.c
@@ -102,7 +102,7 @@ static void do_suspend(void)
102 /* XXX use normal device tree? */ 102 /* XXX use normal device tree? */
103 xenbus_suspend(); 103 xenbus_suspend();
104 104
105 err = stop_machine_run(xen_suspend, &cancelled, 0); 105 err = stop_machine(xen_suspend, &cancelled, &cpumask_of_cpu(0));
106 if (err) { 106 if (err) {
107 printk(KERN_ERR "failed to start xen_suspend: %d\n", err); 107 printk(KERN_ERR "failed to start xen_suspend: %d\n", err);
108 goto out; 108 goto out;
diff --git a/firmware/Makefile b/firmware/Makefile
index 9fe86041f86..da75a6fbc6b 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -146,15 +146,27 @@ $(patsubst %,$(obj)/%.gen.o, $(fw-external-y)): $(obj)/%.gen.o: $(fwdir)/%
146$(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %) 146$(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %)
147 $(call cmd,ihex) 147 $(call cmd,ihex)
148 148
149# Don't depend on ihex2fw if we're installing and it already exists.
150# Putting it after | in the dependencies doesn't seem sufficient when
151# we're installing after a cross-compile, because ihex2fw has dependencies
152# on stuff like /usr/lib/gcc/ppc64-redhat-linux/4.3.0/include/stddef.h and
153# thus wants to be rebuilt. Which it can't be, if the prebuilt kernel tree
154# is exported read-only for someone to run 'make install'.
155ifeq ($(INSTALL):$(wildcard $(obj)/ihex2fw),install:$(obj)/ihex2fw)
156ihex2fw_dep :=
157else
158ihex2fw_dep := $(obj)/ihex2fw
159endif
160
149# .HEX is also Intel HEX, but where the offset and length in each record 161# .HEX is also Intel HEX, but where the offset and length in each record
150# is actually meaningful, because the firmware has to be loaded in a certain 162# is actually meaningful, because the firmware has to be loaded in a certain
151# order rather than as a single binary blob. Thus, we convert them into our 163# order rather than as a single binary blob. Thus, we convert them into our
152# more compact binary representation of ihex records (<linux/ihex.h>) 164# more compact binary representation of ihex records (<linux/ihex.h>)
153$(obj)/%.fw: $(obj)/%.HEX $(obj)/ihex2fw | $(objtree)/$(obj)/$$(dir %) 165$(obj)/%.fw: $(obj)/%.HEX $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %)
154 $(call cmd,ihex2fw) 166 $(call cmd,ihex2fw)
155 167
156# .H16 is our own modified form of Intel HEX, with 16-bit length for records. 168# .H16 is our own modified form of Intel HEX, with 16-bit length for records.
157$(obj)/%.fw: $(obj)/%.H16 $(obj)/ihex2fw | $(objtree)/$(obj)/$$(dir %) 169$(obj)/%.fw: $(obj)/%.H16 $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %)
158 $(call cmd,h16tofw) 170 $(call cmd,h16tofw)
159 171
160$(firmware-dirs): 172$(firmware-dirs):
diff --git a/fs/9p/vfs_dir.c b/fs/9p/vfs_dir.c
index 88e3787c6ea..e298fe19409 100644
--- a/fs/9p/vfs_dir.c
+++ b/fs/9p/vfs_dir.c
@@ -119,6 +119,7 @@ int v9fs_dir_release(struct inode *inode, struct file *filp)
119 119
120const struct file_operations v9fs_dir_operations = { 120const struct file_operations v9fs_dir_operations = {
121 .read = generic_read_dir, 121 .read = generic_read_dir,
122 .llseek = generic_file_llseek,
122 .readdir = v9fs_dir_readdir, 123 .readdir = v9fs_dir_readdir,
123 .open = v9fs_file_open, 124 .open = v9fs_file_open,
124 .release = v9fs_dir_release, 125 .release = v9fs_dir_release,
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
index c95295c6504..e83aa5ebe86 100644
--- a/fs/9p/vfs_inode.c
+++ b/fs/9p/vfs_inode.c
@@ -626,8 +626,7 @@ static struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry,
626 return NULL; 626 return NULL;
627 627
628error: 628error:
629 if (fid) 629 p9_client_clunk(fid);
630 p9_client_clunk(fid);
631 630
632 return ERR_PTR(result); 631 return ERR_PTR(result);
633} 632}
diff --git a/fs/Kconfig b/fs/Kconfig
index d3873583360..abccb5dab9a 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -1930,6 +1930,16 @@ config CIFS_WEAK_PW_HASH
1930 1930
1931 If unsure, say N. 1931 If unsure, say N.
1932 1932
1933config CIFS_UPCALL
1934 bool "Kerberos/SPNEGO advanced session setup"
1935 depends on CIFS && KEYS
1936 help
1937 Enables an upcall mechanism for CIFS which accesses
1938 userspace helper utilities to provide SPNEGO packaged (RFC 4178)
1939 Kerberos tickets which are needed to mount to certain secure servers
1940 (for which more secure Kerberos authentication is required). If
1941 unsure, say N.
1942
1933config CIFS_XATTR 1943config CIFS_XATTR
1934 bool "CIFS extended attributes" 1944 bool "CIFS extended attributes"
1935 depends on CIFS 1945 depends on CIFS
@@ -1982,17 +1992,6 @@ config CIFS_EXPERIMENTAL
1982 (which is disabled by default). See the file fs/cifs/README 1992 (which is disabled by default). See the file fs/cifs/README
1983 for more details. If unsure, say N. 1993 for more details. If unsure, say N.
1984 1994
1985config CIFS_UPCALL
1986 bool "Kerberos/SPNEGO advanced session setup (EXPERIMENTAL)"
1987 depends on CIFS_EXPERIMENTAL
1988 depends on KEYS
1989 help
1990 Enables an upcall mechanism for CIFS which accesses
1991 userspace helper utilities to provide SPNEGO packaged (RFC 4178)
1992 Kerberos tickets which are needed to mount to certain secure servers
1993 (for which more secure Kerberos authentication is required). If
1994 unsure, say N.
1995
1996config CIFS_DFS_UPCALL 1995config CIFS_DFS_UPCALL
1997 bool "DFS feature support (EXPERIMENTAL)" 1996 bool "DFS feature support (EXPERIMENTAL)"
1998 depends on CIFS_EXPERIMENTAL 1997 depends on CIFS_EXPERIMENTAL
diff --git a/fs/adfs/dir.c b/fs/adfs/dir.c
index fc1a8dc64d7..85a30e92980 100644
--- a/fs/adfs/dir.c
+++ b/fs/adfs/dir.c
@@ -197,6 +197,7 @@ out:
197 197
198const struct file_operations adfs_dir_operations = { 198const struct file_operations adfs_dir_operations = {
199 .read = generic_read_dir, 199 .read = generic_read_dir,
200 .llseek = generic_file_llseek,
200 .readdir = adfs_readdir, 201 .readdir = adfs_readdir,
201 .fsync = file_fsync, 202 .fsync = file_fsync,
202}; 203};
diff --git a/fs/affs/dir.c b/fs/affs/dir.c
index 6e3f282424b..7b36904dbea 100644
--- a/fs/affs/dir.c
+++ b/fs/affs/dir.c
@@ -19,6 +19,7 @@ static int affs_readdir(struct file *, void *, filldir_t);
19 19
20const struct file_operations affs_dir_operations = { 20const struct file_operations affs_dir_operations = {
21 .read = generic_read_dir, 21 .read = generic_read_dir,
22 .llseek = generic_file_llseek,
22 .readdir = affs_readdir, 23 .readdir = affs_readdir,
23 .fsync = file_fsync, 24 .fsync = file_fsync,
24}; 25};
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c
index bcfb2dc0a61..2a41c2a7fc5 100644
--- a/fs/autofs4/root.c
+++ b/fs/autofs4/root.c
@@ -36,6 +36,7 @@ const struct file_operations autofs4_root_operations = {
36 .release = dcache_dir_close, 36 .release = dcache_dir_close,
37 .read = generic_read_dir, 37 .read = generic_read_dir,
38 .readdir = dcache_readdir, 38 .readdir = dcache_readdir,
39 .llseek = dcache_dir_lseek,
39 .ioctl = autofs4_root_ioctl, 40 .ioctl = autofs4_root_ioctl,
40}; 41};
41 42
@@ -44,6 +45,7 @@ const struct file_operations autofs4_dir_operations = {
44 .release = dcache_dir_close, 45 .release = dcache_dir_close,
45 .read = generic_read_dir, 46 .read = generic_read_dir,
46 .readdir = dcache_readdir, 47 .readdir = dcache_readdir,
48 .llseek = dcache_dir_lseek,
47}; 49};
48 50
49const struct inode_operations autofs4_indirect_root_inode_operations = { 51const struct inode_operations autofs4_indirect_root_inode_operations = {
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
index 02c6e62b72f..740f53672a8 100644
--- a/fs/befs/linuxvfs.c
+++ b/fs/befs/linuxvfs.c
@@ -66,6 +66,7 @@ static struct kmem_cache *befs_inode_cachep;
66static const struct file_operations befs_dir_operations = { 66static const struct file_operations befs_dir_operations = {
67 .read = generic_read_dir, 67 .read = generic_read_dir,
68 .readdir = befs_readdir, 68 .readdir = befs_readdir,
69 .llseek = generic_file_llseek,
69}; 70};
70 71
71static const struct inode_operations befs_dir_inode_operations = { 72static const struct inode_operations befs_dir_inode_operations = {
diff --git a/fs/bfs/dir.c b/fs/bfs/dir.c
index 87ee5ccee34..ed8feb052df 100644
--- a/fs/bfs/dir.c
+++ b/fs/bfs/dir.c
@@ -125,8 +125,8 @@ static int bfs_create(struct inode *dir, struct dentry *dentry, int mode,
125 inode->i_ino); 125 inode->i_ino);
126 if (err) { 126 if (err) {
127 inode_dec_link_count(inode); 127 inode_dec_link_count(inode);
128 iput(inode);
129 mutex_unlock(&info->bfs_lock); 128 mutex_unlock(&info->bfs_lock);
129 iput(inode);
130 return err; 130 return err;
131 } 131 }
132 mutex_unlock(&info->bfs_lock); 132 mutex_unlock(&info->bfs_lock);
diff --git a/fs/bio.c b/fs/bio.c
index 8000e2fa16c..3cba7ae34d7 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -469,20 +469,21 @@ static void bio_free_map_data(struct bio_map_data *bmd)
469 kfree(bmd); 469 kfree(bmd);
470} 470}
471 471
472static struct bio_map_data *bio_alloc_map_data(int nr_segs, int iov_count) 472static struct bio_map_data *bio_alloc_map_data(int nr_segs, int iov_count,
473 gfp_t gfp_mask)
473{ 474{
474 struct bio_map_data *bmd = kmalloc(sizeof(*bmd), GFP_KERNEL); 475 struct bio_map_data *bmd = kmalloc(sizeof(*bmd), gfp_mask);
475 476
476 if (!bmd) 477 if (!bmd)
477 return NULL; 478 return NULL;
478 479
479 bmd->iovecs = kmalloc(sizeof(struct bio_vec) * nr_segs, GFP_KERNEL); 480 bmd->iovecs = kmalloc(sizeof(struct bio_vec) * nr_segs, gfp_mask);
480 if (!bmd->iovecs) { 481 if (!bmd->iovecs) {
481 kfree(bmd); 482 kfree(bmd);
482 return NULL; 483 return NULL;
483 } 484 }
484 485
485 bmd->sgvecs = kmalloc(sizeof(struct sg_iovec) * iov_count, GFP_KERNEL); 486 bmd->sgvecs = kmalloc(sizeof(struct sg_iovec) * iov_count, gfp_mask);
486 if (bmd->sgvecs) 487 if (bmd->sgvecs)
487 return bmd; 488 return bmd;
488 489
@@ -491,8 +492,8 @@ static struct bio_map_data *bio_alloc_map_data(int nr_segs, int iov_count)
491 return NULL; 492 return NULL;
492} 493}
493 494
494static int __bio_copy_iov(struct bio *bio, struct sg_iovec *iov, int iov_count, 495static int __bio_copy_iov(struct bio *bio, struct bio_vec *iovecs,
495 int uncopy) 496 struct sg_iovec *iov, int iov_count, int uncopy)
496{ 497{
497 int ret = 0, i; 498 int ret = 0, i;
498 struct bio_vec *bvec; 499 struct bio_vec *bvec;
@@ -502,7 +503,7 @@ static int __bio_copy_iov(struct bio *bio, struct sg_iovec *iov, int iov_count,
502 503
503 __bio_for_each_segment(bvec, bio, i, 0) { 504 __bio_for_each_segment(bvec, bio, i, 0) {
504 char *bv_addr = page_address(bvec->bv_page); 505 char *bv_addr = page_address(bvec->bv_page);
505 unsigned int bv_len = bvec->bv_len; 506 unsigned int bv_len = iovecs[i].bv_len;
506 507
507 while (bv_len && iov_idx < iov_count) { 508 while (bv_len && iov_idx < iov_count) {
508 unsigned int bytes; 509 unsigned int bytes;
@@ -554,7 +555,7 @@ int bio_uncopy_user(struct bio *bio)
554 struct bio_map_data *bmd = bio->bi_private; 555 struct bio_map_data *bmd = bio->bi_private;
555 int ret; 556 int ret;
556 557
557 ret = __bio_copy_iov(bio, bmd->sgvecs, bmd->nr_sgvecs, 1); 558 ret = __bio_copy_iov(bio, bmd->iovecs, bmd->sgvecs, bmd->nr_sgvecs, 1);
558 559
559 bio_free_map_data(bmd); 560 bio_free_map_data(bmd);
560 bio_put(bio); 561 bio_put(bio);
@@ -596,7 +597,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q, struct sg_iovec *iov,
596 len += iov[i].iov_len; 597 len += iov[i].iov_len;
597 } 598 }
598 599
599 bmd = bio_alloc_map_data(nr_pages, iov_count); 600 bmd = bio_alloc_map_data(nr_pages, iov_count, GFP_KERNEL);
600 if (!bmd) 601 if (!bmd)
601 return ERR_PTR(-ENOMEM); 602 return ERR_PTR(-ENOMEM);
602 603
@@ -633,7 +634,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q, struct sg_iovec *iov,
633 * success 634 * success
634 */ 635 */
635 if (!write_to_vm) { 636 if (!write_to_vm) {
636 ret = __bio_copy_iov(bio, iov, iov_count, 0); 637 ret = __bio_copy_iov(bio, bio->bi_io_vec, iov, iov_count, 0);
637 if (ret) 638 if (ret)
638 goto cleanup; 639 goto cleanup;
639 } 640 }
@@ -942,19 +943,22 @@ static void bio_copy_kern_endio(struct bio *bio, int err)
942{ 943{
943 struct bio_vec *bvec; 944 struct bio_vec *bvec;
944 const int read = bio_data_dir(bio) == READ; 945 const int read = bio_data_dir(bio) == READ;
945 char *p = bio->bi_private; 946 struct bio_map_data *bmd = bio->bi_private;
946 int i; 947 int i;
948 char *p = bmd->sgvecs[0].iov_base;
947 949
948 __bio_for_each_segment(bvec, bio, i, 0) { 950 __bio_for_each_segment(bvec, bio, i, 0) {
949 char *addr = page_address(bvec->bv_page); 951 char *addr = page_address(bvec->bv_page);
952 int len = bmd->iovecs[i].bv_len;
950 953
951 if (read && !err) 954 if (read && !err)
952 memcpy(p, addr, bvec->bv_len); 955 memcpy(p, addr, len);
953 956
954 __free_page(bvec->bv_page); 957 __free_page(bvec->bv_page);
955 p += bvec->bv_len; 958 p += len;
956 } 959 }
957 960
961 bio_free_map_data(bmd);
958 bio_put(bio); 962 bio_put(bio);
959} 963}
960 964
@@ -978,11 +982,21 @@ struct bio *bio_copy_kern(struct request_queue *q, void *data, unsigned int len,
978 const int nr_pages = end - start; 982 const int nr_pages = end - start;
979 struct bio *bio; 983 struct bio *bio;
980 struct bio_vec *bvec; 984 struct bio_vec *bvec;
985 struct bio_map_data *bmd;
981 int i, ret; 986 int i, ret;
987 struct sg_iovec iov;
988
989 iov.iov_base = data;
990 iov.iov_len = len;
991
992 bmd = bio_alloc_map_data(nr_pages, 1, gfp_mask);
993 if (!bmd)
994 return ERR_PTR(-ENOMEM);
982 995
996 ret = -ENOMEM;
983 bio = bio_alloc(gfp_mask, nr_pages); 997 bio = bio_alloc(gfp_mask, nr_pages);
984 if (!bio) 998 if (!bio)
985 return ERR_PTR(-ENOMEM); 999 goto out_bmd;
986 1000
987 while (len) { 1001 while (len) {
988 struct page *page; 1002 struct page *page;
@@ -1016,14 +1030,18 @@ struct bio *bio_copy_kern(struct request_queue *q, void *data, unsigned int len,
1016 } 1030 }
1017 } 1031 }
1018 1032
1019 bio->bi_private = data; 1033 bio->bi_private = bmd;
1020 bio->bi_end_io = bio_copy_kern_endio; 1034 bio->bi_end_io = bio_copy_kern_endio;
1035
1036 bio_set_map_data(bmd, bio, &iov, 1);
1021 return bio; 1037 return bio;
1022cleanup: 1038cleanup:
1023 bio_for_each_segment(bvec, bio, i) 1039 bio_for_each_segment(bvec, bio, i)
1024 __free_page(bvec->bv_page); 1040 __free_page(bvec->bv_page);
1025 1041
1026 bio_put(bio); 1042 bio_put(bio);
1043out_bmd:
1044 bio_free_map_data(bmd);
1027 1045
1028 return ERR_PTR(ret); 1046 return ERR_PTR(ret);
1029} 1047}
diff --git a/fs/buffer.c b/fs/buffer.c
index 38653e36e22..ac78d4c19b3 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -2926,14 +2926,17 @@ int submit_bh(int rw, struct buffer_head * bh)
2926 BUG_ON(!buffer_mapped(bh)); 2926 BUG_ON(!buffer_mapped(bh));
2927 BUG_ON(!bh->b_end_io); 2927 BUG_ON(!bh->b_end_io);
2928 2928
2929 if (buffer_ordered(bh) && (rw == WRITE)) 2929 /*
2930 rw = WRITE_BARRIER; 2930 * Mask in barrier bit for a write (could be either a WRITE or a
2931 * WRITE_SYNC
2932 */
2933 if (buffer_ordered(bh) && (rw & WRITE))
2934 rw |= WRITE_BARRIER;
2931 2935
2932 /* 2936 /*
2933 * Only clear out a write error when rewriting, should this 2937 * Only clear out a write error when rewriting
2934 * include WRITE_SYNC as well?
2935 */ 2938 */
2936 if (test_set_buffer_req(bh) && (rw == WRITE || rw == WRITE_BARRIER)) 2939 if (test_set_buffer_req(bh) && (rw & WRITE))
2937 clear_buffer_write_io_error(bh); 2940 clear_buffer_write_io_error(bh);
2938 2941
2939 /* 2942 /*
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES
index f5d0083e09f..06e521a945c 100644
--- a/fs/cifs/CHANGES
+++ b/fs/cifs/CHANGES
@@ -4,7 +4,15 @@ Fix premature write failure on congested networks (we would give up
4on EAGAIN from the socket too quickly on large writes). 4on EAGAIN from the socket too quickly on large writes).
5Cifs_mkdir and cifs_create now respect the setgid bit on parent dir. 5Cifs_mkdir and cifs_create now respect the setgid bit on parent dir.
6Fix endian problems in acl (mode from/to cifs acl) on bigendian 6Fix endian problems in acl (mode from/to cifs acl) on bigendian
7architectures. 7architectures. Fix problems with preserving timestamps on copying open
8files (e.g. "cp -a") to Windows servers. For mkdir and create honor setgid bit
9on parent directory when server supports Unix Extensions but not POSIX
10create. Update cifs.upcall version to handle new Kerberos sec flags
11(this requires update of cifs.upcall program from Samba). Fix memory leak
12on dns_upcall (resolving DFS referralls). Fix plain text password
13authentication (requires setting SecurityFlags to 0x30030 to enable
14lanman and plain text though). Fix writes to be at correct offset when
15file is open with O_APPEND and file is on a directio (forcediretio) mount.
8 16
9Version 1.53 17Version 1.53
10------------ 18------------
diff --git a/fs/cifs/README b/fs/cifs/README
index 2bd6fe556f8..bd2343d4c6a 100644
--- a/fs/cifs/README
+++ b/fs/cifs/README
@@ -542,10 +542,20 @@ SecurityFlags Flags which control security negotiation and
542 hashing mechanisms (as "must use") on the other hand 542 hashing mechanisms (as "must use") on the other hand
543 does not make much sense. Default flags are 543 does not make much sense. Default flags are
544 0x07007 544 0x07007
545 (NTLM, NTLMv2 and packet signing allowed). Maximum 545 (NTLM, NTLMv2 and packet signing allowed). The maximum
546 allowable flags if you want to allow mounts to servers 546 allowable flags if you want to allow mounts to servers
547 using weaker password hashes is 0x37037 (lanman, 547 using weaker password hashes is 0x37037 (lanman,
548 plaintext, ntlm, ntlmv2, signing allowed): 548 plaintext, ntlm, ntlmv2, signing allowed). Some
549 SecurityFlags require the corresponding menuconfig
550 options to be enabled (lanman and plaintext require
551 CONFIG_CIFS_WEAK_PW_HASH for example). Enabling
552 plaintext authentication currently requires also
553 enabling lanman authentication in the security flags
554 because the cifs module only supports sending
555 laintext passwords using the older lanman dialect
556 form of the session setup SMB. (e.g. for authentication
557 using plain text passwords, set the SecurityFlags
558 to 0x30030):
549 559
550 may use packet signing 0x00001 560 may use packet signing 0x00001
551 must use packet signing 0x01001 561 must use packet signing 0x01001
@@ -642,8 +652,30 @@ The statistics for the number of total SMBs and oplock breaks are different in
642that they represent all for that share, not just those for which the server 652that they represent all for that share, not just those for which the server
643returned success. 653returned success.
644 654
645Also note that "cat /proc/fs/cifs/DebugData" will display information about 655Also note that "cat /proc/fs/cifs/DebugData" will display information about
646the active sessions and the shares that are mounted. 656the active sessions and the shares that are mounted.
647Enabling Kerberos (extended security) works when CONFIG_CIFS_EXPERIMENTAL is 657
648on but requires a user space helper (from the Samba project). NTLM and NTLMv2 and 658Enabling Kerberos (extended security) works but requires version 1.2 or later
649LANMAN support do not require this helper. 659of the helper program cifs.upcall to be present and to be configured in the
660/etc/request-key.conf file. The cifs.upcall helper program is from the Samba
661project(http://www.samba.org). NTLM and NTLMv2 and LANMAN support do not
662require this helper. Note that NTLMv2 security (which does not require the
663cifs.upcall helper program), instead of using Kerberos, is sufficient for
664some use cases.
665
666Enabling DFS support (used to access shares transparently in an MS-DFS
667global name space) requires that CONFIG_CIFS_EXPERIMENTAL be enabled. In
668addition, DFS support for target shares which are specified as UNC
669names which begin with host names (rather than IP addresses) requires
670a user space helper (such as cifs.upcall) to be present in order to
671translate host names to ip address, and the user space helper must also
672be configured in the file /etc/request-key.conf
673
674To use cifs Kerberos and DFS support, the Linux keyutils package should be
675installed and something like the following lines should be added to the
676/etc/request-key.conf file:
677
678create cifs.spnego * * /usr/local/sbin/cifs.upcall %k
679create dns_resolver * * /usr/local/sbin/cifs.upcall %k
680
681
diff --git a/fs/cifs/asn1.c b/fs/cifs/asn1.c
index 5fabd2caf93..1b09f167006 100644
--- a/fs/cifs/asn1.c
+++ b/fs/cifs/asn1.c
@@ -476,6 +476,7 @@ decode_negTokenInit(unsigned char *security_blob, int length,
476 unsigned int cls, con, tag, oidlen, rc; 476 unsigned int cls, con, tag, oidlen, rc;
477 bool use_ntlmssp = false; 477 bool use_ntlmssp = false;
478 bool use_kerberos = false; 478 bool use_kerberos = false;
479 bool use_mskerberos = false;
479 480
480 *secType = NTLM; /* BB eventually make Kerberos or NLTMSSP the default*/ 481 *secType = NTLM; /* BB eventually make Kerberos or NLTMSSP the default*/
481 482
@@ -574,10 +575,12 @@ decode_negTokenInit(unsigned char *security_blob, int length,
574 *(oid + 1), *(oid + 2), *(oid + 3))); 575 *(oid + 1), *(oid + 2), *(oid + 3)));
575 576
576 if (compare_oid(oid, oidlen, MSKRB5_OID, 577 if (compare_oid(oid, oidlen, MSKRB5_OID,
577 MSKRB5_OID_LEN)) 578 MSKRB5_OID_LEN) &&
578 use_kerberos = true; 579 !use_kerberos)
580 use_mskerberos = true;
579 else if (compare_oid(oid, oidlen, KRB5_OID, 581 else if (compare_oid(oid, oidlen, KRB5_OID,
580 KRB5_OID_LEN)) 582 KRB5_OID_LEN) &&
583 !use_mskerberos)
581 use_kerberos = true; 584 use_kerberos = true;
582 else if (compare_oid(oid, oidlen, NTLMSSP_OID, 585 else if (compare_oid(oid, oidlen, NTLMSSP_OID,
583 NTLMSSP_OID_LEN)) 586 NTLMSSP_OID_LEN))
@@ -630,6 +633,8 @@ decode_negTokenInit(unsigned char *security_blob, int length,
630 633
631 if (use_kerberos) 634 if (use_kerberos)
632 *secType = Kerberos; 635 *secType = Kerberos;
636 else if (use_mskerberos)
637 *secType = MSKerberos;
633 else if (use_ntlmssp) 638 else if (use_ntlmssp)
634 *secType = NTLMSSP; 639 *secType = NTLMSSP;
635 640
diff --git a/fs/cifs/cifs_spnego.c b/fs/cifs/cifs_spnego.c
index 2434ab0e879..117ef4bba68 100644
--- a/fs/cifs/cifs_spnego.c
+++ b/fs/cifs/cifs_spnego.c
@@ -114,9 +114,11 @@ cifs_get_spnego_key(struct cifsSesInfo *sesInfo)
114 114
115 dp = description + strlen(description); 115 dp = description + strlen(description);
116 116
117 /* for now, only sec=krb5 is valid */ 117 /* for now, only sec=krb5 and sec=mskrb5 are valid */
118 if (server->secType == Kerberos) 118 if (server->secType == Kerberos)
119 sprintf(dp, ";sec=krb5"); 119 sprintf(dp, ";sec=krb5");
120 else if (server->secType == MSKerberos)
121 sprintf(dp, ";sec=mskrb5");
120 else 122 else
121 goto out; 123 goto out;
122 124
diff --git a/fs/cifs/cifs_spnego.h b/fs/cifs/cifs_spnego.h
index 05a34b17a1a..e4041ec4d71 100644
--- a/fs/cifs/cifs_spnego.h
+++ b/fs/cifs/cifs_spnego.h
@@ -23,7 +23,7 @@
23#ifndef _CIFS_SPNEGO_H 23#ifndef _CIFS_SPNEGO_H
24#define _CIFS_SPNEGO_H 24#define _CIFS_SPNEGO_H
25 25
26#define CIFS_SPNEGO_UPCALL_VERSION 1 26#define CIFS_SPNEGO_UPCALL_VERSION 2
27 27
28/* 28/*
29 * The version field should always be set to CIFS_SPNEGO_UPCALL_VERSION. 29 * The version field should always be set to CIFS_SPNEGO_UPCALL_VERSION.
diff --git a/fs/cifs/cifsencrypt.c b/fs/cifs/cifsencrypt.c
index 83fd40dc1ef..bd5f13d3845 100644
--- a/fs/cifs/cifsencrypt.c
+++ b/fs/cifs/cifsencrypt.c
@@ -294,6 +294,7 @@ void calc_lanman_hash(struct cifsSesInfo *ses, char *lnm_session_key)
294 294
295 if ((ses->server->secMode & SECMODE_PW_ENCRYPT) == 0) 295 if ((ses->server->secMode & SECMODE_PW_ENCRYPT) == 0)
296 if (extended_security & CIFSSEC_MAY_PLNTXT) { 296 if (extended_security & CIFSSEC_MAY_PLNTXT) {
297 memset(lnm_session_key, 0, CIFS_SESS_KEY_SIZE);
297 memcpy(lnm_session_key, password_with_pad, 298 memcpy(lnm_session_key, password_with_pad,
298 CIFS_ENCPWD_SIZE); 299 CIFS_ENCPWD_SIZE);
299 return; 300 return;
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 7e1cf262eff..8dfd6f24d48 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -80,7 +80,8 @@ enum securityEnum {
80 NTLMv2, /* Legacy NTLM auth with NTLMv2 hash */ 80 NTLMv2, /* Legacy NTLM auth with NTLMv2 hash */
81 RawNTLMSSP, /* NTLMSSP without SPNEGO */ 81 RawNTLMSSP, /* NTLMSSP without SPNEGO */
82 NTLMSSP, /* NTLMSSP via SPNEGO */ 82 NTLMSSP, /* NTLMSSP via SPNEGO */
83 Kerberos /* Kerberos via SPNEGO */ 83 Kerberos, /* Kerberos via SPNEGO */
84 MSKerberos, /* MS Kerberos via SPNEGO */
84}; 85};
85 86
86enum protocolEnum { 87enum protocolEnum {
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 0711db65afe..4c13bcdb92a 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -3598,19 +3598,21 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
3598 char ntlm_session_key[CIFS_SESS_KEY_SIZE]; 3598 char ntlm_session_key[CIFS_SESS_KEY_SIZE];
3599 bool ntlmv2_flag = false; 3599 bool ntlmv2_flag = false;
3600 int first_time = 0; 3600 int first_time = 0;
3601 struct TCP_Server_Info *server = pSesInfo->server;
3601 3602
3602 /* what if server changes its buffer size after dropping the session? */ 3603 /* what if server changes its buffer size after dropping the session? */
3603 if (pSesInfo->server->maxBuf == 0) /* no need to send on reconnect */ { 3604 if (server->maxBuf == 0) /* no need to send on reconnect */ {
3604 rc = CIFSSMBNegotiate(xid, pSesInfo); 3605 rc = CIFSSMBNegotiate(xid, pSesInfo);
3605 if (rc == -EAGAIN) /* retry only once on 1st time connection */ { 3606 if (rc == -EAGAIN) {
3607 /* retry only once on 1st time connection */
3606 rc = CIFSSMBNegotiate(xid, pSesInfo); 3608 rc = CIFSSMBNegotiate(xid, pSesInfo);
3607 if (rc == -EAGAIN) 3609 if (rc == -EAGAIN)
3608 rc = -EHOSTDOWN; 3610 rc = -EHOSTDOWN;
3609 } 3611 }
3610 if (rc == 0) { 3612 if (rc == 0) {
3611 spin_lock(&GlobalMid_Lock); 3613 spin_lock(&GlobalMid_Lock);
3612 if (pSesInfo->server->tcpStatus != CifsExiting) 3614 if (server->tcpStatus != CifsExiting)
3613 pSesInfo->server->tcpStatus = CifsGood; 3615 server->tcpStatus = CifsGood;
3614 else 3616 else
3615 rc = -EHOSTDOWN; 3617 rc = -EHOSTDOWN;
3616 spin_unlock(&GlobalMid_Lock); 3618 spin_unlock(&GlobalMid_Lock);
@@ -3623,23 +3625,22 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
3623 goto ss_err_exit; 3625 goto ss_err_exit;
3624 3626
3625 pSesInfo->flags = 0; 3627 pSesInfo->flags = 0;
3626 pSesInfo->capabilities = pSesInfo->server->capabilities; 3628 pSesInfo->capabilities = server->capabilities;
3627 if (linuxExtEnabled == 0) 3629 if (linuxExtEnabled == 0)
3628 pSesInfo->capabilities &= (~CAP_UNIX); 3630 pSesInfo->capabilities &= (~CAP_UNIX);
3629 /* pSesInfo->sequence_number = 0;*/ 3631 /* pSesInfo->sequence_number = 0;*/
3630 cFYI(1, ("Security Mode: 0x%x Capabilities: 0x%x TimeAdjust: %d", 3632 cFYI(1, ("Security Mode: 0x%x Capabilities: 0x%x TimeAdjust: %d",
3631 pSesInfo->server->secMode, 3633 server->secMode, server->capabilities, server->timeAdj));
3632 pSesInfo->server->capabilities, 3634
3633 pSesInfo->server->timeAdj));
3634 if (experimEnabled < 2) 3635 if (experimEnabled < 2)
3635 rc = CIFS_SessSetup(xid, pSesInfo, first_time, nls_info); 3636 rc = CIFS_SessSetup(xid, pSesInfo, first_time, nls_info);
3636 else if (extended_security 3637 else if (extended_security
3637 && (pSesInfo->capabilities & CAP_EXTENDED_SECURITY) 3638 && (pSesInfo->capabilities & CAP_EXTENDED_SECURITY)
3638 && (pSesInfo->server->secType == NTLMSSP)) { 3639 && (server->secType == NTLMSSP)) {
3639 rc = -EOPNOTSUPP; 3640 rc = -EOPNOTSUPP;
3640 } else if (extended_security 3641 } else if (extended_security
3641 && (pSesInfo->capabilities & CAP_EXTENDED_SECURITY) 3642 && (pSesInfo->capabilities & CAP_EXTENDED_SECURITY)
3642 && (pSesInfo->server->secType == RawNTLMSSP)) { 3643 && (server->secType == RawNTLMSSP)) {
3643 cFYI(1, ("NTLMSSP sesssetup")); 3644 cFYI(1, ("NTLMSSP sesssetup"));
3644 rc = CIFSNTLMSSPNegotiateSessSetup(xid, pSesInfo, &ntlmv2_flag, 3645 rc = CIFSNTLMSSPNegotiateSessSetup(xid, pSesInfo, &ntlmv2_flag,
3645 nls_info); 3646 nls_info);
@@ -3668,12 +3669,12 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
3668 3669
3669 } else { 3670 } else {
3670 SMBNTencrypt(pSesInfo->password, 3671 SMBNTencrypt(pSesInfo->password,
3671 pSesInfo->server->cryptKey, 3672 server->cryptKey,
3672 ntlm_session_key); 3673 ntlm_session_key);
3673 3674
3674 if (first_time) 3675 if (first_time)
3675 cifs_calculate_mac_key( 3676 cifs_calculate_mac_key(
3676 &pSesInfo->server->mac_signing_key, 3677 &server->mac_signing_key,
3677 ntlm_session_key, 3678 ntlm_session_key,
3678 pSesInfo->password); 3679 pSesInfo->password);
3679 } 3680 }
@@ -3686,13 +3687,13 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
3686 nls_info); 3687 nls_info);
3687 } 3688 }
3688 } else { /* old style NTLM 0.12 session setup */ 3689 } else { /* old style NTLM 0.12 session setup */
3689 SMBNTencrypt(pSesInfo->password, pSesInfo->server->cryptKey, 3690 SMBNTencrypt(pSesInfo->password, server->cryptKey,
3690 ntlm_session_key); 3691 ntlm_session_key);
3691 3692
3692 if (first_time) 3693 if (first_time)
3693 cifs_calculate_mac_key( 3694 cifs_calculate_mac_key(&server->mac_signing_key,
3694 &pSesInfo->server->mac_signing_key, 3695 ntlm_session_key,
3695 ntlm_session_key, pSesInfo->password); 3696 pSesInfo->password);
3696 3697
3697 rc = CIFSSessSetup(xid, pSesInfo, ntlm_session_key, nls_info); 3698 rc = CIFSSessSetup(xid, pSesInfo, ntlm_session_key, nls_info);
3698 } 3699 }
diff --git a/fs/cifs/dns_resolve.c b/fs/cifs/dns_resolve.c
index f730ef35499..a2e0673e1b0 100644
--- a/fs/cifs/dns_resolve.c
+++ b/fs/cifs/dns_resolve.c
@@ -47,11 +47,18 @@ static int dns_resolver_instantiate(struct key *key, const void *data,
47 return rc; 47 return rc;
48} 48}
49 49
50static void
51dns_resolver_destroy(struct key *key)
52{
53 kfree(key->payload.data);
54}
55
50struct key_type key_type_dns_resolver = { 56struct key_type key_type_dns_resolver = {
51 .name = "dns_resolver", 57 .name = "dns_resolver",
52 .def_datalen = sizeof(struct in_addr), 58 .def_datalen = sizeof(struct in_addr),
53 .describe = user_describe, 59 .describe = user_describe,
54 .instantiate = dns_resolver_instantiate, 60 .instantiate = dns_resolver_instantiate,
61 .destroy = dns_resolver_destroy,
55 .match = user_match, 62 .match = user_match,
56}; 63};
57 64
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index ff14d14903a..cbefe1f1f9f 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -833,6 +833,10 @@ ssize_t cifs_user_write(struct file *file, const char __user *write_data,
833 return -EBADF; 833 return -EBADF;
834 open_file = (struct cifsFileInfo *) file->private_data; 834 open_file = (struct cifsFileInfo *) file->private_data;
835 835
836 rc = generic_write_checks(file, poffset, &write_size, 0);
837 if (rc)
838 return rc;
839
836 xid = GetXid(); 840 xid = GetXid();
837 841
838 if (*poffset > file->f_path.dentry->d_inode->i_size) 842 if (*poffset > file->f_path.dentry->d_inode->i_size)
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 848286861c3..9c548f11010 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -546,7 +546,8 @@ int cifs_get_inode_info(struct inode **pinode,
546 if ((inode->i_mode & S_IWUGO) == 0 && 546 if ((inode->i_mode & S_IWUGO) == 0 &&
547 (attr & ATTR_READONLY) == 0) 547 (attr & ATTR_READONLY) == 0)
548 inode->i_mode |= (S_IWUGO & default_mode); 548 inode->i_mode |= (S_IWUGO & default_mode);
549 inode->i_mode &= ~S_IFMT; 549
550 inode->i_mode &= ~S_IFMT;
550 } 551 }
551 /* clear write bits if ATTR_READONLY is set */ 552 /* clear write bits if ATTR_READONLY is set */
552 if (attr & ATTR_READONLY) 553 if (attr & ATTR_READONLY)
diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c
index ed150efbe27..252fdc0567f 100644
--- a/fs/cifs/sess.c
+++ b/fs/cifs/sess.c
@@ -409,6 +409,8 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
409#ifdef CONFIG_CIFS_WEAK_PW_HASH 409#ifdef CONFIG_CIFS_WEAK_PW_HASH
410 char lnm_session_key[CIFS_SESS_KEY_SIZE]; 410 char lnm_session_key[CIFS_SESS_KEY_SIZE];
411 411
412 pSMB->req.hdr.Flags2 &= ~SMBFLG2_UNICODE;
413
412 /* no capabilities flags in old lanman negotiation */ 414 /* no capabilities flags in old lanman negotiation */
413 415
414 pSMB->old_req.PasswordLength = cpu_to_le16(CIFS_SESS_KEY_SIZE); 416 pSMB->old_req.PasswordLength = cpu_to_le16(CIFS_SESS_KEY_SIZE);
@@ -505,7 +507,7 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
505 unicode_ssetup_strings(&bcc_ptr, ses, nls_cp); 507 unicode_ssetup_strings(&bcc_ptr, ses, nls_cp);
506 } else 508 } else
507 ascii_ssetup_strings(&bcc_ptr, ses, nls_cp); 509 ascii_ssetup_strings(&bcc_ptr, ses, nls_cp);
508 } else if (type == Kerberos) { 510 } else if (type == Kerberos || type == MSKerberos) {
509#ifdef CONFIG_CIFS_UPCALL 511#ifdef CONFIG_CIFS_UPCALL
510 struct cifs_spnego_msg *msg; 512 struct cifs_spnego_msg *msg;
511 spnego_key = cifs_get_spnego_key(ses); 513 spnego_key = cifs_get_spnego_key(ses);
@@ -516,6 +518,15 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
516 } 518 }
517 519
518 msg = spnego_key->payload.data; 520 msg = spnego_key->payload.data;
521 /* check version field to make sure that cifs.upcall is
522 sending us a response in an expected form */
523 if (msg->version != CIFS_SPNEGO_UPCALL_VERSION) {
524 cERROR(1, ("incorrect version of cifs.upcall (expected"
525 " %d but got %d)",
526 CIFS_SPNEGO_UPCALL_VERSION, msg->version));
527 rc = -EKEYREJECTED;
528 goto ssetup_exit;
529 }
519 /* bail out if key is too long */ 530 /* bail out if key is too long */
520 if (msg->sesskey_len > 531 if (msg->sesskey_len >
521 sizeof(ses->server->mac_signing_key.data.krb5)) { 532 sizeof(ses->server->mac_signing_key.data.krb5)) {
diff --git a/fs/compat.c b/fs/compat.c
index c9d1472e65c..075d0509970 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -792,8 +792,10 @@ static int compat_fillonedir(void *__buf, const char *name, int namlen,
792 if (buf->result) 792 if (buf->result)
793 return -EINVAL; 793 return -EINVAL;
794 d_ino = ino; 794 d_ino = ino;
795 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) 795 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
796 buf->result = -EOVERFLOW;
796 return -EOVERFLOW; 797 return -EOVERFLOW;
798 }
797 buf->result++; 799 buf->result++;
798 dirent = buf->dirent; 800 dirent = buf->dirent;
799 if (!access_ok(VERIFY_WRITE, dirent, 801 if (!access_ok(VERIFY_WRITE, dirent,
@@ -862,8 +864,10 @@ static int compat_filldir(void *__buf, const char *name, int namlen,
862 if (reclen > buf->count) 864 if (reclen > buf->count)
863 return -EINVAL; 865 return -EINVAL;
864 d_ino = ino; 866 d_ino = ino;
865 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) 867 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
868 buf->error = -EOVERFLOW;
866 return -EOVERFLOW; 869 return -EOVERFLOW;
870 }
867 dirent = buf->previous; 871 dirent = buf->previous;
868 if (dirent) { 872 if (dirent) {
869 if (__put_user(offset, &dirent->d_off)) 873 if (__put_user(offset, &dirent->d_off))
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index 7a8db78a91d..8e93341f3e8 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -1311,16 +1311,18 @@ static int configfs_rmdir(struct inode *dir, struct dentry *dentry)
1311 * Ensure that no racing symlink() will make detach_prep() fail while 1311 * Ensure that no racing symlink() will make detach_prep() fail while
1312 * the new link is temporarily attached 1312 * the new link is temporarily attached
1313 */ 1313 */
1314 mutex_lock(&configfs_symlink_mutex);
1315 spin_lock(&configfs_dirent_lock);
1316 do { 1314 do {
1317 struct mutex *wait_mutex; 1315 struct mutex *wait_mutex;
1318 1316
1317 mutex_lock(&configfs_symlink_mutex);
1318 spin_lock(&configfs_dirent_lock);
1319 ret = configfs_detach_prep(dentry, &wait_mutex); 1319 ret = configfs_detach_prep(dentry, &wait_mutex);
1320 if (ret) { 1320 if (ret)
1321 configfs_detach_rollback(dentry); 1321 configfs_detach_rollback(dentry);
1322 spin_unlock(&configfs_dirent_lock); 1322 spin_unlock(&configfs_dirent_lock);
1323 mutex_unlock(&configfs_symlink_mutex); 1323 mutex_unlock(&configfs_symlink_mutex);
1324
1325 if (ret) {
1324 if (ret != -EAGAIN) { 1326 if (ret != -EAGAIN) {
1325 config_item_put(parent_item); 1327 config_item_put(parent_item);
1326 return ret; 1328 return ret;
@@ -1329,13 +1331,8 @@ static int configfs_rmdir(struct inode *dir, struct dentry *dentry)
1329 /* Wait until the racing operation terminates */ 1331 /* Wait until the racing operation terminates */
1330 mutex_lock(wait_mutex); 1332 mutex_lock(wait_mutex);
1331 mutex_unlock(wait_mutex); 1333 mutex_unlock(wait_mutex);
1332
1333 mutex_lock(&configfs_symlink_mutex);
1334 spin_lock(&configfs_dirent_lock);
1335 } 1334 }
1336 } while (ret == -EAGAIN); 1335 } while (ret == -EAGAIN);
1337 spin_unlock(&configfs_dirent_lock);
1338 mutex_unlock(&configfs_symlink_mutex);
1339 1336
1340 /* Get a working ref for the duration of this function */ 1337 /* Get a working ref for the duration of this function */
1341 item = configfs_get_config_item(dentry); 1338 item = configfs_get_config_item(dentry);
diff --git a/fs/dcache.c b/fs/dcache.c
index 101663d15e9..e7a1a99b746 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1236,7 +1236,7 @@ struct dentry *d_splice_alias(struct inode *inode, struct dentry *dentry)
1236 * If no entry exists with the exact case name, allocate new dentry with 1236 * If no entry exists with the exact case name, allocate new dentry with
1237 * the exact case, and return the spliced entry. 1237 * the exact case, and return the spliced entry.
1238 */ 1238 */
1239struct dentry *d_add_ci(struct inode *inode, struct dentry *dentry, 1239struct dentry *d_add_ci(struct dentry *dentry, struct inode *inode,
1240 struct qstr *name) 1240 struct qstr *name)
1241{ 1241{
1242 int error; 1242 int error;
@@ -1395,6 +1395,10 @@ struct dentry * __d_lookup(struct dentry * parent, struct qstr * name)
1395 if (dentry->d_parent != parent) 1395 if (dentry->d_parent != parent)
1396 goto next; 1396 goto next;
1397 1397
1398 /* non-existing due to RCU? */
1399 if (d_unhashed(dentry))
1400 goto next;
1401
1398 /* 1402 /*
1399 * It is safe to compare names since d_move() cannot 1403 * It is safe to compare names since d_move() cannot
1400 * change the qstr (protected by d_lock). 1404 * change the qstr (protected by d_lock).
@@ -1410,10 +1414,8 @@ struct dentry * __d_lookup(struct dentry * parent, struct qstr * name)
1410 goto next; 1414 goto next;
1411 } 1415 }
1412 1416
1413 if (!d_unhashed(dentry)) { 1417 atomic_inc(&dentry->d_count);
1414 atomic_inc(&dentry->d_count); 1418 found = dentry;
1415 found = dentry;
1416 }
1417 spin_unlock(&dentry->d_lock); 1419 spin_unlock(&dentry->d_lock);
1418 break; 1420 break;
1419next: 1421next:
diff --git a/fs/efs/namei.c b/fs/efs/namei.c
index 3a404e7fad5..291abb11e20 100644
--- a/fs/efs/namei.c
+++ b/fs/efs/namei.c
@@ -74,8 +74,7 @@ struct dentry *efs_lookup(struct inode *dir, struct dentry *dentry, struct namei
74 } 74 }
75 unlock_kernel(); 75 unlock_kernel();
76 76
77 d_add(dentry, inode); 77 return d_splice_alias(inode, dentry);
78 return NULL;
79} 78}
80 79
81static struct inode *efs_nfs_get_inode(struct super_block *sb, u64 ino, 80static struct inode *efs_nfs_get_inode(struct super_block *sb, u64 ino,
diff --git a/fs/exec.c b/fs/exec.c
index 32993beecbe..cecee501ce7 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -752,11 +752,11 @@ static int exec_mmap(struct mm_struct *mm)
752 tsk->active_mm = mm; 752 tsk->active_mm = mm;
753 activate_mm(active_mm, mm); 753 activate_mm(active_mm, mm);
754 task_unlock(tsk); 754 task_unlock(tsk);
755 mm_update_next_owner(old_mm);
756 arch_pick_mmap_layout(mm); 755 arch_pick_mmap_layout(mm);
757 if (old_mm) { 756 if (old_mm) {
758 up_read(&old_mm->mmap_sem); 757 up_read(&old_mm->mmap_sem);
759 BUG_ON(active_mm != old_mm); 758 BUG_ON(active_mm != old_mm);
759 mm_update_next_owner(old_mm);
760 mmput(old_mm); 760 mmput(old_mm);
761 return 0; 761 return 0;
762 } 762 }
diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
index 1ae5004e93f..e9fa960ba6d 100644
--- a/fs/ext4/balloc.c
+++ b/fs/ext4/balloc.c
@@ -1626,6 +1626,9 @@ ext4_fsblk_t ext4_has_free_blocks(struct ext4_sb_info *sbi,
1626 free_blocks = 1626 free_blocks =
1627 percpu_counter_sum_and_set(&sbi->s_freeblocks_counter); 1627 percpu_counter_sum_and_set(&sbi->s_freeblocks_counter);
1628#endif 1628#endif
1629 if (free_blocks <= root_blocks)
1630 /* we don't have free space */
1631 return 0;
1629 if (free_blocks - root_blocks < nblocks) 1632 if (free_blocks - root_blocks < nblocks)
1630 return free_blocks - root_blocks; 1633 return free_blocks - root_blocks;
1631 return nblocks; 1634 return nblocks;
diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c
index d3d23d73c08..ec8e33b4521 100644
--- a/fs/ext4/dir.c
+++ b/fs/ext4/dir.c
@@ -411,7 +411,7 @@ static int call_filldir(struct file * filp, void * dirent,
411 get_dtype(sb, fname->file_type)); 411 get_dtype(sb, fname->file_type));
412 if (error) { 412 if (error) {
413 filp->f_pos = curr_pos; 413 filp->f_pos = curr_pos;
414 info->extra_fname = fname->next; 414 info->extra_fname = fname;
415 return error; 415 return error;
416 } 416 }
417 fname = fname->next; 417 fname = fname->next;
@@ -450,11 +450,21 @@ static int ext4_dx_readdir(struct file * filp,
450 * If there are any leftover names on the hash collision 450 * If there are any leftover names on the hash collision
451 * chain, return them first. 451 * chain, return them first.
452 */ 452 */
453 if (info->extra_fname && 453 if (info->extra_fname) {
454 call_filldir(filp, dirent, filldir, info->extra_fname)) 454 if (call_filldir(filp, dirent, filldir, info->extra_fname))
455 goto finished; 455 goto finished;
456 456
457 if (!info->curr_node) 457 info->extra_fname = NULL;
458 info->curr_node = rb_next(info->curr_node);
459 if (!info->curr_node) {
460 if (info->next_hash == ~0) {
461 filp->f_pos = EXT4_HTREE_EOF;
462 goto finished;
463 }
464 info->curr_hash = info->next_hash;
465 info->curr_minor_hash = 0;
466 }
467 } else if (!info->curr_node)
458 info->curr_node = rb_first(&info->root); 468 info->curr_node = rb_first(&info->root);
459 469
460 while (1) { 470 while (1) {
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 6c7924d9e35..295003241d3 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -1072,6 +1072,8 @@ extern void ext4_set_inode_flags(struct inode *);
1072extern void ext4_get_inode_flags(struct ext4_inode_info *); 1072extern void ext4_get_inode_flags(struct ext4_inode_info *);
1073extern void ext4_set_aops(struct inode *inode); 1073extern void ext4_set_aops(struct inode *inode);
1074extern int ext4_writepage_trans_blocks(struct inode *); 1074extern int ext4_writepage_trans_blocks(struct inode *);
1075extern int ext4_meta_trans_blocks(struct inode *, int nrblocks, int idxblocks);
1076extern int ext4_chunk_trans_blocks(struct inode *, int nrblocks);
1075extern int ext4_block_truncate_page(handle_t *handle, 1077extern int ext4_block_truncate_page(handle_t *handle,
1076 struct address_space *mapping, loff_t from); 1078 struct address_space *mapping, loff_t from);
1077extern int ext4_page_mkwrite(struct vm_area_struct *vma, struct page *page); 1079extern int ext4_page_mkwrite(struct vm_area_struct *vma, struct page *page);
@@ -1227,6 +1229,8 @@ extern const struct inode_operations ext4_fast_symlink_inode_operations;
1227/* extents.c */ 1229/* extents.c */
1228extern int ext4_ext_tree_init(handle_t *handle, struct inode *); 1230extern int ext4_ext_tree_init(handle_t *handle, struct inode *);
1229extern int ext4_ext_writepage_trans_blocks(struct inode *, int); 1231extern int ext4_ext_writepage_trans_blocks(struct inode *, int);
1232extern int ext4_ext_index_trans_blocks(struct inode *inode, int nrblocks,
1233 int chunk);
1230extern int ext4_ext_get_blocks(handle_t *handle, struct inode *inode, 1234extern int ext4_ext_get_blocks(handle_t *handle, struct inode *inode,
1231 ext4_lblk_t iblock, 1235 ext4_lblk_t iblock,
1232 unsigned long max_blocks, struct buffer_head *bh_result, 1236 unsigned long max_blocks, struct buffer_head *bh_result,
diff --git a/fs/ext4/ext4_extents.h b/fs/ext4/ext4_extents.h
index 6c166c0a54b..d33dc56d698 100644
--- a/fs/ext4/ext4_extents.h
+++ b/fs/ext4/ext4_extents.h
@@ -216,7 +216,9 @@ extern int ext4_ext_calc_metadata_amount(struct inode *inode, int blocks);
216extern ext4_fsblk_t idx_pblock(struct ext4_extent_idx *); 216extern ext4_fsblk_t idx_pblock(struct ext4_extent_idx *);
217extern void ext4_ext_store_pblock(struct ext4_extent *, ext4_fsblk_t); 217extern void ext4_ext_store_pblock(struct ext4_extent *, ext4_fsblk_t);
218extern int ext4_extent_tree_init(handle_t *, struct inode *); 218extern int ext4_extent_tree_init(handle_t *, struct inode *);
219extern int ext4_ext_calc_credits_for_insert(struct inode *, struct ext4_ext_path *); 219extern int ext4_ext_calc_credits_for_single_extent(struct inode *inode,
220 int num,
221 struct ext4_ext_path *path);
220extern int ext4_ext_try_to_merge(struct inode *inode, 222extern int ext4_ext_try_to_merge(struct inode *inode,
221 struct ext4_ext_path *path, 223 struct ext4_ext_path *path,
222 struct ext4_extent *); 224 struct ext4_extent *);
diff --git a/fs/ext4/ext4_jbd2.h b/fs/ext4/ext4_jbd2.h
index eb8bc3afe6e..b455c685a98 100644
--- a/fs/ext4/ext4_jbd2.h
+++ b/fs/ext4/ext4_jbd2.h
@@ -51,6 +51,14 @@
51 EXT4_XATTR_TRANS_BLOCKS - 2 + \ 51 EXT4_XATTR_TRANS_BLOCKS - 2 + \
52 2*EXT4_QUOTA_TRANS_BLOCKS(sb)) 52 2*EXT4_QUOTA_TRANS_BLOCKS(sb))
53 53
54/*
55 * Define the number of metadata blocks we need to account to modify data.
56 *
57 * This include super block, inode block, quota blocks and xattr blocks
58 */
59#define EXT4_META_TRANS_BLOCKS(sb) (EXT4_XATTR_TRANS_BLOCKS + \
60 2*EXT4_QUOTA_TRANS_BLOCKS(sb))
61
54/* Delete operations potentially hit one directory's namespace plus an 62/* Delete operations potentially hit one directory's namespace plus an
55 * entire inode, plus arbitrary amounts of bitmap/indirection data. Be 63 * entire inode, plus arbitrary amounts of bitmap/indirection data. Be
56 * generous. We can grow the delete transaction later if necessary. */ 64 * generous. We can grow the delete transaction later if necessary. */
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 612c3d2c382..b24d3c53f20 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -1747,54 +1747,61 @@ static int ext4_ext_rm_idx(handle_t *handle, struct inode *inode,
1747} 1747}
1748 1748
1749/* 1749/*
1750 * ext4_ext_calc_credits_for_insert: 1750 * ext4_ext_calc_credits_for_single_extent:
1751 * This routine returns max. credits that the extent tree can consume. 1751 * This routine returns max. credits that needed to insert an extent
1752 * It should be OK for low-performance paths like ->writepage() 1752 * to the extent tree.
1753 * To allow many writing processes to fit into a single transaction, 1753 * When pass the actual path, the caller should calculate credits
1754 * the caller should calculate credits under i_data_sem and 1754 * under i_data_sem.
1755 * pass the actual path.
1756 */ 1755 */
1757int ext4_ext_calc_credits_for_insert(struct inode *inode, 1756int ext4_ext_calc_credits_for_single_extent(struct inode *inode, int nrblocks,
1758 struct ext4_ext_path *path) 1757 struct ext4_ext_path *path)
1759{ 1758{
1760 int depth, needed;
1761
1762 if (path) { 1759 if (path) {
1760 int depth = ext_depth(inode);
1761 int ret = 0;
1762
1763 /* probably there is space in leaf? */ 1763 /* probably there is space in leaf? */
1764 depth = ext_depth(inode);
1765 if (le16_to_cpu(path[depth].p_hdr->eh_entries) 1764 if (le16_to_cpu(path[depth].p_hdr->eh_entries)
1766 < le16_to_cpu(path[depth].p_hdr->eh_max)) 1765 < le16_to_cpu(path[depth].p_hdr->eh_max)) {
1767 return 1;
1768 }
1769 1766
1770 /* 1767 /*
1771 * given 32-bit logical block (4294967296 blocks), max. tree 1768 * There are some space in the leaf tree, no
1772 * can be 4 levels in depth -- 4 * 340^4 == 53453440000. 1769 * need to account for leaf block credit
1773 * Let's also add one more level for imbalance. 1770 *
1774 */ 1771 * bitmaps and block group descriptor blocks
1775 depth = 5; 1772 * and other metadat blocks still need to be
1776 1773 * accounted.
1777 /* allocation of new data block(s) */ 1774 */
1778 needed = 2; 1775 /* 1 bitmap, 1 block group descriptor */
1776 ret = 2 + EXT4_META_TRANS_BLOCKS(inode->i_sb);
1777 }
1778 }
1779 1779
1780 /* 1780 return ext4_chunk_trans_blocks(inode, nrblocks);
1781 * tree can be full, so it would need to grow in depth: 1781}
1782 * we need one credit to modify old root, credits for
1783 * new root will be added in split accounting
1784 */
1785 needed += 1;
1786 1782
1787 /* 1783/*
1788 * Index split can happen, we would need: 1784 * How many index/leaf blocks need to change/allocate to modify nrblocks?
1789 * allocate intermediate indexes (bitmap + group) 1785 *
1790 * + change two blocks at each level, but root (already included) 1786 * if nrblocks are fit in a single extent (chunk flag is 1), then
1791 */ 1787 * in the worse case, each tree level index/leaf need to be changed
1792 needed += (depth * 2) + (depth * 2); 1788 * if the tree split due to insert a new extent, then the old tree
1789 * index/leaf need to be updated too
1790 *
1791 * If the nrblocks are discontiguous, they could cause
1792 * the whole tree split more than once, but this is really rare.
1793 */
1794int ext4_ext_index_trans_blocks(struct inode *inode, int nrblocks, int chunk)
1795{
1796 int index;
1797 int depth = ext_depth(inode);
1793 1798
1794 /* any allocation modifies superblock */ 1799 if (chunk)
1795 needed += 1; 1800 index = depth * 2;
1801 else
1802 index = depth * 3;
1796 1803
1797 return needed; 1804 return index;
1798} 1805}
1799 1806
1800static int ext4_remove_blocks(handle_t *handle, struct inode *inode, 1807static int ext4_remove_blocks(handle_t *handle, struct inode *inode,
@@ -1921,9 +1928,7 @@ ext4_ext_rm_leaf(handle_t *handle, struct inode *inode,
1921 correct_index = 1; 1928 correct_index = 1;
1922 credits += (ext_depth(inode)) + 1; 1929 credits += (ext_depth(inode)) + 1;
1923 } 1930 }
1924#ifdef CONFIG_QUOTA
1925 credits += 2 * EXT4_QUOTA_TRANS_BLOCKS(inode->i_sb); 1931 credits += 2 * EXT4_QUOTA_TRANS_BLOCKS(inode->i_sb);
1926#endif
1927 1932
1928 err = ext4_ext_journal_restart(handle, credits); 1933 err = ext4_ext_journal_restart(handle, credits);
1929 if (err) 1934 if (err)
@@ -2805,7 +2810,7 @@ void ext4_ext_truncate(struct inode *inode)
2805 /* 2810 /*
2806 * probably first extent we're gonna free will be last in block 2811 * probably first extent we're gonna free will be last in block
2807 */ 2812 */
2808 err = ext4_writepage_trans_blocks(inode) + 3; 2813 err = ext4_writepage_trans_blocks(inode);
2809 handle = ext4_journal_start(inode, err); 2814 handle = ext4_journal_start(inode, err);
2810 if (IS_ERR(handle)) 2815 if (IS_ERR(handle))
2811 return; 2816 return;
@@ -2819,7 +2824,7 @@ void ext4_ext_truncate(struct inode *inode)
2819 down_write(&EXT4_I(inode)->i_data_sem); 2824 down_write(&EXT4_I(inode)->i_data_sem);
2820 ext4_ext_invalidate_cache(inode); 2825 ext4_ext_invalidate_cache(inode);
2821 2826
2822 ext4_mb_discard_inode_preallocations(inode); 2827 ext4_discard_reservation(inode);
2823 2828
2824 /* 2829 /*
2825 * TODO: optimization is possible here. 2830 * TODO: optimization is possible here.
@@ -2858,27 +2863,6 @@ out_stop:
2858 ext4_journal_stop(handle); 2863 ext4_journal_stop(handle);
2859} 2864}
2860 2865
2861/*
2862 * ext4_ext_writepage_trans_blocks:
2863 * calculate max number of blocks we could modify
2864 * in order to allocate new block for an inode
2865 */
2866int ext4_ext_writepage_trans_blocks(struct inode *inode, int num)
2867{
2868 int needed;
2869
2870 needed = ext4_ext_calc_credits_for_insert(inode, NULL);
2871
2872 /* caller wants to allocate num blocks, but note it includes sb */
2873 needed = needed * num - (num - 1);
2874
2875#ifdef CONFIG_QUOTA
2876 needed += 2 * EXT4_QUOTA_TRANS_BLOCKS(inode->i_sb);
2877#endif
2878
2879 return needed;
2880}
2881
2882static void ext4_falloc_update_inode(struct inode *inode, 2866static void ext4_falloc_update_inode(struct inode *inode,
2883 int mode, loff_t new_size, int update_ctime) 2867 int mode, loff_t new_size, int update_ctime)
2884{ 2868{
@@ -2939,10 +2923,9 @@ long ext4_fallocate(struct inode *inode, int mode, loff_t offset, loff_t len)
2939 max_blocks = (EXT4_BLOCK_ALIGN(len + offset, blkbits) >> blkbits) 2923 max_blocks = (EXT4_BLOCK_ALIGN(len + offset, blkbits) >> blkbits)
2940 - block; 2924 - block;
2941 /* 2925 /*
2942 * credits to insert 1 extent into extent tree + buffers to be able to 2926 * credits to insert 1 extent into extent tree
2943 * modify 1 super block, 1 block bitmap and 1 group descriptor.
2944 */ 2927 */
2945 credits = EXT4_DATA_TRANS_BLOCKS(inode->i_sb) + 3; 2928 credits = ext4_chunk_trans_blocks(inode, max_blocks);
2946 mutex_lock(&inode->i_mutex); 2929 mutex_lock(&inode->i_mutex);
2947retry: 2930retry:
2948 while (ret >= 0 && ret < max_blocks) { 2931 while (ret >= 0 && ret < max_blocks) {
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
index 655e760212b..f344834bbf5 100644
--- a/fs/ext4/ialloc.c
+++ b/fs/ext4/ialloc.c
@@ -351,7 +351,7 @@ find_close_to_parent:
351 goto found_flexbg; 351 goto found_flexbg;
352 } 352 }
353 353
354 if (best_flex < 0 || 354 if (flex_group[best_flex].free_inodes == 0 ||
355 (flex_group[i].free_blocks > 355 (flex_group[i].free_blocks >
356 flex_group[best_flex].free_blocks && 356 flex_group[best_flex].free_blocks &&
357 flex_group[i].free_inodes)) 357 flex_group[i].free_inodes))
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 59fbbe899ac..7e91913e325 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -41,6 +41,8 @@
41#include "acl.h" 41#include "acl.h"
42#include "ext4_extents.h" 42#include "ext4_extents.h"
43 43
44#define MPAGE_DA_EXTENT_TAIL 0x01
45
44static inline int ext4_begin_ordered_truncate(struct inode *inode, 46static inline int ext4_begin_ordered_truncate(struct inode *inode,
45 loff_t new_size) 47 loff_t new_size)
46{ 48{
@@ -1005,6 +1007,9 @@ static int ext4_indirect_calc_metadata_amount(struct inode *inode, int blocks)
1005 */ 1007 */
1006static int ext4_calc_metadata_amount(struct inode *inode, int blocks) 1008static int ext4_calc_metadata_amount(struct inode *inode, int blocks)
1007{ 1009{
1010 if (!blocks)
1011 return 0;
1012
1008 if (EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL) 1013 if (EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL)
1009 return ext4_ext_calc_metadata_amount(inode, blocks); 1014 return ext4_ext_calc_metadata_amount(inode, blocks);
1010 1015
@@ -1041,18 +1046,6 @@ static void ext4_da_update_reserve_space(struct inode *inode, int used)
1041 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); 1046 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
1042} 1047}
1043 1048
1044/* Maximum number of blocks we map for direct IO at once. */
1045#define DIO_MAX_BLOCKS 4096
1046/*
1047 * Number of credits we need for writing DIO_MAX_BLOCKS:
1048 * We need sb + group descriptor + bitmap + inode -> 4
1049 * For B blocks with A block pointers per block we need:
1050 * 1 (triple ind.) + (B/A/A + 2) (doubly ind.) + (B/A + 2) (indirect).
1051 * If we plug in 4096 for B and 256 for A (for 1KB block size), we get 25.
1052 */
1053#define DIO_CREDITS 25
1054
1055
1056/* 1049/*
1057 * The ext4_get_blocks_wrap() function try to look up the requested blocks, 1050 * The ext4_get_blocks_wrap() function try to look up the requested blocks,
1058 * and returns if the blocks are already mapped. 1051 * and returns if the blocks are already mapped.
@@ -1164,19 +1157,23 @@ int ext4_get_blocks_wrap(handle_t *handle, struct inode *inode, sector_t block,
1164 return retval; 1157 return retval;
1165} 1158}
1166 1159
1160/* Maximum number of blocks we map for direct IO at once. */
1161#define DIO_MAX_BLOCKS 4096
1162
1167static int ext4_get_block(struct inode *inode, sector_t iblock, 1163static int ext4_get_block(struct inode *inode, sector_t iblock,
1168 struct buffer_head *bh_result, int create) 1164 struct buffer_head *bh_result, int create)
1169{ 1165{
1170 handle_t *handle = ext4_journal_current_handle(); 1166 handle_t *handle = ext4_journal_current_handle();
1171 int ret = 0, started = 0; 1167 int ret = 0, started = 0;
1172 unsigned max_blocks = bh_result->b_size >> inode->i_blkbits; 1168 unsigned max_blocks = bh_result->b_size >> inode->i_blkbits;
1169 int dio_credits;
1173 1170
1174 if (create && !handle) { 1171 if (create && !handle) {
1175 /* Direct IO write... */ 1172 /* Direct IO write... */
1176 if (max_blocks > DIO_MAX_BLOCKS) 1173 if (max_blocks > DIO_MAX_BLOCKS)
1177 max_blocks = DIO_MAX_BLOCKS; 1174 max_blocks = DIO_MAX_BLOCKS;
1178 handle = ext4_journal_start(inode, DIO_CREDITS + 1175 dio_credits = ext4_chunk_trans_blocks(inode, max_blocks);
1179 2 * EXT4_QUOTA_TRANS_BLOCKS(inode->i_sb)); 1176 handle = ext4_journal_start(inode, dio_credits);
1180 if (IS_ERR(handle)) { 1177 if (IS_ERR(handle)) {
1181 ret = PTR_ERR(handle); 1178 ret = PTR_ERR(handle);
1182 goto out; 1179 goto out;
@@ -1559,7 +1556,25 @@ static void ext4_da_release_space(struct inode *inode, int to_free)
1559 struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); 1556 struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
1560 int total, mdb, mdb_free, release; 1557 int total, mdb, mdb_free, release;
1561 1558
1559 if (!to_free)
1560 return; /* Nothing to release, exit */
1561
1562 spin_lock(&EXT4_I(inode)->i_block_reservation_lock); 1562 spin_lock(&EXT4_I(inode)->i_block_reservation_lock);
1563
1564 if (!EXT4_I(inode)->i_reserved_data_blocks) {
1565 /*
1566 * if there is no reserved blocks, but we try to free some
1567 * then the counter is messed up somewhere.
1568 * but since this function is called from invalidate
1569 * page, it's harmless to return without any action
1570 */
1571 printk(KERN_INFO "ext4 delalloc try to release %d reserved "
1572 "blocks for inode %lu, but there is no reserved "
1573 "data blocks\n", to_free, inode->i_ino);
1574 spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
1575 return;
1576 }
1577
1563 /* recalculate the number of metablocks still need to be reserved */ 1578 /* recalculate the number of metablocks still need to be reserved */
1564 total = EXT4_I(inode)->i_reserved_data_blocks - to_free; 1579 total = EXT4_I(inode)->i_reserved_data_blocks - to_free;
1565 mdb = ext4_calc_metadata_amount(inode, total); 1580 mdb = ext4_calc_metadata_amount(inode, total);
@@ -1613,11 +1628,13 @@ struct mpage_da_data {
1613 unsigned long first_page, next_page; /* extent of pages */ 1628 unsigned long first_page, next_page; /* extent of pages */
1614 get_block_t *get_block; 1629 get_block_t *get_block;
1615 struct writeback_control *wbc; 1630 struct writeback_control *wbc;
1631 int io_done;
1632 long pages_written;
1616}; 1633};
1617 1634
1618/* 1635/*
1619 * mpage_da_submit_io - walks through extent of pages and try to write 1636 * mpage_da_submit_io - walks through extent of pages and try to write
1620 * them with __mpage_writepage() 1637 * them with writepage() call back
1621 * 1638 *
1622 * @mpd->inode: inode 1639 * @mpd->inode: inode
1623 * @mpd->first_page: first page of the extent 1640 * @mpd->first_page: first page of the extent
@@ -1632,18 +1649,11 @@ struct mpage_da_data {
1632static int mpage_da_submit_io(struct mpage_da_data *mpd) 1649static int mpage_da_submit_io(struct mpage_da_data *mpd)
1633{ 1650{
1634 struct address_space *mapping = mpd->inode->i_mapping; 1651 struct address_space *mapping = mpd->inode->i_mapping;
1635 struct mpage_data mpd_pp = {
1636 .bio = NULL,
1637 .last_block_in_bio = 0,
1638 .get_block = mpd->get_block,
1639 .use_writepage = 1,
1640 };
1641 int ret = 0, err, nr_pages, i; 1652 int ret = 0, err, nr_pages, i;
1642 unsigned long index, end; 1653 unsigned long index, end;
1643 struct pagevec pvec; 1654 struct pagevec pvec;
1644 1655
1645 BUG_ON(mpd->next_page <= mpd->first_page); 1656 BUG_ON(mpd->next_page <= mpd->first_page);
1646
1647 pagevec_init(&pvec, 0); 1657 pagevec_init(&pvec, 0);
1648 index = mpd->first_page; 1658 index = mpd->first_page;
1649 end = mpd->next_page - 1; 1659 end = mpd->next_page - 1;
@@ -1661,8 +1671,9 @@ static int mpage_da_submit_io(struct mpage_da_data *mpd)
1661 break; 1671 break;
1662 index++; 1672 index++;
1663 1673
1664 err = __mpage_writepage(page, mpd->wbc, &mpd_pp); 1674 err = mapping->a_ops->writepage(page, mpd->wbc);
1665 1675 if (!err)
1676 mpd->pages_written++;
1666 /* 1677 /*
1667 * In error case, we have to continue because 1678 * In error case, we have to continue because
1668 * remaining pages are still locked 1679 * remaining pages are still locked
@@ -1673,9 +1684,6 @@ static int mpage_da_submit_io(struct mpage_da_data *mpd)
1673 } 1684 }
1674 pagevec_release(&pvec); 1685 pagevec_release(&pvec);
1675 } 1686 }
1676 if (mpd_pp.bio)
1677 mpage_bio_submit(WRITE, mpd_pp.bio);
1678
1679 return ret; 1687 return ret;
1680} 1688}
1681 1689
@@ -1698,7 +1706,7 @@ static void mpage_put_bnr_to_bhs(struct mpage_da_data *mpd, sector_t logical,
1698 int blocks = exbh->b_size >> inode->i_blkbits; 1706 int blocks = exbh->b_size >> inode->i_blkbits;
1699 sector_t pblock = exbh->b_blocknr, cur_logical; 1707 sector_t pblock = exbh->b_blocknr, cur_logical;
1700 struct buffer_head *head, *bh; 1708 struct buffer_head *head, *bh;
1701 unsigned long index, end; 1709 pgoff_t index, end;
1702 struct pagevec pvec; 1710 struct pagevec pvec;
1703 int nr_pages, i; 1711 int nr_pages, i;
1704 1712
@@ -1741,6 +1749,13 @@ static void mpage_put_bnr_to_bhs(struct mpage_da_data *mpd, sector_t logical,
1741 if (buffer_delay(bh)) { 1749 if (buffer_delay(bh)) {
1742 bh->b_blocknr = pblock; 1750 bh->b_blocknr = pblock;
1743 clear_buffer_delay(bh); 1751 clear_buffer_delay(bh);
1752 bh->b_bdev = inode->i_sb->s_bdev;
1753 } else if (buffer_unwritten(bh)) {
1754 bh->b_blocknr = pblock;
1755 clear_buffer_unwritten(bh);
1756 set_buffer_mapped(bh);
1757 set_buffer_new(bh);
1758 bh->b_bdev = inode->i_sb->s_bdev;
1744 } else if (buffer_mapped(bh)) 1759 } else if (buffer_mapped(bh))
1745 BUG_ON(bh->b_blocknr != pblock); 1760 BUG_ON(bh->b_blocknr != pblock);
1746 1761
@@ -1776,13 +1791,11 @@ static inline void __unmap_underlying_blocks(struct inode *inode,
1776 * 1791 *
1777 * The function skips space we know is already mapped to disk blocks. 1792 * The function skips space we know is already mapped to disk blocks.
1778 * 1793 *
1779 * The function ignores errors ->get_block() returns, thus real
1780 * error handling is postponed to __mpage_writepage()
1781 */ 1794 */
1782static void mpage_da_map_blocks(struct mpage_da_data *mpd) 1795static void mpage_da_map_blocks(struct mpage_da_data *mpd)
1783{ 1796{
1797 int err = 0;
1784 struct buffer_head *lbh = &mpd->lbh; 1798 struct buffer_head *lbh = &mpd->lbh;
1785 int err = 0, remain = lbh->b_size;
1786 sector_t next = lbh->b_blocknr; 1799 sector_t next = lbh->b_blocknr;
1787 struct buffer_head new; 1800 struct buffer_head new;
1788 1801
@@ -1792,38 +1805,36 @@ static void mpage_da_map_blocks(struct mpage_da_data *mpd)
1792 if (buffer_mapped(lbh) && !buffer_delay(lbh)) 1805 if (buffer_mapped(lbh) && !buffer_delay(lbh))
1793 return; 1806 return;
1794 1807
1795 while (remain) { 1808 new.b_state = lbh->b_state;
1796 new.b_state = lbh->b_state; 1809 new.b_blocknr = 0;
1797 new.b_blocknr = 0; 1810 new.b_size = lbh->b_size;
1798 new.b_size = remain;
1799 err = mpd->get_block(mpd->inode, next, &new, 1);
1800 if (err) {
1801 /*
1802 * Rather than implement own error handling
1803 * here, we just leave remaining blocks
1804 * unallocated and try again with ->writepage()
1805 */
1806 break;
1807 }
1808 BUG_ON(new.b_size == 0);
1809 1811
1810 if (buffer_new(&new)) 1812 /*
1811 __unmap_underlying_blocks(mpd->inode, &new); 1813 * If we didn't accumulate anything
1814 * to write simply return
1815 */
1816 if (!new.b_size)
1817 return;
1818 err = mpd->get_block(mpd->inode, next, &new, 1);
1819 if (err)
1820 return;
1821 BUG_ON(new.b_size == 0);
1812 1822
1813 /* 1823 if (buffer_new(&new))
1814 * If blocks are delayed marked, we need to 1824 __unmap_underlying_blocks(mpd->inode, &new);
1815 * put actual blocknr and drop delayed bit
1816 */
1817 if (buffer_delay(lbh))
1818 mpage_put_bnr_to_bhs(mpd, next, &new);
1819 1825
1820 /* go for the remaining blocks */ 1826 /*
1821 next += new.b_size >> mpd->inode->i_blkbits; 1827 * If blocks are delayed marked, we need to
1822 remain -= new.b_size; 1828 * put actual blocknr and drop delayed bit
1823 } 1829 */
1830 if (buffer_delay(lbh) || buffer_unwritten(lbh))
1831 mpage_put_bnr_to_bhs(mpd, next, &new);
1832
1833 return;
1824} 1834}
1825 1835
1826#define BH_FLAGS ((1 << BH_Uptodate) | (1 << BH_Mapped) | (1 << BH_Delay)) 1836#define BH_FLAGS ((1 << BH_Uptodate) | (1 << BH_Mapped) | \
1837 (1 << BH_Delay) | (1 << BH_Unwritten))
1827 1838
1828/* 1839/*
1829 * mpage_add_bh_to_extent - try to add one more block to extent of blocks 1840 * mpage_add_bh_to_extent - try to add one more block to extent of blocks
@@ -1837,41 +1848,61 @@ static void mpage_da_map_blocks(struct mpage_da_data *mpd)
1837static void mpage_add_bh_to_extent(struct mpage_da_data *mpd, 1848static void mpage_add_bh_to_extent(struct mpage_da_data *mpd,
1838 sector_t logical, struct buffer_head *bh) 1849 sector_t logical, struct buffer_head *bh)
1839{ 1850{
1840 struct buffer_head *lbh = &mpd->lbh;
1841 sector_t next; 1851 sector_t next;
1852 size_t b_size = bh->b_size;
1853 struct buffer_head *lbh = &mpd->lbh;
1854 int nrblocks = lbh->b_size >> mpd->inode->i_blkbits;
1842 1855
1843 next = lbh->b_blocknr + (lbh->b_size >> mpd->inode->i_blkbits); 1856 /* check if thereserved journal credits might overflow */
1844 1857 if (!(EXT4_I(mpd->inode)->i_flags & EXT4_EXTENTS_FL)) {
1858 if (nrblocks >= EXT4_MAX_TRANS_DATA) {
1859 /*
1860 * With non-extent format we are limited by the journal
1861 * credit available. Total credit needed to insert
1862 * nrblocks contiguous blocks is dependent on the
1863 * nrblocks. So limit nrblocks.
1864 */
1865 goto flush_it;
1866 } else if ((nrblocks + (b_size >> mpd->inode->i_blkbits)) >
1867 EXT4_MAX_TRANS_DATA) {
1868 /*
1869 * Adding the new buffer_head would make it cross the
1870 * allowed limit for which we have journal credit
1871 * reserved. So limit the new bh->b_size
1872 */
1873 b_size = (EXT4_MAX_TRANS_DATA - nrblocks) <<
1874 mpd->inode->i_blkbits;
1875 /* we will do mpage_da_submit_io in the next loop */
1876 }
1877 }
1845 /* 1878 /*
1846 * First block in the extent 1879 * First block in the extent
1847 */ 1880 */
1848 if (lbh->b_size == 0) { 1881 if (lbh->b_size == 0) {
1849 lbh->b_blocknr = logical; 1882 lbh->b_blocknr = logical;
1850 lbh->b_size = bh->b_size; 1883 lbh->b_size = b_size;
1851 lbh->b_state = bh->b_state & BH_FLAGS; 1884 lbh->b_state = bh->b_state & BH_FLAGS;
1852 return; 1885 return;
1853 } 1886 }
1854 1887
1888 next = lbh->b_blocknr + nrblocks;
1855 /* 1889 /*
1856 * Can we merge the block to our big extent? 1890 * Can we merge the block to our big extent?
1857 */ 1891 */
1858 if (logical == next && (bh->b_state & BH_FLAGS) == lbh->b_state) { 1892 if (logical == next && (bh->b_state & BH_FLAGS) == lbh->b_state) {
1859 lbh->b_size += bh->b_size; 1893 lbh->b_size += b_size;
1860 return; 1894 return;
1861 } 1895 }
1862 1896
1897flush_it:
1863 /* 1898 /*
1864 * We couldn't merge the block to our extent, so we 1899 * We couldn't merge the block to our extent, so we
1865 * need to flush current extent and start new one 1900 * need to flush current extent and start new one
1866 */ 1901 */
1867 mpage_da_map_blocks(mpd); 1902 mpage_da_map_blocks(mpd);
1868 1903 mpage_da_submit_io(mpd);
1869 /* 1904 mpd->io_done = 1;
1870 * Now start a new extent 1905 return;
1871 */
1872 lbh->b_size = bh->b_size;
1873 lbh->b_state = bh->b_state & BH_FLAGS;
1874 lbh->b_blocknr = logical;
1875} 1906}
1876 1907
1877/* 1908/*
@@ -1891,17 +1922,35 @@ static int __mpage_da_writepage(struct page *page,
1891 struct buffer_head *bh, *head, fake; 1922 struct buffer_head *bh, *head, fake;
1892 sector_t logical; 1923 sector_t logical;
1893 1924
1925 if (mpd->io_done) {
1926 /*
1927 * Rest of the page in the page_vec
1928 * redirty then and skip then. We will
1929 * try to to write them again after
1930 * starting a new transaction
1931 */
1932 redirty_page_for_writepage(wbc, page);
1933 unlock_page(page);
1934 return MPAGE_DA_EXTENT_TAIL;
1935 }
1894 /* 1936 /*
1895 * Can we merge this page to current extent? 1937 * Can we merge this page to current extent?
1896 */ 1938 */
1897 if (mpd->next_page != page->index) { 1939 if (mpd->next_page != page->index) {
1898 /* 1940 /*
1899 * Nope, we can't. So, we map non-allocated blocks 1941 * Nope, we can't. So, we map non-allocated blocks
1900 * and start IO on them using __mpage_writepage() 1942 * and start IO on them using writepage()
1901 */ 1943 */
1902 if (mpd->next_page != mpd->first_page) { 1944 if (mpd->next_page != mpd->first_page) {
1903 mpage_da_map_blocks(mpd); 1945 mpage_da_map_blocks(mpd);
1904 mpage_da_submit_io(mpd); 1946 mpage_da_submit_io(mpd);
1947 /*
1948 * skip rest of the page in the page_vec
1949 */
1950 mpd->io_done = 1;
1951 redirty_page_for_writepage(wbc, page);
1952 unlock_page(page);
1953 return MPAGE_DA_EXTENT_TAIL;
1905 } 1954 }
1906 1955
1907 /* 1956 /*
@@ -1932,6 +1981,8 @@ static int __mpage_da_writepage(struct page *page,
1932 set_buffer_dirty(bh); 1981 set_buffer_dirty(bh);
1933 set_buffer_uptodate(bh); 1982 set_buffer_uptodate(bh);
1934 mpage_add_bh_to_extent(mpd, logical, bh); 1983 mpage_add_bh_to_extent(mpd, logical, bh);
1984 if (mpd->io_done)
1985 return MPAGE_DA_EXTENT_TAIL;
1935 } else { 1986 } else {
1936 /* 1987 /*
1937 * Page with regular buffer heads, just add all dirty ones 1988 * Page with regular buffer heads, just add all dirty ones
@@ -1940,8 +1991,12 @@ static int __mpage_da_writepage(struct page *page,
1940 bh = head; 1991 bh = head;
1941 do { 1992 do {
1942 BUG_ON(buffer_locked(bh)); 1993 BUG_ON(buffer_locked(bh));
1943 if (buffer_dirty(bh)) 1994 if (buffer_dirty(bh) &&
1995 (!buffer_mapped(bh) || buffer_delay(bh))) {
1944 mpage_add_bh_to_extent(mpd, logical, bh); 1996 mpage_add_bh_to_extent(mpd, logical, bh);
1997 if (mpd->io_done)
1998 return MPAGE_DA_EXTENT_TAIL;
1999 }
1945 logical++; 2000 logical++;
1946 } while ((bh = bh->b_this_page) != head); 2001 } while ((bh = bh->b_this_page) != head);
1947 } 2002 }
@@ -1960,22 +2015,13 @@ static int __mpage_da_writepage(struct page *page,
1960 * 2015 *
1961 * This is a library function, which implements the writepages() 2016 * This is a library function, which implements the writepages()
1962 * address_space_operation. 2017 * address_space_operation.
1963 *
1964 * In order to avoid duplication of logic that deals with partial pages,
1965 * multiple bio per page, etc, we find non-allocated blocks, allocate
1966 * them with minimal calls to ->get_block() and re-use __mpage_writepage()
1967 *
1968 * It's important that we call __mpage_writepage() only once for each
1969 * involved page, otherwise we'd have to implement more complicated logic
1970 * to deal with pages w/o PG_lock or w/ PG_writeback and so on.
1971 *
1972 * See comments to mpage_writepages()
1973 */ 2018 */
1974static int mpage_da_writepages(struct address_space *mapping, 2019static int mpage_da_writepages(struct address_space *mapping,
1975 struct writeback_control *wbc, 2020 struct writeback_control *wbc,
1976 get_block_t get_block) 2021 get_block_t get_block)
1977{ 2022{
1978 struct mpage_da_data mpd; 2023 struct mpage_da_data mpd;
2024 long to_write;
1979 int ret; 2025 int ret;
1980 2026
1981 if (!get_block) 2027 if (!get_block)
@@ -1989,17 +2035,22 @@ static int mpage_da_writepages(struct address_space *mapping,
1989 mpd.first_page = 0; 2035 mpd.first_page = 0;
1990 mpd.next_page = 0; 2036 mpd.next_page = 0;
1991 mpd.get_block = get_block; 2037 mpd.get_block = get_block;
2038 mpd.io_done = 0;
2039 mpd.pages_written = 0;
2040
2041 to_write = wbc->nr_to_write;
1992 2042
1993 ret = write_cache_pages(mapping, wbc, __mpage_da_writepage, &mpd); 2043 ret = write_cache_pages(mapping, wbc, __mpage_da_writepage, &mpd);
1994 2044
1995 /* 2045 /*
1996 * Handle last extent of pages 2046 * Handle last extent of pages
1997 */ 2047 */
1998 if (mpd.next_page != mpd.first_page) { 2048 if (!mpd.io_done && mpd.next_page != mpd.first_page) {
1999 mpage_da_map_blocks(&mpd); 2049 mpage_da_map_blocks(&mpd);
2000 mpage_da_submit_io(&mpd); 2050 mpage_da_submit_io(&mpd);
2001 } 2051 }
2002 2052
2053 wbc->nr_to_write = to_write - mpd.pages_written;
2003 return ret; 2054 return ret;
2004} 2055}
2005 2056
@@ -2204,63 +2255,95 @@ static int ext4_da_writepage(struct page *page,
2204} 2255}
2205 2256
2206/* 2257/*
2207 * For now just follow the DIO way to estimate the max credits 2258 * This is called via ext4_da_writepages() to
2208 * needed to write out EXT4_MAX_WRITEBACK_PAGES. 2259 * calulate the total number of credits to reserve to fit
2209 * todo: need to calculate the max credits need for 2260 * a single extent allocation into a single transaction,
2210 * extent based files, currently the DIO credits is based on 2261 * ext4_da_writpeages() will loop calling this before
2211 * indirect-blocks mapping way. 2262 * the block allocation.
2212 *
2213 * Probably should have a generic way to calculate credits
2214 * for DIO, writepages, and truncate
2215 */ 2263 */
2216#define EXT4_MAX_WRITEBACK_PAGES DIO_MAX_BLOCKS 2264
2217#define EXT4_MAX_WRITEBACK_CREDITS DIO_CREDITS 2265static int ext4_da_writepages_trans_blocks(struct inode *inode)
2266{
2267 int max_blocks = EXT4_I(inode)->i_reserved_data_blocks;
2268
2269 /*
2270 * With non-extent format the journal credit needed to
2271 * insert nrblocks contiguous block is dependent on
2272 * number of contiguous block. So we will limit
2273 * number of contiguous block to a sane value
2274 */
2275 if (!(inode->i_flags & EXT4_EXTENTS_FL) &&
2276 (max_blocks > EXT4_MAX_TRANS_DATA))
2277 max_blocks = EXT4_MAX_TRANS_DATA;
2278
2279 return ext4_chunk_trans_blocks(inode, max_blocks);
2280}
2218 2281
2219static int ext4_da_writepages(struct address_space *mapping, 2282static int ext4_da_writepages(struct address_space *mapping,
2220 struct writeback_control *wbc) 2283 struct writeback_control *wbc)
2221{ 2284{
2222 struct inode *inode = mapping->host;
2223 handle_t *handle = NULL; 2285 handle_t *handle = NULL;
2224 int needed_blocks;
2225 int ret = 0;
2226 long to_write;
2227 loff_t range_start = 0; 2286 loff_t range_start = 0;
2287 struct inode *inode = mapping->host;
2288 int needed_blocks, ret = 0, nr_to_writebump = 0;
2289 long to_write, pages_skipped = 0;
2290 struct ext4_sb_info *sbi = EXT4_SB(mapping->host->i_sb);
2228 2291
2229 /* 2292 /*
2230 * No pages to write? This is mainly a kludge to avoid starting 2293 * No pages to write? This is mainly a kludge to avoid starting
2231 * a transaction for special inodes like journal inode on last iput() 2294 * a transaction for special inodes like journal inode on last iput()
2232 * because that could violate lock ordering on umount 2295 * because that could violate lock ordering on umount
2233 */ 2296 */
2234 if (!mapping->nrpages) 2297 if (!mapping->nrpages || !mapping_tagged(mapping, PAGECACHE_TAG_DIRTY))
2235 return 0; 2298 return 0;
2236
2237 /* 2299 /*
2238 * Estimate the worse case needed credits to write out 2300 * Make sure nr_to_write is >= sbi->s_mb_stream_request
2239 * EXT4_MAX_BUF_BLOCKS pages 2301 * This make sure small files blocks are allocated in
2302 * single attempt. This ensure that small files
2303 * get less fragmented.
2240 */ 2304 */
2241 needed_blocks = EXT4_MAX_WRITEBACK_CREDITS; 2305 if (wbc->nr_to_write < sbi->s_mb_stream_request) {
2306 nr_to_writebump = sbi->s_mb_stream_request - wbc->nr_to_write;
2307 wbc->nr_to_write = sbi->s_mb_stream_request;
2308 }
2242 2309
2243 to_write = wbc->nr_to_write; 2310 if (!wbc->range_cyclic)
2244 if (!wbc->range_cyclic) {
2245 /* 2311 /*
2246 * If range_cyclic is not set force range_cont 2312 * If range_cyclic is not set force range_cont
2247 * and save the old writeback_index 2313 * and save the old writeback_index
2248 */ 2314 */
2249 wbc->range_cont = 1; 2315 wbc->range_cont = 1;
2250 range_start = wbc->range_start;
2251 }
2252 2316
2253 while (!ret && to_write) { 2317 range_start = wbc->range_start;
2318 pages_skipped = wbc->pages_skipped;
2319
2320restart_loop:
2321 to_write = wbc->nr_to_write;
2322 while (!ret && to_write > 0) {
2323
2324 /*
2325 * we insert one extent at a time. So we need
2326 * credit needed for single extent allocation.
2327 * journalled mode is currently not supported
2328 * by delalloc
2329 */
2330 BUG_ON(ext4_should_journal_data(inode));
2331 needed_blocks = ext4_da_writepages_trans_blocks(inode);
2332
2254 /* start a new transaction*/ 2333 /* start a new transaction*/
2255 handle = ext4_journal_start(inode, needed_blocks); 2334 handle = ext4_journal_start(inode, needed_blocks);
2256 if (IS_ERR(handle)) { 2335 if (IS_ERR(handle)) {
2257 ret = PTR_ERR(handle); 2336 ret = PTR_ERR(handle);
2337 printk(KERN_EMERG "%s: jbd2_start: "
2338 "%ld pages, ino %lu; err %d\n", __func__,
2339 wbc->nr_to_write, inode->i_ino, ret);
2340 dump_stack();
2258 goto out_writepages; 2341 goto out_writepages;
2259 } 2342 }
2260 if (ext4_should_order_data(inode)) { 2343 if (ext4_should_order_data(inode)) {
2261 /* 2344 /*
2262 * With ordered mode we need to add 2345 * With ordered mode we need to add
2263 * the inode to the journal handle 2346 * the inode to the journal handl
2264 * when we do block allocation. 2347 * when we do block allocation.
2265 */ 2348 */
2266 ret = ext4_jbd2_file_inode(handle, inode); 2349 ret = ext4_jbd2_file_inode(handle, inode);
@@ -2268,20 +2351,20 @@ static int ext4_da_writepages(struct address_space *mapping,
2268 ext4_journal_stop(handle); 2351 ext4_journal_stop(handle);
2269 goto out_writepages; 2352 goto out_writepages;
2270 } 2353 }
2271
2272 } 2354 }
2273 /*
2274 * set the max dirty pages could be write at a time
2275 * to fit into the reserved transaction credits
2276 */
2277 if (wbc->nr_to_write > EXT4_MAX_WRITEBACK_PAGES)
2278 wbc->nr_to_write = EXT4_MAX_WRITEBACK_PAGES;
2279 2355
2280 to_write -= wbc->nr_to_write; 2356 to_write -= wbc->nr_to_write;
2281 ret = mpage_da_writepages(mapping, wbc, 2357 ret = mpage_da_writepages(mapping, wbc,
2282 ext4_da_get_block_write); 2358 ext4_da_get_block_write);
2283 ext4_journal_stop(handle); 2359 ext4_journal_stop(handle);
2284 if (wbc->nr_to_write) { 2360 if (ret == MPAGE_DA_EXTENT_TAIL) {
2361 /*
2362 * got one extent now try with
2363 * rest of the pages
2364 */
2365 to_write += wbc->nr_to_write;
2366 ret = 0;
2367 } else if (wbc->nr_to_write) {
2285 /* 2368 /*
2286 * There is no more writeout needed 2369 * There is no more writeout needed
2287 * or we requested for a noblocking writeout 2370 * or we requested for a noblocking writeout
@@ -2293,10 +2376,18 @@ static int ext4_da_writepages(struct address_space *mapping,
2293 wbc->nr_to_write = to_write; 2376 wbc->nr_to_write = to_write;
2294 } 2377 }
2295 2378
2296out_writepages: 2379 if (wbc->range_cont && (pages_skipped != wbc->pages_skipped)) {
2297 wbc->nr_to_write = to_write; 2380 /* We skipped pages in this loop */
2298 if (range_start)
2299 wbc->range_start = range_start; 2381 wbc->range_start = range_start;
2382 wbc->nr_to_write = to_write +
2383 wbc->pages_skipped - pages_skipped;
2384 wbc->pages_skipped = pages_skipped;
2385 goto restart_loop;
2386 }
2387
2388out_writepages:
2389 wbc->nr_to_write = to_write - nr_to_writebump;
2390 wbc->range_start = range_start;
2300 return ret; 2391 return ret;
2301} 2392}
2302 2393
@@ -3486,6 +3577,9 @@ void ext4_truncate(struct inode *inode)
3486 * modify the block allocation tree. 3577 * modify the block allocation tree.
3487 */ 3578 */
3488 down_write(&ei->i_data_sem); 3579 down_write(&ei->i_data_sem);
3580
3581 ext4_discard_reservation(inode);
3582
3489 /* 3583 /*
3490 * The orphan list entry will now protect us from any crash which 3584 * The orphan list entry will now protect us from any crash which
3491 * occurs before the truncate completes, so it is now safe to propagate 3585 * occurs before the truncate completes, so it is now safe to propagate
@@ -3555,8 +3649,6 @@ do_indirects:
3555 ; 3649 ;
3556 } 3650 }
3557 3651
3558 ext4_discard_reservation(inode);
3559
3560 up_write(&ei->i_data_sem); 3652 up_write(&ei->i_data_sem);
3561 inode->i_mtime = inode->i_ctime = ext4_current_time(inode); 3653 inode->i_mtime = inode->i_ctime = ext4_current_time(inode);
3562 ext4_mark_inode_dirty(handle, inode); 3654 ext4_mark_inode_dirty(handle, inode);
@@ -4324,57 +4416,129 @@ int ext4_getattr(struct vfsmount *mnt, struct dentry *dentry,
4324 return 0; 4416 return 0;
4325} 4417}
4326 4418
4419static int ext4_indirect_trans_blocks(struct inode *inode, int nrblocks,
4420 int chunk)
4421{
4422 int indirects;
4423
4424 /* if nrblocks are contiguous */
4425 if (chunk) {
4426 /*
4427 * With N contiguous data blocks, it need at most
4428 * N/EXT4_ADDR_PER_BLOCK(inode->i_sb) indirect blocks
4429 * 2 dindirect blocks
4430 * 1 tindirect block
4431 */
4432 indirects = nrblocks / EXT4_ADDR_PER_BLOCK(inode->i_sb);
4433 return indirects + 3;
4434 }
4435 /*
4436 * if nrblocks are not contiguous, worse case, each block touch
4437 * a indirect block, and each indirect block touch a double indirect
4438 * block, plus a triple indirect block
4439 */
4440 indirects = nrblocks * 2 + 1;
4441 return indirects;
4442}
4443
4444static int ext4_index_trans_blocks(struct inode *inode, int nrblocks, int chunk)
4445{
4446 if (!(EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL))
4447 return ext4_indirect_trans_blocks(inode, nrblocks, 0);
4448 return ext4_ext_index_trans_blocks(inode, nrblocks, 0);
4449}
4327/* 4450/*
4328 * How many blocks doth make a writepage()? 4451 * Account for index blocks, block groups bitmaps and block group
4329 * 4452 * descriptor blocks if modify datablocks and index blocks
4330 * With N blocks per page, it may be: 4453 * worse case, the indexs blocks spread over different block groups
4331 * N data blocks
4332 * 2 indirect block
4333 * 2 dindirect
4334 * 1 tindirect
4335 * N+5 bitmap blocks (from the above)
4336 * N+5 group descriptor summary blocks
4337 * 1 inode block
4338 * 1 superblock.
4339 * 2 * EXT4_SINGLEDATA_TRANS_BLOCKS for the quote files
4340 * 4454 *
4341 * 3 * (N + 5) + 2 + 2 * EXT4_SINGLEDATA_TRANS_BLOCKS 4455 * If datablocks are discontiguous, they are possible to spread over
4456 * different block groups too. If they are contiugous, with flexbg,
4457 * they could still across block group boundary.
4342 * 4458 *
4343 * With ordered or writeback data it's the same, less the N data blocks. 4459 * Also account for superblock, inode, quota and xattr blocks
4460 */
4461int ext4_meta_trans_blocks(struct inode *inode, int nrblocks, int chunk)
4462{
4463 int groups, gdpblocks;
4464 int idxblocks;
4465 int ret = 0;
4466
4467 /*
4468 * How many index blocks need to touch to modify nrblocks?
4469 * The "Chunk" flag indicating whether the nrblocks is
4470 * physically contiguous on disk
4471 *
4472 * For Direct IO and fallocate, they calls get_block to allocate
4473 * one single extent at a time, so they could set the "Chunk" flag
4474 */
4475 idxblocks = ext4_index_trans_blocks(inode, nrblocks, chunk);
4476
4477 ret = idxblocks;
4478
4479 /*
4480 * Now let's see how many group bitmaps and group descriptors need
4481 * to account
4482 */
4483 groups = idxblocks;
4484 if (chunk)
4485 groups += 1;
4486 else
4487 groups += nrblocks;
4488
4489 gdpblocks = groups;
4490 if (groups > EXT4_SB(inode->i_sb)->s_groups_count)
4491 groups = EXT4_SB(inode->i_sb)->s_groups_count;
4492 if (groups > EXT4_SB(inode->i_sb)->s_gdb_count)
4493 gdpblocks = EXT4_SB(inode->i_sb)->s_gdb_count;
4494
4495 /* bitmaps and block group descriptor blocks */
4496 ret += groups + gdpblocks;
4497
4498 /* Blocks for super block, inode, quota and xattr blocks */
4499 ret += EXT4_META_TRANS_BLOCKS(inode->i_sb);
4500
4501 return ret;
4502}
4503
4504/*
4505 * Calulate the total number of credits to reserve to fit
4506 * the modification of a single pages into a single transaction,
4507 * which may include multiple chunks of block allocations.
4344 * 4508 *
4345 * If the inode's direct blocks can hold an integral number of pages then a 4509 * This could be called via ext4_write_begin()
4346 * page cannot straddle two indirect blocks, and we can only touch one indirect
4347 * and dindirect block, and the "5" above becomes "3".
4348 * 4510 *
4349 * This still overestimates under most circumstances. If we were to pass the 4511 * We need to consider the worse case, when
4350 * start and end offsets in here as well we could do block_to_path() on each 4512 * one new block per extent.
4351 * block and work out the exact number of indirects which are touched. Pah.
4352 */ 4513 */
4353
4354int ext4_writepage_trans_blocks(struct inode *inode) 4514int ext4_writepage_trans_blocks(struct inode *inode)
4355{ 4515{
4356 int bpp = ext4_journal_blocks_per_page(inode); 4516 int bpp = ext4_journal_blocks_per_page(inode);
4357 int indirects = (EXT4_NDIR_BLOCKS % bpp) ? 5 : 3;
4358 int ret; 4517 int ret;
4359 4518
4360 if (EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL) 4519 ret = ext4_meta_trans_blocks(inode, bpp, 0);
4361 return ext4_ext_writepage_trans_blocks(inode, bpp);
4362 4520
4521 /* Account for data blocks for journalled mode */
4363 if (ext4_should_journal_data(inode)) 4522 if (ext4_should_journal_data(inode))
4364 ret = 3 * (bpp + indirects) + 2; 4523 ret += bpp;
4365 else
4366 ret = 2 * (bpp + indirects) + 2;
4367
4368#ifdef CONFIG_QUOTA
4369 /* We know that structure was already allocated during DQUOT_INIT so
4370 * we will be updating only the data blocks + inodes */
4371 ret += 2*EXT4_QUOTA_TRANS_BLOCKS(inode->i_sb);
4372#endif
4373
4374 return ret; 4524 return ret;
4375} 4525}
4376 4526
4377/* 4527/*
4528 * Calculate the journal credits for a chunk of data modification.
4529 *
4530 * This is called from DIO, fallocate or whoever calling
4531 * ext4_get_blocks_wrap() to map/allocate a chunk of contigous disk blocks.
4532 *
4533 * journal buffers for data blocks are not included here, as DIO
4534 * and fallocate do no need to journal data buffers.
4535 */
4536int ext4_chunk_trans_blocks(struct inode *inode, int nrblocks)
4537{
4538 return ext4_meta_trans_blocks(inode, nrblocks, 1);
4539}
4540
4541/*
4378 * The caller must have previously called ext4_reserve_inode_write(). 4542 * The caller must have previously called ext4_reserve_inode_write().
4379 * Give this, we know that the caller already has write access to iloc->bh. 4543 * Give this, we know that the caller already has write access to iloc->bh.
4380 */ 4544 */
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 865e9ddb44d..e0e3a5eb1dd 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -3282,6 +3282,35 @@ static void ext4_mb_use_group_pa(struct ext4_allocation_context *ac,
3282} 3282}
3283 3283
3284/* 3284/*
3285 * Return the prealloc space that have minimal distance
3286 * from the goal block. @cpa is the prealloc
3287 * space that is having currently known minimal distance
3288 * from the goal block.
3289 */
3290static struct ext4_prealloc_space *
3291ext4_mb_check_group_pa(ext4_fsblk_t goal_block,
3292 struct ext4_prealloc_space *pa,
3293 struct ext4_prealloc_space *cpa)
3294{
3295 ext4_fsblk_t cur_distance, new_distance;
3296
3297 if (cpa == NULL) {
3298 atomic_inc(&pa->pa_count);
3299 return pa;
3300 }
3301 cur_distance = abs(goal_block - cpa->pa_pstart);
3302 new_distance = abs(goal_block - pa->pa_pstart);
3303
3304 if (cur_distance < new_distance)
3305 return cpa;
3306
3307 /* drop the previous reference */
3308 atomic_dec(&cpa->pa_count);
3309 atomic_inc(&pa->pa_count);
3310 return pa;
3311}
3312
3313/*
3285 * search goal blocks in preallocated space 3314 * search goal blocks in preallocated space
3286 */ 3315 */
3287static noinline_for_stack int 3316static noinline_for_stack int
@@ -3290,7 +3319,8 @@ ext4_mb_use_preallocated(struct ext4_allocation_context *ac)
3290 int order, i; 3319 int order, i;
3291 struct ext4_inode_info *ei = EXT4_I(ac->ac_inode); 3320 struct ext4_inode_info *ei = EXT4_I(ac->ac_inode);
3292 struct ext4_locality_group *lg; 3321 struct ext4_locality_group *lg;
3293 struct ext4_prealloc_space *pa; 3322 struct ext4_prealloc_space *pa, *cpa = NULL;
3323 ext4_fsblk_t goal_block;
3294 3324
3295 /* only data can be preallocated */ 3325 /* only data can be preallocated */
3296 if (!(ac->ac_flags & EXT4_MB_HINT_DATA)) 3326 if (!(ac->ac_flags & EXT4_MB_HINT_DATA))
@@ -3333,6 +3363,13 @@ ext4_mb_use_preallocated(struct ext4_allocation_context *ac)
3333 /* The max size of hash table is PREALLOC_TB_SIZE */ 3363 /* The max size of hash table is PREALLOC_TB_SIZE */
3334 order = PREALLOC_TB_SIZE - 1; 3364 order = PREALLOC_TB_SIZE - 1;
3335 3365
3366 goal_block = ac->ac_g_ex.fe_group * EXT4_BLOCKS_PER_GROUP(ac->ac_sb) +
3367 ac->ac_g_ex.fe_start +
3368 le32_to_cpu(EXT4_SB(ac->ac_sb)->s_es->s_first_data_block);
3369 /*
3370 * search for the prealloc space that is having
3371 * minimal distance from the goal block.
3372 */
3336 for (i = order; i < PREALLOC_TB_SIZE; i++) { 3373 for (i = order; i < PREALLOC_TB_SIZE; i++) {
3337 rcu_read_lock(); 3374 rcu_read_lock();
3338 list_for_each_entry_rcu(pa, &lg->lg_prealloc_list[i], 3375 list_for_each_entry_rcu(pa, &lg->lg_prealloc_list[i],
@@ -3340,17 +3377,19 @@ ext4_mb_use_preallocated(struct ext4_allocation_context *ac)
3340 spin_lock(&pa->pa_lock); 3377 spin_lock(&pa->pa_lock);
3341 if (pa->pa_deleted == 0 && 3378 if (pa->pa_deleted == 0 &&
3342 pa->pa_free >= ac->ac_o_ex.fe_len) { 3379 pa->pa_free >= ac->ac_o_ex.fe_len) {
3343 atomic_inc(&pa->pa_count); 3380
3344 ext4_mb_use_group_pa(ac, pa); 3381 cpa = ext4_mb_check_group_pa(goal_block,
3345 spin_unlock(&pa->pa_lock); 3382 pa, cpa);
3346 ac->ac_criteria = 20;
3347 rcu_read_unlock();
3348 return 1;
3349 } 3383 }
3350 spin_unlock(&pa->pa_lock); 3384 spin_unlock(&pa->pa_lock);
3351 } 3385 }
3352 rcu_read_unlock(); 3386 rcu_read_unlock();
3353 } 3387 }
3388 if (cpa) {
3389 ext4_mb_use_group_pa(ac, cpa);
3390 ac->ac_criteria = 20;
3391 return 1;
3392 }
3354 return 0; 3393 return 0;
3355} 3394}
3356 3395
diff --git a/fs/ext4/migrate.c b/fs/ext4/migrate.c
index b9e077ba07e..46fc0b5b12b 100644
--- a/fs/ext4/migrate.c
+++ b/fs/ext4/migrate.c
@@ -53,7 +53,8 @@ static int finish_range(handle_t *handle, struct inode *inode,
53 * credit. But below we try to not accumalate too much 53 * credit. But below we try to not accumalate too much
54 * of them by restarting the journal. 54 * of them by restarting the journal.
55 */ 55 */
56 needed = ext4_ext_calc_credits_for_insert(inode, path); 56 needed = ext4_ext_calc_credits_for_single_extent(inode,
57 lb->last_block - lb->first_block + 1, path);
57 58
58 /* 59 /*
59 * Make sure the credit we accumalated is not really high 60 * Make sure the credit we accumalated is not really high
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index 0a926516426..b3d35604ea1 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -773,7 +773,8 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input)
773 773
774 if (reserved_gdb || gdb_off == 0) { 774 if (reserved_gdb || gdb_off == 0) {
775 if (!EXT4_HAS_COMPAT_FEATURE(sb, 775 if (!EXT4_HAS_COMPAT_FEATURE(sb,
776 EXT4_FEATURE_COMPAT_RESIZE_INODE)){ 776 EXT4_FEATURE_COMPAT_RESIZE_INODE)
777 || !le16_to_cpu(es->s_reserved_gdt_blocks)) {
777 ext4_warning(sb, __func__, 778 ext4_warning(sb, __func__,
778 "No reserved GDT blocks, can't resize"); 779 "No reserved GDT blocks, can't resize");
779 return -EPERM; 780 return -EPERM;
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index d5d77958b86..566344b926b 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -568,6 +568,7 @@ static struct inode *ext4_alloc_inode(struct super_block *sb)
568#endif 568#endif
569 ei->i_block_alloc_info = NULL; 569 ei->i_block_alloc_info = NULL;
570 ei->vfs_inode.i_version = 1; 570 ei->vfs_inode.i_version = 1;
571 ei->vfs_inode.i_data.writeback_index = 0;
571 memset(&ei->i_cached_extent, 0, sizeof(struct ext4_ext_cache)); 572 memset(&ei->i_cached_extent, 0, sizeof(struct ext4_ext_cache));
572 INIT_LIST_HEAD(&ei->i_prealloc_list); 573 INIT_LIST_HEAD(&ei->i_prealloc_list);
573 spin_lock_init(&ei->i_prealloc_lock); 574 spin_lock_init(&ei->i_prealloc_lock);
diff --git a/fs/inotify_user.c b/fs/inotify_user.c
index 60249429a25..d85c7d931cd 100644
--- a/fs/inotify_user.c
+++ b/fs/inotify_user.c
@@ -323,7 +323,7 @@ out:
323} 323}
324 324
325/* 325/*
326 * remove_kevent - cleans up and ultimately frees the given kevent 326 * remove_kevent - cleans up the given kevent
327 * 327 *
328 * Caller must hold dev->ev_mutex. 328 * Caller must hold dev->ev_mutex.
329 */ 329 */
@@ -334,7 +334,13 @@ static void remove_kevent(struct inotify_device *dev,
334 334
335 dev->event_count--; 335 dev->event_count--;
336 dev->queue_size -= sizeof(struct inotify_event) + kevent->event.len; 336 dev->queue_size -= sizeof(struct inotify_event) + kevent->event.len;
337}
337 338
339/*
340 * free_kevent - frees the given kevent.
341 */
342static void free_kevent(struct inotify_kernel_event *kevent)
343{
338 kfree(kevent->name); 344 kfree(kevent->name);
339 kmem_cache_free(event_cachep, kevent); 345 kmem_cache_free(event_cachep, kevent);
340} 346}
@@ -350,6 +356,7 @@ static void inotify_dev_event_dequeue(struct inotify_device *dev)
350 struct inotify_kernel_event *kevent; 356 struct inotify_kernel_event *kevent;
351 kevent = inotify_dev_get_event(dev); 357 kevent = inotify_dev_get_event(dev);
352 remove_kevent(dev, kevent); 358 remove_kevent(dev, kevent);
359 free_kevent(kevent);
353 } 360 }
354} 361}
355 362
@@ -433,17 +440,15 @@ static ssize_t inotify_read(struct file *file, char __user *buf,
433 dev = file->private_data; 440 dev = file->private_data;
434 441
435 while (1) { 442 while (1) {
436 int events;
437 443
438 prepare_to_wait(&dev->wq, &wait, TASK_INTERRUPTIBLE); 444 prepare_to_wait(&dev->wq, &wait, TASK_INTERRUPTIBLE);
439 445
440 mutex_lock(&dev->ev_mutex); 446 mutex_lock(&dev->ev_mutex);
441 events = !list_empty(&dev->events); 447 if (!list_empty(&dev->events)) {
442 mutex_unlock(&dev->ev_mutex);
443 if (events) {
444 ret = 0; 448 ret = 0;
445 break; 449 break;
446 } 450 }
451 mutex_unlock(&dev->ev_mutex);
447 452
448 if (file->f_flags & O_NONBLOCK) { 453 if (file->f_flags & O_NONBLOCK) {
449 ret = -EAGAIN; 454 ret = -EAGAIN;
@@ -462,7 +467,6 @@ static ssize_t inotify_read(struct file *file, char __user *buf,
462 if (ret) 467 if (ret)
463 return ret; 468 return ret;
464 469
465 mutex_lock(&dev->ev_mutex);
466 while (1) { 470 while (1) {
467 struct inotify_kernel_event *kevent; 471 struct inotify_kernel_event *kevent;
468 472
@@ -481,6 +485,13 @@ static ssize_t inotify_read(struct file *file, char __user *buf,
481 } 485 }
482 break; 486 break;
483 } 487 }
488 remove_kevent(dev, kevent);
489
490 /*
491 * Must perform the copy_to_user outside the mutex in order
492 * to avoid a lock order reversal with mmap_sem.
493 */
494 mutex_unlock(&dev->ev_mutex);
484 495
485 if (copy_to_user(buf, &kevent->event, event_size)) { 496 if (copy_to_user(buf, &kevent->event, event_size)) {
486 ret = -EFAULT; 497 ret = -EFAULT;
@@ -498,7 +509,9 @@ static ssize_t inotify_read(struct file *file, char __user *buf,
498 count -= kevent->event.len; 509 count -= kevent->event.len;
499 } 510 }
500 511
501 remove_kevent(dev, kevent); 512 free_kevent(kevent);
513
514 mutex_lock(&dev->ev_mutex);
502 } 515 }
503 mutex_unlock(&dev->ev_mutex); 516 mutex_unlock(&dev->ev_mutex);
504 517
diff --git a/fs/jffs2/jffs2_fs_i.h b/fs/jffs2/jffs2_fs_i.h
index 31559f45fdd..4c41db91eaa 100644
--- a/fs/jffs2/jffs2_fs_i.h
+++ b/fs/jffs2/jffs2_fs_i.h
@@ -12,7 +12,6 @@
12#ifndef _JFFS2_FS_I 12#ifndef _JFFS2_FS_I
13#define _JFFS2_FS_I 13#define _JFFS2_FS_I
14 14
15#include <linux/version.h>
16#include <linux/rbtree.h> 15#include <linux/rbtree.h>
17#include <linux/posix_acl.h> 16#include <linux/posix_acl.h>
18#include <linux/mutex.h> 17#include <linux/mutex.h>
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 9abcd2b329f..e9b20173fef 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -1279,6 +1279,12 @@ static int nfs_parse_mount_options(char *raw,
1279 } 1279 }
1280 } 1280 }
1281 1281
1282 if (errors > 0) {
1283 dfprintk(MOUNT, "NFS: parsing encountered %d error%s\n",
1284 errors, (errors == 1 ? "" : "s"));
1285 if (!sloppy)
1286 return 0;
1287 }
1282 return 1; 1288 return 1;
1283 1289
1284out_nomem: 1290out_nomem:
diff --git a/fs/nfsd/nfs4acl.c b/fs/nfsd/nfs4acl.c
index b6ed38380ab..54b8b4140c8 100644
--- a/fs/nfsd/nfs4acl.c
+++ b/fs/nfsd/nfs4acl.c
@@ -443,7 +443,7 @@ init_state(struct posix_acl_state *state, int cnt)
443 * enough space for either: 443 * enough space for either:
444 */ 444 */
445 alloc = sizeof(struct posix_ace_state_array) 445 alloc = sizeof(struct posix_ace_state_array)
446 + cnt*sizeof(struct posix_ace_state); 446 + cnt*sizeof(struct posix_user_ace_state);
447 state->users = kzalloc(alloc, GFP_KERNEL); 447 state->users = kzalloc(alloc, GFP_KERNEL);
448 if (!state->users) 448 if (!state->users)
449 return -ENOMEM; 449 return -ENOMEM;
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index 2e51adac65d..e5b51ffafc6 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -867,11 +867,6 @@ nfsd4_proc_compound(struct svc_rqst *rqstp,
867 int slack_bytes; 867 int slack_bytes;
868 __be32 status; 868 __be32 status;
869 869
870 status = nfserr_resource;
871 cstate = cstate_alloc();
872 if (cstate == NULL)
873 goto out;
874
875 resp->xbuf = &rqstp->rq_res; 870 resp->xbuf = &rqstp->rq_res;
876 resp->p = rqstp->rq_res.head[0].iov_base + rqstp->rq_res.head[0].iov_len; 871 resp->p = rqstp->rq_res.head[0].iov_base + rqstp->rq_res.head[0].iov_len;
877 resp->tagp = resp->p; 872 resp->tagp = resp->p;
@@ -890,6 +885,11 @@ nfsd4_proc_compound(struct svc_rqst *rqstp,
890 if (args->minorversion > NFSD_SUPPORTED_MINOR_VERSION) 885 if (args->minorversion > NFSD_SUPPORTED_MINOR_VERSION)
891 goto out; 886 goto out;
892 887
888 status = nfserr_resource;
889 cstate = cstate_alloc();
890 if (cstate == NULL)
891 goto out;
892
893 status = nfs_ok; 893 status = nfs_ok;
894 while (!status && resp->opcnt < args->opcnt) { 894 while (!status && resp->opcnt < args->opcnt) {
895 op = &args->ops[resp->opcnt++]; 895 op = &args->ops[resp->opcnt++];
@@ -957,9 +957,9 @@ encode_op:
957 nfsd4_increment_op_stats(op->opnum); 957 nfsd4_increment_op_stats(op->opnum);
958 } 958 }
959 959
960 cstate_free(cstate);
960out: 961out:
961 nfsd4_release_compoundargs(args); 962 nfsd4_release_compoundargs(args);
962 cstate_free(cstate);
963 dprintk("nfsv4 compound returned %d\n", ntohl(status)); 963 dprintk("nfsv4 compound returned %d\n", ntohl(status));
964 return status; 964 return status;
965} 965}
diff --git a/fs/ntfs/namei.c b/fs/ntfs/namei.c
index e1781c8b165..9e8a95be7a1 100644
--- a/fs/ntfs/namei.c
+++ b/fs/ntfs/namei.c
@@ -174,7 +174,6 @@ static struct dentry *ntfs_lookup(struct inode *dir_ino, struct dentry *dent,
174 // TODO: Consider moving this lot to a separate function! (AIA) 174 // TODO: Consider moving this lot to a separate function! (AIA)
175handle_name: 175handle_name:
176 { 176 {
177 struct dentry *real_dent, *new_dent;
178 MFT_RECORD *m; 177 MFT_RECORD *m;
179 ntfs_attr_search_ctx *ctx; 178 ntfs_attr_search_ctx *ctx;
180 ntfs_inode *ni = NTFS_I(dent_inode); 179 ntfs_inode *ni = NTFS_I(dent_inode);
@@ -255,93 +254,9 @@ handle_name:
255 } 254 }
256 nls_name.hash = full_name_hash(nls_name.name, nls_name.len); 255 nls_name.hash = full_name_hash(nls_name.name, nls_name.len);
257 256
258 /* 257 dent = d_add_ci(dent, dent_inode, &nls_name);
259 * Note: No need for dent->d_lock lock as i_mutex is held on the
260 * parent inode.
261 */
262
263 /* Does a dentry matching the nls_name exist already? */
264 real_dent = d_lookup(dent->d_parent, &nls_name);
265 /* If not, create it now. */
266 if (!real_dent) {
267 real_dent = d_alloc(dent->d_parent, &nls_name);
268 kfree(nls_name.name);
269 if (!real_dent) {
270 err = -ENOMEM;
271 goto err_out;
272 }
273 new_dent = d_splice_alias(dent_inode, real_dent);
274 if (new_dent)
275 dput(real_dent);
276 else
277 new_dent = real_dent;
278 ntfs_debug("Done. (Created new dentry.)");
279 return new_dent;
280 }
281 kfree(nls_name.name); 258 kfree(nls_name.name);
282 /* Matching dentry exists, check if it is negative. */ 259 return dent;
283 if (real_dent->d_inode) {
284 if (unlikely(real_dent->d_inode != dent_inode)) {
285 /* This can happen because bad inodes are unhashed. */
286 BUG_ON(!is_bad_inode(dent_inode));
287 BUG_ON(!is_bad_inode(real_dent->d_inode));
288 }
289 /*
290 * Already have the inode and the dentry attached, decrement
291 * the reference count to balance the ntfs_iget() we did
292 * earlier on. We found the dentry using d_lookup() so it
293 * cannot be disconnected and thus we do not need to worry
294 * about any NFS/disconnectedness issues here.
295 */
296 iput(dent_inode);
297 ntfs_debug("Done. (Already had inode and dentry.)");
298 return real_dent;
299 }
300 /*
301 * Negative dentry: instantiate it unless the inode is a directory and
302 * has a 'disconnected' dentry (i.e. IS_ROOT and DCACHE_DISCONNECTED),
303 * in which case d_move() that in place of the found dentry.
304 */
305 if (!S_ISDIR(dent_inode->i_mode)) {
306 /* Not a directory; everything is easy. */
307 d_instantiate(real_dent, dent_inode);
308 ntfs_debug("Done. (Already had negative file dentry.)");
309 return real_dent;
310 }
311 spin_lock(&dcache_lock);
312 if (list_empty(&dent_inode->i_dentry)) {
313 /*
314 * Directory without a 'disconnected' dentry; we need to do
315 * d_instantiate() by hand because it takes dcache_lock which
316 * we already hold.
317 */
318 list_add(&real_dent->d_alias, &dent_inode->i_dentry);
319 real_dent->d_inode = dent_inode;
320 spin_unlock(&dcache_lock);
321 security_d_instantiate(real_dent, dent_inode);
322 ntfs_debug("Done. (Already had negative directory dentry.)");
323 return real_dent;
324 }
325 /*
326 * Directory with a 'disconnected' dentry; get a reference to the
327 * 'disconnected' dentry.
328 */
329 new_dent = list_entry(dent_inode->i_dentry.next, struct dentry,
330 d_alias);
331 dget_locked(new_dent);
332 spin_unlock(&dcache_lock);
333 /* Do security vodoo. */
334 security_d_instantiate(real_dent, dent_inode);
335 /* Move new_dent in place of real_dent. */
336 d_move(new_dent, real_dent);
337 /* Balance the ntfs_iget() we did above. */
338 iput(dent_inode);
339 /* Throw away real_dent. */
340 dput(real_dent);
341 /* Use new_dent as the actual dentry. */
342 ntfs_debug("Done. (Already had negative, disconnected directory "
343 "dentry.)");
344 return new_dent;
345 260
346eio_err_out: 261eio_err_out:
347 ntfs_error(vol->sb, "Illegal file name attribute. Run chkdsk."); 262 ntfs_error(vol->sb, "Illegal file name attribute. Run chkdsk.");
diff --git a/fs/ntfs/usnjrnl.h b/fs/ntfs/usnjrnl.h
index 3a8af75351e..4087fbdac32 100644
--- a/fs/ntfs/usnjrnl.h
+++ b/fs/ntfs/usnjrnl.h
@@ -113,7 +113,7 @@ typedef struct {
113 * Reason flags (32-bit). Cumulative flags describing the change(s) to the 113 * Reason flags (32-bit). Cumulative flags describing the change(s) to the
114 * file since it was last opened. I think the names speak for themselves but 114 * file since it was last opened. I think the names speak for themselves but
115 * if you disagree check out the descriptions in the Linux NTFS project NTFS 115 * if you disagree check out the descriptions in the Linux NTFS project NTFS
116 * documentation: http://linux-ntfs.sourceforge.net/ntfs/files/usnjrnl.html 116 * documentation: http://www.linux-ntfs.org/
117 */ 117 */
118enum { 118enum {
119 USN_REASON_DATA_OVERWRITE = const_cpu_to_le32(0x00000001), 119 USN_REASON_DATA_OVERWRITE = const_cpu_to_le32(0x00000001),
@@ -145,7 +145,7 @@ typedef le32 USN_REASON_FLAGS;
145 * Source info flags (32-bit). Information about the source of the change(s) 145 * Source info flags (32-bit). Information about the source of the change(s)
146 * to the file. For detailed descriptions of what these mean, see the Linux 146 * to the file. For detailed descriptions of what these mean, see the Linux
147 * NTFS project NTFS documentation: 147 * NTFS project NTFS documentation:
148 * http://linux-ntfs.sourceforge.net/ntfs/files/usnjrnl.html 148 * http://www.linux-ntfs.org/
149 */ 149 */
150enum { 150enum {
151 USN_SOURCE_DATA_MANAGEMENT = const_cpu_to_le32(0x00000001), 151 USN_SOURCE_DATA_MANAGEMENT = const_cpu_to_le32(0x00000001),
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index 506c24fb507..a53da146627 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -594,7 +594,7 @@ static int ocfs2_direct_IO_get_blocks(struct inode *inode, sector_t iblock,
594 goto bail; 594 goto bail;
595 } 595 }
596 596
597 if (!ocfs2_sparse_alloc(OCFS2_SB(inode->i_sb)) && !p_blkno) { 597 if (!ocfs2_sparse_alloc(OCFS2_SB(inode->i_sb)) && !p_blkno && create) {
598 ocfs2_error(inode->i_sb, 598 ocfs2_error(inode->i_sb,
599 "Inode %llu has a hole at block %llu\n", 599 "Inode %llu has a hole at block %llu\n",
600 (unsigned long long)OCFS2_I(inode)->ip_blkno, 600 (unsigned long long)OCFS2_I(inode)->ip_blkno,
diff --git a/fs/ocfs2/cluster/netdebug.c b/fs/ocfs2/cluster/netdebug.c
index d8bfa0eb41b..52276c02f71 100644
--- a/fs/ocfs2/cluster/netdebug.c
+++ b/fs/ocfs2/cluster/netdebug.c
@@ -138,20 +138,20 @@ static int nst_seq_show(struct seq_file *seq, void *v)
138 " message id: %d\n" 138 " message id: %d\n"
139 " message type: %u\n" 139 " message type: %u\n"
140 " message key: 0x%08x\n" 140 " message key: 0x%08x\n"
141 " sock acquiry: %lu.%lu\n" 141 " sock acquiry: %lu.%ld\n"
142 " send start: %lu.%lu\n" 142 " send start: %lu.%ld\n"
143 " wait start: %lu.%lu\n", 143 " wait start: %lu.%ld\n",
144 nst, (unsigned long)nst->st_task->pid, 144 nst, (unsigned long)nst->st_task->pid,
145 (unsigned long)nst->st_task->tgid, 145 (unsigned long)nst->st_task->tgid,
146 nst->st_task->comm, nst->st_node, 146 nst->st_task->comm, nst->st_node,
147 nst->st_sc, nst->st_id, nst->st_msg_type, 147 nst->st_sc, nst->st_id, nst->st_msg_type,
148 nst->st_msg_key, 148 nst->st_msg_key,
149 nst->st_sock_time.tv_sec, 149 nst->st_sock_time.tv_sec,
150 (unsigned long)nst->st_sock_time.tv_usec, 150 (long)nst->st_sock_time.tv_usec,
151 nst->st_send_time.tv_sec, 151 nst->st_send_time.tv_sec,
152 (unsigned long)nst->st_send_time.tv_usec, 152 (long)nst->st_send_time.tv_usec,
153 nst->st_status_time.tv_sec, 153 nst->st_status_time.tv_sec,
154 nst->st_status_time.tv_usec); 154 (long)nst->st_status_time.tv_usec);
155 } 155 }
156 156
157 spin_unlock(&o2net_debug_lock); 157 spin_unlock(&o2net_debug_lock);
@@ -276,7 +276,7 @@ static void *sc_seq_next(struct seq_file *seq, void *v, loff_t *pos)
276 return sc; /* unused, just needs to be null when done */ 276 return sc; /* unused, just needs to be null when done */
277} 277}
278 278
279#define TV_SEC_USEC(TV) TV.tv_sec, (unsigned long)TV.tv_usec 279#define TV_SEC_USEC(TV) TV.tv_sec, (long)TV.tv_usec
280 280
281static int sc_seq_show(struct seq_file *seq, void *v) 281static int sc_seq_show(struct seq_file *seq, void *v)
282{ 282{
@@ -309,12 +309,12 @@ static int sc_seq_show(struct seq_file *seq, void *v)
309 " remote node: %s\n" 309 " remote node: %s\n"
310 " page off: %zu\n" 310 " page off: %zu\n"
311 " handshake ok: %u\n" 311 " handshake ok: %u\n"
312 " timer: %lu.%lu\n" 312 " timer: %lu.%ld\n"
313 " data ready: %lu.%lu\n" 313 " data ready: %lu.%ld\n"
314 " advance start: %lu.%lu\n" 314 " advance start: %lu.%ld\n"
315 " advance stop: %lu.%lu\n" 315 " advance stop: %lu.%ld\n"
316 " func start: %lu.%lu\n" 316 " func start: %lu.%ld\n"
317 " func stop: %lu.%lu\n" 317 " func stop: %lu.%ld\n"
318 " func key: %u\n" 318 " func key: %u\n"
319 " func type: %u\n", 319 " func type: %u\n",
320 sc, 320 sc,
diff --git a/fs/ocfs2/cluster/tcp.c b/fs/ocfs2/cluster/tcp.c
index a27d61581bd..2bcf706d9dd 100644
--- a/fs/ocfs2/cluster/tcp.c
+++ b/fs/ocfs2/cluster/tcp.c
@@ -143,8 +143,8 @@ static void o2net_sc_postpone_idle(struct o2net_sock_container *sc);
143static void o2net_sc_reset_idle_timer(struct o2net_sock_container *sc); 143static void o2net_sc_reset_idle_timer(struct o2net_sock_container *sc);
144 144
145#ifdef CONFIG_DEBUG_FS 145#ifdef CONFIG_DEBUG_FS
146void o2net_init_nst(struct o2net_send_tracking *nst, u32 msgtype, 146static void o2net_init_nst(struct o2net_send_tracking *nst, u32 msgtype,
147 u32 msgkey, struct task_struct *task, u8 node) 147 u32 msgkey, struct task_struct *task, u8 node)
148{ 148{
149 INIT_LIST_HEAD(&nst->st_net_debug_item); 149 INIT_LIST_HEAD(&nst->st_net_debug_item);
150 nst->st_task = task; 150 nst->st_task = task;
@@ -153,31 +153,61 @@ void o2net_init_nst(struct o2net_send_tracking *nst, u32 msgtype,
153 nst->st_node = node; 153 nst->st_node = node;
154} 154}
155 155
156void o2net_set_nst_sock_time(struct o2net_send_tracking *nst) 156static void o2net_set_nst_sock_time(struct o2net_send_tracking *nst)
157{ 157{
158 do_gettimeofday(&nst->st_sock_time); 158 do_gettimeofday(&nst->st_sock_time);
159} 159}
160 160
161void o2net_set_nst_send_time(struct o2net_send_tracking *nst) 161static void o2net_set_nst_send_time(struct o2net_send_tracking *nst)
162{ 162{
163 do_gettimeofday(&nst->st_send_time); 163 do_gettimeofday(&nst->st_send_time);
164} 164}
165 165
166void o2net_set_nst_status_time(struct o2net_send_tracking *nst) 166static void o2net_set_nst_status_time(struct o2net_send_tracking *nst)
167{ 167{
168 do_gettimeofday(&nst->st_status_time); 168 do_gettimeofday(&nst->st_status_time);
169} 169}
170 170
171void o2net_set_nst_sock_container(struct o2net_send_tracking *nst, 171static void o2net_set_nst_sock_container(struct o2net_send_tracking *nst,
172 struct o2net_sock_container *sc) 172 struct o2net_sock_container *sc)
173{ 173{
174 nst->st_sc = sc; 174 nst->st_sc = sc;
175} 175}
176 176
177void o2net_set_nst_msg_id(struct o2net_send_tracking *nst, u32 msg_id) 177static void o2net_set_nst_msg_id(struct o2net_send_tracking *nst, u32 msg_id)
178{ 178{
179 nst->st_id = msg_id; 179 nst->st_id = msg_id;
180} 180}
181
182#else /* CONFIG_DEBUG_FS */
183
184static inline void o2net_init_nst(struct o2net_send_tracking *nst, u32 msgtype,
185 u32 msgkey, struct task_struct *task, u8 node)
186{
187}
188
189static inline void o2net_set_nst_sock_time(struct o2net_send_tracking *nst)
190{
191}
192
193static inline void o2net_set_nst_send_time(struct o2net_send_tracking *nst)
194{
195}
196
197static inline void o2net_set_nst_status_time(struct o2net_send_tracking *nst)
198{
199}
200
201static inline void o2net_set_nst_sock_container(struct o2net_send_tracking *nst,
202 struct o2net_sock_container *sc)
203{
204}
205
206static inline void o2net_set_nst_msg_id(struct o2net_send_tracking *nst,
207 u32 msg_id)
208{
209}
210
181#endif /* CONFIG_DEBUG_FS */ 211#endif /* CONFIG_DEBUG_FS */
182 212
183static inline int o2net_reconnect_delay(void) 213static inline int o2net_reconnect_delay(void)
diff --git a/fs/ocfs2/cluster/tcp_internal.h b/fs/ocfs2/cluster/tcp_internal.h
index 18307ff81b7..8d58cfe410b 100644
--- a/fs/ocfs2/cluster/tcp_internal.h
+++ b/fs/ocfs2/cluster/tcp_internal.h
@@ -224,42 +224,10 @@ struct o2net_send_tracking {
224 struct timeval st_send_time; 224 struct timeval st_send_time;
225 struct timeval st_status_time; 225 struct timeval st_status_time;
226}; 226};
227
228void o2net_init_nst(struct o2net_send_tracking *nst, u32 msgtype,
229 u32 msgkey, struct task_struct *task, u8 node);
230void o2net_set_nst_sock_time(struct o2net_send_tracking *nst);
231void o2net_set_nst_send_time(struct o2net_send_tracking *nst);
232void o2net_set_nst_status_time(struct o2net_send_tracking *nst);
233void o2net_set_nst_sock_container(struct o2net_send_tracking *nst,
234 struct o2net_sock_container *sc);
235void o2net_set_nst_msg_id(struct o2net_send_tracking *nst, u32 msg_id);
236
237#else 227#else
238struct o2net_send_tracking { 228struct o2net_send_tracking {
239 u32 dummy; 229 u32 dummy;
240}; 230};
241
242static inline void o2net_init_nst(struct o2net_send_tracking *nst, u32 msgtype,
243 u32 msgkey, struct task_struct *task, u8 node)
244{
245}
246static inline void o2net_set_nst_sock_time(struct o2net_send_tracking *nst)
247{
248}
249static inline void o2net_set_nst_send_time(struct o2net_send_tracking *nst)
250{
251}
252static inline void o2net_set_nst_status_time(struct o2net_send_tracking *nst)
253{
254}
255static inline void o2net_set_nst_sock_container(struct o2net_send_tracking *nst,
256 struct o2net_sock_container *sc)
257{
258}
259static inline void o2net_set_nst_msg_id(struct o2net_send_tracking *nst,
260 u32 msg_id)
261{
262}
263#endif /* CONFIG_DEBUG_FS */ 231#endif /* CONFIG_DEBUG_FS */
264 232
265#endif /* O2CLUSTER_TCP_INTERNAL_H */ 233#endif /* O2CLUSTER_TCP_INTERNAL_H */
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c
index 8a187584808..9cce563fd62 100644
--- a/fs/ocfs2/dir.c
+++ b/fs/ocfs2/dir.c
@@ -1300,7 +1300,6 @@ static int ocfs2_expand_inline_dir(struct inode *dir, struct buffer_head *di_bh,
1300 di->i_size = cpu_to_le64(sb->s_blocksize); 1300 di->i_size = cpu_to_le64(sb->s_blocksize);
1301 di->i_ctime = di->i_mtime = cpu_to_le64(dir->i_ctime.tv_sec); 1301 di->i_ctime = di->i_mtime = cpu_to_le64(dir->i_ctime.tv_sec);
1302 di->i_ctime_nsec = di->i_mtime_nsec = cpu_to_le32(dir->i_ctime.tv_nsec); 1302 di->i_ctime_nsec = di->i_mtime_nsec = cpu_to_le32(dir->i_ctime.tv_nsec);
1303 dir->i_blocks = ocfs2_inode_sector_count(dir);
1304 1303
1305 /* 1304 /*
1306 * This should never fail as our extent list is empty and all 1305 * This should never fail as our extent list is empty and all
@@ -1310,9 +1309,15 @@ static int ocfs2_expand_inline_dir(struct inode *dir, struct buffer_head *di_bh,
1310 NULL); 1309 NULL);
1311 if (ret) { 1310 if (ret) {
1312 mlog_errno(ret); 1311 mlog_errno(ret);
1313 goto out; 1312 goto out_commit;
1314 } 1313 }
1315 1314
1315 /*
1316 * Set i_blocks after the extent insert for the most up to
1317 * date ip_clusters value.
1318 */
1319 dir->i_blocks = ocfs2_inode_sector_count(dir);
1320
1316 ret = ocfs2_journal_dirty(handle, di_bh); 1321 ret = ocfs2_journal_dirty(handle, di_bh);
1317 if (ret) { 1322 if (ret) {
1318 mlog_errno(ret); 1323 mlog_errno(ret);
@@ -1336,7 +1341,7 @@ static int ocfs2_expand_inline_dir(struct inode *dir, struct buffer_head *di_bh,
1336 len, 0, NULL); 1341 len, 0, NULL);
1337 if (ret) { 1342 if (ret) {
1338 mlog_errno(ret); 1343 mlog_errno(ret);
1339 goto out; 1344 goto out_commit;
1340 } 1345 }
1341 } 1346 }
1342 1347
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index 7a37240f7a3..c47bc2a809c 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -1418,13 +1418,13 @@ int ocfs2_mark_dead_nodes(struct ocfs2_super *osb)
1418{ 1418{
1419 unsigned int node_num; 1419 unsigned int node_num;
1420 int status, i; 1420 int status, i;
1421 u32 gen;
1421 struct buffer_head *bh = NULL; 1422 struct buffer_head *bh = NULL;
1422 struct ocfs2_dinode *di; 1423 struct ocfs2_dinode *di;
1423 1424
1424 /* This is called with the super block cluster lock, so we 1425 /* This is called with the super block cluster lock, so we
1425 * know that the slot map can't change underneath us. */ 1426 * know that the slot map can't change underneath us. */
1426 1427
1427 spin_lock(&osb->osb_lock);
1428 for (i = 0; i < osb->max_slots; i++) { 1428 for (i = 0; i < osb->max_slots; i++) {
1429 /* Read journal inode to get the recovery generation */ 1429 /* Read journal inode to get the recovery generation */
1430 status = ocfs2_read_journal_inode(osb, i, &bh, NULL); 1430 status = ocfs2_read_journal_inode(osb, i, &bh, NULL);
@@ -1433,23 +1433,31 @@ int ocfs2_mark_dead_nodes(struct ocfs2_super *osb)
1433 goto bail; 1433 goto bail;
1434 } 1434 }
1435 di = (struct ocfs2_dinode *)bh->b_data; 1435 di = (struct ocfs2_dinode *)bh->b_data;
1436 osb->slot_recovery_generations[i] = 1436 gen = ocfs2_get_recovery_generation(di);
1437 ocfs2_get_recovery_generation(di);
1438 brelse(bh); 1437 brelse(bh);
1439 bh = NULL; 1438 bh = NULL;
1440 1439
1440 spin_lock(&osb->osb_lock);
1441 osb->slot_recovery_generations[i] = gen;
1442
1441 mlog(0, "Slot %u recovery generation is %u\n", i, 1443 mlog(0, "Slot %u recovery generation is %u\n", i,
1442 osb->slot_recovery_generations[i]); 1444 osb->slot_recovery_generations[i]);
1443 1445
1444 if (i == osb->slot_num) 1446 if (i == osb->slot_num) {
1447 spin_unlock(&osb->osb_lock);
1445 continue; 1448 continue;
1449 }
1446 1450
1447 status = ocfs2_slot_to_node_num_locked(osb, i, &node_num); 1451 status = ocfs2_slot_to_node_num_locked(osb, i, &node_num);
1448 if (status == -ENOENT) 1452 if (status == -ENOENT) {
1453 spin_unlock(&osb->osb_lock);
1449 continue; 1454 continue;
1455 }
1450 1456
1451 if (__ocfs2_recovery_map_test(osb, node_num)) 1457 if (__ocfs2_recovery_map_test(osb, node_num)) {
1458 spin_unlock(&osb->osb_lock);
1452 continue; 1459 continue;
1460 }
1453 spin_unlock(&osb->osb_lock); 1461 spin_unlock(&osb->osb_lock);
1454 1462
1455 /* Ok, we have a slot occupied by another node which 1463 /* Ok, we have a slot occupied by another node which
@@ -1465,10 +1473,7 @@ int ocfs2_mark_dead_nodes(struct ocfs2_super *osb)
1465 mlog_errno(status); 1473 mlog_errno(status);
1466 goto bail; 1474 goto bail;
1467 } 1475 }
1468
1469 spin_lock(&osb->osb_lock);
1470 } 1476 }
1471 spin_unlock(&osb->osb_lock);
1472 1477
1473 status = 0; 1478 status = 0;
1474bail: 1479bail:
diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c
index 10e149ae5e3..07f348b8d72 100644
--- a/fs/ocfs2/stackglue.c
+++ b/fs/ocfs2/stackglue.c
@@ -97,13 +97,14 @@ static int ocfs2_stack_driver_request(const char *stack_name,
97 goto out; 97 goto out;
98 } 98 }
99 99
100 /* Ok, the stack is pinned */
101 p->sp_count++;
102 active_stack = p; 100 active_stack = p;
103
104 rc = 0; 101 rc = 0;
105 102
106out: 103out:
104 /* If we found it, pin it */
105 if (!rc)
106 active_stack->sp_count++;
107
107 spin_unlock(&ocfs2_stack_lock); 108 spin_unlock(&ocfs2_stack_lock);
108 return rc; 109 return rc;
109} 110}
diff --git a/fs/partitions/check.c b/fs/partitions/check.c
index 7d6b34e201d..ecc3330972e 100644
--- a/fs/partitions/check.c
+++ b/fs/partitions/check.c
@@ -499,9 +499,9 @@ int rescan_partitions(struct gendisk *disk, struct block_device *bdev)
499 if (!size) 499 if (!size)
500 continue; 500 continue;
501 if (from + size > get_capacity(disk)) { 501 if (from + size > get_capacity(disk)) {
502 printk(KERN_ERR " %s: p%d exceeds device capacity\n", 502 printk(KERN_WARNING
503 "%s: p%d exceeds device capacity\n",
503 disk->disk_name, p); 504 disk->disk_name, p);
504 continue;
505 } 505 }
506 res = add_partition(disk, p, from, size, state->parts[p].flags); 506 res = add_partition(disk, p, from, size, state->parts[p].flags);
507 if (res) { 507 if (res) {
diff --git a/fs/proc/array.c b/fs/proc/array.c
index 0d6eb33597c..71c9be59c9c 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -337,65 +337,6 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
337 return 0; 337 return 0;
338} 338}
339 339
340/*
341 * Use precise platform statistics if available:
342 */
343#ifdef CONFIG_VIRT_CPU_ACCOUNTING
344static cputime_t task_utime(struct task_struct *p)
345{
346 return p->utime;
347}
348
349static cputime_t task_stime(struct task_struct *p)
350{
351 return p->stime;
352}
353#else
354static cputime_t task_utime(struct task_struct *p)
355{
356 clock_t utime = cputime_to_clock_t(p->utime),
357 total = utime + cputime_to_clock_t(p->stime);
358 u64 temp;
359
360 /*
361 * Use CFS's precise accounting:
362 */
363 temp = (u64)nsec_to_clock_t(p->se.sum_exec_runtime);
364
365 if (total) {
366 temp *= utime;
367 do_div(temp, total);
368 }
369 utime = (clock_t)temp;
370
371 p->prev_utime = max(p->prev_utime, clock_t_to_cputime(utime));
372 return p->prev_utime;
373}
374
375static cputime_t task_stime(struct task_struct *p)
376{
377 clock_t stime;
378
379 /*
380 * Use CFS's precise accounting. (we subtract utime from
381 * the total, to make sure the total observed by userspace
382 * grows monotonically - apps rely on that):
383 */
384 stime = nsec_to_clock_t(p->se.sum_exec_runtime) -
385 cputime_to_clock_t(task_utime(p));
386
387 if (stime >= 0)
388 p->prev_stime = max(p->prev_stime, clock_t_to_cputime(stime));
389
390 return p->prev_stime;
391}
392#endif
393
394static cputime_t task_gtime(struct task_struct *p)
395{
396 return p->gtime;
397}
398
399static int do_task_stat(struct seq_file *m, struct pid_namespace *ns, 340static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
400 struct pid *pid, struct task_struct *task, int whole) 341 struct pid *pid, struct task_struct *task, int whole)
401{ 342{
diff --git a/fs/proc/generic.c b/fs/proc/generic.c
index 4fb81e9c94e..7821589a17d 100644
--- a/fs/proc/generic.c
+++ b/fs/proc/generic.c
@@ -330,6 +330,7 @@ retry:
330 spin_lock(&proc_inum_lock); 330 spin_lock(&proc_inum_lock);
331 ida_remove(&proc_inum_ida, i); 331 ida_remove(&proc_inum_ida, i);
332 spin_unlock(&proc_inum_lock); 332 spin_unlock(&proc_inum_lock);
333 return 0;
333 } 334 }
334 return PROC_DYNAMIC_FIRST + i; 335 return PROC_DYNAMIC_FIRST + i;
335} 336}
@@ -546,8 +547,8 @@ static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp
546 547
547 for (tmp = dir->subdir; tmp; tmp = tmp->next) 548 for (tmp = dir->subdir; tmp; tmp = tmp->next)
548 if (strcmp(tmp->name, dp->name) == 0) { 549 if (strcmp(tmp->name, dp->name) == 0) {
549 printk(KERN_WARNING "proc_dir_entry '%s' already " 550 printk(KERN_WARNING "proc_dir_entry '%s/%s' already registered\n",
550 "registered\n", dp->name); 551 dir->name, dp->name);
551 dump_stack(); 552 dump_stack();
552 break; 553 break;
553 } 554 }
diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c
index ded96986296..29e20c6b1f7 100644
--- a/fs/proc/proc_misc.c
+++ b/fs/proc/proc_misc.c
@@ -24,6 +24,7 @@
24#include <linux/tty.h> 24#include <linux/tty.h>
25#include <linux/string.h> 25#include <linux/string.h>
26#include <linux/mman.h> 26#include <linux/mman.h>
27#include <linux/quicklist.h>
27#include <linux/proc_fs.h> 28#include <linux/proc_fs.h>
28#include <linux/ioport.h> 29#include <linux/ioport.h>
29#include <linux/mm.h> 30#include <linux/mm.h>
@@ -182,6 +183,9 @@ static int meminfo_read_proc(char *page, char **start, off_t off,
182 "SReclaimable: %8lu kB\n" 183 "SReclaimable: %8lu kB\n"
183 "SUnreclaim: %8lu kB\n" 184 "SUnreclaim: %8lu kB\n"
184 "PageTables: %8lu kB\n" 185 "PageTables: %8lu kB\n"
186#ifdef CONFIG_QUICKLIST
187 "Quicklists: %8lu kB\n"
188#endif
185 "NFS_Unstable: %8lu kB\n" 189 "NFS_Unstable: %8lu kB\n"
186 "Bounce: %8lu kB\n" 190 "Bounce: %8lu kB\n"
187 "WritebackTmp: %8lu kB\n" 191 "WritebackTmp: %8lu kB\n"
@@ -214,6 +218,9 @@ static int meminfo_read_proc(char *page, char **start, off_t off,
214 K(global_page_state(NR_SLAB_RECLAIMABLE)), 218 K(global_page_state(NR_SLAB_RECLAIMABLE)),
215 K(global_page_state(NR_SLAB_UNRECLAIMABLE)), 219 K(global_page_state(NR_SLAB_UNRECLAIMABLE)),
216 K(global_page_state(NR_PAGETABLE)), 220 K(global_page_state(NR_PAGETABLE)),
221#ifdef CONFIG_QUICKLIST
222 K(quicklist_total_size()),
223#endif
217 K(global_page_state(NR_UNSTABLE_NFS)), 224 K(global_page_state(NR_UNSTABLE_NFS)),
218 K(global_page_state(NR_BOUNCE)), 225 K(global_page_state(NR_BOUNCE)),
219 K(global_page_state(NR_WRITEBACK_TEMP)), 226 K(global_page_state(NR_WRITEBACK_TEMP)),
diff --git a/fs/ramfs/file-nommu.c b/fs/ramfs/file-nommu.c
index 52312ec93ff..5145cb9125a 100644
--- a/fs/ramfs/file-nommu.c
+++ b/fs/ramfs/file-nommu.c
@@ -58,7 +58,7 @@ const struct inode_operations ramfs_file_inode_operations = {
58 * size 0 on the assumption that it's going to be used for an mmap of shared 58 * size 0 on the assumption that it's going to be used for an mmap of shared
59 * memory 59 * memory
60 */ 60 */
61static int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize) 61int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize)
62{ 62{
63 struct pagevec lru_pvec; 63 struct pagevec lru_pvec;
64 unsigned long npages, xpages, loop, limit; 64 unsigned long npages, xpages, loop, limit;
diff --git a/fs/readdir.c b/fs/readdir.c
index 4e026e5407f..93a7559bbfd 100644
--- a/fs/readdir.c
+++ b/fs/readdir.c
@@ -80,8 +80,10 @@ static int fillonedir(void * __buf, const char * name, int namlen, loff_t offset
80 if (buf->result) 80 if (buf->result)
81 return -EINVAL; 81 return -EINVAL;
82 d_ino = ino; 82 d_ino = ino;
83 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) 83 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
84 buf->result = -EOVERFLOW;
84 return -EOVERFLOW; 85 return -EOVERFLOW;
86 }
85 buf->result++; 87 buf->result++;
86 dirent = buf->dirent; 88 dirent = buf->dirent;
87 if (!access_ok(VERIFY_WRITE, dirent, 89 if (!access_ok(VERIFY_WRITE, dirent,
@@ -155,8 +157,10 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset,
155 if (reclen > buf->count) 157 if (reclen > buf->count)
156 return -EINVAL; 158 return -EINVAL;
157 d_ino = ino; 159 d_ino = ino;
158 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) 160 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
161 buf->error = -EOVERFLOW;
159 return -EOVERFLOW; 162 return -EOVERFLOW;
163 }
160 dirent = buf->previous; 164 dirent = buf->previous;
161 if (dirent) { 165 if (dirent) {
162 if (__put_user(offset, &dirent->d_off)) 166 if (__put_user(offset, &dirent->d_off))
diff --git a/fs/seq_file.c b/fs/seq_file.c
index 5d54205e486..bd20f7f5a93 100644
--- a/fs/seq_file.c
+++ b/fs/seq_file.c
@@ -108,9 +108,9 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
108 goto Done; 108 goto Done;
109 } 109 }
110 /* we need at least one record in buffer */ 110 /* we need at least one record in buffer */
111 pos = m->index;
112 p = m->op->start(m, &pos);
111 while (1) { 113 while (1) {
112 pos = m->index;
113 p = m->op->start(m, &pos);
114 err = PTR_ERR(p); 114 err = PTR_ERR(p);
115 if (!p || IS_ERR(p)) 115 if (!p || IS_ERR(p))
116 break; 116 break;
@@ -119,6 +119,11 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
119 break; 119 break;
120 if (unlikely(err)) 120 if (unlikely(err))
121 m->count = 0; 121 m->count = 0;
122 if (unlikely(!m->count)) {
123 p = m->op->next(m, p, &pos);
124 m->index = pos;
125 continue;
126 }
122 if (m->count < m->size) 127 if (m->count < m->size)
123 goto Fill; 128 goto Fill;
124 m->op->stop(m, p); 129 m->op->stop(m, p);
@@ -128,6 +133,8 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
128 goto Enomem; 133 goto Enomem;
129 m->count = 0; 134 m->count = 0;
130 m->version = 0; 135 m->version = 0;
136 pos = m->index;
137 p = m->op->start(m, &pos);
131 } 138 }
132 m->op->stop(m, p); 139 m->op->stop(m, p);
133 m->count = 0; 140 m->count = 0;
diff --git a/fs/ubifs/budget.c b/fs/ubifs/budget.c
index 15409815747..73db464cd08 100644
--- a/fs/ubifs/budget.c
+++ b/fs/ubifs/budget.c
@@ -302,18 +302,6 @@ long long ubifs_calc_available(const struct ubifs_info *c, int min_idx_lebs)
302 int subtract_lebs; 302 int subtract_lebs;
303 long long available; 303 long long available;
304 304
305 /*
306 * Force the amount available to the total size reported if the used
307 * space is zero.
308 */
309 if (c->lst.total_used <= UBIFS_INO_NODE_SZ &&
310 c->budg_data_growth + c->budg_dd_growth == 0) {
311 /* Do the same calculation as for c->block_cnt */
312 available = c->main_lebs - 2;
313 available *= c->leb_size - c->dark_wm;
314 return available;
315 }
316
317 available = c->main_bytes - c->lst.total_used; 305 available = c->main_bytes - c->lst.total_used;
318 306
319 /* 307 /*
@@ -714,34 +702,106 @@ void ubifs_release_dirty_inode_budget(struct ubifs_info *c,
714} 702}
715 703
716/** 704/**
717 * ubifs_budg_get_free_space - return amount of free space. 705 * ubifs_reported_space - calculate reported free space.
706 * @c: the UBIFS file-system description object
707 * @free: amount of free space
708 *
709 * This function calculates amount of free space which will be reported to
710 * user-space. User-space application tend to expect that if the file-system
711 * (e.g., via the 'statfs()' call) reports that it has N bytes available, they
712 * are able to write a file of size N. UBIFS attaches node headers to each data
713 * node and it has to write indexind nodes as well. This introduces additional
714 * overhead, and UBIFS it has to report sligtly less free space to meet the
715 * above expectetion.
716 *
717 * This function assumes free space is made up of uncompressed data nodes and
718 * full index nodes (one per data node, tripled because we always allow enough
719 * space to write the index thrice).
720 *
721 * Note, the calculation is pessimistic, which means that most of the time
722 * UBIFS reports less space than it actually has.
723 */
724long long ubifs_reported_space(const struct ubifs_info *c, uint64_t free)
725{
726 int divisor, factor, f;
727
728 /*
729 * Reported space size is @free * X, where X is UBIFS block size
730 * divided by UBIFS block size + all overhead one data block
731 * introduces. The overhead is the node header + indexing overhead.
732 *
733 * Indexing overhead calculations are based on the following formula:
734 * I = N/(f - 1) + 1, where I - number of indexing nodes, N - number
735 * of data nodes, f - fanout. Because effective UBIFS fanout is twice
736 * as less than maximum fanout, we assume that each data node
737 * introduces 3 * @c->max_idx_node_sz / (@c->fanout/2 - 1) bytes.
738 * Note, the multiplier 3 is because UBIFS reseves thrice as more space
739 * for the index.
740 */
741 f = c->fanout > 3 ? c->fanout >> 1 : 2;
742 factor = UBIFS_BLOCK_SIZE;
743 divisor = UBIFS_MAX_DATA_NODE_SZ;
744 divisor += (c->max_idx_node_sz * 3) / (f - 1);
745 free *= factor;
746 do_div(free, divisor);
747 return free;
748}
749
750/**
751 * ubifs_get_free_space - return amount of free space.
718 * @c: UBIFS file-system description object 752 * @c: UBIFS file-system description object
719 * 753 *
720 * This function returns amount of free space on the file-system. 754 * This function calculates amount of free space to report to user-space.
755 *
756 * Because UBIFS may introduce substantial overhead (the index, node headers,
757 * alighment, wastage at the end of eraseblocks, etc), it cannot report real
758 * amount of free flash space it has (well, because not all dirty space is
759 * reclamable, UBIFS does not actually know the real amount). If UBIFS did so,
760 * it would bread user expectetion about what free space is. Users seem to
761 * accustomed to assume that if the file-system reports N bytes of free space,
762 * they would be able to fit a file of N bytes to the FS. This almost works for
763 * traditional file-systems, because they have way less overhead than UBIFS.
764 * So, to keep users happy, UBIFS tries to take the overhead into account.
721 */ 765 */
722long long ubifs_budg_get_free_space(struct ubifs_info *c) 766long long ubifs_get_free_space(struct ubifs_info *c)
723{ 767{
724 int min_idx_lebs, rsvd_idx_lebs; 768 int min_idx_lebs, rsvd_idx_lebs, lebs;
725 long long available, outstanding, free; 769 long long available, outstanding, free;
726 770
727 /* Do exactly the same calculations as in 'do_budget_space()' */
728 spin_lock(&c->space_lock); 771 spin_lock(&c->space_lock);
729 min_idx_lebs = ubifs_calc_min_idx_lebs(c); 772 min_idx_lebs = ubifs_calc_min_idx_lebs(c);
773 outstanding = c->budg_data_growth + c->budg_dd_growth;
730 774
731 if (min_idx_lebs > c->lst.idx_lebs) 775 /*
732 rsvd_idx_lebs = min_idx_lebs - c->lst.idx_lebs; 776 * Force the amount available to the total size reported if the used
733 else 777 * space is zero.
734 rsvd_idx_lebs = 0; 778 */
735 779 if (c->lst.total_used <= UBIFS_INO_NODE_SZ && !outstanding) {
736 if (rsvd_idx_lebs > c->lst.empty_lebs + c->freeable_cnt + c->idx_gc_cnt
737 - c->lst.taken_empty_lebs) {
738 spin_unlock(&c->space_lock); 780 spin_unlock(&c->space_lock);
739 return 0; 781 return (long long)c->block_cnt << UBIFS_BLOCK_SHIFT;
740 } 782 }
741 783
742 available = ubifs_calc_available(c, min_idx_lebs); 784 available = ubifs_calc_available(c, min_idx_lebs);
743 outstanding = c->budg_data_growth + c->budg_dd_growth; 785
744 c->min_idx_lebs = min_idx_lebs; 786 /*
787 * When reporting free space to user-space, UBIFS guarantees that it is
788 * possible to write a file of free space size. This means that for
789 * empty LEBs we may use more precise calculations than
790 * 'ubifs_calc_available()' is using. Namely, we know that in empty
791 * LEBs we would waste only @c->leb_overhead bytes, not @c->dark_wm.
792 * Thus, amend the available space.
793 *
794 * Note, the calculations below are similar to what we have in
795 * 'do_budget_space()', so refer there for comments.
796 */
797 if (min_idx_lebs > c->lst.idx_lebs)
798 rsvd_idx_lebs = min_idx_lebs - c->lst.idx_lebs;
799 else
800 rsvd_idx_lebs = 0;
801 lebs = c->lst.empty_lebs + c->freeable_cnt + c->idx_gc_cnt -
802 c->lst.taken_empty_lebs;
803 lebs -= rsvd_idx_lebs;
804 available += lebs * (c->dark_wm - c->leb_overhead);
745 spin_unlock(&c->space_lock); 805 spin_unlock(&c->space_lock);
746 806
747 if (available > outstanding) 807 if (available > outstanding)
diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c
index b9cb7747375..d7f7645779f 100644
--- a/fs/ubifs/debug.c
+++ b/fs/ubifs/debug.c
@@ -538,7 +538,7 @@ void dbg_dump_node(const struct ubifs_info *c, const void *node)
538 printk(KERN_DEBUG "\t%d orphan inode numbers:\n", n); 538 printk(KERN_DEBUG "\t%d orphan inode numbers:\n", n);
539 for (i = 0; i < n; i++) 539 for (i = 0; i < n; i++)
540 printk(KERN_DEBUG "\t ino %llu\n", 540 printk(KERN_DEBUG "\t ino %llu\n",
541 le64_to_cpu(orph->inos[i])); 541 (unsigned long long)le64_to_cpu(orph->inos[i]));
542 break; 542 break;
543 } 543 }
544 default: 544 default:
diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c
index 5c96f1fb701..526c01ec800 100644
--- a/fs/ubifs/dir.c
+++ b/fs/ubifs/dir.c
@@ -426,7 +426,7 @@ static int ubifs_readdir(struct file *file, void *dirent, filldir_t filldir)
426 426
427 while (1) { 427 while (1) {
428 dbg_gen("feed '%s', ino %llu, new f_pos %#x", 428 dbg_gen("feed '%s', ino %llu, new f_pos %#x",
429 dent->name, le64_to_cpu(dent->inum), 429 dent->name, (unsigned long long)le64_to_cpu(dent->inum),
430 key_hash_flash(c, &dent->key)); 430 key_hash_flash(c, &dent->key));
431 ubifs_assert(dent->ch.sqnum > ubifs_inode(dir)->creat_sqnum); 431 ubifs_assert(dent->ch.sqnum > ubifs_inode(dir)->creat_sqnum);
432 432
@@ -587,7 +587,6 @@ static int ubifs_unlink(struct inode *dir, struct dentry *dentry)
587 if (err) { 587 if (err) {
588 if (err != -ENOSPC) 588 if (err != -ENOSPC)
589 return err; 589 return err;
590 err = 0;
591 budgeted = 0; 590 budgeted = 0;
592 } 591 }
593 592
diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
index 4071d1cae29..3d698e2022b 100644
--- a/fs/ubifs/file.c
+++ b/fs/ubifs/file.c
@@ -793,7 +793,7 @@ static int do_truncation(struct ubifs_info *c, struct inode *inode,
793 int err; 793 int err;
794 struct ubifs_budget_req req; 794 struct ubifs_budget_req req;
795 loff_t old_size = inode->i_size, new_size = attr->ia_size; 795 loff_t old_size = inode->i_size, new_size = attr->ia_size;
796 int offset = new_size & (UBIFS_BLOCK_SIZE - 1); 796 int offset = new_size & (UBIFS_BLOCK_SIZE - 1), budgeted = 1;
797 struct ubifs_inode *ui = ubifs_inode(inode); 797 struct ubifs_inode *ui = ubifs_inode(inode);
798 798
799 dbg_gen("ino %lu, size %lld -> %lld", inode->i_ino, old_size, new_size); 799 dbg_gen("ino %lu, size %lld -> %lld", inode->i_ino, old_size, new_size);
@@ -811,8 +811,15 @@ static int do_truncation(struct ubifs_info *c, struct inode *inode,
811 /* A funny way to budget for truncation node */ 811 /* A funny way to budget for truncation node */
812 req.dirtied_ino_d = UBIFS_TRUN_NODE_SZ; 812 req.dirtied_ino_d = UBIFS_TRUN_NODE_SZ;
813 err = ubifs_budget_space(c, &req); 813 err = ubifs_budget_space(c, &req);
814 if (err) 814 if (err) {
815 return err; 815 /*
816 * Treat truncations to zero as deletion and always allow them,
817 * just like we do for '->unlink()'.
818 */
819 if (new_size || err != -ENOSPC)
820 return err;
821 budgeted = 0;
822 }
816 823
817 err = vmtruncate(inode, new_size); 824 err = vmtruncate(inode, new_size);
818 if (err) 825 if (err)
@@ -869,7 +876,12 @@ static int do_truncation(struct ubifs_info *c, struct inode *inode,
869 err = ubifs_jnl_truncate(c, inode, old_size, new_size); 876 err = ubifs_jnl_truncate(c, inode, old_size, new_size);
870 mutex_unlock(&ui->ui_mutex); 877 mutex_unlock(&ui->ui_mutex);
871out_budg: 878out_budg:
872 ubifs_release_budget(c, &req); 879 if (budgeted)
880 ubifs_release_budget(c, &req);
881 else {
882 c->nospace = c->nospace_rp = 0;
883 smp_wmb();
884 }
873 return err; 885 return err;
874} 886}
875 887
diff --git a/fs/ubifs/find.c b/fs/ubifs/find.c
index adee7b5ddea..47814cde240 100644
--- a/fs/ubifs/find.c
+++ b/fs/ubifs/find.c
@@ -211,14 +211,8 @@ static const struct ubifs_lprops *scan_for_dirty(struct ubifs_info *c,
211 * dirty index heap, and it falls-back to LPT scanning if the heaps are empty 211 * dirty index heap, and it falls-back to LPT scanning if the heaps are empty
212 * or do not have an LEB which satisfies the @min_space criteria. 212 * or do not have an LEB which satisfies the @min_space criteria.
213 * 213 *
214 * Note: 214 * Note, LEBs which have less than dead watermark of free + dirty space are
215 * o LEBs which have less than dead watermark of dirty space are never picked 215 * never picked by this function.
216 * by this function;
217 *
218 * Returns zero and the LEB properties of
219 * found dirty LEB in case of success, %-ENOSPC if no dirty LEB was found and a
220 * negative error code in case of other failures. The returned LEB is marked as
221 * "taken".
222 * 216 *
223 * The additional @pick_free argument controls if this function has to return a 217 * The additional @pick_free argument controls if this function has to return a
224 * free or freeable LEB if one is present. For example, GC must to set it to %1, 218 * free or freeable LEB if one is present. For example, GC must to set it to %1,
@@ -231,6 +225,10 @@ static const struct ubifs_lprops *scan_for_dirty(struct ubifs_info *c,
231 * 225 *
232 * In addition @pick_free is set to %2 by the recovery process in order to 226 * In addition @pick_free is set to %2 by the recovery process in order to
233 * recover gc_lnum in which case an index LEB must not be returned. 227 * recover gc_lnum in which case an index LEB must not be returned.
228 *
229 * This function returns zero and the LEB properties of found dirty LEB in case
230 * of success, %-ENOSPC if no dirty LEB was found and a negative error code in
231 * case of other failures. The returned LEB is marked as "taken".
234 */ 232 */
235int ubifs_find_dirty_leb(struct ubifs_info *c, struct ubifs_lprops *ret_lp, 233int ubifs_find_dirty_leb(struct ubifs_info *c, struct ubifs_lprops *ret_lp,
236 int min_space, int pick_free) 234 int min_space, int pick_free)
@@ -245,7 +243,7 @@ int ubifs_find_dirty_leb(struct ubifs_info *c, struct ubifs_lprops *ret_lp,
245 int lebs, rsvd_idx_lebs = 0; 243 int lebs, rsvd_idx_lebs = 0;
246 244
247 spin_lock(&c->space_lock); 245 spin_lock(&c->space_lock);
248 lebs = c->lst.empty_lebs; 246 lebs = c->lst.empty_lebs + c->idx_gc_cnt;
249 lebs += c->freeable_cnt - c->lst.taken_empty_lebs; 247 lebs += c->freeable_cnt - c->lst.taken_empty_lebs;
250 248
251 /* 249 /*
@@ -317,7 +315,7 @@ int ubifs_find_dirty_leb(struct ubifs_info *c, struct ubifs_lprops *ret_lp,
317 lp = idx_lp; 315 lp = idx_lp;
318 316
319 if (lp) { 317 if (lp) {
320 ubifs_assert(lp->dirty >= c->dead_wm); 318 ubifs_assert(lp->free + lp->dirty >= c->dead_wm);
321 goto found; 319 goto found;
322 } 320 }
323 321
@@ -509,7 +507,6 @@ int ubifs_find_free_space(struct ubifs_info *c, int min_space, int *free,
509 rsvd_idx_lebs = 0; 507 rsvd_idx_lebs = 0;
510 lebs = c->lst.empty_lebs + c->freeable_cnt + c->idx_gc_cnt - 508 lebs = c->lst.empty_lebs + c->freeable_cnt + c->idx_gc_cnt -
511 c->lst.taken_empty_lebs; 509 c->lst.taken_empty_lebs;
512 ubifs_assert(lebs + c->lst.idx_lebs >= c->min_idx_lebs);
513 if (rsvd_idx_lebs < lebs) 510 if (rsvd_idx_lebs < lebs)
514 /* 511 /*
515 * OK to allocate an empty LEB, but we still don't want to go 512 * OK to allocate an empty LEB, but we still don't want to go
diff --git a/fs/ubifs/gc.c b/fs/ubifs/gc.c
index d0f3dac2908..02aba36fe3d 100644
--- a/fs/ubifs/gc.c
+++ b/fs/ubifs/gc.c
@@ -334,15 +334,21 @@ int ubifs_garbage_collect_leb(struct ubifs_info *c, struct ubifs_lprops *lp)
334 334
335 err = move_nodes(c, sleb); 335 err = move_nodes(c, sleb);
336 if (err) 336 if (err)
337 goto out; 337 goto out_inc_seq;
338 338
339 err = gc_sync_wbufs(c); 339 err = gc_sync_wbufs(c);
340 if (err) 340 if (err)
341 goto out; 341 goto out_inc_seq;
342 342
343 err = ubifs_change_one_lp(c, lnum, c->leb_size, 0, 0, 0, 0); 343 err = ubifs_change_one_lp(c, lnum, c->leb_size, 0, 0, 0, 0);
344 if (err) 344 if (err)
345 goto out; 345 goto out_inc_seq;
346
347 /* Allow for races with TNC */
348 c->gced_lnum = lnum;
349 smp_wmb();
350 c->gc_seq += 1;
351 smp_wmb();
346 352
347 if (c->gc_lnum == -1) { 353 if (c->gc_lnum == -1) {
348 c->gc_lnum = lnum; 354 c->gc_lnum = lnum;
@@ -363,6 +369,14 @@ int ubifs_garbage_collect_leb(struct ubifs_info *c, struct ubifs_lprops *lp)
363out: 369out:
364 ubifs_scan_destroy(sleb); 370 ubifs_scan_destroy(sleb);
365 return err; 371 return err;
372
373out_inc_seq:
374 /* We may have moved at least some nodes so allow for races with TNC */
375 c->gced_lnum = lnum;
376 smp_wmb();
377 c->gc_seq += 1;
378 smp_wmb();
379 goto out;
366} 380}
367 381
368/** 382/**
diff --git a/fs/ubifs/misc.h b/fs/ubifs/misc.h
index 87dabf9fe74..4c12a9215d7 100644
--- a/fs/ubifs/misc.h
+++ b/fs/ubifs/misc.h
@@ -284,38 +284,6 @@ static inline void *ubifs_idx_key(const struct ubifs_info *c,
284} 284}
285 285
286/** 286/**
287 * ubifs_reported_space - calculate reported free space.
288 * @c: the UBIFS file-system description object
289 * @free: amount of free space
290 *
291 * This function calculates amount of free space which will be reported to
292 * user-space. User-space application tend to expect that if the file-system
293 * (e.g., via the 'statfs()' call) reports that it has N bytes available, they
294 * are able to write a file of size N. UBIFS attaches node headers to each data
295 * node and it has to write indexind nodes as well. This introduces additional
296 * overhead, and UBIFS it has to report sligtly less free space to meet the
297 * above expectetion.
298 *
299 * This function assumes free space is made up of uncompressed data nodes and
300 * full index nodes (one per data node, doubled because we always allow enough
301 * space to write the index twice).
302 *
303 * Note, the calculation is pessimistic, which means that most of the time
304 * UBIFS reports less space than it actually has.
305 */
306static inline long long ubifs_reported_space(const struct ubifs_info *c,
307 uint64_t free)
308{
309 int divisor, factor;
310
311 divisor = UBIFS_MAX_DATA_NODE_SZ + (c->max_idx_node_sz * 3);
312 factor = UBIFS_MAX_DATA_NODE_SZ - UBIFS_DATA_NODE_SZ;
313 do_div(free, divisor);
314
315 return free * factor;
316}
317
318/**
319 * ubifs_current_time - round current time to time granularity. 287 * ubifs_current_time - round current time to time granularity.
320 * @inode: inode 288 * @inode: inode
321 */ 289 */
@@ -325,4 +293,21 @@ static inline struct timespec ubifs_current_time(struct inode *inode)
325 current_fs_time(inode->i_sb) : CURRENT_TIME_SEC; 293 current_fs_time(inode->i_sb) : CURRENT_TIME_SEC;
326} 294}
327 295
296/**
297 * ubifs_tnc_lookup - look up a file-system node.
298 * @c: UBIFS file-system description object
299 * @key: node key to lookup
300 * @node: the node is returned here
301 *
302 * This function look up and reads node with key @key. The caller has to make
303 * sure the @node buffer is large enough to fit the node. Returns zero in case
304 * of success, %-ENOENT if the node was not found, and a negative error code in
305 * case of failure.
306 */
307static inline int ubifs_tnc_lookup(struct ubifs_info *c,
308 const union ubifs_key *key, void *node)
309{
310 return ubifs_tnc_locate(c, key, node, NULL, NULL);
311}
312
328#endif /* __UBIFS_MISC_H__ */ 313#endif /* __UBIFS_MISC_H__ */
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index f71e6b8822c..3f4902060c7 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -370,8 +370,9 @@ static int ubifs_statfs(struct dentry *dentry, struct kstatfs *buf)
370{ 370{
371 struct ubifs_info *c = dentry->d_sb->s_fs_info; 371 struct ubifs_info *c = dentry->d_sb->s_fs_info;
372 unsigned long long free; 372 unsigned long long free;
373 __le32 *uuid = (__le32 *)c->uuid;
373 374
374 free = ubifs_budg_get_free_space(c); 375 free = ubifs_get_free_space(c);
375 dbg_gen("free space %lld bytes (%lld blocks)", 376 dbg_gen("free space %lld bytes (%lld blocks)",
376 free, free >> UBIFS_BLOCK_SHIFT); 377 free, free >> UBIFS_BLOCK_SHIFT);
377 378
@@ -386,7 +387,8 @@ static int ubifs_statfs(struct dentry *dentry, struct kstatfs *buf)
386 buf->f_files = 0; 387 buf->f_files = 0;
387 buf->f_ffree = 0; 388 buf->f_ffree = 0;
388 buf->f_namelen = UBIFS_MAX_NLEN; 389 buf->f_namelen = UBIFS_MAX_NLEN;
389 390 buf->f_fsid.val[0] = le32_to_cpu(uuid[0]) ^ le32_to_cpu(uuid[2]);
391 buf->f_fsid.val[1] = le32_to_cpu(uuid[1]) ^ le32_to_cpu(uuid[3]);
390 return 0; 392 return 0;
391} 393}
392 394
@@ -530,6 +532,12 @@ static int init_constants_early(struct ubifs_info *c)
530 c->dead_wm = ALIGN(MIN_WRITE_SZ, c->min_io_size); 532 c->dead_wm = ALIGN(MIN_WRITE_SZ, c->min_io_size);
531 c->dark_wm = ALIGN(UBIFS_MAX_NODE_SZ, c->min_io_size); 533 c->dark_wm = ALIGN(UBIFS_MAX_NODE_SZ, c->min_io_size);
532 534
535 /*
536 * Calculate how many bytes would be wasted at the end of LEB if it was
537 * fully filled with data nodes of maximum size. This is used in
538 * calculations when reporting free space.
539 */
540 c->leb_overhead = c->leb_size % UBIFS_MAX_DATA_NODE_SZ;
533 return 0; 541 return 0;
534} 542}
535 543
@@ -647,13 +655,11 @@ static int init_constants_late(struct ubifs_info *c)
647 * internally because it does not make much sense for UBIFS, but it is 655 * internally because it does not make much sense for UBIFS, but it is
648 * necessary to report something for the 'statfs()' call. 656 * necessary to report something for the 'statfs()' call.
649 * 657 *
650 * Subtract the LEB reserved for GC and the LEB which is reserved for 658 * Subtract the LEB reserved for GC, the LEB which is reserved for
651 * deletions. 659 * deletions, and assume only one journal head is available.
652 *
653 * Review 'ubifs_calc_available()' if changing this calculation.
654 */ 660 */
655 tmp64 = c->main_lebs - 2; 661 tmp64 = c->main_lebs - 2 - c->jhead_cnt + 1;
656 tmp64 *= (uint64_t)c->leb_size - c->dark_wm; 662 tmp64 *= (uint64_t)c->leb_size - c->leb_overhead;
657 tmp64 = ubifs_reported_space(c, tmp64); 663 tmp64 = ubifs_reported_space(c, tmp64);
658 c->block_cnt = tmp64 >> UBIFS_BLOCK_SHIFT; 664 c->block_cnt = tmp64 >> UBIFS_BLOCK_SHIFT;
659 665
@@ -1018,14 +1024,13 @@ static int mount_ubifs(struct ubifs_info *c)
1018 goto out_dereg; 1024 goto out_dereg;
1019 } 1025 }
1020 1026
1027 sprintf(c->bgt_name, BGT_NAME_PATTERN, c->vi.ubi_num, c->vi.vol_id);
1021 if (!mounted_read_only) { 1028 if (!mounted_read_only) {
1022 err = alloc_wbufs(c); 1029 err = alloc_wbufs(c);
1023 if (err) 1030 if (err)
1024 goto out_cbuf; 1031 goto out_cbuf;
1025 1032
1026 /* Create background thread */ 1033 /* Create background thread */
1027 sprintf(c->bgt_name, BGT_NAME_PATTERN, c->vi.ubi_num,
1028 c->vi.vol_id);
1029 c->bgt = kthread_create(ubifs_bg_thread, c, c->bgt_name); 1034 c->bgt = kthread_create(ubifs_bg_thread, c, c->bgt_name);
1030 if (!c->bgt) 1035 if (!c->bgt)
1031 c->bgt = ERR_PTR(-EINVAL); 1036 c->bgt = ERR_PTR(-EINVAL);
diff --git a/fs/ubifs/tnc.c b/fs/ubifs/tnc.c
index e909f4a9644..7634c597088 100644
--- a/fs/ubifs/tnc.c
+++ b/fs/ubifs/tnc.c
@@ -506,7 +506,7 @@ static int fallible_read_node(struct ubifs_info *c, const union ubifs_key *key,
506 if (keys_cmp(c, key, &node_key) != 0) 506 if (keys_cmp(c, key, &node_key) != 0)
507 ret = 0; 507 ret = 0;
508 } 508 }
509 if (ret == 0) 509 if (ret == 0 && c->replaying)
510 dbg_mnt("dangling branch LEB %d:%d len %d, key %s", 510 dbg_mnt("dangling branch LEB %d:%d len %d, key %s",
511 zbr->lnum, zbr->offs, zbr->len, DBGKEY(key)); 511 zbr->lnum, zbr->offs, zbr->len, DBGKEY(key));
512 return ret; 512 return ret;
@@ -1382,50 +1382,39 @@ static int lookup_level0_dirty(struct ubifs_info *c, const union ubifs_key *key,
1382} 1382}
1383 1383
1384/** 1384/**
1385 * ubifs_tnc_lookup - look up a file-system node. 1385 * maybe_leb_gced - determine if a LEB may have been garbage collected.
1386 * @c: UBIFS file-system description object 1386 * @c: UBIFS file-system description object
1387 * @key: node key to lookup 1387 * @lnum: LEB number
1388 * @node: the node is returned here 1388 * @gc_seq1: garbage collection sequence number
1389 * 1389 *
1390 * This function look up and reads node with key @key. The caller has to make 1390 * This function determines if @lnum may have been garbage collected since
1391 * sure the @node buffer is large enough to fit the node. Returns zero in case 1391 * sequence number @gc_seq1. If it may have been then %1 is returned, otherwise
1392 * of success, %-ENOENT if the node was not found, and a negative error code in 1392 * %0 is returned.
1393 * case of failure.
1394 */ 1393 */
1395int ubifs_tnc_lookup(struct ubifs_info *c, const union ubifs_key *key, 1394static int maybe_leb_gced(struct ubifs_info *c, int lnum, int gc_seq1)
1396 void *node)
1397{ 1395{
1398 int found, n, err; 1396 int gc_seq2, gced_lnum;
1399 struct ubifs_znode *znode;
1400 struct ubifs_zbranch zbr, *zt;
1401 1397
1402 mutex_lock(&c->tnc_mutex); 1398 gced_lnum = c->gced_lnum;
1403 found = ubifs_lookup_level0(c, key, &znode, &n); 1399 smp_rmb();
1404 if (!found) { 1400 gc_seq2 = c->gc_seq;
1405 err = -ENOENT; 1401 /* Same seq means no GC */
1406 goto out; 1402 if (gc_seq1 == gc_seq2)
1407 } else if (found < 0) { 1403 return 0;
1408 err = found; 1404 /* Different by more than 1 means we don't know */
1409 goto out; 1405 if (gc_seq1 + 1 != gc_seq2)
1410 } 1406 return 1;
1411 zt = &znode->zbranch[n]; 1407 /*
1412 if (is_hash_key(c, key)) { 1408 * We have seen the sequence number has increased by 1. Now we need to
1413 /* 1409 * be sure we read the right LEB number, so read it again.
1414 * In this case the leaf node cache gets used, so we pass the 1410 */
1415 * address of the zbranch and keep the mutex locked 1411 smp_rmb();
1416 */ 1412 if (gced_lnum != c->gced_lnum)
1417 err = tnc_read_node_nm(c, zt, node); 1413 return 1;
1418 goto out; 1414 /* Finally we can check lnum */
1419 } 1415 if (gced_lnum == lnum)
1420 zbr = znode->zbranch[n]; 1416 return 1;
1421 mutex_unlock(&c->tnc_mutex); 1417 return 0;
1422
1423 err = ubifs_tnc_read_node(c, &zbr, node);
1424 return err;
1425
1426out:
1427 mutex_unlock(&c->tnc_mutex);
1428 return err;
1429} 1418}
1430 1419
1431/** 1420/**
@@ -1436,16 +1425,19 @@ out:
1436 * @lnum: LEB number is returned here 1425 * @lnum: LEB number is returned here
1437 * @offs: offset is returned here 1426 * @offs: offset is returned here
1438 * 1427 *
1439 * This function is the same as 'ubifs_tnc_lookup()' but it returns the node 1428 * This function look up and reads node with key @key. The caller has to make
1440 * location also. See 'ubifs_tnc_lookup()'. 1429 * sure the @node buffer is large enough to fit the node. Returns zero in case
1430 * of success, %-ENOENT if the node was not found, and a negative error code in
1431 * case of failure. The node location can be returned in @lnum and @offs.
1441 */ 1432 */
1442int ubifs_tnc_locate(struct ubifs_info *c, const union ubifs_key *key, 1433int ubifs_tnc_locate(struct ubifs_info *c, const union ubifs_key *key,
1443 void *node, int *lnum, int *offs) 1434 void *node, int *lnum, int *offs)
1444{ 1435{
1445 int found, n, err; 1436 int found, n, err, safely = 0, gc_seq1;
1446 struct ubifs_znode *znode; 1437 struct ubifs_znode *znode;
1447 struct ubifs_zbranch zbr, *zt; 1438 struct ubifs_zbranch zbr, *zt;
1448 1439
1440again:
1449 mutex_lock(&c->tnc_mutex); 1441 mutex_lock(&c->tnc_mutex);
1450 found = ubifs_lookup_level0(c, key, &znode, &n); 1442 found = ubifs_lookup_level0(c, key, &znode, &n);
1451 if (!found) { 1443 if (!found) {
@@ -1456,24 +1448,43 @@ int ubifs_tnc_locate(struct ubifs_info *c, const union ubifs_key *key,
1456 goto out; 1448 goto out;
1457 } 1449 }
1458 zt = &znode->zbranch[n]; 1450 zt = &znode->zbranch[n];
1451 if (lnum) {
1452 *lnum = zt->lnum;
1453 *offs = zt->offs;
1454 }
1459 if (is_hash_key(c, key)) { 1455 if (is_hash_key(c, key)) {
1460 /* 1456 /*
1461 * In this case the leaf node cache gets used, so we pass the 1457 * In this case the leaf node cache gets used, so we pass the
1462 * address of the zbranch and keep the mutex locked 1458 * address of the zbranch and keep the mutex locked
1463 */ 1459 */
1464 *lnum = zt->lnum;
1465 *offs = zt->offs;
1466 err = tnc_read_node_nm(c, zt, node); 1460 err = tnc_read_node_nm(c, zt, node);
1467 goto out; 1461 goto out;
1468 } 1462 }
1463 if (safely) {
1464 err = ubifs_tnc_read_node(c, zt, node);
1465 goto out;
1466 }
1467 /* Drop the TNC mutex prematurely and race with garbage collection */
1469 zbr = znode->zbranch[n]; 1468 zbr = znode->zbranch[n];
1469 gc_seq1 = c->gc_seq;
1470 mutex_unlock(&c->tnc_mutex); 1470 mutex_unlock(&c->tnc_mutex);
1471 1471
1472 *lnum = zbr.lnum; 1472 if (ubifs_get_wbuf(c, zbr.lnum)) {
1473 *offs = zbr.offs; 1473 /* We do not GC journal heads */
1474 err = ubifs_tnc_read_node(c, &zbr, node);
1475 return err;
1476 }
1474 1477
1475 err = ubifs_tnc_read_node(c, &zbr, node); 1478 err = fallible_read_node(c, key, &zbr, node);
1476 return err; 1479 if (err <= 0 || maybe_leb_gced(c, zbr.lnum, gc_seq1)) {
1480 /*
1481 * The node may have been GC'ed out from under us so try again
1482 * while keeping the TNC mutex locked.
1483 */
1484 safely = 1;
1485 goto again;
1486 }
1487 return 0;
1477 1488
1478out: 1489out:
1479 mutex_unlock(&c->tnc_mutex); 1490 mutex_unlock(&c->tnc_mutex);
@@ -1498,7 +1509,6 @@ static int do_lookup_nm(struct ubifs_info *c, const union ubifs_key *key,
1498{ 1509{
1499 int found, n, err; 1510 int found, n, err;
1500 struct ubifs_znode *znode; 1511 struct ubifs_znode *znode;
1501 struct ubifs_zbranch zbr;
1502 1512
1503 dbg_tnc("name '%.*s' key %s", nm->len, nm->name, DBGKEY(key)); 1513 dbg_tnc("name '%.*s' key %s", nm->len, nm->name, DBGKEY(key));
1504 mutex_lock(&c->tnc_mutex); 1514 mutex_lock(&c->tnc_mutex);
@@ -1522,11 +1532,7 @@ static int do_lookup_nm(struct ubifs_info *c, const union ubifs_key *key,
1522 goto out_unlock; 1532 goto out_unlock;
1523 } 1533 }
1524 1534
1525 zbr = znode->zbranch[n]; 1535 err = tnc_read_node_nm(c, &znode->zbranch[n], node);
1526 mutex_unlock(&c->tnc_mutex);
1527
1528 err = tnc_read_node_nm(c, &zbr, node);
1529 return err;
1530 1536
1531out_unlock: 1537out_unlock:
1532 mutex_unlock(&c->tnc_mutex); 1538 mutex_unlock(&c->tnc_mutex);
diff --git a/fs/ubifs/ubifs-media.h b/fs/ubifs/ubifs-media.h
index bd2121f3426..a9ecbd9af20 100644
--- a/fs/ubifs/ubifs-media.h
+++ b/fs/ubifs/ubifs-media.h
@@ -87,7 +87,7 @@
87#define UBIFS_SK_LEN 8 87#define UBIFS_SK_LEN 8
88 88
89/* Minimum index tree fanout */ 89/* Minimum index tree fanout */
90#define UBIFS_MIN_FANOUT 2 90#define UBIFS_MIN_FANOUT 3
91 91
92/* Maximum number of levels in UBIFS indexing B-tree */ 92/* Maximum number of levels in UBIFS indexing B-tree */
93#define UBIFS_MAX_LEVELS 512 93#define UBIFS_MAX_LEVELS 512
diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h
index d7f706f7a30..17c620b93ee 100644
--- a/fs/ubifs/ubifs.h
+++ b/fs/ubifs/ubifs.h
@@ -995,6 +995,9 @@ struct ubifs_mount_opts {
995 * @max_idx_node_sz: maximum indexing node aligned on 8-bytes boundary 995 * @max_idx_node_sz: maximum indexing node aligned on 8-bytes boundary
996 * @max_inode_sz: maximum possible inode size in bytes 996 * @max_inode_sz: maximum possible inode size in bytes
997 * @max_znode_sz: size of znode in bytes 997 * @max_znode_sz: size of znode in bytes
998 *
999 * @leb_overhead: how many bytes are wasted in an LEB when it is filled with
1000 * data nodes of maximum size - used in free space reporting
998 * @dead_wm: LEB dead space watermark 1001 * @dead_wm: LEB dead space watermark
999 * @dark_wm: LEB dark space watermark 1002 * @dark_wm: LEB dark space watermark
1000 * @block_cnt: count of 4KiB blocks on the FS 1003 * @block_cnt: count of 4KiB blocks on the FS
@@ -1028,6 +1031,8 @@ struct ubifs_mount_opts {
1028 * @sbuf: a buffer of LEB size used by GC and replay for scanning 1031 * @sbuf: a buffer of LEB size used by GC and replay for scanning
1029 * @idx_gc: list of index LEBs that have been garbage collected 1032 * @idx_gc: list of index LEBs that have been garbage collected
1030 * @idx_gc_cnt: number of elements on the idx_gc list 1033 * @idx_gc_cnt: number of elements on the idx_gc list
1034 * @gc_seq: incremented for every non-index LEB garbage collected
1035 * @gced_lnum: last non-index LEB that was garbage collected
1031 * 1036 *
1032 * @infos_list: links all 'ubifs_info' objects 1037 * @infos_list: links all 'ubifs_info' objects
1033 * @umount_mutex: serializes shrinker and un-mount 1038 * @umount_mutex: serializes shrinker and un-mount
@@ -1224,6 +1229,8 @@ struct ubifs_info {
1224 int max_idx_node_sz; 1229 int max_idx_node_sz;
1225 long long max_inode_sz; 1230 long long max_inode_sz;
1226 int max_znode_sz; 1231 int max_znode_sz;
1232
1233 int leb_overhead;
1227 int dead_wm; 1234 int dead_wm;
1228 int dark_wm; 1235 int dark_wm;
1229 int block_cnt; 1236 int block_cnt;
@@ -1257,6 +1264,8 @@ struct ubifs_info {
1257 void *sbuf; 1264 void *sbuf;
1258 struct list_head idx_gc; 1265 struct list_head idx_gc;
1259 int idx_gc_cnt; 1266 int idx_gc_cnt;
1267 volatile int gc_seq;
1268 volatile int gced_lnum;
1260 1269
1261 struct list_head infos_list; 1270 struct list_head infos_list;
1262 struct mutex umount_mutex; 1271 struct mutex umount_mutex;
@@ -1434,9 +1443,10 @@ void ubifs_release_ino_dirty(struct ubifs_info *c, struct inode *inode,
1434 struct ubifs_budget_req *req); 1443 struct ubifs_budget_req *req);
1435void ubifs_cancel_ino_op(struct ubifs_info *c, struct inode *inode, 1444void ubifs_cancel_ino_op(struct ubifs_info *c, struct inode *inode,
1436 struct ubifs_budget_req *req); 1445 struct ubifs_budget_req *req);
1437long long ubifs_budg_get_free_space(struct ubifs_info *c); 1446long long ubifs_get_free_space(struct ubifs_info *c);
1438int ubifs_calc_min_idx_lebs(struct ubifs_info *c); 1447int ubifs_calc_min_idx_lebs(struct ubifs_info *c);
1439void ubifs_convert_page_budget(struct ubifs_info *c); 1448void ubifs_convert_page_budget(struct ubifs_info *c);
1449long long ubifs_reported_space(const struct ubifs_info *c, uint64_t free);
1440long long ubifs_calc_available(const struct ubifs_info *c, int min_idx_lebs); 1450long long ubifs_calc_available(const struct ubifs_info *c, int min_idx_lebs);
1441 1451
1442/* find.c */ 1452/* find.c */
@@ -1451,8 +1461,6 @@ int ubifs_save_dirty_idx_lnums(struct ubifs_info *c);
1451/* tnc.c */ 1461/* tnc.c */
1452int ubifs_lookup_level0(struct ubifs_info *c, const union ubifs_key *key, 1462int ubifs_lookup_level0(struct ubifs_info *c, const union ubifs_key *key,
1453 struct ubifs_znode **zn, int *n); 1463 struct ubifs_znode **zn, int *n);
1454int ubifs_tnc_lookup(struct ubifs_info *c, const union ubifs_key *key,
1455 void *node);
1456int ubifs_tnc_lookup_nm(struct ubifs_info *c, const union ubifs_key *key, 1464int ubifs_tnc_lookup_nm(struct ubifs_info *c, const union ubifs_key *key,
1457 void *node, const struct qstr *nm); 1465 void *node, const struct qstr *nm);
1458int ubifs_tnc_locate(struct ubifs_info *c, const union ubifs_key *key, 1466int ubifs_tnc_locate(struct ubifs_info *c, const union ubifs_key *key,
diff --git a/fs/udf/file.c b/fs/udf/file.c
index 0ed6e146a0d..eb91f3b7032 100644
--- a/fs/udf/file.c
+++ b/fs/udf/file.c
@@ -211,6 +211,7 @@ const struct file_operations udf_file_operations = {
211 .release = udf_release_file, 211 .release = udf_release_file,
212 .fsync = udf_fsync_file, 212 .fsync = udf_fsync_file,
213 .splice_read = generic_file_splice_read, 213 .splice_read = generic_file_splice_read,
214 .llseek = generic_file_llseek,
214}; 215};
215 216
216const struct inode_operations udf_file_inode_operations = { 217const struct inode_operations udf_file_inode_operations = {
diff --git a/fs/udf/ialloc.c b/fs/udf/ialloc.c
index eb9cfa23dc3..a4f2b3ce45b 100644
--- a/fs/udf/ialloc.c
+++ b/fs/udf/ialloc.c
@@ -76,11 +76,24 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err)
76 *err = -ENOSPC; 76 *err = -ENOSPC;
77 77
78 iinfo = UDF_I(inode); 78 iinfo = UDF_I(inode);
79 iinfo->i_unique = 0; 79 if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_EXTENDED_FE)) {
80 iinfo->i_lenExtents = 0; 80 iinfo->i_efe = 1;
81 iinfo->i_next_alloc_block = 0; 81 if (UDF_VERS_USE_EXTENDED_FE > sbi->s_udfrev)
82 iinfo->i_next_alloc_goal = 0; 82 sbi->s_udfrev = UDF_VERS_USE_EXTENDED_FE;
83 iinfo->i_strat4096 = 0; 83 iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize -
84 sizeof(struct extendedFileEntry),
85 GFP_KERNEL);
86 } else {
87 iinfo->i_efe = 0;
88 iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize -
89 sizeof(struct fileEntry),
90 GFP_KERNEL);
91 }
92 if (!iinfo->i_ext.i_data) {
93 iput(inode);
94 *err = -ENOMEM;
95 return NULL;
96 }
84 97
85 block = udf_new_block(dir->i_sb, NULL, 98 block = udf_new_block(dir->i_sb, NULL,
86 dinfo->i_location.partitionReferenceNum, 99 dinfo->i_location.partitionReferenceNum,
@@ -111,6 +124,7 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err)
111 lvhd->uniqueID = cpu_to_le64(uniqueID); 124 lvhd->uniqueID = cpu_to_le64(uniqueID);
112 mark_buffer_dirty(sbi->s_lvid_bh); 125 mark_buffer_dirty(sbi->s_lvid_bh);
113 } 126 }
127 mutex_unlock(&sbi->s_alloc_mutex);
114 inode->i_mode = mode; 128 inode->i_mode = mode;
115 inode->i_uid = current->fsuid; 129 inode->i_uid = current->fsuid;
116 if (dir->i_mode & S_ISGID) { 130 if (dir->i_mode & S_ISGID) {
@@ -129,25 +143,6 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err)
129 iinfo->i_lenEAttr = 0; 143 iinfo->i_lenEAttr = 0;
130 iinfo->i_lenAlloc = 0; 144 iinfo->i_lenAlloc = 0;
131 iinfo->i_use = 0; 145 iinfo->i_use = 0;
132 if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_EXTENDED_FE)) {
133 iinfo->i_efe = 1;
134 if (UDF_VERS_USE_EXTENDED_FE > sbi->s_udfrev)
135 sbi->s_udfrev = UDF_VERS_USE_EXTENDED_FE;
136 iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize -
137 sizeof(struct extendedFileEntry),
138 GFP_KERNEL);
139 } else {
140 iinfo->i_efe = 0;
141 iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize -
142 sizeof(struct fileEntry),
143 GFP_KERNEL);
144 }
145 if (!iinfo->i_ext.i_data) {
146 iput(inode);
147 *err = -ENOMEM;
148 mutex_unlock(&sbi->s_alloc_mutex);
149 return NULL;
150 }
151 if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_AD_IN_ICB)) 146 if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_AD_IN_ICB))
152 iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB; 147 iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB;
153 else if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_SHORT_AD)) 148 else if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_SHORT_AD))
@@ -158,7 +153,6 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err)
158 iinfo->i_crtime = current_fs_time(inode->i_sb); 153 iinfo->i_crtime = current_fs_time(inode->i_sb);
159 insert_inode_hash(inode); 154 insert_inode_hash(inode);
160 mark_inode_dirty(inode); 155 mark_inode_dirty(inode);
161 mutex_unlock(&sbi->s_alloc_mutex);
162 156
163 if (DQUOT_ALLOC_INODE(inode)) { 157 if (DQUOT_ALLOC_INODE(inode)) {
164 DQUOT_DROP(inode); 158 DQUOT_DROP(inode);
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c
index f42f80a3b1f..a44d68eb50b 100644
--- a/fs/xfs/linux-2.6/xfs_aops.c
+++ b/fs/xfs/linux-2.6/xfs_aops.c
@@ -1338,6 +1338,10 @@ __xfs_get_blocks(
1338 offset = (xfs_off_t)iblock << inode->i_blkbits; 1338 offset = (xfs_off_t)iblock << inode->i_blkbits;
1339 ASSERT(bh_result->b_size >= (1 << inode->i_blkbits)); 1339 ASSERT(bh_result->b_size >= (1 << inode->i_blkbits));
1340 size = bh_result->b_size; 1340 size = bh_result->b_size;
1341
1342 if (!create && direct && offset >= i_size_read(inode))
1343 return 0;
1344
1341 error = xfs_iomap(XFS_I(inode), offset, size, 1345 error = xfs_iomap(XFS_I(inode), offset, size,
1342 create ? flags : BMAPI_READ, &iomap, &niomap); 1346 create ? flags : BMAPI_READ, &iomap, &niomap);
1343 if (error) 1347 if (error)
diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c
index 5f60363b934..5311c1acdd4 100644
--- a/fs/xfs/linux-2.6/xfs_file.c
+++ b/fs/xfs/linux-2.6/xfs_file.c
@@ -475,6 +475,7 @@ const struct file_operations xfs_invis_file_operations = {
475const struct file_operations xfs_dir_file_operations = { 475const struct file_operations xfs_dir_file_operations = {
476 .read = generic_read_dir, 476 .read = generic_read_dir,
477 .readdir = xfs_file_readdir, 477 .readdir = xfs_file_readdir,
478 .llseek = generic_file_llseek,
478 .unlocked_ioctl = xfs_file_ioctl, 479 .unlocked_ioctl = xfs_file_ioctl,
479#ifdef CONFIG_COMPAT 480#ifdef CONFIG_COMPAT
480 .compat_ioctl = xfs_file_compat_ioctl, 481 .compat_ioctl = xfs_file_compat_ioctl,
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c
index 91bcd979242..095d271f343 100644
--- a/fs/xfs/linux-2.6/xfs_iops.c
+++ b/fs/xfs/linux-2.6/xfs_iops.c
@@ -355,7 +355,7 @@ xfs_vn_ci_lookup(
355 /* else case-insensitive match... */ 355 /* else case-insensitive match... */
356 dname.name = ci_name.name; 356 dname.name = ci_name.name;
357 dname.len = ci_name.len; 357 dname.len = ci_name.len;
358 dentry = d_add_ci(VFS_I(ip), dentry, &dname); 358 dentry = d_add_ci(dentry, VFS_I(ip), &dname);
359 kmem_free(ci_name.name); 359 kmem_free(ci_name.name);
360 return dentry; 360 return dentry;
361} 361}
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index 73c65f19e54..18d3c848783 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -1302,9 +1302,29 @@ xfs_fs_remount(
1302 mp->m_flags &= ~XFS_MOUNT_BARRIER; 1302 mp->m_flags &= ~XFS_MOUNT_BARRIER;
1303 break; 1303 break;
1304 default: 1304 default:
1305 /*
1306 * Logically we would return an error here to prevent
1307 * users from believing they might have changed
1308 * mount options using remount which can't be changed.
1309 *
1310 * But unfortunately mount(8) adds all options from
1311 * mtab and fstab to the mount arguments in some cases
1312 * so we can't blindly reject options, but have to
1313 * check for each specified option if it actually
1314 * differs from the currently set option and only
1315 * reject it if that's the case.
1316 *
1317 * Until that is implemented we return success for
1318 * every remount request, and silently ignore all
1319 * options that we can't actually change.
1320 */
1321#if 0
1305 printk(KERN_INFO 1322 printk(KERN_INFO
1306 "XFS: mount option \"%s\" not supported for remount\n", p); 1323 "XFS: mount option \"%s\" not supported for remount\n", p);
1307 return -EINVAL; 1324 return -EINVAL;
1325#else
1326 return 0;
1327#endif
1308 } 1328 }
1309 } 1329 }
1310 1330
diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c
index 608c30c3f76..002fc2617c8 100644
--- a/fs/xfs/xfs_buf_item.c
+++ b/fs/xfs/xfs_buf_item.c
@@ -732,6 +732,7 @@ xfs_buf_item_init(
732 bip->bli_item.li_ops = &xfs_buf_item_ops; 732 bip->bli_item.li_ops = &xfs_buf_item_ops;
733 bip->bli_item.li_mountp = mp; 733 bip->bli_item.li_mountp = mp;
734 bip->bli_buf = bp; 734 bip->bli_buf = bp;
735 xfs_buf_hold(bp);
735 bip->bli_format.blf_type = XFS_LI_BUF; 736 bip->bli_format.blf_type = XFS_LI_BUF;
736 bip->bli_format.blf_blkno = (__int64_t)XFS_BUF_ADDR(bp); 737 bip->bli_format.blf_blkno = (__int64_t)XFS_BUF_ADDR(bp);
737 bip->bli_format.blf_len = (ushort)BTOBB(XFS_BUF_COUNT(bp)); 738 bip->bli_format.blf_len = (ushort)BTOBB(XFS_BUF_COUNT(bp));
@@ -867,6 +868,21 @@ xfs_buf_item_dirty(
867 return (bip->bli_flags & XFS_BLI_DIRTY); 868 return (bip->bli_flags & XFS_BLI_DIRTY);
868} 869}
869 870
871STATIC void
872xfs_buf_item_free(
873 xfs_buf_log_item_t *bip)
874{
875#ifdef XFS_TRANS_DEBUG
876 kmem_free(bip->bli_orig);
877 kmem_free(bip->bli_logged);
878#endif /* XFS_TRANS_DEBUG */
879
880#ifdef XFS_BLI_TRACE
881 ktrace_free(bip->bli_trace);
882#endif
883 kmem_zone_free(xfs_buf_item_zone, bip);
884}
885
870/* 886/*
871 * This is called when the buf log item is no longer needed. It should 887 * This is called when the buf log item is no longer needed. It should
872 * free the buf log item associated with the given buffer and clear 888 * free the buf log item associated with the given buffer and clear
@@ -887,18 +903,8 @@ xfs_buf_item_relse(
887 (XFS_BUF_IODONE_FUNC(bp) != NULL)) { 903 (XFS_BUF_IODONE_FUNC(bp) != NULL)) {
888 XFS_BUF_CLR_IODONE_FUNC(bp); 904 XFS_BUF_CLR_IODONE_FUNC(bp);
889 } 905 }
890 906 xfs_buf_rele(bp);
891#ifdef XFS_TRANS_DEBUG 907 xfs_buf_item_free(bip);
892 kmem_free(bip->bli_orig);
893 bip->bli_orig = NULL;
894 kmem_free(bip->bli_logged);
895 bip->bli_logged = NULL;
896#endif /* XFS_TRANS_DEBUG */
897
898#ifdef XFS_BLI_TRACE
899 ktrace_free(bip->bli_trace);
900#endif
901 kmem_zone_free(xfs_buf_item_zone, bip);
902} 908}
903 909
904 910
@@ -1120,6 +1126,7 @@ xfs_buf_iodone(
1120 1126
1121 ASSERT(bip->bli_buf == bp); 1127 ASSERT(bip->bli_buf == bp);
1122 1128
1129 xfs_buf_rele(bp);
1123 mp = bip->bli_item.li_mountp; 1130 mp = bip->bli_item.li_mountp;
1124 1131
1125 /* 1132 /*
@@ -1136,18 +1143,7 @@ xfs_buf_iodone(
1136 * xfs_trans_delete_ail() drops the AIL lock. 1143 * xfs_trans_delete_ail() drops the AIL lock.
1137 */ 1144 */
1138 xfs_trans_delete_ail(mp, (xfs_log_item_t *)bip); 1145 xfs_trans_delete_ail(mp, (xfs_log_item_t *)bip);
1139 1146 xfs_buf_item_free(bip);
1140#ifdef XFS_TRANS_DEBUG
1141 kmem_free(bip->bli_orig);
1142 bip->bli_orig = NULL;
1143 kmem_free(bip->bli_logged);
1144 bip->bli_logged = NULL;
1145#endif /* XFS_TRANS_DEBUG */
1146
1147#ifdef XFS_BLI_TRACE
1148 ktrace_free(bip->bli_trace);
1149#endif
1150 kmem_zone_free(xfs_buf_item_zone, bip);
1151} 1147}
1152 1148
1153#if defined(XFS_BLI_TRACE) 1149#if defined(XFS_BLI_TRACE)
diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c
index 760f4c5b516..75b0cd4da0e 100644
--- a/fs/xfs/xfs_dfrag.c
+++ b/fs/xfs/xfs_dfrag.c
@@ -149,7 +149,14 @@ xfs_swap_extents(
149 149
150 sbp = &sxp->sx_stat; 150 sbp = &sxp->sx_stat;
151 151
152 xfs_lock_two_inodes(ip, tip, lock_flags); 152 /*
153 * we have to do two separate lock calls here to keep lockdep
154 * happy. If we try to get all the locks in one call, lock will
155 * report false positives when we drop the ILOCK and regain them
156 * below.
157 */
158 xfs_lock_two_inodes(ip, tip, XFS_IOLOCK_EXCL);
159 xfs_lock_two_inodes(ip, tip, XFS_ILOCK_EXCL);
153 locked = 1; 160 locked = 1;
154 161
155 /* Verify that both files have the same format */ 162 /* Verify that both files have the same format */
diff --git a/fs/xfs/xfs_dmapi.h b/fs/xfs/xfs_dmapi.h
index cdc2d3464a1..2813cdd7237 100644
--- a/fs/xfs/xfs_dmapi.h
+++ b/fs/xfs/xfs_dmapi.h
@@ -18,7 +18,6 @@
18#ifndef __XFS_DMAPI_H__ 18#ifndef __XFS_DMAPI_H__
19#define __XFS_DMAPI_H__ 19#define __XFS_DMAPI_H__
20 20
21#include <linux/version.h>
22/* Values used to define the on-disk version of dm_attrname_t. All 21/* Values used to define the on-disk version of dm_attrname_t. All
23 * on-disk attribute names start with the 8-byte string "SGI_DMI_". 22 * on-disk attribute names start with the 8-byte string "SGI_DMI_".
24 * 23 *
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 00e80df9dd9..dbd9cef852e 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -4118,7 +4118,7 @@ xfs_iext_indirect_to_direct(
4118 ASSERT(nextents <= XFS_LINEAR_EXTS); 4118 ASSERT(nextents <= XFS_LINEAR_EXTS);
4119 size = nextents * sizeof(xfs_bmbt_rec_t); 4119 size = nextents * sizeof(xfs_bmbt_rec_t);
4120 4120
4121 xfs_iext_irec_compact_full(ifp); 4121 xfs_iext_irec_compact_pages(ifp);
4122 ASSERT(ifp->if_real_bytes == XFS_IEXT_BUFSZ); 4122 ASSERT(ifp->if_real_bytes == XFS_IEXT_BUFSZ);
4123 4123
4124 ep = ifp->if_u1.if_ext_irec->er_extbuf; 4124 ep = ifp->if_u1.if_ext_irec->er_extbuf;
@@ -4449,8 +4449,7 @@ xfs_iext_irec_remove(
4449 * compaction policy is as follows: 4449 * compaction policy is as follows:
4450 * 4450 *
4451 * Full Compaction: Extents fit into a single page (or inline buffer) 4451 * Full Compaction: Extents fit into a single page (or inline buffer)
4452 * Full Compaction: Extents occupy less than 10% of allocated space 4452 * Partial Compaction: Extents occupy less than 50% of allocated space
4453 * Partial Compaction: Extents occupy > 10% and < 50% of allocated space
4454 * No Compaction: Extents occupy at least 50% of allocated space 4453 * No Compaction: Extents occupy at least 50% of allocated space
4455 */ 4454 */
4456void 4455void
@@ -4471,8 +4470,6 @@ xfs_iext_irec_compact(
4471 xfs_iext_direct_to_inline(ifp, nextents); 4470 xfs_iext_direct_to_inline(ifp, nextents);
4472 } else if (nextents <= XFS_LINEAR_EXTS) { 4471 } else if (nextents <= XFS_LINEAR_EXTS) {
4473 xfs_iext_indirect_to_direct(ifp); 4472 xfs_iext_indirect_to_direct(ifp);
4474 } else if (nextents < (nlists * XFS_LINEAR_EXTS) >> 3) {
4475 xfs_iext_irec_compact_full(ifp);
4476 } else if (nextents < (nlists * XFS_LINEAR_EXTS) >> 1) { 4473 } else if (nextents < (nlists * XFS_LINEAR_EXTS) >> 1) {
4477 xfs_iext_irec_compact_pages(ifp); 4474 xfs_iext_irec_compact_pages(ifp);
4478 } 4475 }
@@ -4496,7 +4493,7 @@ xfs_iext_irec_compact_pages(
4496 erp_next = erp + 1; 4493 erp_next = erp + 1;
4497 if (erp_next->er_extcount <= 4494 if (erp_next->er_extcount <=
4498 (XFS_LINEAR_EXTS - erp->er_extcount)) { 4495 (XFS_LINEAR_EXTS - erp->er_extcount)) {
4499 memmove(&erp->er_extbuf[erp->er_extcount], 4496 memcpy(&erp->er_extbuf[erp->er_extcount],
4500 erp_next->er_extbuf, erp_next->er_extcount * 4497 erp_next->er_extbuf, erp_next->er_extcount *
4501 sizeof(xfs_bmbt_rec_t)); 4498 sizeof(xfs_bmbt_rec_t));
4502 erp->er_extcount += erp_next->er_extcount; 4499 erp->er_extcount += erp_next->er_extcount;
@@ -4516,91 +4513,6 @@ xfs_iext_irec_compact_pages(
4516} 4513}
4517 4514
4518/* 4515/*
4519 * Fully compact the extent records managed by the indirection array.
4520 */
4521void
4522xfs_iext_irec_compact_full(
4523 xfs_ifork_t *ifp) /* inode fork pointer */
4524{
4525 xfs_bmbt_rec_host_t *ep, *ep_next; /* extent record pointers */
4526 xfs_ext_irec_t *erp, *erp_next; /* extent irec pointers */
4527 int erp_idx = 0; /* extent irec index */
4528 int ext_avail; /* empty entries in ex list */
4529 int ext_diff; /* number of exts to add */
4530 int nlists; /* number of irec's (ex lists) */
4531
4532 ASSERT(ifp->if_flags & XFS_IFEXTIREC);
4533
4534 nlists = ifp->if_real_bytes / XFS_IEXT_BUFSZ;
4535 erp = ifp->if_u1.if_ext_irec;
4536 ep = &erp->er_extbuf[erp->er_extcount];
4537 erp_next = erp + 1;
4538 ep_next = erp_next->er_extbuf;
4539
4540 while (erp_idx < nlists - 1) {
4541 /*
4542 * Check how many extent records are available in this irec.
4543 * If there is none skip the whole exercise.
4544 */
4545 ext_avail = XFS_LINEAR_EXTS - erp->er_extcount;
4546 if (ext_avail) {
4547
4548 /*
4549 * Copy over as many as possible extent records into
4550 * the previous page.
4551 */
4552 ext_diff = MIN(ext_avail, erp_next->er_extcount);
4553 memcpy(ep, ep_next, ext_diff * sizeof(xfs_bmbt_rec_t));
4554 erp->er_extcount += ext_diff;
4555 erp_next->er_extcount -= ext_diff;
4556
4557 /*
4558 * If the next irec is empty now we can simply
4559 * remove it.
4560 */
4561 if (erp_next->er_extcount == 0) {
4562 /*
4563 * Free page before removing extent record
4564 * so er_extoffs don't get modified in
4565 * xfs_iext_irec_remove.
4566 */
4567 kmem_free(erp_next->er_extbuf);
4568 erp_next->er_extbuf = NULL;
4569 xfs_iext_irec_remove(ifp, erp_idx + 1);
4570 erp = &ifp->if_u1.if_ext_irec[erp_idx];
4571 nlists = ifp->if_real_bytes / XFS_IEXT_BUFSZ;
4572
4573 /*
4574 * If the next irec is not empty move up the content
4575 * that has not been copied to the previous page to
4576 * the beggining of this one.
4577 */
4578 } else {
4579 memmove(erp_next->er_extbuf, &ep_next[ext_diff],
4580 erp_next->er_extcount *
4581 sizeof(xfs_bmbt_rec_t));
4582 ep_next = erp_next->er_extbuf;
4583 memset(&ep_next[erp_next->er_extcount], 0,
4584 (XFS_LINEAR_EXTS -
4585 erp_next->er_extcount) *
4586 sizeof(xfs_bmbt_rec_t));
4587 }
4588 }
4589
4590 if (erp->er_extcount == XFS_LINEAR_EXTS) {
4591 erp_idx++;
4592 if (erp_idx < nlists)
4593 erp = &ifp->if_u1.if_ext_irec[erp_idx];
4594 else
4595 break;
4596 }
4597 ep = &erp->er_extbuf[erp->er_extcount];
4598 erp_next = erp + 1;
4599 ep_next = erp_next->er_extbuf;
4600 }
4601}
4602
4603/*
4604 * This is called to update the er_extoff field in the indirection 4516 * This is called to update the er_extoff field in the indirection
4605 * array when extents have been added or removed from one of the 4517 * array when extents have been added or removed from one of the
4606 * extent lists. erp_idx contains the irec index to begin updating 4518 * extent lists. erp_idx contains the irec index to begin updating
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index ccba14eb9db..503ea89e8b9 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
@@ -124,16 +124,27 @@ STATIC void xlog_verify_tail_lsn(xlog_t *log, xlog_in_core_t *iclog,
124STATIC int xlog_iclogs_empty(xlog_t *log); 124STATIC int xlog_iclogs_empty(xlog_t *log);
125 125
126#if defined(XFS_LOG_TRACE) 126#if defined(XFS_LOG_TRACE)
127
128#define XLOG_TRACE_LOGGRANT_SIZE 2048
129#define XLOG_TRACE_ICLOG_SIZE 256
130
131void
132xlog_trace_loggrant_alloc(xlog_t *log)
133{
134 log->l_grant_trace = ktrace_alloc(XLOG_TRACE_LOGGRANT_SIZE, KM_NOFS);
135}
136
137void
138xlog_trace_loggrant_dealloc(xlog_t *log)
139{
140 ktrace_free(log->l_grant_trace);
141}
142
127void 143void
128xlog_trace_loggrant(xlog_t *log, xlog_ticket_t *tic, xfs_caddr_t string) 144xlog_trace_loggrant(xlog_t *log, xlog_ticket_t *tic, xfs_caddr_t string)
129{ 145{
130 unsigned long cnts; 146 unsigned long cnts;
131 147
132 if (!log->l_grant_trace) {
133 log->l_grant_trace = ktrace_alloc(2048, KM_NOSLEEP);
134 if (!log->l_grant_trace)
135 return;
136 }
137 /* ticket counts are 1 byte each */ 148 /* ticket counts are 1 byte each */
138 cnts = ((unsigned long)tic->t_ocnt) | ((unsigned long)tic->t_cnt) << 8; 149 cnts = ((unsigned long)tic->t_ocnt) | ((unsigned long)tic->t_cnt) << 8;
139 150
@@ -157,10 +168,20 @@ xlog_trace_loggrant(xlog_t *log, xlog_ticket_t *tic, xfs_caddr_t string)
157} 168}
158 169
159void 170void
171xlog_trace_iclog_alloc(xlog_in_core_t *iclog)
172{
173 iclog->ic_trace = ktrace_alloc(XLOG_TRACE_ICLOG_SIZE, KM_NOFS);
174}
175
176void
177xlog_trace_iclog_dealloc(xlog_in_core_t *iclog)
178{
179 ktrace_free(iclog->ic_trace);
180}
181
182void
160xlog_trace_iclog(xlog_in_core_t *iclog, uint state) 183xlog_trace_iclog(xlog_in_core_t *iclog, uint state)
161{ 184{
162 if (!iclog->ic_trace)
163 iclog->ic_trace = ktrace_alloc(256, KM_NOFS);
164 ktrace_enter(iclog->ic_trace, 185 ktrace_enter(iclog->ic_trace,
165 (void *)((unsigned long)state), 186 (void *)((unsigned long)state),
166 (void *)((unsigned long)current_pid()), 187 (void *)((unsigned long)current_pid()),
@@ -170,8 +191,15 @@ xlog_trace_iclog(xlog_in_core_t *iclog, uint state)
170 (void *)NULL, (void *)NULL); 191 (void *)NULL, (void *)NULL);
171} 192}
172#else 193#else
194
195#define xlog_trace_loggrant_alloc(log)
196#define xlog_trace_loggrant_dealloc(log)
173#define xlog_trace_loggrant(log,tic,string) 197#define xlog_trace_loggrant(log,tic,string)
198
199#define xlog_trace_iclog_alloc(iclog)
200#define xlog_trace_iclog_dealloc(iclog)
174#define xlog_trace_iclog(iclog,state) 201#define xlog_trace_iclog(iclog,state)
202
175#endif /* XFS_LOG_TRACE */ 203#endif /* XFS_LOG_TRACE */
176 204
177 205
@@ -1009,7 +1037,7 @@ xlog_iodone(xfs_buf_t *bp)
1009 * layer, it means the underlyin device no longer supports 1037 * layer, it means the underlyin device no longer supports
1010 * barrier I/O. Warn loudly and turn off barriers. 1038 * barrier I/O. Warn loudly and turn off barriers.
1011 */ 1039 */
1012 if ((l->l_mp->m_flags & XFS_MOUNT_BARRIER) && !XFS_BUF_ORDERED(bp)) { 1040 if ((l->l_mp->m_flags & XFS_MOUNT_BARRIER) && !XFS_BUF_ISORDERED(bp)) {
1013 l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER; 1041 l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER;
1014 xfs_fs_cmn_err(CE_WARN, l->l_mp, 1042 xfs_fs_cmn_err(CE_WARN, l->l_mp,
1015 "xlog_iodone: Barriers are no longer supported" 1043 "xlog_iodone: Barriers are no longer supported"
@@ -1231,6 +1259,7 @@ xlog_alloc_log(xfs_mount_t *mp,
1231 spin_lock_init(&log->l_grant_lock); 1259 spin_lock_init(&log->l_grant_lock);
1232 sv_init(&log->l_flush_wait, 0, "flush_wait"); 1260 sv_init(&log->l_flush_wait, 0, "flush_wait");
1233 1261
1262 xlog_trace_loggrant_alloc(log);
1234 /* log record size must be multiple of BBSIZE; see xlog_rec_header_t */ 1263 /* log record size must be multiple of BBSIZE; see xlog_rec_header_t */
1235 ASSERT((XFS_BUF_SIZE(bp) & BBMASK) == 0); 1264 ASSERT((XFS_BUF_SIZE(bp) & BBMASK) == 0);
1236 1265
@@ -1285,6 +1314,8 @@ xlog_alloc_log(xfs_mount_t *mp,
1285 sv_init(&iclog->ic_force_wait, SV_DEFAULT, "iclog-force"); 1314 sv_init(&iclog->ic_force_wait, SV_DEFAULT, "iclog-force");
1286 sv_init(&iclog->ic_write_wait, SV_DEFAULT, "iclog-write"); 1315 sv_init(&iclog->ic_write_wait, SV_DEFAULT, "iclog-write");
1287 1316
1317 xlog_trace_iclog_alloc(iclog);
1318
1288 iclogp = &iclog->ic_next; 1319 iclogp = &iclog->ic_next;
1289 } 1320 }
1290 *iclogp = log->l_iclog; /* complete ring */ 1321 *iclogp = log->l_iclog; /* complete ring */
@@ -1565,11 +1596,7 @@ xlog_dealloc_log(xlog_t *log)
1565 sv_destroy(&iclog->ic_force_wait); 1596 sv_destroy(&iclog->ic_force_wait);
1566 sv_destroy(&iclog->ic_write_wait); 1597 sv_destroy(&iclog->ic_write_wait);
1567 xfs_buf_free(iclog->ic_bp); 1598 xfs_buf_free(iclog->ic_bp);
1568#ifdef XFS_LOG_TRACE 1599 xlog_trace_iclog_dealloc(iclog);
1569 if (iclog->ic_trace != NULL) {
1570 ktrace_free(iclog->ic_trace);
1571 }
1572#endif
1573 next_iclog = iclog->ic_next; 1600 next_iclog = iclog->ic_next;
1574 kmem_free(iclog); 1601 kmem_free(iclog);
1575 iclog = next_iclog; 1602 iclog = next_iclog;
@@ -1578,14 +1605,7 @@ xlog_dealloc_log(xlog_t *log)
1578 spinlock_destroy(&log->l_grant_lock); 1605 spinlock_destroy(&log->l_grant_lock);
1579 1606
1580 xfs_buf_free(log->l_xbuf); 1607 xfs_buf_free(log->l_xbuf);
1581#ifdef XFS_LOG_TRACE 1608 xlog_trace_loggrant_dealloc(log);
1582 if (log->l_trace != NULL) {
1583 ktrace_free(log->l_trace);
1584 }
1585 if (log->l_grant_trace != NULL) {
1586 ktrace_free(log->l_grant_trace);
1587 }
1588#endif
1589 log->l_mp->m_log = NULL; 1609 log->l_mp->m_log = NULL;
1590 kmem_free(log); 1610 kmem_free(log);
1591} /* xlog_dealloc_log */ 1611} /* xlog_dealloc_log */
diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h
index c8a5b22ee3e..e7d8f84443f 100644
--- a/fs/xfs/xfs_log_priv.h
+++ b/fs/xfs/xfs_log_priv.h
@@ -448,7 +448,6 @@ typedef struct log {
448 int l_grant_write_bytes; 448 int l_grant_write_bytes;
449 449
450#ifdef XFS_LOG_TRACE 450#ifdef XFS_LOG_TRACE
451 struct ktrace *l_trace;
452 struct ktrace *l_grant_trace; 451 struct ktrace *l_grant_trace;
453#endif 452#endif
454 453
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index aa238c8fbd7..8b6812f66a1 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -1838,6 +1838,12 @@ again:
1838#endif 1838#endif
1839} 1839}
1840 1840
1841/*
1842 * xfs_lock_two_inodes() can only be used to lock one type of lock
1843 * at a time - the iolock or the ilock, but not both at once. If
1844 * we lock both at once, lockdep will report false positives saying
1845 * we have violated locking orders.
1846 */
1841void 1847void
1842xfs_lock_two_inodes( 1848xfs_lock_two_inodes(
1843 xfs_inode_t *ip0, 1849 xfs_inode_t *ip0,
@@ -1848,6 +1854,8 @@ xfs_lock_two_inodes(
1848 int attempts = 0; 1854 int attempts = 0;
1849 xfs_log_item_t *lp; 1855 xfs_log_item_t *lp;
1850 1856
1857 if (lock_mode & (XFS_IOLOCK_SHARED|XFS_IOLOCK_EXCL))
1858 ASSERT((lock_mode & (XFS_ILOCK_SHARED|XFS_ILOCK_EXCL)) == 0);
1851 ASSERT(ip0->i_ino != ip1->i_ino); 1859 ASSERT(ip0->i_ino != ip1->i_ino);
1852 1860
1853 if (ip0->i_ino > ip1->i_ino) { 1861 if (ip0->i_ino > ip1->i_ino) {
@@ -3152,6 +3160,13 @@ error1: /* Just cancel transaction */
3152/* 3160/*
3153 * Zero file bytes between startoff and endoff inclusive. 3161 * Zero file bytes between startoff and endoff inclusive.
3154 * The iolock is held exclusive and no blocks are buffered. 3162 * The iolock is held exclusive and no blocks are buffered.
3163 *
3164 * This function is used by xfs_free_file_space() to zero
3165 * partial blocks when the range to free is not block aligned.
3166 * When unreserving space with boundaries that are not block
3167 * aligned we round up the start and round down the end
3168 * boundaries and then use this function to zero the parts of
3169 * the blocks that got dropped during the rounding.
3155 */ 3170 */
3156STATIC int 3171STATIC int
3157xfs_zero_remaining_bytes( 3172xfs_zero_remaining_bytes(
@@ -3168,6 +3183,17 @@ xfs_zero_remaining_bytes(
3168 int nimap; 3183 int nimap;
3169 int error = 0; 3184 int error = 0;
3170 3185
3186 /*
3187 * Avoid doing I/O beyond eof - it's not necessary
3188 * since nothing can read beyond eof. The space will
3189 * be zeroed when the file is extended anyway.
3190 */
3191 if (startoff >= ip->i_size)
3192 return 0;
3193
3194 if (endoff > ip->i_size)
3195 endoff = ip->i_size;
3196
3171 bp = xfs_buf_get_noaddr(mp->m_sb.sb_blocksize, 3197 bp = xfs_buf_get_noaddr(mp->m_sb.sb_blocksize,
3172 XFS_IS_REALTIME_INODE(ip) ? 3198 XFS_IS_REALTIME_INODE(ip) ?
3173 mp->m_rtdev_targp : mp->m_ddev_targp); 3199 mp->m_rtdev_targp : mp->m_ddev_targp);
diff --git a/include/asm-generic/Kbuild.asm b/include/asm-generic/Kbuild.asm
index 1170dc60e63..1870d5e05f1 100644
--- a/include/asm-generic/Kbuild.asm
+++ b/include/asm-generic/Kbuild.asm
@@ -1,8 +1,10 @@
1ifneq ($(wildcard $(srctree)/include/asm-$(SRCARCH)/kvm.h),) 1ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h \
2 $(srctree)/include/asm-$(SRCARCH)/kvm.h),)
2header-y += kvm.h 3header-y += kvm.h
3endif 4endif
4 5
5ifneq ($(wildcard $(srctree)/include/asm-$(SRCARCH)/a.out.h),) 6ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/a.out.h \
7 $(srctree)/include/asm-$(SRCARCH)/a.out.h),)
6unifdef-y += a.out.h 8unifdef-y += a.out.h
7endif 9endif
8unifdef-y += auxvec.h 10unifdef-y += auxvec.h
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
index a3f738cffdb..edc6ba82e09 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -97,6 +97,16 @@ extern void warn_slowpath(const char *file, const int line,
97 unlikely(__ret_warn_once); \ 97 unlikely(__ret_warn_once); \
98}) 98})
99 99
100#define WARN_ONCE(condition, format...) ({ \
101 static int __warned; \
102 int __ret_warn_once = !!(condition); \
103 \
104 if (unlikely(__ret_warn_once)) \
105 if (WARN(!__warned, format)) \
106 __warned = 1; \
107 unlikely(__ret_warn_once); \
108})
109
100#define WARN_ON_RATELIMIT(condition, state) \ 110#define WARN_ON_RATELIMIT(condition, state) \
101 WARN_ON((condition) && __ratelimit(state)) 111 WARN_ON((condition) && __ratelimit(state))
102 112
diff --git a/include/asm-generic/rtc.h b/include/asm-generic/rtc.h
index be4af0029ac..71ef3f0b968 100644
--- a/include/asm-generic/rtc.h
+++ b/include/asm-generic/rtc.h
@@ -15,6 +15,7 @@
15#include <linux/mc146818rtc.h> 15#include <linux/mc146818rtc.h>
16#include <linux/rtc.h> 16#include <linux/rtc.h>
17#include <linux/bcd.h> 17#include <linux/bcd.h>
18#include <linux/delay.h>
18 19
19#define RTC_PIE 0x40 /* periodic interrupt enable */ 20#define RTC_PIE 0x40 /* periodic interrupt enable */
20#define RTC_AIE 0x20 /* alarm interrupt enable */ 21#define RTC_AIE 0x20 /* alarm interrupt enable */
@@ -43,7 +44,6 @@ static inline unsigned char rtc_is_updating(void)
43 44
44static inline unsigned int get_rtc_time(struct rtc_time *time) 45static inline unsigned int get_rtc_time(struct rtc_time *time)
45{ 46{
46 unsigned long uip_watchdog = jiffies;
47 unsigned char ctrl; 47 unsigned char ctrl;
48 unsigned long flags; 48 unsigned long flags;
49 49
@@ -53,19 +53,15 @@ static inline unsigned int get_rtc_time(struct rtc_time *time)
53 53
54 /* 54 /*
55 * read RTC once any update in progress is done. The update 55 * read RTC once any update in progress is done. The update
56 * can take just over 2ms. We wait 10 to 20ms. There is no need to 56 * can take just over 2ms. We wait 20ms. There is no need to
57 * to poll-wait (up to 1s - eeccch) for the falling edge of RTC_UIP. 57 * to poll-wait (up to 1s - eeccch) for the falling edge of RTC_UIP.
58 * If you need to know *exactly* when a second has started, enable 58 * If you need to know *exactly* when a second has started, enable
59 * periodic update complete interrupts, (via ioctl) and then 59 * periodic update complete interrupts, (via ioctl) and then
60 * immediately read /dev/rtc which will block until you get the IRQ. 60 * immediately read /dev/rtc which will block until you get the IRQ.
61 * Once the read clears, read the RTC time (again via ioctl). Easy. 61 * Once the read clears, read the RTC time (again via ioctl). Easy.
62 */ 62 */
63 63 if (rtc_is_updating())
64 if (rtc_is_updating() != 0) 64 mdelay(20);
65 while (jiffies - uip_watchdog < 2*HZ/100) {
66 barrier();
67 cpu_relax();
68 }
69 65
70 /* 66 /*
71 * Only the values that we read from the RTC are set. We leave 67 * Only the values that we read from the RTC are set. We leave
diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
index 8feeae1f236..79a7ff925bf 100644
--- a/include/asm-generic/sections.h
+++ b/include/asm-generic/sections.h
@@ -14,4 +14,10 @@ extern char __kprobes_text_start[], __kprobes_text_end[];
14extern char __initdata_begin[], __initdata_end[]; 14extern char __initdata_begin[], __initdata_end[];
15extern char __start_rodata[], __end_rodata[]; 15extern char __start_rodata[], __end_rodata[];
16 16
17/* function descriptor handling (if any). Override
18 * in asm/sections.h */
19#ifndef dereference_function_descriptor
20#define dereference_function_descriptor(p) (p)
21#endif
22
17#endif /* _ASM_GENERIC_SECTIONS_H_ */ 23#endif /* _ASM_GENERIC_SECTIONS_H_ */
diff --git a/include/asm-generic/syscall.h b/include/asm-generic/syscall.h
index abcf34c2fdc..ea8087b55ff 100644
--- a/include/asm-generic/syscall.h
+++ b/include/asm-generic/syscall.h
@@ -126,7 +126,7 @@ void syscall_get_arguments(struct task_struct *task, struct pt_regs *regs,
126 * @args: array of argument values to store 126 * @args: array of argument values to store
127 * 127 *
128 * Changes @n arguments to the system call starting with the @i'th argument. 128 * Changes @n arguments to the system call starting with the @i'th argument.
129 * @n'th argument to @val. Argument @i gets value @args[0], and so on. 129 * Argument @i gets value @args[0], and so on.
130 * An arch inline version is probably optimal when @i and @n are constants. 130 * An arch inline version is probably optimal when @i and @n are constants.
131 * 131 *
132 * It's only valid to call this when @task is stopped for tracing on 132 * It's only valid to call this when @task is stopped for tracing on
diff --git a/include/asm-mips/cacheflush.h b/include/asm-mips/cacheflush.h
index d5c0f2fda51..03b1d69b142 100644
--- a/include/asm-mips/cacheflush.h
+++ b/include/asm-mips/cacheflush.h
@@ -63,6 +63,7 @@ static inline void flush_icache_page(struct vm_area_struct *vma,
63} 63}
64 64
65extern void (*flush_icache_range)(unsigned long start, unsigned long end); 65extern void (*flush_icache_range)(unsigned long start, unsigned long end);
66extern void (*local_flush_icache_range)(unsigned long start, unsigned long end);
66 67
67extern void (*__flush_cache_vmap)(void); 68extern void (*__flush_cache_vmap)(void);
68 69
diff --git a/include/asm-mips/cevt-r4k.h b/include/asm-mips/cevt-r4k.h
new file mode 100644
index 00000000000..fa4328f9124
--- /dev/null
+++ b/include/asm-mips/cevt-r4k.h
@@ -0,0 +1,46 @@
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) 2008 Kevin D. Kissell
7 */
8
9/*
10 * Definitions used for common event timer implementation
11 * for MIPS 4K-type processors and their MIPS MT variants.
12 * Avoids unsightly extern declarations in C files.
13 */
14#ifndef __ASM_CEVT_R4K_H
15#define __ASM_CEVT_R4K_H
16
17DECLARE_PER_CPU(struct clock_event_device, mips_clockevent_device);
18
19void mips_event_handler(struct clock_event_device *dev);
20int c0_compare_int_usable(void);
21void mips_set_clock_mode(enum clock_event_mode, struct clock_event_device *);
22irqreturn_t c0_compare_interrupt(int, void *);
23
24extern struct irqaction c0_compare_irqaction;
25extern int cp0_timer_irq_installed;
26
27/*
28 * Possibly handle a performance counter interrupt.
29 * Return true if the timer interrupt should not be checked
30 */
31
32static inline int handle_perf_irq(int r2)
33{
34 /*
35 * The performance counter overflow interrupt may be shared with the
36 * timer interrupt (cp0_perfcount_irq < 0). If it is and a
37 * performance counter has overflowed (perf_irq() == IRQ_HANDLED)
38 * and we can't reliably determine if a counter interrupt has also
39 * happened (!r2) then don't check for a timer interrupt.
40 */
41 return (cp0_perfcount_irq < 0) &&
42 perf_irq() == IRQ_HANDLED &&
43 !r2;
44}
45
46#endif /* __ASM_CEVT_R4K_H */
diff --git a/include/asm-mips/irqflags.h b/include/asm-mips/irqflags.h
index 881e8866501..701ec0ba8fa 100644
--- a/include/asm-mips/irqflags.h
+++ b/include/asm-mips/irqflags.h
@@ -38,8 +38,17 @@ __asm__(
38 " .set pop \n" 38 " .set pop \n"
39 " .endm"); 39 " .endm");
40 40
41extern void smtc_ipi_replay(void);
42
41static inline void raw_local_irq_enable(void) 43static inline void raw_local_irq_enable(void)
42{ 44{
45#ifdef CONFIG_MIPS_MT_SMTC
46 /*
47 * SMTC kernel needs to do a software replay of queued
48 * IPIs, at the cost of call overhead on each local_irq_enable()
49 */
50 smtc_ipi_replay();
51#endif
43 __asm__ __volatile__( 52 __asm__ __volatile__(
44 "raw_local_irq_enable" 53 "raw_local_irq_enable"
45 : /* no outputs */ 54 : /* no outputs */
@@ -47,6 +56,7 @@ static inline void raw_local_irq_enable(void)
47 : "memory"); 56 : "memory");
48} 57}
49 58
59
50/* 60/*
51 * For cli() we have to insert nops to make sure that the new value 61 * For cli() we have to insert nops to make sure that the new value
52 * has actually arrived in the status register before the end of this 62 * has actually arrived in the status register before the end of this
@@ -185,15 +195,14 @@ __asm__(
185 " .set pop \n" 195 " .set pop \n"
186 " .endm \n"); 196 " .endm \n");
187 197
188extern void smtc_ipi_replay(void);
189 198
190static inline void raw_local_irq_restore(unsigned long flags) 199static inline void raw_local_irq_restore(unsigned long flags)
191{ 200{
192 unsigned long __tmp1; 201 unsigned long __tmp1;
193 202
194#ifdef CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY 203#ifdef CONFIG_MIPS_MT_SMTC
195 /* 204 /*
196 * CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY does prompt replay of deferred 205 * SMTC kernel needs to do a software replay of queued
197 * IPIs, at the cost of branch and call overhead on each 206 * IPIs, at the cost of branch and call overhead on each
198 * local_irq_restore() 207 * local_irq_restore()
199 */ 208 */
@@ -208,6 +217,17 @@ static inline void raw_local_irq_restore(unsigned long flags)
208 : "memory"); 217 : "memory");
209} 218}
210 219
220static inline void __raw_local_irq_restore(unsigned long flags)
221{
222 unsigned long __tmp1;
223
224 __asm__ __volatile__(
225 "raw_local_irq_restore\t%0"
226 : "=r" (__tmp1)
227 : "0" (flags)
228 : "memory");
229}
230
211static inline int raw_irqs_disabled_flags(unsigned long flags) 231static inline int raw_irqs_disabled_flags(unsigned long flags)
212{ 232{
213#ifdef CONFIG_MIPS_MT_SMTC 233#ifdef CONFIG_MIPS_MT_SMTC
diff --git a/include/asm-mips/mipsregs.h b/include/asm-mips/mipsregs.h
index a46f8e258e6..979866000da 100644
--- a/include/asm-mips/mipsregs.h
+++ b/include/asm-mips/mipsregs.h
@@ -1462,7 +1462,7 @@ set_c0_##name(unsigned int set) \
1462{ \ 1462{ \
1463 unsigned int res; \ 1463 unsigned int res; \
1464 unsigned int omt; \ 1464 unsigned int omt; \
1465 unsigned int flags; \ 1465 unsigned long flags; \
1466 \ 1466 \
1467 local_irq_save(flags); \ 1467 local_irq_save(flags); \
1468 omt = __dmt(); \ 1468 omt = __dmt(); \
@@ -1480,7 +1480,7 @@ clear_c0_##name(unsigned int clear) \
1480{ \ 1480{ \
1481 unsigned int res; \ 1481 unsigned int res; \
1482 unsigned int omt; \ 1482 unsigned int omt; \
1483 unsigned int flags; \ 1483 unsigned long flags; \
1484 \ 1484 \
1485 local_irq_save(flags); \ 1485 local_irq_save(flags); \
1486 omt = __dmt(); \ 1486 omt = __dmt(); \
@@ -1498,7 +1498,7 @@ change_c0_##name(unsigned int change, unsigned int new) \
1498{ \ 1498{ \
1499 unsigned int res; \ 1499 unsigned int res; \
1500 unsigned int omt; \ 1500 unsigned int omt; \
1501 unsigned int flags; \ 1501 unsigned long flags; \
1502 \ 1502 \
1503 local_irq_save(flags); \ 1503 local_irq_save(flags); \
1504 \ 1504 \
diff --git a/include/asm-mips/pgtable-32.h b/include/asm-mips/pgtable-32.h
index 4396e9ffd41..55813d6150c 100644
--- a/include/asm-mips/pgtable-32.h
+++ b/include/asm-mips/pgtable-32.h
@@ -57,7 +57,7 @@ extern int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1,
57#define PMD_ORDER 1 57#define PMD_ORDER 1
58#define PTE_ORDER 0 58#define PTE_ORDER 0
59 59
60#define PTRS_PER_PGD ((PAGE_SIZE << PGD_ORDER) / sizeof(pgd_t)) 60#define PTRS_PER_PGD (USER_PTRS_PER_PGD * 2)
61#define PTRS_PER_PTE ((PAGE_SIZE << PTE_ORDER) / sizeof(pte_t)) 61#define PTRS_PER_PTE ((PAGE_SIZE << PTE_ORDER) / sizeof(pte_t))
62 62
63#define USER_PTRS_PER_PGD (0x80000000UL/PGDIR_SIZE) 63#define USER_PTRS_PER_PGD (0x80000000UL/PGDIR_SIZE)
diff --git a/include/asm-mips/smtc.h b/include/asm-mips/smtc.h
index 3639b28f80d..ea60bf08dcb 100644
--- a/include/asm-mips/smtc.h
+++ b/include/asm-mips/smtc.h
@@ -6,6 +6,7 @@
6 */ 6 */
7 7
8#include <asm/mips_mt.h> 8#include <asm/mips_mt.h>
9#include <asm/smtc_ipi.h>
9 10
10/* 11/*
11 * System-wide SMTC status information 12 * System-wide SMTC status information
@@ -38,14 +39,15 @@ struct mm_struct;
38struct task_struct; 39struct task_struct;
39 40
40void smtc_get_new_mmu_context(struct mm_struct *mm, unsigned long cpu); 41void smtc_get_new_mmu_context(struct mm_struct *mm, unsigned long cpu);
41 42void self_ipi(struct smtc_ipi *);
42void smtc_flush_tlb_asid(unsigned long asid); 43void smtc_flush_tlb_asid(unsigned long asid);
43extern int mipsmt_build_cpu_map(int startslot); 44extern int smtc_build_cpu_map(int startslot);
44extern void mipsmt_prepare_cpus(void); 45extern void smtc_prepare_cpus(int cpus);
45extern void smtc_smp_finish(void); 46extern void smtc_smp_finish(void);
46extern void smtc_boot_secondary(int cpu, struct task_struct *t); 47extern void smtc_boot_secondary(int cpu, struct task_struct *t);
47extern void smtc_cpus_done(void); 48extern void smtc_cpus_done(void);
48 49
50
49/* 51/*
50 * Sharing the TLB between multiple VPEs means that the 52 * Sharing the TLB between multiple VPEs means that the
51 * "random" index selection function is not allowed to 53 * "random" index selection function is not allowed to
diff --git a/include/asm-mips/stackframe.h b/include/asm-mips/stackframe.h
index 051e1af0bb9..4c37c4e5f72 100644
--- a/include/asm-mips/stackframe.h
+++ b/include/asm-mips/stackframe.h
@@ -297,14 +297,31 @@
297#ifdef CONFIG_MIPS_MT_SMTC 297#ifdef CONFIG_MIPS_MT_SMTC
298 .set mips32r2 298 .set mips32r2
299 /* 299 /*
300 * This may not really be necessary if ints are already 300 * We need to make sure the read-modify-write
301 * inhibited here. 301 * of Status below isn't perturbed by an interrupt
302 * or cross-TC access, so we need to do at least a DMT,
303 * protected by an interrupt-inhibit. But setting IXMT
304 * also creates a few-cycle window where an IPI could
305 * be queued and not be detected before potentially
306 * returning to a WAIT or user-mode loop. It must be
307 * replayed.
308 *
309 * We're in the middle of a context switch, and
310 * we can't dispatch it directly without trashing
311 * some registers, so we'll try to detect this unlikely
312 * case and program a software interrupt in the VPE,
313 * as would be done for a cross-VPE IPI. To accomodate
314 * the handling of that case, we're doing a DVPE instead
315 * of just a DMT here to protect against other threads.
316 * This is a lot of cruft to cover a tiny window.
317 * If you can find a better design, implement it!
318 *
302 */ 319 */
303 mfc0 v0, CP0_TCSTATUS 320 mfc0 v0, CP0_TCSTATUS
304 ori v0, TCSTATUS_IXMT 321 ori v0, TCSTATUS_IXMT
305 mtc0 v0, CP0_TCSTATUS 322 mtc0 v0, CP0_TCSTATUS
306 _ehb 323 _ehb
307 DMT 5 # dmt a1 324 DVPE 5 # dvpe a1
308 jal mips_ihb 325 jal mips_ihb
309#endif /* CONFIG_MIPS_MT_SMTC */ 326#endif /* CONFIG_MIPS_MT_SMTC */
310 mfc0 a0, CP0_STATUS 327 mfc0 a0, CP0_STATUS
@@ -325,17 +342,50 @@
325 */ 342 */
326 LONG_L v1, PT_TCSTATUS(sp) 343 LONG_L v1, PT_TCSTATUS(sp)
327 _ehb 344 _ehb
328 mfc0 v0, CP0_TCSTATUS 345 mfc0 a0, CP0_TCSTATUS
329 andi v1, TCSTATUS_IXMT 346 andi v1, TCSTATUS_IXMT
330 /* We know that TCStatua.IXMT should be set from above */ 347 bnez v1, 0f
331 xori v0, v0, TCSTATUS_IXMT 348
332 or v0, v0, v1 349/*
333 mtc0 v0, CP0_TCSTATUS 350 * We'd like to detect any IPIs queued in the tiny window
334 _ehb 351 * above and request an software interrupt to service them
335 andi a1, a1, VPECONTROL_TE 352 * when we ERET.
353 *
354 * Computing the offset into the IPIQ array of the executing
355 * TC's IPI queue in-line would be tedious. We use part of
356 * the TCContext register to hold 16 bits of offset that we
357 * can add in-line to find the queue head.
358 */
359 mfc0 v0, CP0_TCCONTEXT
360 la a2, IPIQ
361 srl v0, v0, 16
362 addu a2, a2, v0
363 LONG_L v0, 0(a2)
364 beqz v0, 0f
365/*
366 * If we have a queue, provoke dispatch within the VPE by setting C_SW1
367 */
368 mfc0 v0, CP0_CAUSE
369 ori v0, v0, C_SW1
370 mtc0 v0, CP0_CAUSE
3710:
372 /*
373 * This test should really never branch but
374 * let's be prudent here. Having atomized
375 * the shared register modifications, we can
376 * now EVPE, and must do so before interrupts
377 * are potentially re-enabled.
378 */
379 andi a1, a1, MVPCONTROL_EVP
336 beqz a1, 1f 380 beqz a1, 1f
337 emt 381 evpe
3381: 3821:
383 /* We know that TCStatua.IXMT should be set from above */
384 xori a0, a0, TCSTATUS_IXMT
385 or a0, a0, v1
386 mtc0 a0, CP0_TCSTATUS
387 _ehb
388
339 .set mips0 389 .set mips0
340#endif /* CONFIG_MIPS_MT_SMTC */ 390#endif /* CONFIG_MIPS_MT_SMTC */
341 LONG_L v1, PT_EPC(sp) 391 LONG_L v1, PT_EPC(sp)
diff --git a/include/asm-mips/unistd.h b/include/asm-mips/unistd.h
index 4964c82f85f..a73e1531e15 100644
--- a/include/asm-mips/unistd.h
+++ b/include/asm-mips/unistd.h
@@ -344,16 +344,22 @@
344#define __NR_timerfd_create (__NR_Linux + 321) 344#define __NR_timerfd_create (__NR_Linux + 321)
345#define __NR_timerfd_gettime (__NR_Linux + 322) 345#define __NR_timerfd_gettime (__NR_Linux + 322)
346#define __NR_timerfd_settime (__NR_Linux + 323) 346#define __NR_timerfd_settime (__NR_Linux + 323)
347#define __NR_signalfd4 (__NR_Linux + 324)
348#define __NR_eventfd2 (__NR_Linux + 325)
349#define __NR_epoll_create1 (__NR_Linux + 326)
350#define __NR_dup3 (__NR_Linux + 327)
351#define __NR_pipe2 (__NR_Linux + 328)
352#define __NR_inotify_init1 (__NR_Linux + 329)
347 353
348/* 354/*
349 * Offset of the last Linux o32 flavoured syscall 355 * Offset of the last Linux o32 flavoured syscall
350 */ 356 */
351#define __NR_Linux_syscalls 323 357#define __NR_Linux_syscalls 329
352 358
353#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ 359#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
354 360
355#define __NR_O32_Linux 4000 361#define __NR_O32_Linux 4000
356#define __NR_O32_Linux_syscalls 323 362#define __NR_O32_Linux_syscalls 329
357 363
358#if _MIPS_SIM == _MIPS_SIM_ABI64 364#if _MIPS_SIM == _MIPS_SIM_ABI64
359 365
@@ -644,16 +650,22 @@
644#define __NR_timerfd_create (__NR_Linux + 280) 650#define __NR_timerfd_create (__NR_Linux + 280)
645#define __NR_timerfd_gettime (__NR_Linux + 281) 651#define __NR_timerfd_gettime (__NR_Linux + 281)
646#define __NR_timerfd_settime (__NR_Linux + 282) 652#define __NR_timerfd_settime (__NR_Linux + 282)
653#define __NR_signalfd4 (__NR_Linux + 283)
654#define __NR_eventfd2 (__NR_Linux + 284)
655#define __NR_epoll_create1 (__NR_Linux + 285)
656#define __NR_dup3 (__NR_Linux + 286)
657#define __NR_pipe2 (__NR_Linux + 287)
658#define __NR_inotify_init1 (__NR_Linux + 288)
647 659
648/* 660/*
649 * Offset of the last Linux 64-bit flavoured syscall 661 * Offset of the last Linux 64-bit flavoured syscall
650 */ 662 */
651#define __NR_Linux_syscalls 282 663#define __NR_Linux_syscalls 288
652 664
653#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ 665#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
654 666
655#define __NR_64_Linux 5000 667#define __NR_64_Linux 5000
656#define __NR_64_Linux_syscalls 282 668#define __NR_64_Linux_syscalls 288
657 669
658#if _MIPS_SIM == _MIPS_SIM_NABI32 670#if _MIPS_SIM == _MIPS_SIM_NABI32
659 671
@@ -948,16 +960,22 @@
948#define __NR_timerfd_create (__NR_Linux + 284) 960#define __NR_timerfd_create (__NR_Linux + 284)
949#define __NR_timerfd_gettime (__NR_Linux + 285) 961#define __NR_timerfd_gettime (__NR_Linux + 285)
950#define __NR_timerfd_settime (__NR_Linux + 286) 962#define __NR_timerfd_settime (__NR_Linux + 286)
963#define __NR_signalfd4 (__NR_Linux + 287)
964#define __NR_eventfd2 (__NR_Linux + 288)
965#define __NR_epoll_create1 (__NR_Linux + 289)
966#define __NR_dup3 (__NR_Linux + 290)
967#define __NR_pipe2 (__NR_Linux + 291)
968#define __NR_inotify_init1 (__NR_Linux + 292)
951 969
952/* 970/*
953 * Offset of the last N32 flavoured syscall 971 * Offset of the last N32 flavoured syscall
954 */ 972 */
955#define __NR_Linux_syscalls 286 973#define __NR_Linux_syscalls 292
956 974
957#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ 975#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
958 976
959#define __NR_N32_Linux 6000 977#define __NR_N32_Linux 6000
960#define __NR_N32_Linux_syscalls 286 978#define __NR_N32_Linux_syscalls 292
961 979
962#ifdef __KERNEL__ 980#ifdef __KERNEL__
963 981
diff --git a/include/asm-parisc/sections.h b/include/asm-parisc/sections.h
index fdd43ec42ec..9d13c3507ad 100644
--- a/include/asm-parisc/sections.h
+++ b/include/asm-parisc/sections.h
@@ -4,4 +4,9 @@
4/* nothing to see, move along */ 4/* nothing to see, move along */
5#include <asm-generic/sections.h> 5#include <asm-generic/sections.h>
6 6
7#ifdef CONFIG_64BIT
8#undef dereference_function_descriptor
9void *dereference_function_descriptor(void *);
10#endif
11
7#endif 12#endif
diff --git a/include/asm-x86/a.out-core.h b/include/asm-x86/a.out-core.h
index 714207a1c38..f5705761a37 100644
--- a/include/asm-x86/a.out-core.h
+++ b/include/asm-x86/a.out-core.h
@@ -9,8 +9,8 @@
9 * 2 of the Licence, or (at your option) any later version. 9 * 2 of the Licence, or (at your option) any later version.
10 */ 10 */
11 11
12#ifndef _ASM_A_OUT_CORE_H 12#ifndef ASM_X86__A_OUT_CORE_H
13#define _ASM_A_OUT_CORE_H 13#define ASM_X86__A_OUT_CORE_H
14 14
15#ifdef __KERNEL__ 15#ifdef __KERNEL__
16#ifdef CONFIG_X86_32 16#ifdef CONFIG_X86_32
@@ -70,4 +70,4 @@ static inline void aout_dump_thread(struct pt_regs *regs, struct user *dump)
70 70
71#endif /* CONFIG_X86_32 */ 71#endif /* CONFIG_X86_32 */
72#endif /* __KERNEL__ */ 72#endif /* __KERNEL__ */
73#endif /* _ASM_A_OUT_CORE_H */ 73#endif /* ASM_X86__A_OUT_CORE_H */
diff --git a/include/asm-x86/a.out.h b/include/asm-x86/a.out.h
index 4684f97a5bb..0948748bc69 100644
--- a/include/asm-x86/a.out.h
+++ b/include/asm-x86/a.out.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_A_OUT_H 1#ifndef ASM_X86__A_OUT_H
2#define _ASM_X86_A_OUT_H 2#define ASM_X86__A_OUT_H
3 3
4struct exec 4struct exec
5{ 5{
@@ -17,4 +17,4 @@ struct exec
17#define N_DRSIZE(a) ((a).a_drsize) 17#define N_DRSIZE(a) ((a).a_drsize)
18#define N_SYMSIZE(a) ((a).a_syms) 18#define N_SYMSIZE(a) ((a).a_syms)
19 19
20#endif /* _ASM_X86_A_OUT_H */ 20#endif /* ASM_X86__A_OUT_H */
diff --git a/include/asm-x86/acpi.h b/include/asm-x86/acpi.h
index 635d764dc13..392e17336be 100644
--- a/include/asm-x86/acpi.h
+++ b/include/asm-x86/acpi.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_ACPI_H 1#ifndef ASM_X86__ACPI_H
2#define _ASM_X86_ACPI_H 2#define ASM_X86__ACPI_H
3 3
4/* 4/*
5 * Copyright (C) 2001 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com> 5 * Copyright (C) 2001 Paul Diefenbaugh <paul.s.diefenbaugh@intel.com>
@@ -140,6 +140,8 @@ static inline unsigned int acpi_processor_cstate_check(unsigned int max_cstate)
140 boot_cpu_data.x86_model <= 0x05 && 140 boot_cpu_data.x86_model <= 0x05 &&
141 boot_cpu_data.x86_mask < 0x0A) 141 boot_cpu_data.x86_mask < 0x0A)
142 return 1; 142 return 1;
143 else if (boot_cpu_has(X86_FEATURE_AMDC1E))
144 return 1;
143 else 145 else
144 return max_cstate; 146 return max_cstate;
145} 147}
@@ -173,4 +175,4 @@ static inline void acpi_fake_nodes(const struct bootnode *fake_nodes,
173 175
174#define acpi_unlazy_tlb(x) leave_mm(x) 176#define acpi_unlazy_tlb(x) leave_mm(x)
175 177
176#endif /*__X86_ASM_ACPI_H*/ 178#endif /* ASM_X86__ACPI_H */
diff --git a/include/asm-x86/agp.h b/include/asm-x86/agp.h
index e4004a9f6a9..3617fd4fcdf 100644
--- a/include/asm-x86/agp.h
+++ b/include/asm-x86/agp.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_AGP_H 1#ifndef ASM_X86__AGP_H
2#define _ASM_X86_AGP_H 2#define ASM_X86__AGP_H
3 3
4#include <asm/pgtable.h> 4#include <asm/pgtable.h>
5#include <asm/cacheflush.h> 5#include <asm/cacheflush.h>
@@ -32,4 +32,4 @@
32#define free_gatt_pages(table, order) \ 32#define free_gatt_pages(table, order) \
33 free_pages((unsigned long)(table), (order)) 33 free_pages((unsigned long)(table), (order))
34 34
35#endif 35#endif /* ASM_X86__AGP_H */
diff --git a/include/asm-x86/alternative.h b/include/asm-x86/alternative.h
index f6aa18eadf7..22d3c9862bf 100644
--- a/include/asm-x86/alternative.h
+++ b/include/asm-x86/alternative.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_ALTERNATIVE_H 1#ifndef ASM_X86__ALTERNATIVE_H
2#define _ASM_X86_ALTERNATIVE_H 2#define ASM_X86__ALTERNATIVE_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/stddef.h> 5#include <linux/stddef.h>
@@ -180,4 +180,4 @@ extern void add_nops(void *insns, unsigned int len);
180extern void *text_poke(void *addr, const void *opcode, size_t len); 180extern void *text_poke(void *addr, const void *opcode, size_t len);
181extern void *text_poke_early(void *addr, const void *opcode, size_t len); 181extern void *text_poke_early(void *addr, const void *opcode, size_t len);
182 182
183#endif /* _ASM_X86_ALTERNATIVE_H */ 183#endif /* ASM_X86__ALTERNATIVE_H */
diff --git a/include/asm-x86/amd_iommu.h b/include/asm-x86/amd_iommu.h
index 30a12049353..783f43e5805 100644
--- a/include/asm-x86/amd_iommu.h
+++ b/include/asm-x86/amd_iommu.h
@@ -17,8 +17,8 @@
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 18 */
19 19
20#ifndef _ASM_X86_AMD_IOMMU_H 20#ifndef ASM_X86__AMD_IOMMU_H
21#define _ASM_X86_AMD_IOMMU_H 21#define ASM_X86__AMD_IOMMU_H
22 22
23#ifdef CONFIG_AMD_IOMMU 23#ifdef CONFIG_AMD_IOMMU
24extern int amd_iommu_init(void); 24extern int amd_iommu_init(void);
@@ -29,4 +29,4 @@ static inline int amd_iommu_init(void) { return -ENODEV; }
29static inline void amd_iommu_detect(void) { } 29static inline void amd_iommu_detect(void) { }
30#endif 30#endif
31 31
32#endif 32#endif /* ASM_X86__AMD_IOMMU_H */
diff --git a/include/asm-x86/amd_iommu_types.h b/include/asm-x86/amd_iommu_types.h
index dcc81206739..1ffa4e53c98 100644
--- a/include/asm-x86/amd_iommu_types.h
+++ b/include/asm-x86/amd_iommu_types.h
@@ -17,8 +17,8 @@
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 18 */
19 19
20#ifndef __AMD_IOMMU_TYPES_H__ 20#ifndef ASM_X86__AMD_IOMMU_TYPES_H
21#define __AMD_IOMMU_TYPES_H__ 21#define ASM_X86__AMD_IOMMU_TYPES_H
22 22
23#include <linux/types.h> 23#include <linux/types.h>
24#include <linux/list.h> 24#include <linux/list.h>
@@ -341,4 +341,4 @@ static inline u16 calc_devid(u8 bus, u8 devfn)
341 return (((u16)bus) << 8) | devfn; 341 return (((u16)bus) << 8) | devfn;
342} 342}
343 343
344#endif 344#endif /* ASM_X86__AMD_IOMMU_TYPES_H */
diff --git a/include/asm-x86/apic.h b/include/asm-x86/apic.h
index 133c998161c..65590c9aecd 100644
--- a/include/asm-x86/apic.h
+++ b/include/asm-x86/apic.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_APIC_H 1#ifndef ASM_X86__APIC_H
2#define _ASM_X86_APIC_H 2#define ASM_X86__APIC_H
3 3
4#include <linux/pm.h> 4#include <linux/pm.h>
5#include <linux/delay.h> 5#include <linux/delay.h>
@@ -54,6 +54,11 @@ extern int disable_apic;
54#endif 54#endif
55 55
56extern int is_vsmp_box(void); 56extern int is_vsmp_box(void);
57extern void xapic_wait_icr_idle(void);
58extern u32 safe_xapic_wait_icr_idle(void);
59extern u64 xapic_icr_read(void);
60extern void xapic_icr_write(u32, u32);
61extern int setup_profiling_timer(unsigned int);
57 62
58static inline void native_apic_write(unsigned long reg, u32 v) 63static inline void native_apic_write(unsigned long reg, u32 v)
59{ 64{
@@ -76,9 +81,7 @@ extern int get_physical_broadcast(void);
76static inline void ack_APIC_irq(void) 81static inline void ack_APIC_irq(void)
77{ 82{
78 /* 83 /*
79 * ack_APIC_irq() actually gets compiled as a single instruction: 84 * ack_APIC_irq() actually gets compiled as a single instruction
80 * - a single rmw on Pentium/82489DX
81 * - a single write on P6+ cores (CONFIG_X86_GOOD_APIC)
82 * ... yummie. 85 * ... yummie.
83 */ 86 */
84 87
@@ -128,4 +131,4 @@ static inline void init_apic_mappings(void) { }
128 131
129#endif /* !CONFIG_X86_LOCAL_APIC */ 132#endif /* !CONFIG_X86_LOCAL_APIC */
130 133
131#endif /* __ASM_APIC_H */ 134#endif /* ASM_X86__APIC_H */
diff --git a/include/asm-x86/apicdef.h b/include/asm-x86/apicdef.h
index 6b9008c7873..c40687da20f 100644
--- a/include/asm-x86/apicdef.h
+++ b/include/asm-x86/apicdef.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_APICDEF_H 1#ifndef ASM_X86__APICDEF_H
2#define _ASM_X86_APICDEF_H 2#define ASM_X86__APICDEF_H
3 3
4/* 4/*
5 * Constants for various Intel APICs. (local APIC, IOAPIC, etc.) 5 * Constants for various Intel APICs. (local APIC, IOAPIC, etc.)
@@ -411,4 +411,4 @@ struct local_apic {
411#else 411#else
412 #define BAD_APICID 0xFFFFu 412 #define BAD_APICID 0xFFFFu
413#endif 413#endif
414#endif 414#endif /* ASM_X86__APICDEF_H */
diff --git a/include/asm-x86/arch_hooks.h b/include/asm-x86/arch_hooks.h
index 8411750ceb6..72adc3a109c 100644
--- a/include/asm-x86/arch_hooks.h
+++ b/include/asm-x86/arch_hooks.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_ARCH_HOOKS_H 1#ifndef ASM_X86__ARCH_HOOKS_H
2#define _ASM_ARCH_HOOKS_H 2#define ASM_X86__ARCH_HOOKS_H
3 3
4#include <linux/interrupt.h> 4#include <linux/interrupt.h>
5 5
@@ -25,4 +25,4 @@ extern void pre_time_init_hook(void);
25extern void time_init_hook(void); 25extern void time_init_hook(void);
26extern void mca_nmi_hook(void); 26extern void mca_nmi_hook(void);
27 27
28#endif 28#endif /* ASM_X86__ARCH_HOOKS_H */
diff --git a/include/asm-x86/asm.h b/include/asm-x86/asm.h
index 97220321f39..e1355f44d7c 100644
--- a/include/asm-x86/asm.h
+++ b/include/asm-x86/asm.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_ASM_H 1#ifndef ASM_X86__ASM_H
2#define _ASM_X86_ASM_H 2#define ASM_X86__ASM_H
3 3
4#ifdef __ASSEMBLY__ 4#ifdef __ASSEMBLY__
5# define __ASM_FORM(x) x 5# define __ASM_FORM(x) x
@@ -20,17 +20,22 @@
20 20
21#define _ASM_PTR __ASM_SEL(.long, .quad) 21#define _ASM_PTR __ASM_SEL(.long, .quad)
22#define _ASM_ALIGN __ASM_SEL(.balign 4, .balign 8) 22#define _ASM_ALIGN __ASM_SEL(.balign 4, .balign 8)
23#define _ASM_MOV_UL __ASM_SIZE(mov)
24 23
24#define _ASM_MOV __ASM_SIZE(mov)
25#define _ASM_INC __ASM_SIZE(inc) 25#define _ASM_INC __ASM_SIZE(inc)
26#define _ASM_DEC __ASM_SIZE(dec) 26#define _ASM_DEC __ASM_SIZE(dec)
27#define _ASM_ADD __ASM_SIZE(add) 27#define _ASM_ADD __ASM_SIZE(add)
28#define _ASM_SUB __ASM_SIZE(sub) 28#define _ASM_SUB __ASM_SIZE(sub)
29#define _ASM_XADD __ASM_SIZE(xadd) 29#define _ASM_XADD __ASM_SIZE(xadd)
30
30#define _ASM_AX __ASM_REG(ax) 31#define _ASM_AX __ASM_REG(ax)
31#define _ASM_BX __ASM_REG(bx) 32#define _ASM_BX __ASM_REG(bx)
32#define _ASM_CX __ASM_REG(cx) 33#define _ASM_CX __ASM_REG(cx)
33#define _ASM_DX __ASM_REG(dx) 34#define _ASM_DX __ASM_REG(dx)
35#define _ASM_SP __ASM_REG(sp)
36#define _ASM_BP __ASM_REG(bp)
37#define _ASM_SI __ASM_REG(si)
38#define _ASM_DI __ASM_REG(di)
34 39
35/* Exception table entry */ 40/* Exception table entry */
36# define _ASM_EXTABLE(from,to) \ 41# define _ASM_EXTABLE(from,to) \
@@ -39,4 +44,4 @@
39 _ASM_PTR #from "," #to "\n" \ 44 _ASM_PTR #from "," #to "\n" \
40 " .previous\n" 45 " .previous\n"
41 46
42#endif /* _ASM_X86_ASM_H */ 47#endif /* ASM_X86__ASM_H */
diff --git a/include/asm-x86/atomic_32.h b/include/asm-x86/atomic_32.h
index 21a4825148c..14d3f0beb88 100644
--- a/include/asm-x86/atomic_32.h
+++ b/include/asm-x86/atomic_32.h
@@ -1,5 +1,5 @@
1#ifndef __ARCH_I386_ATOMIC__ 1#ifndef ASM_X86__ATOMIC_32_H
2#define __ARCH_I386_ATOMIC__ 2#define ASM_X86__ATOMIC_32_H
3 3
4#include <linux/compiler.h> 4#include <linux/compiler.h>
5#include <asm/processor.h> 5#include <asm/processor.h>
@@ -256,4 +256,4 @@ static inline int atomic_add_unless(atomic_t *v, int a, int u)
256#define smp_mb__after_atomic_inc() barrier() 256#define smp_mb__after_atomic_inc() barrier()
257 257
258#include <asm-generic/atomic.h> 258#include <asm-generic/atomic.h>
259#endif 259#endif /* ASM_X86__ATOMIC_32_H */
diff --git a/include/asm-x86/atomic_64.h b/include/asm-x86/atomic_64.h
index 91c7d03e65b..2cb218c4a35 100644
--- a/include/asm-x86/atomic_64.h
+++ b/include/asm-x86/atomic_64.h
@@ -1,5 +1,5 @@
1#ifndef __ARCH_X86_64_ATOMIC__ 1#ifndef ASM_X86__ATOMIC_64_H
2#define __ARCH_X86_64_ATOMIC__ 2#define ASM_X86__ATOMIC_64_H
3 3
4#include <asm/alternative.h> 4#include <asm/alternative.h>
5#include <asm/cmpxchg.h> 5#include <asm/cmpxchg.h>
@@ -470,4 +470,4 @@ static inline void atomic_or_long(unsigned long *v1, unsigned long v2)
470#define smp_mb__after_atomic_inc() barrier() 470#define smp_mb__after_atomic_inc() barrier()
471 471
472#include <asm-generic/atomic.h> 472#include <asm-generic/atomic.h>
473#endif 473#endif /* ASM_X86__ATOMIC_64_H */
diff --git a/include/asm-x86/auxvec.h b/include/asm-x86/auxvec.h
index 87f5e6d5a02..12c7cac7420 100644
--- a/include/asm-x86/auxvec.h
+++ b/include/asm-x86/auxvec.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_AUXVEC_H 1#ifndef ASM_X86__AUXVEC_H
2#define _ASM_X86_AUXVEC_H 2#define ASM_X86__AUXVEC_H
3/* 3/*
4 * Architecture-neutral AT_ values in 0-17, leave some room 4 * Architecture-neutral AT_ values in 0-17, leave some room
5 * for more of them, start the x86-specific ones at 32. 5 * for more of them, start the x86-specific ones at 32.
@@ -9,4 +9,4 @@
9#endif 9#endif
10#define AT_SYSINFO_EHDR 33 10#define AT_SYSINFO_EHDR 33
11 11
12#endif 12#endif /* ASM_X86__AUXVEC_H */
diff --git a/include/asm-x86/bios_ebda.h b/include/asm-x86/bios_ebda.h
index 0033e50c13b..ec42ed87459 100644
--- a/include/asm-x86/bios_ebda.h
+++ b/include/asm-x86/bios_ebda.h
@@ -1,5 +1,5 @@
1#ifndef _MACH_BIOS_EBDA_H 1#ifndef ASM_X86__BIOS_EBDA_H
2#define _MACH_BIOS_EBDA_H 2#define ASM_X86__BIOS_EBDA_H
3 3
4#include <asm/io.h> 4#include <asm/io.h>
5 5
@@ -16,4 +16,4 @@ static inline unsigned int get_bios_ebda(void)
16 16
17void reserve_ebda_region(void); 17void reserve_ebda_region(void);
18 18
19#endif /* _MACH_BIOS_EBDA_H */ 19#endif /* ASM_X86__BIOS_EBDA_H */
diff --git a/include/asm-x86/bitops.h b/include/asm-x86/bitops.h
index cfb2b64f76e..61989b93b47 100644
--- a/include/asm-x86/bitops.h
+++ b/include/asm-x86/bitops.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_BITOPS_H 1#ifndef ASM_X86__BITOPS_H
2#define _ASM_X86_BITOPS_H 2#define ASM_X86__BITOPS_H
3 3
4/* 4/*
5 * Copyright 1992, Linus Torvalds. 5 * Copyright 1992, Linus Torvalds.
@@ -458,4 +458,4 @@ static inline void set_bit_string(unsigned long *bitmap,
458#include <asm-generic/bitops/minix.h> 458#include <asm-generic/bitops/minix.h>
459 459
460#endif /* __KERNEL__ */ 460#endif /* __KERNEL__ */
461#endif /* _ASM_X86_BITOPS_H */ 461#endif /* ASM_X86__BITOPS_H */
diff --git a/include/asm-x86/boot.h b/include/asm-x86/boot.h
index 2faed7ecb09..825de5dc867 100644
--- a/include/asm-x86/boot.h
+++ b/include/asm-x86/boot.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_BOOT_H 1#ifndef ASM_X86__BOOT_H
2#define _ASM_BOOT_H 2#define ASM_X86__BOOT_H
3 3
4/* Don't touch these, unless you really know what you're doing. */ 4/* Don't touch these, unless you really know what you're doing. */
5#define DEF_INITSEG 0x9000 5#define DEF_INITSEG 0x9000
@@ -25,4 +25,4 @@
25#define BOOT_STACK_SIZE 0x1000 25#define BOOT_STACK_SIZE 0x1000
26#endif 26#endif
27 27
28#endif /* _ASM_BOOT_H */ 28#endif /* ASM_X86__BOOT_H */
diff --git a/include/asm-x86/bootparam.h b/include/asm-x86/bootparam.h
index ae22bdf0ab1..ccf027e2d97 100644
--- a/include/asm-x86/bootparam.h
+++ b/include/asm-x86/bootparam.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_BOOTPARAM_H 1#ifndef ASM_X86__BOOTPARAM_H
2#define _ASM_BOOTPARAM_H 2#define ASM_X86__BOOTPARAM_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <linux/screen_info.h> 5#include <linux/screen_info.h>
@@ -108,4 +108,4 @@ struct boot_params {
108 __u8 _pad9[276]; /* 0xeec */ 108 __u8 _pad9[276]; /* 0xeec */
109} __attribute__((packed)); 109} __attribute__((packed));
110 110
111#endif /* _ASM_BOOTPARAM_H */ 111#endif /* ASM_X86__BOOTPARAM_H */
diff --git a/include/asm-x86/bug.h b/include/asm-x86/bug.h
index b69aa64b82a..91ad43a54c4 100644
--- a/include/asm-x86/bug.h
+++ b/include/asm-x86/bug.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_BUG_H 1#ifndef ASM_X86__BUG_H
2#define _ASM_X86_BUG_H 2#define ASM_X86__BUG_H
3 3
4#ifdef CONFIG_BUG 4#ifdef CONFIG_BUG
5#define HAVE_ARCH_BUG 5#define HAVE_ARCH_BUG
@@ -36,4 +36,4 @@ do { \
36#endif /* !CONFIG_BUG */ 36#endif /* !CONFIG_BUG */
37 37
38#include <asm-generic/bug.h> 38#include <asm-generic/bug.h>
39#endif 39#endif /* ASM_X86__BUG_H */
diff --git a/include/asm-x86/bugs.h b/include/asm-x86/bugs.h
index 021cbdd5f25..4761c461d23 100644
--- a/include/asm-x86/bugs.h
+++ b/include/asm-x86/bugs.h
@@ -1,7 +1,7 @@
1#ifndef _ASM_X86_BUGS_H 1#ifndef ASM_X86__BUGS_H
2#define _ASM_X86_BUGS_H 2#define ASM_X86__BUGS_H
3 3
4extern void check_bugs(void); 4extern void check_bugs(void);
5int ppro_with_ram_bug(void); 5int ppro_with_ram_bug(void);
6 6
7#endif /* _ASM_X86_BUGS_H */ 7#endif /* ASM_X86__BUGS_H */
diff --git a/include/asm-x86/byteorder.h b/include/asm-x86/byteorder.h
index e02ae2d89ac..722f27d6810 100644
--- a/include/asm-x86/byteorder.h
+++ b/include/asm-x86/byteorder.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_BYTEORDER_H 1#ifndef ASM_X86__BYTEORDER_H
2#define _ASM_X86_BYTEORDER_H 2#define ASM_X86__BYTEORDER_H
3 3
4#include <asm/types.h> 4#include <asm/types.h>
5#include <linux/compiler.h> 5#include <linux/compiler.h>
@@ -78,4 +78,4 @@ static inline __attribute_const__ __u32 ___arch__swab32(__u32 x)
78 78
79#include <linux/byteorder/little_endian.h> 79#include <linux/byteorder/little_endian.h>
80 80
81#endif /* _ASM_X86_BYTEORDER_H */ 81#endif /* ASM_X86__BYTEORDER_H */
diff --git a/include/asm-x86/cache.h b/include/asm-x86/cache.h
index 1e0bac86f38..ea3f1cc06a9 100644
--- a/include/asm-x86/cache.h
+++ b/include/asm-x86/cache.h
@@ -1,5 +1,5 @@
1#ifndef _ARCH_X86_CACHE_H 1#ifndef ASM_X86__CACHE_H
2#define _ARCH_X86_CACHE_H 2#define ASM_X86__CACHE_H
3 3
4/* L1 cache line size */ 4/* L1 cache line size */
5#define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT) 5#define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
@@ -17,4 +17,4 @@
17#endif 17#endif
18#endif 18#endif
19 19
20#endif 20#endif /* ASM_X86__CACHE_H */
diff --git a/include/asm-x86/cacheflush.h b/include/asm-x86/cacheflush.h
index f4c0ab50d2c..59859cb28a3 100644
--- a/include/asm-x86/cacheflush.h
+++ b/include/asm-x86/cacheflush.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_CACHEFLUSH_H 1#ifndef ASM_X86__CACHEFLUSH_H
2#define _ASM_X86_CACHEFLUSH_H 2#define ASM_X86__CACHEFLUSH_H
3 3
4/* Keep includes the same across arches. */ 4/* Keep includes the same across arches. */
5#include <linux/mm.h> 5#include <linux/mm.h>
@@ -112,4 +112,4 @@ static inline int rodata_test(void)
112} 112}
113#endif 113#endif
114 114
115#endif 115#endif /* ASM_X86__CACHEFLUSH_H */
diff --git a/include/asm-x86/calgary.h b/include/asm-x86/calgary.h
index 67f60406e2d..933fd272f82 100644
--- a/include/asm-x86/calgary.h
+++ b/include/asm-x86/calgary.h
@@ -21,8 +21,8 @@
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 22 */
23 23
24#ifndef _ASM_X86_64_CALGARY_H 24#ifndef ASM_X86__CALGARY_H
25#define _ASM_X86_64_CALGARY_H 25#define ASM_X86__CALGARY_H
26 26
27#include <linux/spinlock.h> 27#include <linux/spinlock.h>
28#include <linux/device.h> 28#include <linux/device.h>
@@ -69,4 +69,4 @@ static inline int calgary_iommu_init(void) { return 1; }
69static inline void detect_calgary(void) { return; } 69static inline void detect_calgary(void) { return; }
70#endif 70#endif
71 71
72#endif /* _ASM_X86_64_CALGARY_H */ 72#endif /* ASM_X86__CALGARY_H */
diff --git a/include/asm-x86/checksum_32.h b/include/asm-x86/checksum_32.h
index 52bbb0d8c4c..d041e8cda22 100644
--- a/include/asm-x86/checksum_32.h
+++ b/include/asm-x86/checksum_32.h
@@ -1,5 +1,5 @@
1#ifndef _I386_CHECKSUM_H 1#ifndef ASM_X86__CHECKSUM_32_H
2#define _I386_CHECKSUM_H 2#define ASM_X86__CHECKSUM_32_H
3 3
4#include <linux/in6.h> 4#include <linux/in6.h>
5 5
@@ -186,4 +186,4 @@ static inline __wsum csum_and_copy_to_user(const void *src,
186 return (__force __wsum)-1; /* invalid checksum */ 186 return (__force __wsum)-1; /* invalid checksum */
187} 187}
188 188
189#endif 189#endif /* ASM_X86__CHECKSUM_32_H */
diff --git a/include/asm-x86/checksum_64.h b/include/asm-x86/checksum_64.h
index 8bd861cc526..110f403beb8 100644
--- a/include/asm-x86/checksum_64.h
+++ b/include/asm-x86/checksum_64.h
@@ -1,5 +1,5 @@
1#ifndef _X86_64_CHECKSUM_H 1#ifndef ASM_X86__CHECKSUM_64_H
2#define _X86_64_CHECKSUM_H 2#define ASM_X86__CHECKSUM_64_H
3 3
4/* 4/*
5 * Checksums for x86-64 5 * Checksums for x86-64
@@ -188,4 +188,4 @@ static inline unsigned add32_with_carry(unsigned a, unsigned b)
188 return a; 188 return a;
189} 189}
190 190
191#endif 191#endif /* ASM_X86__CHECKSUM_64_H */
diff --git a/include/asm-x86/cmpxchg_32.h b/include/asm-x86/cmpxchg_32.h
index bf5a69d1329..0622e45cdf7 100644
--- a/include/asm-x86/cmpxchg_32.h
+++ b/include/asm-x86/cmpxchg_32.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_CMPXCHG_H 1#ifndef ASM_X86__CMPXCHG_32_H
2#define __ASM_CMPXCHG_H 2#define ASM_X86__CMPXCHG_32_H
3 3
4#include <linux/bitops.h> /* for LOCK_PREFIX */ 4#include <linux/bitops.h> /* for LOCK_PREFIX */
5 5
@@ -341,4 +341,4 @@ extern unsigned long long cmpxchg_486_u64(volatile void *, u64, u64);
341 341
342#endif 342#endif
343 343
344#endif 344#endif /* ASM_X86__CMPXCHG_32_H */
diff --git a/include/asm-x86/cmpxchg_64.h b/include/asm-x86/cmpxchg_64.h
index 17463ccf816..63c1a5e61b9 100644
--- a/include/asm-x86/cmpxchg_64.h
+++ b/include/asm-x86/cmpxchg_64.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_CMPXCHG_H 1#ifndef ASM_X86__CMPXCHG_64_H
2#define __ASM_CMPXCHG_H 2#define ASM_X86__CMPXCHG_64_H
3 3
4#include <asm/alternative.h> /* Provides LOCK_PREFIX */ 4#include <asm/alternative.h> /* Provides LOCK_PREFIX */
5 5
@@ -182,4 +182,4 @@ static inline unsigned long __cmpxchg_local(volatile void *ptr,
182 cmpxchg_local((ptr), (o), (n)); \ 182 cmpxchg_local((ptr), (o), (n)); \
183}) 183})
184 184
185#endif 185#endif /* ASM_X86__CMPXCHG_64_H */
diff --git a/include/asm-x86/compat.h b/include/asm-x86/compat.h
index 1793ac317a3..6732b150949 100644
--- a/include/asm-x86/compat.h
+++ b/include/asm-x86/compat.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_64_COMPAT_H 1#ifndef ASM_X86__COMPAT_H
2#define _ASM_X86_64_COMPAT_H 2#define ASM_X86__COMPAT_H
3 3
4/* 4/*
5 * Architecture specific compatibility types 5 * Architecture specific compatibility types
@@ -215,4 +215,4 @@ static inline int is_compat_task(void)
215 return current_thread_info()->status & TS_COMPAT; 215 return current_thread_info()->status & TS_COMPAT;
216} 216}
217 217
218#endif /* _ASM_X86_64_COMPAT_H */ 218#endif /* ASM_X86__COMPAT_H */
diff --git a/include/asm-x86/cpu.h b/include/asm-x86/cpu.h
index 73f2ea84fd7..83a115083f0 100644
--- a/include/asm-x86/cpu.h
+++ b/include/asm-x86/cpu.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_I386_CPU_H_ 1#ifndef ASM_X86__CPU_H
2#define _ASM_I386_CPU_H_ 2#define ASM_X86__CPU_H
3 3
4#include <linux/device.h> 4#include <linux/device.h>
5#include <linux/cpu.h> 5#include <linux/cpu.h>
@@ -17,4 +17,4 @@ extern void arch_unregister_cpu(int);
17#endif 17#endif
18 18
19DECLARE_PER_CPU(int, cpu_state); 19DECLARE_PER_CPU(int, cpu_state);
20#endif /* _ASM_I386_CPU_H_ */ 20#endif /* ASM_X86__CPU_H */
diff --git a/include/asm-x86/cpufeature.h b/include/asm-x86/cpufeature.h
index 2f5a792b0ac..250fa0cb144 100644
--- a/include/asm-x86/cpufeature.h
+++ b/include/asm-x86/cpufeature.h
@@ -1,8 +1,8 @@
1/* 1/*
2 * Defines x86 CPU feature bits 2 * Defines x86 CPU feature bits
3 */ 3 */
4#ifndef _ASM_X86_CPUFEATURE_H 4#ifndef ASM_X86__CPUFEATURE_H
5#define _ASM_X86_CPUFEATURE_H 5#define ASM_X86__CPUFEATURE_H
6 6
7#include <asm/required-features.h> 7#include <asm/required-features.h>
8 8
@@ -72,14 +72,16 @@
72#define X86_FEATURE_UP (3*32+ 9) /* smp kernel running on up */ 72#define X86_FEATURE_UP (3*32+ 9) /* smp kernel running on up */
73#define X86_FEATURE_FXSAVE_LEAK (3*32+10) /* FXSAVE leaks FOP/FIP/FOP */ 73#define X86_FEATURE_FXSAVE_LEAK (3*32+10) /* FXSAVE leaks FOP/FIP/FOP */
74#define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Intel Architectural PerfMon */ 74#define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Intel Architectural PerfMon */
75#define X86_FEATURE_PEBS (3*32+12) /* Precise-Event Based Sampling */ 75#define X86_FEATURE_PEBS (3*32+12) /* Precise-Event Based Sampling */
76#define X86_FEATURE_BTS (3*32+13) /* Branch Trace Store */ 76#define X86_FEATURE_BTS (3*32+13) /* Branch Trace Store */
77#define X86_FEATURE_SYSCALL32 (3*32+14) /* syscall in ia32 userspace */ 77#define X86_FEATURE_SYSCALL32 (3*32+14) /* syscall in ia32 userspace */
78#define X86_FEATURE_SYSENTER32 (3*32+15) /* sysenter in ia32 userspace */ 78#define X86_FEATURE_SYSENTER32 (3*32+15) /* sysenter in ia32 userspace */
79#define X86_FEATURE_REP_GOOD (3*32+16) /* rep microcode works well on this CPU */ 79#define X86_FEATURE_REP_GOOD (3*32+16) /* rep microcode works well on this CPU */
80#define X86_FEATURE_MFENCE_RDTSC (3*32+17) /* Mfence synchronizes RDTSC */ 80#define X86_FEATURE_MFENCE_RDTSC (3*32+17) /* Mfence synchronizes RDTSC */
81#define X86_FEATURE_LFENCE_RDTSC (3*32+18) /* Lfence synchronizes RDTSC */ 81#define X86_FEATURE_LFENCE_RDTSC (3*32+18) /* Lfence synchronizes RDTSC */
82#define X86_FEATURE_11AP (3*32+19) /* Bad local APIC aka 11AP */ 82#define X86_FEATURE_11AP (3*32+19) /* Bad local APIC aka 11AP */
83#define X86_FEATURE_NOPL (3*32+20) /* The NOPL (0F 1F) instructions */
84#define X86_FEATURE_AMDC1E (3*32+21) /* AMD C1E detected */
83 85
84/* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */ 86/* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */
85#define X86_FEATURE_XMM3 (4*32+ 0) /* Streaming SIMD Extensions-3 */ 87#define X86_FEATURE_XMM3 (4*32+ 0) /* Streaming SIMD Extensions-3 */
@@ -91,6 +93,7 @@
91#define X86_FEATURE_CX16 (4*32+13) /* CMPXCHG16B */ 93#define X86_FEATURE_CX16 (4*32+13) /* CMPXCHG16B */
92#define X86_FEATURE_XTPR (4*32+14) /* Send Task Priority Messages */ 94#define X86_FEATURE_XTPR (4*32+14) /* Send Task Priority Messages */
93#define X86_FEATURE_DCA (4*32+18) /* Direct Cache Access */ 95#define X86_FEATURE_DCA (4*32+18) /* Direct Cache Access */
96#define X86_FEATURE_XMM4_2 (4*32+20) /* Streaming SIMD Extensions-4.2 */
94 97
95/* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */ 98/* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */
96#define X86_FEATURE_XSTORE (5*32+ 2) /* on-CPU RNG present (xstore insn) */ 99#define X86_FEATURE_XSTORE (5*32+ 2) /* on-CPU RNG present (xstore insn) */
@@ -189,6 +192,7 @@ extern const char * const x86_power_flags[32];
189#define cpu_has_gbpages boot_cpu_has(X86_FEATURE_GBPAGES) 192#define cpu_has_gbpages boot_cpu_has(X86_FEATURE_GBPAGES)
190#define cpu_has_arch_perfmon boot_cpu_has(X86_FEATURE_ARCH_PERFMON) 193#define cpu_has_arch_perfmon boot_cpu_has(X86_FEATURE_ARCH_PERFMON)
191#define cpu_has_pat boot_cpu_has(X86_FEATURE_PAT) 194#define cpu_has_pat boot_cpu_has(X86_FEATURE_PAT)
195#define cpu_has_xmm4_2 boot_cpu_has(X86_FEATURE_XMM4_2)
192 196
193#if defined(CONFIG_X86_INVLPG) || defined(CONFIG_X86_64) 197#if defined(CONFIG_X86_INVLPG) || defined(CONFIG_X86_64)
194# define cpu_has_invlpg 1 198# define cpu_has_invlpg 1
@@ -220,4 +224,4 @@ extern const char * const x86_power_flags[32];
220 224
221#endif /* defined(__KERNEL__) && !defined(__ASSEMBLY__) */ 225#endif /* defined(__KERNEL__) && !defined(__ASSEMBLY__) */
222 226
223#endif /* _ASM_X86_CPUFEATURE_H */ 227#endif /* ASM_X86__CPUFEATURE_H */
diff --git a/include/asm-x86/current.h b/include/asm-x86/current.h
index 7515c19d498..a863ead856f 100644
--- a/include/asm-x86/current.h
+++ b/include/asm-x86/current.h
@@ -1,5 +1,5 @@
1#ifndef _X86_CURRENT_H 1#ifndef ASM_X86__CURRENT_H
2#define _X86_CURRENT_H 2#define ASM_X86__CURRENT_H
3 3
4#ifdef CONFIG_X86_32 4#ifdef CONFIG_X86_32
5#include <linux/compiler.h> 5#include <linux/compiler.h>
@@ -36,4 +36,4 @@ static __always_inline struct task_struct *get_current(void)
36 36
37#define current get_current() 37#define current get_current()
38 38
39#endif /* X86_CURRENT_H */ 39#endif /* ASM_X86__CURRENT_H */
diff --git a/include/asm-x86/debugreg.h b/include/asm-x86/debugreg.h
index c6344d572b0..ecb6907c3ea 100644
--- a/include/asm-x86/debugreg.h
+++ b/include/asm-x86/debugreg.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_DEBUGREG_H 1#ifndef ASM_X86__DEBUGREG_H
2#define _ASM_X86_DEBUGREG_H 2#define ASM_X86__DEBUGREG_H
3 3
4 4
5/* Indicate the register numbers for a number of the specific 5/* Indicate the register numbers for a number of the specific
@@ -67,4 +67,4 @@
67#define DR_LOCAL_SLOWDOWN (0x100) /* Local slow the pipeline */ 67#define DR_LOCAL_SLOWDOWN (0x100) /* Local slow the pipeline */
68#define DR_GLOBAL_SLOWDOWN (0x200) /* Global slow the pipeline */ 68#define DR_GLOBAL_SLOWDOWN (0x200) /* Global slow the pipeline */
69 69
70#endif 70#endif /* ASM_X86__DEBUGREG_H */
diff --git a/include/asm-x86/delay.h b/include/asm-x86/delay.h
index 409a649204a..8a0da95b4fc 100644
--- a/include/asm-x86/delay.h
+++ b/include/asm-x86/delay.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_DELAY_H 1#ifndef ASM_X86__DELAY_H
2#define _ASM_X86_DELAY_H 2#define ASM_X86__DELAY_H
3 3
4/* 4/*
5 * Copyright (C) 1993 Linus Torvalds 5 * Copyright (C) 1993 Linus Torvalds
@@ -28,4 +28,4 @@ extern void __delay(unsigned long loops);
28 28
29void use_tsc_delay(void); 29void use_tsc_delay(void);
30 30
31#endif /* _ASM_X86_DELAY_H */ 31#endif /* ASM_X86__DELAY_H */
diff --git a/include/asm-x86/desc.h b/include/asm-x86/desc.h
index a44c4dc7059..b73fea54def 100644
--- a/include/asm-x86/desc.h
+++ b/include/asm-x86/desc.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_DESC_H_ 1#ifndef ASM_X86__DESC_H
2#define _ASM_DESC_H_ 2#define ASM_X86__DESC_H
3 3
4#ifndef __ASSEMBLY__ 4#ifndef __ASSEMBLY__
5#include <asm/desc_defs.h> 5#include <asm/desc_defs.h>
@@ -397,4 +397,4 @@ static inline void set_system_gate_ist(int n, void *addr, unsigned ist)
397 397
398#endif /* __ASSEMBLY__ */ 398#endif /* __ASSEMBLY__ */
399 399
400#endif 400#endif /* ASM_X86__DESC_H */
diff --git a/include/asm-x86/desc_defs.h b/include/asm-x86/desc_defs.h
index f7bacf357da..b881db664b4 100644
--- a/include/asm-x86/desc_defs.h
+++ b/include/asm-x86/desc_defs.h
@@ -1,6 +1,6 @@
1/* Written 2000 by Andi Kleen */ 1/* Written 2000 by Andi Kleen */
2#ifndef __ARCH_DESC_DEFS_H 2#ifndef ASM_X86__DESC_DEFS_H
3#define __ARCH_DESC_DEFS_H 3#define ASM_X86__DESC_DEFS_H
4 4
5/* 5/*
6 * Segment descriptor structure definitions, usable from both x86_64 and i386 6 * Segment descriptor structure definitions, usable from both x86_64 and i386
@@ -92,4 +92,4 @@ struct desc_ptr {
92 92
93#endif /* !__ASSEMBLY__ */ 93#endif /* !__ASSEMBLY__ */
94 94
95#endif 95#endif /* ASM_X86__DESC_DEFS_H */
diff --git a/include/asm-x86/device.h b/include/asm-x86/device.h
index 3c034f48fdb..1bece04c7d9 100644
--- a/include/asm-x86/device.h
+++ b/include/asm-x86/device.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_DEVICE_H 1#ifndef ASM_X86__DEVICE_H
2#define _ASM_X86_DEVICE_H 2#define ASM_X86__DEVICE_H
3 3
4struct dev_archdata { 4struct dev_archdata {
5#ifdef CONFIG_ACPI 5#ifdef CONFIG_ACPI
@@ -13,4 +13,4 @@ struct dma_mapping_ops *dma_ops;
13#endif 13#endif
14}; 14};
15 15
16#endif /* _ASM_X86_DEVICE_H */ 16#endif /* ASM_X86__DEVICE_H */
diff --git a/include/asm-x86/div64.h b/include/asm-x86/div64.h
index 9a2d644c08e..f9530f23f1d 100644
--- a/include/asm-x86/div64.h
+++ b/include/asm-x86/div64.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_DIV64_H 1#ifndef ASM_X86__DIV64_H
2#define _ASM_X86_DIV64_H 2#define ASM_X86__DIV64_H
3 3
4#ifdef CONFIG_X86_32 4#ifdef CONFIG_X86_32
5 5
@@ -57,4 +57,4 @@ static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
57# include <asm-generic/div64.h> 57# include <asm-generic/div64.h>
58#endif /* CONFIG_X86_32 */ 58#endif /* CONFIG_X86_32 */
59 59
60#endif /* _ASM_X86_DIV64_H */ 60#endif /* ASM_X86__DIV64_H */
diff --git a/include/asm-x86/dma-mapping.h b/include/asm-x86/dma-mapping.h
index ad9cd6d49bf..5d200e78bd8 100644
--- a/include/asm-x86/dma-mapping.h
+++ b/include/asm-x86/dma-mapping.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_DMA_MAPPING_H_ 1#ifndef ASM_X86__DMA_MAPPING_H
2#define _ASM_DMA_MAPPING_H_ 2#define ASM_X86__DMA_MAPPING_H
3 3
4/* 4/*
5 * IOMMU interface. See Documentation/DMA-mapping.txt and DMA-API.txt for 5 * IOMMU interface. See Documentation/DMA-mapping.txt and DMA-API.txt for
@@ -250,4 +250,4 @@ static inline int dma_get_cache_alignment(void)
250#define dma_is_consistent(d, h) (1) 250#define dma_is_consistent(d, h) (1)
251 251
252#include <asm-generic/dma-coherent.h> 252#include <asm-generic/dma-coherent.h>
253#endif 253#endif /* ASM_X86__DMA_MAPPING_H */
diff --git a/include/asm-x86/dma.h b/include/asm-x86/dma.h
index ca1098a7e58..c9f7a4eec55 100644
--- a/include/asm-x86/dma.h
+++ b/include/asm-x86/dma.h
@@ -5,8 +5,8 @@
5 * and John Boyd, Nov. 1992. 5 * and John Boyd, Nov. 1992.
6 */ 6 */
7 7
8#ifndef _ASM_X86_DMA_H 8#ifndef ASM_X86__DMA_H
9#define _ASM_X86_DMA_H 9#define ASM_X86__DMA_H
10 10
11#include <linux/spinlock.h> /* And spinlocks */ 11#include <linux/spinlock.h> /* And spinlocks */
12#include <asm/io.h> /* need byte IO */ 12#include <asm/io.h> /* need byte IO */
@@ -315,4 +315,4 @@ extern int isa_dma_bridge_buggy;
315#define isa_dma_bridge_buggy (0) 315#define isa_dma_bridge_buggy (0)
316#endif 316#endif
317 317
318#endif /* _ASM_X86_DMA_H */ 318#endif /* ASM_X86__DMA_H */
diff --git a/include/asm-x86/dmi.h b/include/asm-x86/dmi.h
index 58a86571fe0..1cff6fe81fa 100644
--- a/include/asm-x86/dmi.h
+++ b/include/asm-x86/dmi.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_DMI_H 1#ifndef ASM_X86__DMI_H
2#define _ASM_X86_DMI_H 2#define ASM_X86__DMI_H
3 3
4#include <asm/io.h> 4#include <asm/io.h>
5 5
@@ -23,4 +23,4 @@ static inline void *dmi_alloc(unsigned len)
23#define dmi_ioremap early_ioremap 23#define dmi_ioremap early_ioremap
24#define dmi_iounmap early_iounmap 24#define dmi_iounmap early_iounmap
25 25
26#endif 26#endif /* ASM_X86__DMI_H */
diff --git a/include/asm-x86/ds.h b/include/asm-x86/ds.h
index 7881368142f..c3c953a45b2 100644
--- a/include/asm-x86/ds.h
+++ b/include/asm-x86/ds.h
@@ -2,71 +2,237 @@
2 * Debug Store (DS) support 2 * Debug Store (DS) support
3 * 3 *
4 * This provides a low-level interface to the hardware's Debug Store 4 * This provides a low-level interface to the hardware's Debug Store
5 * feature that is used for last branch recording (LBR) and 5 * feature that is used for branch trace store (BTS) and
6 * precise-event based sampling (PEBS). 6 * precise-event based sampling (PEBS).
7 * 7 *
8 * Different architectures use a different DS layout/pointer size. 8 * It manages:
9 * The below functions therefore work on a void*. 9 * - per-thread and per-cpu allocation of BTS and PEBS
10 * - buffer memory allocation (optional)
11 * - buffer overflow handling
12 * - buffer access
10 * 13 *
14 * It assumes:
15 * - get_task_struct on all parameter tasks
16 * - current is allowed to trace parameter tasks
11 * 17 *
12 * Since there is no user for PEBS, yet, only LBR (or branch
13 * trace store, BTS) is supported.
14 * 18 *
15 * 19 * Copyright (C) 2007-2008 Intel Corporation.
16 * Copyright (C) 2007 Intel Corporation. 20 * Markus Metzger <markus.t.metzger@intel.com>, 2007-2008
17 * Markus Metzger <markus.t.metzger@intel.com>, Dec 2007
18 */ 21 */
19 22
20#ifndef _ASM_X86_DS_H 23#ifndef ASM_X86__DS_H
21#define _ASM_X86_DS_H 24#define ASM_X86__DS_H
25
26#ifdef CONFIG_X86_DS
22 27
23#include <linux/types.h> 28#include <linux/types.h>
24#include <linux/init.h> 29#include <linux/init.h>
25 30
26struct cpuinfo_x86;
27 31
32struct task_struct;
28 33
29/* a branch trace record entry 34/*
35 * Request BTS or PEBS
36 *
37 * Due to alignement constraints, the actual buffer may be slightly
38 * smaller than the requested or provided buffer.
30 * 39 *
31 * In order to unify the interface between various processor versions, 40 * Returns 0 on success; -Eerrno otherwise
32 * we use the below data structure for all processors. 41 *
42 * task: the task to request recording for;
43 * NULL for per-cpu recording on the current cpu
44 * base: the base pointer for the (non-pageable) buffer;
45 * NULL if buffer allocation requested
46 * size: the size of the requested or provided buffer
47 * ovfl: pointer to a function to be called on buffer overflow;
48 * NULL if cyclic buffer requested
33 */ 49 */
34enum bts_qualifier { 50typedef void (*ds_ovfl_callback_t)(struct task_struct *);
35 BTS_INVALID = 0, 51extern int ds_request_bts(struct task_struct *task, void *base, size_t size,
36 BTS_BRANCH, 52 ds_ovfl_callback_t ovfl);
37 BTS_TASK_ARRIVES, 53extern int ds_request_pebs(struct task_struct *task, void *base, size_t size,
38 BTS_TASK_DEPARTS 54 ds_ovfl_callback_t ovfl);
39};
40 55
41struct bts_struct { 56/*
42 u64 qualifier; 57 * Release BTS or PEBS resources
43 union { 58 *
44 /* BTS_BRANCH */ 59 * Frees buffers allocated on ds_request.
45 struct { 60 *
46 u64 from_ip; 61 * Returns 0 on success; -Eerrno otherwise
47 u64 to_ip; 62 *
48 } lbr; 63 * task: the task to release resources for;
49 /* BTS_TASK_ARRIVES or 64 * NULL to release resources for the current cpu
50 BTS_TASK_DEPARTS */ 65 */
51 u64 jiffies; 66extern int ds_release_bts(struct task_struct *task);
52 } variant; 67extern int ds_release_pebs(struct task_struct *task);
68
69/*
70 * Return the (array) index of the write pointer.
71 * (assuming an array of BTS/PEBS records)
72 *
73 * Returns -Eerrno on error
74 *
75 * task: the task to access;
76 * NULL to access the current cpu
77 * pos (out): if not NULL, will hold the result
78 */
79extern int ds_get_bts_index(struct task_struct *task, size_t *pos);
80extern int ds_get_pebs_index(struct task_struct *task, size_t *pos);
81
82/*
83 * Return the (array) index one record beyond the end of the array.
84 * (assuming an array of BTS/PEBS records)
85 *
86 * Returns -Eerrno on error
87 *
88 * task: the task to access;
89 * NULL to access the current cpu
90 * pos (out): if not NULL, will hold the result
91 */
92extern int ds_get_bts_end(struct task_struct *task, size_t *pos);
93extern int ds_get_pebs_end(struct task_struct *task, size_t *pos);
94
95/*
96 * Provide a pointer to the BTS/PEBS record at parameter index.
97 * (assuming an array of BTS/PEBS records)
98 *
99 * The pointer points directly into the buffer. The user is
100 * responsible for copying the record.
101 *
102 * Returns the size of a single record on success; -Eerrno on error
103 *
104 * task: the task to access;
105 * NULL to access the current cpu
106 * index: the index of the requested record
107 * record (out): pointer to the requested record
108 */
109extern int ds_access_bts(struct task_struct *task,
110 size_t index, const void **record);
111extern int ds_access_pebs(struct task_struct *task,
112 size_t index, const void **record);
113
114/*
115 * Write one or more BTS/PEBS records at the write pointer index and
116 * advance the write pointer.
117 *
118 * If size is not a multiple of the record size, trailing bytes are
119 * zeroed out.
120 *
121 * May result in one or more overflow notifications.
122 *
123 * If called during overflow handling, that is, with index >=
124 * interrupt threshold, the write will wrap around.
125 *
126 * An overflow notification is given if and when the interrupt
127 * threshold is reached during or after the write.
128 *
129 * Returns the number of bytes written or -Eerrno.
130 *
131 * task: the task to access;
132 * NULL to access the current cpu
133 * buffer: the buffer to write
134 * size: the size of the buffer
135 */
136extern int ds_write_bts(struct task_struct *task,
137 const void *buffer, size_t size);
138extern int ds_write_pebs(struct task_struct *task,
139 const void *buffer, size_t size);
140
141/*
142 * Same as ds_write_bts/pebs, but omit ownership checks.
143 *
144 * This is needed to have some other task than the owner of the
145 * BTS/PEBS buffer or the parameter task itself write into the
146 * respective buffer.
147 */
148extern int ds_unchecked_write_bts(struct task_struct *task,
149 const void *buffer, size_t size);
150extern int ds_unchecked_write_pebs(struct task_struct *task,
151 const void *buffer, size_t size);
152
153/*
154 * Reset the write pointer of the BTS/PEBS buffer.
155 *
156 * Returns 0 on success; -Eerrno on error
157 *
158 * task: the task to access;
159 * NULL to access the current cpu
160 */
161extern int ds_reset_bts(struct task_struct *task);
162extern int ds_reset_pebs(struct task_struct *task);
163
164/*
165 * Clear the BTS/PEBS buffer and reset the write pointer.
166 * The entire buffer will be zeroed out.
167 *
168 * Returns 0 on success; -Eerrno on error
169 *
170 * task: the task to access;
171 * NULL to access the current cpu
172 */
173extern int ds_clear_bts(struct task_struct *task);
174extern int ds_clear_pebs(struct task_struct *task);
175
176/*
177 * Provide the PEBS counter reset value.
178 *
179 * Returns 0 on success; -Eerrno on error
180 *
181 * task: the task to access;
182 * NULL to access the current cpu
183 * value (out): the counter reset value
184 */
185extern int ds_get_pebs_reset(struct task_struct *task, u64 *value);
186
187/*
188 * Set the PEBS counter reset value.
189 *
190 * Returns 0 on success; -Eerrno on error
191 *
192 * task: the task to access;
193 * NULL to access the current cpu
194 * value: the new counter reset value
195 */
196extern int ds_set_pebs_reset(struct task_struct *task, u64 value);
197
198/*
199 * Initialization
200 */
201struct cpuinfo_x86;
202extern void __cpuinit ds_init_intel(struct cpuinfo_x86 *);
203
204
205
206/*
207 * The DS context - part of struct thread_struct.
208 */
209struct ds_context {
210 /* pointer to the DS configuration; goes into MSR_IA32_DS_AREA */
211 unsigned char *ds;
212 /* the owner of the BTS and PEBS configuration, respectively */
213 struct task_struct *owner[2];
214 /* buffer overflow notification function for BTS and PEBS */
215 ds_ovfl_callback_t callback[2];
216 /* the original buffer address */
217 void *buffer[2];
218 /* the number of allocated pages for on-request allocated buffers */
219 unsigned int pages[2];
220 /* use count */
221 unsigned long count;
222 /* a pointer to the context location inside the thread_struct
223 * or the per_cpu context array */
224 struct ds_context **this;
225 /* a pointer to the task owning this context, or NULL, if the
226 * context is owned by a cpu */
227 struct task_struct *task;
53}; 228};
54 229
55/* Overflow handling mechanisms */ 230/* called by exit_thread() to free leftover contexts */
56#define DS_O_SIGNAL 1 /* send overflow signal */ 231extern void ds_free(struct ds_context *context);
57#define DS_O_WRAP 2 /* wrap around */ 232
58 233#else /* CONFIG_X86_DS */
59extern int ds_allocate(void **, size_t); 234
60extern int ds_free(void **); 235#define ds_init_intel(config) do {} while (0)
61extern int ds_get_bts_size(void *); 236
62extern int ds_get_bts_end(void *); 237#endif /* CONFIG_X86_DS */
63extern int ds_get_bts_index(void *); 238#endif /* ASM_X86__DS_H */
64extern int ds_set_overflow(void *, int);
65extern int ds_get_overflow(void *);
66extern int ds_clear(void *);
67extern int ds_read_bts(void *, int, struct bts_struct *);
68extern int ds_write_bts(void *, const struct bts_struct *);
69extern unsigned long ds_debugctl_mask(void);
70extern void __cpuinit ds_init_intel(struct cpuinfo_x86 *c);
71
72#endif /* _ASM_X86_DS_H */
diff --git a/include/asm-x86/dwarf2.h b/include/asm-x86/dwarf2.h
index 738bb9fb3e5..21d1bc32ad7 100644
--- a/include/asm-x86/dwarf2.h
+++ b/include/asm-x86/dwarf2.h
@@ -1,5 +1,5 @@
1#ifndef _DWARF2_H 1#ifndef ASM_X86__DWARF2_H
2#define _DWARF2_H 2#define ASM_X86__DWARF2_H
3 3
4#ifndef __ASSEMBLY__ 4#ifndef __ASSEMBLY__
5#warning "asm/dwarf2.h should be only included in pure assembly files" 5#warning "asm/dwarf2.h should be only included in pure assembly files"
@@ -58,4 +58,4 @@
58 58
59#endif 59#endif
60 60
61#endif 61#endif /* ASM_X86__DWARF2_H */
diff --git a/include/asm-x86/e820.h b/include/asm-x86/e820.h
index 16a31e2c7c5..f52daf176bc 100644
--- a/include/asm-x86/e820.h
+++ b/include/asm-x86/e820.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_E820_H 1#ifndef ASM_X86__E820_H
2#define __ASM_E820_H 2#define ASM_X86__E820_H
3#define E820MAP 0x2d0 /* our map */ 3#define E820MAP 0x2d0 /* our map */
4#define E820MAX 128 /* number of entries in E820MAP */ 4#define E820MAX 128 /* number of entries in E820MAP */
5 5
@@ -64,6 +64,7 @@ struct e820map {
64extern struct e820map e820; 64extern struct e820map e820;
65extern struct e820map e820_saved; 65extern struct e820map e820_saved;
66 66
67extern unsigned long pci_mem_start;
67extern int e820_any_mapped(u64 start, u64 end, unsigned type); 68extern int e820_any_mapped(u64 start, u64 end, unsigned type);
68extern int e820_all_mapped(u64 start, u64 end, unsigned type); 69extern int e820_all_mapped(u64 start, u64 end, unsigned type);
69extern void e820_add_region(u64 start, u64 size, int type); 70extern void e820_add_region(u64 start, u64 size, int type);
@@ -140,4 +141,4 @@ extern char *memory_setup(void);
140#define HIGH_MEMORY (1024*1024) 141#define HIGH_MEMORY (1024*1024)
141#endif /* __KERNEL__ */ 142#endif /* __KERNEL__ */
142 143
143#endif /* __ASM_E820_H */ 144#endif /* ASM_X86__E820_H */
diff --git a/include/asm-x86/edac.h b/include/asm-x86/edac.h
index a8088f63a30..9493c5b27bb 100644
--- a/include/asm-x86/edac.h
+++ b/include/asm-x86/edac.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_EDAC_H 1#ifndef ASM_X86__EDAC_H
2#define _ASM_X86_EDAC_H 2#define ASM_X86__EDAC_H
3 3
4/* ECC atomic, DMA, SMP and interrupt safe scrub function */ 4/* ECC atomic, DMA, SMP and interrupt safe scrub function */
5 5
@@ -15,4 +15,4 @@ static inline void atomic_scrub(void *va, u32 size)
15 asm volatile("lock; addl $0, %0"::"m" (*virt_addr)); 15 asm volatile("lock; addl $0, %0"::"m" (*virt_addr));
16} 16}
17 17
18#endif 18#endif /* ASM_X86__EDAC_H */
diff --git a/include/asm-x86/efi.h b/include/asm-x86/efi.h
index d4f2b0abe92..ed2de22e870 100644
--- a/include/asm-x86/efi.h
+++ b/include/asm-x86/efi.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_EFI_H 1#ifndef ASM_X86__EFI_H
2#define _ASM_X86_EFI_H 2#define ASM_X86__EFI_H
3 3
4#ifdef CONFIG_X86_32 4#ifdef CONFIG_X86_32
5 5
@@ -94,4 +94,4 @@ extern void efi_reserve_early(void);
94extern void efi_call_phys_prelog(void); 94extern void efi_call_phys_prelog(void);
95extern void efi_call_phys_epilog(void); 95extern void efi_call_phys_epilog(void);
96 96
97#endif 97#endif /* ASM_X86__EFI_H */
diff --git a/include/asm-x86/elf.h b/include/asm-x86/elf.h
index 7be4733c793..5c4745bec90 100644
--- a/include/asm-x86/elf.h
+++ b/include/asm-x86/elf.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_ELF_H 1#ifndef ASM_X86__ELF_H
2#define _ASM_X86_ELF_H 2#define ASM_X86__ELF_H
3 3
4/* 4/*
5 * ELF register definitions.. 5 * ELF register definitions..
@@ -148,8 +148,9 @@ do { \
148 148
149static inline void start_ia32_thread(struct pt_regs *regs, u32 ip, u32 sp) 149static inline void start_ia32_thread(struct pt_regs *regs, u32 ip, u32 sp)
150{ 150{
151 asm volatile("movl %0,%%fs" :: "r" (0)); 151 loadsegment(fs, 0);
152 asm volatile("movl %0,%%es; movl %0,%%ds" : : "r" (__USER32_DS)); 152 loadsegment(ds, __USER32_DS);
153 loadsegment(es, __USER32_DS);
153 load_gs_index(0); 154 load_gs_index(0);
154 regs->ip = ip; 155 regs->ip = ip;
155 regs->sp = sp; 156 regs->sp = sp;
@@ -332,4 +333,4 @@ extern int syscall32_setup_pages(struct linux_binprm *, int exstack);
332extern unsigned long arch_randomize_brk(struct mm_struct *mm); 333extern unsigned long arch_randomize_brk(struct mm_struct *mm);
333#define arch_randomize_brk arch_randomize_brk 334#define arch_randomize_brk arch_randomize_brk
334 335
335#endif 336#endif /* ASM_X86__ELF_H */
diff --git a/include/asm-x86/emergency-restart.h b/include/asm-x86/emergency-restart.h
index 8e6aef19f8f..190d0d8b71e 100644
--- a/include/asm-x86/emergency-restart.h
+++ b/include/asm-x86/emergency-restart.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_EMERGENCY_RESTART_H 1#ifndef ASM_X86__EMERGENCY_RESTART_H
2#define _ASM_EMERGENCY_RESTART_H 2#define ASM_X86__EMERGENCY_RESTART_H
3 3
4enum reboot_type { 4enum reboot_type {
5 BOOT_TRIPLE = 't', 5 BOOT_TRIPLE = 't',
@@ -15,4 +15,4 @@ extern enum reboot_type reboot_type;
15 15
16extern void machine_emergency_restart(void); 16extern void machine_emergency_restart(void);
17 17
18#endif /* _ASM_EMERGENCY_RESTART_H */ 18#endif /* ASM_X86__EMERGENCY_RESTART_H */
diff --git a/include/asm-x86/fb.h b/include/asm-x86/fb.h
index 53018464aea..aca38dbd9a6 100644
--- a/include/asm-x86/fb.h
+++ b/include/asm-x86/fb.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_FB_H 1#ifndef ASM_X86__FB_H
2#define _ASM_X86_FB_H 2#define ASM_X86__FB_H
3 3
4#include <linux/fb.h> 4#include <linux/fb.h>
5#include <linux/fs.h> 5#include <linux/fs.h>
@@ -18,4 +18,4 @@ extern int fb_is_primary_device(struct fb_info *info);
18static inline int fb_is_primary_device(struct fb_info *info) { return 0; } 18static inline int fb_is_primary_device(struct fb_info *info) { return 0; }
19#endif 19#endif
20 20
21#endif /* _ASM_X86_FB_H */ 21#endif /* ASM_X86__FB_H */
diff --git a/include/asm-x86/fixmap.h b/include/asm-x86/fixmap.h
index 44d4f821734..78e33a1bc59 100644
--- a/include/asm-x86/fixmap.h
+++ b/include/asm-x86/fixmap.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_FIXMAP_H 1#ifndef ASM_X86__FIXMAP_H
2#define _ASM_FIXMAP_H 2#define ASM_X86__FIXMAP_H
3 3
4#ifdef CONFIG_X86_32 4#ifdef CONFIG_X86_32
5# include "fixmap_32.h" 5# include "fixmap_32.h"
@@ -65,4 +65,4 @@ static inline unsigned long virt_to_fix(const unsigned long vaddr)
65 BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START); 65 BUG_ON(vaddr >= FIXADDR_TOP || vaddr < FIXADDR_START);
66 return __virt_to_fix(vaddr); 66 return __virt_to_fix(vaddr);
67} 67}
68#endif 68#endif /* ASM_X86__FIXMAP_H */
diff --git a/include/asm-x86/fixmap_32.h b/include/asm-x86/fixmap_32.h
index f1ac2b2167d..784e3e75986 100644
--- a/include/asm-x86/fixmap_32.h
+++ b/include/asm-x86/fixmap_32.h
@@ -10,8 +10,8 @@
10 * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999 10 * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999
11 */ 11 */
12 12
13#ifndef _ASM_FIXMAP_32_H 13#ifndef ASM_X86__FIXMAP_32_H
14#define _ASM_FIXMAP_32_H 14#define ASM_X86__FIXMAP_32_H
15 15
16 16
17/* used by vmalloc.c, vsyscall.lds.S. 17/* used by vmalloc.c, vsyscall.lds.S.
@@ -120,4 +120,4 @@ extern void reserve_top_address(unsigned long reserve);
120#define FIXADDR_BOOT_START (FIXADDR_TOP - __FIXADDR_BOOT_SIZE) 120#define FIXADDR_BOOT_START (FIXADDR_TOP - __FIXADDR_BOOT_SIZE)
121 121
122#endif /* !__ASSEMBLY__ */ 122#endif /* !__ASSEMBLY__ */
123#endif 123#endif /* ASM_X86__FIXMAP_32_H */
diff --git a/include/asm-x86/fixmap_64.h b/include/asm-x86/fixmap_64.h
index 00f3d74a052..dafb24bc042 100644
--- a/include/asm-x86/fixmap_64.h
+++ b/include/asm-x86/fixmap_64.h
@@ -8,8 +8,8 @@
8 * Copyright (C) 1998 Ingo Molnar 8 * Copyright (C) 1998 Ingo Molnar
9 */ 9 */
10 10
11#ifndef _ASM_FIXMAP_64_H 11#ifndef ASM_X86__FIXMAP_64_H
12#define _ASM_FIXMAP_64_H 12#define ASM_X86__FIXMAP_64_H
13 13
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <asm/acpi.h> 15#include <asm/acpi.h>
@@ -80,4 +80,4 @@ enum fixed_addresses {
80#define FIXADDR_USER_START ((unsigned long)VSYSCALL32_VSYSCALL) 80#define FIXADDR_USER_START ((unsigned long)VSYSCALL32_VSYSCALL)
81#define FIXADDR_USER_END (FIXADDR_USER_START + PAGE_SIZE) 81#define FIXADDR_USER_END (FIXADDR_USER_START + PAGE_SIZE)
82 82
83#endif 83#endif /* ASM_X86__FIXMAP_64_H */
diff --git a/include/asm-x86/floppy.h b/include/asm-x86/floppy.h
index dbe82a5c5ea..7d83a3a83e3 100644
--- a/include/asm-x86/floppy.h
+++ b/include/asm-x86/floppy.h
@@ -7,8 +7,8 @@
7 * 7 *
8 * Copyright (C) 1995 8 * Copyright (C) 1995
9 */ 9 */
10#ifndef _ASM_X86_FLOPPY_H 10#ifndef ASM_X86__FLOPPY_H
11#define _ASM_X86_FLOPPY_H 11#define ASM_X86__FLOPPY_H
12 12
13#include <linux/vmalloc.h> 13#include <linux/vmalloc.h>
14 14
@@ -278,4 +278,4 @@ static int FDC2 = -1;
278 278
279#define EXTRA_FLOPPY_PARAMS 279#define EXTRA_FLOPPY_PARAMS
280 280
281#endif /* _ASM_X86_FLOPPY_H */ 281#endif /* ASM_X86__FLOPPY_H */
diff --git a/include/asm-x86/ftrace.h b/include/asm-x86/ftrace.h
index 5c68b32ee1c..be0e004ad14 100644
--- a/include/asm-x86/ftrace.h
+++ b/include/asm-x86/ftrace.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_FTRACE 1#ifndef ASM_X86__FTRACE_H
2#define _ASM_X86_FTRACE 2#define ASM_X86__FTRACE_H
3 3
4#ifdef CONFIG_FTRACE 4#ifdef CONFIG_FTRACE
5#define MCOUNT_ADDR ((long)(mcount)) 5#define MCOUNT_ADDR ((long)(mcount))
@@ -11,4 +11,4 @@ extern void mcount(void);
11 11
12#endif /* CONFIG_FTRACE */ 12#endif /* CONFIG_FTRACE */
13 13
14#endif /* _ASM_X86_FTRACE */ 14#endif /* ASM_X86__FTRACE_H */
diff --git a/include/asm-x86/futex.h b/include/asm-x86/futex.h
index e7a76b37b33..06b924ef6fa 100644
--- a/include/asm-x86/futex.h
+++ b/include/asm-x86/futex.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_FUTEX_H 1#ifndef ASM_X86__FUTEX_H
2#define _ASM_X86_FUTEX_H 2#define ASM_X86__FUTEX_H
3 3
4#ifdef __KERNEL__ 4#ifdef __KERNEL__
5 5
@@ -25,7 +25,7 @@
25 asm volatile("1:\tmovl %2, %0\n" \ 25 asm volatile("1:\tmovl %2, %0\n" \
26 "\tmovl\t%0, %3\n" \ 26 "\tmovl\t%0, %3\n" \
27 "\t" insn "\n" \ 27 "\t" insn "\n" \
28 "2:\tlock; cmpxchgl %3, %2\n" \ 28 "2:\t" LOCK_PREFIX "cmpxchgl %3, %2\n" \
29 "\tjnz\t1b\n" \ 29 "\tjnz\t1b\n" \
30 "3:\t.section .fixup,\"ax\"\n" \ 30 "3:\t.section .fixup,\"ax\"\n" \
31 "4:\tmov\t%5, %1\n" \ 31 "4:\tmov\t%5, %1\n" \
@@ -64,7 +64,7 @@ static inline int futex_atomic_op_inuser(int encoded_op, int __user *uaddr)
64 __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg); 64 __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg);
65 break; 65 break;
66 case FUTEX_OP_ADD: 66 case FUTEX_OP_ADD:
67 __futex_atomic_op1("lock; xaddl %0, %2", ret, oldval, 67 __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, oldval,
68 uaddr, oparg); 68 uaddr, oparg);
69 break; 69 break;
70 case FUTEX_OP_OR: 70 case FUTEX_OP_OR:
@@ -122,7 +122,7 @@ static inline int futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval,
122 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) 122 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
123 return -EFAULT; 123 return -EFAULT;
124 124
125 asm volatile("1:\tlock; cmpxchgl %3, %1\n" 125 asm volatile("1:\t" LOCK_PREFIX "cmpxchgl %3, %1\n"
126 "2:\t.section .fixup, \"ax\"\n" 126 "2:\t.section .fixup, \"ax\"\n"
127 "3:\tmov %2, %0\n" 127 "3:\tmov %2, %0\n"
128 "\tjmp 2b\n" 128 "\tjmp 2b\n"
@@ -137,4 +137,4 @@ static inline int futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval,
137} 137}
138 138
139#endif 139#endif
140#endif 140#endif /* ASM_X86__FUTEX_H */
diff --git a/include/asm-x86/gart.h b/include/asm-x86/gart.h
index 3f62a83887f..baa54faba89 100644
--- a/include/asm-x86/gart.h
+++ b/include/asm-x86/gart.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X8664_GART_H 1#ifndef ASM_X86__GART_H
2#define _ASM_X8664_GART_H 1 2#define ASM_X86__GART_H
3 3
4#include <asm/e820.h> 4#include <asm/e820.h>
5 5
@@ -52,15 +52,15 @@ static inline int aperture_valid(u64 aper_base, u32 aper_size, u32 min_size)
52 return 0; 52 return 0;
53 53
54 if (aper_base + aper_size > 0x100000000ULL) { 54 if (aper_base + aper_size > 0x100000000ULL) {
55 printk(KERN_ERR "Aperture beyond 4GB. Ignoring.\n"); 55 printk(KERN_INFO "Aperture beyond 4GB. Ignoring.\n");
56 return 0; 56 return 0;
57 } 57 }
58 if (e820_any_mapped(aper_base, aper_base + aper_size, E820_RAM)) { 58 if (e820_any_mapped(aper_base, aper_base + aper_size, E820_RAM)) {
59 printk(KERN_ERR "Aperture pointing to e820 RAM. Ignoring.\n"); 59 printk(KERN_INFO "Aperture pointing to e820 RAM. Ignoring.\n");
60 return 0; 60 return 0;
61 } 61 }
62 if (aper_size < min_size) { 62 if (aper_size < min_size) {
63 printk(KERN_ERR "Aperture too small (%d MB) than (%d MB)\n", 63 printk(KERN_INFO "Aperture too small (%d MB) than (%d MB)\n",
64 aper_size>>20, min_size>>20); 64 aper_size>>20, min_size>>20);
65 return 0; 65 return 0;
66 } 66 }
@@ -68,4 +68,4 @@ static inline int aperture_valid(u64 aper_base, u32 aper_size, u32 min_size)
68 return 1; 68 return 1;
69} 69}
70 70
71#endif 71#endif /* ASM_X86__GART_H */
diff --git a/include/asm-x86/genapic_32.h b/include/asm-x86/genapic_32.h
index b02ea6e17de..34280f02766 100644
--- a/include/asm-x86/genapic_32.h
+++ b/include/asm-x86/genapic_32.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_GENAPIC_H 1#ifndef ASM_X86__GENAPIC_32_H
2#define _ASM_GENAPIC_H 1 2#define ASM_X86__GENAPIC_32_H
3 3
4#include <asm/mpspec.h> 4#include <asm/mpspec.h>
5 5
@@ -118,6 +118,7 @@ enum uv_system_type {UV_NONE, UV_LEGACY_APIC, UV_X2APIC, UV_NON_UNIQUE_APIC};
118#define get_uv_system_type() UV_NONE 118#define get_uv_system_type() UV_NONE
119#define is_uv_system() 0 119#define is_uv_system() 0
120#define uv_wakeup_secondary(a, b) 1 120#define uv_wakeup_secondary(a, b) 1
121#define uv_system_init() do {} while (0)
121 122
122 123
123#endif 124#endif /* ASM_X86__GENAPIC_32_H */
diff --git a/include/asm-x86/genapic_64.h b/include/asm-x86/genapic_64.h
index 0f8504627c4..25097a8cc5e 100644
--- a/include/asm-x86/genapic_64.h
+++ b/include/asm-x86/genapic_64.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_GENAPIC_H 1#ifndef ASM_X86__GENAPIC_64_H
2#define _ASM_GENAPIC_H 1 2#define ASM_X86__GENAPIC_64_H
3 3
4/* 4/*
5 * Copyright 2004 James Cleverdon, IBM. 5 * Copyright 2004 James Cleverdon, IBM.
@@ -42,8 +42,9 @@ extern int is_uv_system(void);
42extern struct genapic apic_x2apic_uv_x; 42extern struct genapic apic_x2apic_uv_x;
43DECLARE_PER_CPU(int, x2apic_extra_bits); 43DECLARE_PER_CPU(int, x2apic_extra_bits);
44extern void uv_cpu_init(void); 44extern void uv_cpu_init(void);
45extern void uv_system_init(void);
45extern int uv_wakeup_secondary(int phys_apicid, unsigned int start_rip); 46extern int uv_wakeup_secondary(int phys_apicid, unsigned int start_rip);
46 47
47extern void setup_apic_routing(void); 48extern void setup_apic_routing(void);
48 49
49#endif 50#endif /* ASM_X86__GENAPIC_64_H */
diff --git a/include/asm-x86/geode.h b/include/asm-x86/geode.h
index 2c1cda0b8a8..3f3444be263 100644
--- a/include/asm-x86/geode.h
+++ b/include/asm-x86/geode.h
@@ -7,8 +7,8 @@
7 * as published by the Free Software Foundation. 7 * as published by the Free Software Foundation.
8 */ 8 */
9 9
10#ifndef _ASM_GEODE_H_ 10#ifndef ASM_X86__GEODE_H
11#define _ASM_GEODE_H_ 11#define ASM_X86__GEODE_H
12 12
13#include <asm/processor.h> 13#include <asm/processor.h>
14#include <linux/io.h> 14#include <linux/io.h>
@@ -250,4 +250,4 @@ extern int __init mfgpt_timer_setup(void);
250static inline int mfgpt_timer_setup(void) { return 0; } 250static inline int mfgpt_timer_setup(void) { return 0; }
251#endif 251#endif
252 252
253#endif 253#endif /* ASM_X86__GEODE_H */
diff --git a/include/asm-x86/gpio.h b/include/asm-x86/gpio.h
index c4c91b37c10..497fb980d96 100644
--- a/include/asm-x86/gpio.h
+++ b/include/asm-x86/gpio.h
@@ -53,4 +53,4 @@ static inline int irq_to_gpio(unsigned int irq)
53 53
54#endif /* CONFIG_GPIOLIB */ 54#endif /* CONFIG_GPIOLIB */
55 55
56#endif /* _ASM_I386_GPIO_H */ 56#endif /* ASM_X86__GPIO_H */
diff --git a/include/asm-x86/hardirq_32.h b/include/asm-x86/hardirq_32.h
index 4f85f0f4b56..700fe230d91 100644
--- a/include/asm-x86/hardirq_32.h
+++ b/include/asm-x86/hardirq_32.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_HARDIRQ_H 1#ifndef ASM_X86__HARDIRQ_32_H
2#define __ASM_HARDIRQ_H 2#define ASM_X86__HARDIRQ_32_H
3 3
4#include <linux/threads.h> 4#include <linux/threads.h>
5#include <linux/irq.h> 5#include <linux/irq.h>
@@ -25,4 +25,4 @@ DECLARE_PER_CPU(irq_cpustat_t, irq_stat);
25void ack_bad_irq(unsigned int irq); 25void ack_bad_irq(unsigned int irq);
26#include <linux/irq_cpustat.h> 26#include <linux/irq_cpustat.h>
27 27
28#endif /* __ASM_HARDIRQ_H */ 28#endif /* ASM_X86__HARDIRQ_32_H */
diff --git a/include/asm-x86/hardirq_64.h b/include/asm-x86/hardirq_64.h
index 95d5e090ed8..f8bd2919a8c 100644
--- a/include/asm-x86/hardirq_64.h
+++ b/include/asm-x86/hardirq_64.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_HARDIRQ_H 1#ifndef ASM_X86__HARDIRQ_64_H
2#define __ASM_HARDIRQ_H 2#define ASM_X86__HARDIRQ_64_H
3 3
4#include <linux/threads.h> 4#include <linux/threads.h>
5#include <linux/irq.h> 5#include <linux/irq.h>
@@ -20,4 +20,4 @@
20 20
21extern void ack_bad_irq(unsigned int irq); 21extern void ack_bad_irq(unsigned int irq);
22 22
23#endif /* __ASM_HARDIRQ_H */ 23#endif /* ASM_X86__HARDIRQ_64_H */
diff --git a/include/asm-x86/highmem.h b/include/asm-x86/highmem.h
index 4514b16cc72..bc3f6a28031 100644
--- a/include/asm-x86/highmem.h
+++ b/include/asm-x86/highmem.h
@@ -15,8 +15,8 @@
15 * Copyright (C) 1999 Ingo Molnar <mingo@redhat.com> 15 * Copyright (C) 1999 Ingo Molnar <mingo@redhat.com>
16 */ 16 */
17 17
18#ifndef _ASM_HIGHMEM_H 18#ifndef ASM_X86__HIGHMEM_H
19#define _ASM_HIGHMEM_H 19#define ASM_X86__HIGHMEM_H
20 20
21#ifdef __KERNEL__ 21#ifdef __KERNEL__
22 22
@@ -79,4 +79,4 @@ extern void add_highpages_with_active_regions(int nid, unsigned long start_pfn,
79 79
80#endif /* __KERNEL__ */ 80#endif /* __KERNEL__ */
81 81
82#endif /* _ASM_HIGHMEM_H */ 82#endif /* ASM_X86__HIGHMEM_H */
diff --git a/include/asm-x86/hpet.h b/include/asm-x86/hpet.h
index 82f1ac641bd..cbbbb6d4dd3 100644
--- a/include/asm-x86/hpet.h
+++ b/include/asm-x86/hpet.h
@@ -1,5 +1,5 @@
1#ifndef ASM_X86_HPET_H 1#ifndef ASM_X86__HPET_H
2#define ASM_X86_HPET_H 2#define ASM_X86__HPET_H
3 3
4#ifdef CONFIG_HPET_TIMER 4#ifdef CONFIG_HPET_TIMER
5 5
@@ -90,4 +90,4 @@ static inline int is_hpet_enabled(void) { return 0; }
90#define hpet_readl(a) 0 90#define hpet_readl(a) 0
91 91
92#endif 92#endif
93#endif /* ASM_X86_HPET_H */ 93#endif /* ASM_X86__HPET_H */
diff --git a/include/asm-x86/hugetlb.h b/include/asm-x86/hugetlb.h
index 439a9acc132..0b7ec5dc088 100644
--- a/include/asm-x86/hugetlb.h
+++ b/include/asm-x86/hugetlb.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_HUGETLB_H 1#ifndef ASM_X86__HUGETLB_H
2#define _ASM_X86_HUGETLB_H 2#define ASM_X86__HUGETLB_H
3 3
4#include <asm/page.h> 4#include <asm/page.h>
5 5
@@ -90,4 +90,4 @@ static inline void arch_release_hugepage(struct page *page)
90{ 90{
91} 91}
92 92
93#endif /* _ASM_X86_HUGETLB_H */ 93#endif /* ASM_X86__HUGETLB_H */
diff --git a/include/asm-x86/hw_irq.h b/include/asm-x86/hw_irq.h
index edd0b95f14d..65997b15d56 100644
--- a/include/asm-x86/hw_irq.h
+++ b/include/asm-x86/hw_irq.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_HW_IRQ_H 1#ifndef ASM_X86__HW_IRQ_H
2#define _ASM_HW_IRQ_H 2#define ASM_X86__HW_IRQ_H
3 3
4/* 4/*
5 * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar 5 * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar
@@ -93,6 +93,26 @@ extern asmlinkage void qic_reschedule_interrupt(void);
93extern asmlinkage void qic_enable_irq_interrupt(void); 93extern asmlinkage void qic_enable_irq_interrupt(void);
94extern asmlinkage void qic_call_function_interrupt(void); 94extern asmlinkage void qic_call_function_interrupt(void);
95 95
96/* SMP */
97extern void smp_apic_timer_interrupt(struct pt_regs *);
98#ifdef CONFIG_X86_32
99extern void smp_spurious_interrupt(struct pt_regs *);
100extern void smp_error_interrupt(struct pt_regs *);
101#else
102extern asmlinkage void smp_spurious_interrupt(void);
103extern asmlinkage void smp_error_interrupt(void);
104#endif
105#ifdef CONFIG_X86_SMP
106extern void smp_reschedule_interrupt(struct pt_regs *);
107extern void smp_call_function_interrupt(struct pt_regs *);
108extern void smp_call_function_single_interrupt(struct pt_regs *);
109#ifdef CONFIG_X86_32
110extern void smp_invalidate_interrupt(struct pt_regs *);
111#else
112extern asmlinkage void smp_invalidate_interrupt(struct pt_regs *);
113#endif
114#endif
115
96#ifdef CONFIG_X86_32 116#ifdef CONFIG_X86_32
97extern void (*const interrupt[NR_IRQS])(void); 117extern void (*const interrupt[NR_IRQS])(void);
98#else 118#else
@@ -112,4 +132,4 @@ static inline void __setup_vector_irq(int cpu) {}
112 132
113#endif /* !ASSEMBLY_ */ 133#endif /* !ASSEMBLY_ */
114 134
115#endif 135#endif /* ASM_X86__HW_IRQ_H */
diff --git a/include/asm-x86/hypertransport.h b/include/asm-x86/hypertransport.h
index d2bbd238b3e..cc011a3bc1c 100644
--- a/include/asm-x86/hypertransport.h
+++ b/include/asm-x86/hypertransport.h
@@ -1,5 +1,5 @@
1#ifndef ASM_HYPERTRANSPORT_H 1#ifndef ASM_X86__HYPERTRANSPORT_H
2#define ASM_HYPERTRANSPORT_H 2#define ASM_X86__HYPERTRANSPORT_H
3 3
4/* 4/*
5 * Constants for x86 Hypertransport Interrupts. 5 * Constants for x86 Hypertransport Interrupts.
@@ -42,4 +42,4 @@
42#define HT_IRQ_HIGH_DEST_ID(v) \ 42#define HT_IRQ_HIGH_DEST_ID(v) \
43 ((((v) >> 8) << HT_IRQ_HIGH_DEST_ID_SHIFT) & HT_IRQ_HIGH_DEST_ID_MASK) 43 ((((v) >> 8) << HT_IRQ_HIGH_DEST_ID_SHIFT) & HT_IRQ_HIGH_DEST_ID_MASK)
44 44
45#endif /* ASM_HYPERTRANSPORT_H */ 45#endif /* ASM_X86__HYPERTRANSPORT_H */
diff --git a/include/asm-x86/i387.h b/include/asm-x86/i387.h
index 56d00e31aec..1ecdc3ed96e 100644
--- a/include/asm-x86/i387.h
+++ b/include/asm-x86/i387.h
@@ -7,8 +7,8 @@
7 * x86-64 work by Andi Kleen 2002 7 * x86-64 work by Andi Kleen 2002
8 */ 8 */
9 9
10#ifndef _ASM_X86_I387_H 10#ifndef ASM_X86__I387_H
11#define _ASM_X86_I387_H 11#define ASM_X86__I387_H
12 12
13#include <linux/sched.h> 13#include <linux/sched.h>
14#include <linux/kernel_stat.h> 14#include <linux/kernel_stat.h>
@@ -25,6 +25,7 @@ extern void mxcsr_feature_mask_init(void);
25extern int init_fpu(struct task_struct *child); 25extern int init_fpu(struct task_struct *child);
26extern asmlinkage void math_state_restore(void); 26extern asmlinkage void math_state_restore(void);
27extern void init_thread_xstate(void); 27extern void init_thread_xstate(void);
28extern int dump_fpu(struct pt_regs *, struct user_i387_struct *);
28 29
29extern user_regset_active_fn fpregs_active, xfpregs_active; 30extern user_regset_active_fn fpregs_active, xfpregs_active;
30extern user_regset_get_fn fpregs_get, xfpregs_get, fpregs_soft_get; 31extern user_regset_get_fn fpregs_get, xfpregs_get, fpregs_soft_get;
@@ -336,4 +337,4 @@ static inline unsigned short get_fpu_mxcsr(struct task_struct *tsk)
336 } 337 }
337} 338}
338 339
339#endif /* _ASM_X86_I387_H */ 340#endif /* ASM_X86__I387_H */
diff --git a/include/asm-x86/i8253.h b/include/asm-x86/i8253.h
index b51c0487fc4..15a5b530044 100644
--- a/include/asm-x86/i8253.h
+++ b/include/asm-x86/i8253.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_I8253_H__ 1#ifndef ASM_X86__I8253_H
2#define __ASM_I8253_H__ 2#define ASM_X86__I8253_H
3 3
4/* i8253A PIT registers */ 4/* i8253A PIT registers */
5#define PIT_MODE 0x43 5#define PIT_MODE 0x43
@@ -15,4 +15,4 @@ extern void setup_pit_timer(void);
15#define inb_pit inb_p 15#define inb_pit inb_p
16#define outb_pit outb_p 16#define outb_pit outb_p
17 17
18#endif /* __ASM_I8253_H__ */ 18#endif /* ASM_X86__I8253_H */
diff --git a/include/asm-x86/i8259.h b/include/asm-x86/i8259.h
index 2f98df91f1f..c586559a695 100644
--- a/include/asm-x86/i8259.h
+++ b/include/asm-x86/i8259.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_I8259_H__ 1#ifndef ASM_X86__I8259_H
2#define __ASM_I8259_H__ 2#define ASM_X86__I8259_H
3 3
4#include <linux/delay.h> 4#include <linux/delay.h>
5 5
@@ -57,4 +57,4 @@ static inline void outb_pic(unsigned char value, unsigned int port)
57 57
58extern struct irq_chip i8259A_chip; 58extern struct irq_chip i8259A_chip;
59 59
60#endif /* __ASM_I8259_H__ */ 60#endif /* ASM_X86__I8259_H */
diff --git a/include/asm-x86/ia32.h b/include/asm-x86/ia32.h
index 55d3abe5276..f932f7ad51d 100644
--- a/include/asm-x86/ia32.h
+++ b/include/asm-x86/ia32.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_64_IA32_H 1#ifndef ASM_X86__IA32_H
2#define _ASM_X86_64_IA32_H 2#define ASM_X86__IA32_H
3 3
4 4
5#ifdef CONFIG_IA32_EMULATION 5#ifdef CONFIG_IA32_EMULATION
@@ -167,4 +167,4 @@ extern void ia32_pick_mmap_layout(struct mm_struct *mm);
167 167
168#endif /* !CONFIG_IA32_SUPPORT */ 168#endif /* !CONFIG_IA32_SUPPORT */
169 169
170#endif 170#endif /* ASM_X86__IA32_H */
diff --git a/include/asm-x86/ia32_unistd.h b/include/asm-x86/ia32_unistd.h
index 61cea9e7c5c..dbd887d8a5a 100644
--- a/include/asm-x86/ia32_unistd.h
+++ b/include/asm-x86/ia32_unistd.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_64_IA32_UNISTD_H_ 1#ifndef ASM_X86__IA32_UNISTD_H
2#define _ASM_X86_64_IA32_UNISTD_H_ 2#define ASM_X86__IA32_UNISTD_H
3 3
4/* 4/*
5 * This file contains the system call numbers of the ia32 port, 5 * This file contains the system call numbers of the ia32 port,
@@ -15,4 +15,4 @@
15#define __NR_ia32_sigreturn 119 15#define __NR_ia32_sigreturn 119
16#define __NR_ia32_rt_sigreturn 173 16#define __NR_ia32_rt_sigreturn 173
17 17
18#endif /* _ASM_X86_64_IA32_UNISTD_H_ */ 18#endif /* ASM_X86__IA32_UNISTD_H */
diff --git a/include/asm-x86/idle.h b/include/asm-x86/idle.h
index d240e5b30a4..baa3f783d27 100644
--- a/include/asm-x86/idle.h
+++ b/include/asm-x86/idle.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_64_IDLE_H 1#ifndef ASM_X86__IDLE_H
2#define _ASM_X86_64_IDLE_H 1 2#define ASM_X86__IDLE_H
3 3
4#define IDLE_START 1 4#define IDLE_START 1
5#define IDLE_END 2 5#define IDLE_END 2
@@ -10,4 +10,6 @@ void idle_notifier_register(struct notifier_block *n);
10void enter_idle(void); 10void enter_idle(void);
11void exit_idle(void); 11void exit_idle(void);
12 12
13#endif 13void c1e_remove_cpu(int cpu);
14
15#endif /* ASM_X86__IDLE_H */
diff --git a/include/asm-x86/intel_arch_perfmon.h b/include/asm-x86/intel_arch_perfmon.h
index fa0fd068bc2..07c03c6c9a1 100644
--- a/include/asm-x86/intel_arch_perfmon.h
+++ b/include/asm-x86/intel_arch_perfmon.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_INTEL_ARCH_PERFMON_H 1#ifndef ASM_X86__INTEL_ARCH_PERFMON_H
2#define _ASM_X86_INTEL_ARCH_PERFMON_H 2#define ASM_X86__INTEL_ARCH_PERFMON_H
3 3
4#define MSR_ARCH_PERFMON_PERFCTR0 0xc1 4#define MSR_ARCH_PERFMON_PERFCTR0 0xc1
5#define MSR_ARCH_PERFMON_PERFCTR1 0xc2 5#define MSR_ARCH_PERFMON_PERFCTR1 0xc2
@@ -28,4 +28,4 @@ union cpuid10_eax {
28 unsigned int full; 28 unsigned int full;
29}; 29};
30 30
31#endif /* _ASM_X86_INTEL_ARCH_PERFMON_H */ 31#endif /* ASM_X86__INTEL_ARCH_PERFMON_H */
diff --git a/include/asm-x86/io.h b/include/asm-x86/io.h
index 0f954dc89cb..72b7719523b 100644
--- a/include/asm-x86/io.h
+++ b/include/asm-x86/io.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_IO_H 1#ifndef ASM_X86__IO_H
2#define _ASM_X86_IO_H 2#define ASM_X86__IO_H
3 3
4#define ARCH_HAS_IOREMAP_WC 4#define ARCH_HAS_IOREMAP_WC
5 5
@@ -73,6 +73,8 @@ build_mmio_write(__writeq, "q", unsigned long, "r", )
73#define writeq writeq 73#define writeq writeq
74#endif 74#endif
75 75
76extern int iommu_bio_merge;
77
76#ifdef CONFIG_X86_32 78#ifdef CONFIG_X86_32
77# include "io_32.h" 79# include "io_32.h"
78#else 80#else
@@ -99,4 +101,4 @@ extern void early_iounmap(void *addr, unsigned long size);
99extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys); 101extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);
100 102
101 103
102#endif /* _ASM_X86_IO_H */ 104#endif /* ASM_X86__IO_H */
diff --git a/include/asm-x86/io_32.h b/include/asm-x86/io_32.h
index e876d89ac15..4f7d878bda1 100644
--- a/include/asm-x86/io_32.h
+++ b/include/asm-x86/io_32.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_IO_H 1#ifndef ASM_X86__IO_32_H
2#define _ASM_IO_H 2#define ASM_X86__IO_32_H
3 3
4#include <linux/string.h> 4#include <linux/string.h>
5#include <linux/compiler.h> 5#include <linux/compiler.h>
@@ -281,4 +281,4 @@ BUILDIO(b, b, char)
281BUILDIO(w, w, short) 281BUILDIO(w, w, short)
282BUILDIO(l, , int) 282BUILDIO(l, , int)
283 283
284#endif 284#endif /* ASM_X86__IO_32_H */
diff --git a/include/asm-x86/io_64.h b/include/asm-x86/io_64.h
index 22995c5c5ad..64429e9431a 100644
--- a/include/asm-x86/io_64.h
+++ b/include/asm-x86/io_64.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_IO_H 1#ifndef ASM_X86__IO_64_H
2#define _ASM_IO_H 2#define ASM_X86__IO_64_H
3 3
4 4
5/* 5/*
@@ -235,7 +235,6 @@ void memset_io(volatile void __iomem *a, int b, size_t c);
235 235
236#define flush_write_buffers() 236#define flush_write_buffers()
237 237
238extern int iommu_bio_merge;
239#define BIO_VMERGE_BOUNDARY iommu_bio_merge 238#define BIO_VMERGE_BOUNDARY iommu_bio_merge
240 239
241/* 240/*
@@ -245,4 +244,4 @@ extern int iommu_bio_merge;
245 244
246#endif /* __KERNEL__ */ 245#endif /* __KERNEL__ */
247 246
248#endif 247#endif /* ASM_X86__IO_64_H */
diff --git a/include/asm-x86/io_apic.h b/include/asm-x86/io_apic.h
index 14f82bbcb5f..be62847ab07 100644
--- a/include/asm-x86/io_apic.h
+++ b/include/asm-x86/io_apic.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_IO_APIC_H 1#ifndef ASM_X86__IO_APIC_H
2#define __ASM_IO_APIC_H 2#define ASM_X86__IO_APIC_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5#include <asm/mpspec.h> 5#include <asm/mpspec.h>
@@ -189,4 +189,4 @@ static const int timer_through_8259 = 0;
189static inline void ioapic_init_mappings(void) { } 189static inline void ioapic_init_mappings(void) { }
190#endif 190#endif
191 191
192#endif 192#endif /* ASM_X86__IO_APIC_H */
diff --git a/include/asm-x86/ioctls.h b/include/asm-x86/ioctls.h
index c0c338bd406..33660351239 100644
--- a/include/asm-x86/ioctls.h
+++ b/include/asm-x86/ioctls.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_IOCTLS_H 1#ifndef ASM_X86__IOCTLS_H
2#define _ASM_X86_IOCTLS_H 2#define ASM_X86__IOCTLS_H
3 3
4#include <asm/ioctl.h> 4#include <asm/ioctl.h>
5 5
@@ -85,4 +85,4 @@
85 85
86#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ 86#define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
87 87
88#endif 88#endif /* ASM_X86__IOCTLS_H */
diff --git a/include/asm-x86/iommu.h b/include/asm-x86/iommu.h
index 5f888cc5be4..e86f44148c6 100644
--- a/include/asm-x86/iommu.h
+++ b/include/asm-x86/iommu.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X8664_IOMMU_H 1#ifndef ASM_X86__IOMMU_H
2#define _ASM_X8664_IOMMU_H 1 2#define ASM_X86__IOMMU_H
3 3
4extern void pci_iommu_shutdown(void); 4extern void pci_iommu_shutdown(void);
5extern void no_iommu_init(void); 5extern void no_iommu_init(void);
@@ -42,4 +42,4 @@ static inline void gart_iommu_hole_init(void)
42} 42}
43#endif 43#endif
44 44
45#endif 45#endif /* ASM_X86__IOMMU_H */
diff --git a/include/asm-x86/ipcbuf.h b/include/asm-x86/ipcbuf.h
index ee678fd5159..910304fbdc8 100644
--- a/include/asm-x86/ipcbuf.h
+++ b/include/asm-x86/ipcbuf.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_IPCBUF_H 1#ifndef ASM_X86__IPCBUF_H
2#define _ASM_X86_IPCBUF_H 2#define ASM_X86__IPCBUF_H
3 3
4/* 4/*
5 * The ipc64_perm structure for x86 architecture. 5 * The ipc64_perm structure for x86 architecture.
@@ -25,4 +25,4 @@ struct ipc64_perm {
25 unsigned long __unused2; 25 unsigned long __unused2;
26}; 26};
27 27
28#endif /* _ASM_X86_IPCBUF_H */ 28#endif /* ASM_X86__IPCBUF_H */
diff --git a/include/asm-x86/ipi.h b/include/asm-x86/ipi.h
index bb1c09f7a76..c1b22679751 100644
--- a/include/asm-x86/ipi.h
+++ b/include/asm-x86/ipi.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_IPI_H 1#ifndef ASM_X86__IPI_H
2#define __ASM_IPI_H 2#define ASM_X86__IPI_H
3 3
4/* 4/*
5 * Copyright 2004 James Cleverdon, IBM. 5 * Copyright 2004 James Cleverdon, IBM.
@@ -129,4 +129,4 @@ static inline void send_IPI_mask_sequence(cpumask_t mask, int vector)
129 local_irq_restore(flags); 129 local_irq_restore(flags);
130} 130}
131 131
132#endif /* __ASM_IPI_H */ 132#endif /* ASM_X86__IPI_H */
diff --git a/include/asm-x86/irq.h b/include/asm-x86/irq.h
index 1a292575731..1e5f2909c1d 100644
--- a/include/asm-x86/irq.h
+++ b/include/asm-x86/irq.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_IRQ_H 1#ifndef ASM_X86__IRQ_H
2#define _ASM_IRQ_H 2#define ASM_X86__IRQ_H
3/* 3/*
4 * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar 4 * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar
5 * 5 *
@@ -47,4 +47,4 @@ extern void native_init_IRQ(void);
47/* Interrupt vector management */ 47/* Interrupt vector management */
48extern DECLARE_BITMAP(used_vectors, NR_VECTORS); 48extern DECLARE_BITMAP(used_vectors, NR_VECTORS);
49 49
50#endif /* _ASM_IRQ_H */ 50#endif /* ASM_X86__IRQ_H */
diff --git a/include/asm-x86/irq_regs_32.h b/include/asm-x86/irq_regs_32.h
index 3368b20c0b4..316a3b25887 100644
--- a/include/asm-x86/irq_regs_32.h
+++ b/include/asm-x86/irq_regs_32.h
@@ -4,8 +4,8 @@
4 * 4 *
5 * Jeremy Fitzhardinge <jeremy@goop.org> 5 * Jeremy Fitzhardinge <jeremy@goop.org>
6 */ 6 */
7#ifndef _ASM_I386_IRQ_REGS_H 7#ifndef ASM_X86__IRQ_REGS_32_H
8#define _ASM_I386_IRQ_REGS_H 8#define ASM_X86__IRQ_REGS_32_H
9 9
10#include <asm/percpu.h> 10#include <asm/percpu.h>
11 11
@@ -26,4 +26,4 @@ static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
26 return old_regs; 26 return old_regs;
27} 27}
28 28
29#endif /* _ASM_I386_IRQ_REGS_H */ 29#endif /* ASM_X86__IRQ_REGS_32_H */
diff --git a/include/asm-x86/irq_vectors.h b/include/asm-x86/irq_vectors.h
index b95d167b7fb..c5d2d767a1f 100644
--- a/include/asm-x86/irq_vectors.h
+++ b/include/asm-x86/irq_vectors.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_IRQ_VECTORS_H 1#ifndef ASM_X86__IRQ_VECTORS_H
2#define _ASM_IRQ_VECTORS_H 2#define ASM_X86__IRQ_VECTORS_H
3 3
4#include <linux/threads.h> 4#include <linux/threads.h>
5 5
@@ -76,6 +76,7 @@
76#define CALL_FUNCTION_SINGLE_VECTOR 0xfb 76#define CALL_FUNCTION_SINGLE_VECTOR 0xfb
77#define THERMAL_APIC_VECTOR 0xfa 77#define THERMAL_APIC_VECTOR 0xfa
78#define THRESHOLD_APIC_VECTOR 0xf9 78#define THRESHOLD_APIC_VECTOR 0xf9
79#define UV_BAU_MESSAGE 0xf8
79#define INVALIDATE_TLB_VECTOR_END 0xf7 80#define INVALIDATE_TLB_VECTOR_END 0xf7
80#define INVALIDATE_TLB_VECTOR_START 0xf0 /* f0-f7 used for TLB flush */ 81#define INVALIDATE_TLB_VECTOR_START 0xf0 /* f0-f7 used for TLB flush */
81 82
@@ -178,4 +179,4 @@
178#define VIC_CPU_BOOT_ERRATA_CPI (VIC_CPI_LEVEL0 + 8) 179#define VIC_CPU_BOOT_ERRATA_CPI (VIC_CPI_LEVEL0 + 8)
179 180
180 181
181#endif /* _ASM_IRQ_VECTORS_H */ 182#endif /* ASM_X86__IRQ_VECTORS_H */
diff --git a/include/asm-x86/ist.h b/include/asm-x86/ist.h
index 6ec6ceed95a..35a2fe9bc92 100644
--- a/include/asm-x86/ist.h
+++ b/include/asm-x86/ist.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_IST_H 1#ifndef ASM_X86__IST_H
2#define _ASM_IST_H 2#define ASM_X86__IST_H
3 3
4/* 4/*
5 * Include file for the interface to IST BIOS 5 * Include file for the interface to IST BIOS
@@ -31,4 +31,4 @@ struct ist_info {
31extern struct ist_info ist_info; 31extern struct ist_info ist_info;
32 32
33#endif /* __KERNEL__ */ 33#endif /* __KERNEL__ */
34#endif /* _ASM_IST_H */ 34#endif /* ASM_X86__IST_H */
diff --git a/include/asm-x86/k8.h b/include/asm-x86/k8.h
index 452e2b696ff..2bbaf4370a5 100644
--- a/include/asm-x86/k8.h
+++ b/include/asm-x86/k8.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_K8_H 1#ifndef ASM_X86__K8_H
2#define _ASM_K8_H 1 2#define ASM_X86__K8_H
3 3
4#include <linux/pci.h> 4#include <linux/pci.h>
5 5
@@ -12,4 +12,4 @@ extern int cache_k8_northbridges(void);
12extern void k8_flush_garts(void); 12extern void k8_flush_garts(void);
13extern int k8_scan_nodes(unsigned long start, unsigned long end); 13extern int k8_scan_nodes(unsigned long start, unsigned long end);
14 14
15#endif 15#endif /* ASM_X86__K8_H */
diff --git a/include/asm-x86/kdebug.h b/include/asm-x86/kdebug.h
index 96651bb59ba..5ec3ad3e825 100644
--- a/include/asm-x86/kdebug.h
+++ b/include/asm-x86/kdebug.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_KDEBUG_H 1#ifndef ASM_X86__KDEBUG_H
2#define _ASM_X86_KDEBUG_H 2#define ASM_X86__KDEBUG_H
3 3
4#include <linux/notifier.h> 4#include <linux/notifier.h>
5 5
@@ -35,4 +35,4 @@ extern void show_regs(struct pt_regs *regs);
35extern unsigned long oops_begin(void); 35extern unsigned long oops_begin(void);
36extern void oops_end(unsigned long, struct pt_regs *, int signr); 36extern void oops_end(unsigned long, struct pt_regs *, int signr);
37 37
38#endif 38#endif /* ASM_X86__KDEBUG_H */
diff --git a/include/asm-x86/kexec.h b/include/asm-x86/kexec.h
index 4246ab7dc98..ea09600d612 100644
--- a/include/asm-x86/kexec.h
+++ b/include/asm-x86/kexec.h
@@ -1,5 +1,5 @@
1#ifndef _KEXEC_H 1#ifndef ASM_X86__KEXEC_H
2#define _KEXEC_H 2#define ASM_X86__KEXEC_H
3 3
4#ifdef CONFIG_X86_32 4#ifdef CONFIG_X86_32
5# define PA_CONTROL_PAGE 0 5# define PA_CONTROL_PAGE 0
@@ -172,4 +172,4 @@ relocate_kernel(unsigned long indirection_page,
172 172
173#endif /* __ASSEMBLY__ */ 173#endif /* __ASSEMBLY__ */
174 174
175#endif /* _KEXEC_H */ 175#endif /* ASM_X86__KEXEC_H */
diff --git a/include/asm-x86/kgdb.h b/include/asm-x86/kgdb.h
index 484c47554f3..d283863354d 100644
--- a/include/asm-x86/kgdb.h
+++ b/include/asm-x86/kgdb.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_KGDB_H_ 1#ifndef ASM_X86__KGDB_H
2#define _ASM_KGDB_H_ 2#define ASM_X86__KGDB_H
3 3
4/* 4/*
5 * Copyright (C) 2001-2004 Amit S. Kale 5 * Copyright (C) 2001-2004 Amit S. Kale
@@ -39,12 +39,13 @@ enum regnames {
39 GDB_FS, /* 14 */ 39 GDB_FS, /* 14 */
40 GDB_GS, /* 15 */ 40 GDB_GS, /* 15 */
41}; 41};
42#define NUMREGBYTES ((GDB_GS+1)*4)
42#else /* ! CONFIG_X86_32 */ 43#else /* ! CONFIG_X86_32 */
43enum regnames { 44enum regnames64 {
44 GDB_AX, /* 0 */ 45 GDB_AX, /* 0 */
45 GDB_DX, /* 1 */ 46 GDB_BX, /* 1 */
46 GDB_CX, /* 2 */ 47 GDB_CX, /* 2 */
47 GDB_BX, /* 3 */ 48 GDB_DX, /* 3 */
48 GDB_SI, /* 4 */ 49 GDB_SI, /* 4 */
49 GDB_DI, /* 5 */ 50 GDB_DI, /* 5 */
50 GDB_BP, /* 6 */ 51 GDB_BP, /* 6 */
@@ -58,18 +59,15 @@ enum regnames {
58 GDB_R14, /* 14 */ 59 GDB_R14, /* 14 */
59 GDB_R15, /* 15 */ 60 GDB_R15, /* 15 */
60 GDB_PC, /* 16 */ 61 GDB_PC, /* 16 */
61 GDB_PS, /* 17 */
62}; 62};
63#endif /* CONFIG_X86_32 */
64 63
65/* 64enum regnames32 {
66 * Number of bytes of registers: 65 GDB_PS = 34,
67 */ 66 GDB_CS,
68#ifdef CONFIG_X86_32 67 GDB_SS,
69# define NUMREGBYTES 64 68};
70#else 69#define NUMREGBYTES ((GDB_SS+1)*4)
71# define NUMREGBYTES ((GDB_PS+1)*8) 70#endif /* CONFIG_X86_32 */
72#endif
73 71
74static inline void arch_kgdb_breakpoint(void) 72static inline void arch_kgdb_breakpoint(void)
75{ 73{
@@ -78,4 +76,4 @@ static inline void arch_kgdb_breakpoint(void)
78#define BREAK_INSTR_SIZE 1 76#define BREAK_INSTR_SIZE 1
79#define CACHE_FLUSH_IS_SAFE 1 77#define CACHE_FLUSH_IS_SAFE 1
80 78
81#endif /* _ASM_KGDB_H_ */ 79#endif /* ASM_X86__KGDB_H */
diff --git a/include/asm-x86/kmap_types.h b/include/asm-x86/kmap_types.h
index 5f4174132a2..89f44493e64 100644
--- a/include/asm-x86/kmap_types.h
+++ b/include/asm-x86/kmap_types.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_KMAP_TYPES_H 1#ifndef ASM_X86__KMAP_TYPES_H
2#define _ASM_X86_KMAP_TYPES_H 2#define ASM_X86__KMAP_TYPES_H
3 3
4#if defined(CONFIG_X86_32) && defined(CONFIG_DEBUG_HIGHMEM) 4#if defined(CONFIG_X86_32) && defined(CONFIG_DEBUG_HIGHMEM)
5# define D(n) __KM_FENCE_##n , 5# define D(n) __KM_FENCE_##n ,
@@ -26,4 +26,4 @@ D(13) KM_TYPE_NR
26 26
27#undef D 27#undef D
28 28
29#endif 29#endif /* ASM_X86__KMAP_TYPES_H */
diff --git a/include/asm-x86/kprobes.h b/include/asm-x86/kprobes.h
index 54980b0b389..bd8407863c1 100644
--- a/include/asm-x86/kprobes.h
+++ b/include/asm-x86/kprobes.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_KPROBES_H 1#ifndef ASM_X86__KPROBES_H
2#define _ASM_KPROBES_H 2#define ASM_X86__KPROBES_H
3/* 3/*
4 * Kernel Probes (KProbes) 4 * Kernel Probes (KProbes)
5 * 5 *
@@ -94,4 +94,4 @@ static inline void restore_interrupts(struct pt_regs *regs)
94extern int kprobe_fault_handler(struct pt_regs *regs, int trapnr); 94extern int kprobe_fault_handler(struct pt_regs *regs, int trapnr);
95extern int kprobe_exceptions_notify(struct notifier_block *self, 95extern int kprobe_exceptions_notify(struct notifier_block *self,
96 unsigned long val, void *data); 96 unsigned long val, void *data);
97#endif /* _ASM_KPROBES_H */ 97#endif /* ASM_X86__KPROBES_H */
diff --git a/include/asm-x86/kvm.h b/include/asm-x86/kvm.h
index 6f1840812e5..78e954db1e7 100644
--- a/include/asm-x86/kvm.h
+++ b/include/asm-x86/kvm.h
@@ -1,5 +1,5 @@
1#ifndef __LINUX_KVM_X86_H 1#ifndef ASM_X86__KVM_H
2#define __LINUX_KVM_X86_H 2#define ASM_X86__KVM_H
3 3
4/* 4/*
5 * KVM x86 specific structures and definitions 5 * KVM x86 specific structures and definitions
@@ -230,4 +230,4 @@ struct kvm_pit_state {
230#define KVM_TRC_APIC_ACCESS (KVM_TRC_HANDLER + 0x14) 230#define KVM_TRC_APIC_ACCESS (KVM_TRC_HANDLER + 0x14)
231#define KVM_TRC_TDP_FAULT (KVM_TRC_HANDLER + 0x15) 231#define KVM_TRC_TDP_FAULT (KVM_TRC_HANDLER + 0x15)
232 232
233#endif 233#endif /* ASM_X86__KVM_H */
diff --git a/include/asm-x86/kvm_host.h b/include/asm-x86/kvm_host.h
index 0f3c5311461..69794547f51 100644
--- a/include/asm-x86/kvm_host.h
+++ b/include/asm-x86/kvm_host.h
@@ -1,4 +1,4 @@
1#/* 1/*
2 * Kernel-based Virtual Machine driver for Linux 2 * Kernel-based Virtual Machine driver for Linux
3 * 3 *
4 * This header defines architecture specific interfaces, x86 version 4 * This header defines architecture specific interfaces, x86 version
@@ -8,8 +8,8 @@
8 * 8 *
9 */ 9 */
10 10
11#ifndef ASM_KVM_HOST_H 11#ifndef ASM_X86__KVM_HOST_H
12#define ASM_KVM_HOST_H 12#define ASM_X86__KVM_HOST_H
13 13
14#include <linux/types.h> 14#include <linux/types.h>
15#include <linux/mm.h> 15#include <linux/mm.h>
@@ -722,7 +722,7 @@ asmlinkage void kvm_handle_fault_on_reboot(void);
722 722
723#define __kvm_handle_fault_on_reboot(insn) \ 723#define __kvm_handle_fault_on_reboot(insn) \
724 "666: " insn "\n\t" \ 724 "666: " insn "\n\t" \
725 ".pushsection .text.fixup, \"ax\" \n" \ 725 ".pushsection .fixup, \"ax\" \n" \
726 "667: \n\t" \ 726 "667: \n\t" \
727 KVM_EX_PUSH " $666b \n\t" \ 727 KVM_EX_PUSH " $666b \n\t" \
728 "jmp kvm_handle_fault_on_reboot \n\t" \ 728 "jmp kvm_handle_fault_on_reboot \n\t" \
@@ -735,4 +735,4 @@ asmlinkage void kvm_handle_fault_on_reboot(void);
735int kvm_unmap_hva(struct kvm *kvm, unsigned long hva); 735int kvm_unmap_hva(struct kvm *kvm, unsigned long hva);
736int kvm_age_hva(struct kvm *kvm, unsigned long hva); 736int kvm_age_hva(struct kvm *kvm, unsigned long hva);
737 737
738#endif 738#endif /* ASM_X86__KVM_HOST_H */
diff --git a/include/asm-x86/kvm_para.h b/include/asm-x86/kvm_para.h
index 76f392146da..30054fded4f 100644
--- a/include/asm-x86/kvm_para.h
+++ b/include/asm-x86/kvm_para.h
@@ -1,5 +1,5 @@
1#ifndef __X86_KVM_PARA_H 1#ifndef ASM_X86__KVM_PARA_H
2#define __X86_KVM_PARA_H 2#define ASM_X86__KVM_PARA_H
3 3
4/* This CPUID returns the signature 'KVMKVMKVM' in ebx, ecx, and edx. It 4/* This CPUID returns the signature 'KVMKVMKVM' in ebx, ecx, and edx. It
5 * should be used to determine that a VM is running under KVM. 5 * should be used to determine that a VM is running under KVM.
@@ -144,4 +144,4 @@ static inline unsigned int kvm_arch_para_features(void)
144 144
145#endif 145#endif
146 146
147#endif 147#endif /* ASM_X86__KVM_PARA_H */
diff --git a/include/asm-x86/kvm_x86_emulate.h b/include/asm-x86/kvm_x86_emulate.h
index 4e8c1e48d91..e2d9b030c1a 100644
--- a/include/asm-x86/kvm_x86_emulate.h
+++ b/include/asm-x86/kvm_x86_emulate.h
@@ -8,8 +8,8 @@
8 * From: xen-unstable 10676:af9809f51f81a3c43f276f00c81a52ef558afda4 8 * From: xen-unstable 10676:af9809f51f81a3c43f276f00c81a52ef558afda4
9 */ 9 */
10 10
11#ifndef __X86_EMULATE_H__ 11#ifndef ASM_X86__KVM_X86_EMULATE_H
12#define __X86_EMULATE_H__ 12#define ASM_X86__KVM_X86_EMULATE_H
13 13
14struct x86_emulate_ctxt; 14struct x86_emulate_ctxt;
15 15
@@ -181,4 +181,4 @@ int x86_decode_insn(struct x86_emulate_ctxt *ctxt,
181int x86_emulate_insn(struct x86_emulate_ctxt *ctxt, 181int x86_emulate_insn(struct x86_emulate_ctxt *ctxt,
182 struct x86_emulate_ops *ops); 182 struct x86_emulate_ops *ops);
183 183
184#endif /* __X86_EMULATE_H__ */ 184#endif /* ASM_X86__KVM_X86_EMULATE_H */
diff --git a/include/asm-x86/ldt.h b/include/asm-x86/ldt.h
index 20c597242b5..a5228504d86 100644
--- a/include/asm-x86/ldt.h
+++ b/include/asm-x86/ldt.h
@@ -3,8 +3,8 @@
3 * 3 *
4 * Definitions of structures used with the modify_ldt system call. 4 * Definitions of structures used with the modify_ldt system call.
5 */ 5 */
6#ifndef _ASM_X86_LDT_H 6#ifndef ASM_X86__LDT_H
7#define _ASM_X86_LDT_H 7#define ASM_X86__LDT_H
8 8
9/* Maximum number of LDT entries supported. */ 9/* Maximum number of LDT entries supported. */
10#define LDT_ENTRIES 8192 10#define LDT_ENTRIES 8192
@@ -37,4 +37,4 @@ struct user_desc {
37#define MODIFY_LDT_CONTENTS_CODE 2 37#define MODIFY_LDT_CONTENTS_CODE 2
38 38
39#endif /* !__ASSEMBLY__ */ 39#endif /* !__ASSEMBLY__ */
40#endif 40#endif /* ASM_X86__LDT_H */
diff --git a/include/asm-x86/lguest.h b/include/asm-x86/lguest.h
index be4a7247fa2..7505e947ed2 100644
--- a/include/asm-x86/lguest.h
+++ b/include/asm-x86/lguest.h
@@ -1,5 +1,5 @@
1#ifndef _X86_LGUEST_H 1#ifndef ASM_X86__LGUEST_H
2#define _X86_LGUEST_H 2#define ASM_X86__LGUEST_H
3 3
4#define GDT_ENTRY_LGUEST_CS 10 4#define GDT_ENTRY_LGUEST_CS 10
5#define GDT_ENTRY_LGUEST_DS 11 5#define GDT_ENTRY_LGUEST_DS 11
@@ -91,4 +91,4 @@ static inline void lguest_set_ts(void)
91 91
92#endif /* __ASSEMBLY__ */ 92#endif /* __ASSEMBLY__ */
93 93
94#endif 94#endif /* ASM_X86__LGUEST_H */
diff --git a/include/asm-x86/lguest_hcall.h b/include/asm-x86/lguest_hcall.h
index a3241f28e34..8f034ba4b53 100644
--- a/include/asm-x86/lguest_hcall.h
+++ b/include/asm-x86/lguest_hcall.h
@@ -1,6 +1,6 @@
1/* Architecture specific portion of the lguest hypercalls */ 1/* Architecture specific portion of the lguest hypercalls */
2#ifndef _X86_LGUEST_HCALL_H 2#ifndef ASM_X86__LGUEST_HCALL_H
3#define _X86_LGUEST_HCALL_H 3#define ASM_X86__LGUEST_HCALL_H
4 4
5#define LHCALL_FLUSH_ASYNC 0 5#define LHCALL_FLUSH_ASYNC 0
6#define LHCALL_LGUEST_INIT 1 6#define LHCALL_LGUEST_INIT 1
@@ -68,4 +68,4 @@ struct hcall_args {
68}; 68};
69 69
70#endif /* !__ASSEMBLY__ */ 70#endif /* !__ASSEMBLY__ */
71#endif /* _I386_LGUEST_HCALL_H */ 71#endif /* ASM_X86__LGUEST_HCALL_H */
diff --git a/include/asm-x86/linkage.h b/include/asm-x86/linkage.h
index 64e444f8e85..42d8b62ee8a 100644
--- a/include/asm-x86/linkage.h
+++ b/include/asm-x86/linkage.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_LINKAGE_H 1#ifndef ASM_X86__LINKAGE_H
2#define __ASM_LINKAGE_H 2#define ASM_X86__LINKAGE_H
3 3
4#undef notrace 4#undef notrace
5#define notrace __attribute__((no_instrument_function)) 5#define notrace __attribute__((no_instrument_function))
@@ -57,5 +57,5 @@
57#define __ALIGN_STR ".align 16,0x90" 57#define __ALIGN_STR ".align 16,0x90"
58#endif 58#endif
59 59
60#endif 60#endif /* ASM_X86__LINKAGE_H */
61 61
diff --git a/include/asm-x86/local.h b/include/asm-x86/local.h
index 330a72496ab..ae91994fd6c 100644
--- a/include/asm-x86/local.h
+++ b/include/asm-x86/local.h
@@ -1,5 +1,5 @@
1#ifndef _ARCH_LOCAL_H 1#ifndef ASM_X86__LOCAL_H
2#define _ARCH_LOCAL_H 2#define ASM_X86__LOCAL_H
3 3
4#include <linux/percpu.h> 4#include <linux/percpu.h>
5 5
@@ -232,4 +232,4 @@ static inline long local_sub_return(long i, local_t *l)
232#define __cpu_local_add(i, l) cpu_local_add((i), (l)) 232#define __cpu_local_add(i, l) cpu_local_add((i), (l))
233#define __cpu_local_sub(i, l) cpu_local_sub((i), (l)) 233#define __cpu_local_sub(i, l) cpu_local_sub((i), (l))
234 234
235#endif /* _ARCH_LOCAL_H */ 235#endif /* ASM_X86__LOCAL_H */
diff --git a/include/asm-x86/mach-bigsmp/mach_apic.h b/include/asm-x86/mach-bigsmp/mach_apic.h
index c3b9dc6970c..05362d44a3e 100644
--- a/include/asm-x86/mach-bigsmp/mach_apic.h
+++ b/include/asm-x86/mach-bigsmp/mach_apic.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_APIC_H 1#ifndef ASM_X86__MACH_BIGSMP__MACH_APIC_H
2#define __ASM_MACH_APIC_H 2#define ASM_X86__MACH_BIGSMP__MACH_APIC_H
3 3
4#define xapic_phys_to_log_apicid(cpu) (per_cpu(x86_bios_cpu_apicid, cpu)) 4#define xapic_phys_to_log_apicid(cpu) (per_cpu(x86_bios_cpu_apicid, cpu))
5#define esr_disable (1) 5#define esr_disable (1)
@@ -141,4 +141,4 @@ static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
141 return cpuid_apic >> index_msb; 141 return cpuid_apic >> index_msb;
142} 142}
143 143
144#endif /* __ASM_MACH_APIC_H */ 144#endif /* ASM_X86__MACH_BIGSMP__MACH_APIC_H */
diff --git a/include/asm-x86/mach-bigsmp/mach_apicdef.h b/include/asm-x86/mach-bigsmp/mach_apicdef.h
index a58ab5a75c8..811935d9d49 100644
--- a/include/asm-x86/mach-bigsmp/mach_apicdef.h
+++ b/include/asm-x86/mach-bigsmp/mach_apicdef.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_APICDEF_H 1#ifndef ASM_X86__MACH_BIGSMP__MACH_APICDEF_H
2#define __ASM_MACH_APICDEF_H 2#define ASM_X86__MACH_BIGSMP__MACH_APICDEF_H
3 3
4#define APIC_ID_MASK (0xFF<<24) 4#define APIC_ID_MASK (0xFF<<24)
5 5
@@ -10,4 +10,4 @@ static inline unsigned get_apic_id(unsigned long x)
10 10
11#define GET_APIC_ID(x) get_apic_id(x) 11#define GET_APIC_ID(x) get_apic_id(x)
12 12
13#endif 13#endif /* ASM_X86__MACH_BIGSMP__MACH_APICDEF_H */
diff --git a/include/asm-x86/mach-bigsmp/mach_ipi.h b/include/asm-x86/mach-bigsmp/mach_ipi.h
index 9404c535b7e..b1b0f966a00 100644
--- a/include/asm-x86/mach-bigsmp/mach_ipi.h
+++ b/include/asm-x86/mach-bigsmp/mach_ipi.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_IPI_H 1#ifndef ASM_X86__MACH_BIGSMP__MACH_IPI_H
2#define __ASM_MACH_IPI_H 2#define ASM_X86__MACH_BIGSMP__MACH_IPI_H
3 3
4void send_IPI_mask_sequence(cpumask_t mask, int vector); 4void send_IPI_mask_sequence(cpumask_t mask, int vector);
5 5
@@ -22,4 +22,4 @@ static inline void send_IPI_all(int vector)
22 send_IPI_mask(cpu_online_map, vector); 22 send_IPI_mask(cpu_online_map, vector);
23} 23}
24 24
25#endif /* __ASM_MACH_IPI_H */ 25#endif /* ASM_X86__MACH_BIGSMP__MACH_IPI_H */
diff --git a/include/asm-x86/mach-default/apm.h b/include/asm-x86/mach-default/apm.h
index 989f34c37d3..2aa61b54fbd 100644
--- a/include/asm-x86/mach-default/apm.h
+++ b/include/asm-x86/mach-default/apm.h
@@ -3,8 +3,8 @@
3 * Split out from apm.c by Osamu Tomita <tomita@cinet.co.jp> 3 * Split out from apm.c by Osamu Tomita <tomita@cinet.co.jp>
4 */ 4 */
5 5
6#ifndef _ASM_APM_H 6#ifndef ASM_X86__MACH_DEFAULT__APM_H
7#define _ASM_APM_H 7#define ASM_X86__MACH_DEFAULT__APM_H
8 8
9#ifdef APM_ZERO_SEGS 9#ifdef APM_ZERO_SEGS
10# define APM_DO_ZERO_SEGS \ 10# define APM_DO_ZERO_SEGS \
@@ -70,4 +70,4 @@ static inline u8 apm_bios_call_simple_asm(u32 func, u32 ebx_in,
70 return error; 70 return error;
71} 71}
72 72
73#endif /* _ASM_APM_H */ 73#endif /* ASM_X86__MACH_DEFAULT__APM_H */
diff --git a/include/asm-x86/mach-default/mach_apic.h b/include/asm-x86/mach-default/mach_apic.h
index f3226b9a6b8..b615f40736b 100644
--- a/include/asm-x86/mach-default/mach_apic.h
+++ b/include/asm-x86/mach-default/mach_apic.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_APIC_H 1#ifndef ASM_X86__MACH_DEFAULT__MACH_APIC_H
2#define __ASM_MACH_APIC_H 2#define ASM_X86__MACH_DEFAULT__MACH_APIC_H
3 3
4#ifdef CONFIG_X86_LOCAL_APIC 4#ifdef CONFIG_X86_LOCAL_APIC
5 5
@@ -138,4 +138,4 @@ static inline void enable_apic_mode(void)
138} 138}
139 139
140#endif /* CONFIG_X86_LOCAL_APIC */ 140#endif /* CONFIG_X86_LOCAL_APIC */
141#endif /* __ASM_MACH_APIC_H */ 141#endif /* ASM_X86__MACH_DEFAULT__MACH_APIC_H */
diff --git a/include/asm-x86/mach-default/mach_apicdef.h b/include/asm-x86/mach-default/mach_apicdef.h
index e4b29ba37de..936704f816d 100644
--- a/include/asm-x86/mach-default/mach_apicdef.h
+++ b/include/asm-x86/mach-default/mach_apicdef.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_APICDEF_H 1#ifndef ASM_X86__MACH_DEFAULT__MACH_APICDEF_H
2#define __ASM_MACH_APICDEF_H 2#define ASM_X86__MACH_DEFAULT__MACH_APICDEF_H
3 3
4#include <asm/apic.h> 4#include <asm/apic.h>
5 5
@@ -21,4 +21,4 @@ static inline unsigned get_apic_id(unsigned long x)
21#define GET_APIC_ID(x) get_apic_id(x) 21#define GET_APIC_ID(x) get_apic_id(x)
22#endif 22#endif
23 23
24#endif 24#endif /* ASM_X86__MACH_DEFAULT__MACH_APICDEF_H */
diff --git a/include/asm-x86/mach-default/mach_ipi.h b/include/asm-x86/mach-default/mach_ipi.h
index be323364e68..674bc7e50c3 100644
--- a/include/asm-x86/mach-default/mach_ipi.h
+++ b/include/asm-x86/mach-default/mach_ipi.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_IPI_H 1#ifndef ASM_X86__MACH_DEFAULT__MACH_IPI_H
2#define __ASM_MACH_IPI_H 2#define ASM_X86__MACH_DEFAULT__MACH_IPI_H
3 3
4/* Avoid include hell */ 4/* Avoid include hell */
5#define NMI_VECTOR 0x02 5#define NMI_VECTOR 0x02
@@ -61,4 +61,4 @@ static inline void send_IPI_all(int vector)
61} 61}
62#endif 62#endif
63 63
64#endif /* __ASM_MACH_IPI_H */ 64#endif /* ASM_X86__MACH_DEFAULT__MACH_IPI_H */
diff --git a/include/asm-x86/mach-default/mach_mpparse.h b/include/asm-x86/mach-default/mach_mpparse.h
index d14108505bb..9c381f2815a 100644
--- a/include/asm-x86/mach-default/mach_mpparse.h
+++ b/include/asm-x86/mach-default/mach_mpparse.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_MPPARSE_H 1#ifndef ASM_X86__MACH_DEFAULT__MACH_MPPARSE_H
2#define __ASM_MACH_MPPARSE_H 2#define ASM_X86__MACH_DEFAULT__MACH_MPPARSE_H
3 3
4static inline int mps_oem_check(struct mp_config_table *mpc, char *oem, 4static inline int mps_oem_check(struct mp_config_table *mpc, char *oem,
5 char *productid) 5 char *productid)
@@ -14,4 +14,4 @@ static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id)
14} 14}
15 15
16 16
17#endif /* __ASM_MACH_MPPARSE_H */ 17#endif /* ASM_X86__MACH_DEFAULT__MACH_MPPARSE_H */
diff --git a/include/asm-x86/mach-default/mach_mpspec.h b/include/asm-x86/mach-default/mach_mpspec.h
index 51c9a977593..d77646f011f 100644
--- a/include/asm-x86/mach-default/mach_mpspec.h
+++ b/include/asm-x86/mach-default/mach_mpspec.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_MPSPEC_H 1#ifndef ASM_X86__MACH_DEFAULT__MACH_MPSPEC_H
2#define __ASM_MACH_MPSPEC_H 2#define ASM_X86__MACH_DEFAULT__MACH_MPSPEC_H
3 3
4#define MAX_IRQ_SOURCES 256 4#define MAX_IRQ_SOURCES 256
5 5
@@ -9,4 +9,4 @@
9#define MAX_MP_BUSSES 32 9#define MAX_MP_BUSSES 32
10#endif 10#endif
11 11
12#endif /* __ASM_MACH_MPSPEC_H */ 12#endif /* ASM_X86__MACH_DEFAULT__MACH_MPSPEC_H */
diff --git a/include/asm-x86/mach-default/mach_timer.h b/include/asm-x86/mach-default/mach_timer.h
index 4b76e536cd9..990b1583383 100644
--- a/include/asm-x86/mach-default/mach_timer.h
+++ b/include/asm-x86/mach-default/mach_timer.h
@@ -10,8 +10,8 @@
10 * directly because of the awkward 8-bit access mechanism of the 82C54 10 * directly because of the awkward 8-bit access mechanism of the 82C54
11 * device. 11 * device.
12 */ 12 */
13#ifndef _MACH_TIMER_H 13#ifndef ASM_X86__MACH_DEFAULT__MACH_TIMER_H
14#define _MACH_TIMER_H 14#define ASM_X86__MACH_DEFAULT__MACH_TIMER_H
15 15
16#define CALIBRATE_TIME_MSEC 30 /* 30 msecs */ 16#define CALIBRATE_TIME_MSEC 30 /* 30 msecs */
17#define CALIBRATE_LATCH \ 17#define CALIBRATE_LATCH \
@@ -45,4 +45,4 @@ static inline void mach_countup(unsigned long *count_p)
45 *count_p = count; 45 *count_p = count;
46} 46}
47 47
48#endif /* !_MACH_TIMER_H */ 48#endif /* ASM_X86__MACH_DEFAULT__MACH_TIMER_H */
diff --git a/include/asm-x86/mach-default/mach_traps.h b/include/asm-x86/mach-default/mach_traps.h
index 2fe7705c048..de9ac3f5c4c 100644
--- a/include/asm-x86/mach-default/mach_traps.h
+++ b/include/asm-x86/mach-default/mach_traps.h
@@ -2,8 +2,8 @@
2 * Machine specific NMI handling for generic. 2 * Machine specific NMI handling for generic.
3 * Split out from traps.c by Osamu Tomita <tomita@cinet.co.jp> 3 * Split out from traps.c by Osamu Tomita <tomita@cinet.co.jp>
4 */ 4 */
5#ifndef _MACH_TRAPS_H 5#ifndef ASM_X86__MACH_DEFAULT__MACH_TRAPS_H
6#define _MACH_TRAPS_H 6#define ASM_X86__MACH_DEFAULT__MACH_TRAPS_H
7 7
8#include <asm/mc146818rtc.h> 8#include <asm/mc146818rtc.h>
9 9
@@ -36,4 +36,4 @@ static inline void reassert_nmi(void)
36 unlock_cmos(); 36 unlock_cmos();
37} 37}
38 38
39#endif /* !_MACH_TRAPS_H */ 39#endif /* ASM_X86__MACH_DEFAULT__MACH_TRAPS_H */
diff --git a/include/asm-x86/mach-default/mach_wakecpu.h b/include/asm-x86/mach-default/mach_wakecpu.h
index 3ebb17893aa..361b810f516 100644
--- a/include/asm-x86/mach-default/mach_wakecpu.h
+++ b/include/asm-x86/mach-default/mach_wakecpu.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_WAKECPU_H 1#ifndef ASM_X86__MACH_DEFAULT__MACH_WAKECPU_H
2#define __ASM_MACH_WAKECPU_H 2#define ASM_X86__MACH_DEFAULT__MACH_WAKECPU_H
3 3
4/* 4/*
5 * This file copes with machines that wakeup secondary CPUs by the 5 * This file copes with machines that wakeup secondary CPUs by the
@@ -39,4 +39,4 @@ static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
39 #define inquire_remote_apic(apicid) {} 39 #define inquire_remote_apic(apicid) {}
40#endif 40#endif
41 41
42#endif /* __ASM_MACH_WAKECPU_H */ 42#endif /* ASM_X86__MACH_DEFAULT__MACH_WAKECPU_H */
diff --git a/include/asm-x86/mach-es7000/mach_apic.h b/include/asm-x86/mach-es7000/mach_apic.h
index 0a3fdf93067..c1f6f682d61 100644
--- a/include/asm-x86/mach-es7000/mach_apic.h
+++ b/include/asm-x86/mach-es7000/mach_apic.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_APIC_H 1#ifndef ASM_X86__MACH_ES7000__MACH_APIC_H
2#define __ASM_MACH_APIC_H 2#define ASM_X86__MACH_ES7000__MACH_APIC_H
3 3
4#define xapic_phys_to_log_apicid(cpu) per_cpu(x86_bios_cpu_apicid, cpu) 4#define xapic_phys_to_log_apicid(cpu) per_cpu(x86_bios_cpu_apicid, cpu)
5#define esr_disable (1) 5#define esr_disable (1)
@@ -191,4 +191,4 @@ static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
191 return cpuid_apic >> index_msb; 191 return cpuid_apic >> index_msb;
192} 192}
193 193
194#endif /* __ASM_MACH_APIC_H */ 194#endif /* ASM_X86__MACH_ES7000__MACH_APIC_H */
diff --git a/include/asm-x86/mach-es7000/mach_apicdef.h b/include/asm-x86/mach-es7000/mach_apicdef.h
index a58ab5a75c8..a07e5674402 100644
--- a/include/asm-x86/mach-es7000/mach_apicdef.h
+++ b/include/asm-x86/mach-es7000/mach_apicdef.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_APICDEF_H 1#ifndef ASM_X86__MACH_ES7000__MACH_APICDEF_H
2#define __ASM_MACH_APICDEF_H 2#define ASM_X86__MACH_ES7000__MACH_APICDEF_H
3 3
4#define APIC_ID_MASK (0xFF<<24) 4#define APIC_ID_MASK (0xFF<<24)
5 5
@@ -10,4 +10,4 @@ static inline unsigned get_apic_id(unsigned long x)
10 10
11#define GET_APIC_ID(x) get_apic_id(x) 11#define GET_APIC_ID(x) get_apic_id(x)
12 12
13#endif 13#endif /* ASM_X86__MACH_ES7000__MACH_APICDEF_H */
diff --git a/include/asm-x86/mach-es7000/mach_ipi.h b/include/asm-x86/mach-es7000/mach_ipi.h
index 5e61bd220b0..3a21240e03d 100644
--- a/include/asm-x86/mach-es7000/mach_ipi.h
+++ b/include/asm-x86/mach-es7000/mach_ipi.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_IPI_H 1#ifndef ASM_X86__MACH_ES7000__MACH_IPI_H
2#define __ASM_MACH_IPI_H 2#define ASM_X86__MACH_ES7000__MACH_IPI_H
3 3
4void send_IPI_mask_sequence(cpumask_t mask, int vector); 4void send_IPI_mask_sequence(cpumask_t mask, int vector);
5 5
@@ -21,4 +21,4 @@ static inline void send_IPI_all(int vector)
21 send_IPI_mask(cpu_online_map, vector); 21 send_IPI_mask(cpu_online_map, vector);
22} 22}
23 23
24#endif /* __ASM_MACH_IPI_H */ 24#endif /* ASM_X86__MACH_ES7000__MACH_IPI_H */
diff --git a/include/asm-x86/mach-es7000/mach_mpparse.h b/include/asm-x86/mach-es7000/mach_mpparse.h
index ef26d352362..befde24705b 100644
--- a/include/asm-x86/mach-es7000/mach_mpparse.h
+++ b/include/asm-x86/mach-es7000/mach_mpparse.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_MPPARSE_H 1#ifndef ASM_X86__MACH_ES7000__MACH_MPPARSE_H
2#define __ASM_MACH_MPPARSE_H 2#define ASM_X86__MACH_ES7000__MACH_MPPARSE_H
3 3
4#include <linux/acpi.h> 4#include <linux/acpi.h>
5 5
@@ -26,4 +26,4 @@ static inline int es7000_check_dsdt(void)
26} 26}
27#endif 27#endif
28 28
29#endif /* __ASM_MACH_MPPARSE_H */ 29#endif /* ASM_X86__MACH_ES7000__MACH_MPPARSE_H */
diff --git a/include/asm-x86/mach-es7000/mach_wakecpu.h b/include/asm-x86/mach-es7000/mach_wakecpu.h
index 84ff5831450..97c776ce13f 100644
--- a/include/asm-x86/mach-es7000/mach_wakecpu.h
+++ b/include/asm-x86/mach-es7000/mach_wakecpu.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_WAKECPU_H 1#ifndef ASM_X86__MACH_ES7000__MACH_WAKECPU_H
2#define __ASM_MACH_WAKECPU_H 2#define ASM_X86__MACH_ES7000__MACH_WAKECPU_H
3 3
4/* 4/*
5 * This file copes with machines that wakeup secondary CPUs by the 5 * This file copes with machines that wakeup secondary CPUs by the
@@ -56,4 +56,4 @@ static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
56 #define inquire_remote_apic(apicid) {} 56 #define inquire_remote_apic(apicid) {}
57#endif 57#endif
58 58
59#endif /* __ASM_MACH_WAKECPU_H */ 59#endif /* ASM_X86__MACH_ES7000__MACH_WAKECPU_H */
diff --git a/include/asm-x86/mach-generic/gpio.h b/include/asm-x86/mach-generic/gpio.h
index 5305dcb96df..6ce0f7786ef 100644
--- a/include/asm-x86/mach-generic/gpio.h
+++ b/include/asm-x86/mach-generic/gpio.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_GENERIC_GPIO_H 1#ifndef ASM_X86__MACH_GENERIC__GPIO_H
2#define __ASM_MACH_GENERIC_GPIO_H 2#define ASM_X86__MACH_GENERIC__GPIO_H
3 3
4int gpio_request(unsigned gpio, const char *label); 4int gpio_request(unsigned gpio, const char *label);
5void gpio_free(unsigned gpio); 5void gpio_free(unsigned gpio);
@@ -12,4 +12,4 @@ int irq_to_gpio(unsigned irq);
12 12
13#include <asm-generic/gpio.h> /* cansleep wrappers */ 13#include <asm-generic/gpio.h> /* cansleep wrappers */
14 14
15#endif /* __ASM_MACH_GENERIC_GPIO_H */ 15#endif /* ASM_X86__MACH_GENERIC__GPIO_H */
diff --git a/include/asm-x86/mach-generic/irq_vectors_limits.h b/include/asm-x86/mach-generic/irq_vectors_limits.h
index 890ce3f5e09..f7870e1a220 100644
--- a/include/asm-x86/mach-generic/irq_vectors_limits.h
+++ b/include/asm-x86/mach-generic/irq_vectors_limits.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_IRQ_VECTORS_LIMITS_H 1#ifndef ASM_X86__MACH_GENERIC__IRQ_VECTORS_LIMITS_H
2#define _ASM_IRQ_VECTORS_LIMITS_H 2#define ASM_X86__MACH_GENERIC__IRQ_VECTORS_LIMITS_H
3 3
4/* 4/*
5 * For Summit or generic (i.e. installer) kernels, we have lots of I/O APICs, 5 * For Summit or generic (i.e. installer) kernels, we have lots of I/O APICs,
@@ -11,4 +11,4 @@
11#define NR_IRQS 224 11#define NR_IRQS 224
12#define NR_IRQ_VECTORS 1024 12#define NR_IRQ_VECTORS 1024
13 13
14#endif /* _ASM_IRQ_VECTORS_LIMITS_H */ 14#endif /* ASM_X86__MACH_GENERIC__IRQ_VECTORS_LIMITS_H */
diff --git a/include/asm-x86/mach-generic/mach_apic.h b/include/asm-x86/mach-generic/mach_apic.h
index 6eff343e123..5d010c6881d 100644
--- a/include/asm-x86/mach-generic/mach_apic.h
+++ b/include/asm-x86/mach-generic/mach_apic.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_APIC_H 1#ifndef ASM_X86__MACH_GENERIC__MACH_APIC_H
2#define __ASM_MACH_APIC_H 2#define ASM_X86__MACH_GENERIC__MACH_APIC_H
3 3
4#include <asm/genapic.h> 4#include <asm/genapic.h>
5 5
@@ -29,4 +29,4 @@
29 29
30extern void generic_bigsmp_probe(void); 30extern void generic_bigsmp_probe(void);
31 31
32#endif /* __ASM_MACH_APIC_H */ 32#endif /* ASM_X86__MACH_GENERIC__MACH_APIC_H */
diff --git a/include/asm-x86/mach-generic/mach_apicdef.h b/include/asm-x86/mach-generic/mach_apicdef.h
index 28ed98972ca..1657f38b8f2 100644
--- a/include/asm-x86/mach-generic/mach_apicdef.h
+++ b/include/asm-x86/mach-generic/mach_apicdef.h
@@ -1,5 +1,5 @@
1#ifndef _GENAPIC_MACH_APICDEF_H 1#ifndef ASM_X86__MACH_GENERIC__MACH_APICDEF_H
2#define _GENAPIC_MACH_APICDEF_H 1 2#define ASM_X86__MACH_GENERIC__MACH_APICDEF_H
3 3
4#ifndef APIC_DEFINITION 4#ifndef APIC_DEFINITION
5#include <asm/genapic.h> 5#include <asm/genapic.h>
@@ -8,4 +8,4 @@
8#define APIC_ID_MASK (genapic->apic_id_mask) 8#define APIC_ID_MASK (genapic->apic_id_mask)
9#endif 9#endif
10 10
11#endif 11#endif /* ASM_X86__MACH_GENERIC__MACH_APICDEF_H */
diff --git a/include/asm-x86/mach-generic/mach_ipi.h b/include/asm-x86/mach-generic/mach_ipi.h
index 441b0fe3ed1..f67433dbd65 100644
--- a/include/asm-x86/mach-generic/mach_ipi.h
+++ b/include/asm-x86/mach-generic/mach_ipi.h
@@ -1,5 +1,5 @@
1#ifndef _MACH_IPI_H 1#ifndef ASM_X86__MACH_GENERIC__MACH_IPI_H
2#define _MACH_IPI_H 1 2#define ASM_X86__MACH_GENERIC__MACH_IPI_H
3 3
4#include <asm/genapic.h> 4#include <asm/genapic.h>
5 5
@@ -7,4 +7,4 @@
7#define send_IPI_allbutself (genapic->send_IPI_allbutself) 7#define send_IPI_allbutself (genapic->send_IPI_allbutself)
8#define send_IPI_all (genapic->send_IPI_all) 8#define send_IPI_all (genapic->send_IPI_all)
9 9
10#endif 10#endif /* ASM_X86__MACH_GENERIC__MACH_IPI_H */
diff --git a/include/asm-x86/mach-generic/mach_mpparse.h b/include/asm-x86/mach-generic/mach_mpparse.h
index 586cadbf378..3115564e557 100644
--- a/include/asm-x86/mach-generic/mach_mpparse.h
+++ b/include/asm-x86/mach-generic/mach_mpparse.h
@@ -1,5 +1,5 @@
1#ifndef _MACH_MPPARSE_H 1#ifndef ASM_X86__MACH_GENERIC__MACH_MPPARSE_H
2#define _MACH_MPPARSE_H 1 2#define ASM_X86__MACH_GENERIC__MACH_MPPARSE_H
3 3
4 4
5extern int mps_oem_check(struct mp_config_table *mpc, char *oem, 5extern int mps_oem_check(struct mp_config_table *mpc, char *oem,
@@ -7,4 +7,4 @@ extern int mps_oem_check(struct mp_config_table *mpc, char *oem,
7 7
8extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id); 8extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id);
9 9
10#endif 10#endif /* ASM_X86__MACH_GENERIC__MACH_MPPARSE_H */
diff --git a/include/asm-x86/mach-generic/mach_mpspec.h b/include/asm-x86/mach-generic/mach_mpspec.h
index c83c120be53..6061b153613 100644
--- a/include/asm-x86/mach-generic/mach_mpspec.h
+++ b/include/asm-x86/mach-generic/mach_mpspec.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_MPSPEC_H 1#ifndef ASM_X86__MACH_GENERIC__MACH_MPSPEC_H
2#define __ASM_MACH_MPSPEC_H 2#define ASM_X86__MACH_GENERIC__MACH_MPSPEC_H
3 3
4#define MAX_IRQ_SOURCES 256 4#define MAX_IRQ_SOURCES 256
5 5
@@ -9,4 +9,4 @@
9 9
10extern void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem, 10extern void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem,
11 char *productid); 11 char *productid);
12#endif /* __ASM_MACH_MPSPEC_H */ 12#endif /* ASM_X86__MACH_GENERIC__MACH_MPSPEC_H */
diff --git a/include/asm-x86/mach-numaq/mach_apic.h b/include/asm-x86/mach-numaq/mach_apic.h
index d802465e026..7a0d39edfcf 100644
--- a/include/asm-x86/mach-numaq/mach_apic.h
+++ b/include/asm-x86/mach-numaq/mach_apic.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_APIC_H 1#ifndef ASM_X86__MACH_NUMAQ__MACH_APIC_H
2#define __ASM_MACH_APIC_H 2#define ASM_X86__MACH_NUMAQ__MACH_APIC_H
3 3
4#include <asm/io.h> 4#include <asm/io.h>
5#include <linux/mmzone.h> 5#include <linux/mmzone.h>
@@ -135,4 +135,4 @@ static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
135 return cpuid_apic >> index_msb; 135 return cpuid_apic >> index_msb;
136} 136}
137 137
138#endif /* __ASM_MACH_APIC_H */ 138#endif /* ASM_X86__MACH_NUMAQ__MACH_APIC_H */
diff --git a/include/asm-x86/mach-numaq/mach_apicdef.h b/include/asm-x86/mach-numaq/mach_apicdef.h
index bf439d0690f..f870ec5f778 100644
--- a/include/asm-x86/mach-numaq/mach_apicdef.h
+++ b/include/asm-x86/mach-numaq/mach_apicdef.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_APICDEF_H 1#ifndef ASM_X86__MACH_NUMAQ__MACH_APICDEF_H
2#define __ASM_MACH_APICDEF_H 2#define ASM_X86__MACH_NUMAQ__MACH_APICDEF_H
3 3
4 4
5#define APIC_ID_MASK (0xF<<24) 5#define APIC_ID_MASK (0xF<<24)
@@ -11,4 +11,4 @@ static inline unsigned get_apic_id(unsigned long x)
11 11
12#define GET_APIC_ID(x) get_apic_id(x) 12#define GET_APIC_ID(x) get_apic_id(x)
13 13
14#endif 14#endif /* ASM_X86__MACH_NUMAQ__MACH_APICDEF_H */
diff --git a/include/asm-x86/mach-numaq/mach_ipi.h b/include/asm-x86/mach-numaq/mach_ipi.h
index c6044488e9e..1e835823f4b 100644
--- a/include/asm-x86/mach-numaq/mach_ipi.h
+++ b/include/asm-x86/mach-numaq/mach_ipi.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_IPI_H 1#ifndef ASM_X86__MACH_NUMAQ__MACH_IPI_H
2#define __ASM_MACH_IPI_H 2#define ASM_X86__MACH_NUMAQ__MACH_IPI_H
3 3
4void send_IPI_mask_sequence(cpumask_t, int vector); 4void send_IPI_mask_sequence(cpumask_t, int vector);
5 5
@@ -22,4 +22,4 @@ static inline void send_IPI_all(int vector)
22 send_IPI_mask(cpu_online_map, vector); 22 send_IPI_mask(cpu_online_map, vector);
23} 23}
24 24
25#endif /* __ASM_MACH_IPI_H */ 25#endif /* ASM_X86__MACH_NUMAQ__MACH_IPI_H */
diff --git a/include/asm-x86/mach-numaq/mach_mpparse.h b/include/asm-x86/mach-numaq/mach_mpparse.h
index 626aef6b155..74ade184920 100644
--- a/include/asm-x86/mach-numaq/mach_mpparse.h
+++ b/include/asm-x86/mach-numaq/mach_mpparse.h
@@ -1,7 +1,7 @@
1#ifndef __ASM_MACH_MPPARSE_H 1#ifndef ASM_X86__MACH_NUMAQ__MACH_MPPARSE_H
2#define __ASM_MACH_MPPARSE_H 2#define ASM_X86__MACH_NUMAQ__MACH_MPPARSE_H
3 3
4extern void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem, 4extern void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem,
5 char *productid); 5 char *productid);
6 6
7#endif /* __ASM_MACH_MPPARSE_H */ 7#endif /* ASM_X86__MACH_NUMAQ__MACH_MPPARSE_H */
diff --git a/include/asm-x86/mach-numaq/mach_wakecpu.h b/include/asm-x86/mach-numaq/mach_wakecpu.h
index 00530041a99..0db8cea643c 100644
--- a/include/asm-x86/mach-numaq/mach_wakecpu.h
+++ b/include/asm-x86/mach-numaq/mach_wakecpu.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_WAKECPU_H 1#ifndef ASM_X86__MACH_NUMAQ__MACH_WAKECPU_H
2#define __ASM_MACH_WAKECPU_H 2#define ASM_X86__MACH_NUMAQ__MACH_WAKECPU_H
3 3
4/* This file copes with machines that wakeup secondary CPUs by NMIs */ 4/* This file copes with machines that wakeup secondary CPUs by NMIs */
5 5
@@ -40,4 +40,4 @@ static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
40 40
41#define inquire_remote_apic(apicid) {} 41#define inquire_remote_apic(apicid) {}
42 42
43#endif /* __ASM_MACH_WAKECPU_H */ 43#endif /* ASM_X86__MACH_NUMAQ__MACH_WAKECPU_H */
diff --git a/include/asm-x86/mach-rdc321x/gpio.h b/include/asm-x86/mach-rdc321x/gpio.h
index acce0b7d397..94b6cdf532e 100644
--- a/include/asm-x86/mach-rdc321x/gpio.h
+++ b/include/asm-x86/mach-rdc321x/gpio.h
@@ -1,5 +1,7 @@
1#ifndef _RDC321X_GPIO_H 1#ifndef ASM_X86__MACH_RDC321X__GPIO_H
2#define _RDC321X_GPIO_H 2#define ASM_X86__MACH_RDC321X__GPIO_H
3
4#include <linux/kernel.h>
3 5
4extern int rdc_gpio_get_value(unsigned gpio); 6extern int rdc_gpio_get_value(unsigned gpio);
5extern void rdc_gpio_set_value(unsigned gpio, int value); 7extern void rdc_gpio_set_value(unsigned gpio, int value);
@@ -18,6 +20,7 @@ static inline int gpio_request(unsigned gpio, const char *label)
18 20
19static inline void gpio_free(unsigned gpio) 21static inline void gpio_free(unsigned gpio)
20{ 22{
23 might_sleep();
21 rdc_gpio_free(gpio); 24 rdc_gpio_free(gpio);
22} 25}
23 26
@@ -54,4 +57,4 @@ static inline int irq_to_gpio(unsigned irq)
54/* For cansleep */ 57/* For cansleep */
55#include <asm-generic/gpio.h> 58#include <asm-generic/gpio.h>
56 59
57#endif /* _RDC321X_GPIO_H_ */ 60#endif /* ASM_X86__MACH_RDC321X__GPIO_H */
diff --git a/include/asm-x86/mach-summit/irq_vectors_limits.h b/include/asm-x86/mach-summit/irq_vectors_limits.h
index 890ce3f5e09..22f376ad68e 100644
--- a/include/asm-x86/mach-summit/irq_vectors_limits.h
+++ b/include/asm-x86/mach-summit/irq_vectors_limits.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_IRQ_VECTORS_LIMITS_H 1#ifndef ASM_X86__MACH_SUMMIT__IRQ_VECTORS_LIMITS_H
2#define _ASM_IRQ_VECTORS_LIMITS_H 2#define ASM_X86__MACH_SUMMIT__IRQ_VECTORS_LIMITS_H
3 3
4/* 4/*
5 * For Summit or generic (i.e. installer) kernels, we have lots of I/O APICs, 5 * For Summit or generic (i.e. installer) kernels, we have lots of I/O APICs,
@@ -11,4 +11,4 @@
11#define NR_IRQS 224 11#define NR_IRQS 224
12#define NR_IRQ_VECTORS 1024 12#define NR_IRQ_VECTORS 1024
13 13
14#endif /* _ASM_IRQ_VECTORS_LIMITS_H */ 14#endif /* ASM_X86__MACH_SUMMIT__IRQ_VECTORS_LIMITS_H */
diff --git a/include/asm-x86/mach-summit/mach_apic.h b/include/asm-x86/mach-summit/mach_apic.h
index c47e2ab5c5c..7a66758d701 100644
--- a/include/asm-x86/mach-summit/mach_apic.h
+++ b/include/asm-x86/mach-summit/mach_apic.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_APIC_H 1#ifndef ASM_X86__MACH_SUMMIT__MACH_APIC_H
2#define __ASM_MACH_APIC_H 2#define ASM_X86__MACH_SUMMIT__MACH_APIC_H
3 3
4#include <asm/smp.h> 4#include <asm/smp.h>
5 5
@@ -182,4 +182,4 @@ static inline u32 phys_pkg_id(u32 cpuid_apic, int index_msb)
182 return hard_smp_processor_id() >> index_msb; 182 return hard_smp_processor_id() >> index_msb;
183} 183}
184 184
185#endif /* __ASM_MACH_APIC_H */ 185#endif /* ASM_X86__MACH_SUMMIT__MACH_APIC_H */
diff --git a/include/asm-x86/mach-summit/mach_apicdef.h b/include/asm-x86/mach-summit/mach_apicdef.h
index a58ab5a75c8..d4bc8590c4f 100644
--- a/include/asm-x86/mach-summit/mach_apicdef.h
+++ b/include/asm-x86/mach-summit/mach_apicdef.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_APICDEF_H 1#ifndef ASM_X86__MACH_SUMMIT__MACH_APICDEF_H
2#define __ASM_MACH_APICDEF_H 2#define ASM_X86__MACH_SUMMIT__MACH_APICDEF_H
3 3
4#define APIC_ID_MASK (0xFF<<24) 4#define APIC_ID_MASK (0xFF<<24)
5 5
@@ -10,4 +10,4 @@ static inline unsigned get_apic_id(unsigned long x)
10 10
11#define GET_APIC_ID(x) get_apic_id(x) 11#define GET_APIC_ID(x) get_apic_id(x)
12 12
13#endif 13#endif /* ASM_X86__MACH_SUMMIT__MACH_APICDEF_H */
diff --git a/include/asm-x86/mach-summit/mach_ipi.h b/include/asm-x86/mach-summit/mach_ipi.h
index 9404c535b7e..a3b31c528d9 100644
--- a/include/asm-x86/mach-summit/mach_ipi.h
+++ b/include/asm-x86/mach-summit/mach_ipi.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_IPI_H 1#ifndef ASM_X86__MACH_SUMMIT__MACH_IPI_H
2#define __ASM_MACH_IPI_H 2#define ASM_X86__MACH_SUMMIT__MACH_IPI_H
3 3
4void send_IPI_mask_sequence(cpumask_t mask, int vector); 4void send_IPI_mask_sequence(cpumask_t mask, int vector);
5 5
@@ -22,4 +22,4 @@ static inline void send_IPI_all(int vector)
22 send_IPI_mask(cpu_online_map, vector); 22 send_IPI_mask(cpu_online_map, vector);
23} 23}
24 24
25#endif /* __ASM_MACH_IPI_H */ 25#endif /* ASM_X86__MACH_SUMMIT__MACH_IPI_H */
diff --git a/include/asm-x86/mach-summit/mach_mpparse.h b/include/asm-x86/mach-summit/mach_mpparse.h
index fdf59170133..92396f28772 100644
--- a/include/asm-x86/mach-summit/mach_mpparse.h
+++ b/include/asm-x86/mach-summit/mach_mpparse.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MACH_MPPARSE_H 1#ifndef ASM_X86__MACH_SUMMIT__MACH_MPPARSE_H
2#define __ASM_MACH_MPPARSE_H 2#define ASM_X86__MACH_SUMMIT__MACH_MPPARSE_H
3 3
4#include <mach_apic.h> 4#include <mach_apic.h>
5#include <asm/tsc.h> 5#include <asm/tsc.h>
@@ -107,4 +107,4 @@ static inline int is_WPEG(struct rio_detail *rio){
107 rio->type == LookOutAWPEG || rio->type == LookOutBWPEG); 107 rio->type == LookOutAWPEG || rio->type == LookOutBWPEG);
108} 108}
109 109
110#endif /* __ASM_MACH_MPPARSE_H */ 110#endif /* ASM_X86__MACH_SUMMIT__MACH_MPPARSE_H */
diff --git a/include/asm-x86/math_emu.h b/include/asm-x86/math_emu.h
index 9bf4ae93ab1..5768d8e95c8 100644
--- a/include/asm-x86/math_emu.h
+++ b/include/asm-x86/math_emu.h
@@ -1,5 +1,5 @@
1#ifndef _I386_MATH_EMU_H 1#ifndef ASM_X86__MATH_EMU_H
2#define _I386_MATH_EMU_H 2#define ASM_X86__MATH_EMU_H
3 3
4/* This structure matches the layout of the data saved to the stack 4/* This structure matches the layout of the data saved to the stack
5 following a device-not-present interrupt, part of it saved 5 following a device-not-present interrupt, part of it saved
@@ -28,4 +28,4 @@ struct info {
28 long ___vm86_fs; 28 long ___vm86_fs;
29 long ___vm86_gs; 29 long ___vm86_gs;
30}; 30};
31#endif 31#endif /* ASM_X86__MATH_EMU_H */
diff --git a/include/asm-x86/mc146818rtc.h b/include/asm-x86/mc146818rtc.h
index daf1ccde77a..a995f33176c 100644
--- a/include/asm-x86/mc146818rtc.h
+++ b/include/asm-x86/mc146818rtc.h
@@ -1,8 +1,8 @@
1/* 1/*
2 * Machine dependent access functions for RTC registers. 2 * Machine dependent access functions for RTC registers.
3 */ 3 */
4#ifndef _ASM_MC146818RTC_H 4#ifndef ASM_X86__MC146818RTC_H
5#define _ASM_MC146818RTC_H 5#define ASM_X86__MC146818RTC_H
6 6
7#include <asm/io.h> 7#include <asm/io.h>
8#include <asm/system.h> 8#include <asm/system.h>
@@ -101,4 +101,4 @@ extern unsigned long mach_get_cmos_time(void);
101 101
102#define RTC_IRQ 8 102#define RTC_IRQ 8
103 103
104#endif /* _ASM_MC146818RTC_H */ 104#endif /* ASM_X86__MC146818RTC_H */
diff --git a/include/asm-x86/mca.h b/include/asm-x86/mca.h
index 09adf2eac4d..60d1ed287b1 100644
--- a/include/asm-x86/mca.h
+++ b/include/asm-x86/mca.h
@@ -1,8 +1,8 @@
1/* -*- mode: c; c-basic-offset: 8 -*- */ 1/* -*- mode: c; c-basic-offset: 8 -*- */
2 2
3/* Platform specific MCA defines */ 3/* Platform specific MCA defines */
4#ifndef _ASM_MCA_H 4#ifndef ASM_X86__MCA_H
5#define _ASM_MCA_H 5#define ASM_X86__MCA_H
6 6
7/* Maximal number of MCA slots - actually, some machines have less, but 7/* Maximal number of MCA slots - actually, some machines have less, but
8 * they all have sufficient number of POS registers to cover 8. 8 * they all have sufficient number of POS registers to cover 8.
@@ -40,4 +40,4 @@
40 */ 40 */
41#define MCA_NUMADAPTERS (MCA_MAX_SLOT_NR+3) 41#define MCA_NUMADAPTERS (MCA_MAX_SLOT_NR+3)
42 42
43#endif 43#endif /* ASM_X86__MCA_H */
diff --git a/include/asm-x86/mca_dma.h b/include/asm-x86/mca_dma.h
index c3dca6edc6b..49f22be237d 100644
--- a/include/asm-x86/mca_dma.h
+++ b/include/asm-x86/mca_dma.h
@@ -1,5 +1,5 @@
1#ifndef MCA_DMA_H 1#ifndef ASM_X86__MCA_DMA_H
2#define MCA_DMA_H 2#define ASM_X86__MCA_DMA_H
3 3
4#include <asm/io.h> 4#include <asm/io.h>
5#include <linux/ioport.h> 5#include <linux/ioport.h>
@@ -198,4 +198,4 @@ static inline void mca_set_dma_mode(unsigned int dmanr, unsigned int mode)
198 outb(mode, MCA_DMA_REG_EXE); 198 outb(mode, MCA_DMA_REG_EXE);
199} 199}
200 200
201#endif /* MCA_DMA_H */ 201#endif /* ASM_X86__MCA_DMA_H */
diff --git a/include/asm-x86/mce.h b/include/asm-x86/mce.h
index 94f1fd79e22..036133eaf74 100644
--- a/include/asm-x86/mce.h
+++ b/include/asm-x86/mce.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_MCE_H 1#ifndef ASM_X86__MCE_H
2#define _ASM_X86_MCE_H 2#define ASM_X86__MCE_H
3 3
4#ifdef __x86_64__ 4#ifdef __x86_64__
5 5
@@ -92,6 +92,7 @@ extern int mce_disabled;
92 92
93void mce_log(struct mce *m); 93void mce_log(struct mce *m);
94DECLARE_PER_CPU(struct sys_device, device_mce); 94DECLARE_PER_CPU(struct sys_device, device_mce);
95extern void (*threshold_cpu_callback)(unsigned long action, unsigned int cpu);
95 96
96#ifdef CONFIG_X86_MCE_INTEL 97#ifdef CONFIG_X86_MCE_INTEL
97void mce_intel_feature_init(struct cpuinfo_x86 *c); 98void mce_intel_feature_init(struct cpuinfo_x86 *c);
@@ -126,4 +127,4 @@ extern void restart_mce(void);
126 127
127#endif /* __KERNEL__ */ 128#endif /* __KERNEL__ */
128 129
129#endif 130#endif /* ASM_X86__MCE_H */
diff --git a/include/asm-x86/mman.h b/include/asm-x86/mman.h
index 90bc4108a4f..4ef28e6de38 100644
--- a/include/asm-x86/mman.h
+++ b/include/asm-x86/mman.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_MMAN_H 1#ifndef ASM_X86__MMAN_H
2#define _ASM_X86_MMAN_H 2#define ASM_X86__MMAN_H
3 3
4#include <asm-generic/mman.h> 4#include <asm-generic/mman.h>
5 5
@@ -17,4 +17,4 @@
17#define MCL_CURRENT 1 /* lock all current mappings */ 17#define MCL_CURRENT 1 /* lock all current mappings */
18#define MCL_FUTURE 2 /* lock all future mappings */ 18#define MCL_FUTURE 2 /* lock all future mappings */
19 19
20#endif /* _ASM_X86_MMAN_H */ 20#endif /* ASM_X86__MMAN_H */
diff --git a/include/asm-x86/mmconfig.h b/include/asm-x86/mmconfig.h
index e293ab81e85..fb79b1cf5d0 100644
--- a/include/asm-x86/mmconfig.h
+++ b/include/asm-x86/mmconfig.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_MMCONFIG_H 1#ifndef ASM_X86__MMCONFIG_H
2#define _ASM_MMCONFIG_H 2#define ASM_X86__MMCONFIG_H
3 3
4#ifdef CONFIG_PCI_MMCONFIG 4#ifdef CONFIG_PCI_MMCONFIG
5extern void __cpuinit fam10h_check_enable_mmcfg(void); 5extern void __cpuinit fam10h_check_enable_mmcfg(void);
@@ -9,4 +9,4 @@ static inline void fam10h_check_enable_mmcfg(void) { }
9static inline void check_enable_amd_mmconf_dmi(void) { } 9static inline void check_enable_amd_mmconf_dmi(void) { }
10#endif 10#endif
11 11
12#endif 12#endif /* ASM_X86__MMCONFIG_H */
diff --git a/include/asm-x86/mmu.h b/include/asm-x86/mmu.h
index 00e88679e11..9d5aff14334 100644
--- a/include/asm-x86/mmu.h
+++ b/include/asm-x86/mmu.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_MMU_H 1#ifndef ASM_X86__MMU_H
2#define _ASM_X86_MMU_H 2#define ASM_X86__MMU_H
3 3
4#include <linux/spinlock.h> 4#include <linux/spinlock.h>
5#include <linux/mutex.h> 5#include <linux/mutex.h>
@@ -7,14 +7,9 @@
7/* 7/*
8 * The x86 doesn't have a mmu context, but 8 * The x86 doesn't have a mmu context, but
9 * we put the segment information here. 9 * we put the segment information here.
10 *
11 * cpu_vm_mask is used to optimize ldt flushing.
12 */ 10 */
13typedef struct { 11typedef struct {
14 void *ldt; 12 void *ldt;
15#ifdef CONFIG_X86_64
16 rwlock_t ldtlock;
17#endif
18 int size; 13 int size;
19 struct mutex lock; 14 struct mutex lock;
20 void *vdso; 15 void *vdso;
@@ -28,4 +23,4 @@ static inline void leave_mm(int cpu)
28} 23}
29#endif 24#endif
30 25
31#endif /* _ASM_X86_MMU_H */ 26#endif /* ASM_X86__MMU_H */
diff --git a/include/asm-x86/mmu_context.h b/include/asm-x86/mmu_context.h
index fac57014e7c..8ec940bfd07 100644
--- a/include/asm-x86/mmu_context.h
+++ b/include/asm-x86/mmu_context.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_X86_MMU_CONTEXT_H 1#ifndef ASM_X86__MMU_CONTEXT_H
2#define __ASM_X86_MMU_CONTEXT_H 2#define ASM_X86__MMU_CONTEXT_H
3 3
4#include <asm/desc.h> 4#include <asm/desc.h>
5#include <asm/atomic.h> 5#include <asm/atomic.h>
@@ -34,4 +34,4 @@ do { \
34} while (0); 34} while (0);
35 35
36 36
37#endif /* __ASM_X86_MMU_CONTEXT_H */ 37#endif /* ASM_X86__MMU_CONTEXT_H */
diff --git a/include/asm-x86/mmu_context_32.h b/include/asm-x86/mmu_context_32.h
index 824fc575c6d..cce6f6e4afd 100644
--- a/include/asm-x86/mmu_context_32.h
+++ b/include/asm-x86/mmu_context_32.h
@@ -1,5 +1,5 @@
1#ifndef __I386_SCHED_H 1#ifndef ASM_X86__MMU_CONTEXT_32_H
2#define __I386_SCHED_H 2#define ASM_X86__MMU_CONTEXT_32_H
3 3
4static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) 4static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
5{ 5{
@@ -53,4 +53,4 @@ static inline void switch_mm(struct mm_struct *prev,
53#define deactivate_mm(tsk, mm) \ 53#define deactivate_mm(tsk, mm) \
54 asm("movl %0,%%gs": :"r" (0)); 54 asm("movl %0,%%gs": :"r" (0));
55 55
56#endif 56#endif /* ASM_X86__MMU_CONTEXT_32_H */
diff --git a/include/asm-x86/mmu_context_64.h b/include/asm-x86/mmu_context_64.h
index c7000634cca..26758673c82 100644
--- a/include/asm-x86/mmu_context_64.h
+++ b/include/asm-x86/mmu_context_64.h
@@ -1,5 +1,5 @@
1#ifndef __X86_64_MMU_CONTEXT_H 1#ifndef ASM_X86__MMU_CONTEXT_64_H
2#define __X86_64_MMU_CONTEXT_H 2#define ASM_X86__MMU_CONTEXT_64_H
3 3
4#include <asm/pda.h> 4#include <asm/pda.h>
5 5
@@ -51,4 +51,4 @@ do { \
51 asm volatile("movl %0,%%fs"::"r"(0)); \ 51 asm volatile("movl %0,%%fs"::"r"(0)); \
52} while (0) 52} while (0)
53 53
54#endif 54#endif /* ASM_X86__MMU_CONTEXT_64_H */
diff --git a/include/asm-x86/mmx.h b/include/asm-x86/mmx.h
index 940881218ff..2e7299bb365 100644
--- a/include/asm-x86/mmx.h
+++ b/include/asm-x86/mmx.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_MMX_H 1#ifndef ASM_X86__MMX_H
2#define _ASM_MMX_H 2#define ASM_X86__MMX_H
3 3
4/* 4/*
5 * MMX 3Dnow! helper operations 5 * MMX 3Dnow! helper operations
@@ -11,4 +11,4 @@ extern void *_mmx_memcpy(void *to, const void *from, size_t size);
11extern void mmx_clear_page(void *page); 11extern void mmx_clear_page(void *page);
12extern void mmx_copy_page(void *to, void *from); 12extern void mmx_copy_page(void *to, void *from);
13 13
14#endif 14#endif /* ASM_X86__MMX_H */
diff --git a/include/asm-x86/mmzone_32.h b/include/asm-x86/mmzone_32.h
index 5862e646065..121b65d61d8 100644
--- a/include/asm-x86/mmzone_32.h
+++ b/include/asm-x86/mmzone_32.h
@@ -3,8 +3,8 @@
3 * 3 *
4 */ 4 */
5 5
6#ifndef _ASM_MMZONE_H_ 6#ifndef ASM_X86__MMZONE_32_H
7#define _ASM_MMZONE_H_ 7#define ASM_X86__MMZONE_32_H
8 8
9#include <asm/smp.h> 9#include <asm/smp.h>
10 10
@@ -131,4 +131,4 @@ static inline int pfn_valid(int pfn)
131}) 131})
132#endif /* CONFIG_NEED_MULTIPLE_NODES */ 132#endif /* CONFIG_NEED_MULTIPLE_NODES */
133 133
134#endif /* _ASM_MMZONE_H_ */ 134#endif /* ASM_X86__MMZONE_32_H */
diff --git a/include/asm-x86/mmzone_64.h b/include/asm-x86/mmzone_64.h
index 594bd0dc1d0..626b03a1487 100644
--- a/include/asm-x86/mmzone_64.h
+++ b/include/asm-x86/mmzone_64.h
@@ -1,8 +1,8 @@
1/* K8 NUMA support */ 1/* K8 NUMA support */
2/* Copyright 2002,2003 by Andi Kleen, SuSE Labs */ 2/* Copyright 2002,2003 by Andi Kleen, SuSE Labs */
3/* 2.5 Version loosely based on the NUMAQ Code by Pat Gaughen. */ 3/* 2.5 Version loosely based on the NUMAQ Code by Pat Gaughen. */
4#ifndef _ASM_X86_64_MMZONE_H 4#ifndef ASM_X86__MMZONE_64_H
5#define _ASM_X86_64_MMZONE_H 1 5#define ASM_X86__MMZONE_64_H
6 6
7 7
8#ifdef CONFIG_NUMA 8#ifdef CONFIG_NUMA
@@ -49,4 +49,4 @@ extern int early_pfn_to_nid(unsigned long pfn);
49#endif 49#endif
50 50
51#endif 51#endif
52#endif 52#endif /* ASM_X86__MMZONE_64_H */
diff --git a/include/asm-x86/module.h b/include/asm-x86/module.h
index bfedb247871..48dc3e0c07d 100644
--- a/include/asm-x86/module.h
+++ b/include/asm-x86/module.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_MODULE_H 1#ifndef ASM_X86__MODULE_H
2#define _ASM_MODULE_H 2#define ASM_X86__MODULE_H
3 3
4/* x86_32/64 are simple */ 4/* x86_32/64 are simple */
5struct mod_arch_specific {}; 5struct mod_arch_specific {};
@@ -79,4 +79,4 @@ struct mod_arch_specific {};
79# define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_STACKSIZE 79# define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_STACKSIZE
80#endif 80#endif
81 81
82#endif /* _ASM_MODULE_H */ 82#endif /* ASM_X86__MODULE_H */
diff --git a/include/asm-x86/mpspec.h b/include/asm-x86/mpspec.h
index b6995e567fc..118da365e37 100644
--- a/include/asm-x86/mpspec.h
+++ b/include/asm-x86/mpspec.h
@@ -1,5 +1,5 @@
1#ifndef _AM_X86_MPSPEC_H 1#ifndef ASM_X86__MPSPEC_H
2#define _AM_X86_MPSPEC_H 2#define ASM_X86__MPSPEC_H
3 3
4#include <linux/init.h> 4#include <linux/init.h>
5 5
@@ -141,4 +141,4 @@ static inline void physid_set_mask_of_physid(int physid, physid_mask_t *map)
141 141
142extern physid_mask_t phys_cpu_present_map; 142extern physid_mask_t phys_cpu_present_map;
143 143
144#endif 144#endif /* ASM_X86__MPSPEC_H */
diff --git a/include/asm-x86/mpspec_def.h b/include/asm-x86/mpspec_def.h
index 38d1e73b49e..79166b04801 100644
--- a/include/asm-x86/mpspec_def.h
+++ b/include/asm-x86/mpspec_def.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MPSPEC_DEF_H 1#ifndef ASM_X86__MPSPEC_DEF_H
2#define __ASM_MPSPEC_DEF_H 2#define ASM_X86__MPSPEC_DEF_H
3 3
4/* 4/*
5 * Structure definitions for SMP machines following the 5 * Structure definitions for SMP machines following the
@@ -177,4 +177,4 @@ enum mp_bustype {
177 MP_BUS_PCI, 177 MP_BUS_PCI,
178 MP_BUS_MCA, 178 MP_BUS_MCA,
179}; 179};
180#endif 180#endif /* ASM_X86__MPSPEC_DEF_H */
diff --git a/include/asm-x86/msgbuf.h b/include/asm-x86/msgbuf.h
index 7e4e9481f51..1b538c907a3 100644
--- a/include/asm-x86/msgbuf.h
+++ b/include/asm-x86/msgbuf.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_MSGBUF_H 1#ifndef ASM_X86__MSGBUF_H
2#define _ASM_X86_MSGBUF_H 2#define ASM_X86__MSGBUF_H
3 3
4/* 4/*
5 * The msqid64_ds structure for i386 architecture. 5 * The msqid64_ds structure for i386 architecture.
@@ -36,4 +36,4 @@ struct msqid64_ds {
36 unsigned long __unused5; 36 unsigned long __unused5;
37}; 37};
38 38
39#endif /* _ASM_X86_MSGBUF_H */ 39#endif /* ASM_X86__MSGBUF_H */
diff --git a/include/asm-x86/msidef.h b/include/asm-x86/msidef.h
index 296f29ce426..3139666a94f 100644
--- a/include/asm-x86/msidef.h
+++ b/include/asm-x86/msidef.h
@@ -1,5 +1,5 @@
1#ifndef ASM_MSIDEF_H 1#ifndef ASM_X86__MSIDEF_H
2#define ASM_MSIDEF_H 2#define ASM_X86__MSIDEF_H
3 3
4/* 4/*
5 * Constants for Intel APIC based MSI messages. 5 * Constants for Intel APIC based MSI messages.
@@ -48,4 +48,4 @@
48#define MSI_ADDR_DEST_ID(dest) (((dest) << MSI_ADDR_DEST_ID_SHIFT) & \ 48#define MSI_ADDR_DEST_ID(dest) (((dest) << MSI_ADDR_DEST_ID_SHIFT) & \
49 MSI_ADDR_DEST_ID_MASK) 49 MSI_ADDR_DEST_ID_MASK)
50 50
51#endif /* ASM_MSIDEF_H */ 51#endif /* ASM_X86__MSIDEF_H */
diff --git a/include/asm-x86/msr-index.h b/include/asm-x86/msr-index.h
index 44bce773012..3052f058ab0 100644
--- a/include/asm-x86/msr-index.h
+++ b/include/asm-x86/msr-index.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_MSR_INDEX_H 1#ifndef ASM_X86__MSR_INDEX_H
2#define __ASM_MSR_INDEX_H 2#define ASM_X86__MSR_INDEX_H
3 3
4/* CPU model specific register (MSR) numbers */ 4/* CPU model specific register (MSR) numbers */
5 5
@@ -310,4 +310,4 @@
310/* Geode defined MSRs */ 310/* Geode defined MSRs */
311#define MSR_GEODE_BUSCONT_CONF0 0x00001900 311#define MSR_GEODE_BUSCONT_CONF0 0x00001900
312 312
313#endif /* __ASM_MSR_INDEX_H */ 313#endif /* ASM_X86__MSR_INDEX_H */
diff --git a/include/asm-x86/msr.h b/include/asm-x86/msr.h
index ca110ee73f0..530af1f6389 100644
--- a/include/asm-x86/msr.h
+++ b/include/asm-x86/msr.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_X86_MSR_H_ 1#ifndef ASM_X86__MSR_H
2#define __ASM_X86_MSR_H_ 2#define ASM_X86__MSR_H
3 3
4#include <asm/msr-index.h> 4#include <asm/msr-index.h>
5 5
@@ -52,6 +52,22 @@ static inline unsigned long long native_read_msr_safe(unsigned int msr,
52{ 52{
53 DECLARE_ARGS(val, low, high); 53 DECLARE_ARGS(val, low, high);
54 54
55 asm volatile("2: rdmsr ; xor %[err],%[err]\n"
56 "1:\n\t"
57 ".section .fixup,\"ax\"\n\t"
58 "3: mov %[fault],%[err] ; jmp 1b\n\t"
59 ".previous\n\t"
60 _ASM_EXTABLE(2b, 3b)
61 : [err] "=r" (*err), EAX_EDX_RET(val, low, high)
62 : "c" (msr), [fault] "i" (-EFAULT));
63 return EAX_EDX_VAL(val, low, high);
64}
65
66static inline unsigned long long native_read_msr_amd_safe(unsigned int msr,
67 int *err)
68{
69 DECLARE_ARGS(val, low, high);
70
55 asm volatile("2: rdmsr ; xor %0,%0\n" 71 asm volatile("2: rdmsr ; xor %0,%0\n"
56 "1:\n\t" 72 "1:\n\t"
57 ".section .fixup,\"ax\"\n\t" 73 ".section .fixup,\"ax\"\n\t"
@@ -59,7 +75,7 @@ static inline unsigned long long native_read_msr_safe(unsigned int msr,
59 ".previous\n\t" 75 ".previous\n\t"
60 _ASM_EXTABLE(2b, 3b) 76 _ASM_EXTABLE(2b, 3b)
61 : "=r" (*err), EAX_EDX_RET(val, low, high) 77 : "=r" (*err), EAX_EDX_RET(val, low, high)
62 : "c" (msr), "i" (-EFAULT)); 78 : "c" (msr), "D" (0x9c5a203a), "i" (-EFAULT));
63 return EAX_EDX_VAL(val, low, high); 79 return EAX_EDX_VAL(val, low, high);
64} 80}
65 81
@@ -73,15 +89,15 @@ static inline int native_write_msr_safe(unsigned int msr,
73 unsigned low, unsigned high) 89 unsigned low, unsigned high)
74{ 90{
75 int err; 91 int err;
76 asm volatile("2: wrmsr ; xor %0,%0\n" 92 asm volatile("2: wrmsr ; xor %[err],%[err]\n"
77 "1:\n\t" 93 "1:\n\t"
78 ".section .fixup,\"ax\"\n\t" 94 ".section .fixup,\"ax\"\n\t"
79 "3: mov %4,%0 ; jmp 1b\n\t" 95 "3: mov %[fault],%[err] ; jmp 1b\n\t"
80 ".previous\n\t" 96 ".previous\n\t"
81 _ASM_EXTABLE(2b, 3b) 97 _ASM_EXTABLE(2b, 3b)
82 : "=a" (err) 98 : [err] "=a" (err)
83 : "c" (msr), "0" (low), "d" (high), 99 : "c" (msr), "0" (low), "d" (high),
84 "i" (-EFAULT) 100 [fault] "i" (-EFAULT)
85 : "memory"); 101 : "memory");
86 return err; 102 return err;
87} 103}
@@ -158,6 +174,13 @@ static inline int rdmsrl_safe(unsigned msr, unsigned long long *p)
158 *p = native_read_msr_safe(msr, &err); 174 *p = native_read_msr_safe(msr, &err);
159 return err; 175 return err;
160} 176}
177static inline int rdmsrl_amd_safe(unsigned msr, unsigned long long *p)
178{
179 int err;
180
181 *p = native_read_msr_amd_safe(msr, &err);
182 return err;
183}
161 184
162#define rdtscl(low) \ 185#define rdtscl(low) \
163 ((low) = (u32)native_read_tsc()) 186 ((low) = (u32)native_read_tsc())
@@ -192,19 +215,20 @@ do { \
192#define write_rdtscp_aux(val) wrmsr(0xc0000103, (val), 0) 215#define write_rdtscp_aux(val) wrmsr(0xc0000103, (val), 0)
193 216
194#ifdef CONFIG_SMP 217#ifdef CONFIG_SMP
195void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h); 218int rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h);
196void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h); 219int wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h);
197int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h); 220int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h);
198
199int wrmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h); 221int wrmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h);
200#else /* CONFIG_SMP */ 222#else /* CONFIG_SMP */
201static inline void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h) 223static inline int rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h)
202{ 224{
203 rdmsr(msr_no, *l, *h); 225 rdmsr(msr_no, *l, *h);
226 return 0;
204} 227}
205static inline void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h) 228static inline int wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
206{ 229{
207 wrmsr(msr_no, l, h); 230 wrmsr(msr_no, l, h);
231 return 0;
208} 232}
209static inline int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, 233static inline int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no,
210 u32 *l, u32 *h) 234 u32 *l, u32 *h)
@@ -220,4 +244,4 @@ static inline int wrmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
220#endif /* __KERNEL__ */ 244#endif /* __KERNEL__ */
221 245
222 246
223#endif 247#endif /* ASM_X86__MSR_H */
diff --git a/include/asm-x86/mtrr.h b/include/asm-x86/mtrr.h
index a69a01a5172..23a7f83da95 100644
--- a/include/asm-x86/mtrr.h
+++ b/include/asm-x86/mtrr.h
@@ -20,8 +20,8 @@
20 The postal address is: 20 The postal address is:
21 Richard Gooch, c/o ATNF, P. O. Box 76, Epping, N.S.W., 2121, Australia. 21 Richard Gooch, c/o ATNF, P. O. Box 76, Epping, N.S.W., 2121, Australia.
22*/ 22*/
23#ifndef _ASM_X86_MTRR_H 23#ifndef ASM_X86__MTRR_H
24#define _ASM_X86_MTRR_H 24#define ASM_X86__MTRR_H
25 25
26#include <linux/ioctl.h> 26#include <linux/ioctl.h>
27#include <linux/errno.h> 27#include <linux/errno.h>
@@ -170,4 +170,4 @@ struct mtrr_gentry32 {
170 170
171#endif /* __KERNEL__ */ 171#endif /* __KERNEL__ */
172 172
173#endif /* _ASM_X86_MTRR_H */ 173#endif /* ASM_X86__MTRR_H */
diff --git a/include/asm-x86/mutex_32.h b/include/asm-x86/mutex_32.h
index 73e928ef5f0..25c16d8ba3c 100644
--- a/include/asm-x86/mutex_32.h
+++ b/include/asm-x86/mutex_32.h
@@ -6,8 +6,8 @@
6 * 6 *
7 * Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com> 7 * Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
8 */ 8 */
9#ifndef _ASM_MUTEX_H 9#ifndef ASM_X86__MUTEX_32_H
10#define _ASM_MUTEX_H 10#define ASM_X86__MUTEX_32_H
11 11
12#include <asm/alternative.h> 12#include <asm/alternative.h>
13 13
@@ -122,4 +122,4 @@ static inline int __mutex_fastpath_trylock(atomic_t *count,
122#endif 122#endif
123} 123}
124 124
125#endif 125#endif /* ASM_X86__MUTEX_32_H */
diff --git a/include/asm-x86/mutex_64.h b/include/asm-x86/mutex_64.h
index f3fae9becb3..918ba21ab9d 100644
--- a/include/asm-x86/mutex_64.h
+++ b/include/asm-x86/mutex_64.h
@@ -6,8 +6,8 @@
6 * 6 *
7 * Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com> 7 * Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
8 */ 8 */
9#ifndef _ASM_MUTEX_H 9#ifndef ASM_X86__MUTEX_64_H
10#define _ASM_MUTEX_H 10#define ASM_X86__MUTEX_64_H
11 11
12/** 12/**
13 * __mutex_fastpath_lock - decrement and call function if negative 13 * __mutex_fastpath_lock - decrement and call function if negative
@@ -97,4 +97,4 @@ static inline int __mutex_fastpath_trylock(atomic_t *count,
97 return 0; 97 return 0;
98} 98}
99 99
100#endif 100#endif /* ASM_X86__MUTEX_64_H */
diff --git a/include/asm-x86/nmi.h b/include/asm-x86/nmi.h
index 21f8d0202a8..d5e715f024d 100644
--- a/include/asm-x86/nmi.h
+++ b/include/asm-x86/nmi.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_NMI_H_ 1#ifndef ASM_X86__NMI_H
2#define _ASM_X86_NMI_H_ 2#define ASM_X86__NMI_H
3 3
4#include <linux/pm.h> 4#include <linux/pm.h>
5#include <asm/irq.h> 5#include <asm/irq.h>
@@ -34,6 +34,7 @@ extern void stop_apic_nmi_watchdog(void *);
34extern void disable_timer_nmi_watchdog(void); 34extern void disable_timer_nmi_watchdog(void);
35extern void enable_timer_nmi_watchdog(void); 35extern void enable_timer_nmi_watchdog(void);
36extern int nmi_watchdog_tick(struct pt_regs *regs, unsigned reason); 36extern int nmi_watchdog_tick(struct pt_regs *regs, unsigned reason);
37extern void cpu_nmi_set_wd_enabled(void);
37 38
38extern atomic_t nmi_active; 39extern atomic_t nmi_active;
39extern unsigned int nmi_watchdog; 40extern unsigned int nmi_watchdog;
@@ -81,4 +82,4 @@ void enable_lapic_nmi_watchdog(void);
81void stop_nmi(void); 82void stop_nmi(void);
82void restart_nmi(void); 83void restart_nmi(void);
83 84
84#endif 85#endif /* ASM_X86__NMI_H */
diff --git a/include/asm-x86/nops.h b/include/asm-x86/nops.h
index ad0bedd10b8..ae742721ae7 100644
--- a/include/asm-x86/nops.h
+++ b/include/asm-x86/nops.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_NOPS_H 1#ifndef ASM_X86__NOPS_H
2#define _ASM_NOPS_H 1 2#define ASM_X86__NOPS_H
3 3
4/* Define nops for use with alternative() */ 4/* Define nops for use with alternative() */
5 5
@@ -115,4 +115,4 @@
115 115
116#define ASM_NOP_MAX 8 116#define ASM_NOP_MAX 8
117 117
118#endif 118#endif /* ASM_X86__NOPS_H */
diff --git a/include/asm-x86/numa_32.h b/include/asm-x86/numa_32.h
index 220d7b7707a..44cb07855c5 100644
--- a/include/asm-x86/numa_32.h
+++ b/include/asm-x86/numa_32.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_32_NUMA_H 1#ifndef ASM_X86__NUMA_32_H
2#define _ASM_X86_32_NUMA_H 1 2#define ASM_X86__NUMA_32_H
3 3
4extern int pxm_to_nid(int pxm); 4extern int pxm_to_nid(int pxm);
5extern void numa_remove_cpu(int cpu); 5extern void numa_remove_cpu(int cpu);
@@ -8,4 +8,4 @@ extern void numa_remove_cpu(int cpu);
8extern void set_highmem_pages_init(void); 8extern void set_highmem_pages_init(void);
9#endif 9#endif
10 10
11#endif /* _ASM_X86_32_NUMA_H */ 11#endif /* ASM_X86__NUMA_32_H */
diff --git a/include/asm-x86/numa_64.h b/include/asm-x86/numa_64.h
index 3830094434a..15c990395b0 100644
--- a/include/asm-x86/numa_64.h
+++ b/include/asm-x86/numa_64.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X8664_NUMA_H 1#ifndef ASM_X86__NUMA_64_H
2#define _ASM_X8664_NUMA_H 1 2#define ASM_X86__NUMA_64_H
3 3
4#include <linux/nodemask.h> 4#include <linux/nodemask.h>
5#include <asm/apicdef.h> 5#include <asm/apicdef.h>
@@ -40,4 +40,4 @@ static inline void numa_add_cpu(int cpu, int node) { }
40static inline void numa_remove_cpu(int cpu) { } 40static inline void numa_remove_cpu(int cpu) { }
41#endif 41#endif
42 42
43#endif 43#endif /* ASM_X86__NUMA_64_H */
diff --git a/include/asm-x86/numaq.h b/include/asm-x86/numaq.h
index 34b92d581fa..124bf7d4b70 100644
--- a/include/asm-x86/numaq.h
+++ b/include/asm-x86/numaq.h
@@ -23,8 +23,8 @@
23 * Send feedback to <gone@us.ibm.com> 23 * Send feedback to <gone@us.ibm.com>
24 */ 24 */
25 25
26#ifndef NUMAQ_H 26#ifndef ASM_X86__NUMAQ_H
27#define NUMAQ_H 27#define ASM_X86__NUMAQ_H
28 28
29#ifdef CONFIG_X86_NUMAQ 29#ifdef CONFIG_X86_NUMAQ
30 30
@@ -165,5 +165,5 @@ static inline int get_memcfg_numaq(void)
165 return 0; 165 return 0;
166} 166}
167#endif /* CONFIG_X86_NUMAQ */ 167#endif /* CONFIG_X86_NUMAQ */
168#endif /* NUMAQ_H */ 168#endif /* ASM_X86__NUMAQ_H */
169 169
diff --git a/include/asm-x86/olpc.h b/include/asm-x86/olpc.h
index 97d47133486..d7328b1a05c 100644
--- a/include/asm-x86/olpc.h
+++ b/include/asm-x86/olpc.h
@@ -1,7 +1,7 @@
1/* OLPC machine specific definitions */ 1/* OLPC machine specific definitions */
2 2
3#ifndef ASM_OLPC_H_ 3#ifndef ASM_X86__OLPC_H
4#define ASM_OLPC_H_ 4#define ASM_X86__OLPC_H
5 5
6#include <asm/geode.h> 6#include <asm/geode.h>
7 7
@@ -129,4 +129,4 @@ extern int olpc_ec_mask_unset(uint8_t bits);
129#define OLPC_GPIO_LID geode_gpio(26) 129#define OLPC_GPIO_LID geode_gpio(26)
130#define OLPC_GPIO_ECSCI geode_gpio(27) 130#define OLPC_GPIO_ECSCI geode_gpio(27)
131 131
132#endif 132#endif /* ASM_X86__OLPC_H */
diff --git a/include/asm-x86/page.h b/include/asm-x86/page.h
index 49982110e4d..79544e6ffb8 100644
--- a/include/asm-x86/page.h
+++ b/include/asm-x86/page.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_PAGE_H 1#ifndef ASM_X86__PAGE_H
2#define _ASM_X86_PAGE_H 2#define ASM_X86__PAGE_H
3 3
4#include <linux/const.h> 4#include <linux/const.h>
5 5
@@ -199,4 +199,4 @@ static inline pteval_t native_pte_flags(pte_t pte)
199#define __HAVE_ARCH_GATE_AREA 1 199#define __HAVE_ARCH_GATE_AREA 1
200 200
201#endif /* __KERNEL__ */ 201#endif /* __KERNEL__ */
202#endif /* _ASM_X86_PAGE_H */ 202#endif /* ASM_X86__PAGE_H */
diff --git a/include/asm-x86/page_32.h b/include/asm-x86/page_32.h
index ab8528793f0..72f7305682c 100644
--- a/include/asm-x86/page_32.h
+++ b/include/asm-x86/page_32.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_PAGE_32_H 1#ifndef ASM_X86__PAGE_32_H
2#define _ASM_X86_PAGE_32_H 2#define ASM_X86__PAGE_32_H
3 3
4/* 4/*
5 * This handles the memory map. 5 * This handles the memory map.
@@ -89,13 +89,11 @@ extern int nx_enabled;
89extern unsigned int __VMALLOC_RESERVE; 89extern unsigned int __VMALLOC_RESERVE;
90extern int sysctl_legacy_va_layout; 90extern int sysctl_legacy_va_layout;
91 91
92#define VMALLOC_RESERVE ((unsigned long)__VMALLOC_RESERVE)
93#define MAXMEM (-__PAGE_OFFSET - __VMALLOC_RESERVE)
94
95extern void find_low_pfn_range(void); 92extern void find_low_pfn_range(void);
96extern unsigned long init_memory_mapping(unsigned long start, 93extern unsigned long init_memory_mapping(unsigned long start,
97 unsigned long end); 94 unsigned long end);
98extern void initmem_init(unsigned long, unsigned long); 95extern void initmem_init(unsigned long, unsigned long);
96extern void free_initmem(void);
99extern void setup_bootmem_allocator(void); 97extern void setup_bootmem_allocator(void);
100 98
101 99
@@ -126,4 +124,4 @@ static inline void copy_page(void *to, void *from)
126#endif /* CONFIG_X86_3DNOW */ 124#endif /* CONFIG_X86_3DNOW */
127#endif /* !__ASSEMBLY__ */ 125#endif /* !__ASSEMBLY__ */
128 126
129#endif /* _ASM_X86_PAGE_32_H */ 127#endif /* ASM_X86__PAGE_32_H */
diff --git a/include/asm-x86/page_64.h b/include/asm-x86/page_64.h
index c6916c83e6b..5e64acfed0a 100644
--- a/include/asm-x86/page_64.h
+++ b/include/asm-x86/page_64.h
@@ -1,5 +1,5 @@
1#ifndef _X86_64_PAGE_H 1#ifndef ASM_X86__PAGE_64_H
2#define _X86_64_PAGE_H 2#define ASM_X86__PAGE_64_H
3 3
4#define PAGETABLE_LEVELS 4 4#define PAGETABLE_LEVELS 4
5 5
@@ -91,6 +91,7 @@ extern unsigned long init_memory_mapping(unsigned long start,
91 unsigned long end); 91 unsigned long end);
92 92
93extern void initmem_init(unsigned long start_pfn, unsigned long end_pfn); 93extern void initmem_init(unsigned long start_pfn, unsigned long end_pfn);
94extern void free_initmem(void);
94 95
95extern void init_extra_mapping_uc(unsigned long phys, unsigned long size); 96extern void init_extra_mapping_uc(unsigned long phys, unsigned long size);
96extern void init_extra_mapping_wb(unsigned long phys, unsigned long size); 97extern void init_extra_mapping_wb(unsigned long phys, unsigned long size);
@@ -102,4 +103,4 @@ extern void init_extra_mapping_wb(unsigned long phys, unsigned long size);
102#endif 103#endif
103 104
104 105
105#endif /* _X86_64_PAGE_H */ 106#endif /* ASM_X86__PAGE_64_H */
diff --git a/include/asm-x86/param.h b/include/asm-x86/param.h
index 6f0d0422f4c..0009cfb11a5 100644
--- a/include/asm-x86/param.h
+++ b/include/asm-x86/param.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_PARAM_H 1#ifndef ASM_X86__PARAM_H
2#define _ASM_X86_PARAM_H 2#define ASM_X86__PARAM_H
3 3
4#ifdef __KERNEL__ 4#ifdef __KERNEL__
5# define HZ CONFIG_HZ /* Internal kernel timer frequency */ 5# define HZ CONFIG_HZ /* Internal kernel timer frequency */
@@ -19,4 +19,4 @@
19 19
20#define MAXHOSTNAMELEN 64 /* max length of hostname */ 20#define MAXHOSTNAMELEN 64 /* max length of hostname */
21 21
22#endif /* _ASM_X86_PARAM_H */ 22#endif /* ASM_X86__PARAM_H */
diff --git a/include/asm-x86/paravirt.h b/include/asm-x86/paravirt.h
index fbbde93f12d..891971f57d3 100644
--- a/include/asm-x86/paravirt.h
+++ b/include/asm-x86/paravirt.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_PARAVIRT_H 1#ifndef ASM_X86__PARAVIRT_H
2#define __ASM_PARAVIRT_H 2#define ASM_X86__PARAVIRT_H
3/* Various instructions on x86 need to be replaced for 3/* Various instructions on x86 need to be replaced for
4 * para-virtualization: those hooks are defined here. */ 4 * para-virtualization: those hooks are defined here. */
5 5
@@ -137,6 +137,7 @@ struct pv_cpu_ops {
137 137
138 /* MSR, PMC and TSR operations. 138 /* MSR, PMC and TSR operations.
139 err = 0/-EFAULT. wrmsr returns 0/-EFAULT. */ 139 err = 0/-EFAULT. wrmsr returns 0/-EFAULT. */
140 u64 (*read_msr_amd)(unsigned int msr, int *err);
140 u64 (*read_msr)(unsigned int msr, int *err); 141 u64 (*read_msr)(unsigned int msr, int *err);
141 int (*write_msr)(unsigned int msr, unsigned low, unsigned high); 142 int (*write_msr)(unsigned int msr, unsigned low, unsigned high);
142 143
@@ -257,13 +258,13 @@ struct pv_mmu_ops {
257 * Hooks for allocating/releasing pagetable pages when they're 258 * Hooks for allocating/releasing pagetable pages when they're
258 * attached to a pagetable 259 * attached to a pagetable
259 */ 260 */
260 void (*alloc_pte)(struct mm_struct *mm, u32 pfn); 261 void (*alloc_pte)(struct mm_struct *mm, unsigned long pfn);
261 void (*alloc_pmd)(struct mm_struct *mm, u32 pfn); 262 void (*alloc_pmd)(struct mm_struct *mm, unsigned long pfn);
262 void (*alloc_pmd_clone)(u32 pfn, u32 clonepfn, u32 start, u32 count); 263 void (*alloc_pmd_clone)(unsigned long pfn, unsigned long clonepfn, unsigned long start, unsigned long count);
263 void (*alloc_pud)(struct mm_struct *mm, u32 pfn); 264 void (*alloc_pud)(struct mm_struct *mm, unsigned long pfn);
264 void (*release_pte)(u32 pfn); 265 void (*release_pte)(unsigned long pfn);
265 void (*release_pmd)(u32 pfn); 266 void (*release_pmd)(unsigned long pfn);
266 void (*release_pud)(u32 pfn); 267 void (*release_pud)(unsigned long pfn);
267 268
268 /* Pagetable manipulation functions */ 269 /* Pagetable manipulation functions */
269 void (*set_pte)(pte_t *ptep, pte_t pteval); 270 void (*set_pte)(pte_t *ptep, pte_t pteval);
@@ -726,6 +727,10 @@ static inline u64 paravirt_read_msr(unsigned msr, int *err)
726{ 727{
727 return PVOP_CALL2(u64, pv_cpu_ops.read_msr, msr, err); 728 return PVOP_CALL2(u64, pv_cpu_ops.read_msr, msr, err);
728} 729}
730static inline u64 paravirt_read_msr_amd(unsigned msr, int *err)
731{
732 return PVOP_CALL2(u64, pv_cpu_ops.read_msr_amd, msr, err);
733}
729static inline int paravirt_write_msr(unsigned msr, unsigned low, unsigned high) 734static inline int paravirt_write_msr(unsigned msr, unsigned low, unsigned high)
730{ 735{
731 return PVOP_CALL3(int, pv_cpu_ops.write_msr, msr, low, high); 736 return PVOP_CALL3(int, pv_cpu_ops.write_msr, msr, low, high);
@@ -771,6 +776,13 @@ static inline int rdmsrl_safe(unsigned msr, unsigned long long *p)
771 *p = paravirt_read_msr(msr, &err); 776 *p = paravirt_read_msr(msr, &err);
772 return err; 777 return err;
773} 778}
779static inline int rdmsrl_amd_safe(unsigned msr, unsigned long long *p)
780{
781 int err;
782
783 *p = paravirt_read_msr_amd(msr, &err);
784 return err;
785}
774 786
775static inline u64 paravirt_read_tsc(void) 787static inline u64 paravirt_read_tsc(void)
776{ 788{
@@ -993,35 +1005,35 @@ static inline void paravirt_pgd_free(struct mm_struct *mm, pgd_t *pgd)
993 PVOP_VCALL2(pv_mmu_ops.pgd_free, mm, pgd); 1005 PVOP_VCALL2(pv_mmu_ops.pgd_free, mm, pgd);
994} 1006}
995 1007
996static inline void paravirt_alloc_pte(struct mm_struct *mm, unsigned pfn) 1008static inline void paravirt_alloc_pte(struct mm_struct *mm, unsigned long pfn)
997{ 1009{
998 PVOP_VCALL2(pv_mmu_ops.alloc_pte, mm, pfn); 1010 PVOP_VCALL2(pv_mmu_ops.alloc_pte, mm, pfn);
999} 1011}
1000static inline void paravirt_release_pte(unsigned pfn) 1012static inline void paravirt_release_pte(unsigned long pfn)
1001{ 1013{
1002 PVOP_VCALL1(pv_mmu_ops.release_pte, pfn); 1014 PVOP_VCALL1(pv_mmu_ops.release_pte, pfn);
1003} 1015}
1004 1016
1005static inline void paravirt_alloc_pmd(struct mm_struct *mm, unsigned pfn) 1017static inline void paravirt_alloc_pmd(struct mm_struct *mm, unsigned long pfn)
1006{ 1018{
1007 PVOP_VCALL2(pv_mmu_ops.alloc_pmd, mm, pfn); 1019 PVOP_VCALL2(pv_mmu_ops.alloc_pmd, mm, pfn);
1008} 1020}
1009 1021
1010static inline void paravirt_alloc_pmd_clone(unsigned pfn, unsigned clonepfn, 1022static inline void paravirt_alloc_pmd_clone(unsigned long pfn, unsigned long clonepfn,
1011 unsigned start, unsigned count) 1023 unsigned long start, unsigned long count)
1012{ 1024{
1013 PVOP_VCALL4(pv_mmu_ops.alloc_pmd_clone, pfn, clonepfn, start, count); 1025 PVOP_VCALL4(pv_mmu_ops.alloc_pmd_clone, pfn, clonepfn, start, count);
1014} 1026}
1015static inline void paravirt_release_pmd(unsigned pfn) 1027static inline void paravirt_release_pmd(unsigned long pfn)
1016{ 1028{
1017 PVOP_VCALL1(pv_mmu_ops.release_pmd, pfn); 1029 PVOP_VCALL1(pv_mmu_ops.release_pmd, pfn);
1018} 1030}
1019 1031
1020static inline void paravirt_alloc_pud(struct mm_struct *mm, unsigned pfn) 1032static inline void paravirt_alloc_pud(struct mm_struct *mm, unsigned long pfn)
1021{ 1033{
1022 PVOP_VCALL2(pv_mmu_ops.alloc_pud, mm, pfn); 1034 PVOP_VCALL2(pv_mmu_ops.alloc_pud, mm, pfn);
1023} 1035}
1024static inline void paravirt_release_pud(unsigned pfn) 1036static inline void paravirt_release_pud(unsigned long pfn)
1025{ 1037{
1026 PVOP_VCALL1(pv_mmu_ops.release_pud, pfn); 1038 PVOP_VCALL1(pv_mmu_ops.release_pud, pfn);
1027} 1039}
@@ -1634,4 +1646,4 @@ static inline unsigned long __raw_local_irq_save(void)
1634 1646
1635#endif /* __ASSEMBLY__ */ 1647#endif /* __ASSEMBLY__ */
1636#endif /* CONFIG_PARAVIRT */ 1648#endif /* CONFIG_PARAVIRT */
1637#endif /* __ASM_PARAVIRT_H */ 1649#endif /* ASM_X86__PARAVIRT_H */
diff --git a/include/asm-x86/parport.h b/include/asm-x86/parport.h
index 3c4ffeb467e..2e3dda4dc3d 100644
--- a/include/asm-x86/parport.h
+++ b/include/asm-x86/parport.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_PARPORT_H 1#ifndef ASM_X86__PARPORT_H
2#define _ASM_X86_PARPORT_H 2#define ASM_X86__PARPORT_H
3 3
4static int __devinit parport_pc_find_isa_ports(int autoirq, int autodma); 4static int __devinit parport_pc_find_isa_ports(int autoirq, int autodma);
5static int __devinit parport_pc_find_nonpci_ports(int autoirq, int autodma) 5static int __devinit parport_pc_find_nonpci_ports(int autoirq, int autodma)
@@ -7,4 +7,4 @@ static int __devinit parport_pc_find_nonpci_ports(int autoirq, int autodma)
7 return parport_pc_find_isa_ports(autoirq, autodma); 7 return parport_pc_find_isa_ports(autoirq, autodma);
8} 8}
9 9
10#endif /* _ASM_X86_PARPORT_H */ 10#endif /* ASM_X86__PARPORT_H */
diff --git a/include/asm-x86/pat.h b/include/asm-x86/pat.h
index 7edc4730721..482c3e3f987 100644
--- a/include/asm-x86/pat.h
+++ b/include/asm-x86/pat.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_PAT_H 1#ifndef ASM_X86__PAT_H
2#define _ASM_PAT_H 2#define ASM_X86__PAT_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5 5
@@ -19,4 +19,4 @@ extern int free_memtype(u64 start, u64 end);
19 19
20extern void pat_disable(char *reason); 20extern void pat_disable(char *reason);
21 21
22#endif 22#endif /* ASM_X86__PAT_H */
diff --git a/include/asm-x86/pci-direct.h b/include/asm-x86/pci-direct.h
index 80c775d9fe2..da42be07b69 100644
--- a/include/asm-x86/pci-direct.h
+++ b/include/asm-x86/pci-direct.h
@@ -1,5 +1,5 @@
1#ifndef ASM_PCI_DIRECT_H 1#ifndef ASM_X86__PCI_DIRECT_H
2#define ASM_PCI_DIRECT_H 1 2#define ASM_X86__PCI_DIRECT_H
3 3
4#include <linux/types.h> 4#include <linux/types.h>
5 5
@@ -18,4 +18,4 @@ extern int early_pci_allowed(void);
18extern unsigned int pci_early_dump_regs; 18extern unsigned int pci_early_dump_regs;
19extern void early_dump_pci_device(u8 bus, u8 slot, u8 func); 19extern void early_dump_pci_device(u8 bus, u8 slot, u8 func);
20extern void early_dump_pci_devices(void); 20extern void early_dump_pci_devices(void);
21#endif 21#endif /* ASM_X86__PCI_DIRECT_H */
diff --git a/include/asm-x86/pci.h b/include/asm-x86/pci.h
index 2db14cf17db..60258319299 100644
--- a/include/asm-x86/pci.h
+++ b/include/asm-x86/pci.h
@@ -1,5 +1,5 @@
1#ifndef __x86_PCI_H 1#ifndef ASM_X86__PCI_H
2#define __x86_PCI_H 2#define ASM_X86__PCI_H
3 3
4#include <linux/mm.h> /* for struct page */ 4#include <linux/mm.h> /* for struct page */
5#include <linux/types.h> 5#include <linux/types.h>
@@ -111,4 +111,4 @@ static inline cpumask_t __pcibus_to_cpumask(struct pci_bus *bus)
111} 111}
112#endif 112#endif
113 113
114#endif 114#endif /* ASM_X86__PCI_H */
diff --git a/include/asm-x86/pci_32.h b/include/asm-x86/pci_32.h
index a50d4685128..3f2288207c0 100644
--- a/include/asm-x86/pci_32.h
+++ b/include/asm-x86/pci_32.h
@@ -1,5 +1,5 @@
1#ifndef __i386_PCI_H 1#ifndef ASM_X86__PCI_32_H
2#define __i386_PCI_H 2#define ASM_X86__PCI_32_H
3 3
4 4
5#ifdef __KERNEL__ 5#ifdef __KERNEL__
@@ -31,4 +31,4 @@ struct pci_dev;
31#endif /* __KERNEL__ */ 31#endif /* __KERNEL__ */
32 32
33 33
34#endif /* __i386_PCI_H */ 34#endif /* ASM_X86__PCI_32_H */
diff --git a/include/asm-x86/pci_64.h b/include/asm-x86/pci_64.h
index f330234ffa5..f72e12d5770 100644
--- a/include/asm-x86/pci_64.h
+++ b/include/asm-x86/pci_64.h
@@ -1,5 +1,5 @@
1#ifndef __x8664_PCI_H 1#ifndef ASM_X86__PCI_64_H
2#define __x8664_PCI_H 2#define ASM_X86__PCI_64_H
3 3
4#ifdef __KERNEL__ 4#ifdef __KERNEL__
5 5
@@ -63,4 +63,4 @@ extern void pci_iommu_alloc(void);
63 63
64#endif /* __KERNEL__ */ 64#endif /* __KERNEL__ */
65 65
66#endif /* __x8664_PCI_H */ 66#endif /* ASM_X86__PCI_64_H */
diff --git a/include/asm-x86/pda.h b/include/asm-x86/pda.h
index b34e9a7cc80..80860afffbd 100644
--- a/include/asm-x86/pda.h
+++ b/include/asm-x86/pda.h
@@ -1,5 +1,5 @@
1#ifndef X86_64_PDA_H 1#ifndef ASM_X86__PDA_H
2#define X86_64_PDA_H 2#define ASM_X86__PDA_H
3 3
4#ifndef __ASSEMBLY__ 4#ifndef __ASSEMBLY__
5#include <linux/stddef.h> 5#include <linux/stddef.h>
@@ -134,4 +134,4 @@ do { \
134 134
135#define PDA_STACKOFFSET (5*8) 135#define PDA_STACKOFFSET (5*8)
136 136
137#endif 137#endif /* ASM_X86__PDA_H */
diff --git a/include/asm-x86/percpu.h b/include/asm-x86/percpu.h
index f643a3a92da..e10a1d0678c 100644
--- a/include/asm-x86/percpu.h
+++ b/include/asm-x86/percpu.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_PERCPU_H_ 1#ifndef ASM_X86__PERCPU_H
2#define _ASM_X86_PERCPU_H_ 2#define ASM_X86__PERCPU_H
3 3
4#ifdef CONFIG_X86_64 4#ifdef CONFIG_X86_64
5#include <linux/compiler.h> 5#include <linux/compiler.h>
@@ -215,4 +215,4 @@ do { \
215 215
216#endif /* !CONFIG_SMP */ 216#endif /* !CONFIG_SMP */
217 217
218#endif /* _ASM_X86_PERCPU_H_ */ 218#endif /* ASM_X86__PERCPU_H */
diff --git a/include/asm-x86/pgalloc.h b/include/asm-x86/pgalloc.h
index d63ea431cb3..3cd23adedae 100644
--- a/include/asm-x86/pgalloc.h
+++ b/include/asm-x86/pgalloc.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_PGALLOC_H 1#ifndef ASM_X86__PGALLOC_H
2#define _ASM_X86_PGALLOC_H 2#define ASM_X86__PGALLOC_H
3 3
4#include <linux/threads.h> 4#include <linux/threads.h>
5#include <linux/mm.h> /* for struct page */ 5#include <linux/mm.h> /* for struct page */
@@ -111,4 +111,4 @@ extern void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud);
111#endif /* PAGETABLE_LEVELS > 3 */ 111#endif /* PAGETABLE_LEVELS > 3 */
112#endif /* PAGETABLE_LEVELS > 2 */ 112#endif /* PAGETABLE_LEVELS > 2 */
113 113
114#endif /* _ASM_X86_PGALLOC_H */ 114#endif /* ASM_X86__PGALLOC_H */
diff --git a/include/asm-x86/pgtable-2level-defs.h b/include/asm-x86/pgtable-2level-defs.h
index 0f71c9f13da..7ec48f4e534 100644
--- a/include/asm-x86/pgtable-2level-defs.h
+++ b/include/asm-x86/pgtable-2level-defs.h
@@ -1,5 +1,5 @@
1#ifndef _I386_PGTABLE_2LEVEL_DEFS_H 1#ifndef ASM_X86__PGTABLE_2LEVEL_DEFS_H
2#define _I386_PGTABLE_2LEVEL_DEFS_H 2#define ASM_X86__PGTABLE_2LEVEL_DEFS_H
3 3
4#define SHARED_KERNEL_PMD 0 4#define SHARED_KERNEL_PMD 0
5 5
@@ -17,4 +17,4 @@
17 17
18#define PTRS_PER_PTE 1024 18#define PTRS_PER_PTE 1024
19 19
20#endif /* _I386_PGTABLE_2LEVEL_DEFS_H */ 20#endif /* ASM_X86__PGTABLE_2LEVEL_DEFS_H */
diff --git a/include/asm-x86/pgtable-2level.h b/include/asm-x86/pgtable-2level.h
index 46bc52c0eae..81762081dcd 100644
--- a/include/asm-x86/pgtable-2level.h
+++ b/include/asm-x86/pgtable-2level.h
@@ -1,5 +1,5 @@
1#ifndef _I386_PGTABLE_2LEVEL_H 1#ifndef ASM_X86__PGTABLE_2LEVEL_H
2#define _I386_PGTABLE_2LEVEL_H 2#define ASM_X86__PGTABLE_2LEVEL_H
3 3
4#define pte_ERROR(e) \ 4#define pte_ERROR(e) \
5 printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, (e).pte_low) 5 printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, (e).pte_low)
@@ -53,9 +53,7 @@ static inline pte_t native_ptep_get_and_clear(pte_t *xp)
53#define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp) 53#define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp)
54#endif 54#endif
55 55
56#define pte_page(x) pfn_to_page(pte_pfn(x))
57#define pte_none(x) (!(x).pte_low) 56#define pte_none(x) (!(x).pte_low)
58#define pte_pfn(x) (pte_val(x) >> PAGE_SHIFT)
59 57
60/* 58/*
61 * Bits 0, 6 and 7 are taken, split up the 29 bits of offset 59 * Bits 0, 6 and 7 are taken, split up the 29 bits of offset
@@ -78,4 +76,4 @@ static inline pte_t native_ptep_get_and_clear(pte_t *xp)
78#define __pte_to_swp_entry(pte) ((swp_entry_t) { (pte).pte_low }) 76#define __pte_to_swp_entry(pte) ((swp_entry_t) { (pte).pte_low })
79#define __swp_entry_to_pte(x) ((pte_t) { .pte = (x).val }) 77#define __swp_entry_to_pte(x) ((pte_t) { .pte = (x).val })
80 78
81#endif /* _I386_PGTABLE_2LEVEL_H */ 79#endif /* ASM_X86__PGTABLE_2LEVEL_H */
diff --git a/include/asm-x86/pgtable-3level-defs.h b/include/asm-x86/pgtable-3level-defs.h
index 448ac951631..c05fe6ff372 100644
--- a/include/asm-x86/pgtable-3level-defs.h
+++ b/include/asm-x86/pgtable-3level-defs.h
@@ -1,5 +1,5 @@
1#ifndef _I386_PGTABLE_3LEVEL_DEFS_H 1#ifndef ASM_X86__PGTABLE_3LEVEL_DEFS_H
2#define _I386_PGTABLE_3LEVEL_DEFS_H 2#define ASM_X86__PGTABLE_3LEVEL_DEFS_H
3 3
4#ifdef CONFIG_PARAVIRT 4#ifdef CONFIG_PARAVIRT
5#define SHARED_KERNEL_PMD (pv_info.shared_kernel_pmd) 5#define SHARED_KERNEL_PMD (pv_info.shared_kernel_pmd)
@@ -25,4 +25,4 @@
25 */ 25 */
26#define PTRS_PER_PTE 512 26#define PTRS_PER_PTE 512
27 27
28#endif /* _I386_PGTABLE_3LEVEL_DEFS_H */ 28#endif /* ASM_X86__PGTABLE_3LEVEL_DEFS_H */
diff --git a/include/asm-x86/pgtable-3level.h b/include/asm-x86/pgtable-3level.h
index 105057f3403..75f4276b5dd 100644
--- a/include/asm-x86/pgtable-3level.h
+++ b/include/asm-x86/pgtable-3level.h
@@ -1,5 +1,5 @@
1#ifndef _I386_PGTABLE_3LEVEL_H 1#ifndef ASM_X86__PGTABLE_3LEVEL_H
2#define _I386_PGTABLE_3LEVEL_H 2#define ASM_X86__PGTABLE_3LEVEL_H
3 3
4/* 4/*
5 * Intel Physical Address Extension (PAE) Mode - three-level page 5 * Intel Physical Address Extension (PAE) Mode - three-level page
@@ -151,18 +151,11 @@ static inline int pte_same(pte_t a, pte_t b)
151 return a.pte_low == b.pte_low && a.pte_high == b.pte_high; 151 return a.pte_low == b.pte_low && a.pte_high == b.pte_high;
152} 152}
153 153
154#define pte_page(x) pfn_to_page(pte_pfn(x))
155
156static inline int pte_none(pte_t pte) 154static inline int pte_none(pte_t pte)
157{ 155{
158 return !pte.pte_low && !pte.pte_high; 156 return !pte.pte_low && !pte.pte_high;
159} 157}
160 158
161static inline unsigned long pte_pfn(pte_t pte)
162{
163 return (pte_val(pte) & PTE_PFN_MASK) >> PAGE_SHIFT;
164}
165
166/* 159/*
167 * Bits 0, 6 and 7 are taken in the low part of the pte, 160 * Bits 0, 6 and 7 are taken in the low part of the pte,
168 * put the 32 bits of offset into the high part. 161 * put the 32 bits of offset into the high part.
@@ -179,4 +172,4 @@ static inline unsigned long pte_pfn(pte_t pte)
179#define __pte_to_swp_entry(pte) ((swp_entry_t){ (pte).pte_high }) 172#define __pte_to_swp_entry(pte) ((swp_entry_t){ (pte).pte_high })
180#define __swp_entry_to_pte(x) ((pte_t){ { .pte_high = (x).val } }) 173#define __swp_entry_to_pte(x) ((pte_t){ { .pte_high = (x).val } })
181 174
182#endif /* _I386_PGTABLE_3LEVEL_H */ 175#endif /* ASM_X86__PGTABLE_3LEVEL_H */
diff --git a/include/asm-x86/pgtable.h b/include/asm-x86/pgtable.h
index 04caa2f544d..888add7b088 100644
--- a/include/asm-x86/pgtable.h
+++ b/include/asm-x86/pgtable.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_PGTABLE_H 1#ifndef ASM_X86__PGTABLE_H
2#define _ASM_X86_PGTABLE_H 2#define ASM_X86__PGTABLE_H
3 3
4#define FIRST_USER_ADDRESS 0 4#define FIRST_USER_ADDRESS 0
5 5
@@ -186,6 +186,13 @@ static inline int pte_special(pte_t pte)
186 return pte_val(pte) & _PAGE_SPECIAL; 186 return pte_val(pte) & _PAGE_SPECIAL;
187} 187}
188 188
189static inline unsigned long pte_pfn(pte_t pte)
190{
191 return (pte_val(pte) & PTE_PFN_MASK) >> PAGE_SHIFT;
192}
193
194#define pte_page(pte) pfn_to_page(pte_pfn(pte))
195
189static inline int pmd_large(pmd_t pte) 196static inline int pmd_large(pmd_t pte)
190{ 197{
191 return (pmd_val(pte) & (_PAGE_PSE | _PAGE_PRESENT)) == 198 return (pmd_val(pte) & (_PAGE_PSE | _PAGE_PRESENT)) ==
@@ -313,6 +320,8 @@ static inline void native_pagetable_setup_start(pgd_t *base) {}
313static inline void native_pagetable_setup_done(pgd_t *base) {} 320static inline void native_pagetable_setup_done(pgd_t *base) {}
314#endif 321#endif
315 322
323extern int arch_report_meminfo(char *page);
324
316#ifdef CONFIG_PARAVIRT 325#ifdef CONFIG_PARAVIRT
317#include <asm/paravirt.h> 326#include <asm/paravirt.h>
318#else /* !CONFIG_PARAVIRT */ 327#else /* !CONFIG_PARAVIRT */
@@ -521,4 +530,4 @@ static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count)
521#include <asm-generic/pgtable.h> 530#include <asm-generic/pgtable.h>
522#endif /* __ASSEMBLY__ */ 531#endif /* __ASSEMBLY__ */
523 532
524#endif /* _ASM_X86_PGTABLE_H */ 533#endif /* ASM_X86__PGTABLE_H */
diff --git a/include/asm-x86/pgtable_32.h b/include/asm-x86/pgtable_32.h
index 5c3b26567a9..8de702dc7d6 100644
--- a/include/asm-x86/pgtable_32.h
+++ b/include/asm-x86/pgtable_32.h
@@ -1,5 +1,5 @@
1#ifndef _I386_PGTABLE_H 1#ifndef ASM_X86__PGTABLE_32_H
2#define _I386_PGTABLE_H 2#define ASM_X86__PGTABLE_32_H
3 3
4 4
5/* 5/*
@@ -31,6 +31,7 @@ static inline void pgtable_cache_init(void) { }
31static inline void check_pgt_cache(void) { } 31static inline void check_pgt_cache(void) { }
32void paging_init(void); 32void paging_init(void);
33 33
34extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t);
34 35
35/* 36/*
36 * The Linux x86 paging architecture is 'compile-time dual-mode', it 37 * The Linux x86 paging architecture is 'compile-time dual-mode', it
@@ -56,8 +57,7 @@ void paging_init(void);
56 * area for the same reason. ;) 57 * area for the same reason. ;)
57 */ 58 */
58#define VMALLOC_OFFSET (8 * 1024 * 1024) 59#define VMALLOC_OFFSET (8 * 1024 * 1024)
59#define VMALLOC_START (((unsigned long)high_memory + 2 * VMALLOC_OFFSET - 1) \ 60#define VMALLOC_START ((unsigned long)high_memory + VMALLOC_OFFSET)
60 & ~(VMALLOC_OFFSET - 1))
61#ifdef CONFIG_X86_PAE 61#ifdef CONFIG_X86_PAE
62#define LAST_PKMAP 512 62#define LAST_PKMAP 512
63#else 63#else
@@ -73,6 +73,8 @@ void paging_init(void);
73# define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE) 73# define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE)
74#endif 74#endif
75 75
76#define MAXMEM (VMALLOC_END - PAGE_OFFSET - __VMALLOC_RESERVE)
77
76/* 78/*
77 * Define this if things work differently on an i386 and an i486: 79 * Define this if things work differently on an i386 and an i486:
78 * it will (on an i486) warn about kernel memory accesses that are 80 * it will (on an i486) warn about kernel memory accesses that are
@@ -186,4 +188,4 @@ do { \
186#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \ 188#define io_remap_pfn_range(vma, vaddr, pfn, size, prot) \
187 remap_pfn_range(vma, vaddr, pfn, size, prot) 189 remap_pfn_range(vma, vaddr, pfn, size, prot)
188 190
189#endif /* _I386_PGTABLE_H */ 191#endif /* ASM_X86__PGTABLE_32_H */
diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h
index 549144d03d9..fde9770e53d 100644
--- a/include/asm-x86/pgtable_64.h
+++ b/include/asm-x86/pgtable_64.h
@@ -1,5 +1,5 @@
1#ifndef _X86_64_PGTABLE_H 1#ifndef ASM_X86__PGTABLE_64_H
2#define _X86_64_PGTABLE_H 2#define ASM_X86__PGTABLE_64_H
3 3
4#include <linux/const.h> 4#include <linux/const.h>
5#ifndef __ASSEMBLY__ 5#ifndef __ASSEMBLY__
@@ -175,8 +175,6 @@ static inline int pmd_bad(pmd_t pmd)
175#define pte_present(x) (pte_val((x)) & (_PAGE_PRESENT | _PAGE_PROTNONE)) 175#define pte_present(x) (pte_val((x)) & (_PAGE_PRESENT | _PAGE_PROTNONE))
176 176
177#define pages_to_mb(x) ((x) >> (20 - PAGE_SHIFT)) /* FIXME: is this right? */ 177#define pages_to_mb(x) ((x) >> (20 - PAGE_SHIFT)) /* FIXME: is this right? */
178#define pte_page(x) pfn_to_page(pte_pfn((x)))
179#define pte_pfn(x) ((pte_val((x)) & __PHYSICAL_MASK) >> PAGE_SHIFT)
180 178
181/* 179/*
182 * Macro to mark a page protection value as "uncacheable". 180 * Macro to mark a page protection value as "uncacheable".
@@ -284,4 +282,4 @@ extern void cleanup_highmap(void);
284#define __HAVE_ARCH_PTE_SAME 282#define __HAVE_ARCH_PTE_SAME
285#endif /* !__ASSEMBLY__ */ 283#endif /* !__ASSEMBLY__ */
286 284
287#endif /* _X86_64_PGTABLE_H */ 285#endif /* ASM_X86__PGTABLE_64_H */
diff --git a/include/asm-x86/posix_types_32.h b/include/asm-x86/posix_types_32.h
index b031efda37e..70cf2bb0593 100644
--- a/include/asm-x86/posix_types_32.h
+++ b/include/asm-x86/posix_types_32.h
@@ -1,5 +1,5 @@
1#ifndef __ARCH_I386_POSIX_TYPES_H 1#ifndef ASM_X86__POSIX_TYPES_32_H
2#define __ARCH_I386_POSIX_TYPES_H 2#define ASM_X86__POSIX_TYPES_32_H
3 3
4/* 4/*
5 * This file is generally used by user-level software, so you need to 5 * This file is generally used by user-level software, so you need to
@@ -82,4 +82,4 @@ do { \
82 82
83#endif /* defined(__KERNEL__) */ 83#endif /* defined(__KERNEL__) */
84 84
85#endif 85#endif /* ASM_X86__POSIX_TYPES_32_H */
diff --git a/include/asm-x86/posix_types_64.h b/include/asm-x86/posix_types_64.h
index d6624c95854..388b4e7f4a4 100644
--- a/include/asm-x86/posix_types_64.h
+++ b/include/asm-x86/posix_types_64.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_64_POSIX_TYPES_H 1#ifndef ASM_X86__POSIX_TYPES_64_H
2#define _ASM_X86_64_POSIX_TYPES_H 2#define ASM_X86__POSIX_TYPES_64_H
3 3
4/* 4/*
5 * This file is generally used by user-level software, so you need to 5 * This file is generally used by user-level software, so you need to
@@ -116,4 +116,4 @@ static inline void __FD_ZERO(__kernel_fd_set *p)
116 116
117#endif /* defined(__KERNEL__) */ 117#endif /* defined(__KERNEL__) */
118 118
119#endif 119#endif /* ASM_X86__POSIX_TYPES_64_H */
diff --git a/include/asm-x86/prctl.h b/include/asm-x86/prctl.h
index 52952adef1c..e7ae34eb410 100644
--- a/include/asm-x86/prctl.h
+++ b/include/asm-x86/prctl.h
@@ -1,5 +1,5 @@
1#ifndef X86_64_PRCTL_H 1#ifndef ASM_X86__PRCTL_H
2#define X86_64_PRCTL_H 1 2#define ASM_X86__PRCTL_H
3 3
4#define ARCH_SET_GS 0x1001 4#define ARCH_SET_GS 0x1001
5#define ARCH_SET_FS 0x1002 5#define ARCH_SET_FS 0x1002
@@ -7,4 +7,4 @@
7#define ARCH_GET_GS 0x1004 7#define ARCH_GET_GS 0x1004
8 8
9 9
10#endif 10#endif /* ASM_X86__PRCTL_H */
diff --git a/include/asm-x86/processor-flags.h b/include/asm-x86/processor-flags.h
index eff2ecd7fff..5dd79774f69 100644
--- a/include/asm-x86/processor-flags.h
+++ b/include/asm-x86/processor-flags.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_I386_PROCESSOR_FLAGS_H 1#ifndef ASM_X86__PROCESSOR_FLAGS_H
2#define __ASM_I386_PROCESSOR_FLAGS_H 2#define ASM_X86__PROCESSOR_FLAGS_H
3/* Various flags defined: can be included from assembler. */ 3/* Various flags defined: can be included from assembler. */
4 4
5/* 5/*
@@ -96,4 +96,4 @@
96#endif 96#endif
97#endif 97#endif
98 98
99#endif /* __ASM_I386_PROCESSOR_FLAGS_H */ 99#endif /* ASM_X86__PROCESSOR_FLAGS_H */
diff --git a/include/asm-x86/processor.h b/include/asm-x86/processor.h
index 4df3e2f6fb5..5eaf9bf0a62 100644
--- a/include/asm-x86/processor.h
+++ b/include/asm-x86/processor.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_X86_PROCESSOR_H 1#ifndef ASM_X86__PROCESSOR_H
2#define __ASM_X86_PROCESSOR_H 2#define ASM_X86__PROCESSOR_H
3 3
4#include <asm/processor-flags.h> 4#include <asm/processor-flags.h>
5 5
@@ -20,6 +20,7 @@ struct mm_struct;
20#include <asm/msr.h> 20#include <asm/msr.h>
21#include <asm/desc_defs.h> 21#include <asm/desc_defs.h>
22#include <asm/nops.h> 22#include <asm/nops.h>
23#include <asm/ds.h>
23 24
24#include <linux/personality.h> 25#include <linux/personality.h>
25#include <linux/cpumask.h> 26#include <linux/cpumask.h>
@@ -140,6 +141,8 @@ DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info);
140#define current_cpu_data boot_cpu_data 141#define current_cpu_data boot_cpu_data
141#endif 142#endif
142 143
144extern const struct seq_operations cpuinfo_op;
145
143static inline int hlt_works(int cpu) 146static inline int hlt_works(int cpu)
144{ 147{
145#ifdef CONFIG_X86_32 148#ifdef CONFIG_X86_32
@@ -153,6 +156,8 @@ static inline int hlt_works(int cpu)
153 156
154extern void cpu_detect(struct cpuinfo_x86 *c); 157extern void cpu_detect(struct cpuinfo_x86 *c);
155 158
159extern struct pt_regs *idle_regs(struct pt_regs *);
160
156extern void early_cpu_init(void); 161extern void early_cpu_init(void);
157extern void identify_boot_cpu(void); 162extern void identify_boot_cpu(void);
158extern void identify_secondary_cpu(struct cpuinfo_x86 *); 163extern void identify_secondary_cpu(struct cpuinfo_x86 *);
@@ -411,9 +416,14 @@ struct thread_struct {
411 unsigned io_bitmap_max; 416 unsigned io_bitmap_max;
412/* MSR_IA32_DEBUGCTLMSR value to switch in if TIF_DEBUGCTLMSR is set. */ 417/* MSR_IA32_DEBUGCTLMSR value to switch in if TIF_DEBUGCTLMSR is set. */
413 unsigned long debugctlmsr; 418 unsigned long debugctlmsr;
414/* Debug Store - if not 0 points to a DS Save Area configuration; 419#ifdef CONFIG_X86_DS
415 * goes into MSR_IA32_DS_AREA */ 420/* Debug Store context; see include/asm-x86/ds.h; goes into MSR_IA32_DS_AREA */
416 unsigned long ds_area_msr; 421 struct ds_context *ds_ctx;
422#endif /* CONFIG_X86_DS */
423#ifdef CONFIG_X86_PTRACE_BTS
424/* the signal to send on a bts buffer overflow */
425 unsigned int bts_ovfl_signal;
426#endif /* CONFIG_X86_PTRACE_BTS */
417}; 427};
418 428
419static inline unsigned long native_get_debugreg(int regno) 429static inline unsigned long native_get_debugreg(int regno)
@@ -943,4 +953,4 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
943extern int get_tsc_mode(unsigned long adr); 953extern int get_tsc_mode(unsigned long adr);
944extern int set_tsc_mode(unsigned int val); 954extern int set_tsc_mode(unsigned int val);
945 955
946#endif 956#endif /* ASM_X86__PROCESSOR_H */
diff --git a/include/asm-x86/proto.h b/include/asm-x86/proto.h
index 3dd458c385c..6e89e8b4de0 100644
--- a/include/asm-x86/proto.h
+++ b/include/asm-x86/proto.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X8664_PROTO_H 1#ifndef ASM_X86__PROTO_H
2#define _ASM_X8664_PROTO_H 1 2#define ASM_X86__PROTO_H
3 3
4#include <asm/ldt.h> 4#include <asm/ldt.h>
5 5
@@ -29,4 +29,4 @@ long do_arch_prctl(struct task_struct *task, int code, unsigned long addr);
29#define round_up(x, y) (((x) + (y) - 1) & ~((y) - 1)) 29#define round_up(x, y) (((x) + (y) - 1) & ~((y) - 1))
30#define round_down(x, y) ((x) & ~((y) - 1)) 30#define round_down(x, y) ((x) & ~((y) - 1))
31 31
32#endif 32#endif /* ASM_X86__PROTO_H */
diff --git a/include/asm-x86/ptrace-abi.h b/include/asm-x86/ptrace-abi.h
index 72e7b9db29b..4298b8882a7 100644
--- a/include/asm-x86/ptrace-abi.h
+++ b/include/asm-x86/ptrace-abi.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_PTRACE_ABI_H 1#ifndef ASM_X86__PTRACE_ABI_H
2#define _ASM_X86_PTRACE_ABI_H 2#define ASM_X86__PTRACE_ABI_H
3 3
4#ifdef __i386__ 4#ifdef __i386__
5 5
@@ -80,8 +80,9 @@
80 80
81#define PTRACE_SINGLEBLOCK 33 /* resume execution until next branch */ 81#define PTRACE_SINGLEBLOCK 33 /* resume execution until next branch */
82 82
83#ifndef __ASSEMBLY__ 83#ifdef CONFIG_X86_PTRACE_BTS
84 84
85#ifndef __ASSEMBLY__
85#include <asm/types.h> 86#include <asm/types.h>
86 87
87/* configuration/status structure used in PTRACE_BTS_CONFIG and 88/* configuration/status structure used in PTRACE_BTS_CONFIG and
@@ -97,20 +98,20 @@ struct ptrace_bts_config {
97 /* actual size of bts_struct in bytes */ 98 /* actual size of bts_struct in bytes */
98 __u32 bts_size; 99 __u32 bts_size;
99}; 100};
100#endif 101#endif /* __ASSEMBLY__ */
101 102
102#define PTRACE_BTS_O_TRACE 0x1 /* branch trace */ 103#define PTRACE_BTS_O_TRACE 0x1 /* branch trace */
103#define PTRACE_BTS_O_SCHED 0x2 /* scheduling events w/ jiffies */ 104#define PTRACE_BTS_O_SCHED 0x2 /* scheduling events w/ jiffies */
104#define PTRACE_BTS_O_SIGNAL 0x4 /* send SIG<signal> on buffer overflow 105#define PTRACE_BTS_O_SIGNAL 0x4 /* send SIG<signal> on buffer overflow
105 instead of wrapping around */ 106 instead of wrapping around */
106#define PTRACE_BTS_O_CUT_SIZE 0x8 /* cut requested size to max available 107#define PTRACE_BTS_O_ALLOC 0x8 /* (re)allocate buffer */
107 instead of failing */
108 108
109#define PTRACE_BTS_CONFIG 40 109#define PTRACE_BTS_CONFIG 40
110/* Configure branch trace recording. 110/* Configure branch trace recording.
111 ADDR points to a struct ptrace_bts_config. 111 ADDR points to a struct ptrace_bts_config.
112 DATA gives the size of that buffer. 112 DATA gives the size of that buffer.
113 A new buffer is allocated, iff the size changes. 113 A new buffer is allocated, if requested in the flags.
114 An overflow signal may only be requested for new buffers.
114 Returns the number of bytes read. 115 Returns the number of bytes read.
115*/ 116*/
116#define PTRACE_BTS_STATUS 41 117#define PTRACE_BTS_STATUS 41
@@ -119,7 +120,7 @@ struct ptrace_bts_config {
119 Returns the number of bytes written. 120 Returns the number of bytes written.
120*/ 121*/
121#define PTRACE_BTS_SIZE 42 122#define PTRACE_BTS_SIZE 42
122/* Return the number of available BTS records. 123/* Return the number of available BTS records for draining.
123 DATA and ADDR are ignored. 124 DATA and ADDR are ignored.
124*/ 125*/
125#define PTRACE_BTS_GET 43 126#define PTRACE_BTS_GET 43
@@ -139,5 +140,6 @@ struct ptrace_bts_config {
139 BTS records are read from oldest to newest. 140 BTS records are read from oldest to newest.
140 Returns number of BTS records drained. 141 Returns number of BTS records drained.
141*/ 142*/
143#endif /* CONFIG_X86_PTRACE_BTS */
142 144
143#endif 145#endif /* ASM_X86__PTRACE_ABI_H */
diff --git a/include/asm-x86/ptrace.h b/include/asm-x86/ptrace.h
index 8a71db803da..d64a6109716 100644
--- a/include/asm-x86/ptrace.h
+++ b/include/asm-x86/ptrace.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_PTRACE_H 1#ifndef ASM_X86__PTRACE_H
2#define _ASM_X86_PTRACE_H 2#define ASM_X86__PTRACE_H
3 3
4#include <linux/compiler.h> /* For __user */ 4#include <linux/compiler.h> /* For __user */
5#include <asm/ptrace-abi.h> 5#include <asm/ptrace-abi.h>
@@ -127,14 +127,48 @@ struct pt_regs {
127#endif /* __KERNEL__ */ 127#endif /* __KERNEL__ */
128#endif /* !__i386__ */ 128#endif /* !__i386__ */
129 129
130
131#ifdef CONFIG_X86_PTRACE_BTS
132/* a branch trace record entry
133 *
134 * In order to unify the interface between various processor versions,
135 * we use the below data structure for all processors.
136 */
137enum bts_qualifier {
138 BTS_INVALID = 0,
139 BTS_BRANCH,
140 BTS_TASK_ARRIVES,
141 BTS_TASK_DEPARTS
142};
143
144struct bts_struct {
145 __u64 qualifier;
146 union {
147 /* BTS_BRANCH */
148 struct {
149 __u64 from_ip;
150 __u64 to_ip;
151 } lbr;
152 /* BTS_TASK_ARRIVES or
153 BTS_TASK_DEPARTS */
154 __u64 jiffies;
155 } variant;
156};
157#endif /* CONFIG_X86_PTRACE_BTS */
158
130#ifdef __KERNEL__ 159#ifdef __KERNEL__
131 160
132/* the DS BTS struct is used for ptrace as well */ 161#include <linux/init.h>
133#include <asm/ds.h>
134 162
163struct cpuinfo_x86;
135struct task_struct; 164struct task_struct;
136 165
166#ifdef CONFIG_X86_PTRACE_BTS
167extern void __cpuinit ptrace_bts_init_intel(struct cpuinfo_x86 *);
137extern void ptrace_bts_take_timestamp(struct task_struct *, enum bts_qualifier); 168extern void ptrace_bts_take_timestamp(struct task_struct *, enum bts_qualifier);
169#else
170#define ptrace_bts_init_intel(config) do {} while (0)
171#endif /* CONFIG_X86_PTRACE_BTS */
138 172
139extern unsigned long profile_pc(struct pt_regs *regs); 173extern unsigned long profile_pc(struct pt_regs *regs);
140 174
@@ -148,6 +182,9 @@ extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs,
148void signal_fault(struct pt_regs *regs, void __user *frame, char *where); 182void signal_fault(struct pt_regs *regs, void __user *frame, char *where);
149#endif 183#endif
150 184
185extern long syscall_trace_enter(struct pt_regs *);
186extern void syscall_trace_leave(struct pt_regs *);
187
151static inline unsigned long regs_return_value(struct pt_regs *regs) 188static inline unsigned long regs_return_value(struct pt_regs *regs)
152{ 189{
153 return regs->ax; 190 return regs->ax;
@@ -213,6 +250,11 @@ static inline unsigned long frame_pointer(struct pt_regs *regs)
213 return regs->bp; 250 return regs->bp;
214} 251}
215 252
253static inline unsigned long user_stack_pointer(struct pt_regs *regs)
254{
255 return regs->sp;
256}
257
216/* 258/*
217 * These are defined as per linux/ptrace.h, which see. 259 * These are defined as per linux/ptrace.h, which see.
218 */ 260 */
@@ -239,4 +281,4 @@ extern int do_set_thread_area(struct task_struct *p, int idx,
239 281
240#endif /* !__ASSEMBLY__ */ 282#endif /* !__ASSEMBLY__ */
241 283
242#endif 284#endif /* ASM_X86__PTRACE_H */
diff --git a/include/asm-x86/pvclock-abi.h b/include/asm-x86/pvclock-abi.h
index 6857f840b24..edb3b4ecfc8 100644
--- a/include/asm-x86/pvclock-abi.h
+++ b/include/asm-x86/pvclock-abi.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_PVCLOCK_ABI_H_ 1#ifndef ASM_X86__PVCLOCK_ABI_H
2#define _ASM_X86_PVCLOCK_ABI_H_ 2#define ASM_X86__PVCLOCK_ABI_H
3#ifndef __ASSEMBLY__ 3#ifndef __ASSEMBLY__
4 4
5/* 5/*
@@ -39,4 +39,4 @@ struct pvclock_wall_clock {
39} __attribute__((__packed__)); 39} __attribute__((__packed__));
40 40
41#endif /* __ASSEMBLY__ */ 41#endif /* __ASSEMBLY__ */
42#endif /* _ASM_X86_PVCLOCK_ABI_H_ */ 42#endif /* ASM_X86__PVCLOCK_ABI_H */
diff --git a/include/asm-x86/pvclock.h b/include/asm-x86/pvclock.h
index 85b1bba8e0a..1a38f683480 100644
--- a/include/asm-x86/pvclock.h
+++ b/include/asm-x86/pvclock.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_PVCLOCK_H_ 1#ifndef ASM_X86__PVCLOCK_H
2#define _ASM_X86_PVCLOCK_H_ 2#define ASM_X86__PVCLOCK_H
3 3
4#include <linux/clocksource.h> 4#include <linux/clocksource.h>
5#include <asm/pvclock-abi.h> 5#include <asm/pvclock-abi.h>
@@ -10,4 +10,4 @@ void pvclock_read_wallclock(struct pvclock_wall_clock *wall,
10 struct pvclock_vcpu_time_info *vcpu, 10 struct pvclock_vcpu_time_info *vcpu,
11 struct timespec *ts); 11 struct timespec *ts);
12 12
13#endif /* _ASM_X86_PVCLOCK_H_ */ 13#endif /* ASM_X86__PVCLOCK_H */
diff --git a/include/asm-x86/reboot.h b/include/asm-x86/reboot.h
index 206f355786d..1c2f0ce9e31 100644
--- a/include/asm-x86/reboot.h
+++ b/include/asm-x86/reboot.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_REBOOT_H 1#ifndef ASM_X86__REBOOT_H
2#define _ASM_REBOOT_H 2#define ASM_X86__REBOOT_H
3 3
4struct pt_regs; 4struct pt_regs;
5 5
@@ -18,4 +18,4 @@ void native_machine_crash_shutdown(struct pt_regs *regs);
18void native_machine_shutdown(void); 18void native_machine_shutdown(void);
19void machine_real_restart(const unsigned char *code, int length); 19void machine_real_restart(const unsigned char *code, int length);
20 20
21#endif /* _ASM_REBOOT_H */ 21#endif /* ASM_X86__REBOOT_H */
diff --git a/include/asm-x86/reboot_fixups.h b/include/asm-x86/reboot_fixups.h
index 0cb7d87c2b6..2c2987d9757 100644
--- a/include/asm-x86/reboot_fixups.h
+++ b/include/asm-x86/reboot_fixups.h
@@ -1,6 +1,6 @@
1#ifndef _LINUX_REBOOT_FIXUPS_H 1#ifndef ASM_X86__REBOOT_FIXUPS_H
2#define _LINUX_REBOOT_FIXUPS_H 2#define ASM_X86__REBOOT_FIXUPS_H
3 3
4extern void mach_reboot_fixups(void); 4extern void mach_reboot_fixups(void);
5 5
6#endif /* _LINUX_REBOOT_FIXUPS_H */ 6#endif /* ASM_X86__REBOOT_FIXUPS_H */
diff --git a/include/asm-x86/required-features.h b/include/asm-x86/required-features.h
index adec887dd7c..a01c4e37633 100644
--- a/include/asm-x86/required-features.h
+++ b/include/asm-x86/required-features.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_REQUIRED_FEATURES_H 1#ifndef ASM_X86__REQUIRED_FEATURES_H
2#define _ASM_REQUIRED_FEATURES_H 1 2#define ASM_X86__REQUIRED_FEATURES_H
3 3
4/* Define minimum CPUID feature set for kernel These bits are checked 4/* Define minimum CPUID feature set for kernel These bits are checked
5 really early to actually display a visible error message before the 5 really early to actually display a visible error message before the
@@ -41,6 +41,12 @@
41# define NEED_3DNOW 0 41# define NEED_3DNOW 0
42#endif 42#endif
43 43
44#if defined(CONFIG_X86_P6_NOP) || defined(CONFIG_X86_64)
45# define NEED_NOPL (1<<(X86_FEATURE_NOPL & 31))
46#else
47# define NEED_NOPL 0
48#endif
49
44#ifdef CONFIG_X86_64 50#ifdef CONFIG_X86_64
45#define NEED_PSE 0 51#define NEED_PSE 0
46#define NEED_MSR (1<<(X86_FEATURE_MSR & 31)) 52#define NEED_MSR (1<<(X86_FEATURE_MSR & 31))
@@ -67,10 +73,10 @@
67#define REQUIRED_MASK1 (NEED_LM|NEED_3DNOW) 73#define REQUIRED_MASK1 (NEED_LM|NEED_3DNOW)
68 74
69#define REQUIRED_MASK2 0 75#define REQUIRED_MASK2 0
70#define REQUIRED_MASK3 0 76#define REQUIRED_MASK3 (NEED_NOPL)
71#define REQUIRED_MASK4 0 77#define REQUIRED_MASK4 0
72#define REQUIRED_MASK5 0 78#define REQUIRED_MASK5 0
73#define REQUIRED_MASK6 0 79#define REQUIRED_MASK6 0
74#define REQUIRED_MASK7 0 80#define REQUIRED_MASK7 0
75 81
76#endif 82#endif /* ASM_X86__REQUIRED_FEATURES_H */
diff --git a/include/asm-x86/resume-trace.h b/include/asm-x86/resume-trace.h
index 8d9f0b41ee8..e39376d7de5 100644
--- a/include/asm-x86/resume-trace.h
+++ b/include/asm-x86/resume-trace.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_RESUME_TRACE_H 1#ifndef ASM_X86__RESUME_TRACE_H
2#define _ASM_X86_RESUME_TRACE_H 2#define ASM_X86__RESUME_TRACE_H
3 3
4#include <asm/asm.h> 4#include <asm/asm.h>
5 5
@@ -7,7 +7,7 @@
7do { \ 7do { \
8 if (pm_trace_enabled) { \ 8 if (pm_trace_enabled) { \
9 const void *tracedata; \ 9 const void *tracedata; \
10 asm volatile(_ASM_MOV_UL " $1f,%0\n" \ 10 asm volatile(_ASM_MOV " $1f,%0\n" \
11 ".section .tracedata,\"a\"\n" \ 11 ".section .tracedata,\"a\"\n" \
12 "1:\t.word %c1\n\t" \ 12 "1:\t.word %c1\n\t" \
13 _ASM_PTR " %c2\n" \ 13 _ASM_PTR " %c2\n" \
@@ -18,4 +18,4 @@ do { \
18 } \ 18 } \
19} while (0) 19} while (0)
20 20
21#endif 21#endif /* ASM_X86__RESUME_TRACE_H */
diff --git a/include/asm-x86/rio.h b/include/asm-x86/rio.h
index c9448bd8968..5e1256bdee8 100644
--- a/include/asm-x86/rio.h
+++ b/include/asm-x86/rio.h
@@ -5,8 +5,8 @@
5 * Author: Laurent Vivier <Laurent.Vivier@bull.net> 5 * Author: Laurent Vivier <Laurent.Vivier@bull.net>
6 */ 6 */
7 7
8#ifndef __ASM_RIO_H 8#ifndef ASM_X86__RIO_H
9#define __ASM_RIO_H 9#define ASM_X86__RIO_H
10 10
11#define RIO_TABLE_VERSION 3 11#define RIO_TABLE_VERSION 3
12 12
@@ -60,4 +60,4 @@ enum {
60 ALT_CALGARY = 5, /* Second Planar Calgary */ 60 ALT_CALGARY = 5, /* Second Planar Calgary */
61}; 61};
62 62
63#endif /* __ASM_RIO_H */ 63#endif /* ASM_X86__RIO_H */
diff --git a/include/asm-x86/rwlock.h b/include/asm-x86/rwlock.h
index 6a8c0d64510..48a3109e1a7 100644
--- a/include/asm-x86/rwlock.h
+++ b/include/asm-x86/rwlock.h
@@ -1,8 +1,8 @@
1#ifndef _ASM_X86_RWLOCK_H 1#ifndef ASM_X86__RWLOCK_H
2#define _ASM_X86_RWLOCK_H 2#define ASM_X86__RWLOCK_H
3 3
4#define RW_LOCK_BIAS 0x01000000 4#define RW_LOCK_BIAS 0x01000000
5 5
6/* Actual code is in asm/spinlock.h or in arch/x86/lib/rwlock.S */ 6/* Actual code is in asm/spinlock.h or in arch/x86/lib/rwlock.S */
7 7
8#endif /* _ASM_X86_RWLOCK_H */ 8#endif /* ASM_X86__RWLOCK_H */
diff --git a/include/asm-x86/rwsem.h b/include/asm-x86/rwsem.h
index 750f2a3542b..3ff3015b71a 100644
--- a/include/asm-x86/rwsem.h
+++ b/include/asm-x86/rwsem.h
@@ -29,8 +29,8 @@
29 * front, then they'll all be woken up, but no other readers will be. 29 * front, then they'll all be woken up, but no other readers will be.
30 */ 30 */
31 31
32#ifndef _I386_RWSEM_H 32#ifndef ASM_X86__RWSEM_H
33#define _I386_RWSEM_H 33#define ASM_X86__RWSEM_H
34 34
35#ifndef _LINUX_RWSEM_H 35#ifndef _LINUX_RWSEM_H
36#error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead" 36#error "please don't include asm/rwsem.h directly, use linux/rwsem.h instead"
@@ -262,4 +262,4 @@ static inline int rwsem_is_locked(struct rw_semaphore *sem)
262} 262}
263 263
264#endif /* __KERNEL__ */ 264#endif /* __KERNEL__ */
265#endif /* _I386_RWSEM_H */ 265#endif /* ASM_X86__RWSEM_H */
diff --git a/include/asm-x86/scatterlist.h b/include/asm-x86/scatterlist.h
index c0432061f81..ee48f880005 100644
--- a/include/asm-x86/scatterlist.h
+++ b/include/asm-x86/scatterlist.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SCATTERLIST_H 1#ifndef ASM_X86__SCATTERLIST_H
2#define _ASM_X86_SCATTERLIST_H 2#define ASM_X86__SCATTERLIST_H
3 3
4#include <asm/types.h> 4#include <asm/types.h>
5 5
@@ -30,4 +30,4 @@ struct scatterlist {
30# define sg_dma_len(sg) ((sg)->dma_length) 30# define sg_dma_len(sg) ((sg)->dma_length)
31#endif 31#endif
32 32
33#endif 33#endif /* ASM_X86__SCATTERLIST_H */
diff --git a/include/asm-x86/seccomp_32.h b/include/asm-x86/seccomp_32.h
index 36e71c5f306..cf9ab2dbcef 100644
--- a/include/asm-x86/seccomp_32.h
+++ b/include/asm-x86/seccomp_32.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_SECCOMP_H 1#ifndef ASM_X86__SECCOMP_32_H
2#define _ASM_SECCOMP_H 2#define ASM_X86__SECCOMP_32_H
3 3
4#include <linux/thread_info.h> 4#include <linux/thread_info.h>
5 5
@@ -14,4 +14,4 @@
14#define __NR_seccomp_exit __NR_exit 14#define __NR_seccomp_exit __NR_exit
15#define __NR_seccomp_sigreturn __NR_sigreturn 15#define __NR_seccomp_sigreturn __NR_sigreturn
16 16
17#endif /* _ASM_SECCOMP_H */ 17#endif /* ASM_X86__SECCOMP_32_H */
diff --git a/include/asm-x86/seccomp_64.h b/include/asm-x86/seccomp_64.h
index 76cfe69aa63..03274cea751 100644
--- a/include/asm-x86/seccomp_64.h
+++ b/include/asm-x86/seccomp_64.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_SECCOMP_H 1#ifndef ASM_X86__SECCOMP_64_H
2#define _ASM_SECCOMP_H 2#define ASM_X86__SECCOMP_64_H
3 3
4#include <linux/thread_info.h> 4#include <linux/thread_info.h>
5 5
@@ -22,4 +22,4 @@
22#define __NR_seccomp_exit_32 __NR_ia32_exit 22#define __NR_seccomp_exit_32 __NR_ia32_exit
23#define __NR_seccomp_sigreturn_32 __NR_ia32_sigreturn 23#define __NR_seccomp_sigreturn_32 __NR_ia32_sigreturn
24 24
25#endif /* _ASM_SECCOMP_H */ 25#endif /* ASM_X86__SECCOMP_64_H */
diff --git a/include/asm-x86/segment.h b/include/asm-x86/segment.h
index 646452ea9ea..ea5f0a8686f 100644
--- a/include/asm-x86/segment.h
+++ b/include/asm-x86/segment.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SEGMENT_H_ 1#ifndef ASM_X86__SEGMENT_H
2#define _ASM_X86_SEGMENT_H_ 2#define ASM_X86__SEGMENT_H
3 3
4/* Constructor for a conventional segment GDT (or LDT) entry */ 4/* Constructor for a conventional segment GDT (or LDT) entry */
5/* This is a macro so it can be used in initializers */ 5/* This is a macro so it can be used in initializers */
@@ -212,4 +212,4 @@ extern const char early_idt_handlers[NUM_EXCEPTION_VECTORS][10];
212#endif 212#endif
213#endif 213#endif
214 214
215#endif 215#endif /* ASM_X86__SEGMENT_H */
diff --git a/include/asm-x86/sembuf.h b/include/asm-x86/sembuf.h
index ee50c801f7b..81f06b7e5a3 100644
--- a/include/asm-x86/sembuf.h
+++ b/include/asm-x86/sembuf.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SEMBUF_H 1#ifndef ASM_X86__SEMBUF_H
2#define _ASM_X86_SEMBUF_H 2#define ASM_X86__SEMBUF_H
3 3
4/* 4/*
5 * The semid64_ds structure for x86 architecture. 5 * The semid64_ds structure for x86 architecture.
@@ -21,4 +21,4 @@ struct semid64_ds {
21 unsigned long __unused4; 21 unsigned long __unused4;
22}; 22};
23 23
24#endif /* _ASM_X86_SEMBUF_H */ 24#endif /* ASM_X86__SEMBUF_H */
diff --git a/include/asm-x86/serial.h b/include/asm-x86/serial.h
index 628c801535e..303660b671e 100644
--- a/include/asm-x86/serial.h
+++ b/include/asm-x86/serial.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SERIAL_H 1#ifndef ASM_X86__SERIAL_H
2#define _ASM_X86_SERIAL_H 2#define ASM_X86__SERIAL_H
3 3
4/* 4/*
5 * This assumes you have a 1.8432 MHz clock for your UART. 5 * This assumes you have a 1.8432 MHz clock for your UART.
@@ -26,4 +26,4 @@
26 { 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \ 26 { 0, BASE_BAUD, 0x3E8, 4, STD_COM_FLAGS }, /* ttyS2 */ \
27 { 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */ 27 { 0, BASE_BAUD, 0x2E8, 3, STD_COM4_FLAGS }, /* ttyS3 */
28 28
29#endif /* _ASM_X86_SERIAL_H */ 29#endif /* ASM_X86__SERIAL_H */
diff --git a/include/asm-x86/setup.h b/include/asm-x86/setup.h
index a07c6f1c01e..9030cb73c4d 100644
--- a/include/asm-x86/setup.h
+++ b/include/asm-x86/setup.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SETUP_H 1#ifndef ASM_X86__SETUP_H
2#define _ASM_X86_SETUP_H 2#define ASM_X86__SETUP_H
3 3
4#define COMMAND_LINE_SIZE 2048 4#define COMMAND_LINE_SIZE 2048
5 5
@@ -41,6 +41,7 @@ struct x86_quirks {
41}; 41};
42 42
43extern struct x86_quirks *x86_quirks; 43extern struct x86_quirks *x86_quirks;
44extern unsigned long saved_video_mode;
44 45
45#ifndef CONFIG_PARAVIRT 46#ifndef CONFIG_PARAVIRT
46#define paravirt_post_allocator_init() do {} while (0) 47#define paravirt_post_allocator_init() do {} while (0)
@@ -100,4 +101,4 @@ void __init x86_64_start_reservations(char *real_mode_data);
100#endif /* __ASSEMBLY__ */ 101#endif /* __ASSEMBLY__ */
101#endif /* __KERNEL__ */ 102#endif /* __KERNEL__ */
102 103
103#endif /* _ASM_X86_SETUP_H */ 104#endif /* ASM_X86__SETUP_H */
diff --git a/include/asm-x86/shmbuf.h b/include/asm-x86/shmbuf.h
index b51413b7497..f51aec2298e 100644
--- a/include/asm-x86/shmbuf.h
+++ b/include/asm-x86/shmbuf.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SHMBUF_H 1#ifndef ASM_X86__SHMBUF_H
2#define _ASM_X86_SHMBUF_H 2#define ASM_X86__SHMBUF_H
3 3
4/* 4/*
5 * The shmid64_ds structure for x86 architecture. 5 * The shmid64_ds structure for x86 architecture.
@@ -48,4 +48,4 @@ struct shminfo64 {
48 unsigned long __unused4; 48 unsigned long __unused4;
49}; 49};
50 50
51#endif /* _ASM_X86_SHMBUF_H */ 51#endif /* ASM_X86__SHMBUF_H */
diff --git a/include/asm-x86/shmparam.h b/include/asm-x86/shmparam.h
index 0880cf0917b..a83a1fd96a0 100644
--- a/include/asm-x86/shmparam.h
+++ b/include/asm-x86/shmparam.h
@@ -1,6 +1,6 @@
1#ifndef _ASM_X86_SHMPARAM_H 1#ifndef ASM_X86__SHMPARAM_H
2#define _ASM_X86_SHMPARAM_H 2#define ASM_X86__SHMPARAM_H
3 3
4#define SHMLBA PAGE_SIZE /* attach addr a multiple of this */ 4#define SHMLBA PAGE_SIZE /* attach addr a multiple of this */
5 5
6#endif /* _ASM_X86_SHMPARAM_H */ 6#endif /* ASM_X86__SHMPARAM_H */
diff --git a/include/asm-x86/sigcontext.h b/include/asm-x86/sigcontext.h
index 2f9c884d2c0..24879c85b29 100644
--- a/include/asm-x86/sigcontext.h
+++ b/include/asm-x86/sigcontext.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SIGCONTEXT_H 1#ifndef ASM_X86__SIGCONTEXT_H
2#define _ASM_X86_SIGCONTEXT_H 2#define ASM_X86__SIGCONTEXT_H
3 3
4#include <linux/compiler.h> 4#include <linux/compiler.h>
5#include <asm/types.h> 5#include <asm/types.h>
@@ -202,4 +202,4 @@ struct sigcontext {
202 202
203#endif /* !__i386__ */ 203#endif /* !__i386__ */
204 204
205#endif 205#endif /* ASM_X86__SIGCONTEXT_H */
diff --git a/include/asm-x86/sigcontext32.h b/include/asm-x86/sigcontext32.h
index 57a9686fb49..4e2ec732dd0 100644
--- a/include/asm-x86/sigcontext32.h
+++ b/include/asm-x86/sigcontext32.h
@@ -1,5 +1,5 @@
1#ifndef _SIGCONTEXT32_H 1#ifndef ASM_X86__SIGCONTEXT32_H
2#define _SIGCONTEXT32_H 1 2#define ASM_X86__SIGCONTEXT32_H
3 3
4/* signal context for 32bit programs. */ 4/* signal context for 32bit programs. */
5 5
@@ -68,4 +68,4 @@ struct sigcontext_ia32 {
68 unsigned int cr2; 68 unsigned int cr2;
69}; 69};
70 70
71#endif 71#endif /* ASM_X86__SIGCONTEXT32_H */
diff --git a/include/asm-x86/siginfo.h b/include/asm-x86/siginfo.h
index a477bea0c2a..808bdfb2958 100644
--- a/include/asm-x86/siginfo.h
+++ b/include/asm-x86/siginfo.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SIGINFO_H 1#ifndef ASM_X86__SIGINFO_H
2#define _ASM_X86_SIGINFO_H 2#define ASM_X86__SIGINFO_H
3 3
4#ifdef __x86_64__ 4#ifdef __x86_64__
5# define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int)) 5# define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
@@ -7,4 +7,4 @@
7 7
8#include <asm-generic/siginfo.h> 8#include <asm-generic/siginfo.h>
9 9
10#endif 10#endif /* ASM_X86__SIGINFO_H */
diff --git a/include/asm-x86/signal.h b/include/asm-x86/signal.h
index 6dac49364e9..65acc82d267 100644
--- a/include/asm-x86/signal.h
+++ b/include/asm-x86/signal.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SIGNAL_H 1#ifndef ASM_X86__SIGNAL_H
2#define _ASM_X86_SIGNAL_H 2#define ASM_X86__SIGNAL_H
3 3
4#ifndef __ASSEMBLY__ 4#ifndef __ASSEMBLY__
5#include <linux/types.h> 5#include <linux/types.h>
@@ -140,6 +140,9 @@ struct sigaction {
140struct k_sigaction { 140struct k_sigaction {
141 struct sigaction sa; 141 struct sigaction sa;
142}; 142};
143
144extern void do_notify_resume(struct pt_regs *, void *, __u32);
145
143# else /* __KERNEL__ */ 146# else /* __KERNEL__ */
144/* Here we must cater to libcs that poke about in kernel headers. */ 147/* Here we must cater to libcs that poke about in kernel headers. */
145 148
@@ -256,4 +259,4 @@ struct pt_regs;
256#endif /* __KERNEL__ */ 259#endif /* __KERNEL__ */
257#endif /* __ASSEMBLY__ */ 260#endif /* __ASSEMBLY__ */
258 261
259#endif 262#endif /* ASM_X86__SIGNAL_H */
diff --git a/include/asm-x86/smp.h b/include/asm-x86/smp.h
index 3c877f74f27..04f84f4e2c8 100644
--- a/include/asm-x86/smp.h
+++ b/include/asm-x86/smp.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SMP_H_ 1#ifndef ASM_X86__SMP_H
2#define _ASM_X86_SMP_H_ 2#define ASM_X86__SMP_H
3#ifndef __ASSEMBLY__ 3#ifndef __ASSEMBLY__
4#include <linux/cpumask.h> 4#include <linux/cpumask.h>
5#include <linux/init.h> 5#include <linux/init.h>
@@ -34,6 +34,9 @@ extern cpumask_t cpu_initialized;
34DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); 34DECLARE_PER_CPU(cpumask_t, cpu_sibling_map);
35DECLARE_PER_CPU(cpumask_t, cpu_core_map); 35DECLARE_PER_CPU(cpumask_t, cpu_core_map);
36DECLARE_PER_CPU(u16, cpu_llc_id); 36DECLARE_PER_CPU(u16, cpu_llc_id);
37#ifdef CONFIG_X86_32
38DECLARE_PER_CPU(int, cpu_number);
39#endif
37 40
38DECLARE_EARLY_PER_CPU(u16, x86_cpu_to_apicid); 41DECLARE_EARLY_PER_CPU(u16, x86_cpu_to_apicid);
39DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid); 42DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid);
@@ -142,7 +145,6 @@ extern unsigned disabled_cpus __cpuinitdata;
142 * from the initial startup. We map APIC_BASE very early in page_setup(), 145 * from the initial startup. We map APIC_BASE very early in page_setup(),
143 * so this is correct in the x86 case. 146 * so this is correct in the x86 case.
144 */ 147 */
145DECLARE_PER_CPU(int, cpu_number);
146#define raw_smp_processor_id() (x86_read_percpu(cpu_number)) 148#define raw_smp_processor_id() (x86_read_percpu(cpu_number))
147extern int safe_smp_processor_id(void); 149extern int safe_smp_processor_id(void);
148 150
@@ -205,4 +207,4 @@ extern void cpu_uninit(void);
205#endif 207#endif
206 208
207#endif /* __ASSEMBLY__ */ 209#endif /* __ASSEMBLY__ */
208#endif 210#endif /* ASM_X86__SMP_H */
diff --git a/include/asm-x86/socket.h b/include/asm-x86/socket.h
index 80af9c4ccad..db73274c83c 100644
--- a/include/asm-x86/socket.h
+++ b/include/asm-x86/socket.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_SOCKET_H 1#ifndef ASM_X86__SOCKET_H
2#define _ASM_SOCKET_H 2#define ASM_X86__SOCKET_H
3 3
4#include <asm/sockios.h> 4#include <asm/sockios.h>
5 5
@@ -54,4 +54,4 @@
54 54
55#define SO_MARK 36 55#define SO_MARK 36
56 56
57#endif /* _ASM_SOCKET_H */ 57#endif /* ASM_X86__SOCKET_H */
diff --git a/include/asm-x86/sockios.h b/include/asm-x86/sockios.h
index 49cc72b5d3c..a006704fdc8 100644
--- a/include/asm-x86/sockios.h
+++ b/include/asm-x86/sockios.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SOCKIOS_H 1#ifndef ASM_X86__SOCKIOS_H
2#define _ASM_X86_SOCKIOS_H 2#define ASM_X86__SOCKIOS_H
3 3
4/* Socket-level I/O control calls. */ 4/* Socket-level I/O control calls. */
5#define FIOSETOWN 0x8901 5#define FIOSETOWN 0x8901
@@ -10,4 +10,4 @@
10#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */ 10#define SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
11#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */ 11#define SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
12 12
13#endif /* _ASM_X86_SOCKIOS_H */ 13#endif /* ASM_X86__SOCKIOS_H */
diff --git a/include/asm-x86/sparsemem.h b/include/asm-x86/sparsemem.h
index 9bd48b0a534..38f8e6bc318 100644
--- a/include/asm-x86/sparsemem.h
+++ b/include/asm-x86/sparsemem.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SPARSEMEM_H 1#ifndef ASM_X86__SPARSEMEM_H
2#define _ASM_X86_SPARSEMEM_H 2#define ASM_X86__SPARSEMEM_H
3 3
4#ifdef CONFIG_SPARSEMEM 4#ifdef CONFIG_SPARSEMEM
5/* 5/*
@@ -31,4 +31,4 @@
31#endif 31#endif
32 32
33#endif /* CONFIG_SPARSEMEM */ 33#endif /* CONFIG_SPARSEMEM */
34#endif 34#endif /* ASM_X86__SPARSEMEM_H */
diff --git a/include/asm-x86/spinlock.h b/include/asm-x86/spinlock.h
index e39c790dbfd..93adae338ac 100644
--- a/include/asm-x86/spinlock.h
+++ b/include/asm-x86/spinlock.h
@@ -1,5 +1,5 @@
1#ifndef _X86_SPINLOCK_H_ 1#ifndef ASM_X86__SPINLOCK_H
2#define _X86_SPINLOCK_H_ 2#define ASM_X86__SPINLOCK_H
3 3
4#include <asm/atomic.h> 4#include <asm/atomic.h>
5#include <asm/rwlock.h> 5#include <asm/rwlock.h>
@@ -97,7 +97,7 @@ static __always_inline int __ticket_spin_trylock(raw_spinlock_t *lock)
97 "jne 1f\n\t" 97 "jne 1f\n\t"
98 "movw %w0,%w1\n\t" 98 "movw %w0,%w1\n\t"
99 "incb %h1\n\t" 99 "incb %h1\n\t"
100 "lock ; cmpxchgw %w1,%2\n\t" 100 LOCK_PREFIX "cmpxchgw %w1,%2\n\t"
101 "1:" 101 "1:"
102 "sete %b1\n\t" 102 "sete %b1\n\t"
103 "movzbl %b1,%0\n\t" 103 "movzbl %b1,%0\n\t"
@@ -135,7 +135,7 @@ static __always_inline void __ticket_spin_lock(raw_spinlock_t *lock)
135 int inc = 0x00010000; 135 int inc = 0x00010000;
136 int tmp; 136 int tmp;
137 137
138 asm volatile("lock ; xaddl %0, %1\n" 138 asm volatile(LOCK_PREFIX "xaddl %0, %1\n"
139 "movzwl %w0, %2\n\t" 139 "movzwl %w0, %2\n\t"
140 "shrl $16, %0\n\t" 140 "shrl $16, %0\n\t"
141 "1:\t" 141 "1:\t"
@@ -162,7 +162,7 @@ static __always_inline int __ticket_spin_trylock(raw_spinlock_t *lock)
162 "cmpl %0,%1\n\t" 162 "cmpl %0,%1\n\t"
163 "jne 1f\n\t" 163 "jne 1f\n\t"
164 "addl $0x00010000, %1\n\t" 164 "addl $0x00010000, %1\n\t"
165 "lock ; cmpxchgl %1,%2\n\t" 165 LOCK_PREFIX "cmpxchgl %1,%2\n\t"
166 "1:" 166 "1:"
167 "sete %b1\n\t" 167 "sete %b1\n\t"
168 "movzbl %b1,%0\n\t" 168 "movzbl %b1,%0\n\t"
@@ -366,4 +366,4 @@ static inline void __raw_write_unlock(raw_rwlock_t *rw)
366#define _raw_read_relax(lock) cpu_relax() 366#define _raw_read_relax(lock) cpu_relax()
367#define _raw_write_relax(lock) cpu_relax() 367#define _raw_write_relax(lock) cpu_relax()
368 368
369#endif 369#endif /* ASM_X86__SPINLOCK_H */
diff --git a/include/asm-x86/spinlock_types.h b/include/asm-x86/spinlock_types.h
index 06c071c9eee..6aa9b562c50 100644
--- a/include/asm-x86/spinlock_types.h
+++ b/include/asm-x86/spinlock_types.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_SPINLOCK_TYPES_H 1#ifndef ASM_X86__SPINLOCK_TYPES_H
2#define __ASM_SPINLOCK_TYPES_H 2#define ASM_X86__SPINLOCK_TYPES_H
3 3
4#ifndef __LINUX_SPINLOCK_TYPES_H 4#ifndef __LINUX_SPINLOCK_TYPES_H
5# error "please don't include this file directly" 5# error "please don't include this file directly"
@@ -17,4 +17,4 @@ typedef struct {
17 17
18#define __RAW_RW_LOCK_UNLOCKED { RW_LOCK_BIAS } 18#define __RAW_RW_LOCK_UNLOCKED { RW_LOCK_BIAS }
19 19
20#endif 20#endif /* ASM_X86__SPINLOCK_TYPES_H */
diff --git a/include/asm-x86/srat.h b/include/asm-x86/srat.h
index 774c919dc23..5363e4f7e1c 100644
--- a/include/asm-x86/srat.h
+++ b/include/asm-x86/srat.h
@@ -24,8 +24,8 @@
24 * Send feedback to Pat Gaughen <gone@us.ibm.com> 24 * Send feedback to Pat Gaughen <gone@us.ibm.com>
25 */ 25 */
26 26
27#ifndef _ASM_SRAT_H_ 27#ifndef ASM_X86__SRAT_H
28#define _ASM_SRAT_H_ 28#define ASM_X86__SRAT_H
29 29
30#ifdef CONFIG_ACPI_NUMA 30#ifdef CONFIG_ACPI_NUMA
31extern int get_memcfg_from_srat(void); 31extern int get_memcfg_from_srat(void);
@@ -36,4 +36,4 @@ static inline int get_memcfg_from_srat(void)
36} 36}
37#endif 37#endif
38 38
39#endif /* _ASM_SRAT_H_ */ 39#endif /* ASM_X86__SRAT_H */
diff --git a/include/asm-x86/stacktrace.h b/include/asm-x86/stacktrace.h
index 30f82526a8e..f43517e2853 100644
--- a/include/asm-x86/stacktrace.h
+++ b/include/asm-x86/stacktrace.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_STACKTRACE_H 1#ifndef ASM_X86__STACKTRACE_H
2#define _ASM_STACKTRACE_H 1 2#define ASM_X86__STACKTRACE_H
3 3
4extern int kstack_depth_to_print; 4extern int kstack_depth_to_print;
5 5
@@ -18,4 +18,4 @@ void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
18 unsigned long *stack, unsigned long bp, 18 unsigned long *stack, unsigned long bp,
19 const struct stacktrace_ops *ops, void *data); 19 const struct stacktrace_ops *ops, void *data);
20 20
21#endif 21#endif /* ASM_X86__STACKTRACE_H */
diff --git a/include/asm-x86/stat.h b/include/asm-x86/stat.h
index 5c22dcb5d17..1e120f62890 100644
--- a/include/asm-x86/stat.h
+++ b/include/asm-x86/stat.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_STAT_H 1#ifndef ASM_X86__STAT_H
2#define _ASM_X86_STAT_H 2#define ASM_X86__STAT_H
3 3
4#define STAT_HAVE_NSEC 1 4#define STAT_HAVE_NSEC 1
5 5
@@ -111,4 +111,4 @@ struct __old_kernel_stat {
111#endif 111#endif
112}; 112};
113 113
114#endif 114#endif /* ASM_X86__STAT_H */
diff --git a/include/asm-x86/statfs.h b/include/asm-x86/statfs.h
index 7c651aa9725..3f005bc3aa5 100644
--- a/include/asm-x86/statfs.h
+++ b/include/asm-x86/statfs.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_STATFS_H 1#ifndef ASM_X86__STATFS_H
2#define _ASM_X86_STATFS_H 2#define ASM_X86__STATFS_H
3 3
4#ifdef __i386__ 4#ifdef __i386__
5#include <asm-generic/statfs.h> 5#include <asm-generic/statfs.h>
@@ -60,4 +60,4 @@ struct compat_statfs64 {
60} __attribute__((packed)); 60} __attribute__((packed));
61 61
62#endif /* !__i386__ */ 62#endif /* !__i386__ */
63#endif 63#endif /* ASM_X86__STATFS_H */
diff --git a/include/asm-x86/string_32.h b/include/asm-x86/string_32.h
index 193578cd1fd..487843ed245 100644
--- a/include/asm-x86/string_32.h
+++ b/include/asm-x86/string_32.h
@@ -1,5 +1,5 @@
1#ifndef _I386_STRING_H_ 1#ifndef ASM_X86__STRING_32_H
2#define _I386_STRING_H_ 2#define ASM_X86__STRING_32_H
3 3
4#ifdef __KERNEL__ 4#ifdef __KERNEL__
5 5
@@ -323,4 +323,4 @@ extern void *memscan(void *addr, int c, size_t size);
323 323
324#endif /* __KERNEL__ */ 324#endif /* __KERNEL__ */
325 325
326#endif 326#endif /* ASM_X86__STRING_32_H */
diff --git a/include/asm-x86/string_64.h b/include/asm-x86/string_64.h
index 52b5ab38339..a2add11d3b6 100644
--- a/include/asm-x86/string_64.h
+++ b/include/asm-x86/string_64.h
@@ -1,5 +1,5 @@
1#ifndef _X86_64_STRING_H_ 1#ifndef ASM_X86__STRING_64_H
2#define _X86_64_STRING_H_ 2#define ASM_X86__STRING_64_H
3 3
4#ifdef __KERNEL__ 4#ifdef __KERNEL__
5 5
@@ -57,4 +57,4 @@ int strcmp(const char *cs, const char *ct);
57 57
58#endif /* __KERNEL__ */ 58#endif /* __KERNEL__ */
59 59
60#endif 60#endif /* ASM_X86__STRING_64_H */
diff --git a/include/asm-x86/suspend_32.h b/include/asm-x86/suspend_32.h
index 8675c6782a7..acb6d4d491f 100644
--- a/include/asm-x86/suspend_32.h
+++ b/include/asm-x86/suspend_32.h
@@ -3,8 +3,8 @@
3 * Based on code 3 * Based on code
4 * Copyright 2001 Patrick Mochel <mochel@osdl.org> 4 * Copyright 2001 Patrick Mochel <mochel@osdl.org>
5 */ 5 */
6#ifndef __ASM_X86_32_SUSPEND_H 6#ifndef ASM_X86__SUSPEND_32_H
7#define __ASM_X86_32_SUSPEND_H 7#define ASM_X86__SUSPEND_32_H
8 8
9#include <asm/desc.h> 9#include <asm/desc.h>
10#include <asm/i387.h> 10#include <asm/i387.h>
@@ -48,4 +48,4 @@ static inline void acpi_save_register_state(unsigned long return_point)
48extern int acpi_save_state_mem(void); 48extern int acpi_save_state_mem(void);
49#endif 49#endif
50 50
51#endif /* __ASM_X86_32_SUSPEND_H */ 51#endif /* ASM_X86__SUSPEND_32_H */
diff --git a/include/asm-x86/suspend_64.h b/include/asm-x86/suspend_64.h
index dc3262b4307..cf821dd310e 100644
--- a/include/asm-x86/suspend_64.h
+++ b/include/asm-x86/suspend_64.h
@@ -3,8 +3,8 @@
3 * Based on code 3 * Based on code
4 * Copyright 2001 Patrick Mochel <mochel@osdl.org> 4 * Copyright 2001 Patrick Mochel <mochel@osdl.org>
5 */ 5 */
6#ifndef __ASM_X86_64_SUSPEND_H 6#ifndef ASM_X86__SUSPEND_64_H
7#define __ASM_X86_64_SUSPEND_H 7#define ASM_X86__SUSPEND_64_H
8 8
9#include <asm/desc.h> 9#include <asm/desc.h>
10#include <asm/i387.h> 10#include <asm/i387.h>
@@ -49,4 +49,4 @@ extern int acpi_save_state_mem(void);
49extern char core_restore_code; 49extern char core_restore_code;
50extern char restore_registers; 50extern char restore_registers;
51 51
52#endif /* __ASM_X86_64_SUSPEND_H */ 52#endif /* ASM_X86__SUSPEND_64_H */
diff --git a/include/asm-x86/swiotlb.h b/include/asm-x86/swiotlb.h
index 2730b351afc..1e20adbcad4 100644
--- a/include/asm-x86/swiotlb.h
+++ b/include/asm-x86/swiotlb.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_SWIOTLB_H 1#ifndef ASM_X86__SWIOTLB_H
2#define _ASM_SWIOTLB_H 1 2#define ASM_X86__SWIOTLB_H
3 3
4#include <asm/dma-mapping.h> 4#include <asm/dma-mapping.h>
5 5
@@ -55,4 +55,4 @@ static inline void pci_swiotlb_init(void)
55 55
56static inline void dma_mark_clean(void *addr, size_t size) {} 56static inline void dma_mark_clean(void *addr, size_t size) {}
57 57
58#endif /* _ASM_SWIOTLB_H */ 58#endif /* ASM_X86__SWIOTLB_H */
diff --git a/include/asm-x86/sync_bitops.h b/include/asm-x86/sync_bitops.h
index b47a1d0b8a8..b689bee7110 100644
--- a/include/asm-x86/sync_bitops.h
+++ b/include/asm-x86/sync_bitops.h
@@ -1,5 +1,5 @@
1#ifndef _I386_SYNC_BITOPS_H 1#ifndef ASM_X86__SYNC_BITOPS_H
2#define _I386_SYNC_BITOPS_H 2#define ASM_X86__SYNC_BITOPS_H
3 3
4/* 4/*
5 * Copyright 1992, Linus Torvalds. 5 * Copyright 1992, Linus Torvalds.
@@ -127,4 +127,4 @@ static inline int sync_test_and_change_bit(int nr, volatile unsigned long *addr)
127 127
128#undef ADDR 128#undef ADDR
129 129
130#endif /* _I386_SYNC_BITOPS_H */ 130#endif /* ASM_X86__SYNC_BITOPS_H */
diff --git a/include/asm-x86/syscall.h b/include/asm-x86/syscall.h
new file mode 100644
index 00000000000..04c47dc5597
--- /dev/null
+++ b/include/asm-x86/syscall.h
@@ -0,0 +1,211 @@
1/*
2 * Access to user system call parameters and results
3 *
4 * Copyright (C) 2008 Red Hat, Inc. All rights reserved.
5 *
6 * This copyrighted material is made available to anyone wishing to use,
7 * modify, copy, or redistribute it subject to the terms and conditions
8 * of the GNU General Public License v.2.
9 *
10 * See asm-generic/syscall.h for descriptions of what we must do here.
11 */
12
13#ifndef _ASM_SYSCALL_H
14#define _ASM_SYSCALL_H 1
15
16#include <linux/sched.h>
17#include <linux/err.h>
18
19static inline long syscall_get_nr(struct task_struct *task,
20 struct pt_regs *regs)
21{
22 /*
23 * We always sign-extend a -1 value being set here,
24 * so this is always either -1L or a syscall number.
25 */
26 return regs->orig_ax;
27}
28
29static inline void syscall_rollback(struct task_struct *task,
30 struct pt_regs *regs)
31{
32 regs->ax = regs->orig_ax;
33}
34
35static inline long syscall_get_error(struct task_struct *task,
36 struct pt_regs *regs)
37{
38 unsigned long error = regs->ax;
39#ifdef CONFIG_IA32_EMULATION
40 /*
41 * TS_COMPAT is set for 32-bit syscall entries and then
42 * remains set until we return to user mode.
43 */
44 if (task_thread_info(task)->status & TS_COMPAT)
45 /*
46 * Sign-extend the value so (int)-EFOO becomes (long)-EFOO
47 * and will match correctly in comparisons.
48 */
49 error = (long) (int) error;
50#endif
51 return IS_ERR_VALUE(error) ? error : 0;
52}
53
54static inline long syscall_get_return_value(struct task_struct *task,
55 struct pt_regs *regs)
56{
57 return regs->ax;
58}
59
60static inline void syscall_set_return_value(struct task_struct *task,
61 struct pt_regs *regs,
62 int error, long val)
63{
64 regs->ax = (long) error ?: val;
65}
66
67#ifdef CONFIG_X86_32
68
69static inline void syscall_get_arguments(struct task_struct *task,
70 struct pt_regs *regs,
71 unsigned int i, unsigned int n,
72 unsigned long *args)
73{
74 BUG_ON(i + n > 6);
75 memcpy(args, &regs->bx + i, n * sizeof(args[0]));
76}
77
78static inline void syscall_set_arguments(struct task_struct *task,
79 struct pt_regs *regs,
80 unsigned int i, unsigned int n,
81 const unsigned long *args)
82{
83 BUG_ON(i + n > 6);
84 memcpy(&regs->bx + i, args, n * sizeof(args[0]));
85}
86
87#else /* CONFIG_X86_64 */
88
89static inline void syscall_get_arguments(struct task_struct *task,
90 struct pt_regs *regs,
91 unsigned int i, unsigned int n,
92 unsigned long *args)
93{
94# ifdef CONFIG_IA32_EMULATION
95 if (task_thread_info(task)->status & TS_COMPAT)
96 switch (i + n) {
97 case 6:
98 if (!n--) break;
99 *args++ = regs->bp;
100 case 5:
101 if (!n--) break;
102 *args++ = regs->di;
103 case 4:
104 if (!n--) break;
105 *args++ = regs->si;
106 case 3:
107 if (!n--) break;
108 *args++ = regs->dx;
109 case 2:
110 if (!n--) break;
111 *args++ = regs->cx;
112 case 1:
113 if (!n--) break;
114 *args++ = regs->bx;
115 case 0:
116 if (!n--) break;
117 default:
118 BUG();
119 break;
120 }
121 else
122# endif
123 switch (i + n) {
124 case 6:
125 if (!n--) break;
126 *args++ = regs->r9;
127 case 5:
128 if (!n--) break;
129 *args++ = regs->r8;
130 case 4:
131 if (!n--) break;
132 *args++ = regs->r10;
133 case 3:
134 if (!n--) break;
135 *args++ = regs->dx;
136 case 2:
137 if (!n--) break;
138 *args++ = regs->si;
139 case 1:
140 if (!n--) break;
141 *args++ = regs->di;
142 case 0:
143 if (!n--) break;
144 default:
145 BUG();
146 break;
147 }
148}
149
150static inline void syscall_set_arguments(struct task_struct *task,
151 struct pt_regs *regs,
152 unsigned int i, unsigned int n,
153 const unsigned long *args)
154{
155# ifdef CONFIG_IA32_EMULATION
156 if (task_thread_info(task)->status & TS_COMPAT)
157 switch (i + n) {
158 case 6:
159 if (!n--) break;
160 regs->bp = *args++;
161 case 5:
162 if (!n--) break;
163 regs->di = *args++;
164 case 4:
165 if (!n--) break;
166 regs->si = *args++;
167 case 3:
168 if (!n--) break;
169 regs->dx = *args++;
170 case 2:
171 if (!n--) break;
172 regs->cx = *args++;
173 case 1:
174 if (!n--) break;
175 regs->bx = *args++;
176 case 0:
177 if (!n--) break;
178 default:
179 BUG();
180 }
181 else
182# endif
183 switch (i + n) {
184 case 6:
185 if (!n--) break;
186 regs->r9 = *args++;
187 case 5:
188 if (!n--) break;
189 regs->r8 = *args++;
190 case 4:
191 if (!n--) break;
192 regs->r10 = *args++;
193 case 3:
194 if (!n--) break;
195 regs->dx = *args++;
196 case 2:
197 if (!n--) break;
198 regs->si = *args++;
199 case 1:
200 if (!n--) break;
201 regs->di = *args++;
202 case 0:
203 if (!n--) break;
204 default:
205 BUG();
206 }
207}
208
209#endif /* CONFIG_X86_32 */
210
211#endif /* _ASM_SYSCALL_H */
diff --git a/include/asm-x86/syscalls.h b/include/asm-x86/syscalls.h
new file mode 100644
index 00000000000..87803da4401
--- /dev/null
+++ b/include/asm-x86/syscalls.h
@@ -0,0 +1,93 @@
1/*
2 * syscalls.h - Linux syscall interfaces (arch-specific)
3 *
4 * Copyright (c) 2008 Jaswinder Singh
5 *
6 * This file is released under the GPLv2.
7 * See the file COPYING for more details.
8 */
9
10#ifndef _ASM_X86_SYSCALLS_H
11#define _ASM_X86_SYSCALLS_H
12
13#include <linux/compiler.h>
14#include <linux/linkage.h>
15#include <linux/types.h>
16#include <linux/signal.h>
17
18/* Common in X86_32 and X86_64 */
19/* kernel/ioport.c */
20asmlinkage long sys_ioperm(unsigned long, unsigned long, int);
21
22/* X86_32 only */
23#ifdef CONFIG_X86_32
24/* kernel/process_32.c */
25asmlinkage int sys_fork(struct pt_regs);
26asmlinkage int sys_clone(struct pt_regs);
27asmlinkage int sys_vfork(struct pt_regs);
28asmlinkage int sys_execve(struct pt_regs);
29
30/* kernel/signal_32.c */
31asmlinkage int sys_sigsuspend(int, int, old_sigset_t);
32asmlinkage int sys_sigaction(int, const struct old_sigaction __user *,
33 struct old_sigaction __user *);
34asmlinkage int sys_sigaltstack(unsigned long);
35asmlinkage unsigned long sys_sigreturn(unsigned long);
36asmlinkage int sys_rt_sigreturn(unsigned long);
37
38/* kernel/ioport.c */
39asmlinkage long sys_iopl(unsigned long);
40
41/* kernel/ldt.c */
42asmlinkage int sys_modify_ldt(int, void __user *, unsigned long);
43
44/* kernel/sys_i386_32.c */
45asmlinkage long sys_mmap2(unsigned long, unsigned long, unsigned long,
46 unsigned long, unsigned long, unsigned long);
47struct mmap_arg_struct;
48asmlinkage int old_mmap(struct mmap_arg_struct __user *);
49struct sel_arg_struct;
50asmlinkage int old_select(struct sel_arg_struct __user *);
51asmlinkage int sys_ipc(uint, int, int, int, void __user *, long);
52struct old_utsname;
53asmlinkage int sys_uname(struct old_utsname __user *);
54struct oldold_utsname;
55asmlinkage int sys_olduname(struct oldold_utsname __user *);
56
57/* kernel/tls.c */
58asmlinkage int sys_set_thread_area(struct user_desc __user *);
59asmlinkage int sys_get_thread_area(struct user_desc __user *);
60
61/* kernel/vm86_32.c */
62asmlinkage int sys_vm86old(struct pt_regs);
63asmlinkage int sys_vm86(struct pt_regs);
64
65#else /* CONFIG_X86_32 */
66
67/* X86_64 only */
68/* kernel/process_64.c */
69asmlinkage long sys_fork(struct pt_regs *);
70asmlinkage long sys_clone(unsigned long, unsigned long,
71 void __user *, void __user *,
72 struct pt_regs *);
73asmlinkage long sys_vfork(struct pt_regs *);
74asmlinkage long sys_execve(char __user *, char __user * __user *,
75 char __user * __user *,
76 struct pt_regs *);
77
78/* kernel/ioport.c */
79asmlinkage long sys_iopl(unsigned int, struct pt_regs *);
80
81/* kernel/signal_64.c */
82asmlinkage long sys_sigaltstack(const stack_t __user *, stack_t __user *,
83 struct pt_regs *);
84asmlinkage long sys_rt_sigreturn(struct pt_regs *);
85
86/* kernel/sys_x86_64.c */
87asmlinkage long sys_mmap(unsigned long, unsigned long, unsigned long,
88 unsigned long, unsigned long, unsigned long);
89struct new_utsname;
90asmlinkage long sys_uname(struct new_utsname __user *);
91
92#endif /* CONFIG_X86_32 */
93#endif /* _ASM_X86_SYSCALLS_H */
diff --git a/include/asm-x86/system.h b/include/asm-x86/system.h
index 983ce37c491..34505dd7b24 100644
--- a/include/asm-x86/system.h
+++ b/include/asm-x86/system.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_SYSTEM_H_ 1#ifndef ASM_X86__SYSTEM_H
2#define _ASM_X86_SYSTEM_H_ 2#define ASM_X86__SYSTEM_H
3 3
4#include <asm/asm.h> 4#include <asm/asm.h>
5#include <asm/segment.h> 5#include <asm/segment.h>
@@ -419,4 +419,4 @@ static inline void rdtsc_barrier(void)
419 alternative(ASM_NOP3, "lfence", X86_FEATURE_LFENCE_RDTSC); 419 alternative(ASM_NOP3, "lfence", X86_FEATURE_LFENCE_RDTSC);
420} 420}
421 421
422#endif 422#endif /* ASM_X86__SYSTEM_H */
diff --git a/include/asm-x86/system_64.h b/include/asm-x86/system_64.h
index 97fa251ccb2..5aedb8bffc5 100644
--- a/include/asm-x86/system_64.h
+++ b/include/asm-x86/system_64.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_SYSTEM_H 1#ifndef ASM_X86__SYSTEM_64_H
2#define __ASM_SYSTEM_H 2#define ASM_X86__SYSTEM_64_H
3 3
4#include <asm/segment.h> 4#include <asm/segment.h>
5#include <asm/cmpxchg.h> 5#include <asm/cmpxchg.h>
@@ -19,4 +19,4 @@ static inline void write_cr8(unsigned long val)
19 19
20#include <linux/irqflags.h> 20#include <linux/irqflags.h>
21 21
22#endif 22#endif /* ASM_X86__SYSTEM_64_H */
diff --git a/include/asm-x86/tce.h b/include/asm-x86/tce.h
index b1a4ea00df7..e7932d7fbba 100644
--- a/include/asm-x86/tce.h
+++ b/include/asm-x86/tce.h
@@ -21,8 +21,8 @@
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 22 */
23 23
24#ifndef _ASM_X86_64_TCE_H 24#ifndef ASM_X86__TCE_H
25#define _ASM_X86_64_TCE_H 25#define ASM_X86__TCE_H
26 26
27extern unsigned int specified_table_size; 27extern unsigned int specified_table_size;
28struct iommu_table; 28struct iommu_table;
@@ -45,4 +45,4 @@ extern void * __init alloc_tce_table(void);
45extern void __init free_tce_table(void *tbl); 45extern void __init free_tce_table(void *tbl);
46extern int __init build_tce_table(struct pci_dev *dev, void __iomem *bbar); 46extern int __init build_tce_table(struct pci_dev *dev, void __iomem *bbar);
47 47
48#endif /* _ASM_X86_64_TCE_H */ 48#endif /* ASM_X86__TCE_H */
diff --git a/include/asm-x86/termbits.h b/include/asm-x86/termbits.h
index af1b70ea440..3d00dc5e0c7 100644
--- a/include/asm-x86/termbits.h
+++ b/include/asm-x86/termbits.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_TERMBITS_H 1#ifndef ASM_X86__TERMBITS_H
2#define _ASM_X86_TERMBITS_H 2#define ASM_X86__TERMBITS_H
3 3
4#include <linux/posix_types.h> 4#include <linux/posix_types.h>
5 5
@@ -195,4 +195,4 @@ struct ktermios {
195#define TCSADRAIN 1 195#define TCSADRAIN 1
196#define TCSAFLUSH 2 196#define TCSAFLUSH 2
197 197
198#endif /* _ASM_X86_TERMBITS_H */ 198#endif /* ASM_X86__TERMBITS_H */
diff --git a/include/asm-x86/termios.h b/include/asm-x86/termios.h
index f72956331c4..e235db24807 100644
--- a/include/asm-x86/termios.h
+++ b/include/asm-x86/termios.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_TERMIOS_H 1#ifndef ASM_X86__TERMIOS_H
2#define _ASM_X86_TERMIOS_H 2#define ASM_X86__TERMIOS_H
3 3
4#include <asm/termbits.h> 4#include <asm/termbits.h>
5#include <asm/ioctls.h> 5#include <asm/ioctls.h>
@@ -110,4 +110,4 @@ static inline int kernel_termios_to_user_termios_1(struct termios __user *u,
110 110
111#endif /* __KERNEL__ */ 111#endif /* __KERNEL__ */
112 112
113#endif /* _ASM_X86_TERMIOS_H */ 113#endif /* ASM_X86__TERMIOS_H */
diff --git a/include/asm-x86/therm_throt.h b/include/asm-x86/therm_throt.h
index 399bf6026b1..1c7f57b6b66 100644
--- a/include/asm-x86/therm_throt.h
+++ b/include/asm-x86/therm_throt.h
@@ -1,9 +1,9 @@
1#ifndef __ASM_I386_THERM_THROT_H__ 1#ifndef ASM_X86__THERM_THROT_H
2#define __ASM_I386_THERM_THROT_H__ 1 2#define ASM_X86__THERM_THROT_H
3 3
4#include <asm/atomic.h> 4#include <asm/atomic.h>
5 5
6extern atomic_t therm_throt_en; 6extern atomic_t therm_throt_en;
7int therm_throt_process(int curr); 7int therm_throt_process(int curr);
8 8
9#endif /* __ASM_I386_THERM_THROT_H__ */ 9#endif /* ASM_X86__THERM_THROT_H */
diff --git a/include/asm-x86/thread_info.h b/include/asm-x86/thread_info.h
index da0a675adf9..4db0066a3a3 100644
--- a/include/asm-x86/thread_info.h
+++ b/include/asm-x86/thread_info.h
@@ -4,8 +4,8 @@
4 * - Incorporating suggestions made by Linus Torvalds and Dave Miller 4 * - Incorporating suggestions made by Linus Torvalds and Dave Miller
5 */ 5 */
6 6
7#ifndef _ASM_X86_THREAD_INFO_H 7#ifndef ASM_X86__THREAD_INFO_H
8#define _ASM_X86_THREAD_INFO_H 8#define ASM_X86__THREAD_INFO_H
9 9
10#include <linux/compiler.h> 10#include <linux/compiler.h>
11#include <asm/page.h> 11#include <asm/page.h>
@@ -71,6 +71,7 @@ struct thread_info {
71 * Warning: layout of LSW is hardcoded in entry.S 71 * Warning: layout of LSW is hardcoded in entry.S
72 */ 72 */
73#define TIF_SYSCALL_TRACE 0 /* syscall trace active */ 73#define TIF_SYSCALL_TRACE 0 /* syscall trace active */
74#define TIF_NOTIFY_RESUME 1 /* callback before returning to user */
74#define TIF_SIGPENDING 2 /* signal pending */ 75#define TIF_SIGPENDING 2 /* signal pending */
75#define TIF_NEED_RESCHED 3 /* rescheduling necessary */ 76#define TIF_NEED_RESCHED 3 /* rescheduling necessary */
76#define TIF_SINGLESTEP 4 /* reenable singlestep on user return*/ 77#define TIF_SINGLESTEP 4 /* reenable singlestep on user return*/
@@ -93,6 +94,7 @@ struct thread_info {
93#define TIF_BTS_TRACE_TS 27 /* record scheduling event timestamps */ 94#define TIF_BTS_TRACE_TS 27 /* record scheduling event timestamps */
94 95
95#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) 96#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
97#define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
96#define _TIF_SIGPENDING (1 << TIF_SIGPENDING) 98#define _TIF_SIGPENDING (1 << TIF_SIGPENDING)
97#define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP) 99#define _TIF_SINGLESTEP (1 << TIF_SINGLESTEP)
98#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED) 100#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
@@ -133,7 +135,7 @@ struct thread_info {
133 135
134/* Only used for 64 bit */ 136/* Only used for 64 bit */
135#define _TIF_DO_NOTIFY_MASK \ 137#define _TIF_DO_NOTIFY_MASK \
136 (_TIF_SIGPENDING|_TIF_MCE_NOTIFY) 138 (_TIF_SIGPENDING|_TIF_MCE_NOTIFY|_TIF_NOTIFY_RESUME)
137 139
138/* flags to check in __switch_to() */ 140/* flags to check in __switch_to() */
139#define _TIF_WORK_CTXSW \ 141#define _TIF_WORK_CTXSW \
@@ -258,4 +260,4 @@ extern void free_thread_info(struct thread_info *ti);
258extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src); 260extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src);
259#define arch_task_cache_init arch_task_cache_init 261#define arch_task_cache_init arch_task_cache_init
260#endif 262#endif
261#endif /* _ASM_X86_THREAD_INFO_H */ 263#endif /* ASM_X86__THREAD_INFO_H */
diff --git a/include/asm-x86/time.h b/include/asm-x86/time.h
index a17fa473e91..3e724eef7ac 100644
--- a/include/asm-x86/time.h
+++ b/include/asm-x86/time.h
@@ -1,5 +1,5 @@
1#ifndef _ASMX86_TIME_H 1#ifndef ASM_X86__TIME_H
2#define _ASMX86_TIME_H 2#define ASM_X86__TIME_H
3 3
4extern void hpet_time_init(void); 4extern void hpet_time_init(void);
5 5
@@ -46,6 +46,8 @@ static inline int native_set_wallclock(unsigned long nowtime)
46 46
47#endif 47#endif
48 48
49extern void time_init(void);
50
49#ifdef CONFIG_PARAVIRT 51#ifdef CONFIG_PARAVIRT
50#include <asm/paravirt.h> 52#include <asm/paravirt.h>
51#else /* !CONFIG_PARAVIRT */ 53#else /* !CONFIG_PARAVIRT */
@@ -58,4 +60,4 @@ static inline int native_set_wallclock(unsigned long nowtime)
58 60
59extern unsigned long __init calibrate_cpu(void); 61extern unsigned long __init calibrate_cpu(void);
60 62
61#endif 63#endif /* ASM_X86__TIME_H */
diff --git a/include/asm-x86/timer.h b/include/asm-x86/timer.h
index fb2a4ddddf3..d0babce4b47 100644
--- a/include/asm-x86/timer.h
+++ b/include/asm-x86/timer.h
@@ -1,5 +1,5 @@
1#ifndef _ASMi386_TIMER_H 1#ifndef ASM_X86__TIMER_H
2#define _ASMi386_TIMER_H 2#define ASM_X86__TIMER_H
3#include <linux/init.h> 3#include <linux/init.h>
4#include <linux/pm.h> 4#include <linux/pm.h>
5#include <linux/percpu.h> 5#include <linux/percpu.h>
@@ -9,9 +9,12 @@
9unsigned long long native_sched_clock(void); 9unsigned long long native_sched_clock(void);
10unsigned long native_calibrate_tsc(void); 10unsigned long native_calibrate_tsc(void);
11 11
12#ifdef CONFIG_X86_32
12extern int timer_ack; 13extern int timer_ack;
13extern int no_timer_check;
14extern int recalibrate_cpu_khz(void); 14extern int recalibrate_cpu_khz(void);
15#endif /* CONFIG_X86_32 */
16
17extern int no_timer_check;
15 18
16#ifndef CONFIG_PARAVIRT 19#ifndef CONFIG_PARAVIRT
17#define calibrate_tsc() native_calibrate_tsc() 20#define calibrate_tsc() native_calibrate_tsc()
@@ -60,4 +63,4 @@ static inline unsigned long long cycles_2_ns(unsigned long long cyc)
60 return ns; 63 return ns;
61} 64}
62 65
63#endif 66#endif /* ASM_X86__TIMER_H */
diff --git a/include/asm-x86/timex.h b/include/asm-x86/timex.h
index 43e5a78500c..d1ce2416a5d 100644
--- a/include/asm-x86/timex.h
+++ b/include/asm-x86/timex.h
@@ -1,6 +1,6 @@
1/* x86 architecture timex specifications */ 1/* x86 architecture timex specifications */
2#ifndef _ASM_X86_TIMEX_H 2#ifndef ASM_X86__TIMEX_H
3#define _ASM_X86_TIMEX_H 3#define ASM_X86__TIMEX_H
4 4
5#include <asm/processor.h> 5#include <asm/processor.h>
6#include <asm/tsc.h> 6#include <asm/tsc.h>
@@ -16,4 +16,4 @@
16 16
17#define ARCH_HAS_READ_CURRENT_TIMER 17#define ARCH_HAS_READ_CURRENT_TIMER
18 18
19#endif 19#endif /* ASM_X86__TIMEX_H */
diff --git a/include/asm-x86/tlb.h b/include/asm-x86/tlb.h
index e4e9e2d07a9..db36e9e89e8 100644
--- a/include/asm-x86/tlb.h
+++ b/include/asm-x86/tlb.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_TLB_H 1#ifndef ASM_X86__TLB_H
2#define _ASM_X86_TLB_H 2#define ASM_X86__TLB_H
3 3
4#define tlb_start_vma(tlb, vma) do { } while (0) 4#define tlb_start_vma(tlb, vma) do { } while (0)
5#define tlb_end_vma(tlb, vma) do { } while (0) 5#define tlb_end_vma(tlb, vma) do { } while (0)
@@ -8,4 +8,4 @@
8 8
9#include <asm-generic/tlb.h> 9#include <asm-generic/tlb.h>
10 10
11#endif 11#endif /* ASM_X86__TLB_H */
diff --git a/include/asm-x86/tlbflush.h b/include/asm-x86/tlbflush.h
index 35c76ceb9f4..ef68b76dc3c 100644
--- a/include/asm-x86/tlbflush.h
+++ b/include/asm-x86/tlbflush.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_TLBFLUSH_H 1#ifndef ASM_X86__TLBFLUSH_H
2#define _ASM_X86_TLBFLUSH_H 2#define ASM_X86__TLBFLUSH_H
3 3
4#include <linux/mm.h> 4#include <linux/mm.h>
5#include <linux/sched.h> 5#include <linux/sched.h>
@@ -165,4 +165,4 @@ static inline void flush_tlb_kernel_range(unsigned long start,
165 flush_tlb_all(); 165 flush_tlb_all();
166} 166}
167 167
168#endif /* _ASM_X86_TLBFLUSH_H */ 168#endif /* ASM_X86__TLBFLUSH_H */
diff --git a/include/asm-x86/topology.h b/include/asm-x86/topology.h
index 90ac7718469..7eca9bc022b 100644
--- a/include/asm-x86/topology.h
+++ b/include/asm-x86/topology.h
@@ -22,8 +22,8 @@
22 * 22 *
23 * Send feedback to <colpatch@us.ibm.com> 23 * Send feedback to <colpatch@us.ibm.com>
24 */ 24 */
25#ifndef _ASM_X86_TOPOLOGY_H 25#ifndef ASM_X86__TOPOLOGY_H
26#define _ASM_X86_TOPOLOGY_H 26#define ASM_X86__TOPOLOGY_H
27 27
28#ifdef CONFIG_X86_32 28#ifdef CONFIG_X86_32
29# ifdef CONFIG_X86_HT 29# ifdef CONFIG_X86_HT
@@ -255,4 +255,4 @@ static inline void set_mp_bus_to_node(int busnum, int node)
255} 255}
256#endif 256#endif
257 257
258#endif /* _ASM_X86_TOPOLOGY_H */ 258#endif /* ASM_X86__TOPOLOGY_H */
diff --git a/include/asm-x86/trampoline.h b/include/asm-x86/trampoline.h
index b156b08d013..0406bbd898a 100644
--- a/include/asm-x86/trampoline.h
+++ b/include/asm-x86/trampoline.h
@@ -1,5 +1,5 @@
1#ifndef __TRAMPOLINE_HEADER 1#ifndef ASM_X86__TRAMPOLINE_H
2#define __TRAMPOLINE_HEADER 2#define ASM_X86__TRAMPOLINE_H
3 3
4#ifndef __ASSEMBLY__ 4#ifndef __ASSEMBLY__
5 5
@@ -18,4 +18,4 @@ extern unsigned long setup_trampoline(void);
18 18
19#endif /* __ASSEMBLY__ */ 19#endif /* __ASSEMBLY__ */
20 20
21#endif /* __TRAMPOLINE_HEADER */ 21#endif /* ASM_X86__TRAMPOLINE_H */
diff --git a/include/asm-x86/traps.h b/include/asm-x86/traps.h
index a4b65a71bd6..2ccebc6fb0b 100644
--- a/include/asm-x86/traps.h
+++ b/include/asm-x86/traps.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_TRAPS_H 1#ifndef ASM_X86__TRAPS_H
2#define _ASM_X86_TRAPS_H 2#define ASM_X86__TRAPS_H
3 3
4/* Common in X86_32 and X86_64 */ 4/* Common in X86_32 and X86_64 */
5asmlinkage void divide_error(void); 5asmlinkage void divide_error(void);
@@ -51,6 +51,8 @@ void do_spurious_interrupt_bug(struct pt_regs *, long);
51unsigned long patch_espfix_desc(unsigned long, unsigned long); 51unsigned long patch_espfix_desc(unsigned long, unsigned long);
52asmlinkage void math_emulate(long); 52asmlinkage void math_emulate(long);
53 53
54void do_page_fault(struct pt_regs *regs, unsigned long error_code);
55
54#else /* CONFIG_X86_32 */ 56#else /* CONFIG_X86_32 */
55 57
56asmlinkage void double_fault(void); 58asmlinkage void double_fault(void);
@@ -62,5 +64,7 @@ asmlinkage void do_coprocessor_error(struct pt_regs *);
62asmlinkage void do_simd_coprocessor_error(struct pt_regs *); 64asmlinkage void do_simd_coprocessor_error(struct pt_regs *);
63asmlinkage void do_spurious_interrupt_bug(struct pt_regs *); 65asmlinkage void do_spurious_interrupt_bug(struct pt_regs *);
64 66
67asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code);
68
65#endif /* CONFIG_X86_32 */ 69#endif /* CONFIG_X86_32 */
66#endif /* _ASM_X86_TRAPS_H */ 70#endif /* ASM_X86__TRAPS_H */
diff --git a/include/asm-x86/tsc.h b/include/asm-x86/tsc.h
index cb6f6ee45b8..ad0f5c41e78 100644
--- a/include/asm-x86/tsc.h
+++ b/include/asm-x86/tsc.h
@@ -1,8 +1,8 @@
1/* 1/*
2 * x86 TSC related functions 2 * x86 TSC related functions
3 */ 3 */
4#ifndef _ASM_X86_TSC_H 4#ifndef ASM_X86__TSC_H
5#define _ASM_X86_TSC_H 5#define ASM_X86__TSC_H
6 6
7#include <asm/processor.h> 7#include <asm/processor.h>
8 8
@@ -59,4 +59,4 @@ extern void check_tsc_sync_target(void);
59 59
60extern int notsc_setup(char *); 60extern int notsc_setup(char *);
61 61
62#endif 62#endif /* ASM_X86__TSC_H */
diff --git a/include/asm-x86/types.h b/include/asm-x86/types.h
index 1ac80cd9acf..e78b52e1744 100644
--- a/include/asm-x86/types.h
+++ b/include/asm-x86/types.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_TYPES_H 1#ifndef ASM_X86__TYPES_H
2#define _ASM_X86_TYPES_H 2#define ASM_X86__TYPES_H
3 3
4#include <asm-generic/int-ll64.h> 4#include <asm-generic/int-ll64.h>
5 5
@@ -33,4 +33,4 @@ typedef u32 dma_addr_t;
33#endif /* __ASSEMBLY__ */ 33#endif /* __ASSEMBLY__ */
34#endif /* __KERNEL__ */ 34#endif /* __KERNEL__ */
35 35
36#endif 36#endif /* ASM_X86__TYPES_H */
diff --git a/include/asm-x86/uaccess.h b/include/asm-x86/uaccess.h
index 5f702d1d521..48ebc0ad40e 100644
--- a/include/asm-x86/uaccess.h
+++ b/include/asm-x86/uaccess.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_UACCES_H_ 1#ifndef ASM_X86__UACCESS_H
2#define _ASM_UACCES_H_ 2#define ASM_X86__UACCESS_H
3/* 3/*
4 * User space memory access functions 4 * User space memory access functions
5 */ 5 */
@@ -450,5 +450,5 @@ extern struct movsl_mask {
450# include "uaccess_64.h" 450# include "uaccess_64.h"
451#endif 451#endif
452 452
453#endif 453#endif /* ASM_X86__UACCESS_H */
454 454
diff --git a/include/asm-x86/uaccess_32.h b/include/asm-x86/uaccess_32.h
index 6fdef39a0bc..6b5b57d9c6d 100644
--- a/include/asm-x86/uaccess_32.h
+++ b/include/asm-x86/uaccess_32.h
@@ -1,5 +1,5 @@
1#ifndef __i386_UACCESS_H 1#ifndef ASM_X86__UACCESS_32_H
2#define __i386_UACCESS_H 2#define ASM_X86__UACCESS_32_H
3 3
4/* 4/*
5 * User space memory access functions 5 * User space memory access functions
@@ -215,4 +215,4 @@ long strnlen_user(const char __user *str, long n);
215unsigned long __must_check clear_user(void __user *mem, unsigned long len); 215unsigned long __must_check clear_user(void __user *mem, unsigned long len);
216unsigned long __must_check __clear_user(void __user *mem, unsigned long len); 216unsigned long __must_check __clear_user(void __user *mem, unsigned long len);
217 217
218#endif /* __i386_UACCESS_H */ 218#endif /* ASM_X86__UACCESS_32_H */
diff --git a/include/asm-x86/uaccess_64.h b/include/asm-x86/uaccess_64.h
index 515d4dce96b..c96c1f5d07a 100644
--- a/include/asm-x86/uaccess_64.h
+++ b/include/asm-x86/uaccess_64.h
@@ -1,5 +1,5 @@
1#ifndef __X86_64_UACCESS_H 1#ifndef ASM_X86__UACCESS_64_H
2#define __X86_64_UACCESS_H 2#define ASM_X86__UACCESS_64_H
3 3
4/* 4/*
5 * User space memory access functions 5 * User space memory access functions
@@ -7,6 +7,7 @@
7#include <linux/compiler.h> 7#include <linux/compiler.h>
8#include <linux/errno.h> 8#include <linux/errno.h>
9#include <linux/prefetch.h> 9#include <linux/prefetch.h>
10#include <linux/lockdep.h>
10#include <asm/page.h> 11#include <asm/page.h>
11 12
12/* 13/*
@@ -198,4 +199,4 @@ static inline int __copy_from_user_inatomic_nocache(void *dst,
198unsigned long 199unsigned long
199copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest); 200copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest);
200 201
201#endif /* __X86_64_UACCESS_H */ 202#endif /* ASM_X86__UACCESS_64_H */
diff --git a/include/asm-x86/ucontext.h b/include/asm-x86/ucontext.h
index 50a79f7fcde..9948dd32808 100644
--- a/include/asm-x86/ucontext.h
+++ b/include/asm-x86/ucontext.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_UCONTEXT_H 1#ifndef ASM_X86__UCONTEXT_H
2#define _ASM_X86_UCONTEXT_H 2#define ASM_X86__UCONTEXT_H
3 3
4struct ucontext { 4struct ucontext {
5 unsigned long uc_flags; 5 unsigned long uc_flags;
@@ -9,4 +9,4 @@ struct ucontext {
9 sigset_t uc_sigmask; /* mask last for extensibility */ 9 sigset_t uc_sigmask; /* mask last for extensibility */
10}; 10};
11 11
12#endif /* _ASM_X86_UCONTEXT_H */ 12#endif /* ASM_X86__UCONTEXT_H */
diff --git a/include/asm-x86/unaligned.h b/include/asm-x86/unaligned.h
index a7bd416b476..59dcdec3716 100644
--- a/include/asm-x86/unaligned.h
+++ b/include/asm-x86/unaligned.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_UNALIGNED_H 1#ifndef ASM_X86__UNALIGNED_H
2#define _ASM_X86_UNALIGNED_H 2#define ASM_X86__UNALIGNED_H
3 3
4/* 4/*
5 * The x86 can do unaligned accesses itself. 5 * The x86 can do unaligned accesses itself.
@@ -11,4 +11,4 @@
11#define get_unaligned __get_unaligned_le 11#define get_unaligned __get_unaligned_le
12#define put_unaligned __put_unaligned_le 12#define put_unaligned __put_unaligned_le
13 13
14#endif /* _ASM_X86_UNALIGNED_H */ 14#endif /* ASM_X86__UNALIGNED_H */
diff --git a/include/asm-x86/unistd_32.h b/include/asm-x86/unistd_32.h
index d7394673b77..017f4a87c91 100644
--- a/include/asm-x86/unistd_32.h
+++ b/include/asm-x86/unistd_32.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_I386_UNISTD_H_ 1#ifndef ASM_X86__UNISTD_32_H
2#define _ASM_I386_UNISTD_H_ 2#define ASM_X86__UNISTD_32_H
3 3
4/* 4/*
5 * This file contains the system call numbers. 5 * This file contains the system call numbers.
@@ -376,4 +376,4 @@
376#endif 376#endif
377 377
378#endif /* __KERNEL__ */ 378#endif /* __KERNEL__ */
379#endif /* _ASM_I386_UNISTD_H_ */ 379#endif /* ASM_X86__UNISTD_32_H */
diff --git a/include/asm-x86/unistd_64.h b/include/asm-x86/unistd_64.h
index 3a341d79179..ace83f1f678 100644
--- a/include/asm-x86/unistd_64.h
+++ b/include/asm-x86/unistd_64.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_64_UNISTD_H_ 1#ifndef ASM_X86__UNISTD_64_H
2#define _ASM_X86_64_UNISTD_H_ 2#define ASM_X86__UNISTD_64_H
3 3
4#ifndef __SYSCALL 4#ifndef __SYSCALL
5#define __SYSCALL(a, b) 5#define __SYSCALL(a, b)
@@ -690,4 +690,4 @@ __SYSCALL(__NR_inotify_init1, sys_inotify_init1)
690#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") 690#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
691#endif /* __KERNEL__ */ 691#endif /* __KERNEL__ */
692 692
693#endif /* _ASM_X86_64_UNISTD_H_ */ 693#endif /* ASM_X86__UNISTD_64_H */
diff --git a/include/asm-x86/unwind.h b/include/asm-x86/unwind.h
index 8b064bd9c55..a2151567db4 100644
--- a/include/asm-x86/unwind.h
+++ b/include/asm-x86/unwind.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_UNWIND_H 1#ifndef ASM_X86__UNWIND_H
2#define _ASM_X86_UNWIND_H 2#define ASM_X86__UNWIND_H
3 3
4#define UNW_PC(frame) ((void)(frame), 0UL) 4#define UNW_PC(frame) ((void)(frame), 0UL)
5#define UNW_SP(frame) ((void)(frame), 0UL) 5#define UNW_SP(frame) ((void)(frame), 0UL)
@@ -10,4 +10,4 @@ static inline int arch_unw_user_mode(const void *info)
10 return 0; 10 return 0;
11} 11}
12 12
13#endif /* _ASM_X86_UNWIND_H */ 13#endif /* ASM_X86__UNWIND_H */
diff --git a/include/asm-x86/user32.h b/include/asm-x86/user32.h
index a3d91004787..aa66c1857f0 100644
--- a/include/asm-x86/user32.h
+++ b/include/asm-x86/user32.h
@@ -1,5 +1,5 @@
1#ifndef USER32_H 1#ifndef ASM_X86__USER32_H
2#define USER32_H 1 2#define ASM_X86__USER32_H
3 3
4/* IA32 compatible user structures for ptrace. 4/* IA32 compatible user structures for ptrace.
5 * These should be used for 32bit coredumps too. */ 5 * These should be used for 32bit coredumps too. */
@@ -67,4 +67,4 @@ struct user32 {
67}; 67};
68 68
69 69
70#endif 70#endif /* ASM_X86__USER32_H */
diff --git a/include/asm-x86/user_32.h b/include/asm-x86/user_32.h
index d6e51edc259..e0fe2f55f1a 100644
--- a/include/asm-x86/user_32.h
+++ b/include/asm-x86/user_32.h
@@ -1,5 +1,5 @@
1#ifndef _I386_USER_H 1#ifndef ASM_X86__USER_32_H
2#define _I386_USER_H 2#define ASM_X86__USER_32_H
3 3
4#include <asm/page.h> 4#include <asm/page.h>
5/* Core file format: The core file is written in such a way that gdb 5/* Core file format: The core file is written in such a way that gdb
@@ -128,4 +128,4 @@ struct user{
128#define HOST_TEXT_START_ADDR (u.start_code) 128#define HOST_TEXT_START_ADDR (u.start_code)
129#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) 129#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
130 130
131#endif /* _I386_USER_H */ 131#endif /* ASM_X86__USER_32_H */
diff --git a/include/asm-x86/user_64.h b/include/asm-x86/user_64.h
index 6037b634c77..38b5799863b 100644
--- a/include/asm-x86/user_64.h
+++ b/include/asm-x86/user_64.h
@@ -1,5 +1,5 @@
1#ifndef _X86_64_USER_H 1#ifndef ASM_X86__USER_64_H
2#define _X86_64_USER_H 2#define ASM_X86__USER_64_H
3 3
4#include <asm/types.h> 4#include <asm/types.h>
5#include <asm/page.h> 5#include <asm/page.h>
@@ -134,4 +134,4 @@ struct user {
134#define HOST_TEXT_START_ADDR (u.start_code) 134#define HOST_TEXT_START_ADDR (u.start_code)
135#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) 135#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
136 136
137#endif /* _X86_64_USER_H */ 137#endif /* ASM_X86__USER_64_H */
diff --git a/include/asm-x86/uv/bios.h b/include/asm-x86/uv/bios.h
index aa73362ff5d..7cd6d7ec130 100644
--- a/include/asm-x86/uv/bios.h
+++ b/include/asm-x86/uv/bios.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_BIOS_H 1#ifndef ASM_X86__UV__BIOS_H
2#define _ASM_X86_BIOS_H 2#define ASM_X86__UV__BIOS_H
3 3
4/* 4/*
5 * BIOS layer definitions. 5 * BIOS layer definitions.
@@ -65,4 +65,4 @@ x86_bios_freq_base(unsigned long which, unsigned long *ticks_per_second,
65 unsigned long *drift_info); 65 unsigned long *drift_info);
66extern const char *x86_bios_strerror(long status); 66extern const char *x86_bios_strerror(long status);
67 67
68#endif /* _ASM_X86_BIOS_H */ 68#endif /* ASM_X86__UV__BIOS_H */
diff --git a/include/asm-x86/uv/uv_bau.h b/include/asm-x86/uv/uv_bau.h
index 91ac0dfb758..77153fb18f5 100644
--- a/include/asm-x86/uv/uv_bau.h
+++ b/include/asm-x86/uv/uv_bau.h
@@ -8,8 +8,8 @@
8 * Copyright (C) 2008 Silicon Graphics, Inc. All rights reserved. 8 * Copyright (C) 2008 Silicon Graphics, Inc. All rights reserved.
9 */ 9 */
10 10
11#ifndef __ASM_X86_UV_BAU__ 11#ifndef ASM_X86__UV__UV_BAU_H
12#define __ASM_X86_UV_BAU__ 12#define ASM_X86__UV__UV_BAU_H
13 13
14#include <linux/bitmap.h> 14#include <linux/bitmap.h>
15#define BITSPERBYTE 8 15#define BITSPERBYTE 8
@@ -40,11 +40,6 @@
40#define UV_ACTIVATION_DESCRIPTOR_SIZE 32 40#define UV_ACTIVATION_DESCRIPTOR_SIZE 32
41#define UV_DISTRIBUTION_SIZE 256 41#define UV_DISTRIBUTION_SIZE 256
42#define UV_SW_ACK_NPENDING 8 42#define UV_SW_ACK_NPENDING 8
43#define UV_BAU_MESSAGE 200
44/*
45 * Messaging irq; see irq_64.h and include/asm-x86/hw_irq_64.h
46 * To be dynamically allocated in the future
47 */
48#define UV_NET_ENDPOINT_INTD 0x38 43#define UV_NET_ENDPOINT_INTD 0x38
49#define UV_DESC_BASE_PNODE_SHIFT 49 44#define UV_DESC_BASE_PNODE_SHIFT 49
50#define UV_PAYLOADQ_PNODE_SHIFT 49 45#define UV_PAYLOADQ_PNODE_SHIFT 49
@@ -334,4 +329,4 @@ extern int uv_flush_tlb_others(cpumask_t *, struct mm_struct *, unsigned long);
334extern void uv_bau_message_intr1(void); 329extern void uv_bau_message_intr1(void);
335extern void uv_bau_timeout_intr1(void); 330extern void uv_bau_timeout_intr1(void);
336 331
337#endif /* __ASM_X86_UV_BAU__ */ 332#endif /* ASM_X86__UV__UV_BAU_H */
diff --git a/include/asm-x86/uv/uv_hub.h b/include/asm-x86/uv/uv_hub.h
index a4ef26e5850..bdb5b01afbf 100644
--- a/include/asm-x86/uv/uv_hub.h
+++ b/include/asm-x86/uv/uv_hub.h
@@ -8,8 +8,8 @@
8 * Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved. 8 * Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved.
9 */ 9 */
10 10
11#ifndef __ASM_X86_UV_HUB_H__ 11#ifndef ASM_X86__UV__UV_HUB_H
12#define __ASM_X86_UV_HUB_H__ 12#define ASM_X86__UV__UV_HUB_H
13 13
14#include <linux/numa.h> 14#include <linux/numa.h>
15#include <linux/percpu.h> 15#include <linux/percpu.h>
@@ -350,5 +350,5 @@ static inline int uv_num_possible_blades(void)
350 return uv_possible_blades; 350 return uv_possible_blades;
351} 351}
352 352
353#endif /* __ASM_X86_UV_HUB__ */ 353#endif /* ASM_X86__UV__UV_HUB_H */
354 354
diff --git a/include/asm-x86/uv/uv_mmrs.h b/include/asm-x86/uv/uv_mmrs.h
index 151fd7fcb80..8b03d89d245 100644
--- a/include/asm-x86/uv/uv_mmrs.h
+++ b/include/asm-x86/uv/uv_mmrs.h
@@ -8,8 +8,8 @@
8 * Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved. 8 * Copyright (C) 2007-2008 Silicon Graphics, Inc. All rights reserved.
9 */ 9 */
10 10
11#ifndef __ASM_X86_UV_MMRS__ 11#ifndef ASM_X86__UV__UV_MMRS_H
12#define __ASM_X86_UV_MMRS__ 12#define ASM_X86__UV__UV_MMRS_H
13 13
14#define UV_MMR_ENABLE (1UL << 63) 14#define UV_MMR_ENABLE (1UL << 63)
15 15
@@ -1292,4 +1292,4 @@ union uvh_si_alias2_overlay_config_u {
1292}; 1292};
1293 1293
1294 1294
1295#endif /* __ASM_X86_UV_MMRS__ */ 1295#endif /* ASM_X86__UV__UV_MMRS_H */
diff --git a/include/asm-x86/vdso.h b/include/asm-x86/vdso.h
index 8e18fb80f5e..4ab320913ea 100644
--- a/include/asm-x86/vdso.h
+++ b/include/asm-x86/vdso.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_VDSO_H 1#ifndef ASM_X86__VDSO_H
2#define _ASM_X86_VDSO_H 1 2#define ASM_X86__VDSO_H
3 3
4#ifdef CONFIG_X86_64 4#ifdef CONFIG_X86_64
5extern const char VDSO64_PRELINK[]; 5extern const char VDSO64_PRELINK[];
@@ -44,4 +44,4 @@ extern const char vdso32_int80_start, vdso32_int80_end;
44extern const char vdso32_syscall_start, vdso32_syscall_end; 44extern const char vdso32_syscall_start, vdso32_syscall_end;
45extern const char vdso32_sysenter_start, vdso32_sysenter_end; 45extern const char vdso32_sysenter_start, vdso32_sysenter_end;
46 46
47#endif /* asm-x86/vdso.h */ 47#endif /* ASM_X86__VDSO_H */
diff --git a/include/asm-x86/vga.h b/include/asm-x86/vga.h
index 0ccf804377e..b9e493d07d0 100644
--- a/include/asm-x86/vga.h
+++ b/include/asm-x86/vga.h
@@ -4,8 +4,8 @@
4 * (c) 1998 Martin Mares <mj@ucw.cz> 4 * (c) 1998 Martin Mares <mj@ucw.cz>
5 */ 5 */
6 6
7#ifndef _LINUX_ASM_VGA_H_ 7#ifndef ASM_X86__VGA_H
8#define _LINUX_ASM_VGA_H_ 8#define ASM_X86__VGA_H
9 9
10/* 10/*
11 * On the PC, we can just recalculate addresses and then 11 * On the PC, we can just recalculate addresses and then
@@ -17,4 +17,4 @@
17#define vga_readb(x) (*(x)) 17#define vga_readb(x) (*(x))
18#define vga_writeb(x, y) (*(y) = (x)) 18#define vga_writeb(x, y) (*(y) = (x))
19 19
20#endif 20#endif /* ASM_X86__VGA_H */
diff --git a/include/asm-x86/vgtod.h b/include/asm-x86/vgtod.h
index 3301f092934..38fd1336402 100644
--- a/include/asm-x86/vgtod.h
+++ b/include/asm-x86/vgtod.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_VGTOD_H 1#ifndef ASM_X86__VGTOD_H
2#define _ASM_VGTOD_H 1 2#define ASM_X86__VGTOD_H
3 3
4#include <asm/vsyscall.h> 4#include <asm/vsyscall.h>
5#include <linux/clocksource.h> 5#include <linux/clocksource.h>
@@ -26,4 +26,4 @@ extern struct vsyscall_gtod_data __vsyscall_gtod_data
26__section_vsyscall_gtod_data; 26__section_vsyscall_gtod_data;
27extern struct vsyscall_gtod_data vsyscall_gtod_data; 27extern struct vsyscall_gtod_data vsyscall_gtod_data;
28 28
29#endif 29#endif /* ASM_X86__VGTOD_H */
diff --git a/include/asm-x86/visws/cobalt.h b/include/asm-x86/visws/cobalt.h
index 995258831b7..9627a8fe84e 100644
--- a/include/asm-x86/visws/cobalt.h
+++ b/include/asm-x86/visws/cobalt.h
@@ -1,5 +1,5 @@
1#ifndef __I386_SGI_COBALT_H 1#ifndef ASM_X86__VISWS__COBALT_H
2#define __I386_SGI_COBALT_H 2#define ASM_X86__VISWS__COBALT_H
3 3
4#include <asm/fixmap.h> 4#include <asm/fixmap.h>
5 5
@@ -122,4 +122,4 @@ extern char visws_board_type;
122 122
123extern char visws_board_rev; 123extern char visws_board_rev;
124 124
125#endif /* __I386_SGI_COBALT_H */ 125#endif /* ASM_X86__VISWS__COBALT_H */
diff --git a/include/asm-x86/visws/lithium.h b/include/asm-x86/visws/lithium.h
index dfcd4f07ab8..b36d3b378c6 100644
--- a/include/asm-x86/visws/lithium.h
+++ b/include/asm-x86/visws/lithium.h
@@ -1,5 +1,5 @@
1#ifndef __I386_SGI_LITHIUM_H 1#ifndef ASM_X86__VISWS__LITHIUM_H
2#define __I386_SGI_LITHIUM_H 2#define ASM_X86__VISWS__LITHIUM_H
3 3
4#include <asm/fixmap.h> 4#include <asm/fixmap.h>
5 5
@@ -49,5 +49,5 @@ static inline unsigned short li_pcib_read16(unsigned long reg)
49 return *((volatile unsigned short *)(LI_PCIB_VADDR+reg)); 49 return *((volatile unsigned short *)(LI_PCIB_VADDR+reg));
50} 50}
51 51
52#endif 52#endif /* ASM_X86__VISWS__LITHIUM_H */
53 53
diff --git a/include/asm-x86/visws/piix4.h b/include/asm-x86/visws/piix4.h
index 83ea4f46e41..61c938045ec 100644
--- a/include/asm-x86/visws/piix4.h
+++ b/include/asm-x86/visws/piix4.h
@@ -1,5 +1,5 @@
1#ifndef __I386_SGI_PIIX_H 1#ifndef ASM_X86__VISWS__PIIX4_H
2#define __I386_SGI_PIIX_H 2#define ASM_X86__VISWS__PIIX4_H
3 3
4/* 4/*
5 * PIIX4 as used on SGI Visual Workstations 5 * PIIX4 as used on SGI Visual Workstations
@@ -104,4 +104,4 @@
104 */ 104 */
105#define PIIX_GPI_STPCLK 0x4 // STPCLK signal routed back in 105#define PIIX_GPI_STPCLK 0x4 // STPCLK signal routed back in
106 106
107#endif 107#endif /* ASM_X86__VISWS__PIIX4_H */
diff --git a/include/asm-x86/vm86.h b/include/asm-x86/vm86.h
index 5ce351325e0..998bd18eb73 100644
--- a/include/asm-x86/vm86.h
+++ b/include/asm-x86/vm86.h
@@ -1,5 +1,5 @@
1#ifndef _LINUX_VM86_H 1#ifndef ASM_X86__VM86_H
2#define _LINUX_VM86_H 2#define ASM_X86__VM86_H
3 3
4/* 4/*
5 * I'm guessing at the VIF/VIP flag usage, but hope that this is how 5 * I'm guessing at the VIF/VIP flag usage, but hope that this is how
@@ -205,4 +205,4 @@ static inline int handle_vm86_trap(struct kernel_vm86_regs *a, long b, int c)
205 205
206#endif /* __KERNEL__ */ 206#endif /* __KERNEL__ */
207 207
208#endif 208#endif /* ASM_X86__VM86_H */
diff --git a/include/asm-x86/vmi_time.h b/include/asm-x86/vmi_time.h
index c3118c38515..b2d39e6a08b 100644
--- a/include/asm-x86/vmi_time.h
+++ b/include/asm-x86/vmi_time.h
@@ -22,8 +22,8 @@
22 * 22 *
23 */ 23 */
24 24
25#ifndef __VMI_TIME_H 25#ifndef ASM_X86__VMI_TIME_H
26#define __VMI_TIME_H 26#define ASM_X86__VMI_TIME_H
27 27
28/* 28/*
29 * Raw VMI call indices for timer functions 29 * Raw VMI call indices for timer functions
@@ -95,4 +95,4 @@ extern void __devinit vmi_time_ap_init(void);
95 95
96#define CONFIG_VMI_ALARM_HZ 100 96#define CONFIG_VMI_ALARM_HZ 100
97 97
98#endif 98#endif /* ASM_X86__VMI_TIME_H */
diff --git a/include/asm-x86/vsyscall.h b/include/asm-x86/vsyscall.h
index 6b66ff905af..dcd4682413d 100644
--- a/include/asm-x86/vsyscall.h
+++ b/include/asm-x86/vsyscall.h
@@ -1,5 +1,5 @@
1#ifndef _ASM_X86_64_VSYSCALL_H_ 1#ifndef ASM_X86__VSYSCALL_H
2#define _ASM_X86_64_VSYSCALL_H_ 2#define ASM_X86__VSYSCALL_H
3 3
4enum vsyscall_num { 4enum vsyscall_num {
5 __NR_vgettimeofday, 5 __NR_vgettimeofday,
@@ -41,4 +41,4 @@ extern void map_vsyscall(void);
41 41
42#endif /* __KERNEL__ */ 42#endif /* __KERNEL__ */
43 43
44#endif /* _ASM_X86_64_VSYSCALL_H_ */ 44#endif /* ASM_X86__VSYSCALL_H */
diff --git a/include/asm-x86/xen/events.h b/include/asm-x86/xen/events.h
index 8ded7472002..8151f5b8b6c 100644
--- a/include/asm-x86/xen/events.h
+++ b/include/asm-x86/xen/events.h
@@ -1,5 +1,5 @@
1#ifndef __XEN_EVENTS_H 1#ifndef ASM_X86__XEN__EVENTS_H
2#define __XEN_EVENTS_H 2#define ASM_X86__XEN__EVENTS_H
3 3
4enum ipi_vector { 4enum ipi_vector {
5 XEN_RESCHEDULE_VECTOR, 5 XEN_RESCHEDULE_VECTOR,
@@ -21,4 +21,4 @@ static inline void xen_do_IRQ(int irq, struct pt_regs *regs)
21 do_IRQ(regs); 21 do_IRQ(regs);
22} 22}
23 23
24#endif /* __XEN_EVENTS_H */ 24#endif /* ASM_X86__XEN__EVENTS_H */
diff --git a/include/asm-x86/xen/grant_table.h b/include/asm-x86/xen/grant_table.h
index 2444d4593a3..c4baab4d2b6 100644
--- a/include/asm-x86/xen/grant_table.h
+++ b/include/asm-x86/xen/grant_table.h
@@ -1,7 +1,7 @@
1#ifndef __XEN_GRANT_TABLE_H 1#ifndef ASM_X86__XEN__GRANT_TABLE_H
2#define __XEN_GRANT_TABLE_H 2#define ASM_X86__XEN__GRANT_TABLE_H
3 3
4#define xen_alloc_vm_area(size) alloc_vm_area(size) 4#define xen_alloc_vm_area(size) alloc_vm_area(size)
5#define xen_free_vm_area(area) free_vm_area(area) 5#define xen_free_vm_area(area) free_vm_area(area)
6 6
7#endif /* __XEN_GRANT_TABLE_H */ 7#endif /* ASM_X86__XEN__GRANT_TABLE_H */
diff --git a/include/asm-x86/xen/hypercall.h b/include/asm-x86/xen/hypercall.h
index 91cb7fd5c12..44f4259bee3 100644
--- a/include/asm-x86/xen/hypercall.h
+++ b/include/asm-x86/xen/hypercall.h
@@ -30,8 +30,8 @@
30 * IN THE SOFTWARE. 30 * IN THE SOFTWARE.
31 */ 31 */
32 32
33#ifndef __HYPERCALL_H__ 33#ifndef ASM_X86__XEN__HYPERCALL_H
34#define __HYPERCALL_H__ 34#define ASM_X86__XEN__HYPERCALL_H
35 35
36#include <linux/errno.h> 36#include <linux/errno.h>
37#include <linux/string.h> 37#include <linux/string.h>
@@ -524,4 +524,4 @@ MULTI_stack_switch(struct multicall_entry *mcl,
524 mcl->args[1] = esp; 524 mcl->args[1] = esp;
525} 525}
526 526
527#endif /* __HYPERCALL_H__ */ 527#endif /* ASM_X86__XEN__HYPERCALL_H */
diff --git a/include/asm-x86/xen/hypervisor.h b/include/asm-x86/xen/hypervisor.h
index 8e15dd28c91..0ef3a88b869 100644
--- a/include/asm-x86/xen/hypervisor.h
+++ b/include/asm-x86/xen/hypervisor.h
@@ -30,12 +30,11 @@
30 * IN THE SOFTWARE. 30 * IN THE SOFTWARE.
31 */ 31 */
32 32
33#ifndef __HYPERVISOR_H__ 33#ifndef ASM_X86__XEN__HYPERVISOR_H
34#define __HYPERVISOR_H__ 34#define ASM_X86__XEN__HYPERVISOR_H
35 35
36#include <linux/types.h> 36#include <linux/types.h>
37#include <linux/kernel.h> 37#include <linux/kernel.h>
38#include <linux/version.h>
39 38
40#include <xen/interface/xen.h> 39#include <xen/interface/xen.h>
41#include <xen/interface/version.h> 40#include <xen/interface/version.h>
@@ -70,4 +69,4 @@ u64 jiffies_to_st(unsigned long jiffies);
70 69
71#define is_running_on_xen() (xen_start_info ? 1 : 0) 70#define is_running_on_xen() (xen_start_info ? 1 : 0)
72 71
73#endif /* __HYPERVISOR_H__ */ 72#endif /* ASM_X86__XEN__HYPERVISOR_H */
diff --git a/include/asm-x86/xen/interface.h b/include/asm-x86/xen/interface.h
index 9d810f2538a..d077bba96da 100644
--- a/include/asm-x86/xen/interface.h
+++ b/include/asm-x86/xen/interface.h
@@ -6,8 +6,8 @@
6 * Copyright (c) 2004, K A Fraser 6 * Copyright (c) 2004, K A Fraser
7 */ 7 */
8 8
9#ifndef __ASM_X86_XEN_INTERFACE_H 9#ifndef ASM_X86__XEN__INTERFACE_H
10#define __ASM_X86_XEN_INTERFACE_H 10#define ASM_X86__XEN__INTERFACE_H
11 11
12#ifdef __XEN__ 12#ifdef __XEN__
13#define __DEFINE_GUEST_HANDLE(name, type) \ 13#define __DEFINE_GUEST_HANDLE(name, type) \
@@ -172,4 +172,4 @@ DEFINE_GUEST_HANDLE_STRUCT(vcpu_guest_context);
172#define XEN_CPUID XEN_EMULATE_PREFIX "cpuid" 172#define XEN_CPUID XEN_EMULATE_PREFIX "cpuid"
173#endif 173#endif
174 174
175#endif /* __ASM_X86_XEN_INTERFACE_H */ 175#endif /* ASM_X86__XEN__INTERFACE_H */
diff --git a/include/asm-x86/xen/interface_32.h b/include/asm-x86/xen/interface_32.h
index d8ac41d5db8..08167e19fc6 100644
--- a/include/asm-x86/xen/interface_32.h
+++ b/include/asm-x86/xen/interface_32.h
@@ -6,8 +6,8 @@
6 * Copyright (c) 2004, K A Fraser 6 * Copyright (c) 2004, K A Fraser
7 */ 7 */
8 8
9#ifndef __ASM_X86_XEN_INTERFACE_32_H 9#ifndef ASM_X86__XEN__INTERFACE_32_H
10#define __ASM_X86_XEN_INTERFACE_32_H 10#define ASM_X86__XEN__INTERFACE_32_H
11 11
12 12
13/* 13/*
@@ -94,4 +94,4 @@ typedef struct xen_callback xen_callback_t;
94#define xen_pfn_to_cr3(pfn) (((unsigned)(pfn) << 12) | ((unsigned)(pfn) >> 20)) 94#define xen_pfn_to_cr3(pfn) (((unsigned)(pfn) << 12) | ((unsigned)(pfn) >> 20))
95#define xen_cr3_to_pfn(cr3) (((unsigned)(cr3) >> 12) | ((unsigned)(cr3) << 20)) 95#define xen_cr3_to_pfn(cr3) (((unsigned)(cr3) >> 12) | ((unsigned)(cr3) << 20))
96 96
97#endif /* __ASM_X86_XEN_INTERFACE_32_H */ 97#endif /* ASM_X86__XEN__INTERFACE_32_H */
diff --git a/include/asm-x86/xen/interface_64.h b/include/asm-x86/xen/interface_64.h
index 842266ce96e..046c0f1e01d 100644
--- a/include/asm-x86/xen/interface_64.h
+++ b/include/asm-x86/xen/interface_64.h
@@ -1,5 +1,5 @@
1#ifndef __ASM_X86_XEN_INTERFACE_64_H 1#ifndef ASM_X86__XEN__INTERFACE_64_H
2#define __ASM_X86_XEN_INTERFACE_64_H 2#define ASM_X86__XEN__INTERFACE_64_H
3 3
4/* 4/*
5 * 64-bit segment selectors 5 * 64-bit segment selectors
@@ -156,4 +156,4 @@ typedef unsigned long xen_callback_t;
156#endif /* !__ASSEMBLY__ */ 156#endif /* !__ASSEMBLY__ */
157 157
158 158
159#endif /* __ASM_X86_XEN_INTERFACE_64_H */ 159#endif /* ASM_X86__XEN__INTERFACE_64_H */
diff --git a/include/asm-x86/xen/page.h b/include/asm-x86/xen/page.h
index 7b3835d3b77..c50185dccec 100644
--- a/include/asm-x86/xen/page.h
+++ b/include/asm-x86/xen/page.h
@@ -1,5 +1,5 @@
1#ifndef __XEN_PAGE_H 1#ifndef ASM_X86__XEN__PAGE_H
2#define __XEN_PAGE_H 2#define ASM_X86__XEN__PAGE_H
3 3
4#include <linux/pfn.h> 4#include <linux/pfn.h>
5 5
@@ -162,4 +162,4 @@ xmaddr_t arbitrary_virt_to_machine(void *address);
162void make_lowmem_page_readonly(void *vaddr); 162void make_lowmem_page_readonly(void *vaddr);
163void make_lowmem_page_readwrite(void *vaddr); 163void make_lowmem_page_readwrite(void *vaddr);
164 164
165#endif /* __XEN_PAGE_H */ 165#endif /* ASM_X86__XEN__PAGE_H */
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 7d970678f94..b68ec09399b 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -167,7 +167,8 @@ unifdef-y += acct.h
167unifdef-y += adb.h 167unifdef-y += adb.h
168unifdef-y += adfs_fs.h 168unifdef-y += adfs_fs.h
169unifdef-y += agpgart.h 169unifdef-y += agpgart.h
170ifneq ($(wildcard $(srctree)/include/asm-$(SRCARCH)/a.out.h),) 170ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/a.out.h \
171 $(srctree)/include/asm-$(SRCARCH)/a.out.h),)
171unifdef-y += a.out.h 172unifdef-y += a.out.h
172endif 173endif
173unifdef-y += apm_bios.h 174unifdef-y += apm_bios.h
@@ -258,7 +259,8 @@ unifdef-y += kd.h
258unifdef-y += kernelcapi.h 259unifdef-y += kernelcapi.h
259unifdef-y += kernel.h 260unifdef-y += kernel.h
260unifdef-y += keyboard.h 261unifdef-y += keyboard.h
261ifneq ($(wildcard $(srctree)/include/asm-$(SRCARCH)/kvm.h),) 262ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h \
263 $(srctree)/include/asm-$(SRCARCH)/kvm.h),)
262unifdef-y += kvm.h 264unifdef-y += kvm.h
263endif 265endif
264unifdef-y += llc.h 266unifdef-y += llc.h
@@ -297,7 +299,6 @@ unifdef-y += parport.h
297unifdef-y += patchkey.h 299unifdef-y += patchkey.h
298unifdef-y += pci.h 300unifdef-y += pci.h
299unifdef-y += personality.h 301unifdef-y += personality.h
300unifdef-y += pim.h
301unifdef-y += pktcdvd.h 302unifdef-y += pktcdvd.h
302unifdef-y += pmu.h 303unifdef-y += pmu.h
303unifdef-y += poll.h 304unifdef-y += poll.h
diff --git a/include/linux/ata.h b/include/linux/ata.h
index 1ce19c1ef0e..8a12d718c16 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -745,7 +745,7 @@ static inline int ata_ok(u8 status)
745static inline int lba_28_ok(u64 block, u32 n_block) 745static inline int lba_28_ok(u64 block, u32 n_block)
746{ 746{
747 /* check the ending block number */ 747 /* check the ending block number */
748 return ((block + n_block - 1) < ((u64)1 << 28)) && (n_block <= 256); 748 return ((block + n_block) < ((u64)1 << 28)) && (n_block <= 256);
749} 749}
750 750
751static inline int lba_48_ok(u64 block, u32 n_block) 751static inline int lba_48_ok(u64 block, u32 n_block)
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index e61f22be4d0..53ea933cf60 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -280,6 +280,15 @@ struct blk_queue_tag {
280 atomic_t refcnt; /* map can be shared */ 280 atomic_t refcnt; /* map can be shared */
281}; 281};
282 282
283#define BLK_SCSI_MAX_CMDS (256)
284#define BLK_SCSI_CMD_PER_LONG (BLK_SCSI_MAX_CMDS / (sizeof(long) * 8))
285
286struct blk_cmd_filter {
287 unsigned long read_ok[BLK_SCSI_CMD_PER_LONG];
288 unsigned long write_ok[BLK_SCSI_CMD_PER_LONG];
289 struct kobject kobj;
290};
291
283struct request_queue 292struct request_queue
284{ 293{
285 /* 294 /*
@@ -398,6 +407,7 @@ struct request_queue
398#if defined(CONFIG_BLK_DEV_BSG) 407#if defined(CONFIG_BLK_DEV_BSG)
399 struct bsg_class_device bsg_dev; 408 struct bsg_class_device bsg_dev;
400#endif 409#endif
410 struct blk_cmd_filter cmd_filter;
401}; 411};
402 412
403#define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */ 413#define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */
@@ -807,8 +817,6 @@ extern void blk_put_queue(struct request_queue *);
807/* 817/*
808 * tag stuff 818 * tag stuff
809 */ 819 */
810#define blk_queue_tag_depth(q) ((q)->queue_tags->busy)
811#define blk_queue_tag_queue(q) ((q)->queue_tags->busy < (q)->queue_tags->max_depth)
812#define blk_rq_tagged(rq) ((rq)->cmd_flags & REQ_QUEUED) 820#define blk_rq_tagged(rq) ((rq)->cmd_flags & REQ_QUEUED)
813extern int blk_queue_start_tag(struct request_queue *, struct request *); 821extern int blk_queue_start_tag(struct request_queue *, struct request *);
814extern struct request *blk_queue_find_tag(struct request_queue *, int); 822extern struct request *blk_queue_find_tag(struct request_queue *, int);
@@ -833,11 +841,9 @@ extern int blkdev_issue_flush(struct block_device *, sector_t *);
833/* 841/*
834* command filter functions 842* command filter functions
835*/ 843*/
836extern int blk_verify_command(struct file *file, unsigned char *cmd); 844extern int blk_verify_command(struct blk_cmd_filter *filter,
837extern int blk_cmd_filter_verify_command(struct blk_scsi_cmd_filter *filter, 845 unsigned char *cmd, int has_write_perm);
838 unsigned char *cmd, mode_t *f_mode); 846extern void blk_set_cmd_filter_defaults(struct blk_cmd_filter *filter);
839extern int blk_register_filter(struct gendisk *disk);
840extern void blk_unregister_filter(struct gendisk *disk);
841 847
842#define MAX_PHYS_SEGMENTS 128 848#define MAX_PHYS_SEGMENTS 128
843#define MAX_HW_SEGMENTS 128 849#define MAX_HW_SEGMENTS 128
diff --git a/include/linux/clockchips.h b/include/linux/clockchips.h
index c33b0dc28e4..ed3a5d473e5 100644
--- a/include/linux/clockchips.h
+++ b/include/linux/clockchips.h
@@ -127,6 +127,8 @@ extern int clockevents_register_notifier(struct notifier_block *nb);
127extern int clockevents_program_event(struct clock_event_device *dev, 127extern int clockevents_program_event(struct clock_event_device *dev,
128 ktime_t expires, ktime_t now); 128 ktime_t expires, ktime_t now);
129 129
130extern void clockevents_handle_noop(struct clock_event_device *dev);
131
130#ifdef CONFIG_GENERIC_CLOCKEVENTS 132#ifdef CONFIG_GENERIC_CLOCKEVENTS
131extern void clockevents_notify(unsigned long reason, void *arg); 133extern void clockevents_notify(unsigned long reason, void *arg);
132#else 134#else
diff --git a/arch/arm/include/asm/cnt32_to_63.h b/include/linux/cnt32_to_63.h
index 480c873fa74..8c0f9505b48 100644
--- a/arch/arm/include/asm/cnt32_to_63.h
+++ b/include/linux/cnt32_to_63.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * include/asm/cnt32_to_63.h -- extend a 32-bit counter to 63 bits 2 * Extend a 32-bit counter to 63 bits
3 * 3 *
4 * Author: Nicolas Pitre 4 * Author: Nicolas Pitre
5 * Created: December 3, 2006 5 * Created: December 3, 2006
@@ -10,15 +10,30 @@
10 * as published by the Free Software Foundation. 10 * as published by the Free Software Foundation.
11 */ 11 */
12 12
13#ifndef __INCLUDE_CNT32_TO_63_H__ 13#ifndef __LINUX_CNT32_TO_63_H__
14#define __INCLUDE_CNT32_TO_63_H__ 14#define __LINUX_CNT32_TO_63_H__
15 15
16#include <linux/compiler.h> 16#include <linux/compiler.h>
17#include <asm/types.h> 17#include <linux/types.h>
18#include <asm/byteorder.h> 18#include <asm/byteorder.h>
19 19
20/* 20/* this is used only to give gcc a clue about good code generation */
21 * Prototype: u64 cnt32_to_63(u32 cnt) 21union cnt32_to_63 {
22 struct {
23#if defined(__LITTLE_ENDIAN)
24 u32 lo, hi;
25#elif defined(__BIG_ENDIAN)
26 u32 hi, lo;
27#endif
28 };
29 u64 val;
30};
31
32
33/**
34 * cnt32_to_63 - Expand a 32-bit counter to a 63-bit counter
35 * @cnt_lo: The low part of the counter
36 *
22 * Many hardware clock counters are only 32 bits wide and therefore have 37 * Many hardware clock counters are only 32 bits wide and therefore have
23 * a relatively short period making wrap-arounds rather frequent. This 38 * a relatively short period making wrap-arounds rather frequent. This
24 * is a problem when implementing sched_clock() for example, where a 64-bit 39 * is a problem when implementing sched_clock() for example, where a 64-bit
@@ -51,26 +66,13 @@
51 * clear-bit instruction. Otherwise caller must remember to clear the top 66 * clear-bit instruction. Otherwise caller must remember to clear the top
52 * bit explicitly. 67 * bit explicitly.
53 */ 68 */
54
55/* this is used only to give gcc a clue about good code generation */
56typedef union {
57 struct {
58#if defined(__LITTLE_ENDIAN)
59 u32 lo, hi;
60#elif defined(__BIG_ENDIAN)
61 u32 hi, lo;
62#endif
63 };
64 u64 val;
65} cnt32_to_63_t;
66
67#define cnt32_to_63(cnt_lo) \ 69#define cnt32_to_63(cnt_lo) \
68({ \ 70({ \
69 static volatile u32 __m_cnt_hi = 0; \ 71 static volatile u32 __m_cnt_hi; \
70 cnt32_to_63_t __x; \ 72 union cnt32_to_63 __x; \
71 __x.hi = __m_cnt_hi; \ 73 __x.hi = __m_cnt_hi; \
72 __x.lo = (cnt_lo); \ 74 __x.lo = (cnt_lo); \
73 if (unlikely((s32)(__x.hi ^ __x.lo) < 0)) \ 75 if (unlikely((s32)(__x.hi ^ __x.lo) < 0)) \
74 __m_cnt_hi = __x.hi = (__x.hi ^ 0x80000000) + (__x.hi >> 31); \ 76 __m_cnt_hi = __x.hi = (__x.hi ^ 0x80000000) + (__x.hi >> 31); \
75 __x.val; \ 77 __x.val; \
76}) 78})
diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h
index e8f450c499b..2691926fb50 100644
--- a/include/linux/cpuset.h
+++ b/include/linux/cpuset.h
@@ -160,7 +160,7 @@ static inline int current_cpuset_is_being_rebound(void)
160 160
161static inline void rebuild_sched_domains(void) 161static inline void rebuild_sched_domains(void)
162{ 162{
163 partition_sched_domains(0, NULL, NULL); 163 partition_sched_domains(1, NULL, NULL);
164} 164}
165 165
166#endif /* !CONFIG_CPUSETS */ 166#endif /* !CONFIG_CPUSETS */
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
index 07aa198f19e..efba1de629a 100644
--- a/include/linux/dcache.h
+++ b/include/linux/dcache.h
@@ -230,7 +230,7 @@ extern void d_delete(struct dentry *);
230extern struct dentry * d_alloc(struct dentry *, const struct qstr *); 230extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
231extern struct dentry * d_alloc_anon(struct inode *); 231extern struct dentry * d_alloc_anon(struct inode *);
232extern struct dentry * d_splice_alias(struct inode *, struct dentry *); 232extern struct dentry * d_splice_alias(struct inode *, struct dentry *);
233extern struct dentry * d_add_ci(struct inode *, struct dentry *, struct qstr *); 233extern struct dentry * d_add_ci(struct dentry *, struct inode *, struct qstr *);
234extern void shrink_dcache_sb(struct super_block *); 234extern void shrink_dcache_sb(struct super_block *);
235extern void shrink_dcache_parent(struct dentry *); 235extern void shrink_dcache_parent(struct dentry *);
236extern void shrink_dcache_for_umount(struct super_block *); 236extern void shrink_dcache_for_umount(struct super_block *);
diff --git a/include/linux/device.h b/include/linux/device.h
index d24a47f80f9..4d8372d135d 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -358,6 +358,7 @@ struct device {
358 358
359 struct kobject kobj; 359 struct kobject kobj;
360 char bus_id[BUS_ID_SIZE]; /* position on parent bus */ 360 char bus_id[BUS_ID_SIZE]; /* position on parent bus */
361 const char *init_name; /* initial name of the device */
361 struct device_type *type; 362 struct device_type *type;
362 unsigned uevent_suppress:1; 363 unsigned uevent_suppress:1;
363 364
@@ -406,7 +407,7 @@ struct device {
406/* Get the wakeup routines, which depend on struct device */ 407/* Get the wakeup routines, which depend on struct device */
407#include <linux/pm_wakeup.h> 408#include <linux/pm_wakeup.h>
408 409
409static inline const char *dev_name(struct device *dev) 410static inline const char *dev_name(const struct device *dev)
410{ 411{
411 /* will be changed into kobject_name(&dev->kobj) in the near future */ 412 /* will be changed into kobject_name(&dev->kobj) in the near future */
412 return dev->bus_id; 413 return dev->bus_id;
@@ -518,7 +519,7 @@ extern void device_shutdown(void);
518extern void sysdev_shutdown(void); 519extern void sysdev_shutdown(void);
519 520
520/* debugging and troubleshooting/diagnostic helpers. */ 521/* debugging and troubleshooting/diagnostic helpers. */
521extern const char *dev_driver_string(struct device *dev); 522extern const char *dev_driver_string(const struct device *dev);
522#define dev_printk(level, dev, format, arg...) \ 523#define dev_printk(level, dev, format, arg...) \
523 printk(level "%s %s: " format , dev_driver_string(dev) , \ 524 printk(level "%s %s: " format , dev_driver_string(dev) , \
524 dev_name(dev) , ## arg) 525 dev_name(dev) , ## arg)
diff --git a/include/linux/fs_uart_pd.h b/include/linux/fs_uart_pd.h
index 809bb9ffc78..36b61ff3927 100644
--- a/include/linux/fs_uart_pd.h
+++ b/include/linux/fs_uart_pd.h
@@ -12,7 +12,6 @@
12#ifndef FS_UART_PD_H 12#ifndef FS_UART_PD_H
13#define FS_UART_PD_H 13#define FS_UART_PD_H
14 14
15#include <linux/version.h>
16#include <asm/types.h> 15#include <asm/types.h>
17 16
18enum fs_uart_id { 17enum fs_uart_id {
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 118216f1bd3..be4f5e5bfe0 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -110,15 +110,6 @@ struct hd_struct {
110#define GENHD_FL_SUPPRESS_PARTITION_INFO 32 110#define GENHD_FL_SUPPRESS_PARTITION_INFO 32
111#define GENHD_FL_FAIL 64 111#define GENHD_FL_FAIL 64
112 112
113#define BLK_SCSI_MAX_CMDS (256)
114#define BLK_SCSI_CMD_PER_LONG (BLK_SCSI_MAX_CMDS / (sizeof(long) * 8))
115
116struct blk_scsi_cmd_filter {
117 unsigned long read_ok[BLK_SCSI_CMD_PER_LONG];
118 unsigned long write_ok[BLK_SCSI_CMD_PER_LONG];
119 struct kobject kobj;
120};
121
122struct gendisk { 113struct gendisk {
123 int major; /* major number of driver */ 114 int major; /* major number of driver */
124 int first_minor; 115 int first_minor;
@@ -128,7 +119,6 @@ struct gendisk {
128 struct hd_struct **part; /* [indexed by minor] */ 119 struct hd_struct **part; /* [indexed by minor] */
129 struct block_device_operations *fops; 120 struct block_device_operations *fops;
130 struct request_queue *queue; 121 struct request_queue *queue;
131 struct blk_scsi_cmd_filter cmd_filter;
132 void *private_data; 122 void *private_data;
133 sector_t capacity; 123 sector_t capacity;
134 124
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index 6d93dce61cb..2f245fe63bd 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -47,14 +47,22 @@ enum hrtimer_restart {
47 * HRTIMER_CB_IRQSAFE: Callback may run in hardirq context 47 * HRTIMER_CB_IRQSAFE: Callback may run in hardirq context
48 * HRTIMER_CB_IRQSAFE_NO_RESTART: Callback may run in hardirq context and 48 * HRTIMER_CB_IRQSAFE_NO_RESTART: Callback may run in hardirq context and
49 * does not restart the timer 49 * does not restart the timer
50 * HRTIMER_CB_IRQSAFE_NO_SOFTIRQ: Callback must run in hardirq context 50 * HRTIMER_CB_IRQSAFE_PERCPU: Callback must run in hardirq context
51 * Special mode for tick emultation 51 * Special mode for tick emulation and
52 * scheduler timer. Such timers are per
53 * cpu and not allowed to be migrated on
54 * cpu unplug.
55 * HRTIMER_CB_IRQSAFE_UNLOCKED: Callback should run in hardirq context
56 * with timer->base lock unlocked
57 * used for timers which call wakeup to
58 * avoid lock order problems with rq->lock
52 */ 59 */
53enum hrtimer_cb_mode { 60enum hrtimer_cb_mode {
54 HRTIMER_CB_SOFTIRQ, 61 HRTIMER_CB_SOFTIRQ,
55 HRTIMER_CB_IRQSAFE, 62 HRTIMER_CB_IRQSAFE,
56 HRTIMER_CB_IRQSAFE_NO_RESTART, 63 HRTIMER_CB_IRQSAFE_NO_RESTART,
57 HRTIMER_CB_IRQSAFE_NO_SOFTIRQ, 64 HRTIMER_CB_IRQSAFE_PERCPU,
65 HRTIMER_CB_IRQSAFE_UNLOCKED,
58}; 66};
59 67
60/* 68/*
@@ -67,9 +75,10 @@ enum hrtimer_cb_mode {
67 * 0x02 callback function running 75 * 0x02 callback function running
68 * 0x04 callback pending (high resolution mode) 76 * 0x04 callback pending (high resolution mode)
69 * 77 *
70 * Special case: 78 * Special cases:
71 * 0x03 callback function running and enqueued 79 * 0x03 callback function running and enqueued
72 * (was requeued on another CPU) 80 * (was requeued on another CPU)
81 * 0x09 timer was migrated on CPU hotunplug
73 * The "callback function running and enqueued" status is only possible on 82 * The "callback function running and enqueued" status is only possible on
74 * SMP. It happens for example when a posix timer expired and the callback 83 * SMP. It happens for example when a posix timer expired and the callback
75 * queued a signal. Between dropping the lock which protects the posix timer 84 * queued a signal. Between dropping the lock which protects the posix timer
@@ -87,6 +96,7 @@ enum hrtimer_cb_mode {
87#define HRTIMER_STATE_ENQUEUED 0x01 96#define HRTIMER_STATE_ENQUEUED 0x01
88#define HRTIMER_STATE_CALLBACK 0x02 97#define HRTIMER_STATE_CALLBACK 0x02
89#define HRTIMER_STATE_PENDING 0x04 98#define HRTIMER_STATE_PENDING 0x04
99#define HRTIMER_STATE_MIGRATE 0x08
90 100
91/** 101/**
92 * struct hrtimer - the basic hrtimer structure 102 * struct hrtimer - the basic hrtimer structure
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 08be0d21864..06115128047 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -97,7 +97,19 @@ extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client,
97 97
98/** 98/**
99 * struct i2c_driver - represent an I2C device driver 99 * struct i2c_driver - represent an I2C device driver
100 * @id: Unique driver ID (optional)
100 * @class: What kind of i2c device we instantiate (for detect) 101 * @class: What kind of i2c device we instantiate (for detect)
102 * @attach_adapter: Callback for bus addition (for legacy drivers)
103 * @detach_adapter: Callback for bus removal (for legacy drivers)
104 * @detach_client: Callback for device removal (for legacy drivers)
105 * @probe: Callback for device binding (new-style drivers)
106 * @remove: Callback for device unbinding (new-style drivers)
107 * @shutdown: Callback for device shutdown
108 * @suspend: Callback for device suspend
109 * @resume: Callback for device resume
110 * @command: Callback for bus-wide signaling (optional)
111 * @driver: Device driver model driver
112 * @id_table: List of I2C devices supported by this driver
101 * @detect: Callback for device detection 113 * @detect: Callback for device detection
102 * @address_data: The I2C addresses to probe, ignore or force (for detect) 114 * @address_data: The I2C addresses to probe, ignore or force (for detect)
103 * @clients: List of detected clients we created (for i2c-core use only) 115 * @clients: List of detected clients we created (for i2c-core use only)
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 87c12ed9695..1524829f73f 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -1111,7 +1111,6 @@ void ide_setup_pci_noise(struct pci_dev *, const struct ide_port_info *);
1111#ifdef CONFIG_BLK_DEV_IDEDMA_PCI 1111#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
1112int ide_pci_set_master(struct pci_dev *, const char *); 1112int ide_pci_set_master(struct pci_dev *, const char *);
1113unsigned long ide_pci_dma_base(ide_hwif_t *, const struct ide_port_info *); 1113unsigned long ide_pci_dma_base(ide_hwif_t *, const struct ide_port_info *);
1114extern const struct ide_dma_ops sff_dma_ops;
1115int ide_pci_check_simplex(ide_hwif_t *, const struct ide_port_info *); 1114int ide_pci_check_simplex(ide_hwif_t *, const struct ide_port_info *);
1116int ide_hwif_setup_dma(ide_hwif_t *, const struct ide_port_info *); 1115int ide_hwif_setup_dma(ide_hwif_t *, const struct ide_port_info *);
1117#else 1116#else
@@ -1275,6 +1274,7 @@ extern int __ide_dma_end(ide_drive_t *);
1275int ide_dma_test_irq(ide_drive_t *); 1274int ide_dma_test_irq(ide_drive_t *);
1276extern void ide_dma_lost_irq(ide_drive_t *); 1275extern void ide_dma_lost_irq(ide_drive_t *);
1277extern void ide_dma_timeout(ide_drive_t *); 1276extern void ide_dma_timeout(ide_drive_t *);
1277extern const struct ide_dma_ops sff_dma_ops;
1278#endif /* CONFIG_BLK_DEV_IDEDMA_SFF */ 1278#endif /* CONFIG_BLK_DEV_IDEDMA_SFF */
1279 1279
1280#else 1280#else
@@ -1448,8 +1448,7 @@ static inline void ide_dump_identify(u8 *id)
1448 1448
1449static inline int hwif_to_node(ide_hwif_t *hwif) 1449static inline int hwif_to_node(ide_hwif_t *hwif)
1450{ 1450{
1451 struct pci_dev *dev = to_pci_dev(hwif->dev); 1451 return hwif->dev ? dev_to_node(hwif->dev) : -1;
1452 return hwif->dev ? pcibus_to_node(dev->bus) : -1;
1453} 1452}
1454 1453
1455static inline ide_drive_t *ide_get_paired_drive(ide_drive_t *drive) 1454static inline ide_drive_t *ide_get_paired_drive(ide_drive_t *drive)
diff --git a/include/linux/ioport.h b/include/linux/ioport.h
index 22d2115458c..350033e8f4e 100644
--- a/include/linux/ioport.h
+++ b/include/linux/ioport.h
@@ -109,6 +109,7 @@ extern struct resource iomem_resource;
109extern int request_resource(struct resource *root, struct resource *new); 109extern int request_resource(struct resource *root, struct resource *new);
110extern int release_resource(struct resource *new); 110extern int release_resource(struct resource *new);
111extern int insert_resource(struct resource *parent, struct resource *new); 111extern int insert_resource(struct resource *parent, struct resource *new);
112extern void insert_resource_expand_to_fit(struct resource *root, struct resource *new);
112extern int allocate_resource(struct resource *root, struct resource *new, 113extern int allocate_resource(struct resource *root, struct resource *new,
113 resource_size_t size, resource_size_t min, 114 resource_size_t size, resource_size_t min,
114 resource_size_t max, resource_size_t align, 115 resource_size_t max, resource_size_t align,
@@ -158,9 +159,9 @@ extern struct resource * __devm_request_region(struct device *dev,
158 struct resource *parent, resource_size_t start, 159 struct resource *parent, resource_size_t start,
159 resource_size_t n, const char *name); 160 resource_size_t n, const char *name);
160 161
161#define devm_release_region(start,n) \ 162#define devm_release_region(dev, start, n) \
162 __devm_release_region(dev, &ioport_resource, (start), (n)) 163 __devm_release_region(dev, &ioport_resource, (start), (n))
163#define devm_release_mem_region(start,n) \ 164#define devm_release_mem_region(dev, start, n) \
164 __devm_release_region(dev, &iomem_resource, (start), (n)) 165 __devm_release_region(dev, &iomem_resource, (start), (n))
165 166
166extern void __devm_release_region(struct device *dev, struct resource *parent, 167extern void __devm_release_region(struct device *dev, struct resource *parent,
diff --git a/include/linux/kvm.h b/include/linux/kvm.h
index 69511f74f91..70a30651cd1 100644
--- a/include/linux/kvm.h
+++ b/include/linux/kvm.h
@@ -320,12 +320,12 @@ struct kvm_trace_rec {
320 struct { 320 struct {
321 __u64 cycle_u64; 321 __u64 cycle_u64;
322 __u32 extra_u32[KVM_TRC_EXTRA_MAX]; 322 __u32 extra_u32[KVM_TRC_EXTRA_MAX];
323 } cycle; 323 } __attribute__((packed)) cycle;
324 struct { 324 struct {
325 __u32 extra_u32[KVM_TRC_EXTRA_MAX]; 325 __u32 extra_u32[KVM_TRC_EXTRA_MAX];
326 } nocycle; 326 } nocycle;
327 } u; 327 } u;
328} __attribute__((packed)); 328};
329 329
330#define KVMIO 0xAE 330#define KVMIO 0xAE
331 331
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 06b80337303..225bfc5bd9e 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -163,6 +163,7 @@ enum {
163 ATA_DEV_NONE = 9, /* no device */ 163 ATA_DEV_NONE = 9, /* no device */
164 164
165 /* struct ata_link flags */ 165 /* struct ata_link flags */
166 ATA_LFLAG_NO_HRST = (1 << 1), /* avoid hardreset */
166 ATA_LFLAG_NO_SRST = (1 << 2), /* avoid softreset */ 167 ATA_LFLAG_NO_SRST = (1 << 2), /* avoid softreset */
167 ATA_LFLAG_ASSUME_ATA = (1 << 3), /* assume ATA class */ 168 ATA_LFLAG_ASSUME_ATA = (1 << 3), /* assume ATA class */
168 ATA_LFLAG_ASSUME_SEMB = (1 << 4), /* assume SEMB class */ 169 ATA_LFLAG_ASSUME_SEMB = (1 << 4), /* assume SEMB class */
@@ -646,6 +647,7 @@ struct ata_link {
646 647
647 unsigned int flags; /* ATA_LFLAG_xxx */ 648 unsigned int flags; /* ATA_LFLAG_xxx */
648 649
650 u32 saved_scontrol; /* SControl on probe */
649 unsigned int hw_sata_spd_limit; 651 unsigned int hw_sata_spd_limit;
650 unsigned int sata_spd_limit; 652 unsigned int sata_spd_limit;
651 unsigned int sata_spd; /* current SATA PHY speed */ 653 unsigned int sata_spd; /* current SATA PHY speed */
@@ -1427,6 +1429,28 @@ static inline unsigned long ata_deadline(unsigned long from_jiffies,
1427 return from_jiffies + msecs_to_jiffies(timeout_msecs); 1429 return from_jiffies + msecs_to_jiffies(timeout_msecs);
1428} 1430}
1429 1431
1432/* Don't open code these in drivers as there are traps. Firstly the range may
1433 change in future hardware and specs, secondly 0xFF means 'no DMA' but is
1434 > UDMA_0. Dyma ddreigiau */
1435
1436static inline int ata_using_mwdma(struct ata_device *adev)
1437{
1438 if (adev->dma_mode >= XFER_MW_DMA_0 && adev->dma_mode <= XFER_MW_DMA_4)
1439 return 1;
1440 return 0;
1441}
1442
1443static inline int ata_using_udma(struct ata_device *adev)
1444{
1445 if (adev->dma_mode >= XFER_UDMA_0 && adev->dma_mode <= XFER_UDMA_7)
1446 return 1;
1447 return 0;
1448}
1449
1450static inline int ata_dma_enabled(struct ata_device *adev)
1451{
1452 return (adev->dma_mode == 0xFF ? 0 : 1);
1453}
1430 1454
1431/************************************************************************** 1455/**************************************************************************
1432 * PMP - drivers/ata/libata-pmp.c 1456 * PMP - drivers/ata/libata-pmp.c
diff --git a/include/linux/list.h b/include/linux/list.h
index db35ef02e74..969f6e92d08 100644
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -619,6 +619,19 @@ static inline void hlist_add_after(struct hlist_node *n,
619 next->next->pprev = &next->next; 619 next->next->pprev = &next->next;
620} 620}
621 621
622/*
623 * Move a list from one list head to another. Fixup the pprev
624 * reference of the first entry if it exists.
625 */
626static inline void hlist_move_list(struct hlist_head *old,
627 struct hlist_head *new)
628{
629 new->first = old->first;
630 if (new->first)
631 new->first->pprev = &new->first;
632 old->first = NULL;
633}
634
622#define hlist_entry(ptr, type, member) container_of(ptr,type,member) 635#define hlist_entry(ptr, type, member) container_of(ptr,type,member)
623 636
624#define hlist_for_each(pos, head) \ 637#define hlist_for_each(pos, head) \
diff --git a/include/linux/memstick.h b/include/linux/memstick.h
index a9f998a3f48..d0c37e68223 100644
--- a/include/linux/memstick.h
+++ b/include/linux/memstick.h
@@ -21,30 +21,30 @@
21struct ms_status_register { 21struct ms_status_register {
22 unsigned char reserved; 22 unsigned char reserved;
23 unsigned char interrupt; 23 unsigned char interrupt;
24#define MEMSTICK_INT_CMDNAK 0x0001 24#define MEMSTICK_INT_CMDNAK 0x01
25#define MEMSTICK_INT_IOREQ 0x0008 25#define MEMSTICK_INT_IOREQ 0x08
26#define MEMSTICK_INT_IOBREQ 0x0010 26#define MEMSTICK_INT_IOBREQ 0x10
27#define MEMSTICK_INT_BREQ 0x0020 27#define MEMSTICK_INT_BREQ 0x20
28#define MEMSTICK_INT_ERR 0x0040 28#define MEMSTICK_INT_ERR 0x40
29#define MEMSTICK_INT_CED 0x0080 29#define MEMSTICK_INT_CED 0x80
30 30
31 unsigned char status0; 31 unsigned char status0;
32#define MEMSTICK_STATUS0_WP 0x0001 32#define MEMSTICK_STATUS0_WP 0x01
33#define MEMSTICK_STATUS0_SL 0x0002 33#define MEMSTICK_STATUS0_SL 0x02
34#define MEMSTICK_STATUS0_BF 0x0010 34#define MEMSTICK_STATUS0_BF 0x10
35#define MEMSTICK_STATUS0_BE 0x0020 35#define MEMSTICK_STATUS0_BE 0x20
36#define MEMSTICK_STATUS0_FB0 0x0040 36#define MEMSTICK_STATUS0_FB0 0x40
37#define MEMSTICK_STATUS0_MB 0x0080 37#define MEMSTICK_STATUS0_MB 0x80
38 38
39 unsigned char status1; 39 unsigned char status1;
40#define MEMSTICK_STATUS1_UCFG 0x0001 40#define MEMSTICK_STATUS1_UCFG 0x01
41#define MEMSTICK_STATUS1_FGER 0x0002 41#define MEMSTICK_STATUS1_FGER 0x02
42#define MEMSTICK_STATUS1_UCEX 0x0004 42#define MEMSTICK_STATUS1_UCEX 0x04
43#define MEMSTICK_STATUS1_EXER 0x0008 43#define MEMSTICK_STATUS1_EXER 0x08
44#define MEMSTICK_STATUS1_UCDT 0x0010 44#define MEMSTICK_STATUS1_UCDT 0x10
45#define MEMSTICK_STATUS1_DTER 0x0020 45#define MEMSTICK_STATUS1_DTER 0x20
46#define MEMSTICK_STATUS1_FBI 0x0040 46#define MEMSTICK_STATUS1_FB1 0x40
47#define MEMSTICK_STATUS1_MB 0x0080 47#define MEMSTICK_STATUS1_MB 0x80
48} __attribute__((packed)); 48} __attribute__((packed));
49 49
50struct ms_id_register { 50struct ms_id_register {
@@ -56,32 +56,32 @@ struct ms_id_register {
56 56
57struct ms_param_register { 57struct ms_param_register {
58 unsigned char system; 58 unsigned char system;
59#define MEMSTICK_SYS_ATEN 0xc0
60#define MEMSTICK_SYS_BAMD 0x80
61#define MEMSTICK_SYS_PAM 0x08 59#define MEMSTICK_SYS_PAM 0x08
60#define MEMSTICK_SYS_BAMD 0x80
62 61
63 unsigned char block_address_msb; 62 unsigned char block_address_msb;
64 unsigned short block_address; 63 unsigned short block_address;
65 unsigned char cp; 64 unsigned char cp;
66#define MEMSTICK_CP_BLOCK 0x0000 65#define MEMSTICK_CP_BLOCK 0x00
67#define MEMSTICK_CP_PAGE 0x0020 66#define MEMSTICK_CP_PAGE 0x20
68#define MEMSTICK_CP_EXTRA 0x0040 67#define MEMSTICK_CP_EXTRA 0x40
69#define MEMSTICK_CP_OVERWRITE 0x0080 68#define MEMSTICK_CP_OVERWRITE 0x80
70 69
71 unsigned char page_address; 70 unsigned char page_address;
72} __attribute__((packed)); 71} __attribute__((packed));
73 72
74struct ms_extra_data_register { 73struct ms_extra_data_register {
75 unsigned char overwrite_flag; 74 unsigned char overwrite_flag;
76#define MEMSTICK_OVERWRITE_UPDATA 0x0010 75#define MEMSTICK_OVERWRITE_UDST 0x10
77#define MEMSTICK_OVERWRITE_PAGE 0x0060 76#define MEMSTICK_OVERWRITE_PGST1 0x20
78#define MEMSTICK_OVERWRITE_BLOCK 0x0080 77#define MEMSTICK_OVERWRITE_PGST0 0x40
78#define MEMSTICK_OVERWRITE_BKST 0x80
79 79
80 unsigned char management_flag; 80 unsigned char management_flag;
81#define MEMSTICK_MANAGEMENT_SYSTEM 0x0004 81#define MEMSTICK_MANAGEMENT_SYSFLG 0x04
82#define MEMSTICK_MANAGEMENT_TRANS_TABLE 0x0008 82#define MEMSTICK_MANAGEMENT_ATFLG 0x08
83#define MEMSTICK_MANAGEMENT_COPY 0x0010 83#define MEMSTICK_MANAGEMENT_SCMS1 0x10
84#define MEMSTICK_MANAGEMENT_ACCESS 0x0020 84#define MEMSTICK_MANAGEMENT_SCMS0 0x20
85 85
86 unsigned short logical_address; 86 unsigned short logical_address;
87} __attribute__((packed)); 87} __attribute__((packed));
@@ -96,9 +96,9 @@ struct ms_register {
96 96
97struct mspro_param_register { 97struct mspro_param_register {
98 unsigned char system; 98 unsigned char system;
99#define MEMSTICK_SYS_SERIAL 0x80
100#define MEMSTICK_SYS_PAR4 0x00 99#define MEMSTICK_SYS_PAR4 0x00
101#define MEMSTICK_SYS_PAR8 0x40 100#define MEMSTICK_SYS_PAR8 0x40
101#define MEMSTICK_SYS_SERIAL 0x80
102 102
103 unsigned short data_count; 103 unsigned short data_count;
104 unsigned int data_address; 104 unsigned int data_address;
@@ -147,7 +147,7 @@ struct ms_register_addr {
147 unsigned char w_length; 147 unsigned char w_length;
148} __attribute__((packed)); 148} __attribute__((packed));
149 149
150enum { 150enum memstick_tpc {
151 MS_TPC_READ_MG_STATUS = 0x01, 151 MS_TPC_READ_MG_STATUS = 0x01,
152 MS_TPC_READ_LONG_DATA = 0x02, 152 MS_TPC_READ_LONG_DATA = 0x02,
153 MS_TPC_READ_SHORT_DATA = 0x03, 153 MS_TPC_READ_SHORT_DATA = 0x03,
@@ -167,7 +167,7 @@ enum {
167 MS_TPC_SET_CMD = 0x0e 167 MS_TPC_SET_CMD = 0x0e
168}; 168};
169 169
170enum { 170enum memstick_command {
171 MS_CMD_BLOCK_END = 0x33, 171 MS_CMD_BLOCK_END = 0x33,
172 MS_CMD_RESET = 0x3c, 172 MS_CMD_RESET = 0x3c,
173 MS_CMD_BLOCK_WRITE = 0x55, 173 MS_CMD_BLOCK_WRITE = 0x55,
@@ -201,8 +201,6 @@ enum {
201 201
202/*** Driver structures and functions ***/ 202/*** Driver structures and functions ***/
203 203
204#define MEMSTICK_PART_SHIFT 3
205
206enum memstick_param { MEMSTICK_POWER = 1, MEMSTICK_INTERFACE }; 204enum memstick_param { MEMSTICK_POWER = 1, MEMSTICK_INTERFACE };
207 205
208#define MEMSTICK_POWER_OFF 0 206#define MEMSTICK_POWER_OFF 0
@@ -215,24 +213,27 @@ enum memstick_param { MEMSTICK_POWER = 1, MEMSTICK_INTERFACE };
215struct memstick_host; 213struct memstick_host;
216struct memstick_driver; 214struct memstick_driver;
217 215
216struct memstick_device_id {
217 unsigned char match_flags;
218#define MEMSTICK_MATCH_ALL 0x01 218#define MEMSTICK_MATCH_ALL 0x01
219 219
220 unsigned char type;
220#define MEMSTICK_TYPE_LEGACY 0xff 221#define MEMSTICK_TYPE_LEGACY 0xff
221#define MEMSTICK_TYPE_DUO 0x00 222#define MEMSTICK_TYPE_DUO 0x00
222#define MEMSTICK_TYPE_PRO 0x01 223#define MEMSTICK_TYPE_PRO 0x01
223 224
225 unsigned char category;
224#define MEMSTICK_CATEGORY_STORAGE 0xff 226#define MEMSTICK_CATEGORY_STORAGE 0xff
225#define MEMSTICK_CATEGORY_STORAGE_DUO 0x00 227#define MEMSTICK_CATEGORY_STORAGE_DUO 0x00
228#define MEMSTICK_CATEGORY_IO 0x01
229#define MEMSTICK_CATEGORY_IO_PRO 0x10
226 230
227#define MEMSTICK_CLASS_GENERIC 0xff
228#define MEMSTICK_CLASS_GENERIC_DUO 0x00
229
230
231struct memstick_device_id {
232 unsigned char match_flags;
233 unsigned char type;
234 unsigned char category;
235 unsigned char class; 231 unsigned char class;
232#define MEMSTICK_CLASS_FLASH 0xff
233#define MEMSTICK_CLASS_DUO 0x00
234#define MEMSTICK_CLASS_ROM 0x01
235#define MEMSTICK_CLASS_RO 0x02
236#define MEMSTICK_CLASS_WP 0x03
236}; 237};
237 238
238struct memstick_request { 239struct memstick_request {
@@ -319,9 +320,9 @@ void memstick_suspend_host(struct memstick_host *host);
319void memstick_resume_host(struct memstick_host *host); 320void memstick_resume_host(struct memstick_host *host);
320 321
321void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc, 322void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc,
322 struct scatterlist *sg); 323 const struct scatterlist *sg);
323void memstick_init_req(struct memstick_request *mrq, unsigned char tpc, 324void memstick_init_req(struct memstick_request *mrq, unsigned char tpc,
324 void *buf, size_t length); 325 const void *buf, size_t length);
325int memstick_next_req(struct memstick_host *host, 326int memstick_next_req(struct memstick_host *host,
326 struct memstick_request **mrq); 327 struct memstick_request **mrq);
327void memstick_new_req(struct memstick_host *host); 328void memstick_new_req(struct memstick_host *host);
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h
index 655ea0d1ee1..b2f94446831 100644
--- a/include/linux/mlx4/device.h
+++ b/include/linux/mlx4/device.h
@@ -141,6 +141,10 @@ enum {
141 MLX4_STAT_RATE_OFFSET = 5 141 MLX4_STAT_RATE_OFFSET = 5
142}; 142};
143 143
144enum {
145 MLX4_MTT_FLAG_PRESENT = 1
146};
147
144static inline u64 mlx4_fw_ver(u64 major, u64 minor, u64 subminor) 148static inline u64 mlx4_fw_ver(u64 major, u64 minor, u64 subminor)
145{ 149{
146 return (major << 32) | (minor << 16) | subminor; 150 return (major << 32) | (minor << 16) | subminor;
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 443bc7cd8c6..428328a05fa 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -751,8 +751,9 @@ static inline int zonelist_node_idx(struct zoneref *zoneref)
751 * 751 *
752 * This function returns the next zone at or below a given zone index that is 752 * This function returns the next zone at or below a given zone index that is
753 * within the allowed nodemask using a cursor as the starting point for the 753 * within the allowed nodemask using a cursor as the starting point for the
754 * search. The zoneref returned is a cursor that is used as the next starting 754 * search. The zoneref returned is a cursor that represents the current zone
755 * point for future calls to next_zones_zonelist(). 755 * being examined. It should be advanced by one before calling
756 * next_zones_zonelist again.
756 */ 757 */
757struct zoneref *next_zones_zonelist(struct zoneref *z, 758struct zoneref *next_zones_zonelist(struct zoneref *z,
758 enum zone_type highest_zoneidx, 759 enum zone_type highest_zoneidx,
@@ -768,9 +769,8 @@ struct zoneref *next_zones_zonelist(struct zoneref *z,
768 * 769 *
769 * This function returns the first zone at or below a given zone index that is 770 * This function returns the first zone at or below a given zone index that is
770 * within the allowed nodemask. The zoneref returned is a cursor that can be 771 * within the allowed nodemask. The zoneref returned is a cursor that can be
771 * used to iterate the zonelist with next_zones_zonelist. The cursor should 772 * used to iterate the zonelist with next_zones_zonelist by advancing it by
772 * not be used by the caller as it does not match the value of the zone 773 * one before calling.
773 * returned.
774 */ 774 */
775static inline struct zoneref *first_zones_zonelist(struct zonelist *zonelist, 775static inline struct zoneref *first_zones_zonelist(struct zonelist *zonelist,
776 enum zone_type highest_zoneidx, 776 enum zone_type highest_zoneidx,
@@ -795,7 +795,7 @@ static inline struct zoneref *first_zones_zonelist(struct zonelist *zonelist,
795#define for_each_zone_zonelist_nodemask(zone, z, zlist, highidx, nodemask) \ 795#define for_each_zone_zonelist_nodemask(zone, z, zlist, highidx, nodemask) \
796 for (z = first_zones_zonelist(zlist, highidx, nodemask, &zone); \ 796 for (z = first_zones_zonelist(zlist, highidx, nodemask, &zone); \
797 zone; \ 797 zone; \
798 z = next_zones_zonelist(z, highidx, nodemask, &zone)) \ 798 z = next_zones_zonelist(++z, highidx, nodemask, &zone)) \
799 799
800/** 800/**
801 * for_each_zone_zonelist - helper macro to iterate over valid zones in a zonelist at or below a given zone index 801 * for_each_zone_zonelist - helper macro to iterate over valid zones in a zonelist at or below a given zone index
diff --git a/include/linux/mroute.h b/include/linux/mroute.h
index 07112ee9293..8a455694d68 100644
--- a/include/linux/mroute.h
+++ b/include/linux/mroute.h
@@ -6,7 +6,6 @@
6#ifdef __KERNEL__ 6#ifdef __KERNEL__
7#include <linux/in.h> 7#include <linux/in.h>
8#endif 8#endif
9#include <linux/pim.h>
10 9
11/* 10/*
12 * Based on the MROUTING 3.5 defines primarily to keep 11 * Based on the MROUTING 3.5 defines primarily to keep
@@ -130,6 +129,7 @@ struct igmpmsg
130 */ 129 */
131 130
132#ifdef __KERNEL__ 131#ifdef __KERNEL__
132#include <linux/pim.h>
133#include <net/sock.h> 133#include <net/sock.h>
134 134
135#ifdef CONFIG_IP_MROUTE 135#ifdef CONFIG_IP_MROUTE
diff --git a/include/linux/mroute6.h b/include/linux/mroute6.h
index 5cf50473a10..6f4c180179e 100644
--- a/include/linux/mroute6.h
+++ b/include/linux/mroute6.h
@@ -115,6 +115,7 @@ struct sioc_mif_req6
115 115
116#ifdef __KERNEL__ 116#ifdef __KERNEL__
117 117
118#include <linux/pim.h>
118#include <linux/skbuff.h> /* for struct sk_buff_head */ 119#include <linux/skbuff.h> /* for struct sk_buff_head */
119 120
120#ifdef CONFIG_IPV6_MROUTE 121#ifdef CONFIG_IPV6_MROUTE
diff --git a/include/linux/net.h b/include/linux/net.h
index 4a9a30f2d68..6dc14a24004 100644
--- a/include/linux/net.h
+++ b/include/linux/net.h
@@ -18,16 +18,9 @@
18#ifndef _LINUX_NET_H 18#ifndef _LINUX_NET_H
19#define _LINUX_NET_H 19#define _LINUX_NET_H
20 20
21#include <linux/wait.h>
22#include <linux/socket.h> 21#include <linux/socket.h>
23#include <linux/fcntl.h> /* For O_CLOEXEC and O_NONBLOCK */
24#include <asm/socket.h> 22#include <asm/socket.h>
25 23
26struct poll_table_struct;
27struct pipe_inode_info;
28struct inode;
29struct net;
30
31#define NPROTO AF_MAX 24#define NPROTO AF_MAX
32 25
33#define SYS_SOCKET 1 /* sys_socket(2) */ 26#define SYS_SOCKET 1 /* sys_socket(2) */
@@ -62,6 +55,13 @@ typedef enum {
62#ifdef __KERNEL__ 55#ifdef __KERNEL__
63#include <linux/stringify.h> 56#include <linux/stringify.h>
64#include <linux/random.h> 57#include <linux/random.h>
58#include <linux/wait.h>
59#include <linux/fcntl.h> /* For O_CLOEXEC and O_NONBLOCK */
60
61struct poll_table_struct;
62struct pipe_inode_info;
63struct inode;
64struct net;
65 65
66#define SOCK_ASYNC_NOSPACE 0 66#define SOCK_ASYNC_NOSPACE 0
67#define SOCK_ASYNC_WAITDATA 1 67#define SOCK_ASYNC_WAITDATA 1
diff --git a/include/linux/pci.h b/include/linux/pci.h
index c0e14008a3c..98dc6243a70 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -534,7 +534,7 @@ extern void pci_sort_breadthfirst(void);
534#ifdef CONFIG_PCI_LEGACY 534#ifdef CONFIG_PCI_LEGACY
535struct pci_dev __deprecated *pci_find_device(unsigned int vendor, 535struct pci_dev __deprecated *pci_find_device(unsigned int vendor,
536 unsigned int device, 536 unsigned int device,
537 const struct pci_dev *from); 537 struct pci_dev *from);
538struct pci_dev __deprecated *pci_find_slot(unsigned int bus, 538struct pci_dev __deprecated *pci_find_slot(unsigned int bus,
539 unsigned int devfn); 539 unsigned int devfn);
540#endif /* CONFIG_PCI_LEGACY */ 540#endif /* CONFIG_PCI_LEGACY */
@@ -550,7 +550,7 @@ struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device,
550 struct pci_dev *from); 550 struct pci_dev *from);
551struct pci_dev *pci_get_subsys(unsigned int vendor, unsigned int device, 551struct pci_dev *pci_get_subsys(unsigned int vendor, unsigned int device,
552 unsigned int ss_vendor, unsigned int ss_device, 552 unsigned int ss_vendor, unsigned int ss_device,
553 const struct pci_dev *from); 553 struct pci_dev *from);
554struct pci_dev *pci_get_slot(struct pci_bus *bus, unsigned int devfn); 554struct pci_dev *pci_get_slot(struct pci_bus *bus, unsigned int devfn);
555struct pci_dev *pci_get_bus_and_slot(unsigned int bus, unsigned int devfn); 555struct pci_dev *pci_get_bus_and_slot(unsigned int bus, unsigned int devfn);
556struct pci_dev *pci_get_class(unsigned int class, struct pci_dev *from); 556struct pci_dev *pci_get_class(unsigned int class, struct pci_dev *from);
@@ -816,7 +816,7 @@ _PCI_NOP_ALL(write,)
816 816
817static inline struct pci_dev *pci_find_device(unsigned int vendor, 817static inline struct pci_dev *pci_find_device(unsigned int vendor,
818 unsigned int device, 818 unsigned int device,
819 const struct pci_dev *from) 819 struct pci_dev *from)
820{ 820{
821 return NULL; 821 return NULL;
822} 822}
@@ -838,7 +838,7 @@ static inline struct pci_dev *pci_get_subsys(unsigned int vendor,
838 unsigned int device, 838 unsigned int device,
839 unsigned int ss_vendor, 839 unsigned int ss_vendor,
840 unsigned int ss_device, 840 unsigned int ss_device,
841 const struct pci_dev *from) 841 struct pci_dev *from)
842{ 842{
843 return NULL; 843 return NULL;
844} 844}
diff --git a/include/linux/pim.h b/include/linux/pim.h
index 236ffd31739..1ba0661561a 100644
--- a/include/linux/pim.h
+++ b/include/linux/pim.h
@@ -3,22 +3,6 @@
3 3
4#include <asm/byteorder.h> 4#include <asm/byteorder.h>
5 5
6#ifndef __KERNEL__
7struct pim {
8#if defined(__LITTLE_ENDIAN_BITFIELD)
9 __u8 pim_type:4, /* PIM message type */
10 pim_ver:4; /* PIM version */
11#elif defined(__BIG_ENDIAN_BITFIELD)
12 __u8 pim_ver:4; /* PIM version */
13 pim_type:4; /* PIM message type */
14#endif
15 __u8 pim_rsv; /* Reserved */
16 __be16 pim_cksum; /* Checksum */
17};
18
19#define PIM_MINLEN 8
20#endif
21
22/* Message types - V1 */ 6/* Message types - V1 */
23#define PIM_V1_VERSION __constant_htonl(0x10000000) 7#define PIM_V1_VERSION __constant_htonl(0x10000000)
24#define PIM_V1_REGISTER 1 8#define PIM_V1_REGISTER 1
@@ -27,7 +11,6 @@ struct pim {
27#define PIM_VERSION 2 11#define PIM_VERSION 2
28#define PIM_REGISTER 1 12#define PIM_REGISTER 1
29 13
30#if defined(__KERNEL__)
31#define PIM_NULL_REGISTER __constant_htonl(0x40000000) 14#define PIM_NULL_REGISTER __constant_htonl(0x40000000)
32 15
33/* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */ 16/* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */
@@ -42,4 +25,3 @@ struct pimreghdr
42struct sk_buff; 25struct sk_buff;
43extern int pim_rcv_v1(struct sk_buff *); 26extern int pim_rcv_v1(struct sk_buff *);
44#endif 27#endif
45#endif
diff --git a/include/linux/pnp.h b/include/linux/pnp.h
index 1ce54b63085..be764e514e3 100644
--- a/include/linux/pnp.h
+++ b/include/linux/pnp.h
@@ -21,7 +21,14 @@ struct pnp_dev;
21/* 21/*
22 * Resource Management 22 * Resource Management
23 */ 23 */
24#ifdef CONFIG_PNP
24struct resource *pnp_get_resource(struct pnp_dev *, unsigned int, unsigned int); 25struct resource *pnp_get_resource(struct pnp_dev *, unsigned int, unsigned int);
26#else
27static inline struct resource *pnp_get_resource(struct pnp_dev *dev, unsigned int type, unsigned int num)
28{
29 return NULL;
30}
31#endif
25 32
26static inline int pnp_resource_valid(struct resource *res) 33static inline int pnp_resource_valid(struct resource *res)
27{ 34{
diff --git a/include/linux/quicklist.h b/include/linux/quicklist.h
index 39b66713a0b..bd466439c58 100644
--- a/include/linux/quicklist.h
+++ b/include/linux/quicklist.h
@@ -80,6 +80,13 @@ void quicklist_trim(int nr, void (*dtor)(void *),
80 80
81unsigned long quicklist_total_size(void); 81unsigned long quicklist_total_size(void);
82 82
83#else
84
85static inline unsigned long quicklist_total_size(void)
86{
87 return 0;
88}
89
83#endif 90#endif
84 91
85#endif /* LINUX_QUICKLIST_H */ 92#endif /* LINUX_QUICKLIST_H */
diff --git a/include/linux/ramfs.h b/include/linux/ramfs.h
index b160fb18e8d..37aaf2b3986 100644
--- a/include/linux/ramfs.h
+++ b/include/linux/ramfs.h
@@ -6,6 +6,7 @@ extern int ramfs_get_sb(struct file_system_type *fs_type,
6 int flags, const char *dev_name, void *data, struct vfsmount *mnt); 6 int flags, const char *dev_name, void *data, struct vfsmount *mnt);
7 7
8#ifndef CONFIG_MMU 8#ifndef CONFIG_MMU
9extern int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize);
9extern unsigned long ramfs_nommu_get_unmapped_area(struct file *file, 10extern unsigned long ramfs_nommu_get_unmapped_area(struct file *file,
10 unsigned long addr, 11 unsigned long addr,
11 unsigned long len, 12 unsigned long len,
diff --git a/include/linux/res_counter.h b/include/linux/res_counter.h
index fdeadd9740d..271c1c2c9f6 100644
--- a/include/linux/res_counter.h
+++ b/include/linux/res_counter.h
@@ -166,7 +166,7 @@ static inline int res_counter_set_limit(struct res_counter *cnt,
166 int ret = -EBUSY; 166 int ret = -EBUSY;
167 167
168 spin_lock_irqsave(&cnt->lock, flags); 168 spin_lock_irqsave(&cnt->lock, flags);
169 if (cnt->usage < limit) { 169 if (cnt->usage <= limit) {
170 cnt->limit = limit; 170 cnt->limit = limit;
171 ret = 0; 171 ret = 0;
172 } 172 }
diff --git a/include/linux/sched.h b/include/linux/sched.h
index cfb0d87b99f..3d9120c5ad1 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1475,6 +1475,10 @@ static inline void put_task_struct(struct task_struct *t)
1475 __put_task_struct(t); 1475 __put_task_struct(t);
1476} 1476}
1477 1477
1478extern cputime_t task_utime(struct task_struct *p);
1479extern cputime_t task_stime(struct task_struct *p);
1480extern cputime_t task_gtime(struct task_struct *p);
1481
1478/* 1482/*
1479 * Per process flags 1483 * Per process flags
1480 */ 1484 */
diff --git a/include/linux/smb.h b/include/linux/smb.h
index caa43b2370c..82fefddc598 100644
--- a/include/linux/smb.h
+++ b/include/linux/smb.h
@@ -11,7 +11,9 @@
11 11
12#include <linux/types.h> 12#include <linux/types.h>
13#include <linux/magic.h> 13#include <linux/magic.h>
14#ifdef __KERNEL__
14#include <linux/time.h> 15#include <linux/time.h>
16#endif
15 17
16enum smb_protocol { 18enum smb_protocol {
17 SMB_PROTOCOL_NONE, 19 SMB_PROTOCOL_NONE,
diff --git a/include/linux/stacktrace.h b/include/linux/stacktrace.h
index 5da9794b2d7..b106fd8e0d5 100644
--- a/include/linux/stacktrace.h
+++ b/include/linux/stacktrace.h
@@ -1,6 +1,8 @@
1#ifndef __LINUX_STACKTRACE_H 1#ifndef __LINUX_STACKTRACE_H
2#define __LINUX_STACKTRACE_H 2#define __LINUX_STACKTRACE_H
3 3
4struct task_struct;
5
4#ifdef CONFIG_STACKTRACE 6#ifdef CONFIG_STACKTRACE
5struct stack_trace { 7struct stack_trace {
6 unsigned int nr_entries, max_entries; 8 unsigned int nr_entries, max_entries;
diff --git a/include/linux/stop_machine.h b/include/linux/stop_machine.h
index f1cb0ba6d71..faf1519b5ad 100644
--- a/include/linux/stop_machine.h
+++ b/include/linux/stop_machine.h
@@ -3,16 +3,13 @@
3/* "Bogolock": stop the entire machine, disable interrupts. This is a 3/* "Bogolock": stop the entire machine, disable interrupts. This is a
4 very heavy lock, which is equivalent to grabbing every spinlock 4 very heavy lock, which is equivalent to grabbing every spinlock
5 (and more). So the "read" side to such a lock is anything which 5 (and more). So the "read" side to such a lock is anything which
6 diables preeempt. */ 6 disables preeempt. */
7#include <linux/cpu.h> 7#include <linux/cpu.h>
8#include <linux/cpumask.h> 8#include <linux/cpumask.h>
9#include <asm/system.h> 9#include <asm/system.h>
10 10
11#if defined(CONFIG_STOP_MACHINE) && defined(CONFIG_SMP) 11#if defined(CONFIG_STOP_MACHINE) && defined(CONFIG_SMP)
12 12
13/* Deprecated, but useful for transition. */
14#define ALL_CPUS ~0U
15
16/** 13/**
17 * stop_machine: freeze the machine on all CPUs and run this function 14 * stop_machine: freeze the machine on all CPUs and run this function
18 * @fn: the function to run 15 * @fn: the function to run
@@ -50,18 +47,4 @@ static inline int stop_machine(int (*fn)(void *), void *data,
50 return ret; 47 return ret;
51} 48}
52#endif /* CONFIG_SMP */ 49#endif /* CONFIG_SMP */
53
54static inline int __deprecated stop_machine_run(int (*fn)(void *), void *data,
55 unsigned int cpu)
56{
57 /* If they don't care which cpu fn runs on, just pick one. */
58 if (cpu == NR_CPUS)
59 return stop_machine(fn, data, NULL);
60 else if (cpu == ~0U)
61 return stop_machine(fn, data, &cpu_possible_map);
62 else {
63 cpumask_t cpus = cpumask_of_cpu(cpu);
64 return stop_machine(fn, data, &cpus);
65 }
66}
67#endif /* _LINUX_STOP_MACHINE */ 50#endif /* _LINUX_STOP_MACHINE */
diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h
index ef2e3a20bf3..dc05b54bd3a 100644
--- a/include/linux/sunrpc/svc_rdma.h
+++ b/include/linux/sunrpc/svc_rdma.h
@@ -143,7 +143,6 @@ struct svcxprt_rdma {
143 unsigned long sc_flags; 143 unsigned long sc_flags;
144 struct list_head sc_dto_q; /* DTO tasklet I/O pending Q */ 144 struct list_head sc_dto_q; /* DTO tasklet I/O pending Q */
145 struct list_head sc_read_complete_q; 145 struct list_head sc_read_complete_q;
146 spinlock_t sc_read_complete_lock;
147 struct work_struct sc_work; 146 struct work_struct sc_work;
148}; 147};
149/* sc_flags */ 148/* sc_flags */
diff --git a/include/linux/tick.h b/include/linux/tick.h
index d3c02695dc5..8cf8cfe2cc9 100644
--- a/include/linux/tick.h
+++ b/include/linux/tick.h
@@ -74,10 +74,13 @@ extern struct tick_device *tick_get_device(int cpu);
74extern int tick_init_highres(void); 74extern int tick_init_highres(void);
75extern int tick_program_event(ktime_t expires, int force); 75extern int tick_program_event(ktime_t expires, int force);
76extern void tick_setup_sched_timer(void); 76extern void tick_setup_sched_timer(void);
77# endif
78
79# if defined CONFIG_NO_HZ || defined CONFIG_HIGH_RES_TIMERS
77extern void tick_cancel_sched_timer(int cpu); 80extern void tick_cancel_sched_timer(int cpu);
78# else 81# else
79static inline void tick_cancel_sched_timer(int cpu) { } 82static inline void tick_cancel_sched_timer(int cpu) { }
80# endif /* HIGHRES */ 83# endif
81 84
82# ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST 85# ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
83extern struct tick_device *tick_get_broadcast_device(void); 86extern struct tick_device *tick_get_broadcast_device(void);
diff --git a/include/linux/tracehook.h b/include/linux/tracehook.h
index b48d8196957..6186a789d6c 100644
--- a/include/linux/tracehook.h
+++ b/include/linux/tracehook.h
@@ -272,7 +272,7 @@ static inline void tracehook_finish_clone(struct task_struct *child,
272 * tracehook_report_clone_complete(). This must prevent the child from 272 * tracehook_report_clone_complete(). This must prevent the child from
273 * self-reaping if tracehook_report_clone_complete() uses the @child 273 * self-reaping if tracehook_report_clone_complete() uses the @child
274 * pointer; otherwise it might have died and been released by the time 274 * pointer; otherwise it might have died and been released by the time
275 * tracehook_report_report_clone_complete() is called. 275 * tracehook_report_clone_complete() is called.
276 * 276 *
277 * Called with no locks held, but the child cannot run until this returns. 277 * Called with no locks held, but the child cannot run until this returns.
278 */ 278 */
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 0924cd9c30f..94ac74aba6b 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -110,6 +110,8 @@ enum usb_interface_condition {
110 * @sysfs_files_created: sysfs attributes exist 110 * @sysfs_files_created: sysfs attributes exist
111 * @needs_remote_wakeup: flag set when the driver requires remote-wakeup 111 * @needs_remote_wakeup: flag set when the driver requires remote-wakeup
112 * capability during autosuspend. 112 * capability during autosuspend.
113 * @needs_altsetting0: flag set when a set-interface request for altsetting 0
114 * has been deferred.
113 * @needs_binding: flag set when the driver should be re-probed or unbound 115 * @needs_binding: flag set when the driver should be re-probed or unbound
114 * following a reset or suspend operation it doesn't support. 116 * following a reset or suspend operation it doesn't support.
115 * @dev: driver model's view of this device 117 * @dev: driver model's view of this device
@@ -162,6 +164,7 @@ struct usb_interface {
162 unsigned is_active:1; /* the interface is not suspended */ 164 unsigned is_active:1; /* the interface is not suspended */
163 unsigned sysfs_files_created:1; /* the sysfs attributes exist */ 165 unsigned sysfs_files_created:1; /* the sysfs attributes exist */
164 unsigned needs_remote_wakeup:1; /* driver requires remote wakeup */ 166 unsigned needs_remote_wakeup:1; /* driver requires remote wakeup */
167 unsigned needs_altsetting0:1; /* switch to altsetting 0 is pending */
165 unsigned needs_binding:1; /* needs delayed unbind/rebind */ 168 unsigned needs_binding:1; /* needs delayed unbind/rebind */
166 169
167 struct device dev; /* interface specific device info */ 170 struct device dev; /* interface specific device info */
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index e65a6bed4e3..303d93ffd6b 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -334,6 +334,8 @@ struct v4l2_pix_format {
334#define V4L2_PIX_FMT_SPCA508 v4l2_fourcc('S', '5', '0', '8') /* YUVY per line */ 334#define V4L2_PIX_FMT_SPCA508 v4l2_fourcc('S', '5', '0', '8') /* YUVY per line */
335#define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */ 335#define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */
336#define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */ 336#define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */
337#define V4L2_PIX_FMT_PJPG v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */
338#define V4L2_PIX_FMT_YVYU v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */
337 339
338/* 340/*
339 * F O R M A T E N U M E R A T I O N 341 * F O R M A T E N U M E R A T I O N
diff --git a/include/net/9p/9p.h b/include/net/9p/9p.h
index b3d3e27c629..c3626c0ba9d 100644
--- a/include/net/9p/9p.h
+++ b/include/net/9p/9p.h
@@ -596,4 +596,5 @@ int p9_idpool_check(int id, struct p9_idpool *p);
596int p9_error_init(void); 596int p9_error_init(void);
597int p9_errstr2errno(char *, int); 597int p9_errstr2errno(char *, int);
598int p9_trans_fd_init(void); 598int p9_trans_fd_init(void);
599void p9_trans_fd_exit(void);
599#endif /* NET_9P_H */ 600#endif /* NET_9P_H */
diff --git a/include/net/9p/transport.h b/include/net/9p/transport.h
index 0db3a4038dc..3ca737120a9 100644
--- a/include/net/9p/transport.h
+++ b/include/net/9p/transport.h
@@ -26,6 +26,8 @@
26#ifndef NET_9P_TRANSPORT_H 26#ifndef NET_9P_TRANSPORT_H
27#define NET_9P_TRANSPORT_H 27#define NET_9P_TRANSPORT_H
28 28
29#include <linux/module.h>
30
29/** 31/**
30 * enum p9_trans_status - different states of underlying transports 32 * enum p9_trans_status - different states of underlying transports
31 * @Connected: transport is connected and healthy 33 * @Connected: transport is connected and healthy
@@ -91,9 +93,12 @@ struct p9_trans_module {
91 int maxsize; /* max message size of transport */ 93 int maxsize; /* max message size of transport */
92 int def; /* this transport should be default */ 94 int def; /* this transport should be default */
93 struct p9_trans * (*create)(const char *, char *, int, unsigned char); 95 struct p9_trans * (*create)(const char *, char *, int, unsigned char);
96 struct module *owner;
94}; 97};
95 98
96void v9fs_register_trans(struct p9_trans_module *m); 99void v9fs_register_trans(struct p9_trans_module *m);
97struct p9_trans_module *v9fs_match_trans(const substring_t *name); 100void v9fs_unregister_trans(struct p9_trans_module *m);
98struct p9_trans_module *v9fs_default_trans(void); 101struct p9_trans_module *v9fs_get_trans_by_name(const substring_t *name);
102struct p9_trans_module *v9fs_get_default_trans(void);
103void v9fs_put_trans(struct p9_trans_module *m);
99#endif /* NET_9P_TRANSPORT_H */ 104#endif /* NET_9P_TRANSPORT_H */
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index cbf75109468..46a43b721dd 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -325,7 +325,8 @@ int hci_conn_del(struct hci_conn *conn);
325void hci_conn_hash_flush(struct hci_dev *hdev); 325void hci_conn_hash_flush(struct hci_dev *hdev);
326void hci_conn_check_pending(struct hci_dev *hdev); 326void hci_conn_check_pending(struct hci_dev *hdev);
327 327
328struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *src); 328struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8 auth_type);
329int hci_conn_check_link_mode(struct hci_conn *conn);
329int hci_conn_auth(struct hci_conn *conn); 330int hci_conn_auth(struct hci_conn *conn);
330int hci_conn_encrypt(struct hci_conn *conn); 331int hci_conn_encrypt(struct hci_conn *conn);
331int hci_conn_change_link_key(struct hci_conn *conn); 332int hci_conn_change_link_key(struct hci_conn *conn);
diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h
index 95c660c9719..91324908fcc 100644
--- a/include/net/inet_timewait_sock.h
+++ b/include/net/inet_timewait_sock.h
@@ -208,6 +208,9 @@ extern void inet_twsk_schedule(struct inet_timewait_sock *tw,
208extern void inet_twsk_deschedule(struct inet_timewait_sock *tw, 208extern void inet_twsk_deschedule(struct inet_timewait_sock *tw,
209 struct inet_timewait_death_row *twdr); 209 struct inet_timewait_death_row *twdr);
210 210
211extern void inet_twsk_purge(struct net *net, struct inet_hashinfo *hashinfo,
212 struct inet_timewait_death_row *twdr, int family);
213
211static inline 214static inline
212struct net *twsk_net(const struct inet_timewait_sock *twsk) 215struct net *twsk_net(const struct inet_timewait_sock *twsk)
213{ 216{
diff --git a/include/net/netlink.h b/include/net/netlink.h
index 18024b8cecb..208fe5a3854 100644
--- a/include/net/netlink.h
+++ b/include/net/netlink.h
@@ -702,7 +702,7 @@ static inline int nla_len(const struct nlattr *nla)
702 */ 702 */
703static inline int nla_ok(const struct nlattr *nla, int remaining) 703static inline int nla_ok(const struct nlattr *nla, int remaining)
704{ 704{
705 return remaining >= sizeof(*nla) && 705 return remaining >= (int) sizeof(*nla) &&
706 nla->nla_len >= sizeof(*nla) && 706 nla->nla_len >= sizeof(*nla) &&
707 nla->nla_len <= remaining; 707 nla->nla_len <= remaining;
708} 708}
diff --git a/include/net/pkt_sched.h b/include/net/pkt_sched.h
index 853fe83d9f3..b786a5b0925 100644
--- a/include/net/pkt_sched.h
+++ b/include/net/pkt_sched.h
@@ -78,6 +78,7 @@ extern struct Qdisc *fifo_create_dflt(struct Qdisc *sch, struct Qdisc_ops *ops,
78 78
79extern int register_qdisc(struct Qdisc_ops *qops); 79extern int register_qdisc(struct Qdisc_ops *qops);
80extern int unregister_qdisc(struct Qdisc_ops *qops); 80extern int unregister_qdisc(struct Qdisc_ops *qops);
81extern void qdisc_list_del(struct Qdisc *q);
81extern struct Qdisc *qdisc_lookup(struct net_device *dev, u32 handle); 82extern struct Qdisc *qdisc_lookup(struct net_device *dev, u32 handle);
82extern struct Qdisc *qdisc_lookup_class(struct net_device *dev, u32 handle); 83extern struct Qdisc *qdisc_lookup_class(struct net_device *dev, u32 handle);
83extern struct qdisc_rate_table *qdisc_get_rtab(struct tc_ratespec *r, 84extern struct qdisc_rate_table *qdisc_get_rtab(struct tc_ratespec *r,
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index 84d25f2e618..e5569625d2a 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -193,6 +193,11 @@ static inline struct Qdisc *qdisc_root(struct Qdisc *qdisc)
193 return qdisc->dev_queue->qdisc; 193 return qdisc->dev_queue->qdisc;
194} 194}
195 195
196static inline struct Qdisc *qdisc_root_sleeping(struct Qdisc *qdisc)
197{
198 return qdisc->dev_queue->qdisc_sleeping;
199}
200
196/* The qdisc root lock is a mechanism by which to top level 201/* The qdisc root lock is a mechanism by which to top level
197 * of a qdisc tree can be locked from any qdisc node in the 202 * of a qdisc tree can be locked from any qdisc node in the
198 * forest. This allows changing the configuration of some 203 * forest. This allows changing the configuration of some
@@ -212,6 +217,14 @@ static inline spinlock_t *qdisc_root_lock(struct Qdisc *qdisc)
212 return qdisc_lock(root); 217 return qdisc_lock(root);
213} 218}
214 219
220static inline spinlock_t *qdisc_root_sleeping_lock(struct Qdisc *qdisc)
221{
222 struct Qdisc *root = qdisc_root_sleeping(qdisc);
223
224 ASSERT_RTNL();
225 return qdisc_lock(root);
226}
227
215static inline struct net_device *qdisc_dev(struct Qdisc *qdisc) 228static inline struct net_device *qdisc_dev(struct Qdisc *qdisc)
216{ 229{
217 return qdisc->dev_queue->dev; 230 return qdisc->dev_queue->dev;
@@ -219,12 +232,12 @@ static inline struct net_device *qdisc_dev(struct Qdisc *qdisc)
219 232
220static inline void sch_tree_lock(struct Qdisc *q) 233static inline void sch_tree_lock(struct Qdisc *q)
221{ 234{
222 spin_lock_bh(qdisc_root_lock(q)); 235 spin_lock_bh(qdisc_root_sleeping_lock(q));
223} 236}
224 237
225static inline void sch_tree_unlock(struct Qdisc *q) 238static inline void sch_tree_unlock(struct Qdisc *q)
226{ 239{
227 spin_unlock_bh(qdisc_root_lock(q)); 240 spin_unlock_bh(qdisc_root_sleeping_lock(q));
228} 241}
229 242
230#define tcf_tree_lock(tp) sch_tree_lock((tp)->q) 243#define tcf_tree_lock(tp) sch_tree_lock((tp)->q)
diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
index 24811732bdb..029a54a0239 100644
--- a/include/net/sctp/sm.h
+++ b/include/net/sctp/sm.h
@@ -227,6 +227,9 @@ struct sctp_chunk *sctp_make_abort_violation(const struct sctp_association *,
227 const struct sctp_chunk *, 227 const struct sctp_chunk *,
228 const __u8 *, 228 const __u8 *,
229 const size_t ); 229 const size_t );
230struct sctp_chunk *sctp_make_violation_paramlen(const struct sctp_association *,
231 const struct sctp_chunk *,
232 struct sctp_paramhdr *);
230struct sctp_chunk *sctp_make_heartbeat(const struct sctp_association *, 233struct sctp_chunk *sctp_make_heartbeat(const struct sctp_association *,
231 const struct sctp_transport *, 234 const struct sctp_transport *,
232 const void *payload, 235 const void *payload,
diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h
index 5c40cc537d4..192f8716aa9 100644
--- a/include/scsi/scsi.h
+++ b/include/scsi/scsi.h
@@ -309,6 +309,20 @@ struct scsi_lun {
309}; 309};
310 310
311/* 311/*
312 * The Well Known LUNS (SAM-3) in our int representation of a LUN
313 */
314#define SCSI_W_LUN_BASE 0xc100
315#define SCSI_W_LUN_REPORT_LUNS (SCSI_W_LUN_BASE + 1)
316#define SCSI_W_LUN_ACCESS_CONTROL (SCSI_W_LUN_BASE + 2)
317#define SCSI_W_LUN_TARGET_LOG_PAGE (SCSI_W_LUN_BASE + 3)
318
319static inline int scsi_is_wlun(unsigned int lun)
320{
321 return (lun & 0xff00) == SCSI_W_LUN_BASE;
322}
323
324
325/*
312 * MESSAGE CODES 326 * MESSAGE CODES
313 */ 327 */
314 328
diff --git a/init/main.c b/init/main.c
index f6f7042331d..3820323c4c8 100644
--- a/init/main.c
+++ b/init/main.c
@@ -708,7 +708,7 @@ int do_one_initcall(initcall_t fn)
708 int result; 708 int result;
709 709
710 if (initcall_debug) { 710 if (initcall_debug) {
711 print_fn_descriptor_symbol("calling %s\n", fn); 711 printk("calling %pF\n", fn);
712 t0 = ktime_get(); 712 t0 = ktime_get();
713 } 713 }
714 714
@@ -718,8 +718,8 @@ int do_one_initcall(initcall_t fn)
718 t1 = ktime_get(); 718 t1 = ktime_get();
719 delta = ktime_sub(t1, t0); 719 delta = ktime_sub(t1, t0);
720 720
721 print_fn_descriptor_symbol("initcall %s", fn); 721 printk("initcall %pF returned %d after %Ld msecs\n",
722 printk(" returned %d after %Ld msecs\n", result, 722 fn, result,
723 (unsigned long long) delta.tv64 >> 20); 723 (unsigned long long) delta.tv64 >> 20);
724 } 724 }
725 725
@@ -737,8 +737,7 @@ int do_one_initcall(initcall_t fn)
737 local_irq_enable(); 737 local_irq_enable();
738 } 738 }
739 if (msgbuf[0]) { 739 if (msgbuf[0]) {
740 print_fn_descriptor_symbol(KERN_WARNING "initcall %s", fn); 740 printk("initcall %pF returned with %s\n", fn, msgbuf);
741 printk(" returned with %s\n", msgbuf);
742 } 741 }
743 742
744 return result; 743 return result;
diff --git a/kernel/auditsc.c b/kernel/auditsc.c
index 972f8e61d36..59cedfb040e 100644
--- a/kernel/auditsc.c
+++ b/kernel/auditsc.c
@@ -243,10 +243,11 @@ static inline int open_arg(int flags, int mask)
243 243
244static int audit_match_perm(struct audit_context *ctx, int mask) 244static int audit_match_perm(struct audit_context *ctx, int mask)
245{ 245{
246 unsigned n;
246 if (unlikely(!ctx)) 247 if (unlikely(!ctx))
247 return 0; 248 return 0;
248 249
249 unsigned n = ctx->major; 250 n = ctx->major;
250 switch (audit_classify_syscall(ctx->arch, n)) { 251 switch (audit_classify_syscall(ctx->arch, n)) {
251 case 0: /* native */ 252 case 0: /* native */
252 if ((mask & AUDIT_PERM_WRITE) && 253 if ((mask & AUDIT_PERM_WRITE) &&
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 13932abde15..a0123d75ec9 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -2738,14 +2738,15 @@ void cgroup_fork_callbacks(struct task_struct *child)
2738 */ 2738 */
2739void cgroup_mm_owner_callbacks(struct task_struct *old, struct task_struct *new) 2739void cgroup_mm_owner_callbacks(struct task_struct *old, struct task_struct *new)
2740{ 2740{
2741 struct cgroup *oldcgrp, *newcgrp; 2741 struct cgroup *oldcgrp, *newcgrp = NULL;
2742 2742
2743 if (need_mm_owner_callback) { 2743 if (need_mm_owner_callback) {
2744 int i; 2744 int i;
2745 for (i = 0; i < CGROUP_SUBSYS_COUNT; i++) { 2745 for (i = 0; i < CGROUP_SUBSYS_COUNT; i++) {
2746 struct cgroup_subsys *ss = subsys[i]; 2746 struct cgroup_subsys *ss = subsys[i];
2747 oldcgrp = task_cgroup(old, ss->subsys_id); 2747 oldcgrp = task_cgroup(old, ss->subsys_id);
2748 newcgrp = task_cgroup(new, ss->subsys_id); 2748 if (new)
2749 newcgrp = task_cgroup(new, ss->subsys_id);
2749 if (oldcgrp == newcgrp) 2750 if (oldcgrp == newcgrp)
2750 continue; 2751 continue;
2751 if (ss->mm_owner_changed) 2752 if (ss->mm_owner_changed)
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index d5ab79cf516..827cd9adccb 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -14,6 +14,8 @@
14 * 2003-10-22 Updates by Stephen Hemminger. 14 * 2003-10-22 Updates by Stephen Hemminger.
15 * 2004 May-July Rework by Paul Jackson. 15 * 2004 May-July Rework by Paul Jackson.
16 * 2006 Rework by Paul Menage to use generic cgroups 16 * 2006 Rework by Paul Menage to use generic cgroups
17 * 2008 Rework of the scheduler domains and CPU hotplug handling
18 * by Max Krasnyansky
17 * 19 *
18 * This file is subject to the terms and conditions of the GNU General Public 20 * This file is subject to the terms and conditions of the GNU General Public
19 * License. See the file COPYING in the main directory of the Linux 21 * License. See the file COPYING in the main directory of the Linux
@@ -236,9 +238,11 @@ static struct cpuset top_cpuset = {
236 238
237static DEFINE_MUTEX(callback_mutex); 239static DEFINE_MUTEX(callback_mutex);
238 240
239/* This is ugly, but preserves the userspace API for existing cpuset 241/*
242 * This is ugly, but preserves the userspace API for existing cpuset
240 * users. If someone tries to mount the "cpuset" filesystem, we 243 * users. If someone tries to mount the "cpuset" filesystem, we
241 * silently switch it to mount "cgroup" instead */ 244 * silently switch it to mount "cgroup" instead
245 */
242static int cpuset_get_sb(struct file_system_type *fs_type, 246static int cpuset_get_sb(struct file_system_type *fs_type,
243 int flags, const char *unused_dev_name, 247 int flags, const char *unused_dev_name,
244 void *data, struct vfsmount *mnt) 248 void *data, struct vfsmount *mnt)
@@ -473,10 +477,9 @@ static int validate_change(const struct cpuset *cur, const struct cpuset *trial)
473} 477}
474 478
475/* 479/*
476 * Helper routine for rebuild_sched_domains(). 480 * Helper routine for generate_sched_domains().
477 * Do cpusets a, b have overlapping cpus_allowed masks? 481 * Do cpusets a, b have overlapping cpus_allowed masks?
478 */ 482 */
479
480static int cpusets_overlap(struct cpuset *a, struct cpuset *b) 483static int cpusets_overlap(struct cpuset *a, struct cpuset *b)
481{ 484{
482 return cpus_intersects(a->cpus_allowed, b->cpus_allowed); 485 return cpus_intersects(a->cpus_allowed, b->cpus_allowed);
@@ -518,26 +521,15 @@ update_domain_attr_tree(struct sched_domain_attr *dattr, struct cpuset *c)
518} 521}
519 522
520/* 523/*
521 * rebuild_sched_domains() 524 * generate_sched_domains()
522 * 525 *
523 * This routine will be called to rebuild the scheduler's dynamic 526 * This function builds a partial partition of the systems CPUs
524 * sched domains: 527 * A 'partial partition' is a set of non-overlapping subsets whose
525 * - if the flag 'sched_load_balance' of any cpuset with non-empty 528 * union is a subset of that set.
526 * 'cpus' changes, 529 * The output of this function needs to be passed to kernel/sched.c
527 * - or if the 'cpus' allowed changes in any cpuset which has that 530 * partition_sched_domains() routine, which will rebuild the scheduler's
528 * flag enabled, 531 * load balancing domains (sched domains) as specified by that partial
529 * - or if the 'sched_relax_domain_level' of any cpuset which has 532 * partition.
530 * that flag enabled and with non-empty 'cpus' changes,
531 * - or if any cpuset with non-empty 'cpus' is removed,
532 * - or if a cpu gets offlined.
533 *
534 * This routine builds a partial partition of the systems CPUs
535 * (the set of non-overlappping cpumask_t's in the array 'part'
536 * below), and passes that partial partition to the kernel/sched.c
537 * partition_sched_domains() routine, which will rebuild the
538 * schedulers load balancing domains (sched domains) as specified
539 * by that partial partition. A 'partial partition' is a set of
540 * non-overlapping subsets whose union is a subset of that set.
541 * 533 *
542 * See "What is sched_load_balance" in Documentation/cpusets.txt 534 * See "What is sched_load_balance" in Documentation/cpusets.txt
543 * for a background explanation of this. 535 * for a background explanation of this.
@@ -547,13 +539,7 @@ update_domain_attr_tree(struct sched_domain_attr *dattr, struct cpuset *c)
547 * domains when operating in the severe memory shortage situations 539 * domains when operating in the severe memory shortage situations
548 * that could cause allocation failures below. 540 * that could cause allocation failures below.
549 * 541 *
550 * Call with cgroup_mutex held. May take callback_mutex during 542 * Must be called with cgroup_lock held.
551 * call due to the kfifo_alloc() and kmalloc() calls. May nest
552 * a call to the get_online_cpus()/put_online_cpus() pair.
553 * Must not be called holding callback_mutex, because we must not
554 * call get_online_cpus() while holding callback_mutex. Elsewhere
555 * the kernel nests callback_mutex inside get_online_cpus() calls.
556 * So the reverse nesting would risk an ABBA deadlock.
557 * 543 *
558 * The three key local variables below are: 544 * The three key local variables below are:
559 * q - a linked-list queue of cpuset pointers, used to implement a 545 * q - a linked-list queue of cpuset pointers, used to implement a
@@ -588,10 +574,10 @@ update_domain_attr_tree(struct sched_domain_attr *dattr, struct cpuset *c)
588 * element of the partition (one sched domain) to be passed to 574 * element of the partition (one sched domain) to be passed to
589 * partition_sched_domains(). 575 * partition_sched_domains().
590 */ 576 */
591 577static int generate_sched_domains(cpumask_t **domains,
592void rebuild_sched_domains(void) 578 struct sched_domain_attr **attributes)
593{ 579{
594 LIST_HEAD(q); /* queue of cpusets to be scanned*/ 580 LIST_HEAD(q); /* queue of cpusets to be scanned */
595 struct cpuset *cp; /* scans q */ 581 struct cpuset *cp; /* scans q */
596 struct cpuset **csa; /* array of all cpuset ptrs */ 582 struct cpuset **csa; /* array of all cpuset ptrs */
597 int csn; /* how many cpuset ptrs in csa so far */ 583 int csn; /* how many cpuset ptrs in csa so far */
@@ -601,23 +587,26 @@ void rebuild_sched_domains(void)
601 int ndoms; /* number of sched domains in result */ 587 int ndoms; /* number of sched domains in result */
602 int nslot; /* next empty doms[] cpumask_t slot */ 588 int nslot; /* next empty doms[] cpumask_t slot */
603 589
604 csa = NULL; 590 ndoms = 0;
605 doms = NULL; 591 doms = NULL;
606 dattr = NULL; 592 dattr = NULL;
593 csa = NULL;
607 594
608 /* Special case for the 99% of systems with one, full, sched domain */ 595 /* Special case for the 99% of systems with one, full, sched domain */
609 if (is_sched_load_balance(&top_cpuset)) { 596 if (is_sched_load_balance(&top_cpuset)) {
610 ndoms = 1;
611 doms = kmalloc(sizeof(cpumask_t), GFP_KERNEL); 597 doms = kmalloc(sizeof(cpumask_t), GFP_KERNEL);
612 if (!doms) 598 if (!doms)
613 goto rebuild; 599 goto done;
600
614 dattr = kmalloc(sizeof(struct sched_domain_attr), GFP_KERNEL); 601 dattr = kmalloc(sizeof(struct sched_domain_attr), GFP_KERNEL);
615 if (dattr) { 602 if (dattr) {
616 *dattr = SD_ATTR_INIT; 603 *dattr = SD_ATTR_INIT;
617 update_domain_attr_tree(dattr, &top_cpuset); 604 update_domain_attr_tree(dattr, &top_cpuset);
618 } 605 }
619 *doms = top_cpuset.cpus_allowed; 606 *doms = top_cpuset.cpus_allowed;
620 goto rebuild; 607
608 ndoms = 1;
609 goto done;
621 } 610 }
622 611
623 csa = kmalloc(number_of_cpusets * sizeof(cp), GFP_KERNEL); 612 csa = kmalloc(number_of_cpusets * sizeof(cp), GFP_KERNEL);
@@ -680,61 +669,141 @@ restart:
680 } 669 }
681 } 670 }
682 671
683 /* Convert <csn, csa> to <ndoms, doms> */ 672 /*
673 * Now we know how many domains to create.
674 * Convert <csn, csa> to <ndoms, doms> and populate cpu masks.
675 */
684 doms = kmalloc(ndoms * sizeof(cpumask_t), GFP_KERNEL); 676 doms = kmalloc(ndoms * sizeof(cpumask_t), GFP_KERNEL);
685 if (!doms) 677 if (!doms) {
686 goto rebuild; 678 ndoms = 0;
679 goto done;
680 }
681
682 /*
683 * The rest of the code, including the scheduler, can deal with
684 * dattr==NULL case. No need to abort if alloc fails.
685 */
687 dattr = kmalloc(ndoms * sizeof(struct sched_domain_attr), GFP_KERNEL); 686 dattr = kmalloc(ndoms * sizeof(struct sched_domain_attr), GFP_KERNEL);
688 687
689 for (nslot = 0, i = 0; i < csn; i++) { 688 for (nslot = 0, i = 0; i < csn; i++) {
690 struct cpuset *a = csa[i]; 689 struct cpuset *a = csa[i];
690 cpumask_t *dp;
691 int apn = a->pn; 691 int apn = a->pn;
692 692
693 if (apn >= 0) { 693 if (apn < 0) {
694 cpumask_t *dp = doms + nslot; 694 /* Skip completed partitions */
695 695 continue;
696 if (nslot == ndoms) { 696 }
697 static int warnings = 10; 697
698 if (warnings) { 698 dp = doms + nslot;
699 printk(KERN_WARNING 699
700 "rebuild_sched_domains confused:" 700 if (nslot == ndoms) {
701 " nslot %d, ndoms %d, csn %d, i %d," 701 static int warnings = 10;
702 " apn %d\n", 702 if (warnings) {
703 nslot, ndoms, csn, i, apn); 703 printk(KERN_WARNING
704 warnings--; 704 "rebuild_sched_domains confused:"
705 } 705 " nslot %d, ndoms %d, csn %d, i %d,"
706 continue; 706 " apn %d\n",
707 nslot, ndoms, csn, i, apn);
708 warnings--;
707 } 709 }
710 continue;
711 }
708 712
709 cpus_clear(*dp); 713 cpus_clear(*dp);
710 if (dattr) 714 if (dattr)
711 *(dattr + nslot) = SD_ATTR_INIT; 715 *(dattr + nslot) = SD_ATTR_INIT;
712 for (j = i; j < csn; j++) { 716 for (j = i; j < csn; j++) {
713 struct cpuset *b = csa[j]; 717 struct cpuset *b = csa[j];
714 718
715 if (apn == b->pn) { 719 if (apn == b->pn) {
716 cpus_or(*dp, *dp, b->cpus_allowed); 720 cpus_or(*dp, *dp, b->cpus_allowed);
717 b->pn = -1; 721 if (dattr)
718 if (dattr) 722 update_domain_attr_tree(dattr + nslot, b);
719 update_domain_attr_tree(dattr 723
720 + nslot, b); 724 /* Done with this partition */
721 } 725 b->pn = -1;
722 } 726 }
723 nslot++;
724 } 727 }
728 nslot++;
725 } 729 }
726 BUG_ON(nslot != ndoms); 730 BUG_ON(nslot != ndoms);
727 731
728rebuild: 732done:
729 /* Have scheduler rebuild sched domains */ 733 kfree(csa);
734
735 *domains = doms;
736 *attributes = dattr;
737 return ndoms;
738}
739
740/*
741 * Rebuild scheduler domains.
742 *
743 * Call with neither cgroup_mutex held nor within get_online_cpus().
744 * Takes both cgroup_mutex and get_online_cpus().
745 *
746 * Cannot be directly called from cpuset code handling changes
747 * to the cpuset pseudo-filesystem, because it cannot be called
748 * from code that already holds cgroup_mutex.
749 */
750static void do_rebuild_sched_domains(struct work_struct *unused)
751{
752 struct sched_domain_attr *attr;
753 cpumask_t *doms;
754 int ndoms;
755
730 get_online_cpus(); 756 get_online_cpus();
731 partition_sched_domains(ndoms, doms, dattr); 757
758 /* Generate domain masks and attrs */
759 cgroup_lock();
760 ndoms = generate_sched_domains(&doms, &attr);
761 cgroup_unlock();
762
763 /* Have scheduler rebuild the domains */
764 partition_sched_domains(ndoms, doms, attr);
765
732 put_online_cpus(); 766 put_online_cpus();
767}
733 768
734done: 769static DECLARE_WORK(rebuild_sched_domains_work, do_rebuild_sched_domains);
735 kfree(csa); 770
736 /* Don't kfree(doms) -- partition_sched_domains() does that. */ 771/*
737 /* Don't kfree(dattr) -- partition_sched_domains() does that. */ 772 * Rebuild scheduler domains, asynchronously via workqueue.
773 *
774 * If the flag 'sched_load_balance' of any cpuset with non-empty
775 * 'cpus' changes, or if the 'cpus' allowed changes in any cpuset
776 * which has that flag enabled, or if any cpuset with a non-empty
777 * 'cpus' is removed, then call this routine to rebuild the
778 * scheduler's dynamic sched domains.
779 *
780 * The rebuild_sched_domains() and partition_sched_domains()
781 * routines must nest cgroup_lock() inside get_online_cpus(),
782 * but such cpuset changes as these must nest that locking the
783 * other way, holding cgroup_lock() for much of the code.
784 *
785 * So in order to avoid an ABBA deadlock, the cpuset code handling
786 * these user changes delegates the actual sched domain rebuilding
787 * to a separate workqueue thread, which ends up processing the
788 * above do_rebuild_sched_domains() function.
789 */
790static void async_rebuild_sched_domains(void)
791{
792 schedule_work(&rebuild_sched_domains_work);
793}
794
795/*
796 * Accomplishes the same scheduler domain rebuild as the above
797 * async_rebuild_sched_domains(), however it directly calls the
798 * rebuild routine synchronously rather than calling it via an
799 * asynchronous work thread.
800 *
801 * This can only be called from code that is not holding
802 * cgroup_mutex (not nested in a cgroup_lock() call.)
803 */
804void rebuild_sched_domains(void)
805{
806 do_rebuild_sched_domains(NULL);
738} 807}
739 808
740/** 809/**
@@ -774,37 +843,25 @@ static void cpuset_change_cpumask(struct task_struct *tsk,
774/** 843/**
775 * update_tasks_cpumask - Update the cpumasks of tasks in the cpuset. 844 * update_tasks_cpumask - Update the cpumasks of tasks in the cpuset.
776 * @cs: the cpuset in which each task's cpus_allowed mask needs to be changed 845 * @cs: the cpuset in which each task's cpus_allowed mask needs to be changed
846 * @heap: if NULL, defer allocating heap memory to cgroup_scan_tasks()
777 * 847 *
778 * Called with cgroup_mutex held 848 * Called with cgroup_mutex held
779 * 849 *
780 * The cgroup_scan_tasks() function will scan all the tasks in a cgroup, 850 * The cgroup_scan_tasks() function will scan all the tasks in a cgroup,
781 * calling callback functions for each. 851 * calling callback functions for each.
782 * 852 *
783 * Return 0 if successful, -errno if not. 853 * No return value. It's guaranteed that cgroup_scan_tasks() always returns 0
854 * if @heap != NULL.
784 */ 855 */
785static int update_tasks_cpumask(struct cpuset *cs) 856static void update_tasks_cpumask(struct cpuset *cs, struct ptr_heap *heap)
786{ 857{
787 struct cgroup_scanner scan; 858 struct cgroup_scanner scan;
788 struct ptr_heap heap;
789 int retval;
790
791 /*
792 * cgroup_scan_tasks() will initialize heap->gt for us.
793 * heap_init() is still needed here for we should not change
794 * cs->cpus_allowed when heap_init() fails.
795 */
796 retval = heap_init(&heap, PAGE_SIZE, GFP_KERNEL, NULL);
797 if (retval)
798 return retval;
799 859
800 scan.cg = cs->css.cgroup; 860 scan.cg = cs->css.cgroup;
801 scan.test_task = cpuset_test_cpumask; 861 scan.test_task = cpuset_test_cpumask;
802 scan.process_task = cpuset_change_cpumask; 862 scan.process_task = cpuset_change_cpumask;
803 scan.heap = &heap; 863 scan.heap = heap;
804 retval = cgroup_scan_tasks(&scan); 864 cgroup_scan_tasks(&scan);
805
806 heap_free(&heap);
807 return retval;
808} 865}
809 866
810/** 867/**
@@ -814,6 +871,7 @@ static int update_tasks_cpumask(struct cpuset *cs)
814 */ 871 */
815static int update_cpumask(struct cpuset *cs, const char *buf) 872static int update_cpumask(struct cpuset *cs, const char *buf)
816{ 873{
874 struct ptr_heap heap;
817 struct cpuset trialcs; 875 struct cpuset trialcs;
818 int retval; 876 int retval;
819 int is_load_balanced; 877 int is_load_balanced;
@@ -848,6 +906,10 @@ static int update_cpumask(struct cpuset *cs, const char *buf)
848 if (cpus_equal(cs->cpus_allowed, trialcs.cpus_allowed)) 906 if (cpus_equal(cs->cpus_allowed, trialcs.cpus_allowed))
849 return 0; 907 return 0;
850 908
909 retval = heap_init(&heap, PAGE_SIZE, GFP_KERNEL, NULL);
910 if (retval)
911 return retval;
912
851 is_load_balanced = is_sched_load_balance(&trialcs); 913 is_load_balanced = is_sched_load_balance(&trialcs);
852 914
853 mutex_lock(&callback_mutex); 915 mutex_lock(&callback_mutex);
@@ -858,12 +920,12 @@ static int update_cpumask(struct cpuset *cs, const char *buf)
858 * Scan tasks in the cpuset, and update the cpumasks of any 920 * Scan tasks in the cpuset, and update the cpumasks of any
859 * that need an update. 921 * that need an update.
860 */ 922 */
861 retval = update_tasks_cpumask(cs); 923 update_tasks_cpumask(cs, &heap);
862 if (retval < 0) 924
863 return retval; 925 heap_free(&heap);
864 926
865 if (is_load_balanced) 927 if (is_load_balanced)
866 rebuild_sched_domains(); 928 async_rebuild_sched_domains();
867 return 0; 929 return 0;
868} 930}
869 931
@@ -1090,7 +1152,7 @@ static int update_relax_domain_level(struct cpuset *cs, s64 val)
1090 if (val != cs->relax_domain_level) { 1152 if (val != cs->relax_domain_level) {
1091 cs->relax_domain_level = val; 1153 cs->relax_domain_level = val;
1092 if (!cpus_empty(cs->cpus_allowed) && is_sched_load_balance(cs)) 1154 if (!cpus_empty(cs->cpus_allowed) && is_sched_load_balance(cs))
1093 rebuild_sched_domains(); 1155 async_rebuild_sched_domains();
1094 } 1156 }
1095 1157
1096 return 0; 1158 return 0;
@@ -1131,7 +1193,7 @@ static int update_flag(cpuset_flagbits_t bit, struct cpuset *cs,
1131 mutex_unlock(&callback_mutex); 1193 mutex_unlock(&callback_mutex);
1132 1194
1133 if (cpus_nonempty && balance_flag_changed) 1195 if (cpus_nonempty && balance_flag_changed)
1134 rebuild_sched_domains(); 1196 async_rebuild_sched_domains();
1135 1197
1136 return 0; 1198 return 0;
1137} 1199}
@@ -1492,6 +1554,9 @@ static u64 cpuset_read_u64(struct cgroup *cont, struct cftype *cft)
1492 default: 1554 default:
1493 BUG(); 1555 BUG();
1494 } 1556 }
1557
1558 /* Unreachable but makes gcc happy */
1559 return 0;
1495} 1560}
1496 1561
1497static s64 cpuset_read_s64(struct cgroup *cont, struct cftype *cft) 1562static s64 cpuset_read_s64(struct cgroup *cont, struct cftype *cft)
@@ -1504,6 +1569,9 @@ static s64 cpuset_read_s64(struct cgroup *cont, struct cftype *cft)
1504 default: 1569 default:
1505 BUG(); 1570 BUG();
1506 } 1571 }
1572
1573 /* Unrechable but makes gcc happy */
1574 return 0;
1507} 1575}
1508 1576
1509 1577
@@ -1692,15 +1760,9 @@ static struct cgroup_subsys_state *cpuset_create(
1692} 1760}
1693 1761
1694/* 1762/*
1695 * Locking note on the strange update_flag() call below:
1696 *
1697 * If the cpuset being removed has its flag 'sched_load_balance' 1763 * If the cpuset being removed has its flag 'sched_load_balance'
1698 * enabled, then simulate turning sched_load_balance off, which 1764 * enabled, then simulate turning sched_load_balance off, which
1699 * will call rebuild_sched_domains(). The get_online_cpus() 1765 * will call async_rebuild_sched_domains().
1700 * call in rebuild_sched_domains() must not be made while holding
1701 * callback_mutex. Elsewhere the kernel nests callback_mutex inside
1702 * get_online_cpus() calls. So the reverse nesting would risk an
1703 * ABBA deadlock.
1704 */ 1766 */
1705 1767
1706static void cpuset_destroy(struct cgroup_subsys *ss, struct cgroup *cont) 1768static void cpuset_destroy(struct cgroup_subsys *ss, struct cgroup *cont)
@@ -1719,7 +1781,7 @@ static void cpuset_destroy(struct cgroup_subsys *ss, struct cgroup *cont)
1719struct cgroup_subsys cpuset_subsys = { 1781struct cgroup_subsys cpuset_subsys = {
1720 .name = "cpuset", 1782 .name = "cpuset",
1721 .create = cpuset_create, 1783 .create = cpuset_create,
1722 .destroy = cpuset_destroy, 1784 .destroy = cpuset_destroy,
1723 .can_attach = cpuset_can_attach, 1785 .can_attach = cpuset_can_attach,
1724 .attach = cpuset_attach, 1786 .attach = cpuset_attach,
1725 .populate = cpuset_populate, 1787 .populate = cpuset_populate,
@@ -1811,7 +1873,7 @@ static void move_member_tasks_to_cpuset(struct cpuset *from, struct cpuset *to)
1811} 1873}
1812 1874
1813/* 1875/*
1814 * If common_cpu_mem_hotplug_unplug(), below, unplugs any CPUs 1876 * If CPU and/or memory hotplug handlers, below, unplug any CPUs
1815 * or memory nodes, we need to walk over the cpuset hierarchy, 1877 * or memory nodes, we need to walk over the cpuset hierarchy,
1816 * removing that CPU or node from all cpusets. If this removes the 1878 * removing that CPU or node from all cpusets. If this removes the
1817 * last CPU or node from a cpuset, then move the tasks in the empty 1879 * last CPU or node from a cpuset, then move the tasks in the empty
@@ -1896,42 +1958,13 @@ static void scan_for_empty_cpusets(const struct cpuset *root)
1896 nodes_empty(cp->mems_allowed)) 1958 nodes_empty(cp->mems_allowed))
1897 remove_tasks_in_empty_cpuset(cp); 1959 remove_tasks_in_empty_cpuset(cp);
1898 else { 1960 else {
1899 update_tasks_cpumask(cp); 1961 update_tasks_cpumask(cp, NULL);
1900 update_tasks_nodemask(cp, &oldmems); 1962 update_tasks_nodemask(cp, &oldmems);
1901 } 1963 }
1902 } 1964 }
1903} 1965}
1904 1966
1905/* 1967/*
1906 * The cpus_allowed and mems_allowed nodemasks in the top_cpuset track
1907 * cpu_online_map and node_states[N_HIGH_MEMORY]. Force the top cpuset to
1908 * track what's online after any CPU or memory node hotplug or unplug event.
1909 *
1910 * Since there are two callers of this routine, one for CPU hotplug
1911 * events and one for memory node hotplug events, we could have coded
1912 * two separate routines here. We code it as a single common routine
1913 * in order to minimize text size.
1914 */
1915
1916static void common_cpu_mem_hotplug_unplug(int rebuild_sd)
1917{
1918 cgroup_lock();
1919
1920 top_cpuset.cpus_allowed = cpu_online_map;
1921 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY];
1922 scan_for_empty_cpusets(&top_cpuset);
1923
1924 /*
1925 * Scheduler destroys domains on hotplug events.
1926 * Rebuild them based on the current settings.
1927 */
1928 if (rebuild_sd)
1929 rebuild_sched_domains();
1930
1931 cgroup_unlock();
1932}
1933
1934/*
1935 * The top_cpuset tracks what CPUs and Memory Nodes are online, 1968 * The top_cpuset tracks what CPUs and Memory Nodes are online,
1936 * period. This is necessary in order to make cpusets transparent 1969 * period. This is necessary in order to make cpusets transparent
1937 * (of no affect) on systems that are actively using CPU hotplug 1970 * (of no affect) on systems that are actively using CPU hotplug
@@ -1939,40 +1972,52 @@ static void common_cpu_mem_hotplug_unplug(int rebuild_sd)
1939 * 1972 *
1940 * This routine ensures that top_cpuset.cpus_allowed tracks 1973 * This routine ensures that top_cpuset.cpus_allowed tracks
1941 * cpu_online_map on each CPU hotplug (cpuhp) event. 1974 * cpu_online_map on each CPU hotplug (cpuhp) event.
1975 *
1976 * Called within get_online_cpus(). Needs to call cgroup_lock()
1977 * before calling generate_sched_domains().
1942 */ 1978 */
1943 1979static int cpuset_track_online_cpus(struct notifier_block *unused_nb,
1944static int cpuset_handle_cpuhp(struct notifier_block *unused_nb,
1945 unsigned long phase, void *unused_cpu) 1980 unsigned long phase, void *unused_cpu)
1946{ 1981{
1982 struct sched_domain_attr *attr;
1983 cpumask_t *doms;
1984 int ndoms;
1985
1947 switch (phase) { 1986 switch (phase) {
1948 case CPU_UP_CANCELED:
1949 case CPU_UP_CANCELED_FROZEN:
1950 case CPU_DOWN_FAILED:
1951 case CPU_DOWN_FAILED_FROZEN:
1952 case CPU_ONLINE: 1987 case CPU_ONLINE:
1953 case CPU_ONLINE_FROZEN: 1988 case CPU_ONLINE_FROZEN:
1954 case CPU_DEAD: 1989 case CPU_DEAD:
1955 case CPU_DEAD_FROZEN: 1990 case CPU_DEAD_FROZEN:
1956 common_cpu_mem_hotplug_unplug(1);
1957 break; 1991 break;
1992
1958 default: 1993 default:
1959 return NOTIFY_DONE; 1994 return NOTIFY_DONE;
1960 } 1995 }
1961 1996
1997 cgroup_lock();
1998 top_cpuset.cpus_allowed = cpu_online_map;
1999 scan_for_empty_cpusets(&top_cpuset);
2000 ndoms = generate_sched_domains(&doms, &attr);
2001 cgroup_unlock();
2002
2003 /* Have scheduler rebuild the domains */
2004 partition_sched_domains(ndoms, doms, attr);
2005
1962 return NOTIFY_OK; 2006 return NOTIFY_OK;
1963} 2007}
1964 2008
1965#ifdef CONFIG_MEMORY_HOTPLUG 2009#ifdef CONFIG_MEMORY_HOTPLUG
1966/* 2010/*
1967 * Keep top_cpuset.mems_allowed tracking node_states[N_HIGH_MEMORY]. 2011 * Keep top_cpuset.mems_allowed tracking node_states[N_HIGH_MEMORY].
1968 * Call this routine anytime after you change 2012 * Call this routine anytime after node_states[N_HIGH_MEMORY] changes.
1969 * node_states[N_HIGH_MEMORY]. 2013 * See also the previous routine cpuset_track_online_cpus().
1970 * See also the previous routine cpuset_handle_cpuhp().
1971 */ 2014 */
1972
1973void cpuset_track_online_nodes(void) 2015void cpuset_track_online_nodes(void)
1974{ 2016{
1975 common_cpu_mem_hotplug_unplug(0); 2017 cgroup_lock();
2018 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY];
2019 scan_for_empty_cpusets(&top_cpuset);
2020 cgroup_unlock();
1976} 2021}
1977#endif 2022#endif
1978 2023
@@ -1987,7 +2032,7 @@ void __init cpuset_init_smp(void)
1987 top_cpuset.cpus_allowed = cpu_online_map; 2032 top_cpuset.cpus_allowed = cpu_online_map;
1988 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY]; 2033 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY];
1989 2034
1990 hotcpu_notifier(cpuset_handle_cpuhp, 0); 2035 hotcpu_notifier(cpuset_track_online_cpus, 0);
1991} 2036}
1992 2037
1993/** 2038/**
diff --git a/kernel/exit.c b/kernel/exit.c
index 38ec4063014..85a83c83185 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -112,9 +112,9 @@ static void __exit_signal(struct task_struct *tsk)
112 * We won't ever get here for the group leader, since it 112 * We won't ever get here for the group leader, since it
113 * will have been the last reference on the signal_struct. 113 * will have been the last reference on the signal_struct.
114 */ 114 */
115 sig->utime = cputime_add(sig->utime, tsk->utime); 115 sig->utime = cputime_add(sig->utime, task_utime(tsk));
116 sig->stime = cputime_add(sig->stime, tsk->stime); 116 sig->stime = cputime_add(sig->stime, task_stime(tsk));
117 sig->gtime = cputime_add(sig->gtime, tsk->gtime); 117 sig->gtime = cputime_add(sig->gtime, task_gtime(tsk));
118 sig->min_flt += tsk->min_flt; 118 sig->min_flt += tsk->min_flt;
119 sig->maj_flt += tsk->maj_flt; 119 sig->maj_flt += tsk->maj_flt;
120 sig->nvcsw += tsk->nvcsw; 120 sig->nvcsw += tsk->nvcsw;
@@ -583,8 +583,6 @@ mm_need_new_owner(struct mm_struct *mm, struct task_struct *p)
583 * If there are other users of the mm and the owner (us) is exiting 583 * If there are other users of the mm and the owner (us) is exiting
584 * we need to find a new owner to take on the responsibility. 584 * we need to find a new owner to take on the responsibility.
585 */ 585 */
586 if (!mm)
587 return 0;
588 if (atomic_read(&mm->mm_users) <= 1) 586 if (atomic_read(&mm->mm_users) <= 1)
589 return 0; 587 return 0;
590 if (mm->owner != p) 588 if (mm->owner != p)
@@ -627,6 +625,16 @@ retry:
627 } while_each_thread(g, c); 625 } while_each_thread(g, c);
628 626
629 read_unlock(&tasklist_lock); 627 read_unlock(&tasklist_lock);
628 /*
629 * We found no owner yet mm_users > 1: this implies that we are
630 * most likely racing with swapoff (try_to_unuse()) or /proc or
631 * ptrace or page migration (get_task_mm()). Mark owner as NULL,
632 * so that subsystems can understand the callback and take action.
633 */
634 down_write(&mm->mmap_sem);
635 cgroup_mm_owner_callbacks(mm->owner, NULL);
636 mm->owner = NULL;
637 up_write(&mm->mmap_sem);
630 return; 638 return;
631 639
632assign_new_owner: 640assign_new_owner:
@@ -831,26 +839,50 @@ static void reparent_thread(struct task_struct *p, struct task_struct *father)
831 * the child reaper process (ie "init") in our pid 839 * the child reaper process (ie "init") in our pid
832 * space. 840 * space.
833 */ 841 */
842static struct task_struct *find_new_reaper(struct task_struct *father)
843{
844 struct pid_namespace *pid_ns = task_active_pid_ns(father);
845 struct task_struct *thread;
846
847 thread = father;
848 while_each_thread(father, thread) {
849 if (thread->flags & PF_EXITING)
850 continue;
851 if (unlikely(pid_ns->child_reaper == father))
852 pid_ns->child_reaper = thread;
853 return thread;
854 }
855
856 if (unlikely(pid_ns->child_reaper == father)) {
857 write_unlock_irq(&tasklist_lock);
858 if (unlikely(pid_ns == &init_pid_ns))
859 panic("Attempted to kill init!");
860
861 zap_pid_ns_processes(pid_ns);
862 write_lock_irq(&tasklist_lock);
863 /*
864 * We can not clear ->child_reaper or leave it alone.
865 * There may by stealth EXIT_DEAD tasks on ->children,
866 * forget_original_parent() must move them somewhere.
867 */
868 pid_ns->child_reaper = init_pid_ns.child_reaper;
869 }
870
871 return pid_ns->child_reaper;
872}
873
834static void forget_original_parent(struct task_struct *father) 874static void forget_original_parent(struct task_struct *father)
835{ 875{
836 struct task_struct *p, *n, *reaper = father; 876 struct task_struct *p, *n, *reaper;
837 LIST_HEAD(ptrace_dead); 877 LIST_HEAD(ptrace_dead);
838 878
839 write_lock_irq(&tasklist_lock); 879 write_lock_irq(&tasklist_lock);
840 880 reaper = find_new_reaper(father);
841 /* 881 /*
842 * First clean up ptrace if we were using it. 882 * First clean up ptrace if we were using it.
843 */ 883 */
844 ptrace_exit(father, &ptrace_dead); 884 ptrace_exit(father, &ptrace_dead);
845 885
846 do {
847 reaper = next_thread(reaper);
848 if (reaper == father) {
849 reaper = task_child_reaper(father);
850 break;
851 }
852 } while (reaper->flags & PF_EXITING);
853
854 list_for_each_entry_safe(p, n, &father->children, sibling) { 886 list_for_each_entry_safe(p, n, &father->children, sibling) {
855 p->real_parent = reaper; 887 p->real_parent = reaper;
856 if (p->parent == father) { 888 if (p->parent == father) {
@@ -918,8 +950,8 @@ static void exit_notify(struct task_struct *tsk, int group_dead)
918 950
919 /* mt-exec, de_thread() is waiting for us */ 951 /* mt-exec, de_thread() is waiting for us */
920 if (thread_group_leader(tsk) && 952 if (thread_group_leader(tsk) &&
921 tsk->signal->notify_count < 0 && 953 tsk->signal->group_exit_task &&
922 tsk->signal->group_exit_task) 954 tsk->signal->notify_count < 0)
923 wake_up_process(tsk->signal->group_exit_task); 955 wake_up_process(tsk->signal->group_exit_task);
924 956
925 write_unlock_irq(&tasklist_lock); 957 write_unlock_irq(&tasklist_lock);
@@ -959,39 +991,6 @@ static void check_stack_usage(void)
959static inline void check_stack_usage(void) {} 991static inline void check_stack_usage(void) {}
960#endif 992#endif
961 993
962static inline void exit_child_reaper(struct task_struct *tsk)
963{
964 if (likely(tsk->group_leader != task_child_reaper(tsk)))
965 return;
966
967 if (tsk->nsproxy->pid_ns == &init_pid_ns)
968 panic("Attempted to kill init!");
969
970 /*
971 * @tsk is the last thread in the 'cgroup-init' and is exiting.
972 * Terminate all remaining processes in the namespace and reap them
973 * before exiting @tsk.
974 *
975 * Note that @tsk (last thread of cgroup-init) may not necessarily
976 * be the child-reaper (i.e main thread of cgroup-init) of the
977 * namespace i.e the child_reaper may have already exited.
978 *
979 * Even after a child_reaper exits, we let it inherit orphaned children,
980 * because, pid_ns->child_reaper remains valid as long as there is
981 * at least one living sub-thread in the cgroup init.
982
983 * This living sub-thread of the cgroup-init will be notified when
984 * a child inherited by the 'child-reaper' exits (do_notify_parent()
985 * uses __group_send_sig_info()). Further, when reaping child processes,
986 * do_wait() iterates over children of all living sub threads.
987
988 * i.e even though 'child_reaper' thread is listed as the parent of the
989 * orphaned children, any living sub-thread in the cgroup-init can
990 * perform the role of the child_reaper.
991 */
992 zap_pid_ns_processes(tsk->nsproxy->pid_ns);
993}
994
995NORET_TYPE void do_exit(long code) 994NORET_TYPE void do_exit(long code)
996{ 995{
997 struct task_struct *tsk = current; 996 struct task_struct *tsk = current;
@@ -1051,7 +1050,6 @@ NORET_TYPE void do_exit(long code)
1051 } 1050 }
1052 group_dead = atomic_dec_and_test(&tsk->signal->live); 1051 group_dead = atomic_dec_and_test(&tsk->signal->live);
1053 if (group_dead) { 1052 if (group_dead) {
1054 exit_child_reaper(tsk);
1055 hrtimer_cancel(&tsk->signal->real_timer); 1053 hrtimer_cancel(&tsk->signal->real_timer);
1056 exit_itimers(tsk->signal); 1054 exit_itimers(tsk->signal);
1057 } 1055 }
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index b8e4dce80a7..cdec83e722f 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -672,13 +672,14 @@ static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer,
672 */ 672 */
673 BUG_ON(timer->function(timer) != HRTIMER_NORESTART); 673 BUG_ON(timer->function(timer) != HRTIMER_NORESTART);
674 return 1; 674 return 1;
675 case HRTIMER_CB_IRQSAFE_NO_SOFTIRQ: 675 case HRTIMER_CB_IRQSAFE_PERCPU:
676 case HRTIMER_CB_IRQSAFE_UNLOCKED:
676 /* 677 /*
677 * This is solely for the sched tick emulation with 678 * This is solely for the sched tick emulation with
678 * dynamic tick support to ensure that we do not 679 * dynamic tick support to ensure that we do not
679 * restart the tick right on the edge and end up with 680 * restart the tick right on the edge and end up with
680 * the tick timer in the softirq ! The calling site 681 * the tick timer in the softirq ! The calling site
681 * takes care of this. 682 * takes care of this. Also used for hrtimer sleeper !
682 */ 683 */
683 debug_hrtimer_deactivate(timer); 684 debug_hrtimer_deactivate(timer);
684 return 1; 685 return 1;
@@ -1245,7 +1246,8 @@ static void __run_hrtimer(struct hrtimer *timer)
1245 timer_stats_account_hrtimer(timer); 1246 timer_stats_account_hrtimer(timer);
1246 1247
1247 fn = timer->function; 1248 fn = timer->function;
1248 if (timer->cb_mode == HRTIMER_CB_IRQSAFE_NO_SOFTIRQ) { 1249 if (timer->cb_mode == HRTIMER_CB_IRQSAFE_PERCPU ||
1250 timer->cb_mode == HRTIMER_CB_IRQSAFE_UNLOCKED) {
1249 /* 1251 /*
1250 * Used for scheduler timers, avoid lock inversion with 1252 * Used for scheduler timers, avoid lock inversion with
1251 * rq->lock and tasklist_lock. 1253 * rq->lock and tasklist_lock.
@@ -1452,7 +1454,7 @@ void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task)
1452 sl->timer.function = hrtimer_wakeup; 1454 sl->timer.function = hrtimer_wakeup;
1453 sl->task = task; 1455 sl->task = task;
1454#ifdef CONFIG_HIGH_RES_TIMERS 1456#ifdef CONFIG_HIGH_RES_TIMERS
1455 sl->timer.cb_mode = HRTIMER_CB_IRQSAFE_NO_SOFTIRQ; 1457 sl->timer.cb_mode = HRTIMER_CB_IRQSAFE_UNLOCKED;
1456#endif 1458#endif
1457} 1459}
1458 1460
@@ -1591,29 +1593,95 @@ static void __cpuinit init_hrtimers_cpu(int cpu)
1591 1593
1592#ifdef CONFIG_HOTPLUG_CPU 1594#ifdef CONFIG_HOTPLUG_CPU
1593 1595
1594static void migrate_hrtimer_list(struct hrtimer_clock_base *old_base, 1596static int migrate_hrtimer_list(struct hrtimer_clock_base *old_base,
1595 struct hrtimer_clock_base *new_base) 1597 struct hrtimer_clock_base *new_base, int dcpu)
1596{ 1598{
1597 struct hrtimer *timer; 1599 struct hrtimer *timer;
1598 struct rb_node *node; 1600 struct rb_node *node;
1601 int raise = 0;
1599 1602
1600 while ((node = rb_first(&old_base->active))) { 1603 while ((node = rb_first(&old_base->active))) {
1601 timer = rb_entry(node, struct hrtimer, node); 1604 timer = rb_entry(node, struct hrtimer, node);
1602 BUG_ON(hrtimer_callback_running(timer)); 1605 BUG_ON(hrtimer_callback_running(timer));
1603 debug_hrtimer_deactivate(timer); 1606 debug_hrtimer_deactivate(timer);
1604 __remove_hrtimer(timer, old_base, HRTIMER_STATE_INACTIVE, 0); 1607
1608 /*
1609 * Should not happen. Per CPU timers should be
1610 * canceled _before_ the migration code is called
1611 */
1612 if (timer->cb_mode == HRTIMER_CB_IRQSAFE_PERCPU) {
1613 __remove_hrtimer(timer, old_base,
1614 HRTIMER_STATE_INACTIVE, 0);
1615 WARN(1, "hrtimer (%p %p)active but cpu %d dead\n",
1616 timer, timer->function, dcpu);
1617 continue;
1618 }
1619
1620 /*
1621 * Mark it as STATE_MIGRATE not INACTIVE otherwise the
1622 * timer could be seen as !active and just vanish away
1623 * under us on another CPU
1624 */
1625 __remove_hrtimer(timer, old_base, HRTIMER_STATE_MIGRATE, 0);
1605 timer->base = new_base; 1626 timer->base = new_base;
1606 /* 1627 /*
1607 * Enqueue the timer. Allow reprogramming of the event device 1628 * Enqueue the timer. Allow reprogramming of the event device
1608 */ 1629 */
1609 enqueue_hrtimer(timer, new_base, 1); 1630 enqueue_hrtimer(timer, new_base, 1);
1631
1632#ifdef CONFIG_HIGH_RES_TIMERS
1633 /*
1634 * Happens with high res enabled when the timer was
1635 * already expired and the callback mode is
1636 * HRTIMER_CB_IRQSAFE_UNLOCKED (hrtimer_sleeper). The
1637 * enqueue code does not move them to the soft irq
1638 * pending list for performance/latency reasons, but
1639 * in the migration state, we need to do that
1640 * otherwise we end up with a stale timer.
1641 */
1642 if (timer->state == HRTIMER_STATE_MIGRATE) {
1643 timer->state = HRTIMER_STATE_PENDING;
1644 list_add_tail(&timer->cb_entry,
1645 &new_base->cpu_base->cb_pending);
1646 raise = 1;
1647 }
1648#endif
1649 /* Clear the migration state bit */
1650 timer->state &= ~HRTIMER_STATE_MIGRATE;
1651 }
1652 return raise;
1653}
1654
1655#ifdef CONFIG_HIGH_RES_TIMERS
1656static int migrate_hrtimer_pending(struct hrtimer_cpu_base *old_base,
1657 struct hrtimer_cpu_base *new_base)
1658{
1659 struct hrtimer *timer;
1660 int raise = 0;
1661
1662 while (!list_empty(&old_base->cb_pending)) {
1663 timer = list_entry(old_base->cb_pending.next,
1664 struct hrtimer, cb_entry);
1665
1666 __remove_hrtimer(timer, timer->base, HRTIMER_STATE_PENDING, 0);
1667 timer->base = &new_base->clock_base[timer->base->index];
1668 list_add_tail(&timer->cb_entry, &new_base->cb_pending);
1669 raise = 1;
1610 } 1670 }
1671 return raise;
1672}
1673#else
1674static int migrate_hrtimer_pending(struct hrtimer_cpu_base *old_base,
1675 struct hrtimer_cpu_base *new_base)
1676{
1677 return 0;
1611} 1678}
1679#endif
1612 1680
1613static void migrate_hrtimers(int cpu) 1681static void migrate_hrtimers(int cpu)
1614{ 1682{
1615 struct hrtimer_cpu_base *old_base, *new_base; 1683 struct hrtimer_cpu_base *old_base, *new_base;
1616 int i; 1684 int i, raise = 0;
1617 1685
1618 BUG_ON(cpu_online(cpu)); 1686 BUG_ON(cpu_online(cpu));
1619 old_base = &per_cpu(hrtimer_bases, cpu); 1687 old_base = &per_cpu(hrtimer_bases, cpu);
@@ -1626,14 +1694,21 @@ static void migrate_hrtimers(int cpu)
1626 spin_lock_nested(&old_base->lock, SINGLE_DEPTH_NESTING); 1694 spin_lock_nested(&old_base->lock, SINGLE_DEPTH_NESTING);
1627 1695
1628 for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) { 1696 for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) {
1629 migrate_hrtimer_list(&old_base->clock_base[i], 1697 if (migrate_hrtimer_list(&old_base->clock_base[i],
1630 &new_base->clock_base[i]); 1698 &new_base->clock_base[i], cpu))
1699 raise = 1;
1631 } 1700 }
1632 1701
1702 if (migrate_hrtimer_pending(old_base, new_base))
1703 raise = 1;
1704
1633 spin_unlock(&old_base->lock); 1705 spin_unlock(&old_base->lock);
1634 spin_unlock(&new_base->lock); 1706 spin_unlock(&new_base->lock);
1635 local_irq_enable(); 1707 local_irq_enable();
1636 put_cpu_var(hrtimer_bases); 1708 put_cpu_var(hrtimer_bases);
1709
1710 if (raise)
1711 hrtimer_raise_softirq();
1637} 1712}
1638#endif /* CONFIG_HOTPLUG_CPU */ 1713#endif /* CONFIG_HOTPLUG_CPU */
1639 1714
diff --git a/kernel/kexec.c b/kernel/kexec.c
index 59f3f0df35d..aef265325cd 100644
--- a/kernel/kexec.c
+++ b/kernel/kexec.c
@@ -753,8 +753,14 @@ static struct page *kimage_alloc_page(struct kimage *image,
753 *old = addr | (*old & ~PAGE_MASK); 753 *old = addr | (*old & ~PAGE_MASK);
754 754
755 /* The old page I have found cannot be a 755 /* The old page I have found cannot be a
756 * destination page, so return it. 756 * destination page, so return it if it's
757 * gfp_flags honor the ones passed in.
757 */ 758 */
759 if (!(gfp_mask & __GFP_HIGHMEM) &&
760 PageHighMem(old_page)) {
761 kimage_free_pages(old_page);
762 continue;
763 }
758 addr = old_addr; 764 addr = old_addr;
759 page = old_page; 765 page = old_page;
760 break; 766 break;
diff --git a/kernel/kgdb.c b/kernel/kgdb.c
index eaa21fc9ad1..25d955dbb98 100644
--- a/kernel/kgdb.c
+++ b/kernel/kgdb.c
@@ -488,7 +488,7 @@ static int write_mem_msg(int binary)
488 if (err) 488 if (err)
489 return err; 489 return err;
490 if (CACHE_FLUSH_IS_SAFE) 490 if (CACHE_FLUSH_IS_SAFE)
491 flush_icache_range(addr, addr + length + 1); 491 flush_icache_range(addr, addr + length);
492 return 0; 492 return 0;
493 } 493 }
494 494
@@ -1462,7 +1462,7 @@ acquirelock:
1462 * Get the passive CPU lock which will hold all the non-primary 1462 * Get the passive CPU lock which will hold all the non-primary
1463 * CPU in a spin state while the debugger is active 1463 * CPU in a spin state while the debugger is active
1464 */ 1464 */
1465 if (!kgdb_single_step || !kgdb_contthread) { 1465 if (!kgdb_single_step) {
1466 for (i = 0; i < NR_CPUS; i++) 1466 for (i = 0; i < NR_CPUS; i++)
1467 atomic_set(&passive_cpu_wait[i], 1); 1467 atomic_set(&passive_cpu_wait[i], 1);
1468 } 1468 }
@@ -1475,7 +1475,7 @@ acquirelock:
1475 1475
1476#ifdef CONFIG_SMP 1476#ifdef CONFIG_SMP
1477 /* Signal the other CPUs to enter kgdb_wait() */ 1477 /* Signal the other CPUs to enter kgdb_wait() */
1478 if ((!kgdb_single_step || !kgdb_contthread) && kgdb_do_roundup) 1478 if ((!kgdb_single_step) && kgdb_do_roundup)
1479 kgdb_roundup_cpus(flags); 1479 kgdb_roundup_cpus(flags);
1480#endif 1480#endif
1481 1481
@@ -1494,7 +1494,7 @@ acquirelock:
1494 kgdb_post_primary_code(ks->linux_regs, ks->ex_vector, ks->err_code); 1494 kgdb_post_primary_code(ks->linux_regs, ks->ex_vector, ks->err_code);
1495 kgdb_deactivate_sw_breakpoints(); 1495 kgdb_deactivate_sw_breakpoints();
1496 kgdb_single_step = 0; 1496 kgdb_single_step = 0;
1497 kgdb_contthread = NULL; 1497 kgdb_contthread = current;
1498 exception_level = 0; 1498 exception_level = 0;
1499 1499
1500 /* Talk to debugger with gdbserial protocol */ 1500 /* Talk to debugger with gdbserial protocol */
@@ -1508,7 +1508,7 @@ acquirelock:
1508 kgdb_info[ks->cpu].task = NULL; 1508 kgdb_info[ks->cpu].task = NULL;
1509 atomic_set(&cpu_in_kgdb[ks->cpu], 0); 1509 atomic_set(&cpu_in_kgdb[ks->cpu], 0);
1510 1510
1511 if (!kgdb_single_step || !kgdb_contthread) { 1511 if (!kgdb_single_step) {
1512 for (i = NR_CPUS-1; i >= 0; i--) 1512 for (i = NR_CPUS-1; i >= 0; i--)
1513 atomic_set(&passive_cpu_wait[i], 0); 1513 atomic_set(&passive_cpu_wait[i], 0);
1514 /* 1514 /*
diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index 3bfb1877a00..dbda475b13b 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -875,11 +875,11 @@ static int add_lock_to_list(struct lock_class *class, struct lock_class *this,
875 if (!entry) 875 if (!entry)
876 return 0; 876 return 0;
877 877
878 entry->class = this;
879 entry->distance = distance;
880 if (!save_trace(&entry->trace)) 878 if (!save_trace(&entry->trace))
881 return 0; 879 return 0;
882 880
881 entry->class = this;
882 entry->distance = distance;
883 /* 883 /*
884 * Since we never remove from the dependency list, the list can 884 * Since we never remove from the dependency list, the list can
885 * be walked lockless by other CPUs, it's only allocation 885 * be walked lockless by other CPUs, it's only allocation
@@ -3029,7 +3029,7 @@ found_it:
3029 3029
3030 stats = get_lock_stats(hlock_class(hlock)); 3030 stats = get_lock_stats(hlock_class(hlock));
3031 if (point < ARRAY_SIZE(stats->contention_point)) 3031 if (point < ARRAY_SIZE(stats->contention_point))
3032 stats->contention_point[i]++; 3032 stats->contention_point[point]++;
3033 if (lock->cpu != smp_processor_id()) 3033 if (lock->cpu != smp_processor_id())
3034 stats->bounces[bounce_contended + !!hlock->read]++; 3034 stats->bounces[bounce_contended + !!hlock->read]++;
3035 put_lock_stats(stats); 3035 put_lock_stats(stats);
diff --git a/kernel/lockdep_proc.c b/kernel/lockdep_proc.c
index 4b194d34d77..20dbcbf9c7d 100644
--- a/kernel/lockdep_proc.c
+++ b/kernel/lockdep_proc.c
@@ -472,8 +472,9 @@ static void snprint_time(char *buf, size_t bufsiz, s64 nr)
472{ 472{
473 unsigned long rem; 473 unsigned long rem;
474 474
475 nr += 5; /* for display rounding */
475 rem = do_div(nr, 1000); /* XXX: do_div_signed */ 476 rem = do_div(nr, 1000); /* XXX: do_div_signed */
476 snprintf(buf, bufsiz, "%lld.%02d", (long long)nr, ((int)rem+5)/10); 477 snprintf(buf, bufsiz, "%lld.%02d", (long long)nr, (int)rem/10);
477} 478}
478 479
479static void seq_time(struct seq_file *m, s64 time) 480static void seq_time(struct seq_file *m, s64 time)
diff --git a/kernel/module.c b/kernel/module.c
index 08864d257eb..9db11911e04 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -1799,7 +1799,7 @@ static void *module_alloc_update_bounds(unsigned long size)
1799 1799
1800/* Allocate and load the module: note that size of section 0 is always 1800/* Allocate and load the module: note that size of section 0 is always
1801 zero, and we rely on this for optional sections. */ 1801 zero, and we rely on this for optional sections. */
1802static struct module *load_module(void __user *umod, 1802static noinline struct module *load_module(void __user *umod,
1803 unsigned long len, 1803 unsigned long len,
1804 const char __user *uargs) 1804 const char __user *uargs)
1805{ 1805{
diff --git a/kernel/nsproxy.c b/kernel/nsproxy.c
index 21575fc46d0..1d3ef29a258 100644
--- a/kernel/nsproxy.c
+++ b/kernel/nsproxy.c
@@ -14,7 +14,6 @@
14 */ 14 */
15 15
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/version.h>
18#include <linux/nsproxy.h> 17#include <linux/nsproxy.h>
19#include <linux/init_task.h> 18#include <linux/init_task.h>
20#include <linux/mnt_namespace.h> 19#include <linux/mnt_namespace.h>
diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
index ea567b78d1a..fab8ea86fac 100644
--- a/kernel/pid_namespace.c
+++ b/kernel/pid_namespace.c
@@ -179,9 +179,6 @@ void zap_pid_ns_processes(struct pid_namespace *pid_ns)
179 rc = sys_wait4(-1, NULL, __WALL, NULL); 179 rc = sys_wait4(-1, NULL, __WALL, NULL);
180 } while (rc != -ECHILD); 180 } while (rc != -ECHILD);
181 181
182
183 /* Child reaper for the pid namespace is going away */
184 pid_ns->child_reaper = NULL;
185 acct_exit_ns(pid_ns); 182 acct_exit_ns(pid_ns);
186 return; 183 return;
187} 184}
diff --git a/kernel/pm_qos_params.c b/kernel/pm_qos_params.c
index da9c2dda6a4..dfdec524d1b 100644
--- a/kernel/pm_qos_params.c
+++ b/kernel/pm_qos_params.c
@@ -43,7 +43,7 @@
43#include <linux/uaccess.h> 43#include <linux/uaccess.h>
44 44
45/* 45/*
46 * locking rule: all changes to target_value or requirements or notifiers lists 46 * locking rule: all changes to requirements or notifiers lists
47 * or pm_qos_object list and pm_qos_objects need to happen with pm_qos_lock 47 * or pm_qos_object list and pm_qos_objects need to happen with pm_qos_lock
48 * held, taken with _irqsave. One lock to rule them all 48 * held, taken with _irqsave. One lock to rule them all
49 */ 49 */
@@ -66,7 +66,7 @@ struct pm_qos_object {
66 struct miscdevice pm_qos_power_miscdev; 66 struct miscdevice pm_qos_power_miscdev;
67 char *name; 67 char *name;
68 s32 default_value; 68 s32 default_value;
69 s32 target_value; 69 atomic_t target_value;
70 s32 (*comparitor)(s32, s32); 70 s32 (*comparitor)(s32, s32);
71}; 71};
72 72
@@ -77,7 +77,7 @@ static struct pm_qos_object cpu_dma_pm_qos = {
77 .notifiers = &cpu_dma_lat_notifier, 77 .notifiers = &cpu_dma_lat_notifier,
78 .name = "cpu_dma_latency", 78 .name = "cpu_dma_latency",
79 .default_value = 2000 * USEC_PER_SEC, 79 .default_value = 2000 * USEC_PER_SEC,
80 .target_value = 2000 * USEC_PER_SEC, 80 .target_value = ATOMIC_INIT(2000 * USEC_PER_SEC),
81 .comparitor = min_compare 81 .comparitor = min_compare
82}; 82};
83 83
@@ -87,7 +87,7 @@ static struct pm_qos_object network_lat_pm_qos = {
87 .notifiers = &network_lat_notifier, 87 .notifiers = &network_lat_notifier,
88 .name = "network_latency", 88 .name = "network_latency",
89 .default_value = 2000 * USEC_PER_SEC, 89 .default_value = 2000 * USEC_PER_SEC,
90 .target_value = 2000 * USEC_PER_SEC, 90 .target_value = ATOMIC_INIT(2000 * USEC_PER_SEC),
91 .comparitor = min_compare 91 .comparitor = min_compare
92}; 92};
93 93
@@ -99,7 +99,7 @@ static struct pm_qos_object network_throughput_pm_qos = {
99 .notifiers = &network_throughput_notifier, 99 .notifiers = &network_throughput_notifier,
100 .name = "network_throughput", 100 .name = "network_throughput",
101 .default_value = 0, 101 .default_value = 0,
102 .target_value = 0, 102 .target_value = ATOMIC_INIT(0),
103 .comparitor = max_compare 103 .comparitor = max_compare
104}; 104};
105 105
@@ -150,11 +150,11 @@ static void update_target(int target)
150 extreme_value = pm_qos_array[target]->comparitor( 150 extreme_value = pm_qos_array[target]->comparitor(
151 extreme_value, node->value); 151 extreme_value, node->value);
152 } 152 }
153 if (pm_qos_array[target]->target_value != extreme_value) { 153 if (atomic_read(&pm_qos_array[target]->target_value) != extreme_value) {
154 call_notifier = 1; 154 call_notifier = 1;
155 pm_qos_array[target]->target_value = extreme_value; 155 atomic_set(&pm_qos_array[target]->target_value, extreme_value);
156 pr_debug(KERN_ERR "new target for qos %d is %d\n", target, 156 pr_debug(KERN_ERR "new target for qos %d is %d\n", target,
157 pm_qos_array[target]->target_value); 157 atomic_read(&pm_qos_array[target]->target_value));
158 } 158 }
159 spin_unlock_irqrestore(&pm_qos_lock, flags); 159 spin_unlock_irqrestore(&pm_qos_lock, flags);
160 160
@@ -193,14 +193,7 @@ static int find_pm_qos_object_by_minor(int minor)
193 */ 193 */
194int pm_qos_requirement(int pm_qos_class) 194int pm_qos_requirement(int pm_qos_class)
195{ 195{
196 int ret_val; 196 return atomic_read(&pm_qos_array[pm_qos_class]->target_value);
197 unsigned long flags;
198
199 spin_lock_irqsave(&pm_qos_lock, flags);
200 ret_val = pm_qos_array[pm_qos_class]->target_value;
201 spin_unlock_irqrestore(&pm_qos_lock, flags);
202
203 return ret_val;
204} 197}
205EXPORT_SYMBOL_GPL(pm_qos_requirement); 198EXPORT_SYMBOL_GPL(pm_qos_requirement);
206 199
diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c
index e36d5798cbf..5131e547116 100644
--- a/kernel/posix-timers.c
+++ b/kernel/posix-timers.c
@@ -441,7 +441,7 @@ static struct k_itimer * alloc_posix_timer(void)
441 return tmr; 441 return tmr;
442 if (unlikely(!(tmr->sigq = sigqueue_alloc()))) { 442 if (unlikely(!(tmr->sigq = sigqueue_alloc()))) {
443 kmem_cache_free(posix_timers_cache, tmr); 443 kmem_cache_free(posix_timers_cache, tmr);
444 tmr = NULL; 444 return NULL;
445 } 445 }
446 memset(&tmr->sigq->info, 0, sizeof(siginfo_t)); 446 memset(&tmr->sigq->info, 0, sizeof(siginfo_t));
447 return tmr; 447 return tmr;
diff --git a/kernel/power/disk.c b/kernel/power/disk.c
index f011e0870b5..bbd85c60f74 100644
--- a/kernel/power/disk.c
+++ b/kernel/power/disk.c
@@ -21,6 +21,7 @@
21#include <linux/console.h> 21#include <linux/console.h>
22#include <linux/cpu.h> 22#include <linux/cpu.h>
23#include <linux/freezer.h> 23#include <linux/freezer.h>
24#include <linux/ftrace.h>
24 25
25#include "power.h" 26#include "power.h"
26 27
@@ -255,7 +256,7 @@ static int create_image(int platform_mode)
255 256
256int hibernation_snapshot(int platform_mode) 257int hibernation_snapshot(int platform_mode)
257{ 258{
258 int error; 259 int error, ftrace_save;
259 260
260 /* Free memory before shutting down devices. */ 261 /* Free memory before shutting down devices. */
261 error = swsusp_shrink_memory(); 262 error = swsusp_shrink_memory();
@@ -267,6 +268,7 @@ int hibernation_snapshot(int platform_mode)
267 goto Close; 268 goto Close;
268 269
269 suspend_console(); 270 suspend_console();
271 ftrace_save = __ftrace_enabled_save();
270 error = device_suspend(PMSG_FREEZE); 272 error = device_suspend(PMSG_FREEZE);
271 if (error) 273 if (error)
272 goto Recover_platform; 274 goto Recover_platform;
@@ -296,6 +298,7 @@ int hibernation_snapshot(int platform_mode)
296 Resume_devices: 298 Resume_devices:
297 device_resume(in_suspend ? 299 device_resume(in_suspend ?
298 (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE); 300 (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE);
301 __ftrace_enabled_restore(ftrace_save);
299 resume_console(); 302 resume_console();
300 Close: 303 Close:
301 platform_end(platform_mode); 304 platform_end(platform_mode);
@@ -366,10 +369,11 @@ static int resume_target_kernel(void)
366 369
367int hibernation_restore(int platform_mode) 370int hibernation_restore(int platform_mode)
368{ 371{
369 int error; 372 int error, ftrace_save;
370 373
371 pm_prepare_console(); 374 pm_prepare_console();
372 suspend_console(); 375 suspend_console();
376 ftrace_save = __ftrace_enabled_save();
373 error = device_suspend(PMSG_QUIESCE); 377 error = device_suspend(PMSG_QUIESCE);
374 if (error) 378 if (error)
375 goto Finish; 379 goto Finish;
@@ -384,6 +388,7 @@ int hibernation_restore(int platform_mode)
384 platform_restore_cleanup(platform_mode); 388 platform_restore_cleanup(platform_mode);
385 device_resume(PMSG_RECOVER); 389 device_resume(PMSG_RECOVER);
386 Finish: 390 Finish:
391 __ftrace_enabled_restore(ftrace_save);
387 resume_console(); 392 resume_console();
388 pm_restore_console(); 393 pm_restore_console();
389 return error; 394 return error;
@@ -396,7 +401,7 @@ int hibernation_restore(int platform_mode)
396 401
397int hibernation_platform_enter(void) 402int hibernation_platform_enter(void)
398{ 403{
399 int error; 404 int error, ftrace_save;
400 405
401 if (!hibernation_ops) 406 if (!hibernation_ops)
402 return -ENOSYS; 407 return -ENOSYS;
@@ -411,6 +416,7 @@ int hibernation_platform_enter(void)
411 goto Close; 416 goto Close;
412 417
413 suspend_console(); 418 suspend_console();
419 ftrace_save = __ftrace_enabled_save();
414 error = device_suspend(PMSG_HIBERNATE); 420 error = device_suspend(PMSG_HIBERNATE);
415 if (error) { 421 if (error) {
416 if (hibernation_ops->recover) 422 if (hibernation_ops->recover)
@@ -445,6 +451,7 @@ int hibernation_platform_enter(void)
445 hibernation_ops->finish(); 451 hibernation_ops->finish();
446 Resume_devices: 452 Resume_devices:
447 device_resume(PMSG_RESTORE); 453 device_resume(PMSG_RESTORE);
454 __ftrace_enabled_restore(ftrace_save);
448 resume_console(); 455 resume_console();
449 Close: 456 Close:
450 hibernation_ops->end(); 457 hibernation_ops->end();
diff --git a/kernel/power/main.c b/kernel/power/main.c
index 0b7476f5d2a..540b16b6856 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -21,6 +21,7 @@
21#include <linux/freezer.h> 21#include <linux/freezer.h>
22#include <linux/vmstat.h> 22#include <linux/vmstat.h>
23#include <linux/syscalls.h> 23#include <linux/syscalls.h>
24#include <linux/ftrace.h>
24 25
25#include "power.h" 26#include "power.h"
26 27
@@ -310,7 +311,7 @@ static int suspend_enter(suspend_state_t state)
310 */ 311 */
311int suspend_devices_and_enter(suspend_state_t state) 312int suspend_devices_and_enter(suspend_state_t state)
312{ 313{
313 int error; 314 int error, ftrace_save;
314 315
315 if (!suspend_ops) 316 if (!suspend_ops)
316 return -ENOSYS; 317 return -ENOSYS;
@@ -321,6 +322,7 @@ int suspend_devices_and_enter(suspend_state_t state)
321 goto Close; 322 goto Close;
322 } 323 }
323 suspend_console(); 324 suspend_console();
325 ftrace_save = __ftrace_enabled_save();
324 suspend_test_start(); 326 suspend_test_start();
325 error = device_suspend(PMSG_SUSPEND); 327 error = device_suspend(PMSG_SUSPEND);
326 if (error) { 328 if (error) {
@@ -352,6 +354,7 @@ int suspend_devices_and_enter(suspend_state_t state)
352 suspend_test_start(); 354 suspend_test_start();
353 device_resume(PMSG_RESUME); 355 device_resume(PMSG_RESUME);
354 suspend_test_finish("resume devices"); 356 suspend_test_finish("resume devices");
357 __ftrace_enabled_restore(ftrace_save);
355 resume_console(); 358 resume_console();
356 Close: 359 Close:
357 if (suspend_ops->end) 360 if (suspend_ops->end)
diff --git a/kernel/power/swap.c b/kernel/power/swap.c
index a0abf9a463f..80ccac849e4 100644
--- a/kernel/power/swap.c
+++ b/kernel/power/swap.c
@@ -14,7 +14,6 @@
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/file.h> 15#include <linux/file.h>
16#include <linux/utsname.h> 16#include <linux/utsname.h>
17#include <linux/version.h>
18#include <linux/delay.h> 17#include <linux/delay.h>
19#include <linux/bitops.h> 18#include <linux/bitops.h>
20#include <linux/genhd.h> 19#include <linux/genhd.h>
diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c
index f14f372cf6f..467d5940f62 100644
--- a/kernel/rcupdate.c
+++ b/kernel/rcupdate.c
@@ -77,6 +77,7 @@ void wakeme_after_rcu(struct rcu_head *head)
77 * sections are delimited by rcu_read_lock() and rcu_read_unlock(), 77 * sections are delimited by rcu_read_lock() and rcu_read_unlock(),
78 * and may be nested. 78 * and may be nested.
79 */ 79 */
80void synchronize_rcu(void); /* Makes kernel-doc tools happy */
80synchronize_rcu_xxx(synchronize_rcu, call_rcu) 81synchronize_rcu_xxx(synchronize_rcu, call_rcu)
81EXPORT_SYMBOL_GPL(synchronize_rcu); 82EXPORT_SYMBOL_GPL(synchronize_rcu);
82 83
diff --git a/kernel/resource.c b/kernel/resource.c
index f5b518eabef..03d796c1b2e 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -362,35 +362,21 @@ int allocate_resource(struct resource *root, struct resource *new,
362 362
363EXPORT_SYMBOL(allocate_resource); 363EXPORT_SYMBOL(allocate_resource);
364 364
365/** 365/*
366 * insert_resource - Inserts a resource in the resource tree 366 * Insert a resource into the resource tree. If successful, return NULL,
367 * @parent: parent of the new resource 367 * otherwise return the conflicting resource (compare to __request_resource())
368 * @new: new resource to insert
369 *
370 * Returns 0 on success, -EBUSY if the resource can't be inserted.
371 *
372 * This function is equivalent to request_resource when no conflict
373 * happens. If a conflict happens, and the conflicting resources
374 * entirely fit within the range of the new resource, then the new
375 * resource is inserted and the conflicting resources become children of
376 * the new resource.
377 */ 368 */
378int insert_resource(struct resource *parent, struct resource *new) 369static struct resource * __insert_resource(struct resource *parent, struct resource *new)
379{ 370{
380 int result;
381 struct resource *first, *next; 371 struct resource *first, *next;
382 372
383 write_lock(&resource_lock);
384
385 for (;; parent = first) { 373 for (;; parent = first) {
386 result = 0;
387 first = __request_resource(parent, new); 374 first = __request_resource(parent, new);
388 if (!first) 375 if (!first)
389 goto out; 376 return first;
390 377
391 result = -EBUSY;
392 if (first == parent) 378 if (first == parent)
393 goto out; 379 return first;
394 380
395 if ((first->start > new->start) || (first->end < new->end)) 381 if ((first->start > new->start) || (first->end < new->end))
396 break; 382 break;
@@ -401,15 +387,13 @@ int insert_resource(struct resource *parent, struct resource *new)
401 for (next = first; ; next = next->sibling) { 387 for (next = first; ; next = next->sibling) {
402 /* Partial overlap? Bad, and unfixable */ 388 /* Partial overlap? Bad, and unfixable */
403 if (next->start < new->start || next->end > new->end) 389 if (next->start < new->start || next->end > new->end)
404 goto out; 390 return next;
405 if (!next->sibling) 391 if (!next->sibling)
406 break; 392 break;
407 if (next->sibling->start > new->end) 393 if (next->sibling->start > new->end)
408 break; 394 break;
409 } 395 }
410 396
411 result = 0;
412
413 new->parent = parent; 397 new->parent = parent;
414 new->sibling = next->sibling; 398 new->sibling = next->sibling;
415 new->child = first; 399 new->child = first;
@@ -426,10 +410,64 @@ int insert_resource(struct resource *parent, struct resource *new)
426 next = next->sibling; 410 next = next->sibling;
427 next->sibling = new; 411 next->sibling = new;
428 } 412 }
413 return NULL;
414}
429 415
430 out: 416/**
417 * insert_resource - Inserts a resource in the resource tree
418 * @parent: parent of the new resource
419 * @new: new resource to insert
420 *
421 * Returns 0 on success, -EBUSY if the resource can't be inserted.
422 *
423 * This function is equivalent to request_resource when no conflict
424 * happens. If a conflict happens, and the conflicting resources
425 * entirely fit within the range of the new resource, then the new
426 * resource is inserted and the conflicting resources become children of
427 * the new resource.
428 */
429int insert_resource(struct resource *parent, struct resource *new)
430{
431 struct resource *conflict;
432
433 write_lock(&resource_lock);
434 conflict = __insert_resource(parent, new);
435 write_unlock(&resource_lock);
436 return conflict ? -EBUSY : 0;
437}
438
439/**
440 * insert_resource_expand_to_fit - Insert a resource into the resource tree
441 * @root: root resource descriptor
442 * @new: new resource to insert
443 *
444 * Insert a resource into the resource tree, possibly expanding it in order
445 * to make it encompass any conflicting resources.
446 */
447void insert_resource_expand_to_fit(struct resource *root, struct resource *new)
448{
449 if (new->parent)
450 return;
451
452 write_lock(&resource_lock);
453 for (;;) {
454 struct resource *conflict;
455
456 conflict = __insert_resource(root, new);
457 if (!conflict)
458 break;
459 if (conflict == root)
460 break;
461
462 /* Ok, expand resource to cover the conflict, then try again .. */
463 if (conflict->start < new->start)
464 new->start = conflict->start;
465 if (conflict->end > new->end)
466 new->end = conflict->end;
467
468 printk("Expanded resource %s due to conflict with %s\n", new->name, conflict->name);
469 }
431 write_unlock(&resource_lock); 470 write_unlock(&resource_lock);
432 return result;
433} 471}
434 472
435/** 473/**
diff --git a/kernel/sched.c b/kernel/sched.c
index 9a1ddb84e26..ad1962dc0aa 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -201,7 +201,7 @@ void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime)
201 hrtimer_init(&rt_b->rt_period_timer, 201 hrtimer_init(&rt_b->rt_period_timer,
202 CLOCK_MONOTONIC, HRTIMER_MODE_REL); 202 CLOCK_MONOTONIC, HRTIMER_MODE_REL);
203 rt_b->rt_period_timer.function = sched_rt_period_timer; 203 rt_b->rt_period_timer.function = sched_rt_period_timer;
204 rt_b->rt_period_timer.cb_mode = HRTIMER_CB_IRQSAFE_NO_SOFTIRQ; 204 rt_b->rt_period_timer.cb_mode = HRTIMER_CB_IRQSAFE_UNLOCKED;
205} 205}
206 206
207static void start_rt_bandwidth(struct rt_bandwidth *rt_b) 207static void start_rt_bandwidth(struct rt_bandwidth *rt_b)
@@ -1087,7 +1087,7 @@ hotplug_hrtick(struct notifier_block *nfb, unsigned long action, void *hcpu)
1087 return NOTIFY_DONE; 1087 return NOTIFY_DONE;
1088} 1088}
1089 1089
1090static void init_hrtick(void) 1090static __init void init_hrtick(void)
1091{ 1091{
1092 hotcpu_notifier(hotplug_hrtick, 0); 1092 hotcpu_notifier(hotplug_hrtick, 0);
1093} 1093}
@@ -1119,7 +1119,7 @@ static void init_rq_hrtick(struct rq *rq)
1119 1119
1120 hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); 1120 hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
1121 rq->hrtick_timer.function = hrtick; 1121 rq->hrtick_timer.function = hrtick;
1122 rq->hrtick_timer.cb_mode = HRTIMER_CB_IRQSAFE_NO_SOFTIRQ; 1122 rq->hrtick_timer.cb_mode = HRTIMER_CB_IRQSAFE_PERCPU;
1123} 1123}
1124#else 1124#else
1125static inline void hrtick_clear(struct rq *rq) 1125static inline void hrtick_clear(struct rq *rq)
@@ -4179,6 +4179,65 @@ void account_steal_time(struct task_struct *p, cputime_t steal)
4179} 4179}
4180 4180
4181/* 4181/*
4182 * Use precise platform statistics if available:
4183 */
4184#ifdef CONFIG_VIRT_CPU_ACCOUNTING
4185cputime_t task_utime(struct task_struct *p)
4186{
4187 return p->utime;
4188}
4189
4190cputime_t task_stime(struct task_struct *p)
4191{
4192 return p->stime;
4193}
4194#else
4195cputime_t task_utime(struct task_struct *p)
4196{
4197 clock_t utime = cputime_to_clock_t(p->utime),
4198 total = utime + cputime_to_clock_t(p->stime);
4199 u64 temp;
4200
4201 /*
4202 * Use CFS's precise accounting:
4203 */
4204 temp = (u64)nsec_to_clock_t(p->se.sum_exec_runtime);
4205
4206 if (total) {
4207 temp *= utime;
4208 do_div(temp, total);
4209 }
4210 utime = (clock_t)temp;
4211
4212 p->prev_utime = max(p->prev_utime, clock_t_to_cputime(utime));
4213 return p->prev_utime;
4214}
4215
4216cputime_t task_stime(struct task_struct *p)
4217{
4218 clock_t stime;
4219
4220 /*
4221 * Use CFS's precise accounting. (we subtract utime from
4222 * the total, to make sure the total observed by userspace
4223 * grows monotonically - apps rely on that):
4224 */
4225 stime = nsec_to_clock_t(p->se.sum_exec_runtime) -
4226 cputime_to_clock_t(task_utime(p));
4227
4228 if (stime >= 0)
4229 p->prev_stime = max(p->prev_stime, clock_t_to_cputime(stime));
4230
4231 return p->prev_stime;
4232}
4233#endif
4234
4235inline cputime_t task_gtime(struct task_struct *p)
4236{
4237 return p->gtime;
4238}
4239
4240/*
4182 * This function gets called by the timer code, with HZ frequency. 4241 * This function gets called by the timer code, with HZ frequency.
4183 * We call it with interrupts disabled. 4242 * We call it with interrupts disabled.
4184 * 4243 *
@@ -7637,24 +7696,27 @@ static int dattrs_equal(struct sched_domain_attr *cur, int idx_cur,
7637 * and partition_sched_domains() will fallback to the single partition 7696 * and partition_sched_domains() will fallback to the single partition
7638 * 'fallback_doms', it also forces the domains to be rebuilt. 7697 * 'fallback_doms', it also forces the domains to be rebuilt.
7639 * 7698 *
7699 * If doms_new==NULL it will be replaced with cpu_online_map.
7700 * ndoms_new==0 is a special case for destroying existing domains.
7701 * It will not create the default domain.
7702 *
7640 * Call with hotplug lock held 7703 * Call with hotplug lock held
7641 */ 7704 */
7642void partition_sched_domains(int ndoms_new, cpumask_t *doms_new, 7705void partition_sched_domains(int ndoms_new, cpumask_t *doms_new,
7643 struct sched_domain_attr *dattr_new) 7706 struct sched_domain_attr *dattr_new)
7644{ 7707{
7645 int i, j; 7708 int i, j, n;
7646 7709
7647 mutex_lock(&sched_domains_mutex); 7710 mutex_lock(&sched_domains_mutex);
7648 7711
7649 /* always unregister in case we don't destroy any domains */ 7712 /* always unregister in case we don't destroy any domains */
7650 unregister_sched_domain_sysctl(); 7713 unregister_sched_domain_sysctl();
7651 7714
7652 if (doms_new == NULL) 7715 n = doms_new ? ndoms_new : 0;
7653 ndoms_new = 0;
7654 7716
7655 /* Destroy deleted domains */ 7717 /* Destroy deleted domains */
7656 for (i = 0; i < ndoms_cur; i++) { 7718 for (i = 0; i < ndoms_cur; i++) {
7657 for (j = 0; j < ndoms_new; j++) { 7719 for (j = 0; j < n; j++) {
7658 if (cpus_equal(doms_cur[i], doms_new[j]) 7720 if (cpus_equal(doms_cur[i], doms_new[j])
7659 && dattrs_equal(dattr_cur, i, dattr_new, j)) 7721 && dattrs_equal(dattr_cur, i, dattr_new, j))
7660 goto match1; 7722 goto match1;
@@ -7667,7 +7729,6 @@ match1:
7667 7729
7668 if (doms_new == NULL) { 7730 if (doms_new == NULL) {
7669 ndoms_cur = 0; 7731 ndoms_cur = 0;
7670 ndoms_new = 1;
7671 doms_new = &fallback_doms; 7732 doms_new = &fallback_doms;
7672 cpus_andnot(doms_new[0], cpu_online_map, cpu_isolated_map); 7733 cpus_andnot(doms_new[0], cpu_online_map, cpu_isolated_map);
7673 dattr_new = NULL; 7734 dattr_new = NULL;
@@ -7704,8 +7765,13 @@ match2:
7704int arch_reinit_sched_domains(void) 7765int arch_reinit_sched_domains(void)
7705{ 7766{
7706 get_online_cpus(); 7767 get_online_cpus();
7768
7769 /* Destroy domains first to force the rebuild */
7770 partition_sched_domains(0, NULL, NULL);
7771
7707 rebuild_sched_domains(); 7772 rebuild_sched_domains();
7708 put_online_cpus(); 7773 put_online_cpus();
7774
7709 return 0; 7775 return 0;
7710} 7776}
7711 7777
@@ -7789,7 +7855,7 @@ static int update_sched_domains(struct notifier_block *nfb,
7789 case CPU_ONLINE_FROZEN: 7855 case CPU_ONLINE_FROZEN:
7790 case CPU_DEAD: 7856 case CPU_DEAD:
7791 case CPU_DEAD_FROZEN: 7857 case CPU_DEAD_FROZEN:
7792 partition_sched_domains(0, NULL, NULL); 7858 partition_sched_domains(1, NULL, NULL);
7793 return NOTIFY_OK; 7859 return NOTIFY_OK;
7794 7860
7795 default: 7861 default:
@@ -8843,6 +8909,9 @@ static int sched_rt_global_constraints(void)
8843 u64 rt_runtime, rt_period; 8909 u64 rt_runtime, rt_period;
8844 int ret = 0; 8910 int ret = 0;
8845 8911
8912 if (sysctl_sched_rt_period <= 0)
8913 return -EINVAL;
8914
8846 rt_period = ktime_to_ns(tg->rt_bandwidth.rt_period); 8915 rt_period = ktime_to_ns(tg->rt_bandwidth.rt_period);
8847 rt_runtime = tg->rt_bandwidth.rt_runtime; 8916 rt_runtime = tg->rt_bandwidth.rt_runtime;
8848 8917
@@ -8859,6 +8928,9 @@ static int sched_rt_global_constraints(void)
8859 unsigned long flags; 8928 unsigned long flags;
8860 int i; 8929 int i;
8861 8930
8931 if (sysctl_sched_rt_period <= 0)
8932 return -EINVAL;
8933
8862 spin_lock_irqsave(&def_rt_bandwidth.rt_runtime_lock, flags); 8934 spin_lock_irqsave(&def_rt_bandwidth.rt_runtime_lock, flags);
8863 for_each_possible_cpu(i) { 8935 for_each_possible_cpu(i) {
8864 struct rt_rq *rt_rq = &cpu_rq(i)->rt; 8936 struct rt_rq *rt_rq = &cpu_rq(i)->rt;
diff --git a/kernel/sched_clock.c b/kernel/sched_clock.c
index 204991a0bfa..e8ab096ddfe 100644
--- a/kernel/sched_clock.c
+++ b/kernel/sched_clock.c
@@ -12,19 +12,17 @@
12 * 12 *
13 * Create a semi stable clock from a mixture of other events, including: 13 * Create a semi stable clock from a mixture of other events, including:
14 * - gtod 14 * - gtod
15 * - jiffies
16 * - sched_clock() 15 * - sched_clock()
17 * - explicit idle events 16 * - explicit idle events
18 * 17 *
19 * We use gtod as base and the unstable clock deltas. The deltas are filtered, 18 * We use gtod as base and the unstable clock deltas. The deltas are filtered,
20 * making it monotonic and keeping it within an expected window. This window 19 * making it monotonic and keeping it within an expected window.
21 * is set up using jiffies.
22 * 20 *
23 * Furthermore, explicit sleep and wakeup hooks allow us to account for time 21 * Furthermore, explicit sleep and wakeup hooks allow us to account for time
24 * that is otherwise invisible (TSC gets stopped). 22 * that is otherwise invisible (TSC gets stopped).
25 * 23 *
26 * The clock: sched_clock_cpu() is monotonic per cpu, and should be somewhat 24 * The clock: sched_clock_cpu() is monotonic per cpu, and should be somewhat
27 * consistent between cpus (never more than 1 jiffies difference). 25 * consistent between cpus (never more than 2 jiffies difference).
28 */ 26 */
29#include <linux/sched.h> 27#include <linux/sched.h>
30#include <linux/percpu.h> 28#include <linux/percpu.h>
@@ -54,7 +52,6 @@ struct sched_clock_data {
54 */ 52 */
55 raw_spinlock_t lock; 53 raw_spinlock_t lock;
56 54
57 unsigned long tick_jiffies;
58 u64 tick_raw; 55 u64 tick_raw;
59 u64 tick_gtod; 56 u64 tick_gtod;
60 u64 clock; 57 u64 clock;
@@ -75,14 +72,12 @@ static inline struct sched_clock_data *cpu_sdc(int cpu)
75void sched_clock_init(void) 72void sched_clock_init(void)
76{ 73{
77 u64 ktime_now = ktime_to_ns(ktime_get()); 74 u64 ktime_now = ktime_to_ns(ktime_get());
78 unsigned long now_jiffies = jiffies;
79 int cpu; 75 int cpu;
80 76
81 for_each_possible_cpu(cpu) { 77 for_each_possible_cpu(cpu) {
82 struct sched_clock_data *scd = cpu_sdc(cpu); 78 struct sched_clock_data *scd = cpu_sdc(cpu);
83 79
84 scd->lock = (raw_spinlock_t)__RAW_SPIN_LOCK_UNLOCKED; 80 scd->lock = (raw_spinlock_t)__RAW_SPIN_LOCK_UNLOCKED;
85 scd->tick_jiffies = now_jiffies;
86 scd->tick_raw = 0; 81 scd->tick_raw = 0;
87 scd->tick_gtod = ktime_now; 82 scd->tick_gtod = ktime_now;
88 scd->clock = ktime_now; 83 scd->clock = ktime_now;
@@ -92,46 +87,51 @@ void sched_clock_init(void)
92} 87}
93 88
94/* 89/*
90 * min,max except they take wrapping into account
91 */
92
93static inline u64 wrap_min(u64 x, u64 y)
94{
95 return (s64)(x - y) < 0 ? x : y;
96}
97
98static inline u64 wrap_max(u64 x, u64 y)
99{
100 return (s64)(x - y) > 0 ? x : y;
101}
102
103/*
95 * update the percpu scd from the raw @now value 104 * update the percpu scd from the raw @now value
96 * 105 *
97 * - filter out backward motion 106 * - filter out backward motion
98 * - use jiffies to generate a min,max window to clip the raw values 107 * - use the GTOD tick value to create a window to filter crazy TSC values
99 */ 108 */
100static u64 __update_sched_clock(struct sched_clock_data *scd, u64 now) 109static u64 __update_sched_clock(struct sched_clock_data *scd, u64 now)
101{ 110{
102 unsigned long now_jiffies = jiffies;
103 long delta_jiffies = now_jiffies - scd->tick_jiffies;
104 u64 clock = scd->clock;
105 u64 min_clock, max_clock;
106 s64 delta = now - scd->tick_raw; 111 s64 delta = now - scd->tick_raw;
112 u64 clock, min_clock, max_clock;
107 113
108 WARN_ON_ONCE(!irqs_disabled()); 114 WARN_ON_ONCE(!irqs_disabled());
109 min_clock = scd->tick_gtod + delta_jiffies * TICK_NSEC;
110 115
111 if (unlikely(delta < 0)) { 116 if (unlikely(delta < 0))
112 clock++; 117 delta = 0;
113 goto out;
114 }
115 118
116 max_clock = min_clock + TICK_NSEC; 119 /*
120 * scd->clock = clamp(scd->tick_gtod + delta,
121 * max(scd->tick_gtod, scd->clock),
122 * scd->tick_gtod + TICK_NSEC);
123 */
117 124
118 if (unlikely(clock + delta > max_clock)) { 125 clock = scd->tick_gtod + delta;
119 if (clock < max_clock) 126 min_clock = wrap_max(scd->tick_gtod, scd->clock);
120 clock = max_clock; 127 max_clock = scd->tick_gtod + TICK_NSEC;
121 else
122 clock++;
123 } else {
124 clock += delta;
125 }
126 128
127 out: 129 clock = wrap_max(clock, min_clock);
128 if (unlikely(clock < min_clock)) 130 clock = wrap_min(clock, max_clock);
129 clock = min_clock;
130 131
131 scd->tick_jiffies = now_jiffies;
132 scd->clock = clock; 132 scd->clock = clock;
133 133
134 return clock; 134 return scd->clock;
135} 135}
136 136
137static void lock_double_clock(struct sched_clock_data *data1, 137static void lock_double_clock(struct sched_clock_data *data1,
@@ -171,7 +171,7 @@ u64 sched_clock_cpu(int cpu)
171 * larger time as the latest time for both 171 * larger time as the latest time for both
172 * runqueues. (this creates monotonic movement) 172 * runqueues. (this creates monotonic movement)
173 */ 173 */
174 if (likely(remote_clock < this_clock)) { 174 if (likely((s64)(remote_clock - this_clock) < 0)) {
175 clock = this_clock; 175 clock = this_clock;
176 scd->clock = clock; 176 scd->clock = clock;
177 } else { 177 } else {
@@ -207,14 +207,9 @@ void sched_clock_tick(void)
207 now = sched_clock(); 207 now = sched_clock();
208 208
209 __raw_spin_lock(&scd->lock); 209 __raw_spin_lock(&scd->lock);
210 __update_sched_clock(scd, now);
211 /*
212 * update tick_gtod after __update_sched_clock() because that will
213 * already observe 1 new jiffy; adding a new tick_gtod to that would
214 * increase the clock 2 jiffies.
215 */
216 scd->tick_raw = now; 210 scd->tick_raw = now;
217 scd->tick_gtod = now_gtod; 211 scd->tick_gtod = now_gtod;
212 __update_sched_clock(scd, now);
218 __raw_spin_unlock(&scd->lock); 213 __raw_spin_unlock(&scd->lock);
219} 214}
220 215
@@ -232,18 +227,7 @@ EXPORT_SYMBOL_GPL(sched_clock_idle_sleep_event);
232 */ 227 */
233void sched_clock_idle_wakeup_event(u64 delta_ns) 228void sched_clock_idle_wakeup_event(u64 delta_ns)
234{ 229{
235 struct sched_clock_data *scd = this_scd(); 230 sched_clock_tick();
236
237 /*
238 * Override the previous timestamp and ignore all
239 * sched_clock() deltas that occured while we idled,
240 * and use the PM-provided delta_ns to advance the
241 * rq clock:
242 */
243 __raw_spin_lock(&scd->lock);
244 scd->clock += delta_ns;
245 __raw_spin_unlock(&scd->lock);
246
247 touch_softlockup_watchdog(); 231 touch_softlockup_watchdog();
248} 232}
249EXPORT_SYMBOL_GPL(sched_clock_idle_wakeup_event); 233EXPORT_SYMBOL_GPL(sched_clock_idle_wakeup_event);
diff --git a/kernel/sched_features.h b/kernel/sched_features.h
index 862b06bd560..9353ca78154 100644
--- a/kernel/sched_features.h
+++ b/kernel/sched_features.h
@@ -8,6 +8,6 @@ SCHED_FEAT(SYNC_WAKEUPS, 1)
8SCHED_FEAT(HRTICK, 1) 8SCHED_FEAT(HRTICK, 1)
9SCHED_FEAT(DOUBLE_TICK, 0) 9SCHED_FEAT(DOUBLE_TICK, 0)
10SCHED_FEAT(ASYM_GRAN, 1) 10SCHED_FEAT(ASYM_GRAN, 1)
11SCHED_FEAT(LB_BIAS, 0) 11SCHED_FEAT(LB_BIAS, 1)
12SCHED_FEAT(LB_WAKEUP_UPDATE, 1) 12SCHED_FEAT(LB_WAKEUP_UPDATE, 1)
13SCHED_FEAT(ASYM_EFF_LOAD, 1) 13SCHED_FEAT(ASYM_EFF_LOAD, 1)
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
index 998ba54b454..1113157b205 100644
--- a/kernel/sched_rt.c
+++ b/kernel/sched_rt.c
@@ -199,6 +199,8 @@ static inline struct rt_rq *group_rt_rq(struct sched_rt_entity *rt_se)
199 199
200static inline void sched_rt_rq_enqueue(struct rt_rq *rt_rq) 200static inline void sched_rt_rq_enqueue(struct rt_rq *rt_rq)
201{ 201{
202 if (rt_rq->rt_nr_running)
203 resched_task(rq_of_rt_rq(rt_rq)->curr);
202} 204}
203 205
204static inline void sched_rt_rq_dequeue(struct rt_rq *rt_rq) 206static inline void sched_rt_rq_dequeue(struct rt_rq *rt_rq)
@@ -348,6 +350,7 @@ static void __enable_runtime(struct rq *rq)
348 spin_lock(&rt_rq->rt_runtime_lock); 350 spin_lock(&rt_rq->rt_runtime_lock);
349 rt_rq->rt_runtime = rt_b->rt_runtime; 351 rt_rq->rt_runtime = rt_b->rt_runtime;
350 rt_rq->rt_time = 0; 352 rt_rq->rt_time = 0;
353 rt_rq->rt_throttled = 0;
351 spin_unlock(&rt_rq->rt_runtime_lock); 354 spin_unlock(&rt_rq->rt_runtime_lock);
352 spin_unlock(&rt_b->rt_runtime_lock); 355 spin_unlock(&rt_b->rt_runtime_lock);
353 } 356 }
@@ -438,9 +441,6 @@ static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)
438{ 441{
439 u64 runtime = sched_rt_runtime(rt_rq); 442 u64 runtime = sched_rt_runtime(rt_rq);
440 443
441 if (runtime == RUNTIME_INF)
442 return 0;
443
444 if (rt_rq->rt_throttled) 444 if (rt_rq->rt_throttled)
445 return rt_rq_throttled(rt_rq); 445 return rt_rq_throttled(rt_rq);
446 446
@@ -491,9 +491,11 @@ static void update_curr_rt(struct rq *rq)
491 rt_rq = rt_rq_of_se(rt_se); 491 rt_rq = rt_rq_of_se(rt_se);
492 492
493 spin_lock(&rt_rq->rt_runtime_lock); 493 spin_lock(&rt_rq->rt_runtime_lock);
494 rt_rq->rt_time += delta_exec; 494 if (sched_rt_runtime(rt_rq) != RUNTIME_INF) {
495 if (sched_rt_runtime_exceeded(rt_rq)) 495 rt_rq->rt_time += delta_exec;
496 resched_task(curr); 496 if (sched_rt_runtime_exceeded(rt_rq))
497 resched_task(curr);
498 }
497 spin_unlock(&rt_rq->rt_runtime_lock); 499 spin_unlock(&rt_rq->rt_runtime_lock);
498 } 500 }
499} 501}
diff --git a/kernel/smp.c b/kernel/smp.c
index 782e2b93e46..f362a855377 100644
--- a/kernel/smp.c
+++ b/kernel/smp.c
@@ -210,8 +210,10 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
210{ 210{
211 struct call_single_data d; 211 struct call_single_data d;
212 unsigned long flags; 212 unsigned long flags;
213 /* prevent preemption and reschedule on another processor */ 213 /* prevent preemption and reschedule on another processor,
214 as well as CPU removal */
214 int me = get_cpu(); 215 int me = get_cpu();
216 int err = 0;
215 217
216 /* Can deadlock when called with interrupts disabled */ 218 /* Can deadlock when called with interrupts disabled */
217 WARN_ON(irqs_disabled()); 219 WARN_ON(irqs_disabled());
@@ -220,7 +222,7 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
220 local_irq_save(flags); 222 local_irq_save(flags);
221 func(info); 223 func(info);
222 local_irq_restore(flags); 224 local_irq_restore(flags);
223 } else { 225 } else if ((unsigned)cpu < NR_CPUS && cpu_online(cpu)) {
224 struct call_single_data *data = NULL; 226 struct call_single_data *data = NULL;
225 227
226 if (!wait) { 228 if (!wait) {
@@ -236,10 +238,12 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
236 data->func = func; 238 data->func = func;
237 data->info = info; 239 data->info = info;
238 generic_exec_single(cpu, data); 240 generic_exec_single(cpu, data);
241 } else {
242 err = -ENXIO; /* CPU not online */
239 } 243 }
240 244
241 put_cpu(); 245 put_cpu();
242 return 0; 246 return err;
243} 247}
244EXPORT_SYMBOL(smp_call_function_single); 248EXPORT_SYMBOL(smp_call_function_single);
245 249
diff --git a/kernel/softlockup.c b/kernel/softlockup.c
index b75b492fbfc..cb838ee93a8 100644
--- a/kernel/softlockup.c
+++ b/kernel/softlockup.c
@@ -233,7 +233,8 @@ static void check_hung_uninterruptible_tasks(int this_cpu)
233 do_each_thread(g, t) { 233 do_each_thread(g, t) {
234 if (!--max_count) 234 if (!--max_count)
235 goto unlock; 235 goto unlock;
236 if (t->state & TASK_UNINTERRUPTIBLE) 236 /* use "==" to skip the TASK_KILLABLE tasks waiting on NFS */
237 if (t->state == TASK_UNINTERRUPTIBLE)
237 check_hung_task(t, now); 238 check_hung_task(t, now);
238 } while_each_thread(g, t); 239 } while_each_thread(g, t);
239 unlock: 240 unlock:
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index fe471334727..50ec0886fa3 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -159,6 +159,7 @@ static int proc_dointvec_taint(struct ctl_table *table, int write, struct file *
159static struct ctl_table root_table[]; 159static struct ctl_table root_table[];
160static struct ctl_table_root sysctl_table_root; 160static struct ctl_table_root sysctl_table_root;
161static struct ctl_table_header root_table_header = { 161static struct ctl_table_header root_table_header = {
162 .count = 1,
162 .ctl_table = root_table, 163 .ctl_table = root_table,
163 .ctl_entry = LIST_HEAD_INIT(sysctl_table_root.default_set.list), 164 .ctl_entry = LIST_HEAD_INIT(sysctl_table_root.default_set.list),
164 .root = &sysctl_table_root, 165 .root = &sysctl_table_root,
diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c
index 3d1e3e1a197..f8d968063ce 100644
--- a/kernel/time/clockevents.c
+++ b/kernel/time/clockevents.c
@@ -72,6 +72,16 @@ void clockevents_set_mode(struct clock_event_device *dev,
72} 72}
73 73
74/** 74/**
75 * clockevents_shutdown - shutdown the device and clear next_event
76 * @dev: device to shutdown
77 */
78void clockevents_shutdown(struct clock_event_device *dev)
79{
80 clockevents_set_mode(dev, CLOCK_EVT_MODE_SHUTDOWN);
81 dev->next_event.tv64 = KTIME_MAX;
82}
83
84/**
75 * clockevents_program_event - Reprogram the clock event device. 85 * clockevents_program_event - Reprogram the clock event device.
76 * @expires: absolute expiry time (monotonic clock) 86 * @expires: absolute expiry time (monotonic clock)
77 * 87 *
@@ -177,7 +187,7 @@ void clockevents_register_device(struct clock_event_device *dev)
177/* 187/*
178 * Noop handler when we shut down an event device 188 * Noop handler when we shut down an event device
179 */ 189 */
180static void clockevents_handle_noop(struct clock_event_device *dev) 190void clockevents_handle_noop(struct clock_event_device *dev)
181{ 191{
182} 192}
183 193
@@ -199,7 +209,6 @@ void clockevents_exchange_device(struct clock_event_device *old,
199 * released list and do a notify add later. 209 * released list and do a notify add later.
200 */ 210 */
201 if (old) { 211 if (old) {
202 old->event_handler = clockevents_handle_noop;
203 clockevents_set_mode(old, CLOCK_EVT_MODE_UNUSED); 212 clockevents_set_mode(old, CLOCK_EVT_MODE_UNUSED);
204 list_del(&old->list); 213 list_del(&old->list);
205 list_add(&old->list, &clockevents_released); 214 list_add(&old->list, &clockevents_released);
@@ -207,7 +216,7 @@ void clockevents_exchange_device(struct clock_event_device *old,
207 216
208 if (new) { 217 if (new) {
209 BUG_ON(new->mode != CLOCK_EVT_MODE_UNUSED); 218 BUG_ON(new->mode != CLOCK_EVT_MODE_UNUSED);
210 clockevents_set_mode(new, CLOCK_EVT_MODE_SHUTDOWN); 219 clockevents_shutdown(new);
211 } 220 }
212 local_irq_restore(flags); 221 local_irq_restore(flags);
213} 222}
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
index 5125ddd8196..1ad46f3df6e 100644
--- a/kernel/time/ntp.c
+++ b/kernel/time/ntp.c
@@ -245,7 +245,7 @@ static void sync_cmos_clock(unsigned long dummy)
245 if (abs(now.tv_nsec - (NSEC_PER_SEC / 2)) <= tick_nsec / 2) 245 if (abs(now.tv_nsec - (NSEC_PER_SEC / 2)) <= tick_nsec / 2)
246 fail = update_persistent_clock(now); 246 fail = update_persistent_clock(now);
247 247
248 next.tv_nsec = (NSEC_PER_SEC / 2) - now.tv_nsec; 248 next.tv_nsec = (NSEC_PER_SEC / 2) - now.tv_nsec - (TICK_NSEC / 2);
249 if (next.tv_nsec <= 0) 249 if (next.tv_nsec <= 0)
250 next.tv_nsec += NSEC_PER_SEC; 250 next.tv_nsec += NSEC_PER_SEC;
251 251
diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c
index 31463d370b9..cb01cd8f919 100644
--- a/kernel/time/tick-broadcast.c
+++ b/kernel/time/tick-broadcast.c
@@ -175,6 +175,8 @@ static void tick_do_periodic_broadcast(void)
175 */ 175 */
176static void tick_handle_periodic_broadcast(struct clock_event_device *dev) 176static void tick_handle_periodic_broadcast(struct clock_event_device *dev)
177{ 177{
178 ktime_t next;
179
178 tick_do_periodic_broadcast(); 180 tick_do_periodic_broadcast();
179 181
180 /* 182 /*
@@ -185,10 +187,13 @@ static void tick_handle_periodic_broadcast(struct clock_event_device *dev)
185 187
186 /* 188 /*
187 * Setup the next period for devices, which do not have 189 * Setup the next period for devices, which do not have
188 * periodic mode: 190 * periodic mode. We read dev->next_event first and add to it
191 * when the event alrady expired. clockevents_program_event()
192 * sets dev->next_event only when the event is really
193 * programmed to the device.
189 */ 194 */
190 for (;;) { 195 for (next = dev->next_event; ;) {
191 ktime_t next = ktime_add(dev->next_event, tick_period); 196 next = ktime_add(next, tick_period);
192 197
193 if (!clockevents_program_event(dev, next, ktime_get())) 198 if (!clockevents_program_event(dev, next, ktime_get()))
194 return; 199 return;
@@ -205,7 +210,7 @@ static void tick_do_broadcast_on_off(void *why)
205 struct clock_event_device *bc, *dev; 210 struct clock_event_device *bc, *dev;
206 struct tick_device *td; 211 struct tick_device *td;
207 unsigned long flags, *reason = why; 212 unsigned long flags, *reason = why;
208 int cpu; 213 int cpu, bc_stopped;
209 214
210 spin_lock_irqsave(&tick_broadcast_lock, flags); 215 spin_lock_irqsave(&tick_broadcast_lock, flags);
211 216
@@ -223,14 +228,16 @@ static void tick_do_broadcast_on_off(void *why)
223 if (!tick_device_is_functional(dev)) 228 if (!tick_device_is_functional(dev))
224 goto out; 229 goto out;
225 230
231 bc_stopped = cpus_empty(tick_broadcast_mask);
232
226 switch (*reason) { 233 switch (*reason) {
227 case CLOCK_EVT_NOTIFY_BROADCAST_ON: 234 case CLOCK_EVT_NOTIFY_BROADCAST_ON:
228 case CLOCK_EVT_NOTIFY_BROADCAST_FORCE: 235 case CLOCK_EVT_NOTIFY_BROADCAST_FORCE:
229 if (!cpu_isset(cpu, tick_broadcast_mask)) { 236 if (!cpu_isset(cpu, tick_broadcast_mask)) {
230 cpu_set(cpu, tick_broadcast_mask); 237 cpu_set(cpu, tick_broadcast_mask);
231 if (td->mode == TICKDEV_MODE_PERIODIC) 238 if (tick_broadcast_device.mode ==
232 clockevents_set_mode(dev, 239 TICKDEV_MODE_PERIODIC)
233 CLOCK_EVT_MODE_SHUTDOWN); 240 clockevents_shutdown(dev);
234 } 241 }
235 if (*reason == CLOCK_EVT_NOTIFY_BROADCAST_FORCE) 242 if (*reason == CLOCK_EVT_NOTIFY_BROADCAST_FORCE)
236 tick_broadcast_force = 1; 243 tick_broadcast_force = 1;
@@ -239,15 +246,17 @@ static void tick_do_broadcast_on_off(void *why)
239 if (!tick_broadcast_force && 246 if (!tick_broadcast_force &&
240 cpu_isset(cpu, tick_broadcast_mask)) { 247 cpu_isset(cpu, tick_broadcast_mask)) {
241 cpu_clear(cpu, tick_broadcast_mask); 248 cpu_clear(cpu, tick_broadcast_mask);
242 if (td->mode == TICKDEV_MODE_PERIODIC) 249 if (tick_broadcast_device.mode ==
250 TICKDEV_MODE_PERIODIC)
243 tick_setup_periodic(dev, 0); 251 tick_setup_periodic(dev, 0);
244 } 252 }
245 break; 253 break;
246 } 254 }
247 255
248 if (cpus_empty(tick_broadcast_mask)) 256 if (cpus_empty(tick_broadcast_mask)) {
249 clockevents_set_mode(bc, CLOCK_EVT_MODE_SHUTDOWN); 257 if (!bc_stopped)
250 else { 258 clockevents_shutdown(bc);
259 } else if (bc_stopped) {
251 if (tick_broadcast_device.mode == TICKDEV_MODE_PERIODIC) 260 if (tick_broadcast_device.mode == TICKDEV_MODE_PERIODIC)
252 tick_broadcast_start_periodic(bc); 261 tick_broadcast_start_periodic(bc);
253 else 262 else
@@ -298,7 +307,7 @@ void tick_shutdown_broadcast(unsigned int *cpup)
298 307
299 if (tick_broadcast_device.mode == TICKDEV_MODE_PERIODIC) { 308 if (tick_broadcast_device.mode == TICKDEV_MODE_PERIODIC) {
300 if (bc && cpus_empty(tick_broadcast_mask)) 309 if (bc && cpus_empty(tick_broadcast_mask))
301 clockevents_set_mode(bc, CLOCK_EVT_MODE_SHUTDOWN); 310 clockevents_shutdown(bc);
302 } 311 }
303 312
304 spin_unlock_irqrestore(&tick_broadcast_lock, flags); 313 spin_unlock_irqrestore(&tick_broadcast_lock, flags);
@@ -313,7 +322,7 @@ void tick_suspend_broadcast(void)
313 322
314 bc = tick_broadcast_device.evtdev; 323 bc = tick_broadcast_device.evtdev;
315 if (bc) 324 if (bc)
316 clockevents_set_mode(bc, CLOCK_EVT_MODE_SHUTDOWN); 325 clockevents_shutdown(bc);
317 326
318 spin_unlock_irqrestore(&tick_broadcast_lock, flags); 327 spin_unlock_irqrestore(&tick_broadcast_lock, flags);
319} 328}
@@ -364,16 +373,8 @@ cpumask_t *tick_get_broadcast_oneshot_mask(void)
364static int tick_broadcast_set_event(ktime_t expires, int force) 373static int tick_broadcast_set_event(ktime_t expires, int force)
365{ 374{
366 struct clock_event_device *bc = tick_broadcast_device.evtdev; 375 struct clock_event_device *bc = tick_broadcast_device.evtdev;
367 ktime_t now = ktime_get(); 376
368 int res; 377 return tick_dev_program_event(bc, expires, force);
369
370 for(;;) {
371 res = clockevents_program_event(bc, expires, now);
372 if (!res || !force)
373 return res;
374 now = ktime_get();
375 expires = ktime_add(now, ktime_set(0, bc->min_delta_ns));
376 }
377} 378}
378 379
379int tick_resume_broadcast_oneshot(struct clock_event_device *bc) 380int tick_resume_broadcast_oneshot(struct clock_event_device *bc)
@@ -491,14 +492,52 @@ static void tick_broadcast_clear_oneshot(int cpu)
491 cpu_clear(cpu, tick_broadcast_oneshot_mask); 492 cpu_clear(cpu, tick_broadcast_oneshot_mask);
492} 493}
493 494
495static void tick_broadcast_init_next_event(cpumask_t *mask, ktime_t expires)
496{
497 struct tick_device *td;
498 int cpu;
499
500 for_each_cpu_mask_nr(cpu, *mask) {
501 td = &per_cpu(tick_cpu_device, cpu);
502 if (td->evtdev)
503 td->evtdev->next_event = expires;
504 }
505}
506
494/** 507/**
495 * tick_broadcast_setup_oneshot - setup the broadcast device 508 * tick_broadcast_setup_oneshot - setup the broadcast device
496 */ 509 */
497void tick_broadcast_setup_oneshot(struct clock_event_device *bc) 510void tick_broadcast_setup_oneshot(struct clock_event_device *bc)
498{ 511{
499 bc->event_handler = tick_handle_oneshot_broadcast; 512 /* Set it up only once ! */
500 clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT); 513 if (bc->event_handler != tick_handle_oneshot_broadcast) {
501 bc->next_event.tv64 = KTIME_MAX; 514 int was_periodic = bc->mode == CLOCK_EVT_MODE_PERIODIC;
515 int cpu = smp_processor_id();
516 cpumask_t mask;
517
518 bc->event_handler = tick_handle_oneshot_broadcast;
519 clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT);
520
521 /* Take the do_timer update */
522 tick_do_timer_cpu = cpu;
523
524 /*
525 * We must be careful here. There might be other CPUs
526 * waiting for periodic broadcast. We need to set the
527 * oneshot_mask bits for those and program the
528 * broadcast device to fire.
529 */
530 mask = tick_broadcast_mask;
531 cpu_clear(cpu, mask);
532 cpus_or(tick_broadcast_oneshot_mask,
533 tick_broadcast_oneshot_mask, mask);
534
535 if (was_periodic && !cpus_empty(mask)) {
536 tick_broadcast_init_next_event(&mask, tick_next_period);
537 tick_broadcast_set_event(tick_next_period, 1);
538 } else
539 bc->next_event.tv64 = KTIME_MAX;
540 }
502} 541}
503 542
504/* 543/*
@@ -538,4 +577,12 @@ void tick_shutdown_broadcast_oneshot(unsigned int *cpup)
538 spin_unlock_irqrestore(&tick_broadcast_lock, flags); 577 spin_unlock_irqrestore(&tick_broadcast_lock, flags);
539} 578}
540 579
580/*
581 * Check, whether the broadcast device is in one shot mode
582 */
583int tick_broadcast_oneshot_active(void)
584{
585 return tick_broadcast_device.mode == TICKDEV_MODE_ONESHOT;
586}
587
541#endif 588#endif
diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c
index 80c4336f418..df12434b43c 100644
--- a/kernel/time/tick-common.c
+++ b/kernel/time/tick-common.c
@@ -33,7 +33,7 @@ DEFINE_PER_CPU(struct tick_device, tick_cpu_device);
33 */ 33 */
34ktime_t tick_next_period; 34ktime_t tick_next_period;
35ktime_t tick_period; 35ktime_t tick_period;
36int tick_do_timer_cpu __read_mostly = -1; 36int tick_do_timer_cpu __read_mostly = TICK_DO_TIMER_BOOT;
37DEFINE_SPINLOCK(tick_device_lock); 37DEFINE_SPINLOCK(tick_device_lock);
38 38
39/* 39/*
@@ -109,7 +109,8 @@ void tick_setup_periodic(struct clock_event_device *dev, int broadcast)
109 if (!tick_device_is_functional(dev)) 109 if (!tick_device_is_functional(dev))
110 return; 110 return;
111 111
112 if (dev->features & CLOCK_EVT_FEAT_PERIODIC) { 112 if ((dev->features & CLOCK_EVT_FEAT_PERIODIC) &&
113 !tick_broadcast_oneshot_active()) {
113 clockevents_set_mode(dev, CLOCK_EVT_MODE_PERIODIC); 114 clockevents_set_mode(dev, CLOCK_EVT_MODE_PERIODIC);
114 } else { 115 } else {
115 unsigned long seq; 116 unsigned long seq;
@@ -148,7 +149,7 @@ static void tick_setup_device(struct tick_device *td,
148 * If no cpu took the do_timer update, assign it to 149 * If no cpu took the do_timer update, assign it to
149 * this cpu: 150 * this cpu:
150 */ 151 */
151 if (tick_do_timer_cpu == -1) { 152 if (tick_do_timer_cpu == TICK_DO_TIMER_BOOT) {
152 tick_do_timer_cpu = cpu; 153 tick_do_timer_cpu = cpu;
153 tick_next_period = ktime_get(); 154 tick_next_period = ktime_get();
154 tick_period = ktime_set(0, NSEC_PER_SEC / HZ); 155 tick_period = ktime_set(0, NSEC_PER_SEC / HZ);
@@ -161,6 +162,7 @@ static void tick_setup_device(struct tick_device *td,
161 } else { 162 } else {
162 handler = td->evtdev->event_handler; 163 handler = td->evtdev->event_handler;
163 next_event = td->evtdev->next_event; 164 next_event = td->evtdev->next_event;
165 td->evtdev->event_handler = clockevents_handle_noop;
164 } 166 }
165 167
166 td->evtdev = newdev; 168 td->evtdev = newdev;
@@ -248,7 +250,7 @@ static int tick_check_new_device(struct clock_event_device *newdev)
248 * not give it back to the clockevents layer ! 250 * not give it back to the clockevents layer !
249 */ 251 */
250 if (tick_is_broadcast_device(curdev)) { 252 if (tick_is_broadcast_device(curdev)) {
251 clockevents_set_mode(curdev, CLOCK_EVT_MODE_SHUTDOWN); 253 clockevents_shutdown(curdev);
252 curdev = NULL; 254 curdev = NULL;
253 } 255 }
254 clockevents_exchange_device(curdev, newdev); 256 clockevents_exchange_device(curdev, newdev);
@@ -299,7 +301,8 @@ static void tick_shutdown(unsigned int *cpup)
299 if (*cpup == tick_do_timer_cpu) { 301 if (*cpup == tick_do_timer_cpu) {
300 int cpu = first_cpu(cpu_online_map); 302 int cpu = first_cpu(cpu_online_map);
301 303
302 tick_do_timer_cpu = (cpu != NR_CPUS) ? cpu : -1; 304 tick_do_timer_cpu = (cpu != NR_CPUS) ? cpu :
305 TICK_DO_TIMER_NONE;
303 } 306 }
304 spin_unlock_irqrestore(&tick_device_lock, flags); 307 spin_unlock_irqrestore(&tick_device_lock, flags);
305} 308}
@@ -310,7 +313,7 @@ static void tick_suspend(void)
310 unsigned long flags; 313 unsigned long flags;
311 314
312 spin_lock_irqsave(&tick_device_lock, flags); 315 spin_lock_irqsave(&tick_device_lock, flags);
313 clockevents_set_mode(td->evtdev, CLOCK_EVT_MODE_SHUTDOWN); 316 clockevents_shutdown(td->evtdev);
314 spin_unlock_irqrestore(&tick_device_lock, flags); 317 spin_unlock_irqrestore(&tick_device_lock, flags);
315} 318}
316 319
diff --git a/kernel/time/tick-internal.h b/kernel/time/tick-internal.h
index f13f2b7f4fd..469248782c2 100644
--- a/kernel/time/tick-internal.h
+++ b/kernel/time/tick-internal.h
@@ -1,6 +1,10 @@
1/* 1/*
2 * tick internal variable and functions used by low/high res code 2 * tick internal variable and functions used by low/high res code
3 */ 3 */
4
5#define TICK_DO_TIMER_NONE -1
6#define TICK_DO_TIMER_BOOT -2
7
4DECLARE_PER_CPU(struct tick_device, tick_cpu_device); 8DECLARE_PER_CPU(struct tick_device, tick_cpu_device);
5extern spinlock_t tick_device_lock; 9extern spinlock_t tick_device_lock;
6extern ktime_t tick_next_period; 10extern ktime_t tick_next_period;
@@ -10,6 +14,8 @@ extern int tick_do_timer_cpu __read_mostly;
10extern void tick_setup_periodic(struct clock_event_device *dev, int broadcast); 14extern void tick_setup_periodic(struct clock_event_device *dev, int broadcast);
11extern void tick_handle_periodic(struct clock_event_device *dev); 15extern void tick_handle_periodic(struct clock_event_device *dev);
12 16
17extern void clockevents_shutdown(struct clock_event_device *dev);
18
13/* 19/*
14 * NO_HZ / high resolution timer shared code 20 * NO_HZ / high resolution timer shared code
15 */ 21 */
@@ -17,6 +23,8 @@ extern void tick_handle_periodic(struct clock_event_device *dev);
17extern void tick_setup_oneshot(struct clock_event_device *newdev, 23extern void tick_setup_oneshot(struct clock_event_device *newdev,
18 void (*handler)(struct clock_event_device *), 24 void (*handler)(struct clock_event_device *),
19 ktime_t nextevt); 25 ktime_t nextevt);
26extern int tick_dev_program_event(struct clock_event_device *dev,
27 ktime_t expires, int force);
20extern int tick_program_event(ktime_t expires, int force); 28extern int tick_program_event(ktime_t expires, int force);
21extern void tick_oneshot_notify(void); 29extern void tick_oneshot_notify(void);
22extern int tick_switch_to_oneshot(void (*handler)(struct clock_event_device *)); 30extern int tick_switch_to_oneshot(void (*handler)(struct clock_event_device *));
@@ -27,6 +35,7 @@ extern void tick_broadcast_oneshot_control(unsigned long reason);
27extern void tick_broadcast_switch_to_oneshot(void); 35extern void tick_broadcast_switch_to_oneshot(void);
28extern void tick_shutdown_broadcast_oneshot(unsigned int *cpup); 36extern void tick_shutdown_broadcast_oneshot(unsigned int *cpup);
29extern int tick_resume_broadcast_oneshot(struct clock_event_device *bc); 37extern int tick_resume_broadcast_oneshot(struct clock_event_device *bc);
38extern int tick_broadcast_oneshot_active(void);
30# else /* BROADCAST */ 39# else /* BROADCAST */
31static inline void tick_broadcast_setup_oneshot(struct clock_event_device *bc) 40static inline void tick_broadcast_setup_oneshot(struct clock_event_device *bc)
32{ 41{
@@ -35,6 +44,7 @@ static inline void tick_broadcast_setup_oneshot(struct clock_event_device *bc)
35static inline void tick_broadcast_oneshot_control(unsigned long reason) { } 44static inline void tick_broadcast_oneshot_control(unsigned long reason) { }
36static inline void tick_broadcast_switch_to_oneshot(void) { } 45static inline void tick_broadcast_switch_to_oneshot(void) { }
37static inline void tick_shutdown_broadcast_oneshot(unsigned int *cpup) { } 46static inline void tick_shutdown_broadcast_oneshot(unsigned int *cpup) { }
47static inline int tick_broadcast_oneshot_active(void) { return 0; }
38# endif /* !BROADCAST */ 48# endif /* !BROADCAST */
39 49
40#else /* !ONESHOT */ 50#else /* !ONESHOT */
@@ -64,6 +74,7 @@ static inline int tick_resume_broadcast_oneshot(struct clock_event_device *bc)
64{ 74{
65 return 0; 75 return 0;
66} 76}
77static inline int tick_broadcast_oneshot_active(void) { return 0; }
67#endif /* !TICK_ONESHOT */ 78#endif /* !TICK_ONESHOT */
68 79
69/* 80/*
diff --git a/kernel/time/tick-oneshot.c b/kernel/time/tick-oneshot.c
index 450c04935b6..2e8de678e76 100644
--- a/kernel/time/tick-oneshot.c
+++ b/kernel/time/tick-oneshot.c
@@ -23,24 +23,56 @@
23#include "tick-internal.h" 23#include "tick-internal.h"
24 24
25/** 25/**
26 * tick_program_event 26 * tick_program_event internal worker function
27 */ 27 */
28int tick_program_event(ktime_t expires, int force) 28int tick_dev_program_event(struct clock_event_device *dev, ktime_t expires,
29 int force)
29{ 30{
30 struct clock_event_device *dev = __get_cpu_var(tick_cpu_device).evtdev;
31 ktime_t now = ktime_get(); 31 ktime_t now = ktime_get();
32 int i;
32 33
33 while (1) { 34 for (i = 0;;) {
34 int ret = clockevents_program_event(dev, expires, now); 35 int ret = clockevents_program_event(dev, expires, now);
35 36
36 if (!ret || !force) 37 if (!ret || !force)
37 return ret; 38 return ret;
39
40 /*
41 * We tried 2 times to program the device with the given
42 * min_delta_ns. If that's not working then we double it
43 * and emit a warning.
44 */
45 if (++i > 2) {
46 /* Increase the min. delta and try again */
47 if (!dev->min_delta_ns)
48 dev->min_delta_ns = 5000;
49 else
50 dev->min_delta_ns += dev->min_delta_ns >> 1;
51
52 printk(KERN_WARNING
53 "CE: %s increasing min_delta_ns to %lu nsec\n",
54 dev->name ? dev->name : "?",
55 dev->min_delta_ns << 1);
56
57 i = 0;
58 }
59
38 now = ktime_get(); 60 now = ktime_get();
39 expires = ktime_add(now, ktime_set(0, dev->min_delta_ns)); 61 expires = ktime_add_ns(now, dev->min_delta_ns);
40 } 62 }
41} 63}
42 64
43/** 65/**
66 * tick_program_event
67 */
68int tick_program_event(ktime_t expires, int force)
69{
70 struct clock_event_device *dev = __get_cpu_var(tick_cpu_device).evtdev;
71
72 return tick_dev_program_event(dev, expires, force);
73}
74
75/**
44 * tick_resume_onshot - resume oneshot mode 76 * tick_resume_onshot - resume oneshot mode
45 */ 77 */
46void tick_resume_oneshot(void) 78void tick_resume_oneshot(void)
@@ -61,7 +93,7 @@ void tick_setup_oneshot(struct clock_event_device *newdev,
61{ 93{
62 newdev->event_handler = handler; 94 newdev->event_handler = handler;
63 clockevents_set_mode(newdev, CLOCK_EVT_MODE_ONESHOT); 95 clockevents_set_mode(newdev, CLOCK_EVT_MODE_ONESHOT);
64 clockevents_program_event(newdev, next_event, ktime_get()); 96 tick_dev_program_event(newdev, next_event, 1);
65} 97}
66 98
67/** 99/**
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index f5da526424a..cb02324bdb8 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -75,6 +75,9 @@ static void tick_do_update_jiffies64(ktime_t now)
75 incr * ticks); 75 incr * ticks);
76 } 76 }
77 do_timer(++ticks); 77 do_timer(++ticks);
78
79 /* Keep the tick_next_period variable up to date */
80 tick_next_period = ktime_add(last_jiffies_update, tick_period);
78 } 81 }
79 write_sequnlock(&xtime_lock); 82 write_sequnlock(&xtime_lock);
80} 83}
@@ -162,6 +165,8 @@ void tick_nohz_stop_idle(int cpu)
162 ts->idle_lastupdate = now; 165 ts->idle_lastupdate = now;
163 ts->idle_sleeptime = ktime_add(ts->idle_sleeptime, delta); 166 ts->idle_sleeptime = ktime_add(ts->idle_sleeptime, delta);
164 ts->idle_active = 0; 167 ts->idle_active = 0;
168
169 sched_clock_idle_wakeup_event(0);
165 } 170 }
166} 171}
167 172
@@ -177,6 +182,7 @@ static ktime_t tick_nohz_start_idle(struct tick_sched *ts)
177 } 182 }
178 ts->idle_entrytime = now; 183 ts->idle_entrytime = now;
179 ts->idle_active = 1; 184 ts->idle_active = 1;
185 sched_clock_idle_sleep_event();
180 return now; 186 return now;
181} 187}
182 188
@@ -218,7 +224,7 @@ void tick_nohz_stop_sched_tick(int inidle)
218 */ 224 */
219 if (unlikely(!cpu_online(cpu))) { 225 if (unlikely(!cpu_online(cpu))) {
220 if (cpu == tick_do_timer_cpu) 226 if (cpu == tick_do_timer_cpu)
221 tick_do_timer_cpu = -1; 227 tick_do_timer_cpu = TICK_DO_TIMER_NONE;
222 } 228 }
223 229
224 if (unlikely(ts->nohz_mode == NOHZ_MODE_INACTIVE)) 230 if (unlikely(ts->nohz_mode == NOHZ_MODE_INACTIVE))
@@ -300,7 +306,7 @@ void tick_nohz_stop_sched_tick(int inidle)
300 * invoked. 306 * invoked.
301 */ 307 */
302 if (cpu == tick_do_timer_cpu) 308 if (cpu == tick_do_timer_cpu)
303 tick_do_timer_cpu = -1; 309 tick_do_timer_cpu = TICK_DO_TIMER_NONE;
304 310
305 ts->idle_sleeps++; 311 ts->idle_sleeps++;
306 312
@@ -465,7 +471,7 @@ static void tick_nohz_handler(struct clock_event_device *dev)
465 * this duty, then the jiffies update is still serialized by 471 * this duty, then the jiffies update is still serialized by
466 * xtime_lock. 472 * xtime_lock.
467 */ 473 */
468 if (unlikely(tick_do_timer_cpu == -1)) 474 if (unlikely(tick_do_timer_cpu == TICK_DO_TIMER_NONE))
469 tick_do_timer_cpu = cpu; 475 tick_do_timer_cpu = cpu;
470 476
471 /* Check, if the jiffies need an update */ 477 /* Check, if the jiffies need an update */
@@ -567,7 +573,7 @@ static enum hrtimer_restart tick_sched_timer(struct hrtimer *timer)
567 * this duty, then the jiffies update is still serialized by 573 * this duty, then the jiffies update is still serialized by
568 * xtime_lock. 574 * xtime_lock.
569 */ 575 */
570 if (unlikely(tick_do_timer_cpu == -1)) 576 if (unlikely(tick_do_timer_cpu == TICK_DO_TIMER_NONE))
571 tick_do_timer_cpu = cpu; 577 tick_do_timer_cpu = cpu;
572#endif 578#endif
573 579
@@ -619,7 +625,7 @@ void tick_setup_sched_timer(void)
619 */ 625 */
620 hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); 626 hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
621 ts->sched_timer.function = tick_sched_timer; 627 ts->sched_timer.function = tick_sched_timer;
622 ts->sched_timer.cb_mode = HRTIMER_CB_IRQSAFE_NO_SOFTIRQ; 628 ts->sched_timer.cb_mode = HRTIMER_CB_IRQSAFE_PERCPU;
623 629
624 /* Get the next period (per cpu) */ 630 /* Get the next period (per cpu) */
625 ts->sched_timer.expires = tick_init_jiffy_update(); 631 ts->sched_timer.expires = tick_init_jiffy_update();
@@ -643,17 +649,21 @@ void tick_setup_sched_timer(void)
643 ts->nohz_mode = NOHZ_MODE_HIGHRES; 649 ts->nohz_mode = NOHZ_MODE_HIGHRES;
644#endif 650#endif
645} 651}
652#endif /* HIGH_RES_TIMERS */
646 653
654#if defined CONFIG_NO_HZ || defined CONFIG_HIGH_RES_TIMERS
647void tick_cancel_sched_timer(int cpu) 655void tick_cancel_sched_timer(int cpu)
648{ 656{
649 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); 657 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu);
650 658
659# ifdef CONFIG_HIGH_RES_TIMERS
651 if (ts->sched_timer.base) 660 if (ts->sched_timer.base)
652 hrtimer_cancel(&ts->sched_timer); 661 hrtimer_cancel(&ts->sched_timer);
662# endif
653 663
654 ts->nohz_mode = NOHZ_MODE_INACTIVE; 664 ts->nohz_mode = NOHZ_MODE_INACTIVE;
655} 665}
656#endif /* HIGH_RES_TIMERS */ 666#endif
657 667
658/** 668/**
659 * Async notification about clocksource changes 669 * Async notification about clocksource changes
diff --git a/kernel/trace/trace_sysprof.c b/kernel/trace/trace_sysprof.c
index bb948e52ce2..db58fb66a13 100644
--- a/kernel/trace/trace_sysprof.c
+++ b/kernel/trace/trace_sysprof.c
@@ -202,7 +202,7 @@ static void start_stack_timer(int cpu)
202 202
203 hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); 203 hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
204 hrtimer->function = stack_trace_timer_fn; 204 hrtimer->function = stack_trace_timer_fn;
205 hrtimer->cb_mode = HRTIMER_CB_IRQSAFE_NO_SOFTIRQ; 205 hrtimer->cb_mode = HRTIMER_CB_IRQSAFE_PERCPU;
206 206
207 hrtimer_start(hrtimer, ns_to_ktime(sample_period), HRTIMER_MODE_REL); 207 hrtimer_start(hrtimer, ns_to_ktime(sample_period), HRTIMER_MODE_REL);
208} 208}
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
index a9ab0596de4..532858fa5b8 100644
--- a/kernel/user_namespace.c
+++ b/kernel/user_namespace.c
@@ -6,7 +6,6 @@
6 */ 6 */
7 7
8#include <linux/module.h> 8#include <linux/module.h>
9#include <linux/version.h>
10#include <linux/nsproxy.h> 9#include <linux/nsproxy.h>
11#include <linux/slab.h> 10#include <linux/slab.h>
12#include <linux/user_namespace.h> 11#include <linux/user_namespace.h>
diff --git a/kernel/utsname.c b/kernel/utsname.c
index 64d398f1244..815237a55af 100644
--- a/kernel/utsname.c
+++ b/kernel/utsname.c
@@ -12,7 +12,6 @@
12#include <linux/module.h> 12#include <linux/module.h>
13#include <linux/uts.h> 13#include <linux/uts.h>
14#include <linux/utsname.h> 14#include <linux/utsname.h>
15#include <linux/version.h>
16#include <linux/err.h> 15#include <linux/err.h>
17#include <linux/slab.h> 16#include <linux/slab.h>
18 17
diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c
index fe3a56c2256..4ab9659d269 100644
--- a/kernel/utsname_sysctl.c
+++ b/kernel/utsname_sysctl.c
@@ -12,7 +12,6 @@
12#include <linux/module.h> 12#include <linux/module.h>
13#include <linux/uts.h> 13#include <linux/uts.h>
14#include <linux/utsname.h> 14#include <linux/utsname.h>
15#include <linux/version.h>
16#include <linux/sysctl.h> 15#include <linux/sysctl.h>
17 16
18static void *get_uts(ctl_table *table, int write) 17static void *get_uts(ctl_table *table, int write)
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 8b5a7d304a5..0b504814e37 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -394,7 +394,7 @@ config LOCKDEP
394 bool 394 bool
395 depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 395 depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
396 select STACKTRACE 396 select STACKTRACE
397 select FRAME_POINTER if !X86 && !MIPS 397 select FRAME_POINTER if !X86 && !MIPS && !PPC
398 select KALLSYMS 398 select KALLSYMS
399 select KALLSYMS_ALL 399 select KALLSYMS_ALL
400 400
@@ -676,13 +676,13 @@ config FAULT_INJECTION_STACKTRACE_FILTER
676 depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT 676 depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
677 depends on !X86_64 677 depends on !X86_64
678 select STACKTRACE 678 select STACKTRACE
679 select FRAME_POINTER 679 select FRAME_POINTER if !PPC
680 help 680 help
681 Provide stacktrace filter for fault-injection capabilities 681 Provide stacktrace filter for fault-injection capabilities
682 682
683config LATENCYTOP 683config LATENCYTOP
684 bool "Latency measuring infrastructure" 684 bool "Latency measuring infrastructure"
685 select FRAME_POINTER if !MIPS 685 select FRAME_POINTER if !MIPS && !PPC
686 select KALLSYMS 686 select KALLSYMS
687 select KALLSYMS_ALL 687 select KALLSYMS_ALL
688 select STACKTRACE 688 select STACKTRACE
diff --git a/lib/debugobjects.c b/lib/debugobjects.c
index 45a6bde762d..e3ab374e133 100644
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
@@ -112,6 +112,7 @@ static struct debug_obj *lookup_object(void *addr, struct debug_bucket *b)
112 112
113/* 113/*
114 * Allocate a new object. If the pool is empty, switch off the debugger. 114 * Allocate a new object. If the pool is empty, switch off the debugger.
115 * Must be called with interrupts disabled.
115 */ 116 */
116static struct debug_obj * 117static struct debug_obj *
117alloc_object(void *addr, struct debug_bucket *b, struct debug_obj_descr *descr) 118alloc_object(void *addr, struct debug_bucket *b, struct debug_obj_descr *descr)
@@ -148,17 +149,18 @@ alloc_object(void *addr, struct debug_bucket *b, struct debug_obj_descr *descr)
148static void free_object(struct debug_obj *obj) 149static void free_object(struct debug_obj *obj)
149{ 150{
150 unsigned long idx = (unsigned long)(obj - obj_static_pool); 151 unsigned long idx = (unsigned long)(obj - obj_static_pool);
152 unsigned long flags;
151 153
152 if (obj_pool_free < ODEBUG_POOL_SIZE || idx < ODEBUG_POOL_SIZE) { 154 if (obj_pool_free < ODEBUG_POOL_SIZE || idx < ODEBUG_POOL_SIZE) {
153 spin_lock(&pool_lock); 155 spin_lock_irqsave(&pool_lock, flags);
154 hlist_add_head(&obj->node, &obj_pool); 156 hlist_add_head(&obj->node, &obj_pool);
155 obj_pool_free++; 157 obj_pool_free++;
156 obj_pool_used--; 158 obj_pool_used--;
157 spin_unlock(&pool_lock); 159 spin_unlock_irqrestore(&pool_lock, flags);
158 } else { 160 } else {
159 spin_lock(&pool_lock); 161 spin_lock_irqsave(&pool_lock, flags);
160 obj_pool_used--; 162 obj_pool_used--;
161 spin_unlock(&pool_lock); 163 spin_unlock_irqrestore(&pool_lock, flags);
162 kmem_cache_free(obj_cache, obj); 164 kmem_cache_free(obj_cache, obj);
163 } 165 }
164} 166}
@@ -171,6 +173,7 @@ static void debug_objects_oom(void)
171{ 173{
172 struct debug_bucket *db = obj_hash; 174 struct debug_bucket *db = obj_hash;
173 struct hlist_node *node, *tmp; 175 struct hlist_node *node, *tmp;
176 HLIST_HEAD(freelist);
174 struct debug_obj *obj; 177 struct debug_obj *obj;
175 unsigned long flags; 178 unsigned long flags;
176 int i; 179 int i;
@@ -179,11 +182,14 @@ static void debug_objects_oom(void)
179 182
180 for (i = 0; i < ODEBUG_HASH_SIZE; i++, db++) { 183 for (i = 0; i < ODEBUG_HASH_SIZE; i++, db++) {
181 spin_lock_irqsave(&db->lock, flags); 184 spin_lock_irqsave(&db->lock, flags);
182 hlist_for_each_entry_safe(obj, node, tmp, &db->list, node) { 185 hlist_move_list(&db->list, &freelist);
186 spin_unlock_irqrestore(&db->lock, flags);
187
188 /* Now free them */
189 hlist_for_each_entry_safe(obj, node, tmp, &freelist, node) {
183 hlist_del(&obj->node); 190 hlist_del(&obj->node);
184 free_object(obj); 191 free_object(obj);
185 } 192 }
186 spin_unlock_irqrestore(&db->lock, flags);
187 } 193 }
188} 194}
189 195
@@ -498,8 +504,9 @@ void debug_object_free(void *addr, struct debug_obj_descr *descr)
498 return; 504 return;
499 default: 505 default:
500 hlist_del(&obj->node); 506 hlist_del(&obj->node);
507 spin_unlock_irqrestore(&db->lock, flags);
501 free_object(obj); 508 free_object(obj);
502 break; 509 return;
503 } 510 }
504out_unlock: 511out_unlock:
505 spin_unlock_irqrestore(&db->lock, flags); 512 spin_unlock_irqrestore(&db->lock, flags);
@@ -510,6 +517,7 @@ static void __debug_check_no_obj_freed(const void *address, unsigned long size)
510{ 517{
511 unsigned long flags, oaddr, saddr, eaddr, paddr, chunks; 518 unsigned long flags, oaddr, saddr, eaddr, paddr, chunks;
512 struct hlist_node *node, *tmp; 519 struct hlist_node *node, *tmp;
520 HLIST_HEAD(freelist);
513 struct debug_obj_descr *descr; 521 struct debug_obj_descr *descr;
514 enum debug_obj_state state; 522 enum debug_obj_state state;
515 struct debug_bucket *db; 523 struct debug_bucket *db;
@@ -545,11 +553,18 @@ repeat:
545 goto repeat; 553 goto repeat;
546 default: 554 default:
547 hlist_del(&obj->node); 555 hlist_del(&obj->node);
548 free_object(obj); 556 hlist_add_head(&obj->node, &freelist);
549 break; 557 break;
550 } 558 }
551 } 559 }
552 spin_unlock_irqrestore(&db->lock, flags); 560 spin_unlock_irqrestore(&db->lock, flags);
561
562 /* Now free them */
563 hlist_for_each_entry_safe(obj, node, tmp, &freelist, node) {
564 hlist_del(&obj->node);
565 free_object(obj);
566 }
567
553 if (cnt > debug_objects_maxchain) 568 if (cnt > debug_objects_maxchain)
554 debug_objects_maxchain = cnt; 569 debug_objects_maxchain = cnt;
555 } 570 }
diff --git a/lib/kobject.c b/lib/kobject.c
index bd732ffebc8..fbf0ae28237 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -223,8 +223,7 @@ static int kobject_set_name_vargs(struct kobject *kobj, const char *fmt,
223 return -ENOMEM; 223 return -ENOMEM;
224 224
225 /* ewww... some of these buggers have '/' in the name ... */ 225 /* ewww... some of these buggers have '/' in the name ... */
226 s = strchr(kobj->name, '/'); 226 while ((s = strchr(kobj->name, '/')))
227 if (s)
228 s[0] = '!'; 227 s[0] = '!';
229 228
230 kfree(old_name); 229 kfree(old_name);
diff --git a/lib/scatterlist.c b/lib/scatterlist.c
index 876ba6d5b67..8d2688ff135 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -422,9 +422,12 @@ static size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents,
422{ 422{
423 unsigned int offset = 0; 423 unsigned int offset = 0;
424 struct sg_mapping_iter miter; 424 struct sg_mapping_iter miter;
425 unsigned long flags;
425 426
426 sg_miter_start(&miter, sgl, nents, SG_MITER_ATOMIC); 427 sg_miter_start(&miter, sgl, nents, SG_MITER_ATOMIC);
427 428
429 local_irq_save(flags);
430
428 while (sg_miter_next(&miter) && offset < buflen) { 431 while (sg_miter_next(&miter) && offset < buflen) {
429 unsigned int len; 432 unsigned int len;
430 433
@@ -442,6 +445,7 @@ static size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents,
442 445
443 sg_miter_stop(&miter); 446 sg_miter_stop(&miter);
444 447
448 local_irq_restore(flags);
445 return offset; 449 return offset;
446} 450}
447 451
diff --git a/lib/swiotlb.c b/lib/swiotlb.c
index 977edbdbc1d..8826fdf0f18 100644
--- a/lib/swiotlb.c
+++ b/lib/swiotlb.c
@@ -491,7 +491,7 @@ swiotlb_alloc_coherent(struct device *hwdev, size_t size,
491 * the lowest available address range. 491 * the lowest available address range.
492 */ 492 */
493 dma_addr_t handle; 493 dma_addr_t handle;
494 handle = swiotlb_map_single(NULL, NULL, size, DMA_FROM_DEVICE); 494 handle = swiotlb_map_single(hwdev, NULL, size, DMA_FROM_DEVICE);
495 if (swiotlb_dma_mapping_error(hwdev, handle)) 495 if (swiotlb_dma_mapping_error(hwdev, handle))
496 return NULL; 496 return NULL;
497 497
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index d8d1d114224..c399bc1093c 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -27,6 +27,7 @@
27 27
28#include <asm/page.h> /* for PAGE_SIZE */ 28#include <asm/page.h> /* for PAGE_SIZE */
29#include <asm/div64.h> 29#include <asm/div64.h>
30#include <asm/sections.h> /* for dereference_function_descriptor() */
30 31
31/* Works only for digits and letters, but small and fast */ 32/* Works only for digits and letters, but small and fast */
32#define TOLOWER(x) ((x) | 0x20) 33#define TOLOWER(x) ((x) | 0x20)
@@ -513,16 +514,6 @@ static char *string(char *buf, char *end, char *s, int field_width, int precisio
513 return buf; 514 return buf;
514} 515}
515 516
516static inline void *dereference_function_descriptor(void *ptr)
517{
518#if defined(CONFIG_IA64) || defined(CONFIG_PPC64)
519 void *p;
520 if (!probe_kernel_address(ptr, p))
521 ptr = p;
522#endif
523 return ptr;
524}
525
526static char *symbol_string(char *buf, char *end, void *ptr, int field_width, int precision, int flags) 517static char *symbol_string(char *buf, char *end, void *ptr, int field_width, int precision, int flags)
527{ 518{
528 unsigned long value = (unsigned long) ptr; 519 unsigned long value = (unsigned long) ptr;
diff --git a/mm/filemap.c b/mm/filemap.c
index 54e96865085..876bc595d0f 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -2129,13 +2129,20 @@ generic_file_direct_write(struct kiocb *iocb, const struct iovec *iov,
2129 * After a write we want buffered reads to be sure to go to disk to get 2129 * After a write we want buffered reads to be sure to go to disk to get
2130 * the new data. We invalidate clean cached page from the region we're 2130 * the new data. We invalidate clean cached page from the region we're
2131 * about to write. We do this *before* the write so that we can return 2131 * about to write. We do this *before* the write so that we can return
2132 * -EIO without clobbering -EIOCBQUEUED from ->direct_IO(). 2132 * without clobbering -EIOCBQUEUED from ->direct_IO().
2133 */ 2133 */
2134 if (mapping->nrpages) { 2134 if (mapping->nrpages) {
2135 written = invalidate_inode_pages2_range(mapping, 2135 written = invalidate_inode_pages2_range(mapping,
2136 pos >> PAGE_CACHE_SHIFT, end); 2136 pos >> PAGE_CACHE_SHIFT, end);
2137 if (written) 2137 /*
2138 * If a page can not be invalidated, return 0 to fall back
2139 * to buffered write.
2140 */
2141 if (written) {
2142 if (written == -EBUSY)
2143 return 0;
2138 goto out; 2144 goto out;
2145 }
2139 } 2146 }
2140 2147
2141 written = mapping->a_ops->direct_IO(WRITE, iocb, iov, pos, *nr_segs); 2148 written = mapping->a_ops->direct_IO(WRITE, iocb, iov, pos, *nr_segs);
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 0f1f7a7374b..36896f3eb7f 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -250,6 +250,14 @@ static struct mem_cgroup *mem_cgroup_from_cont(struct cgroup *cont)
250 250
251struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p) 251struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p)
252{ 252{
253 /*
254 * mm_update_next_owner() may clear mm->owner to NULL
255 * if it races with swapoff, page migration, etc.
256 * So this can be called with p == NULL.
257 */
258 if (unlikely(!p))
259 return NULL;
260
253 return container_of(task_subsys_state(p, mem_cgroup_subsys_id), 261 return container_of(task_subsys_state(p, mem_cgroup_subsys_id),
254 struct mem_cgroup, css); 262 struct mem_cgroup, css);
255} 263}
@@ -549,6 +557,11 @@ static int mem_cgroup_charge_common(struct page *page, struct mm_struct *mm,
549 if (likely(!memcg)) { 557 if (likely(!memcg)) {
550 rcu_read_lock(); 558 rcu_read_lock();
551 mem = mem_cgroup_from_task(rcu_dereference(mm->owner)); 559 mem = mem_cgroup_from_task(rcu_dereference(mm->owner));
560 if (unlikely(!mem)) {
561 rcu_read_unlock();
562 kmem_cache_free(page_cgroup_cache, pc);
563 return 0;
564 }
552 /* 565 /*
553 * For every charge from the cgroup, increment reference count 566 * For every charge from the cgroup, increment reference count
554 */ 567 */
@@ -801,11 +814,16 @@ int mem_cgroup_shrink_usage(struct mm_struct *mm, gfp_t gfp_mask)
801 814
802 rcu_read_lock(); 815 rcu_read_lock();
803 mem = mem_cgroup_from_task(rcu_dereference(mm->owner)); 816 mem = mem_cgroup_from_task(rcu_dereference(mm->owner));
817 if (unlikely(!mem)) {
818 rcu_read_unlock();
819 return 0;
820 }
804 css_get(&mem->css); 821 css_get(&mem->css);
805 rcu_read_unlock(); 822 rcu_read_unlock();
806 823
807 do { 824 do {
808 progress = try_to_free_mem_cgroup_pages(mem, gfp_mask); 825 progress = try_to_free_mem_cgroup_pages(mem, gfp_mask);
826 progress += res_counter_check_under_limit(&mem->res);
809 } while (!progress && --retry); 827 } while (!progress && --retry);
810 828
811 css_put(&mem->css); 829 css_put(&mem->css);
diff --git a/mm/mmap.c b/mm/mmap.c
index 339cf5c4d5d..e7a5a68a9c2 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1030,6 +1030,10 @@ unsigned long do_mmap_pgoff(struct file * file, unsigned long addr,
1030 } else { 1030 } else {
1031 switch (flags & MAP_TYPE) { 1031 switch (flags & MAP_TYPE) {
1032 case MAP_SHARED: 1032 case MAP_SHARED:
1033 /*
1034 * Ignore pgoff.
1035 */
1036 pgoff = 0;
1033 vm_flags |= VM_SHARED | VM_MAYSHARE; 1037 vm_flags |= VM_SHARED | VM_MAYSHARE;
1034 break; 1038 break;
1035 case MAP_PRIVATE: 1039 case MAP_PRIVATE:
diff --git a/mm/mmzone.c b/mm/mmzone.c
index 486ed595ee6..16ce8b955dc 100644
--- a/mm/mmzone.c
+++ b/mm/mmzone.c
@@ -69,6 +69,6 @@ struct zoneref *next_zones_zonelist(struct zoneref *z,
69 (z->zone && !zref_in_nodemask(z, nodes))) 69 (z->zone && !zref_in_nodemask(z, nodes)))
70 z++; 70 z++;
71 71
72 *zone = zonelist_zone(z++); 72 *zone = zonelist_zone(z);
73 return z; 73 return z;
74} 74}
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index af982f7cdb2..27b8681139f 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -268,13 +268,14 @@ void prep_compound_page(struct page *page, unsigned long order)
268{ 268{
269 int i; 269 int i;
270 int nr_pages = 1 << order; 270 int nr_pages = 1 << order;
271 struct page *p = page + 1;
271 272
272 set_compound_page_dtor(page, free_compound_page); 273 set_compound_page_dtor(page, free_compound_page);
273 set_compound_order(page, order); 274 set_compound_order(page, order);
274 __SetPageHead(page); 275 __SetPageHead(page);
275 for (i = 1; i < nr_pages; i++) { 276 for (i = 1; i < nr_pages; i++, p++) {
276 struct page *p = page + i; 277 if (unlikely((i & (MAX_ORDER_NR_PAGES - 1)) == 0))
277 278 p = pfn_to_page(page_to_pfn(page) + i);
278 __SetPageTail(p); 279 __SetPageTail(p);
279 p->first_page = page; 280 p->first_page = page;
280 } 281 }
@@ -284,6 +285,7 @@ static void destroy_compound_page(struct page *page, unsigned long order)
284{ 285{
285 int i; 286 int i;
286 int nr_pages = 1 << order; 287 int nr_pages = 1 << order;
288 struct page *p = page + 1;
287 289
288 if (unlikely(compound_order(page) != order)) 290 if (unlikely(compound_order(page) != order))
289 bad_page(page); 291 bad_page(page);
@@ -291,8 +293,9 @@ static void destroy_compound_page(struct page *page, unsigned long order)
291 if (unlikely(!PageHead(page))) 293 if (unlikely(!PageHead(page)))
292 bad_page(page); 294 bad_page(page);
293 __ClearPageHead(page); 295 __ClearPageHead(page);
294 for (i = 1; i < nr_pages; i++) { 296 for (i = 1; i < nr_pages; i++, p++) {
295 struct page *p = page + i; 297 if (unlikely((i & (MAX_ORDER_NR_PAGES - 1)) == 0))
298 p = pfn_to_page(page_to_pfn(page) + i);
296 299
297 if (unlikely(!PageTail(p) | 300 if (unlikely(!PageTail(p) |
298 (p->first_page != page))) 301 (p->first_page != page)))
@@ -694,6 +697,9 @@ static int move_freepages(struct zone *zone,
694#endif 697#endif
695 698
696 for (page = start_page; page <= end_page;) { 699 for (page = start_page; page <= end_page;) {
700 /* Make sure we are not inadvertently changing nodes */
701 VM_BUG_ON(page_to_nid(page) != zone_to_nid(zone));
702
697 if (!pfn_valid_within(page_to_pfn(page))) { 703 if (!pfn_valid_within(page_to_pfn(page))) {
698 page++; 704 page++;
699 continue; 705 continue;
@@ -2516,6 +2522,10 @@ static void setup_zone_migrate_reserve(struct zone *zone)
2516 continue; 2522 continue;
2517 page = pfn_to_page(pfn); 2523 page = pfn_to_page(pfn);
2518 2524
2525 /* Watch out for overlapping nodes */
2526 if (page_to_nid(page) != zone_to_nid(zone))
2527 continue;
2528
2519 /* Blocks with reserved pages will never free, skip them. */ 2529 /* Blocks with reserved pages will never free, skip them. */
2520 if (PageReserved(page)) 2530 if (PageReserved(page))
2521 continue; 2531 continue;
@@ -4064,7 +4074,7 @@ void __init set_dma_reserve(unsigned long new_dma_reserve)
4064} 4074}
4065 4075
4066#ifndef CONFIG_NEED_MULTIPLE_NODES 4076#ifndef CONFIG_NEED_MULTIPLE_NODES
4067struct pglist_data contig_page_data = { .bdata = &bootmem_node_data[0] }; 4077struct pglist_data __refdata contig_page_data = { .bdata = &bootmem_node_data[0] };
4068EXPORT_SYMBOL(contig_page_data); 4078EXPORT_SYMBOL(contig_page_data);
4069#endif 4079#endif
4070 4080
diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index 3444b58033c..b70a7fec1ff 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -2,7 +2,6 @@
2 * linux/mm/page_isolation.c 2 * linux/mm/page_isolation.c
3 */ 3 */
4 4
5#include <stddef.h>
6#include <linux/mm.h> 5#include <linux/mm.h>
7#include <linux/page-isolation.h> 6#include <linux/page-isolation.h>
8#include <linux/pageblock-flags.h> 7#include <linux/pageblock-flags.h>
@@ -115,8 +114,10 @@ __test_page_isolated_in_pageblock(unsigned long pfn, unsigned long end_pfn)
115 114
116int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn) 115int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn)
117{ 116{
118 unsigned long pfn; 117 unsigned long pfn, flags;
119 struct page *page; 118 struct page *page;
119 struct zone *zone;
120 int ret;
120 121
121 pfn = start_pfn; 122 pfn = start_pfn;
122 /* 123 /*
@@ -132,7 +133,9 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn)
132 if (pfn < end_pfn) 133 if (pfn < end_pfn)
133 return -EBUSY; 134 return -EBUSY;
134 /* Check all pages are free or Marked as ISOLATED */ 135 /* Check all pages are free or Marked as ISOLATED */
135 if (__test_page_isolated_in_pageblock(start_pfn, end_pfn)) 136 zone = page_zone(pfn_to_page(pfn));
136 return 0; 137 spin_lock_irqsave(&zone->lock, flags);
137 return -EBUSY; 138 ret = __test_page_isolated_in_pageblock(start_pfn, end_pfn);
139 spin_unlock_irqrestore(&zone->lock, flags);
140 return ret ? 0 : -EBUSY;
138} 141}
diff --git a/mm/quicklist.c b/mm/quicklist.c
index 3f703f7cb39..8dbb6805ef3 100644
--- a/mm/quicklist.c
+++ b/mm/quicklist.c
@@ -26,7 +26,10 @@ DEFINE_PER_CPU(struct quicklist, quicklist)[CONFIG_NR_QUICK];
26static unsigned long max_pages(unsigned long min_pages) 26static unsigned long max_pages(unsigned long min_pages)
27{ 27{
28 unsigned long node_free_pages, max; 28 unsigned long node_free_pages, max;
29 struct zone *zones = NODE_DATA(numa_node_id())->node_zones; 29 int node = numa_node_id();
30 struct zone *zones = NODE_DATA(node)->node_zones;
31 int num_cpus_on_node;
32 node_to_cpumask_ptr(cpumask_on_node, node);
30 33
31 node_free_pages = 34 node_free_pages =
32#ifdef CONFIG_ZONE_DMA 35#ifdef CONFIG_ZONE_DMA
@@ -38,6 +41,10 @@ static unsigned long max_pages(unsigned long min_pages)
38 zone_page_state(&zones[ZONE_NORMAL], NR_FREE_PAGES); 41 zone_page_state(&zones[ZONE_NORMAL], NR_FREE_PAGES);
39 42
40 max = node_free_pages / FRACTION_OF_NODE_MEM; 43 max = node_free_pages / FRACTION_OF_NODE_MEM;
44
45 num_cpus_on_node = cpus_weight_nr(*cpumask_on_node);
46 max /= num_cpus_on_node;
47
41 return max(max, min_pages); 48 return max(max, min_pages);
42} 49}
43 50
diff --git a/mm/slub.c b/mm/slub.c
index 4f5b9614945..0c83e6afe7b 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1932,6 +1932,7 @@ init_kmem_cache_node(struct kmem_cache_node *n, struct kmem_cache *s)
1932 INIT_LIST_HEAD(&n->partial); 1932 INIT_LIST_HEAD(&n->partial);
1933#ifdef CONFIG_SLUB_DEBUG 1933#ifdef CONFIG_SLUB_DEBUG
1934 atomic_long_set(&n->nr_slabs, 0); 1934 atomic_long_set(&n->nr_slabs, 0);
1935 atomic_long_set(&n->total_objects, 0);
1935 INIT_LIST_HEAD(&n->full); 1936 INIT_LIST_HEAD(&n->full);
1936#endif 1937#endif
1937} 1938}
@@ -2312,7 +2313,7 @@ static int kmem_cache_open(struct kmem_cache *s, gfp_t gfpflags,
2312 2313
2313 s->refcount = 1; 2314 s->refcount = 1;
2314#ifdef CONFIG_NUMA 2315#ifdef CONFIG_NUMA
2315 s->remote_node_defrag_ratio = 100; 2316 s->remote_node_defrag_ratio = 1000;
2316#endif 2317#endif
2317 if (!init_kmem_cache_nodes(s, gfpflags & ~SLUB_DMA)) 2318 if (!init_kmem_cache_nodes(s, gfpflags & ~SLUB_DMA))
2318 goto error; 2319 goto error;
@@ -4058,7 +4059,7 @@ static ssize_t remote_node_defrag_ratio_store(struct kmem_cache *s,
4058 if (err) 4059 if (err)
4059 return err; 4060 return err;
4060 4061
4061 if (ratio < 100) 4062 if (ratio <= 100)
4062 s->remote_node_defrag_ratio = ratio * 10; 4063 s->remote_node_defrag_ratio = ratio * 10;
4063 4064
4064 return length; 4065 return length;
diff --git a/mm/tiny-shmem.c b/mm/tiny-shmem.c
index ae532f50194..8d7a27a6335 100644
--- a/mm/tiny-shmem.c
+++ b/mm/tiny-shmem.c
@@ -65,31 +65,31 @@ struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags)
65 if (!dentry) 65 if (!dentry)
66 goto put_memory; 66 goto put_memory;
67 67
68 error = -ENFILE;
69 file = get_empty_filp();
70 if (!file)
71 goto put_dentry;
72
68 error = -ENOSPC; 73 error = -ENOSPC;
69 inode = ramfs_get_inode(root->d_sb, S_IFREG | S_IRWXUGO, 0); 74 inode = ramfs_get_inode(root->d_sb, S_IFREG | S_IRWXUGO, 0);
70 if (!inode) 75 if (!inode)
71 goto put_dentry; 76 goto close_file;
72 77
73 d_instantiate(dentry, inode); 78 d_instantiate(dentry, inode);
74 error = -ENFILE; 79 inode->i_size = size;
75 file = alloc_file(shm_mnt, dentry, FMODE_WRITE | FMODE_READ,
76 &ramfs_file_operations);
77 if (!file)
78 goto put_dentry;
79
80 inode->i_nlink = 0; /* It is unlinked */ 80 inode->i_nlink = 0; /* It is unlinked */
81 init_file(file, shm_mnt, dentry, FMODE_WRITE | FMODE_READ,
82 &ramfs_file_operations);
81 83
82 /* notify everyone as to the change of file size */ 84#ifndef CONFIG_MMU
83 error = do_truncate(dentry, size, 0, file); 85 error = ramfs_nommu_expand_for_mapping(inode, size);
84 if (error < 0) 86 if (error)
85 goto close_file; 87 goto close_file;
86 88#endif
87 return file; 89 return file;
88 90
89close_file: 91close_file:
90 put_filp(file); 92 put_filp(file);
91 return ERR_PTR(error);
92
93put_dentry: 93put_dentry:
94 dput(dentry); 94 dput(dentry);
95put_memory: 95put_memory:
diff --git a/mm/truncate.c b/mm/truncate.c
index 250505091d3..6650c1d878b 100644
--- a/mm/truncate.c
+++ b/mm/truncate.c
@@ -380,7 +380,7 @@ static int do_launder_page(struct address_space *mapping, struct page *page)
380 * Any pages which are found to be mapped into pagetables are unmapped prior to 380 * Any pages which are found to be mapped into pagetables are unmapped prior to
381 * invalidation. 381 * invalidation.
382 * 382 *
383 * Returns -EIO if any pages could not be invalidated. 383 * Returns -EBUSY if any pages could not be invalidated.
384 */ 384 */
385int invalidate_inode_pages2_range(struct address_space *mapping, 385int invalidate_inode_pages2_range(struct address_space *mapping,
386 pgoff_t start, pgoff_t end) 386 pgoff_t start, pgoff_t end)
@@ -440,7 +440,7 @@ int invalidate_inode_pages2_range(struct address_space *mapping,
440 ret2 = do_launder_page(mapping, page); 440 ret2 = do_launder_page(mapping, page);
441 if (ret2 == 0) { 441 if (ret2 == 0) {
442 if (!invalidate_complete_page2(mapping, page)) 442 if (!invalidate_complete_page2(mapping, page))
443 ret2 = -EIO; 443 ret2 = -EBUSY;
444 } 444 }
445 if (ret2 < 0) 445 if (ret2 < 0)
446 ret = ret2; 446 ret = ret2;
diff --git a/mm/vmstat.c b/mm/vmstat.c
index b0d08e667ec..d7826af2fb0 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -516,9 +516,26 @@ static void pagetypeinfo_showblockcount_print(struct seq_file *m,
516 continue; 516 continue;
517 517
518 page = pfn_to_page(pfn); 518 page = pfn_to_page(pfn);
519#ifdef CONFIG_ARCH_FLATMEM_HAS_HOLES
520 /*
521 * Ordinarily, memory holes in flatmem still have a valid
522 * memmap for the PFN range. However, an architecture for
523 * embedded systems (e.g. ARM) can free up the memmap backing
524 * holes to save memory on the assumption the memmap is
525 * never used. The page_zone linkages are then broken even
526 * though pfn_valid() returns true. Skip the page if the
527 * linkages are broken. Even if this test passed, the impact
528 * is that the counters for the movable type are off but
529 * fragmentation monitoring is likely meaningless on small
530 * systems.
531 */
532 if (page_zone(page) != zone)
533 continue;
534#endif
519 mtype = get_pageblock_migratetype(page); 535 mtype = get_pageblock_migratetype(page);
520 536
521 count[mtype]++; 537 if (mtype < MIGRATE_TYPES)
538 count[mtype]++;
522 } 539 }
523 540
524 /* Print counts */ 541 /* Print counts */
diff --git a/net/9p/client.c b/net/9p/client.c
index 2ffe40cf2f0..10e320307ec 100644
--- a/net/9p/client.c
+++ b/net/9p/client.c
@@ -75,7 +75,6 @@ static int parse_opts(char *opts, struct p9_client *clnt)
75 int option; 75 int option;
76 int ret = 0; 76 int ret = 0;
77 77
78 clnt->trans_mod = v9fs_default_trans();
79 clnt->dotu = 1; 78 clnt->dotu = 1;
80 clnt->msize = 8192; 79 clnt->msize = 8192;
81 80
@@ -108,7 +107,7 @@ static int parse_opts(char *opts, struct p9_client *clnt)
108 clnt->msize = option; 107 clnt->msize = option;
109 break; 108 break;
110 case Opt_trans: 109 case Opt_trans:
111 clnt->trans_mod = v9fs_match_trans(&args[0]); 110 clnt->trans_mod = v9fs_get_trans_by_name(&args[0]);
112 break; 111 break;
113 case Opt_legacy: 112 case Opt_legacy:
114 clnt->dotu = 0; 113 clnt->dotu = 0;
@@ -117,6 +116,10 @@ static int parse_opts(char *opts, struct p9_client *clnt)
117 continue; 116 continue;
118 } 117 }
119 } 118 }
119
120 if (!clnt->trans_mod)
121 clnt->trans_mod = v9fs_get_default_trans();
122
120 kfree(options); 123 kfree(options);
121 return ret; 124 return ret;
122} 125}
@@ -150,6 +153,7 @@ struct p9_client *p9_client_create(const char *dev_name, char *options)
150 if (!clnt) 153 if (!clnt)
151 return ERR_PTR(-ENOMEM); 154 return ERR_PTR(-ENOMEM);
152 155
156 clnt->trans_mod = NULL;
153 clnt->trans = NULL; 157 clnt->trans = NULL;
154 spin_lock_init(&clnt->lock); 158 spin_lock_init(&clnt->lock);
155 INIT_LIST_HEAD(&clnt->fidlist); 159 INIT_LIST_HEAD(&clnt->fidlist);
@@ -235,6 +239,8 @@ void p9_client_destroy(struct p9_client *clnt)
235 clnt->trans = NULL; 239 clnt->trans = NULL;
236 } 240 }
237 241
242 v9fs_put_trans(clnt->trans_mod);
243
238 list_for_each_entry_safe(fid, fidptr, &clnt->fidlist, flist) 244 list_for_each_entry_safe(fid, fidptr, &clnt->fidlist, flist)
239 p9_fid_destroy(fid); 245 p9_fid_destroy(fid);
240 246
diff --git a/net/9p/conv.c b/net/9p/conv.c
index 44547201f5b..5ad3a3bd73b 100644
--- a/net/9p/conv.c
+++ b/net/9p/conv.c
@@ -451,8 +451,10 @@ p9_put_data(struct cbuf *bufp, const char *data, int count,
451 unsigned char **pdata) 451 unsigned char **pdata)
452{ 452{
453 *pdata = buf_alloc(bufp, count); 453 *pdata = buf_alloc(bufp, count);
454 if (*pdata == NULL)
455 return -ENOMEM;
454 memmove(*pdata, data, count); 456 memmove(*pdata, data, count);
455 return count; 457 return 0;
456} 458}
457 459
458static int 460static int
@@ -460,6 +462,8 @@ p9_put_user_data(struct cbuf *bufp, const char __user *data, int count,
460 unsigned char **pdata) 462 unsigned char **pdata)
461{ 463{
462 *pdata = buf_alloc(bufp, count); 464 *pdata = buf_alloc(bufp, count);
465 if (*pdata == NULL)
466 return -ENOMEM;
463 return copy_from_user(*pdata, data, count); 467 return copy_from_user(*pdata, data, count);
464} 468}
465 469
diff --git a/net/9p/mod.c b/net/9p/mod.c
index bdee1fb7cc6..1084feb24cb 100644
--- a/net/9p/mod.c
+++ b/net/9p/mod.c
@@ -31,6 +31,7 @@
31#include <linux/parser.h> 31#include <linux/parser.h>
32#include <net/9p/transport.h> 32#include <net/9p/transport.h>
33#include <linux/list.h> 33#include <linux/list.h>
34#include <linux/spinlock.h>
34 35
35#ifdef CONFIG_NET_9P_DEBUG 36#ifdef CONFIG_NET_9P_DEBUG
36unsigned int p9_debug_level = 0; /* feature-rific global debug level */ 37unsigned int p9_debug_level = 0; /* feature-rific global debug level */
@@ -44,8 +45,8 @@ MODULE_PARM_DESC(debug, "9P debugging level");
44 * 45 *
45 */ 46 */
46 47
48static DEFINE_SPINLOCK(v9fs_trans_lock);
47static LIST_HEAD(v9fs_trans_list); 49static LIST_HEAD(v9fs_trans_list);
48static struct p9_trans_module *v9fs_default_transport;
49 50
50/** 51/**
51 * v9fs_register_trans - register a new transport with 9p 52 * v9fs_register_trans - register a new transport with 9p
@@ -54,48 +55,87 @@ static struct p9_trans_module *v9fs_default_transport;
54 */ 55 */
55void v9fs_register_trans(struct p9_trans_module *m) 56void v9fs_register_trans(struct p9_trans_module *m)
56{ 57{
58 spin_lock(&v9fs_trans_lock);
57 list_add_tail(&m->list, &v9fs_trans_list); 59 list_add_tail(&m->list, &v9fs_trans_list);
58 if (m->def) 60 spin_unlock(&v9fs_trans_lock);
59 v9fs_default_transport = m;
60} 61}
61EXPORT_SYMBOL(v9fs_register_trans); 62EXPORT_SYMBOL(v9fs_register_trans);
62 63
63/** 64/**
64 * v9fs_match_trans - match transport versus registered transports 65 * v9fs_unregister_trans - unregister a 9p transport
66 * @m: the transport to remove
67 *
68 */
69void v9fs_unregister_trans(struct p9_trans_module *m)
70{
71 spin_lock(&v9fs_trans_lock);
72 list_del_init(&m->list);
73 spin_unlock(&v9fs_trans_lock);
74}
75EXPORT_SYMBOL(v9fs_unregister_trans);
76
77/**
78 * v9fs_get_trans_by_name - get transport with the matching name
65 * @name: string identifying transport 79 * @name: string identifying transport
66 * 80 *
67 */ 81 */
68struct p9_trans_module *v9fs_match_trans(const substring_t *name) 82struct p9_trans_module *v9fs_get_trans_by_name(const substring_t *name)
69{ 83{
70 struct list_head *p; 84 struct p9_trans_module *t, *found = NULL;
71 struct p9_trans_module *t = NULL; 85
72 86 spin_lock(&v9fs_trans_lock);
73 list_for_each(p, &v9fs_trans_list) { 87
74 t = list_entry(p, struct p9_trans_module, list); 88 list_for_each_entry(t, &v9fs_trans_list, list)
75 if (strncmp(t->name, name->from, name->to-name->from) == 0) 89 if (strncmp(t->name, name->from, name->to-name->from) == 0 &&
76 return t; 90 try_module_get(t->owner)) {
77 } 91 found = t;
78 return NULL; 92 break;
93 }
94
95 spin_unlock(&v9fs_trans_lock);
96 return found;
79} 97}
80EXPORT_SYMBOL(v9fs_match_trans); 98EXPORT_SYMBOL(v9fs_get_trans_by_name);
81 99
82/** 100/**
83 * v9fs_default_trans - returns pointer to default transport 101 * v9fs_get_default_trans - get the default transport
84 * 102 *
85 */ 103 */
86 104
87struct p9_trans_module *v9fs_default_trans(void) 105struct p9_trans_module *v9fs_get_default_trans(void)
88{ 106{
89 if (v9fs_default_transport) 107 struct p9_trans_module *t, *found = NULL;
90 return v9fs_default_transport; 108
91 else if (!list_empty(&v9fs_trans_list)) 109 spin_lock(&v9fs_trans_lock);
92 return list_first_entry(&v9fs_trans_list, 110
93 struct p9_trans_module, list); 111 list_for_each_entry(t, &v9fs_trans_list, list)
94 else 112 if (t->def && try_module_get(t->owner)) {
95 return NULL; 113 found = t;
114 break;
115 }
116
117 if (!found)
118 list_for_each_entry(t, &v9fs_trans_list, list)
119 if (try_module_get(t->owner)) {
120 found = t;
121 break;
122 }
123
124 spin_unlock(&v9fs_trans_lock);
125 return found;
96} 126}
97EXPORT_SYMBOL(v9fs_default_trans); 127EXPORT_SYMBOL(v9fs_get_default_trans);
98 128
129/**
130 * v9fs_put_trans - put trans
131 * @m: transport to put
132 *
133 */
134void v9fs_put_trans(struct p9_trans_module *m)
135{
136 if (m)
137 module_put(m->owner);
138}
99 139
100/** 140/**
101 * v9fs_init - Initialize module 141 * v9fs_init - Initialize module
@@ -120,6 +160,8 @@ static int __init init_p9(void)
120static void __exit exit_p9(void) 160static void __exit exit_p9(void)
121{ 161{
122 printk(KERN_INFO "Unloading 9P2000 support\n"); 162 printk(KERN_INFO "Unloading 9P2000 support\n");
163
164 p9_trans_fd_exit();
123} 165}
124 166
125module_init(init_p9) 167module_init(init_p9)
diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
index cdf137af7ad..d652baf5ff9 100644
--- a/net/9p/trans_fd.c
+++ b/net/9p/trans_fd.c
@@ -151,7 +151,6 @@ struct p9_mux_poll_task {
151 * @trans: reference to transport instance for this connection 151 * @trans: reference to transport instance for this connection
152 * @tagpool: id accounting for transactions 152 * @tagpool: id accounting for transactions
153 * @err: error state 153 * @err: error state
154 * @equeue: event wait_q (?)
155 * @req_list: accounting for requests which have been sent 154 * @req_list: accounting for requests which have been sent
156 * @unsent_req_list: accounting for requests that haven't been sent 155 * @unsent_req_list: accounting for requests that haven't been sent
157 * @rcall: current response &p9_fcall structure 156 * @rcall: current response &p9_fcall structure
@@ -178,7 +177,6 @@ struct p9_conn {
178 struct p9_trans *trans; 177 struct p9_trans *trans;
179 struct p9_idpool *tagpool; 178 struct p9_idpool *tagpool;
180 int err; 179 int err;
181 wait_queue_head_t equeue;
182 struct list_head req_list; 180 struct list_head req_list;
183 struct list_head unsent_req_list; 181 struct list_head unsent_req_list;
184 struct p9_fcall *rcall; 182 struct p9_fcall *rcall;
@@ -240,22 +238,6 @@ static int p9_conn_rpcnb(struct p9_conn *m, struct p9_fcall *tc,
240 238
241static void p9_conn_cancel(struct p9_conn *m, int err); 239static void p9_conn_cancel(struct p9_conn *m, int err);
242 240
243static int p9_mux_global_init(void)
244{
245 int i;
246
247 for (i = 0; i < ARRAY_SIZE(p9_mux_poll_tasks); i++)
248 p9_mux_poll_tasks[i].task = NULL;
249
250 p9_mux_wq = create_workqueue("v9fs");
251 if (!p9_mux_wq) {
252 printk(KERN_WARNING "v9fs: mux: creating workqueue failed\n");
253 return -ENOMEM;
254 }
255
256 return 0;
257}
258
259static u16 p9_mux_get_tag(struct p9_conn *m) 241static u16 p9_mux_get_tag(struct p9_conn *m)
260{ 242{
261 int tag; 243 int tag;
@@ -409,11 +391,11 @@ static void p9_mux_poll_stop(struct p9_conn *m)
409static struct p9_conn *p9_conn_create(struct p9_trans *trans) 391static struct p9_conn *p9_conn_create(struct p9_trans *trans)
410{ 392{
411 int i, n; 393 int i, n;
412 struct p9_conn *m, *mtmp; 394 struct p9_conn *m;
413 395
414 P9_DPRINTK(P9_DEBUG_MUX, "transport %p msize %d\n", trans, 396 P9_DPRINTK(P9_DEBUG_MUX, "transport %p msize %d\n", trans,
415 trans->msize); 397 trans->msize);
416 m = kmalloc(sizeof(struct p9_conn), GFP_KERNEL); 398 m = kzalloc(sizeof(struct p9_conn), GFP_KERNEL);
417 if (!m) 399 if (!m)
418 return ERR_PTR(-ENOMEM); 400 return ERR_PTR(-ENOMEM);
419 401
@@ -424,25 +406,14 @@ static struct p9_conn *p9_conn_create(struct p9_trans *trans)
424 m->trans = trans; 406 m->trans = trans;
425 m->tagpool = p9_idpool_create(); 407 m->tagpool = p9_idpool_create();
426 if (IS_ERR(m->tagpool)) { 408 if (IS_ERR(m->tagpool)) {
427 mtmp = ERR_PTR(-ENOMEM);
428 kfree(m); 409 kfree(m);
429 return mtmp; 410 return ERR_PTR(-ENOMEM);
430 } 411 }
431 412
432 m->err = 0;
433 init_waitqueue_head(&m->equeue);
434 INIT_LIST_HEAD(&m->req_list); 413 INIT_LIST_HEAD(&m->req_list);
435 INIT_LIST_HEAD(&m->unsent_req_list); 414 INIT_LIST_HEAD(&m->unsent_req_list);
436 m->rcall = NULL;
437 m->rpos = 0;
438 m->rbuf = NULL;
439 m->wpos = m->wsize = 0;
440 m->wbuf = NULL;
441 INIT_WORK(&m->rq, p9_read_work); 415 INIT_WORK(&m->rq, p9_read_work);
442 INIT_WORK(&m->wq, p9_write_work); 416 INIT_WORK(&m->wq, p9_write_work);
443 m->wsched = 0;
444 memset(&m->poll_waddr, 0, sizeof(m->poll_waddr));
445 m->poll_task = NULL;
446 n = p9_mux_poll_start(m); 417 n = p9_mux_poll_start(m);
447 if (n) { 418 if (n) {
448 kfree(m); 419 kfree(m);
@@ -463,10 +434,8 @@ static struct p9_conn *p9_conn_create(struct p9_trans *trans)
463 for (i = 0; i < ARRAY_SIZE(m->poll_waddr); i++) { 434 for (i = 0; i < ARRAY_SIZE(m->poll_waddr); i++) {
464 if (IS_ERR(m->poll_waddr[i])) { 435 if (IS_ERR(m->poll_waddr[i])) {
465 p9_mux_poll_stop(m); 436 p9_mux_poll_stop(m);
466 mtmp = (void *)m->poll_waddr; /* the error code */
467 kfree(m); 437 kfree(m);
468 m = mtmp; 438 return (void *)m->poll_waddr; /* the error code */
469 break;
470 } 439 }
471 } 440 }
472 441
@@ -483,18 +452,13 @@ static void p9_conn_destroy(struct p9_conn *m)
483{ 452{
484 P9_DPRINTK(P9_DEBUG_MUX, "mux %p prev %p next %p\n", m, 453 P9_DPRINTK(P9_DEBUG_MUX, "mux %p prev %p next %p\n", m,
485 m->mux_list.prev, m->mux_list.next); 454 m->mux_list.prev, m->mux_list.next);
486 p9_conn_cancel(m, -ECONNRESET);
487
488 if (!list_empty(&m->req_list)) {
489 /* wait until all processes waiting on this session exit */
490 P9_DPRINTK(P9_DEBUG_MUX,
491 "mux %p waiting for empty request queue\n", m);
492 wait_event_timeout(m->equeue, (list_empty(&m->req_list)), 5000);
493 P9_DPRINTK(P9_DEBUG_MUX, "mux %p request queue empty: %d\n", m,
494 list_empty(&m->req_list));
495 }
496 455
497 p9_mux_poll_stop(m); 456 p9_mux_poll_stop(m);
457 cancel_work_sync(&m->rq);
458 cancel_work_sync(&m->wq);
459
460 p9_conn_cancel(m, -ECONNRESET);
461
498 m->trans = NULL; 462 m->trans = NULL;
499 p9_idpool_destroy(m->tagpool); 463 p9_idpool_destroy(m->tagpool);
500 kfree(m); 464 kfree(m);
@@ -840,8 +804,6 @@ static void p9_read_work(struct work_struct *work)
840 (*req->cb) (req, req->cba); 804 (*req->cb) (req, req->cba);
841 else 805 else
842 kfree(req->rcall); 806 kfree(req->rcall);
843
844 wake_up(&m->equeue);
845 } 807 }
846 } else { 808 } else {
847 if (err >= 0 && rcall->id != P9_RFLUSH) 809 if (err >= 0 && rcall->id != P9_RFLUSH)
@@ -908,8 +870,10 @@ static struct p9_req *p9_send_request(struct p9_conn *m,
908 else 870 else
909 n = p9_mux_get_tag(m); 871 n = p9_mux_get_tag(m);
910 872
911 if (n < 0) 873 if (n < 0) {
874 kfree(req);
912 return ERR_PTR(-ENOMEM); 875 return ERR_PTR(-ENOMEM);
876 }
913 877
914 p9_set_tag(tc, n); 878 p9_set_tag(tc, n);
915 879
@@ -984,8 +948,6 @@ static void p9_mux_flush_cb(struct p9_req *freq, void *a)
984 (*req->cb) (req, req->cba); 948 (*req->cb) (req, req->cba);
985 else 949 else
986 kfree(req->rcall); 950 kfree(req->rcall);
987
988 wake_up(&m->equeue);
989 } 951 }
990 952
991 kfree(freq->tcall); 953 kfree(freq->tcall);
@@ -1191,8 +1153,6 @@ void p9_conn_cancel(struct p9_conn *m, int err)
1191 else 1153 else
1192 kfree(req->rcall); 1154 kfree(req->rcall);
1193 } 1155 }
1194
1195 wake_up(&m->equeue);
1196} 1156}
1197 1157
1198/** 1158/**
@@ -1370,7 +1330,6 @@ p9_fd_poll(struct p9_trans *trans, struct poll_table_struct *pt)
1370{ 1330{
1371 int ret, n; 1331 int ret, n;
1372 struct p9_trans_fd *ts = NULL; 1332 struct p9_trans_fd *ts = NULL;
1373 mm_segment_t oldfs;
1374 1333
1375 if (trans && trans->status == Connected) 1334 if (trans && trans->status == Connected)
1376 ts = trans->priv; 1335 ts = trans->priv;
@@ -1384,24 +1343,17 @@ p9_fd_poll(struct p9_trans *trans, struct poll_table_struct *pt)
1384 if (!ts->wr->f_op || !ts->wr->f_op->poll) 1343 if (!ts->wr->f_op || !ts->wr->f_op->poll)
1385 return -EIO; 1344 return -EIO;
1386 1345
1387 oldfs = get_fs();
1388 set_fs(get_ds());
1389
1390 ret = ts->rd->f_op->poll(ts->rd, pt); 1346 ret = ts->rd->f_op->poll(ts->rd, pt);
1391 if (ret < 0) 1347 if (ret < 0)
1392 goto end; 1348 return ret;
1393 1349
1394 if (ts->rd != ts->wr) { 1350 if (ts->rd != ts->wr) {
1395 n = ts->wr->f_op->poll(ts->wr, pt); 1351 n = ts->wr->f_op->poll(ts->wr, pt);
1396 if (n < 0) { 1352 if (n < 0)
1397 ret = n; 1353 return n;
1398 goto end;
1399 }
1400 ret = (ret & ~POLLOUT) | (n & ~POLLIN); 1354 ret = (ret & ~POLLOUT) | (n & ~POLLIN);
1401 } 1355 }
1402 1356
1403end:
1404 set_fs(oldfs);
1405 return ret; 1357 return ret;
1406} 1358}
1407 1359
@@ -1629,6 +1581,7 @@ static struct p9_trans_module p9_tcp_trans = {
1629 .maxsize = MAX_SOCK_BUF, 1581 .maxsize = MAX_SOCK_BUF,
1630 .def = 1, 1582 .def = 1,
1631 .create = p9_trans_create_tcp, 1583 .create = p9_trans_create_tcp,
1584 .owner = THIS_MODULE,
1632}; 1585};
1633 1586
1634static struct p9_trans_module p9_unix_trans = { 1587static struct p9_trans_module p9_unix_trans = {
@@ -1636,6 +1589,7 @@ static struct p9_trans_module p9_unix_trans = {
1636 .maxsize = MAX_SOCK_BUF, 1589 .maxsize = MAX_SOCK_BUF,
1637 .def = 0, 1590 .def = 0,
1638 .create = p9_trans_create_unix, 1591 .create = p9_trans_create_unix,
1592 .owner = THIS_MODULE,
1639}; 1593};
1640 1594
1641static struct p9_trans_module p9_fd_trans = { 1595static struct p9_trans_module p9_fd_trans = {
@@ -1643,14 +1597,20 @@ static struct p9_trans_module p9_fd_trans = {
1643 .maxsize = MAX_SOCK_BUF, 1597 .maxsize = MAX_SOCK_BUF,
1644 .def = 0, 1598 .def = 0,
1645 .create = p9_trans_create_fd, 1599 .create = p9_trans_create_fd,
1600 .owner = THIS_MODULE,
1646}; 1601};
1647 1602
1648int p9_trans_fd_init(void) 1603int p9_trans_fd_init(void)
1649{ 1604{
1650 int ret = p9_mux_global_init(); 1605 int i;
1651 if (ret) { 1606
1652 printk(KERN_WARNING "9p: starting mux failed\n"); 1607 for (i = 0; i < ARRAY_SIZE(p9_mux_poll_tasks); i++)
1653 return ret; 1608 p9_mux_poll_tasks[i].task = NULL;
1609
1610 p9_mux_wq = create_workqueue("v9fs");
1611 if (!p9_mux_wq) {
1612 printk(KERN_WARNING "v9fs: mux: creating workqueue failed\n");
1613 return -ENOMEM;
1654 } 1614 }
1655 1615
1656 v9fs_register_trans(&p9_tcp_trans); 1616 v9fs_register_trans(&p9_tcp_trans);
@@ -1659,4 +1619,12 @@ int p9_trans_fd_init(void)
1659 1619
1660 return 0; 1620 return 0;
1661} 1621}
1662EXPORT_SYMBOL(p9_trans_fd_init); 1622
1623void p9_trans_fd_exit(void)
1624{
1625 v9fs_unregister_trans(&p9_tcp_trans);
1626 v9fs_unregister_trans(&p9_unix_trans);
1627 v9fs_unregister_trans(&p9_fd_trans);
1628
1629 destroy_workqueue(p9_mux_wq);
1630}
diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
index 42adc052b14..94912e077a5 100644
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -528,6 +528,7 @@ static struct p9_trans_module p9_virtio_trans = {
528 .create = p9_virtio_create, 528 .create = p9_virtio_create,
529 .maxsize = PAGE_SIZE*16, 529 .maxsize = PAGE_SIZE*16,
530 .def = 0, 530 .def = 0,
531 .owner = THIS_MODULE,
531}; 532};
532 533
533/* The standard init function */ 534/* The standard init function */
@@ -545,6 +546,7 @@ static int __init p9_virtio_init(void)
545static void __exit p9_virtio_cleanup(void) 546static void __exit p9_virtio_cleanup(void)
546{ 547{
547 unregister_virtio_driver(&p9_virtio_drv); 548 unregister_virtio_driver(&p9_virtio_drv);
549 v9fs_unregister_trans(&p9_virtio_trans);
548} 550}
549 551
550module_init(p9_virtio_init); 552module_init(p9_virtio_init);
diff --git a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c
index 1edfdf4c095..f6348e078aa 100644
--- a/net/bluetooth/af_bluetooth.c
+++ b/net/bluetooth/af_bluetooth.c
@@ -49,7 +49,7 @@
49#define BT_DBG(D...) 49#define BT_DBG(D...)
50#endif 50#endif
51 51
52#define VERSION "2.12" 52#define VERSION "2.13"
53 53
54/* Bluetooth sockets */ 54/* Bluetooth sockets */
55#define BT_MAX_PROTO 8 55#define BT_MAX_PROTO 8
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index ca8d05245ca..b7002429f15 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -330,7 +330,7 @@ EXPORT_SYMBOL(hci_get_route);
330 330
331/* Create SCO or ACL connection. 331/* Create SCO or ACL connection.
332 * Device _must_ be locked */ 332 * Device _must_ be locked */
333struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst) 333struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8 auth_type)
334{ 334{
335 struct hci_conn *acl; 335 struct hci_conn *acl;
336 struct hci_conn *sco; 336 struct hci_conn *sco;
@@ -344,8 +344,10 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst)
344 344
345 hci_conn_hold(acl); 345 hci_conn_hold(acl);
346 346
347 if (acl->state == BT_OPEN || acl->state == BT_CLOSED) 347 if (acl->state == BT_OPEN || acl->state == BT_CLOSED) {
348 acl->auth_type = auth_type;
348 hci_acl_connect(acl); 349 hci_acl_connect(acl);
350 }
349 351
350 if (type == ACL_LINK) 352 if (type == ACL_LINK)
351 return acl; 353 return acl;
@@ -374,6 +376,19 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst)
374} 376}
375EXPORT_SYMBOL(hci_connect); 377EXPORT_SYMBOL(hci_connect);
376 378
379/* Check link security requirement */
380int hci_conn_check_link_mode(struct hci_conn *conn)
381{
382 BT_DBG("conn %p", conn);
383
384 if (conn->ssp_mode > 0 && conn->hdev->ssp_mode > 0 &&
385 !(conn->link_mode & HCI_LM_ENCRYPT))
386 return 0;
387
388 return 1;
389}
390EXPORT_SYMBOL(hci_conn_check_link_mode);
391
377/* Authenticate remote device */ 392/* Authenticate remote device */
378int hci_conn_auth(struct hci_conn *conn) 393int hci_conn_auth(struct hci_conn *conn)
379{ 394{
@@ -381,7 +396,7 @@ int hci_conn_auth(struct hci_conn *conn)
381 396
382 if (conn->ssp_mode > 0 && conn->hdev->ssp_mode > 0) { 397 if (conn->ssp_mode > 0 && conn->hdev->ssp_mode > 0) {
383 if (!(conn->auth_type & 0x01)) { 398 if (!(conn->auth_type & 0x01)) {
384 conn->auth_type = HCI_AT_GENERAL_BONDING_MITM; 399 conn->auth_type |= 0x01;
385 conn->link_mode &= ~HCI_LM_AUTH; 400 conn->link_mode &= ~HCI_LM_AUTH;
386 } 401 }
387 } 402 }
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index f5b21cb9369..278a3ace14f 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -164,6 +164,9 @@ static inline int hci_request(struct hci_dev *hdev, void (*req)(struct hci_dev *
164{ 164{
165 int ret; 165 int ret;
166 166
167 if (!test_bit(HCI_UP, &hdev->flags))
168 return -ENETDOWN;
169
167 /* Serialize all requests */ 170 /* Serialize all requests */
168 hci_req_lock(hdev); 171 hci_req_lock(hdev);
169 ret = __hci_request(hdev, req, opt, timeout); 172 ret = __hci_request(hdev, req, opt, timeout);
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 0e3db289f4b..ad7a553d771 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -1605,14 +1605,11 @@ static inline void hci_remote_ext_features_evt(struct hci_dev *hdev, struct sk_b
1605 1605
1606 if (conn->state == BT_CONFIG) { 1606 if (conn->state == BT_CONFIG) {
1607 if (!ev->status && hdev->ssp_mode > 0 && 1607 if (!ev->status && hdev->ssp_mode > 0 &&
1608 conn->ssp_mode > 0) { 1608 conn->ssp_mode > 0 && conn->out) {
1609 if (conn->out) { 1609 struct hci_cp_auth_requested cp;
1610 struct hci_cp_auth_requested cp; 1610 cp.handle = ev->handle;
1611 cp.handle = ev->handle; 1611 hci_send_cmd(hdev, HCI_OP_AUTH_REQUESTED,
1612 hci_send_cmd(hdev,
1613 HCI_OP_AUTH_REQUESTED,
1614 sizeof(cp), &cp); 1612 sizeof(cp), &cp);
1615 }
1616 } else { 1613 } else {
1617 conn->state = BT_CONNECTED; 1614 conn->state = BT_CONNECTED;
1618 hci_proto_connect_cfm(conn, ev->status); 1615 hci_proto_connect_cfm(conn, ev->status);
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index 3396d5bdef1..9610a9c85b9 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -55,7 +55,7 @@
55#define BT_DBG(D...) 55#define BT_DBG(D...)
56#endif 56#endif
57 57
58#define VERSION "2.10" 58#define VERSION "2.11"
59 59
60static u32 l2cap_feat_mask = 0x0000; 60static u32 l2cap_feat_mask = 0x0000;
61 61
@@ -778,6 +778,7 @@ static int l2cap_do_connect(struct sock *sk)
778 struct l2cap_conn *conn; 778 struct l2cap_conn *conn;
779 struct hci_conn *hcon; 779 struct hci_conn *hcon;
780 struct hci_dev *hdev; 780 struct hci_dev *hdev;
781 __u8 auth_type;
781 int err = 0; 782 int err = 0;
782 783
783 BT_DBG("%s -> %s psm 0x%2.2x", batostr(src), batostr(dst), l2cap_pi(sk)->psm); 784 BT_DBG("%s -> %s psm 0x%2.2x", batostr(src), batostr(dst), l2cap_pi(sk)->psm);
@@ -789,7 +790,21 @@ static int l2cap_do_connect(struct sock *sk)
789 790
790 err = -ENOMEM; 791 err = -ENOMEM;
791 792
792 hcon = hci_connect(hdev, ACL_LINK, dst); 793 if (l2cap_pi(sk)->link_mode & L2CAP_LM_AUTH ||
794 l2cap_pi(sk)->link_mode & L2CAP_LM_ENCRYPT ||
795 l2cap_pi(sk)->link_mode & L2CAP_LM_SECURE) {
796 if (l2cap_pi(sk)->psm == cpu_to_le16(0x0001))
797 auth_type = HCI_AT_NO_BONDING_MITM;
798 else
799 auth_type = HCI_AT_GENERAL_BONDING_MITM;
800 } else {
801 if (l2cap_pi(sk)->psm == cpu_to_le16(0x0001))
802 auth_type = HCI_AT_NO_BONDING;
803 else
804 auth_type = HCI_AT_GENERAL_BONDING;
805 }
806
807 hcon = hci_connect(hdev, ACL_LINK, dst, auth_type);
793 if (!hcon) 808 if (!hcon)
794 goto done; 809 goto done;
795 810
@@ -1553,10 +1568,10 @@ static inline int l2cap_connect_req(struct l2cap_conn *conn, struct l2cap_cmd_hd
1553 struct l2cap_conn_req *req = (struct l2cap_conn_req *) data; 1568 struct l2cap_conn_req *req = (struct l2cap_conn_req *) data;
1554 struct l2cap_conn_rsp rsp; 1569 struct l2cap_conn_rsp rsp;
1555 struct sock *sk, *parent; 1570 struct sock *sk, *parent;
1556 int result, status = 0; 1571 int result, status = L2CAP_CS_NO_INFO;
1557 1572
1558 u16 dcid = 0, scid = __le16_to_cpu(req->scid); 1573 u16 dcid = 0, scid = __le16_to_cpu(req->scid);
1559 __le16 psm = req->psm; 1574 __le16 psm = req->psm;
1560 1575
1561 BT_DBG("psm 0x%2.2x scid 0x%4.4x", psm, scid); 1576 BT_DBG("psm 0x%2.2x scid 0x%4.4x", psm, scid);
1562 1577
@@ -1567,6 +1582,13 @@ static inline int l2cap_connect_req(struct l2cap_conn *conn, struct l2cap_cmd_hd
1567 goto sendresp; 1582 goto sendresp;
1568 } 1583 }
1569 1584
1585 /* Check if the ACL is secure enough (if not SDP) */
1586 if (psm != cpu_to_le16(0x0001) &&
1587 !hci_conn_check_link_mode(conn->hcon)) {
1588 result = L2CAP_CR_SEC_BLOCK;
1589 goto response;
1590 }
1591
1570 result = L2CAP_CR_NO_MEM; 1592 result = L2CAP_CR_NO_MEM;
1571 1593
1572 /* Check for backlog size */ 1594 /* Check for backlog size */
@@ -2224,7 +2246,7 @@ static int l2cap_auth_cfm(struct hci_conn *hcon, u8 status)
2224 rsp.scid = cpu_to_le16(l2cap_pi(sk)->dcid); 2246 rsp.scid = cpu_to_le16(l2cap_pi(sk)->dcid);
2225 rsp.dcid = cpu_to_le16(l2cap_pi(sk)->scid); 2247 rsp.dcid = cpu_to_le16(l2cap_pi(sk)->scid);
2226 rsp.result = cpu_to_le16(result); 2248 rsp.result = cpu_to_le16(result);
2227 rsp.status = cpu_to_le16(0); 2249 rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO);
2228 l2cap_send_cmd(conn, l2cap_pi(sk)->ident, 2250 l2cap_send_cmd(conn, l2cap_pi(sk)->ident,
2229 L2CAP_CONN_RSP, sizeof(rsp), &rsp); 2251 L2CAP_CONN_RSP, sizeof(rsp), &rsp);
2230 } 2252 }
@@ -2296,7 +2318,7 @@ static int l2cap_encrypt_cfm(struct hci_conn *hcon, u8 status, u8 encrypt)
2296 rsp.scid = cpu_to_le16(l2cap_pi(sk)->dcid); 2318 rsp.scid = cpu_to_le16(l2cap_pi(sk)->dcid);
2297 rsp.dcid = cpu_to_le16(l2cap_pi(sk)->scid); 2319 rsp.dcid = cpu_to_le16(l2cap_pi(sk)->scid);
2298 rsp.result = cpu_to_le16(result); 2320 rsp.result = cpu_to_le16(result);
2299 rsp.status = cpu_to_le16(0); 2321 rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO);
2300 l2cap_send_cmd(conn, l2cap_pi(sk)->ident, 2322 l2cap_send_cmd(conn, l2cap_pi(sk)->ident,
2301 L2CAP_CONN_RSP, sizeof(rsp), &rsp); 2323 L2CAP_CONN_RSP, sizeof(rsp), &rsp);
2302 } 2324 }
diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c
index a16011fedc1..0cc91e6da76 100644
--- a/net/bluetooth/sco.c
+++ b/net/bluetooth/sco.c
@@ -200,7 +200,7 @@ static int sco_connect(struct sock *sk)
200 else 200 else
201 type = SCO_LINK; 201 type = SCO_LINK;
202 202
203 hcon = hci_connect(hdev, type, dst); 203 hcon = hci_connect(hdev, type, dst, HCI_AT_NO_BONDING);
204 if (!hcon) 204 if (!hcon)
205 goto done; 205 goto done;
206 206
diff --git a/net/bridge/br_ioctl.c b/net/bridge/br_ioctl.c
index eeee218eed8..5bbf0736217 100644
--- a/net/bridge/br_ioctl.c
+++ b/net/bridge/br_ioctl.c
@@ -188,15 +188,21 @@ static int old_dev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
188 return 0; 188 return 0;
189 189
190 case BRCTL_SET_BRIDGE_HELLO_TIME: 190 case BRCTL_SET_BRIDGE_HELLO_TIME:
191 {
192 unsigned long t = clock_t_to_jiffies(args[1]);
191 if (!capable(CAP_NET_ADMIN)) 193 if (!capable(CAP_NET_ADMIN))
192 return -EPERM; 194 return -EPERM;
193 195
196 if (t < HZ)
197 return -EINVAL;
198
194 spin_lock_bh(&br->lock); 199 spin_lock_bh(&br->lock);
195 br->bridge_hello_time = clock_t_to_jiffies(args[1]); 200 br->bridge_hello_time = t;
196 if (br_is_root_bridge(br)) 201 if (br_is_root_bridge(br))
197 br->hello_time = br->bridge_hello_time; 202 br->hello_time = br->bridge_hello_time;
198 spin_unlock_bh(&br->lock); 203 spin_unlock_bh(&br->lock);
199 return 0; 204 return 0;
205 }
200 206
201 case BRCTL_SET_BRIDGE_MAX_AGE: 207 case BRCTL_SET_BRIDGE_MAX_AGE:
202 if (!capable(CAP_NET_ADMIN)) 208 if (!capable(CAP_NET_ADMIN))
diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c
index 27d6a511c8c..158dee8b496 100644
--- a/net/bridge/br_sysfs_br.c
+++ b/net/bridge/br_sysfs_br.c
@@ -29,11 +29,12 @@
29 */ 29 */
30static ssize_t store_bridge_parm(struct device *d, 30static ssize_t store_bridge_parm(struct device *d,
31 const char *buf, size_t len, 31 const char *buf, size_t len,
32 void (*set)(struct net_bridge *, unsigned long)) 32 int (*set)(struct net_bridge *, unsigned long))
33{ 33{
34 struct net_bridge *br = to_bridge(d); 34 struct net_bridge *br = to_bridge(d);
35 char *endp; 35 char *endp;
36 unsigned long val; 36 unsigned long val;
37 int err;
37 38
38 if (!capable(CAP_NET_ADMIN)) 39 if (!capable(CAP_NET_ADMIN))
39 return -EPERM; 40 return -EPERM;
@@ -43,9 +44,9 @@ static ssize_t store_bridge_parm(struct device *d,
43 return -EINVAL; 44 return -EINVAL;
44 45
45 spin_lock_bh(&br->lock); 46 spin_lock_bh(&br->lock);
46 (*set)(br, val); 47 err = (*set)(br, val);
47 spin_unlock_bh(&br->lock); 48 spin_unlock_bh(&br->lock);
48 return len; 49 return err ? err : len;
49} 50}
50 51
51 52
@@ -56,12 +57,13 @@ static ssize_t show_forward_delay(struct device *d,
56 return sprintf(buf, "%lu\n", jiffies_to_clock_t(br->forward_delay)); 57 return sprintf(buf, "%lu\n", jiffies_to_clock_t(br->forward_delay));
57} 58}
58 59
59static void set_forward_delay(struct net_bridge *br, unsigned long val) 60static int set_forward_delay(struct net_bridge *br, unsigned long val)
60{ 61{
61 unsigned long delay = clock_t_to_jiffies(val); 62 unsigned long delay = clock_t_to_jiffies(val);
62 br->forward_delay = delay; 63 br->forward_delay = delay;
63 if (br_is_root_bridge(br)) 64 if (br_is_root_bridge(br))
64 br->bridge_forward_delay = delay; 65 br->bridge_forward_delay = delay;
66 return 0;
65} 67}
66 68
67static ssize_t store_forward_delay(struct device *d, 69static ssize_t store_forward_delay(struct device *d,
@@ -80,12 +82,17 @@ static ssize_t show_hello_time(struct device *d, struct device_attribute *attr,
80 jiffies_to_clock_t(to_bridge(d)->hello_time)); 82 jiffies_to_clock_t(to_bridge(d)->hello_time));
81} 83}
82 84
83static void set_hello_time(struct net_bridge *br, unsigned long val) 85static int set_hello_time(struct net_bridge *br, unsigned long val)
84{ 86{
85 unsigned long t = clock_t_to_jiffies(val); 87 unsigned long t = clock_t_to_jiffies(val);
88
89 if (t < HZ)
90 return -EINVAL;
91
86 br->hello_time = t; 92 br->hello_time = t;
87 if (br_is_root_bridge(br)) 93 if (br_is_root_bridge(br))
88 br->bridge_hello_time = t; 94 br->bridge_hello_time = t;
95 return 0;
89} 96}
90 97
91static ssize_t store_hello_time(struct device *d, 98static ssize_t store_hello_time(struct device *d,
@@ -104,12 +111,13 @@ static ssize_t show_max_age(struct device *d, struct device_attribute *attr,
104 jiffies_to_clock_t(to_bridge(d)->max_age)); 111 jiffies_to_clock_t(to_bridge(d)->max_age));
105} 112}
106 113
107static void set_max_age(struct net_bridge *br, unsigned long val) 114static int set_max_age(struct net_bridge *br, unsigned long val)
108{ 115{
109 unsigned long t = clock_t_to_jiffies(val); 116 unsigned long t = clock_t_to_jiffies(val);
110 br->max_age = t; 117 br->max_age = t;
111 if (br_is_root_bridge(br)) 118 if (br_is_root_bridge(br))
112 br->bridge_max_age = t; 119 br->bridge_max_age = t;
120 return 0;
113} 121}
114 122
115static ssize_t store_max_age(struct device *d, struct device_attribute *attr, 123static ssize_t store_max_age(struct device *d, struct device_attribute *attr,
@@ -126,9 +134,10 @@ static ssize_t show_ageing_time(struct device *d,
126 return sprintf(buf, "%lu\n", jiffies_to_clock_t(br->ageing_time)); 134 return sprintf(buf, "%lu\n", jiffies_to_clock_t(br->ageing_time));
127} 135}
128 136
129static void set_ageing_time(struct net_bridge *br, unsigned long val) 137static int set_ageing_time(struct net_bridge *br, unsigned long val)
130{ 138{
131 br->ageing_time = clock_t_to_jiffies(val); 139 br->ageing_time = clock_t_to_jiffies(val);
140 return 0;
132} 141}
133 142
134static ssize_t store_ageing_time(struct device *d, 143static ssize_t store_ageing_time(struct device *d,
@@ -180,9 +189,10 @@ static ssize_t show_priority(struct device *d, struct device_attribute *attr,
180 (br->bridge_id.prio[0] << 8) | br->bridge_id.prio[1]); 189 (br->bridge_id.prio[0] << 8) | br->bridge_id.prio[1]);
181} 190}
182 191
183static void set_priority(struct net_bridge *br, unsigned long val) 192static int set_priority(struct net_bridge *br, unsigned long val)
184{ 193{
185 br_stp_set_bridge_priority(br, (u16) val); 194 br_stp_set_bridge_priority(br, (u16) val);
195 return 0;
186} 196}
187 197
188static ssize_t store_priority(struct device *d, struct device_attribute *attr, 198static ssize_t store_priority(struct device *d, struct device_attribute *attr,
diff --git a/net/core/dev.c b/net/core/dev.c
index 60c51f76588..e8eb2b47834 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -122,6 +122,7 @@
122#include <linux/if_arp.h> 122#include <linux/if_arp.h>
123#include <linux/if_vlan.h> 123#include <linux/if_vlan.h>
124#include <linux/ip.h> 124#include <linux/ip.h>
125#include <net/ip.h>
125#include <linux/ipv6.h> 126#include <linux/ipv6.h>
126#include <linux/in.h> 127#include <linux/in.h>
127#include <linux/jhash.h> 128#include <linux/jhash.h>
@@ -1667,7 +1668,7 @@ static u16 simple_tx_hash(struct net_device *dev, struct sk_buff *skb)
1667{ 1668{
1668 u32 addr1, addr2, ports; 1669 u32 addr1, addr2, ports;
1669 u32 hash, ihl; 1670 u32 hash, ihl;
1670 u8 ip_proto; 1671 u8 ip_proto = 0;
1671 1672
1672 if (unlikely(!simple_tx_hashrnd_initialized)) { 1673 if (unlikely(!simple_tx_hashrnd_initialized)) {
1673 get_random_bytes(&simple_tx_hashrnd, 4); 1674 get_random_bytes(&simple_tx_hashrnd, 4);
@@ -1676,7 +1677,8 @@ static u16 simple_tx_hash(struct net_device *dev, struct sk_buff *skb)
1676 1677
1677 switch (skb->protocol) { 1678 switch (skb->protocol) {
1678 case __constant_htons(ETH_P_IP): 1679 case __constant_htons(ETH_P_IP):
1679 ip_proto = ip_hdr(skb)->protocol; 1680 if (!(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)))
1681 ip_proto = ip_hdr(skb)->protocol;
1680 addr1 = ip_hdr(skb)->saddr; 1682 addr1 = ip_hdr(skb)->saddr;
1681 addr2 = ip_hdr(skb)->daddr; 1683 addr2 = ip_hdr(skb)->daddr;
1682 ihl = ip_hdr(skb)->ihl; 1684 ihl = ip_hdr(skb)->ihl;
@@ -1991,8 +1993,13 @@ static void net_tx_action(struct softirq_action *h)
1991 spin_unlock(root_lock); 1993 spin_unlock(root_lock);
1992 } else { 1994 } else {
1993 if (!test_bit(__QDISC_STATE_DEACTIVATED, 1995 if (!test_bit(__QDISC_STATE_DEACTIVATED,
1994 &q->state)) 1996 &q->state)) {
1995 __netif_reschedule(q); 1997 __netif_reschedule(q);
1998 } else {
1999 smp_mb__before_clear_bit();
2000 clear_bit(__QDISC_STATE_SCHED,
2001 &q->state);
2002 }
1996 } 2003 }
1997 } 2004 }
1998 } 2005 }
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index 91d3d96805d..b12dae2b0b2 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -1029,6 +1029,11 @@ skip:
1029 } 1029 }
1030} 1030}
1031 1031
1032static inline bool inetdev_valid_mtu(unsigned mtu)
1033{
1034 return mtu >= 68;
1035}
1036
1032/* Called only under RTNL semaphore */ 1037/* Called only under RTNL semaphore */
1033 1038
1034static int inetdev_event(struct notifier_block *this, unsigned long event, 1039static int inetdev_event(struct notifier_block *this, unsigned long event,
@@ -1048,6 +1053,10 @@ static int inetdev_event(struct notifier_block *this, unsigned long event,
1048 IN_DEV_CONF_SET(in_dev, NOXFRM, 1); 1053 IN_DEV_CONF_SET(in_dev, NOXFRM, 1);
1049 IN_DEV_CONF_SET(in_dev, NOPOLICY, 1); 1054 IN_DEV_CONF_SET(in_dev, NOPOLICY, 1);
1050 } 1055 }
1056 } else if (event == NETDEV_CHANGEMTU) {
1057 /* Re-enabling IP */
1058 if (inetdev_valid_mtu(dev->mtu))
1059 in_dev = inetdev_init(dev);
1051 } 1060 }
1052 goto out; 1061 goto out;
1053 } 1062 }
@@ -1058,7 +1067,7 @@ static int inetdev_event(struct notifier_block *this, unsigned long event,
1058 dev->ip_ptr = NULL; 1067 dev->ip_ptr = NULL;
1059 break; 1068 break;
1060 case NETDEV_UP: 1069 case NETDEV_UP:
1061 if (dev->mtu < 68) 1070 if (!inetdev_valid_mtu(dev->mtu))
1062 break; 1071 break;
1063 if (dev->flags & IFF_LOOPBACK) { 1072 if (dev->flags & IFF_LOOPBACK) {
1064 struct in_ifaddr *ifa; 1073 struct in_ifaddr *ifa;
@@ -1080,9 +1089,9 @@ static int inetdev_event(struct notifier_block *this, unsigned long event,
1080 ip_mc_down(in_dev); 1089 ip_mc_down(in_dev);
1081 break; 1090 break;
1082 case NETDEV_CHANGEMTU: 1091 case NETDEV_CHANGEMTU:
1083 if (dev->mtu >= 68) 1092 if (inetdev_valid_mtu(dev->mtu))
1084 break; 1093 break;
1085 /* MTU falled under 68, disable IP */ 1094 /* disable IP when MTU is not enough */
1086 case NETDEV_UNREGISTER: 1095 case NETDEV_UNREGISTER:
1087 inetdev_destroy(in_dev); 1096 inetdev_destroy(in_dev);
1088 break; 1097 break;
diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c
index 860558633b2..55c355e6323 100644
--- a/net/ipv4/icmp.c
+++ b/net/ipv4/icmp.c
@@ -204,18 +204,22 @@ static struct sock *icmp_sk(struct net *net)
204 return net->ipv4.icmp_sk[smp_processor_id()]; 204 return net->ipv4.icmp_sk[smp_processor_id()];
205} 205}
206 206
207static inline int icmp_xmit_lock(struct sock *sk) 207static inline struct sock *icmp_xmit_lock(struct net *net)
208{ 208{
209 struct sock *sk;
210
209 local_bh_disable(); 211 local_bh_disable();
210 212
213 sk = icmp_sk(net);
214
211 if (unlikely(!spin_trylock(&sk->sk_lock.slock))) { 215 if (unlikely(!spin_trylock(&sk->sk_lock.slock))) {
212 /* This can happen if the output path signals a 216 /* This can happen if the output path signals a
213 * dst_link_failure() for an outgoing ICMP packet. 217 * dst_link_failure() for an outgoing ICMP packet.
214 */ 218 */
215 local_bh_enable(); 219 local_bh_enable();
216 return 1; 220 return NULL;
217 } 221 }
218 return 0; 222 return sk;
219} 223}
220 224
221static inline void icmp_xmit_unlock(struct sock *sk) 225static inline void icmp_xmit_unlock(struct sock *sk)
@@ -354,15 +358,17 @@ static void icmp_reply(struct icmp_bxm *icmp_param, struct sk_buff *skb)
354 struct ipcm_cookie ipc; 358 struct ipcm_cookie ipc;
355 struct rtable *rt = skb->rtable; 359 struct rtable *rt = skb->rtable;
356 struct net *net = dev_net(rt->u.dst.dev); 360 struct net *net = dev_net(rt->u.dst.dev);
357 struct sock *sk = icmp_sk(net); 361 struct sock *sk;
358 struct inet_sock *inet = inet_sk(sk); 362 struct inet_sock *inet;
359 __be32 daddr; 363 __be32 daddr;
360 364
361 if (ip_options_echo(&icmp_param->replyopts, skb)) 365 if (ip_options_echo(&icmp_param->replyopts, skb))
362 return; 366 return;
363 367
364 if (icmp_xmit_lock(sk)) 368 sk = icmp_xmit_lock(net);
369 if (sk == NULL)
365 return; 370 return;
371 inet = inet_sk(sk);
366 372
367 icmp_param->data.icmph.checksum = 0; 373 icmp_param->data.icmph.checksum = 0;
368 374
@@ -419,7 +425,6 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info)
419 if (!rt) 425 if (!rt)
420 goto out; 426 goto out;
421 net = dev_net(rt->u.dst.dev); 427 net = dev_net(rt->u.dst.dev);
422 sk = icmp_sk(net);
423 428
424 /* 429 /*
425 * Find the original header. It is expected to be valid, of course. 430 * Find the original header. It is expected to be valid, of course.
@@ -483,7 +488,8 @@ void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info)
483 } 488 }
484 } 489 }
485 490
486 if (icmp_xmit_lock(sk)) 491 sk = icmp_xmit_lock(net);
492 if (sk == NULL)
487 return; 493 return;
488 494
489 /* 495 /*
diff --git a/net/ipv4/inet_timewait_sock.c b/net/ipv4/inet_timewait_sock.c
index d985bd613d2..743f011b9a8 100644
--- a/net/ipv4/inet_timewait_sock.c
+++ b/net/ipv4/inet_timewait_sock.c
@@ -409,3 +409,38 @@ out:
409} 409}
410 410
411EXPORT_SYMBOL_GPL(inet_twdr_twcal_tick); 411EXPORT_SYMBOL_GPL(inet_twdr_twcal_tick);
412
413void inet_twsk_purge(struct net *net, struct inet_hashinfo *hashinfo,
414 struct inet_timewait_death_row *twdr, int family)
415{
416 struct inet_timewait_sock *tw;
417 struct sock *sk;
418 struct hlist_node *node;
419 int h;
420
421 local_bh_disable();
422 for (h = 0; h < (hashinfo->ehash_size); h++) {
423 struct inet_ehash_bucket *head =
424 inet_ehash_bucket(hashinfo, h);
425 rwlock_t *lock = inet_ehash_lockp(hashinfo, h);
426restart:
427 write_lock(lock);
428 sk_for_each(sk, node, &head->twchain) {
429
430 tw = inet_twsk(sk);
431 if (!net_eq(twsk_net(tw), net) ||
432 tw->tw_family != family)
433 continue;
434
435 atomic_inc(&tw->tw_refcnt);
436 write_unlock(lock);
437 inet_twsk_deschedule(tw, twdr);
438 inet_twsk_put(tw);
439
440 goto restart;
441 }
442 write_unlock(lock);
443 }
444 local_bh_enable();
445}
446EXPORT_SYMBOL_GPL(inet_twsk_purge);
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index cca921ea855..6ee5354c9aa 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -3116,14 +3116,23 @@ static ctl_table ipv4_route_table[] = {
3116 { .ctl_name = 0 } 3116 { .ctl_name = 0 }
3117}; 3117};
3118 3118
3119static __net_initdata struct ctl_path ipv4_route_path[] = { 3119static struct ctl_table empty[1];
3120
3121static struct ctl_table ipv4_skeleton[] =
3122{
3123 { .procname = "route", .ctl_name = NET_IPV4_ROUTE,
3124 .mode = 0555, .child = ipv4_route_table},
3125 { .procname = "neigh", .ctl_name = NET_IPV4_NEIGH,
3126 .mode = 0555, .child = empty},
3127 { }
3128};
3129
3130static __net_initdata struct ctl_path ipv4_path[] = {
3120 { .procname = "net", .ctl_name = CTL_NET, }, 3131 { .procname = "net", .ctl_name = CTL_NET, },
3121 { .procname = "ipv4", .ctl_name = NET_IPV4, }, 3132 { .procname = "ipv4", .ctl_name = NET_IPV4, },
3122 { .procname = "route", .ctl_name = NET_IPV4_ROUTE, },
3123 { }, 3133 { },
3124}; 3134};
3125 3135
3126
3127static struct ctl_table ipv4_route_flush_table[] = { 3136static struct ctl_table ipv4_route_flush_table[] = {
3128 { 3137 {
3129 .ctl_name = NET_IPV4_ROUTE_FLUSH, 3138 .ctl_name = NET_IPV4_ROUTE_FLUSH,
@@ -3136,6 +3145,13 @@ static struct ctl_table ipv4_route_flush_table[] = {
3136 { .ctl_name = 0 }, 3145 { .ctl_name = 0 },
3137}; 3146};
3138 3147
3148static __net_initdata struct ctl_path ipv4_route_path[] = {
3149 { .procname = "net", .ctl_name = CTL_NET, },
3150 { .procname = "ipv4", .ctl_name = NET_IPV4, },
3151 { .procname = "route", .ctl_name = NET_IPV4_ROUTE, },
3152 { },
3153};
3154
3139static __net_init int sysctl_route_net_init(struct net *net) 3155static __net_init int sysctl_route_net_init(struct net *net)
3140{ 3156{
3141 struct ctl_table *tbl; 3157 struct ctl_table *tbl;
@@ -3287,7 +3303,7 @@ int __init ip_rt_init(void)
3287 */ 3303 */
3288void __init ip_static_sysctl_init(void) 3304void __init ip_static_sysctl_init(void)
3289{ 3305{
3290 register_sysctl_paths(ipv4_route_path, ipv4_route_table); 3306 register_sysctl_paths(ipv4_path, ipv4_skeleton);
3291} 3307}
3292#endif 3308#endif
3293 3309
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index 44c1e934824..011478e46c4 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -618,7 +618,7 @@ static void tcp_v4_send_ack(struct sk_buff *skb, u32 seq, u32 ack,
618 ]; 618 ];
619 } rep; 619 } rep;
620 struct ip_reply_arg arg; 620 struct ip_reply_arg arg;
621 struct net *net = dev_net(skb->dev); 621 struct net *net = dev_net(skb->dst->dev);
622 622
623 memset(&rep.th, 0, sizeof(struct tcphdr)); 623 memset(&rep.th, 0, sizeof(struct tcphdr));
624 memset(&arg, 0, sizeof(arg)); 624 memset(&arg, 0, sizeof(arg));
@@ -2376,6 +2376,7 @@ static int __net_init tcp_sk_init(struct net *net)
2376static void __net_exit tcp_sk_exit(struct net *net) 2376static void __net_exit tcp_sk_exit(struct net *net)
2377{ 2377{
2378 inet_ctl_sock_destroy(net->ipv4.tcp_sock); 2378 inet_ctl_sock_destroy(net->ipv4.tcp_sock);
2379 inet_twsk_purge(net, &tcp_hashinfo, &tcp_death_row, AF_INET);
2379} 2380}
2380 2381
2381static struct pernet_operations __net_initdata tcp_sk_ops = { 2382static struct pernet_operations __net_initdata tcp_sk_ops = {
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index a00532de2a8..8165f5aa8c7 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -468,7 +468,8 @@ static unsigned tcp_syn_options(struct sock *sk, struct sk_buff *skb,
468 } 468 }
469 if (likely(sysctl_tcp_window_scaling)) { 469 if (likely(sysctl_tcp_window_scaling)) {
470 opts->ws = tp->rx_opt.rcv_wscale; 470 opts->ws = tp->rx_opt.rcv_wscale;
471 size += TCPOLEN_WSCALE_ALIGNED; 471 if(likely(opts->ws))
472 size += TCPOLEN_WSCALE_ALIGNED;
472 } 473 }
473 if (likely(sysctl_tcp_sack)) { 474 if (likely(sysctl_tcp_sack)) {
474 opts->options |= OPTION_SACK_ADVERTISE; 475 opts->options |= OPTION_SACK_ADVERTISE;
@@ -509,7 +510,8 @@ static unsigned tcp_synack_options(struct sock *sk,
509 510
510 if (likely(ireq->wscale_ok)) { 511 if (likely(ireq->wscale_ok)) {
511 opts->ws = ireq->rcv_wscale; 512 opts->ws = ireq->rcv_wscale;
512 size += TCPOLEN_WSCALE_ALIGNED; 513 if(likely(opts->ws))
514 size += TCPOLEN_WSCALE_ALIGNED;
513 } 515 }
514 if (likely(doing_ts)) { 516 if (likely(doing_ts)) {
515 opts->options |= OPTION_TS; 517 opts->options |= OPTION_TS;
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index 8e42fbbd576..57e26fa6618 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -951,6 +951,27 @@ int udp_disconnect(struct sock *sk, int flags)
951 return 0; 951 return 0;
952} 952}
953 953
954static int __udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
955{
956 int is_udplite = IS_UDPLITE(sk);
957 int rc;
958
959 if ((rc = sock_queue_rcv_skb(sk, skb)) < 0) {
960 /* Note that an ENOMEM error is charged twice */
961 if (rc == -ENOMEM)
962 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
963 is_udplite);
964 goto drop;
965 }
966
967 return 0;
968
969drop:
970 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
971 kfree_skb(skb);
972 return -1;
973}
974
954/* returns: 975/* returns:
955 * -1: error 976 * -1: error
956 * 0: success 977 * 0: success
@@ -989,9 +1010,7 @@ int udp_queue_rcv_skb(struct sock * sk, struct sk_buff *skb)
989 up->encap_rcv != NULL) { 1010 up->encap_rcv != NULL) {
990 int ret; 1011 int ret;
991 1012
992 bh_unlock_sock(sk);
993 ret = (*up->encap_rcv)(sk, skb); 1013 ret = (*up->encap_rcv)(sk, skb);
994 bh_lock_sock(sk);
995 if (ret <= 0) { 1014 if (ret <= 0) {
996 UDP_INC_STATS_BH(sock_net(sk), 1015 UDP_INC_STATS_BH(sock_net(sk),
997 UDP_MIB_INDATAGRAMS, 1016 UDP_MIB_INDATAGRAMS,
@@ -1044,17 +1063,16 @@ int udp_queue_rcv_skb(struct sock * sk, struct sk_buff *skb)
1044 goto drop; 1063 goto drop;
1045 } 1064 }
1046 1065
1047 if ((rc = sock_queue_rcv_skb(sk,skb)) < 0) { 1066 rc = 0;
1048 /* Note that an ENOMEM error is charged twice */
1049 if (rc == -ENOMEM) {
1050 UDP_INC_STATS_BH(sock_net(sk),
1051 UDP_MIB_RCVBUFERRORS, is_udplite);
1052 atomic_inc(&sk->sk_drops);
1053 }
1054 goto drop;
1055 }
1056 1067
1057 return 0; 1068 bh_lock_sock(sk);
1069 if (!sock_owned_by_user(sk))
1070 rc = __udp_queue_rcv_skb(sk, skb);
1071 else
1072 sk_add_backlog(sk, skb);
1073 bh_unlock_sock(sk);
1074
1075 return rc;
1058 1076
1059drop: 1077drop:
1060 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite); 1078 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
@@ -1092,15 +1110,7 @@ static int __udp4_lib_mcast_deliver(struct net *net, struct sk_buff *skb,
1092 skb1 = skb_clone(skb, GFP_ATOMIC); 1110 skb1 = skb_clone(skb, GFP_ATOMIC);
1093 1111
1094 if (skb1) { 1112 if (skb1) {
1095 int ret = 0; 1113 int ret = udp_queue_rcv_skb(sk, skb1);
1096
1097 bh_lock_sock(sk);
1098 if (!sock_owned_by_user(sk))
1099 ret = udp_queue_rcv_skb(sk, skb1);
1100 else
1101 sk_add_backlog(sk, skb1);
1102 bh_unlock_sock(sk);
1103
1104 if (ret > 0) 1114 if (ret > 0)
1105 /* we should probably re-process instead 1115 /* we should probably re-process instead
1106 * of dropping packets here. */ 1116 * of dropping packets here. */
@@ -1195,13 +1205,7 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct hlist_head udptable[],
1195 uh->dest, inet_iif(skb), udptable); 1205 uh->dest, inet_iif(skb), udptable);
1196 1206
1197 if (sk != NULL) { 1207 if (sk != NULL) {
1198 int ret = 0; 1208 int ret = udp_queue_rcv_skb(sk, skb);
1199 bh_lock_sock(sk);
1200 if (!sock_owned_by_user(sk))
1201 ret = udp_queue_rcv_skb(sk, skb);
1202 else
1203 sk_add_backlog(sk, skb);
1204 bh_unlock_sock(sk);
1205 sock_put(sk); 1209 sock_put(sk);
1206 1210
1207 /* a return value > 0 means to resubmit the input, but 1211 /* a return value > 0 means to resubmit the input, but
@@ -1494,7 +1498,7 @@ struct proto udp_prot = {
1494 .sendmsg = udp_sendmsg, 1498 .sendmsg = udp_sendmsg,
1495 .recvmsg = udp_recvmsg, 1499 .recvmsg = udp_recvmsg,
1496 .sendpage = udp_sendpage, 1500 .sendpage = udp_sendpage,
1497 .backlog_rcv = udp_queue_rcv_skb, 1501 .backlog_rcv = __udp_queue_rcv_skb,
1498 .hash = udp_lib_hash, 1502 .hash = udp_lib_hash,
1499 .unhash = udp_lib_unhash, 1503 .unhash = udp_lib_unhash,
1500 .get_port = udp_v4_get_port, 1504 .get_port = udp_v4_get_port,
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index e2d3b7580b7..7b6a584b62d 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -1688,6 +1688,7 @@ addrconf_prefix_route(struct in6_addr *pfx, int plen, struct net_device *dev,
1688 .fc_dst_len = plen, 1688 .fc_dst_len = plen,
1689 .fc_flags = RTF_UP | flags, 1689 .fc_flags = RTF_UP | flags,
1690 .fc_nlinfo.nl_net = dev_net(dev), 1690 .fc_nlinfo.nl_net = dev_net(dev),
1691 .fc_protocol = RTPROT_KERNEL,
1691 }; 1692 };
1692 1693
1693 ipv6_addr_copy(&cfg.fc_dst, pfx); 1694 ipv6_addr_copy(&cfg.fc_dst, pfx);
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c
index abedf95fdf2..b3157a0cc15 100644
--- a/net/ipv6/icmp.c
+++ b/net/ipv6/icmp.c
@@ -91,19 +91,22 @@ static struct inet6_protocol icmpv6_protocol = {
91 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL, 91 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
92}; 92};
93 93
94static __inline__ int icmpv6_xmit_lock(struct sock *sk) 94static __inline__ struct sock *icmpv6_xmit_lock(struct net *net)
95{ 95{
96 struct sock *sk;
97
96 local_bh_disable(); 98 local_bh_disable();
97 99
100 sk = icmpv6_sk(net);
98 if (unlikely(!spin_trylock(&sk->sk_lock.slock))) { 101 if (unlikely(!spin_trylock(&sk->sk_lock.slock))) {
99 /* This can happen if the output path (f.e. SIT or 102 /* This can happen if the output path (f.e. SIT or
100 * ip6ip6 tunnel) signals dst_link_failure() for an 103 * ip6ip6 tunnel) signals dst_link_failure() for an
101 * outgoing ICMP6 packet. 104 * outgoing ICMP6 packet.
102 */ 105 */
103 local_bh_enable(); 106 local_bh_enable();
104 return 1; 107 return NULL;
105 } 108 }
106 return 0; 109 return sk;
107} 110}
108 111
109static __inline__ void icmpv6_xmit_unlock(struct sock *sk) 112static __inline__ void icmpv6_xmit_unlock(struct sock *sk)
@@ -392,11 +395,10 @@ void icmpv6_send(struct sk_buff *skb, int type, int code, __u32 info,
392 fl.fl_icmp_code = code; 395 fl.fl_icmp_code = code;
393 security_skb_classify_flow(skb, &fl); 396 security_skb_classify_flow(skb, &fl);
394 397
395 sk = icmpv6_sk(net); 398 sk = icmpv6_xmit_lock(net);
396 np = inet6_sk(sk); 399 if (sk == NULL)
397
398 if (icmpv6_xmit_lock(sk))
399 return; 400 return;
401 np = inet6_sk(sk);
400 402
401 if (!icmpv6_xrlim_allow(sk, type, &fl)) 403 if (!icmpv6_xrlim_allow(sk, type, &fl))
402 goto out; 404 goto out;
@@ -539,11 +541,10 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
539 fl.fl_icmp_type = ICMPV6_ECHO_REPLY; 541 fl.fl_icmp_type = ICMPV6_ECHO_REPLY;
540 security_skb_classify_flow(skb, &fl); 542 security_skb_classify_flow(skb, &fl);
541 543
542 sk = icmpv6_sk(net); 544 sk = icmpv6_xmit_lock(net);
543 np = inet6_sk(sk); 545 if (sk == NULL)
544
545 if (icmpv6_xmit_lock(sk))
546 return; 546 return;
547 np = inet6_sk(sk);
547 548
548 if (!fl.oif && ipv6_addr_is_multicast(&fl.fl6_dst)) 549 if (!fl.oif && ipv6_addr_is_multicast(&fl.fl6_dst))
549 fl.oif = np->mcast_oif; 550 fl.oif = np->mcast_oif;
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 0e844c2736a..3df2c442d90 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -943,39 +943,39 @@ static int ip6_dst_lookup_tail(struct sock *sk,
943 } 943 }
944 944
945#ifdef CONFIG_IPV6_OPTIMISTIC_DAD 945#ifdef CONFIG_IPV6_OPTIMISTIC_DAD
946 /* 946 /*
947 * Here if the dst entry we've looked up 947 * Here if the dst entry we've looked up
948 * has a neighbour entry that is in the INCOMPLETE 948 * has a neighbour entry that is in the INCOMPLETE
949 * state and the src address from the flow is 949 * state and the src address from the flow is
950 * marked as OPTIMISTIC, we release the found 950 * marked as OPTIMISTIC, we release the found
951 * dst entry and replace it instead with the 951 * dst entry and replace it instead with the
952 * dst entry of the nexthop router 952 * dst entry of the nexthop router
953 */ 953 */
954 if (!((*dst)->neighbour->nud_state & NUD_VALID)) { 954 if ((*dst)->neighbour && !((*dst)->neighbour->nud_state & NUD_VALID)) {
955 struct inet6_ifaddr *ifp; 955 struct inet6_ifaddr *ifp;
956 struct flowi fl_gw; 956 struct flowi fl_gw;
957 int redirect; 957 int redirect;
958 958
959 ifp = ipv6_get_ifaddr(net, &fl->fl6_src, 959 ifp = ipv6_get_ifaddr(net, &fl->fl6_src,
960 (*dst)->dev, 1); 960 (*dst)->dev, 1);
961 961
962 redirect = (ifp && ifp->flags & IFA_F_OPTIMISTIC); 962 redirect = (ifp && ifp->flags & IFA_F_OPTIMISTIC);
963 if (ifp) 963 if (ifp)
964 in6_ifa_put(ifp); 964 in6_ifa_put(ifp);
965 965
966 if (redirect) { 966 if (redirect) {
967 /* 967 /*
968 * We need to get the dst entry for the 968 * We need to get the dst entry for the
969 * default router instead 969 * default router instead
970 */ 970 */
971 dst_release(*dst); 971 dst_release(*dst);
972 memcpy(&fl_gw, fl, sizeof(struct flowi)); 972 memcpy(&fl_gw, fl, sizeof(struct flowi));
973 memset(&fl_gw.fl6_dst, 0, sizeof(struct in6_addr)); 973 memset(&fl_gw.fl6_dst, 0, sizeof(struct in6_addr));
974 *dst = ip6_route_output(net, sk, &fl_gw); 974 *dst = ip6_route_output(net, sk, &fl_gw);
975 if ((err = (*dst)->error)) 975 if ((err = (*dst)->error))
976 goto out_err_release; 976 goto out_err_release;
977 }
978 } 977 }
978 }
979#endif 979#endif
980 980
981 return 0; 981 return 0;
diff --git a/net/ipv6/netfilter/ip6t_hbh.c b/net/ipv6/netfilter/ip6t_hbh.c
index 62e39ace058..26654b26d7f 100644
--- a/net/ipv6/netfilter/ip6t_hbh.c
+++ b/net/ipv6/netfilter/ip6t_hbh.c
@@ -97,8 +97,6 @@ hbh_mt6(const struct sk_buff *skb, const struct net_device *in,
97 hdrlen -= 2; 97 hdrlen -= 2;
98 if (!(optinfo->flags & IP6T_OPTS_OPTS)) { 98 if (!(optinfo->flags & IP6T_OPTS_OPTS)) {
99 return ret; 99 return ret;
100 } else if (optinfo->flags & IP6T_OPTS_NSTRICT) {
101 pr_debug("Not strict - not implemented");
102 } else { 100 } else {
103 pr_debug("Strict "); 101 pr_debug("Strict ");
104 pr_debug("#%d ", optinfo->optsnr); 102 pr_debug("#%d ", optinfo->optsnr);
@@ -177,6 +175,12 @@ hbh_mt6_check(const char *tablename, const void *entry,
177 pr_debug("ip6t_opts: unknown flags %X\n", optsinfo->invflags); 175 pr_debug("ip6t_opts: unknown flags %X\n", optsinfo->invflags);
178 return false; 176 return false;
179 } 177 }
178
179 if (optsinfo->flags & IP6T_OPTS_NSTRICT) {
180 pr_debug("ip6t_opts: Not strict - not implemented");
181 return false;
182 }
183
180 return true; 184 return true;
181} 185}
182 186
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
index 01d47674f7e..e53e493606c 100644
--- a/net/ipv6/raw.c
+++ b/net/ipv6/raw.c
@@ -377,14 +377,14 @@ static inline int rawv6_rcv_skb(struct sock * sk, struct sk_buff * skb)
377 skb_checksum_complete(skb)) { 377 skb_checksum_complete(skb)) {
378 atomic_inc(&sk->sk_drops); 378 atomic_inc(&sk->sk_drops);
379 kfree_skb(skb); 379 kfree_skb(skb);
380 return 0; 380 return NET_RX_DROP;
381 } 381 }
382 382
383 /* Charge it to the socket. */ 383 /* Charge it to the socket. */
384 if (sock_queue_rcv_skb(sk,skb)<0) { 384 if (sock_queue_rcv_skb(sk,skb)<0) {
385 atomic_inc(&sk->sk_drops); 385 atomic_inc(&sk->sk_drops);
386 kfree_skb(skb); 386 kfree_skb(skb);
387 return 0; 387 return NET_RX_DROP;
388 } 388 }
389 389
390 return 0; 390 return 0;
@@ -429,7 +429,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
429 if (skb_checksum_complete(skb)) { 429 if (skb_checksum_complete(skb)) {
430 atomic_inc(&sk->sk_drops); 430 atomic_inc(&sk->sk_drops);
431 kfree_skb(skb); 431 kfree_skb(skb);
432 return 0; 432 return NET_RX_DROP;
433 } 433 }
434 } 434 }
435 435
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 9af6115f0f5..63442a1e741 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2688,6 +2688,8 @@ int __init ip6_route_init(void)
2688 if (ret) 2688 if (ret)
2689 goto out_kmem_cache; 2689 goto out_kmem_cache;
2690 2690
2691 ip6_dst_blackhole_ops.kmem_cachep = ip6_dst_ops_template.kmem_cachep;
2692
2691 /* Registering of the loopback is done before this portion of code, 2693 /* Registering of the loopback is done before this portion of code,
2692 * the loopback reference in rt6_info will not be taken, do it 2694 * the loopback reference in rt6_info will not be taken, do it
2693 * manually for init_net */ 2695 * manually for init_net */
diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c
index e6dfaeac6be..587f8f60c48 100644
--- a/net/ipv6/sysctl_net_ipv6.c
+++ b/net/ipv6/sysctl_net_ipv6.c
@@ -156,7 +156,7 @@ static struct ctl_table_header *ip6_base;
156int ipv6_static_sysctl_register(void) 156int ipv6_static_sysctl_register(void)
157{ 157{
158 static struct ctl_table empty[1]; 158 static struct ctl_table empty[1];
159 ip6_base = register_net_sysctl_rotable(net_ipv6_ctl_path, empty); 159 ip6_base = register_sysctl_paths(net_ipv6_ctl_path, empty);
160 if (ip6_base == NULL) 160 if (ip6_base == NULL)
161 return -ENOMEM; 161 return -ENOMEM;
162 return 0; 162 return 0;
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 5b90b369ccb..10e22fd4822 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -1050,7 +1050,7 @@ static void tcp_v6_send_ack(struct sk_buff *skb, u32 seq, u32 ack, u32 win, u32
1050 struct tcphdr *th = tcp_hdr(skb), *t1; 1050 struct tcphdr *th = tcp_hdr(skb), *t1;
1051 struct sk_buff *buff; 1051 struct sk_buff *buff;
1052 struct flowi fl; 1052 struct flowi fl;
1053 struct net *net = dev_net(skb->dev); 1053 struct net *net = dev_net(skb->dst->dev);
1054 struct sock *ctl_sk = net->ipv6.tcp_sk; 1054 struct sock *ctl_sk = net->ipv6.tcp_sk;
1055 unsigned int tot_len = sizeof(struct tcphdr); 1055 unsigned int tot_len = sizeof(struct tcphdr);
1056 __be32 *topt; 1056 __be32 *topt;
@@ -2148,6 +2148,7 @@ static int tcpv6_net_init(struct net *net)
2148static void tcpv6_net_exit(struct net *net) 2148static void tcpv6_net_exit(struct net *net)
2149{ 2149{
2150 inet_ctl_sock_destroy(net->ipv6.tcp_sk); 2150 inet_ctl_sock_destroy(net->ipv6.tcp_sk);
2151 inet_twsk_purge(net, &tcp_hashinfo, &tcp_death_row, AF_INET6);
2151} 2152}
2152 2153
2153static struct pernet_operations tcpv6_net_ops = { 2154static struct pernet_operations tcpv6_net_ops = {
diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c
index 705959b31e2..d7b54b5bfa6 100644
--- a/net/iucv/iucv.c
+++ b/net/iucv/iucv.c
@@ -524,7 +524,6 @@ static int iucv_enable(void)
524 get_online_cpus(); 524 get_online_cpus();
525 for_each_online_cpu(cpu) 525 for_each_online_cpu(cpu)
526 smp_call_function_single(cpu, iucv_declare_cpu, NULL, 1); 526 smp_call_function_single(cpu, iucv_declare_cpu, NULL, 1);
527 preempt_enable();
528 if (cpus_empty(iucv_buffer_cpumask)) 527 if (cpus_empty(iucv_buffer_cpumask))
529 /* No cpu could declare an iucv buffer. */ 528 /* No cpu could declare an iucv buffer. */
530 goto out_path; 529 goto out_path;
@@ -547,7 +546,9 @@ out:
547 */ 546 */
548static void iucv_disable(void) 547static void iucv_disable(void)
549{ 548{
549 get_online_cpus();
550 on_each_cpu(iucv_retrieve_cpu, NULL, 1); 550 on_each_cpu(iucv_retrieve_cpu, NULL, 1);
551 put_online_cpus();
551 kfree(iucv_path_table); 552 kfree(iucv_path_table);
552} 553}
553 554
diff --git a/net/key/af_key.c b/net/key/af_key.c
index d628df97e02..b7f5a1c353e 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -73,22 +73,18 @@ static int pfkey_can_dump(struct sock *sk)
73 return 0; 73 return 0;
74} 74}
75 75
76static int pfkey_do_dump(struct pfkey_sock *pfk) 76static void pfkey_terminate_dump(struct pfkey_sock *pfk)
77{ 77{
78 int rc; 78 if (pfk->dump.dump) {
79 79 pfk->dump.done(pfk);
80 rc = pfk->dump.dump(pfk); 80 pfk->dump.dump = NULL;
81 if (rc == -ENOBUFS) 81 pfk->dump.done = NULL;
82 return 0; 82 }
83
84 pfk->dump.done(pfk);
85 pfk->dump.dump = NULL;
86 pfk->dump.done = NULL;
87 return rc;
88} 83}
89 84
90static void pfkey_sock_destruct(struct sock *sk) 85static void pfkey_sock_destruct(struct sock *sk)
91{ 86{
87 pfkey_terminate_dump(pfkey_sk(sk));
92 skb_queue_purge(&sk->sk_receive_queue); 88 skb_queue_purge(&sk->sk_receive_queue);
93 89
94 if (!sock_flag(sk, SOCK_DEAD)) { 90 if (!sock_flag(sk, SOCK_DEAD)) {
@@ -310,6 +306,18 @@ static int pfkey_broadcast(struct sk_buff *skb, gfp_t allocation,
310 return err; 306 return err;
311} 307}
312 308
309static int pfkey_do_dump(struct pfkey_sock *pfk)
310{
311 int rc;
312
313 rc = pfk->dump.dump(pfk);
314 if (rc == -ENOBUFS)
315 return 0;
316
317 pfkey_terminate_dump(pfk);
318 return rc;
319}
320
313static inline void pfkey_hdr_dup(struct sadb_msg *new, struct sadb_msg *orig) 321static inline void pfkey_hdr_dup(struct sadb_msg *new, struct sadb_msg *orig)
314{ 322{
315 *new = *orig; 323 *new = *orig;
diff --git a/net/mac80211/debugfs_key.c b/net/mac80211/debugfs_key.c
index 7439b63df5d..cf82acec913 100644
--- a/net/mac80211/debugfs_key.c
+++ b/net/mac80211/debugfs_key.c
@@ -265,7 +265,7 @@ void ieee80211_debugfs_key_add_default(struct ieee80211_sub_if_data *sdata)
265 key = sdata->default_key; 265 key = sdata->default_key;
266 if (key) { 266 if (key) {
267 sprintf(buf, "../keys/%d", key->debugfs.cnt); 267 sprintf(buf, "../keys/%d", key->debugfs.cnt);
268 sdata->debugfs.default_key = 268 sdata->common_debugfs.default_key =
269 debugfs_create_symlink("default_key", 269 debugfs_create_symlink("default_key",
270 sdata->debugfsdir, buf); 270 sdata->debugfsdir, buf);
271 } else 271 } else
@@ -277,8 +277,8 @@ void ieee80211_debugfs_key_remove_default(struct ieee80211_sub_if_data *sdata)
277 if (!sdata) 277 if (!sdata)
278 return; 278 return;
279 279
280 debugfs_remove(sdata->debugfs.default_key); 280 debugfs_remove(sdata->common_debugfs.default_key);
281 sdata->debugfs.default_key = NULL; 281 sdata->common_debugfs.default_key = NULL;
282} 282}
283 283
284void ieee80211_debugfs_key_sta_del(struct ieee80211_key *key, 284void ieee80211_debugfs_key_sta_del(struct ieee80211_key *key,
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
index 475f89a8aee..8165df578c9 100644
--- a/net/mac80211/debugfs_netdev.c
+++ b/net/mac80211/debugfs_netdev.c
@@ -248,8 +248,8 @@ IEEE80211_IF_WFILE(min_discovery_timeout,
248static void add_sta_files(struct ieee80211_sub_if_data *sdata) 248static void add_sta_files(struct ieee80211_sub_if_data *sdata)
249{ 249{
250 DEBUGFS_ADD(drop_unencrypted, sta); 250 DEBUGFS_ADD(drop_unencrypted, sta);
251 DEBUGFS_ADD(force_unicast_rateidx, ap); 251 DEBUGFS_ADD(force_unicast_rateidx, sta);
252 DEBUGFS_ADD(max_ratectrl_rateidx, ap); 252 DEBUGFS_ADD(max_ratectrl_rateidx, sta);
253 253
254 DEBUGFS_ADD(state, sta); 254 DEBUGFS_ADD(state, sta);
255 DEBUGFS_ADD(bssid, sta); 255 DEBUGFS_ADD(bssid, sta);
@@ -283,8 +283,8 @@ static void add_ap_files(struct ieee80211_sub_if_data *sdata)
283static void add_wds_files(struct ieee80211_sub_if_data *sdata) 283static void add_wds_files(struct ieee80211_sub_if_data *sdata)
284{ 284{
285 DEBUGFS_ADD(drop_unencrypted, wds); 285 DEBUGFS_ADD(drop_unencrypted, wds);
286 DEBUGFS_ADD(force_unicast_rateidx, ap); 286 DEBUGFS_ADD(force_unicast_rateidx, wds);
287 DEBUGFS_ADD(max_ratectrl_rateidx, ap); 287 DEBUGFS_ADD(max_ratectrl_rateidx, wds);
288 288
289 DEBUGFS_ADD(peer, wds); 289 DEBUGFS_ADD(peer, wds);
290} 290}
@@ -292,8 +292,8 @@ static void add_wds_files(struct ieee80211_sub_if_data *sdata)
292static void add_vlan_files(struct ieee80211_sub_if_data *sdata) 292static void add_vlan_files(struct ieee80211_sub_if_data *sdata)
293{ 293{
294 DEBUGFS_ADD(drop_unencrypted, vlan); 294 DEBUGFS_ADD(drop_unencrypted, vlan);
295 DEBUGFS_ADD(force_unicast_rateidx, ap); 295 DEBUGFS_ADD(force_unicast_rateidx, vlan);
296 DEBUGFS_ADD(max_ratectrl_rateidx, ap); 296 DEBUGFS_ADD(max_ratectrl_rateidx, vlan);
297} 297}
298 298
299static void add_monitor_files(struct ieee80211_sub_if_data *sdata) 299static void add_monitor_files(struct ieee80211_sub_if_data *sdata)
@@ -381,8 +381,8 @@ static void add_files(struct ieee80211_sub_if_data *sdata)
381static void del_sta_files(struct ieee80211_sub_if_data *sdata) 381static void del_sta_files(struct ieee80211_sub_if_data *sdata)
382{ 382{
383 DEBUGFS_DEL(drop_unencrypted, sta); 383 DEBUGFS_DEL(drop_unencrypted, sta);
384 DEBUGFS_DEL(force_unicast_rateidx, ap); 384 DEBUGFS_DEL(force_unicast_rateidx, sta);
385 DEBUGFS_DEL(max_ratectrl_rateidx, ap); 385 DEBUGFS_DEL(max_ratectrl_rateidx, sta);
386 386
387 DEBUGFS_DEL(state, sta); 387 DEBUGFS_DEL(state, sta);
388 DEBUGFS_DEL(bssid, sta); 388 DEBUGFS_DEL(bssid, sta);
@@ -416,8 +416,8 @@ static void del_ap_files(struct ieee80211_sub_if_data *sdata)
416static void del_wds_files(struct ieee80211_sub_if_data *sdata) 416static void del_wds_files(struct ieee80211_sub_if_data *sdata)
417{ 417{
418 DEBUGFS_DEL(drop_unencrypted, wds); 418 DEBUGFS_DEL(drop_unencrypted, wds);
419 DEBUGFS_DEL(force_unicast_rateidx, ap); 419 DEBUGFS_DEL(force_unicast_rateidx, wds);
420 DEBUGFS_DEL(max_ratectrl_rateidx, ap); 420 DEBUGFS_DEL(max_ratectrl_rateidx, wds);
421 421
422 DEBUGFS_DEL(peer, wds); 422 DEBUGFS_DEL(peer, wds);
423} 423}
@@ -425,8 +425,8 @@ static void del_wds_files(struct ieee80211_sub_if_data *sdata)
425static void del_vlan_files(struct ieee80211_sub_if_data *sdata) 425static void del_vlan_files(struct ieee80211_sub_if_data *sdata)
426{ 426{
427 DEBUGFS_DEL(drop_unencrypted, vlan); 427 DEBUGFS_DEL(drop_unencrypted, vlan);
428 DEBUGFS_DEL(force_unicast_rateidx, ap); 428 DEBUGFS_DEL(force_unicast_rateidx, vlan);
429 DEBUGFS_DEL(max_ratectrl_rateidx, ap); 429 DEBUGFS_DEL(max_ratectrl_rateidx, vlan);
430} 430}
431 431
432static void del_monitor_files(struct ieee80211_sub_if_data *sdata) 432static void del_monitor_files(struct ieee80211_sub_if_data *sdata)
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index ec59345af65..4498d871365 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -470,6 +470,8 @@ struct ieee80211_sub_if_data {
470 struct dentry *auth_transaction; 470 struct dentry *auth_transaction;
471 struct dentry *flags; 471 struct dentry *flags;
472 struct dentry *num_beacons_sta; 472 struct dentry *num_beacons_sta;
473 struct dentry *force_unicast_rateidx;
474 struct dentry *max_ratectrl_rateidx;
473 } sta; 475 } sta;
474 struct { 476 struct {
475 struct dentry *drop_unencrypted; 477 struct dentry *drop_unencrypted;
@@ -483,15 +485,21 @@ struct ieee80211_sub_if_data {
483 struct { 485 struct {
484 struct dentry *drop_unencrypted; 486 struct dentry *drop_unencrypted;
485 struct dentry *peer; 487 struct dentry *peer;
488 struct dentry *force_unicast_rateidx;
489 struct dentry *max_ratectrl_rateidx;
486 } wds; 490 } wds;
487 struct { 491 struct {
488 struct dentry *drop_unencrypted; 492 struct dentry *drop_unencrypted;
493 struct dentry *force_unicast_rateidx;
494 struct dentry *max_ratectrl_rateidx;
489 } vlan; 495 } vlan;
490 struct { 496 struct {
491 struct dentry *mode; 497 struct dentry *mode;
492 } monitor; 498 } monitor;
493 struct dentry *default_key;
494 } debugfs; 499 } debugfs;
500 struct {
501 struct dentry *default_key;
502 } common_debugfs;
495 503
496#ifdef CONFIG_MAC80211_MESH 504#ifdef CONFIG_MAC80211_MESH
497 struct dentry *mesh_stats_dir; 505 struct dentry *mesh_stats_dir;
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index b5933b27149..35f2f95f2fa 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -383,7 +383,7 @@ errcopy:
383 hlist_for_each_safe(p, q, &newtbl->hash_buckets[i]) 383 hlist_for_each_safe(p, q, &newtbl->hash_buckets[i])
384 tbl->free_node(p, 0); 384 tbl->free_node(p, 0);
385 } 385 }
386 __mesh_table_free(tbl); 386 __mesh_table_free(newtbl);
387endgrow: 387endgrow:
388 return NULL; 388 return NULL;
389} 389}
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 1e97fb9fb34..902cac1bd24 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -813,7 +813,7 @@ static void ieee80211_send_assoc(struct net_device *dev,
813 } 813 }
814 } 814 }
815 815
816 if (count == 8) { 816 if (rates_len > count) {
817 pos = skb_put(skb, rates_len - count + 2); 817 pos = skb_put(skb, rates_len - count + 2);
818 *pos++ = WLAN_EID_EXT_SUPP_RATES; 818 *pos++ = WLAN_EID_EXT_SUPP_RATES;
819 *pos++ = rates_len - count; 819 *pos++ = rates_len - count;
@@ -2868,7 +2868,7 @@ static void ieee80211_rx_bss_info(struct net_device *dev,
2868 jiffies); 2868 jiffies);
2869#endif /* CONFIG_MAC80211_IBSS_DEBUG */ 2869#endif /* CONFIG_MAC80211_IBSS_DEBUG */
2870 if (beacon_timestamp > rx_timestamp) { 2870 if (beacon_timestamp > rx_timestamp) {
2871#ifndef CONFIG_MAC80211_IBSS_DEBUG 2871#ifdef CONFIG_MAC80211_IBSS_DEBUG
2872 printk(KERN_DEBUG "%s: beacon TSF higher than " 2872 printk(KERN_DEBUG "%s: beacon TSF higher than "
2873 "local TSF - IBSS merge with BSSID %s\n", 2873 "local TSF - IBSS merge with BSSID %s\n",
2874 dev->name, print_mac(mac, mgmt->bssid)); 2874 dev->name, print_mac(mac, mgmt->bssid));
diff --git a/net/netfilter/nf_conntrack_irc.c b/net/netfilter/nf_conntrack_irc.c
index 1b1226d6653..20633fdf7e6 100644
--- a/net/netfilter/nf_conntrack_irc.c
+++ b/net/netfilter/nf_conntrack_irc.c
@@ -68,11 +68,21 @@ static const char *const dccprotos[] = {
68static int parse_dcc(char *data, const char *data_end, u_int32_t *ip, 68static int parse_dcc(char *data, const char *data_end, u_int32_t *ip,
69 u_int16_t *port, char **ad_beg_p, char **ad_end_p) 69 u_int16_t *port, char **ad_beg_p, char **ad_end_p)
70{ 70{
71 char *tmp;
72
71 /* at least 12: "AAAAAAAA P\1\n" */ 73 /* at least 12: "AAAAAAAA P\1\n" */
72 while (*data++ != ' ') 74 while (*data++ != ' ')
73 if (data > data_end - 12) 75 if (data > data_end - 12)
74 return -1; 76 return -1;
75 77
78 /* Make sure we have a newline character within the packet boundaries
79 * because simple_strtoul parses until the first invalid character. */
80 for (tmp = data; tmp <= data_end; tmp++)
81 if (*tmp == '\n')
82 break;
83 if (tmp > data_end || *tmp != '\n')
84 return -1;
85
76 *ad_beg_p = data; 86 *ad_beg_p = data;
77 *ip = simple_strtoul(data, &data, 10); 87 *ip = simple_strtoul(data, &data, 10);
78 88
diff --git a/net/netfilter/nf_conntrack_proto_gre.c b/net/netfilter/nf_conntrack_proto_gre.c
index 654a4f7f12c..9bd03967fea 100644
--- a/net/netfilter/nf_conntrack_proto_gre.c
+++ b/net/netfilter/nf_conntrack_proto_gre.c
@@ -45,12 +45,12 @@ static LIST_HEAD(gre_keymap_list);
45 45
46void nf_ct_gre_keymap_flush(void) 46void nf_ct_gre_keymap_flush(void)
47{ 47{
48 struct list_head *pos, *n; 48 struct nf_ct_gre_keymap *km, *tmp;
49 49
50 write_lock_bh(&nf_ct_gre_lock); 50 write_lock_bh(&nf_ct_gre_lock);
51 list_for_each_safe(pos, n, &gre_keymap_list) { 51 list_for_each_entry_safe(km, tmp, &gre_keymap_list, list) {
52 list_del(pos); 52 list_del(&km->list);
53 kfree(pos); 53 kfree(km);
54 } 54 }
55 write_unlock_bh(&nf_ct_gre_lock); 55 write_unlock_bh(&nf_ct_gre_lock);
56} 56}
@@ -97,10 +97,14 @@ int nf_ct_gre_keymap_add(struct nf_conn *ct, enum ip_conntrack_dir dir,
97 kmp = &help->help.ct_pptp_info.keymap[dir]; 97 kmp = &help->help.ct_pptp_info.keymap[dir];
98 if (*kmp) { 98 if (*kmp) {
99 /* check whether it's a retransmission */ 99 /* check whether it's a retransmission */
100 read_lock_bh(&nf_ct_gre_lock);
100 list_for_each_entry(km, &gre_keymap_list, list) { 101 list_for_each_entry(km, &gre_keymap_list, list) {
101 if (gre_key_cmpfn(km, t) && km == *kmp) 102 if (gre_key_cmpfn(km, t) && km == *kmp) {
103 read_unlock_bh(&nf_ct_gre_lock);
102 return 0; 104 return 0;
105 }
103 } 106 }
107 read_unlock_bh(&nf_ct_gre_lock);
104 pr_debug("trying to override keymap_%s for ct %p\n", 108 pr_debug("trying to override keymap_%s for ct %p\n",
105 dir == IP_CT_DIR_REPLY ? "reply" : "orig", ct); 109 dir == IP_CT_DIR_REPLY ? "reply" : "orig", ct);
106 return -EEXIST; 110 return -EEXIST;
diff --git a/net/netfilter/nf_conntrack_sip.c b/net/netfilter/nf_conntrack_sip.c
index 2f9bbc058b4..1fa306be60f 100644
--- a/net/netfilter/nf_conntrack_sip.c
+++ b/net/netfilter/nf_conntrack_sip.c
@@ -1193,7 +1193,6 @@ static const struct sip_handler sip_handlers[] = {
1193static int process_sip_response(struct sk_buff *skb, 1193static int process_sip_response(struct sk_buff *skb,
1194 const char **dptr, unsigned int *datalen) 1194 const char **dptr, unsigned int *datalen)
1195{ 1195{
1196 static const struct sip_handler *handler;
1197 enum ip_conntrack_info ctinfo; 1196 enum ip_conntrack_info ctinfo;
1198 struct nf_conn *ct = nf_ct_get(skb, &ctinfo); 1197 struct nf_conn *ct = nf_ct_get(skb, &ctinfo);
1199 unsigned int matchoff, matchlen; 1198 unsigned int matchoff, matchlen;
@@ -1214,6 +1213,8 @@ static int process_sip_response(struct sk_buff *skb,
1214 dataoff = matchoff + matchlen + 1; 1213 dataoff = matchoff + matchlen + 1;
1215 1214
1216 for (i = 0; i < ARRAY_SIZE(sip_handlers); i++) { 1215 for (i = 0; i < ARRAY_SIZE(sip_handlers); i++) {
1216 const struct sip_handler *handler;
1217
1217 handler = &sip_handlers[i]; 1218 handler = &sip_handlers[i];
1218 if (handler->response == NULL) 1219 if (handler->response == NULL)
1219 continue; 1220 continue;
@@ -1228,13 +1229,14 @@ static int process_sip_response(struct sk_buff *skb,
1228static int process_sip_request(struct sk_buff *skb, 1229static int process_sip_request(struct sk_buff *skb,
1229 const char **dptr, unsigned int *datalen) 1230 const char **dptr, unsigned int *datalen)
1230{ 1231{
1231 static const struct sip_handler *handler;
1232 enum ip_conntrack_info ctinfo; 1232 enum ip_conntrack_info ctinfo;
1233 struct nf_conn *ct = nf_ct_get(skb, &ctinfo); 1233 struct nf_conn *ct = nf_ct_get(skb, &ctinfo);
1234 unsigned int matchoff, matchlen; 1234 unsigned int matchoff, matchlen;
1235 unsigned int cseq, i; 1235 unsigned int cseq, i;
1236 1236
1237 for (i = 0; i < ARRAY_SIZE(sip_handlers); i++) { 1237 for (i = 0; i < ARRAY_SIZE(sip_handlers); i++) {
1238 const struct sip_handler *handler;
1239
1238 handler = &sip_handlers[i]; 1240 handler = &sip_handlers[i];
1239 if (handler->request == NULL) 1241 if (handler->request == NULL)
1240 continue; 1242 continue;
diff --git a/net/rfkill/rfkill.c b/net/rfkill/rfkill.c
index 35a9994e233..74aecc098ba 100644
--- a/net/rfkill/rfkill.c
+++ b/net/rfkill/rfkill.c
@@ -377,7 +377,7 @@ static ssize_t rfkill_claim_show(struct device *dev,
377{ 377{
378 struct rfkill *rfkill = to_rfkill(dev); 378 struct rfkill *rfkill = to_rfkill(dev);
379 379
380 return sprintf(buf, "%d", rfkill->user_claim); 380 return sprintf(buf, "%d\n", rfkill->user_claim);
381} 381}
382 382
383static ssize_t rfkill_claim_store(struct device *dev, 383static ssize_t rfkill_claim_store(struct device *dev,
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 5cafdd4c801..8eb79e92e94 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -205,7 +205,7 @@ replay:
205 } 205 }
206 } 206 }
207 207
208 root_lock = qdisc_root_lock(q); 208 root_lock = qdisc_root_sleeping_lock(q);
209 209
210 if (tp == NULL) { 210 if (tp == NULL) {
211 /* Proto-tcf does not exist, create new one */ 211 /* Proto-tcf does not exist, create new one */
diff --git a/net/sched/cls_route.c b/net/sched/cls_route.c
index 481260a4f10..e3d8455eebc 100644
--- a/net/sched/cls_route.c
+++ b/net/sched/cls_route.c
@@ -75,7 +75,7 @@ static __inline__ int route4_fastmap_hash(u32 id, int iif)
75static inline 75static inline
76void route4_reset_fastmap(struct Qdisc *q, struct route4_head *head, u32 id) 76void route4_reset_fastmap(struct Qdisc *q, struct route4_head *head, u32 id)
77{ 77{
78 spinlock_t *root_lock = qdisc_root_lock(q); 78 spinlock_t *root_lock = qdisc_root_sleeping_lock(q);
79 79
80 spin_lock_bh(root_lock); 80 spin_lock_bh(root_lock);
81 memset(head->fastmap, 0, sizeof(head->fastmap)); 81 memset(head->fastmap, 0, sizeof(head->fastmap));
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index ef0efeca635..1122c952aa9 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -199,19 +199,53 @@ struct Qdisc *qdisc_match_from_root(struct Qdisc *root, u32 handle)
199 return NULL; 199 return NULL;
200} 200}
201 201
202/*
203 * This lock is needed until some qdiscs stop calling qdisc_tree_decrease_qlen()
204 * without rtnl_lock(); currently hfsc_dequeue(), netem_dequeue(), tbf_dequeue()
205 */
206static DEFINE_SPINLOCK(qdisc_list_lock);
207
208static void qdisc_list_add(struct Qdisc *q)
209{
210 if ((q->parent != TC_H_ROOT) && !(q->flags & TCQ_F_INGRESS)) {
211 spin_lock_bh(&qdisc_list_lock);
212 list_add_tail(&q->list, &qdisc_root_sleeping(q)->list);
213 spin_unlock_bh(&qdisc_list_lock);
214 }
215}
216
217void qdisc_list_del(struct Qdisc *q)
218{
219 if ((q->parent != TC_H_ROOT) && !(q->flags & TCQ_F_INGRESS)) {
220 spin_lock_bh(&qdisc_list_lock);
221 list_del(&q->list);
222 spin_unlock_bh(&qdisc_list_lock);
223 }
224}
225EXPORT_SYMBOL(qdisc_list_del);
226
202struct Qdisc *qdisc_lookup(struct net_device *dev, u32 handle) 227struct Qdisc *qdisc_lookup(struct net_device *dev, u32 handle)
203{ 228{
204 unsigned int i; 229 unsigned int i;
230 struct Qdisc *q;
231
232 spin_lock_bh(&qdisc_list_lock);
205 233
206 for (i = 0; i < dev->num_tx_queues; i++) { 234 for (i = 0; i < dev->num_tx_queues; i++) {
207 struct netdev_queue *txq = netdev_get_tx_queue(dev, i); 235 struct netdev_queue *txq = netdev_get_tx_queue(dev, i);
208 struct Qdisc *q, *txq_root = txq->qdisc_sleeping; 236 struct Qdisc *txq_root = txq->qdisc_sleeping;
209 237
210 q = qdisc_match_from_root(txq_root, handle); 238 q = qdisc_match_from_root(txq_root, handle);
211 if (q) 239 if (q)
212 return q; 240 goto unlock;
213 } 241 }
214 return qdisc_match_from_root(dev->rx_queue.qdisc_sleeping, handle); 242
243 q = qdisc_match_from_root(dev->rx_queue.qdisc_sleeping, handle);
244
245unlock:
246 spin_unlock_bh(&qdisc_list_lock);
247
248 return q;
215} 249}
216 250
217static struct Qdisc *qdisc_leaf(struct Qdisc *p, u32 classid) 251static struct Qdisc *qdisc_leaf(struct Qdisc *p, u32 classid)
@@ -444,6 +478,10 @@ void qdisc_watchdog_schedule(struct qdisc_watchdog *wd, psched_time_t expires)
444{ 478{
445 ktime_t time; 479 ktime_t time;
446 480
481 if (test_bit(__QDISC_STATE_DEACTIVATED,
482 &qdisc_root_sleeping(wd->qdisc)->state))
483 return;
484
447 wd->qdisc->flags |= TCQ_F_THROTTLED; 485 wd->qdisc->flags |= TCQ_F_THROTTLED;
448 time = ktime_set(0, 0); 486 time = ktime_set(0, 0);
449 time = ktime_add_ns(time, PSCHED_US2NS(expires)); 487 time = ktime_add_ns(time, PSCHED_US2NS(expires));
@@ -586,7 +624,7 @@ static struct Qdisc *dev_graft_qdisc(struct netdev_queue *dev_queue,
586 struct Qdisc *oqdisc = dev_queue->qdisc_sleeping; 624 struct Qdisc *oqdisc = dev_queue->qdisc_sleeping;
587 spinlock_t *root_lock; 625 spinlock_t *root_lock;
588 626
589 root_lock = qdisc_root_lock(oqdisc); 627 root_lock = qdisc_lock(oqdisc);
590 spin_lock_bh(root_lock); 628 spin_lock_bh(root_lock);
591 629
592 /* Prune old scheduler */ 630 /* Prune old scheduler */
@@ -597,7 +635,7 @@ static struct Qdisc *dev_graft_qdisc(struct netdev_queue *dev_queue,
597 if (qdisc == NULL) 635 if (qdisc == NULL)
598 qdisc = &noop_qdisc; 636 qdisc = &noop_qdisc;
599 dev_queue->qdisc_sleeping = qdisc; 637 dev_queue->qdisc_sleeping = qdisc;
600 dev_queue->qdisc = &noop_qdisc; 638 rcu_assign_pointer(dev_queue->qdisc, &noop_qdisc);
601 639
602 spin_unlock_bh(root_lock); 640 spin_unlock_bh(root_lock);
603 641
@@ -792,9 +830,16 @@ qdisc_create(struct net_device *dev, struct netdev_queue *dev_queue,
792 sch->stab = stab; 830 sch->stab = stab;
793 } 831 }
794 if (tca[TCA_RATE]) { 832 if (tca[TCA_RATE]) {
833 spinlock_t *root_lock;
834
835 if ((sch->parent != TC_H_ROOT) &&
836 !(sch->flags & TCQ_F_INGRESS))
837 root_lock = qdisc_root_sleeping_lock(sch);
838 else
839 root_lock = qdisc_lock(sch);
840
795 err = gen_new_estimator(&sch->bstats, &sch->rate_est, 841 err = gen_new_estimator(&sch->bstats, &sch->rate_est,
796 qdisc_root_lock(sch), 842 root_lock, tca[TCA_RATE]);
797 tca[TCA_RATE]);
798 if (err) { 843 if (err) {
799 /* 844 /*
800 * Any broken qdiscs that would require 845 * Any broken qdiscs that would require
@@ -806,8 +851,8 @@ qdisc_create(struct net_device *dev, struct netdev_queue *dev_queue,
806 goto err_out3; 851 goto err_out3;
807 } 852 }
808 } 853 }
809 if ((parent != TC_H_ROOT) && !(sch->flags & TCQ_F_INGRESS)) 854
810 list_add_tail(&sch->list, &dev_queue->qdisc_sleeping->list); 855 qdisc_list_add(sch);
811 856
812 return sch; 857 return sch;
813 } 858 }
@@ -846,7 +891,8 @@ static int qdisc_change(struct Qdisc *sch, struct nlattr **tca)
846 891
847 if (tca[TCA_RATE]) 892 if (tca[TCA_RATE])
848 gen_replace_estimator(&sch->bstats, &sch->rate_est, 893 gen_replace_estimator(&sch->bstats, &sch->rate_est,
849 qdisc_root_lock(sch), tca[TCA_RATE]); 894 qdisc_root_sleeping_lock(sch),
895 tca[TCA_RATE]);
850 return 0; 896 return 0;
851} 897}
852 898
@@ -1123,8 +1169,8 @@ static int tc_fill_qdisc(struct sk_buff *skb, struct Qdisc *q, u32 clid,
1123 if (q->stab && qdisc_dump_stab(skb, q->stab) < 0) 1169 if (q->stab && qdisc_dump_stab(skb, q->stab) < 0)
1124 goto nla_put_failure; 1170 goto nla_put_failure;
1125 1171
1126 if (gnet_stats_start_copy_compat(skb, TCA_STATS2, TCA_STATS, 1172 if (gnet_stats_start_copy_compat(skb, TCA_STATS2, TCA_STATS, TCA_XSTATS,
1127 TCA_XSTATS, qdisc_root_lock(q), &d) < 0) 1173 qdisc_root_sleeping_lock(q), &d) < 0)
1128 goto nla_put_failure; 1174 goto nla_put_failure;
1129 1175
1130 if (q->ops->dump_stats && q->ops->dump_stats(q, &d) < 0) 1176 if (q->ops->dump_stats && q->ops->dump_stats(q, &d) < 0)
@@ -1415,8 +1461,8 @@ static int tc_fill_tclass(struct sk_buff *skb, struct Qdisc *q,
1415 if (cl_ops->dump && cl_ops->dump(q, cl, skb, tcm) < 0) 1461 if (cl_ops->dump && cl_ops->dump(q, cl, skb, tcm) < 0)
1416 goto nla_put_failure; 1462 goto nla_put_failure;
1417 1463
1418 if (gnet_stats_start_copy_compat(skb, TCA_STATS2, TCA_STATS, 1464 if (gnet_stats_start_copy_compat(skb, TCA_STATS2, TCA_STATS, TCA_XSTATS,
1419 TCA_XSTATS, qdisc_root_lock(q), &d) < 0) 1465 qdisc_root_sleeping_lock(q), &d) < 0)
1420 goto nla_put_failure; 1466 goto nla_put_failure;
1421 1467
1422 if (cl_ops->dump_stats && cl_ops->dump_stats(q, cl, &d) < 0) 1468 if (cl_ops->dump_stats && cl_ops->dump_stats(q, cl, &d) < 0)
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c
index 47ef492c4ff..8b06fa90048 100644
--- a/net/sched/sch_cbq.c
+++ b/net/sched/sch_cbq.c
@@ -521,6 +521,10 @@ static void cbq_ovl_delay(struct cbq_class *cl)
521 struct cbq_sched_data *q = qdisc_priv(cl->qdisc); 521 struct cbq_sched_data *q = qdisc_priv(cl->qdisc);
522 psched_tdiff_t delay = cl->undertime - q->now; 522 psched_tdiff_t delay = cl->undertime - q->now;
523 523
524 if (test_bit(__QDISC_STATE_DEACTIVATED,
525 &qdisc_root_sleeping(cl->qdisc)->state))
526 return;
527
524 if (!cl->delayed) { 528 if (!cl->delayed) {
525 psched_time_t sched = q->now; 529 psched_time_t sched = q->now;
526 ktime_t expires; 530 ktime_t expires;
@@ -1750,7 +1754,7 @@ static void cbq_put(struct Qdisc *sch, unsigned long arg)
1750 1754
1751 if (--cl->refcnt == 0) { 1755 if (--cl->refcnt == 0) {
1752#ifdef CONFIG_NET_CLS_ACT 1756#ifdef CONFIG_NET_CLS_ACT
1753 spinlock_t *root_lock = qdisc_root_lock(sch); 1757 spinlock_t *root_lock = qdisc_root_sleeping_lock(sch);
1754 struct cbq_sched_data *q = qdisc_priv(sch); 1758 struct cbq_sched_data *q = qdisc_priv(sch);
1755 1759
1756 spin_lock_bh(root_lock); 1760 spin_lock_bh(root_lock);
@@ -1835,7 +1839,7 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t
1835 1839
1836 if (tca[TCA_RATE]) 1840 if (tca[TCA_RATE])
1837 gen_replace_estimator(&cl->bstats, &cl->rate_est, 1841 gen_replace_estimator(&cl->bstats, &cl->rate_est,
1838 qdisc_root_lock(sch), 1842 qdisc_root_sleeping_lock(sch),
1839 tca[TCA_RATE]); 1843 tca[TCA_RATE]);
1840 return 0; 1844 return 0;
1841 } 1845 }
@@ -1926,7 +1930,7 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t
1926 1930
1927 if (tca[TCA_RATE]) 1931 if (tca[TCA_RATE])
1928 gen_new_estimator(&cl->bstats, &cl->rate_est, 1932 gen_new_estimator(&cl->bstats, &cl->rate_est,
1929 qdisc_root_lock(sch), tca[TCA_RATE]); 1933 qdisc_root_sleeping_lock(sch), tca[TCA_RATE]);
1930 1934
1931 *arg = (unsigned long)cl; 1935 *arg = (unsigned long)cl;
1932 return 0; 1936 return 0;
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index c3ed4d44fc1..ec0a0839ce5 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -215,10 +215,9 @@ static void dev_watchdog(unsigned long arg)
215 time_after(jiffies, (dev->trans_start + 215 time_after(jiffies, (dev->trans_start +
216 dev->watchdog_timeo))) { 216 dev->watchdog_timeo))) {
217 char drivername[64]; 217 char drivername[64];
218 printk(KERN_INFO "NETDEV WATCHDOG: %s (%s): transmit timed out\n", 218 WARN_ONCE(1, KERN_INFO "NETDEV WATCHDOG: %s (%s): transmit timed out\n",
219 dev->name, netdev_drivername(dev, drivername, 64)); 219 dev->name, netdev_drivername(dev, drivername, 64));
220 dev->tx_timeout(dev); 220 dev->tx_timeout(dev);
221 WARN_ON_ONCE(1);
222 } 221 }
223 if (!mod_timer(&dev->watchdog_timer, 222 if (!mod_timer(&dev->watchdog_timer,
224 round_jiffies(jiffies + 223 round_jiffies(jiffies +
@@ -526,10 +525,9 @@ void qdisc_destroy(struct Qdisc *qdisc)
526 !atomic_dec_and_test(&qdisc->refcnt)) 525 !atomic_dec_and_test(&qdisc->refcnt))
527 return; 526 return;
528 527
529 if (qdisc->parent)
530 list_del(&qdisc->list);
531
532#ifdef CONFIG_NET_SCHED 528#ifdef CONFIG_NET_SCHED
529 qdisc_list_del(qdisc);
530
533 qdisc_put_stab(qdisc->stab); 531 qdisc_put_stab(qdisc->stab);
534#endif 532#endif
535 gen_kill_estimator(&qdisc->bstats, &qdisc->rate_est); 533 gen_kill_estimator(&qdisc->bstats, &qdisc->rate_est);
@@ -635,7 +633,7 @@ static void dev_deactivate_queue(struct net_device *dev,
635 if (!(qdisc->flags & TCQ_F_BUILTIN)) 633 if (!(qdisc->flags & TCQ_F_BUILTIN))
636 set_bit(__QDISC_STATE_DEACTIVATED, &qdisc->state); 634 set_bit(__QDISC_STATE_DEACTIVATED, &qdisc->state);
637 635
638 dev_queue->qdisc = qdisc_default; 636 rcu_assign_pointer(dev_queue->qdisc, qdisc_default);
639 qdisc_reset(qdisc); 637 qdisc_reset(qdisc);
640 638
641 spin_unlock_bh(qdisc_lock(qdisc)); 639 spin_unlock_bh(qdisc_lock(qdisc));
@@ -710,7 +708,7 @@ static void shutdown_scheduler_queue(struct net_device *dev,
710 struct Qdisc *qdisc_default = _qdisc_default; 708 struct Qdisc *qdisc_default = _qdisc_default;
711 709
712 if (qdisc) { 710 if (qdisc) {
713 dev_queue->qdisc = qdisc_default; 711 rcu_assign_pointer(dev_queue->qdisc, qdisc_default);
714 dev_queue->qdisc_sleeping = qdisc_default; 712 dev_queue->qdisc_sleeping = qdisc_default;
715 713
716 qdisc_destroy(qdisc); 714 qdisc_destroy(qdisc);
diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c
index c2b8d9cce3d..c1e77da8cd0 100644
--- a/net/sched/sch_hfsc.c
+++ b/net/sched/sch_hfsc.c
@@ -1045,7 +1045,7 @@ hfsc_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
1045 1045
1046 if (tca[TCA_RATE]) 1046 if (tca[TCA_RATE])
1047 gen_replace_estimator(&cl->bstats, &cl->rate_est, 1047 gen_replace_estimator(&cl->bstats, &cl->rate_est,
1048 qdisc_root_lock(sch), 1048 qdisc_root_sleeping_lock(sch),
1049 tca[TCA_RATE]); 1049 tca[TCA_RATE]);
1050 return 0; 1050 return 0;
1051 } 1051 }
@@ -1104,7 +1104,7 @@ hfsc_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
1104 1104
1105 if (tca[TCA_RATE]) 1105 if (tca[TCA_RATE])
1106 gen_new_estimator(&cl->bstats, &cl->rate_est, 1106 gen_new_estimator(&cl->bstats, &cl->rate_est,
1107 qdisc_root_lock(sch), tca[TCA_RATE]); 1107 qdisc_root_sleeping_lock(sch), tca[TCA_RATE]);
1108 *arg = (unsigned long)cl; 1108 *arg = (unsigned long)cl;
1109 return 0; 1109 return 0;
1110} 1110}
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index 0df0df202ed..d14f02056ae 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -1043,7 +1043,7 @@ static int htb_init(struct Qdisc *sch, struct nlattr *opt)
1043 1043
1044static int htb_dump(struct Qdisc *sch, struct sk_buff *skb) 1044static int htb_dump(struct Qdisc *sch, struct sk_buff *skb)
1045{ 1045{
1046 spinlock_t *root_lock = qdisc_root_lock(sch); 1046 spinlock_t *root_lock = qdisc_root_sleeping_lock(sch);
1047 struct htb_sched *q = qdisc_priv(sch); 1047 struct htb_sched *q = qdisc_priv(sch);
1048 struct nlattr *nest; 1048 struct nlattr *nest;
1049 struct tc_htb_glob gopt; 1049 struct tc_htb_glob gopt;
@@ -1075,7 +1075,7 @@ static int htb_dump_class(struct Qdisc *sch, unsigned long arg,
1075 struct sk_buff *skb, struct tcmsg *tcm) 1075 struct sk_buff *skb, struct tcmsg *tcm)
1076{ 1076{
1077 struct htb_class *cl = (struct htb_class *)arg; 1077 struct htb_class *cl = (struct htb_class *)arg;
1078 spinlock_t *root_lock = qdisc_root_lock(sch); 1078 spinlock_t *root_lock = qdisc_root_sleeping_lock(sch);
1079 struct nlattr *nest; 1079 struct nlattr *nest;
1080 struct tc_htb_opt opt; 1080 struct tc_htb_opt opt;
1081 1081
@@ -1372,7 +1372,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid,
1372 goto failure; 1372 goto failure;
1373 1373
1374 gen_new_estimator(&cl->bstats, &cl->rate_est, 1374 gen_new_estimator(&cl->bstats, &cl->rate_est,
1375 qdisc_root_lock(sch), 1375 qdisc_root_sleeping_lock(sch),
1376 tca[TCA_RATE] ? : &est.nla); 1376 tca[TCA_RATE] ? : &est.nla);
1377 cl->refcnt = 1; 1377 cl->refcnt = 1;
1378 cl->children = 0; 1378 cl->children = 0;
@@ -1427,7 +1427,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid,
1427 } else { 1427 } else {
1428 if (tca[TCA_RATE]) 1428 if (tca[TCA_RATE])
1429 gen_replace_estimator(&cl->bstats, &cl->rate_est, 1429 gen_replace_estimator(&cl->bstats, &cl->rate_est,
1430 qdisc_root_lock(sch), 1430 qdisc_root_sleeping_lock(sch),
1431 tca[TCA_RATE]); 1431 tca[TCA_RATE]);
1432 sch_tree_lock(sch); 1432 sch_tree_lock(sch);
1433 } 1433 }
diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
index fb0294d0b55..3781e55046d 100644
--- a/net/sched/sch_netem.c
+++ b/net/sched/sch_netem.c
@@ -341,7 +341,7 @@ static int get_dist_table(struct Qdisc *sch, const struct nlattr *attr)
341 for (i = 0; i < n; i++) 341 for (i = 0; i < n; i++)
342 d->table[i] = data[i]; 342 d->table[i] = data[i];
343 343
344 root_lock = qdisc_root_lock(sch); 344 root_lock = qdisc_root_sleeping_lock(sch);
345 345
346 spin_lock_bh(root_lock); 346 spin_lock_bh(root_lock);
347 d = xchg(&q->delay_dist, d); 347 d = xchg(&q->delay_dist, d);
diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c
index 2c35c678563..d35ef059abb 100644
--- a/net/sched/sch_teql.c
+++ b/net/sched/sch_teql.c
@@ -161,7 +161,7 @@ teql_destroy(struct Qdisc* sch)
161 txq = netdev_get_tx_queue(master->dev, 0); 161 txq = netdev_get_tx_queue(master->dev, 0);
162 master->slaves = NULL; 162 master->slaves = NULL;
163 163
164 root_lock = qdisc_root_lock(txq->qdisc); 164 root_lock = qdisc_root_sleeping_lock(txq->qdisc);
165 spin_lock_bh(root_lock); 165 spin_lock_bh(root_lock);
166 qdisc_reset(txq->qdisc); 166 qdisc_reset(txq->qdisc);
167 spin_unlock_bh(root_lock); 167 spin_unlock_bh(root_lock);
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index 8472b8b349c..abd51cef241 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -599,11 +599,12 @@ struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
599 /* Check to see if this is a duplicate. */ 599 /* Check to see if this is a duplicate. */
600 peer = sctp_assoc_lookup_paddr(asoc, addr); 600 peer = sctp_assoc_lookup_paddr(asoc, addr);
601 if (peer) { 601 if (peer) {
602 /* An UNKNOWN state is only set on transports added by
603 * user in sctp_connectx() call. Such transports should be
604 * considered CONFIRMED per RFC 4960, Section 5.4.
605 */
602 if (peer->state == SCTP_UNKNOWN) { 606 if (peer->state == SCTP_UNKNOWN) {
603 if (peer_state == SCTP_ACTIVE) 607 peer->state = SCTP_ACTIVE;
604 peer->state = SCTP_ACTIVE;
605 if (peer_state == SCTP_UNCONFIRMED)
606 peer->state = SCTP_UNCONFIRMED;
607 } 608 }
608 return peer; 609 return peer;
609 } 610 }
diff --git a/net/sctp/auth.c b/net/sctp/auth.c
index 675a5c3e68a..52db5f60daa 100644
--- a/net/sctp/auth.c
+++ b/net/sctp/auth.c
@@ -80,6 +80,10 @@ static struct sctp_auth_bytes *sctp_auth_create_key(__u32 key_len, gfp_t gfp)
80{ 80{
81 struct sctp_auth_bytes *key; 81 struct sctp_auth_bytes *key;
82 82
83 /* Verify that we are not going to overflow INT_MAX */
84 if ((INT_MAX - key_len) < sizeof(struct sctp_auth_bytes))
85 return NULL;
86
83 /* Allocate the shared key */ 87 /* Allocate the shared key */
84 key = kmalloc(sizeof(struct sctp_auth_bytes) + key_len, gfp); 88 key = kmalloc(sizeof(struct sctp_auth_bytes) + key_len, gfp);
85 if (!key) 89 if (!key)
@@ -782,6 +786,9 @@ int sctp_auth_ep_set_hmacs(struct sctp_endpoint *ep,
782 for (i = 0; i < hmacs->shmac_num_idents; i++) { 786 for (i = 0; i < hmacs->shmac_num_idents; i++) {
783 id = hmacs->shmac_idents[i]; 787 id = hmacs->shmac_idents[i];
784 788
789 if (id > SCTP_AUTH_HMAC_ID_MAX)
790 return -EOPNOTSUPP;
791
785 if (SCTP_AUTH_HMAC_ID_SHA1 == id) 792 if (SCTP_AUTH_HMAC_ID_SHA1 == id)
786 has_sha1 = 1; 793 has_sha1 = 1;
787 794
diff --git a/net/sctp/endpointola.c b/net/sctp/endpointola.c
index e39a0cdef18..4c8d9f45ce0 100644
--- a/net/sctp/endpointola.c
+++ b/net/sctp/endpointola.c
@@ -103,6 +103,7 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
103 103
104 /* Initialize the CHUNKS parameter */ 104 /* Initialize the CHUNKS parameter */
105 auth_chunks->param_hdr.type = SCTP_PARAM_CHUNKS; 105 auth_chunks->param_hdr.type = SCTP_PARAM_CHUNKS;
106 auth_chunks->param_hdr.length = htons(sizeof(sctp_paramhdr_t));
106 107
107 /* If the Add-IP functionality is enabled, we must 108 /* If the Add-IP functionality is enabled, we must
108 * authenticate, ASCONF and ASCONF-ACK chunks 109 * authenticate, ASCONF and ASCONF-ACK chunks
@@ -110,8 +111,7 @@ static struct sctp_endpoint *sctp_endpoint_init(struct sctp_endpoint *ep,
110 if (sctp_addip_enable) { 111 if (sctp_addip_enable) {
111 auth_chunks->chunks[0] = SCTP_CID_ASCONF; 112 auth_chunks->chunks[0] = SCTP_CID_ASCONF;
112 auth_chunks->chunks[1] = SCTP_CID_ASCONF_ACK; 113 auth_chunks->chunks[1] = SCTP_CID_ASCONF_ACK;
113 auth_chunks->param_hdr.length = 114 auth_chunks->param_hdr.length += htons(2);
114 htons(sizeof(sctp_paramhdr_t) + 2);
115 } 115 }
116 } 116 }
117 117
diff --git a/net/sctp/output.c b/net/sctp/output.c
index 0dc4a7dfb23..225c7123c41 100644
--- a/net/sctp/output.c
+++ b/net/sctp/output.c
@@ -533,7 +533,8 @@ int sctp_packet_transmit(struct sctp_packet *packet)
533 if (!(dst->dev->features & NETIF_F_NO_CSUM)) { 533 if (!(dst->dev->features & NETIF_F_NO_CSUM)) {
534 crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len); 534 crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len);
535 crc32 = sctp_end_cksum(crc32); 535 crc32 = sctp_end_cksum(crc32);
536 } 536 } else
537 nskb->ip_summed = CHECKSUM_UNNECESSARY;
537 538
538 /* 3) Put the resultant value into the checksum field in the 539 /* 3) Put the resultant value into the checksum field in the
539 * common header, and leave the rest of the bits unchanged. 540 * common header, and leave the rest of the bits unchanged.
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index e8ca4e54981..d68869f966c 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -1012,6 +1012,29 @@ end:
1012 return retval; 1012 return retval;
1013} 1013}
1014 1014
1015struct sctp_chunk *sctp_make_violation_paramlen(
1016 const struct sctp_association *asoc,
1017 const struct sctp_chunk *chunk,
1018 struct sctp_paramhdr *param)
1019{
1020 struct sctp_chunk *retval;
1021 static const char error[] = "The following parameter had invalid length:";
1022 size_t payload_len = sizeof(error) + sizeof(sctp_errhdr_t) +
1023 sizeof(sctp_paramhdr_t);
1024
1025 retval = sctp_make_abort(asoc, chunk, payload_len);
1026 if (!retval)
1027 goto nodata;
1028
1029 sctp_init_cause(retval, SCTP_ERROR_PROTO_VIOLATION,
1030 sizeof(error) + sizeof(sctp_paramhdr_t));
1031 sctp_addto_chunk(retval, sizeof(error), error);
1032 sctp_addto_param(retval, sizeof(sctp_paramhdr_t), param);
1033
1034nodata:
1035 return retval;
1036}
1037
1015/* Make a HEARTBEAT chunk. */ 1038/* Make a HEARTBEAT chunk. */
1016struct sctp_chunk *sctp_make_heartbeat(const struct sctp_association *asoc, 1039struct sctp_chunk *sctp_make_heartbeat(const struct sctp_association *asoc,
1017 const struct sctp_transport *transport, 1040 const struct sctp_transport *transport,
@@ -1782,11 +1805,6 @@ static int sctp_process_inv_paramlength(const struct sctp_association *asoc,
1782 const struct sctp_chunk *chunk, 1805 const struct sctp_chunk *chunk,
1783 struct sctp_chunk **errp) 1806 struct sctp_chunk **errp)
1784{ 1807{
1785 static const char error[] = "The following parameter had invalid length:";
1786 size_t payload_len = WORD_ROUND(sizeof(error)) +
1787 sizeof(sctp_paramhdr_t);
1788
1789
1790 /* This is a fatal error. Any accumulated non-fatal errors are 1808 /* This is a fatal error. Any accumulated non-fatal errors are
1791 * not reported. 1809 * not reported.
1792 */ 1810 */
@@ -1794,14 +1812,7 @@ static int sctp_process_inv_paramlength(const struct sctp_association *asoc,
1794 sctp_chunk_free(*errp); 1812 sctp_chunk_free(*errp);
1795 1813
1796 /* Create an error chunk and fill it in with our payload. */ 1814 /* Create an error chunk and fill it in with our payload. */
1797 *errp = sctp_make_op_error_space(asoc, chunk, payload_len); 1815 *errp = sctp_make_violation_paramlen(asoc, chunk, param);
1798
1799 if (*errp) {
1800 sctp_init_cause(*errp, SCTP_ERROR_PROTO_VIOLATION,
1801 sizeof(error) + sizeof(sctp_paramhdr_t));
1802 sctp_addto_chunk(*errp, sizeof(error), error);
1803 sctp_addto_param(*errp, sizeof(sctp_paramhdr_t), param);
1804 }
1805 1816
1806 return 0; 1817 return 0;
1807} 1818}
@@ -1886,11 +1897,13 @@ static void sctp_process_ext_param(struct sctp_association *asoc,
1886 /* if the peer reports AUTH, assume that he 1897 /* if the peer reports AUTH, assume that he
1887 * supports AUTH. 1898 * supports AUTH.
1888 */ 1899 */
1889 asoc->peer.auth_capable = 1; 1900 if (sctp_auth_enable)
1901 asoc->peer.auth_capable = 1;
1890 break; 1902 break;
1891 case SCTP_CID_ASCONF: 1903 case SCTP_CID_ASCONF:
1892 case SCTP_CID_ASCONF_ACK: 1904 case SCTP_CID_ASCONF_ACK:
1893 asoc->peer.asconf_capable = 1; 1905 if (sctp_addip_enable)
1906 asoc->peer.asconf_capable = 1;
1894 break; 1907 break;
1895 default: 1908 default:
1896 break; 1909 break;
@@ -2319,12 +2332,10 @@ clean_up:
2319 /* Release the transport structures. */ 2332 /* Release the transport structures. */
2320 list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) { 2333 list_for_each_safe(pos, temp, &asoc->peer.transport_addr_list) {
2321 transport = list_entry(pos, struct sctp_transport, transports); 2334 transport = list_entry(pos, struct sctp_transport, transports);
2322 list_del_init(pos); 2335 if (transport->state != SCTP_ACTIVE)
2323 sctp_transport_free(transport); 2336 sctp_assoc_rm_peer(asoc, transport);
2324 } 2337 }
2325 2338
2326 asoc->peer.transport_count = 0;
2327
2328nomem: 2339nomem:
2329 return 0; 2340 return 0;
2330} 2341}
@@ -2460,6 +2471,9 @@ do_addr_param:
2460 break; 2471 break;
2461 2472
2462 case SCTP_PARAM_SET_PRIMARY: 2473 case SCTP_PARAM_SET_PRIMARY:
2474 if (!sctp_addip_enable)
2475 goto fall_through;
2476
2463 addr_param = param.v + sizeof(sctp_addip_param_t); 2477 addr_param = param.v + sizeof(sctp_addip_param_t);
2464 2478
2465 af = sctp_get_af_specific(param_type2af(param.p->type)); 2479 af = sctp_get_af_specific(param_type2af(param.p->type));
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index 8848d329aa2..7c622af2ce5 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -119,7 +119,7 @@ static sctp_disposition_t sctp_sf_violation_paramlen(
119 const struct sctp_endpoint *ep, 119 const struct sctp_endpoint *ep,
120 const struct sctp_association *asoc, 120 const struct sctp_association *asoc,
121 const sctp_subtype_t type, 121 const sctp_subtype_t type,
122 void *arg, 122 void *arg, void *ext,
123 sctp_cmd_seq_t *commands); 123 sctp_cmd_seq_t *commands);
124 124
125static sctp_disposition_t sctp_sf_violation_ctsn( 125static sctp_disposition_t sctp_sf_violation_ctsn(
@@ -3425,7 +3425,7 @@ sctp_disposition_t sctp_sf_do_asconf(const struct sctp_endpoint *ep,
3425 addr_param = (union sctp_addr_param *)hdr->params; 3425 addr_param = (union sctp_addr_param *)hdr->params;
3426 length = ntohs(addr_param->p.length); 3426 length = ntohs(addr_param->p.length);
3427 if (length < sizeof(sctp_paramhdr_t)) 3427 if (length < sizeof(sctp_paramhdr_t))
3428 return sctp_sf_violation_paramlen(ep, asoc, type, 3428 return sctp_sf_violation_paramlen(ep, asoc, type, arg,
3429 (void *)addr_param, commands); 3429 (void *)addr_param, commands);
3430 3430
3431 /* Verify the ASCONF chunk before processing it. */ 3431 /* Verify the ASCONF chunk before processing it. */
@@ -3433,8 +3433,8 @@ sctp_disposition_t sctp_sf_do_asconf(const struct sctp_endpoint *ep,
3433 (sctp_paramhdr_t *)((void *)addr_param + length), 3433 (sctp_paramhdr_t *)((void *)addr_param + length),
3434 (void *)chunk->chunk_end, 3434 (void *)chunk->chunk_end,
3435 &err_param)) 3435 &err_param))
3436 return sctp_sf_violation_paramlen(ep, asoc, type, 3436 return sctp_sf_violation_paramlen(ep, asoc, type, arg,
3437 (void *)&err_param, commands); 3437 (void *)err_param, commands);
3438 3438
3439 /* ADDIP 5.2 E1) Compare the value of the serial number to the value 3439 /* ADDIP 5.2 E1) Compare the value of the serial number to the value
3440 * the endpoint stored in a new association variable 3440 * the endpoint stored in a new association variable
@@ -3542,8 +3542,8 @@ sctp_disposition_t sctp_sf_do_asconf_ack(const struct sctp_endpoint *ep,
3542 (sctp_paramhdr_t *)addip_hdr->params, 3542 (sctp_paramhdr_t *)addip_hdr->params,
3543 (void *)asconf_ack->chunk_end, 3543 (void *)asconf_ack->chunk_end,
3544 &err_param)) 3544 &err_param))
3545 return sctp_sf_violation_paramlen(ep, asoc, type, 3545 return sctp_sf_violation_paramlen(ep, asoc, type, arg,
3546 (void *)&err_param, commands); 3546 (void *)err_param, commands);
3547 3547
3548 if (last_asconf) { 3548 if (last_asconf) {
3549 addip_hdr = (sctp_addiphdr_t *)last_asconf->subh.addip_hdr; 3549 addip_hdr = (sctp_addiphdr_t *)last_asconf->subh.addip_hdr;
@@ -4240,12 +4240,38 @@ static sctp_disposition_t sctp_sf_violation_paramlen(
4240 const struct sctp_endpoint *ep, 4240 const struct sctp_endpoint *ep,
4241 const struct sctp_association *asoc, 4241 const struct sctp_association *asoc,
4242 const sctp_subtype_t type, 4242 const sctp_subtype_t type,
4243 void *arg, 4243 void *arg, void *ext,
4244 sctp_cmd_seq_t *commands) { 4244 sctp_cmd_seq_t *commands)
4245 static const char err_str[] = "The following parameter had invalid length:"; 4245{
4246 struct sctp_chunk *chunk = arg;
4247 struct sctp_paramhdr *param = ext;
4248 struct sctp_chunk *abort = NULL;
4246 4249
4247 return sctp_sf_abort_violation(ep, asoc, arg, commands, err_str, 4250 if (sctp_auth_recv_cid(SCTP_CID_ABORT, asoc))
4248 sizeof(err_str)); 4251 goto discard;
4252
4253 /* Make the abort chunk. */
4254 abort = sctp_make_violation_paramlen(asoc, chunk, param);
4255 if (!abort)
4256 goto nomem;
4257
4258 sctp_add_cmd_sf(commands, SCTP_CMD_REPLY, SCTP_CHUNK(abort));
4259 SCTP_INC_STATS(SCTP_MIB_OUTCTRLCHUNKS);
4260
4261 sctp_add_cmd_sf(commands, SCTP_CMD_SET_SK_ERR,
4262 SCTP_ERROR(ECONNABORTED));
4263 sctp_add_cmd_sf(commands, SCTP_CMD_ASSOC_FAILED,
4264 SCTP_PERR(SCTP_ERROR_PROTO_VIOLATION));
4265 SCTP_DEC_STATS(SCTP_MIB_CURRESTAB);
4266
4267discard:
4268 sctp_sf_pdiscard(ep, asoc, SCTP_ST_CHUNK(0), arg, commands);
4269
4270 SCTP_INC_STATS(SCTP_MIB_ABORTEDS);
4271
4272 return SCTP_DISPOSITION_ABORT;
4273nomem:
4274 return SCTP_DISPOSITION_NOMEM;
4249} 4275}
4250 4276
4251/* Handle a protocol violation when the peer trying to advance the 4277/* Handle a protocol violation when the peer trying to advance the
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index dbb79adf8f3..5ffb9dec1c3 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -3055,6 +3055,9 @@ static int sctp_setsockopt_auth_chunk(struct sock *sk,
3055{ 3055{
3056 struct sctp_authchunk val; 3056 struct sctp_authchunk val;
3057 3057
3058 if (!sctp_auth_enable)
3059 return -EACCES;
3060
3058 if (optlen != sizeof(struct sctp_authchunk)) 3061 if (optlen != sizeof(struct sctp_authchunk))
3059 return -EINVAL; 3062 return -EINVAL;
3060 if (copy_from_user(&val, optval, optlen)) 3063 if (copy_from_user(&val, optval, optlen))
@@ -3083,8 +3086,12 @@ static int sctp_setsockopt_hmac_ident(struct sock *sk,
3083 int optlen) 3086 int optlen)
3084{ 3087{
3085 struct sctp_hmacalgo *hmacs; 3088 struct sctp_hmacalgo *hmacs;
3089 u32 idents;
3086 int err; 3090 int err;
3087 3091
3092 if (!sctp_auth_enable)
3093 return -EACCES;
3094
3088 if (optlen < sizeof(struct sctp_hmacalgo)) 3095 if (optlen < sizeof(struct sctp_hmacalgo))
3089 return -EINVAL; 3096 return -EINVAL;
3090 3097
@@ -3097,8 +3104,9 @@ static int sctp_setsockopt_hmac_ident(struct sock *sk,
3097 goto out; 3104 goto out;
3098 } 3105 }
3099 3106
3100 if (hmacs->shmac_num_idents == 0 || 3107 idents = hmacs->shmac_num_idents;
3101 hmacs->shmac_num_idents > SCTP_AUTH_NUM_HMACS) { 3108 if (idents == 0 || idents > SCTP_AUTH_NUM_HMACS ||
3109 (idents * sizeof(u16)) > (optlen - sizeof(struct sctp_hmacalgo))) {
3102 err = -EINVAL; 3110 err = -EINVAL;
3103 goto out; 3111 goto out;
3104 } 3112 }
@@ -3123,6 +3131,9 @@ static int sctp_setsockopt_auth_key(struct sock *sk,
3123 struct sctp_association *asoc; 3131 struct sctp_association *asoc;
3124 int ret; 3132 int ret;
3125 3133
3134 if (!sctp_auth_enable)
3135 return -EACCES;
3136
3126 if (optlen <= sizeof(struct sctp_authkey)) 3137 if (optlen <= sizeof(struct sctp_authkey))
3127 return -EINVAL; 3138 return -EINVAL;
3128 3139
@@ -3135,6 +3146,11 @@ static int sctp_setsockopt_auth_key(struct sock *sk,
3135 goto out; 3146 goto out;
3136 } 3147 }
3137 3148
3149 if (authkey->sca_keylength > optlen - sizeof(struct sctp_authkey)) {
3150 ret = -EINVAL;
3151 goto out;
3152 }
3153
3138 asoc = sctp_id2assoc(sk, authkey->sca_assoc_id); 3154 asoc = sctp_id2assoc(sk, authkey->sca_assoc_id);
3139 if (!asoc && authkey->sca_assoc_id && sctp_style(sk, UDP)) { 3155 if (!asoc && authkey->sca_assoc_id && sctp_style(sk, UDP)) {
3140 ret = -EINVAL; 3156 ret = -EINVAL;
@@ -3160,6 +3176,9 @@ static int sctp_setsockopt_active_key(struct sock *sk,
3160 struct sctp_authkeyid val; 3176 struct sctp_authkeyid val;
3161 struct sctp_association *asoc; 3177 struct sctp_association *asoc;
3162 3178
3179 if (!sctp_auth_enable)
3180 return -EACCES;
3181
3163 if (optlen != sizeof(struct sctp_authkeyid)) 3182 if (optlen != sizeof(struct sctp_authkeyid))
3164 return -EINVAL; 3183 return -EINVAL;
3165 if (copy_from_user(&val, optval, optlen)) 3184 if (copy_from_user(&val, optval, optlen))
@@ -3185,6 +3204,9 @@ static int sctp_setsockopt_del_key(struct sock *sk,
3185 struct sctp_authkeyid val; 3204 struct sctp_authkeyid val;
3186 struct sctp_association *asoc; 3205 struct sctp_association *asoc;
3187 3206
3207 if (!sctp_auth_enable)
3208 return -EACCES;
3209
3188 if (optlen != sizeof(struct sctp_authkeyid)) 3210 if (optlen != sizeof(struct sctp_authkeyid))
3189 return -EINVAL; 3211 return -EINVAL;
3190 if (copy_from_user(&val, optval, optlen)) 3212 if (copy_from_user(&val, optval, optlen))
@@ -5197,19 +5219,29 @@ static int sctp_getsockopt_maxburst(struct sock *sk, int len,
5197static int sctp_getsockopt_hmac_ident(struct sock *sk, int len, 5219static int sctp_getsockopt_hmac_ident(struct sock *sk, int len,
5198 char __user *optval, int __user *optlen) 5220 char __user *optval, int __user *optlen)
5199{ 5221{
5222 struct sctp_hmacalgo __user *p = (void __user *)optval;
5200 struct sctp_hmac_algo_param *hmacs; 5223 struct sctp_hmac_algo_param *hmacs;
5201 __u16 param_len; 5224 __u16 data_len = 0;
5225 u32 num_idents;
5226
5227 if (!sctp_auth_enable)
5228 return -EACCES;
5202 5229
5203 hmacs = sctp_sk(sk)->ep->auth_hmacs_list; 5230 hmacs = sctp_sk(sk)->ep->auth_hmacs_list;
5204 param_len = ntohs(hmacs->param_hdr.length); 5231 data_len = ntohs(hmacs->param_hdr.length) - sizeof(sctp_paramhdr_t);
5205 5232
5206 if (len < param_len) 5233 if (len < sizeof(struct sctp_hmacalgo) + data_len)
5207 return -EINVAL; 5234 return -EINVAL;
5235
5236 len = sizeof(struct sctp_hmacalgo) + data_len;
5237 num_idents = data_len / sizeof(u16);
5238
5208 if (put_user(len, optlen)) 5239 if (put_user(len, optlen))
5209 return -EFAULT; 5240 return -EFAULT;
5210 if (copy_to_user(optval, hmacs->hmac_ids, len)) 5241 if (put_user(num_idents, &p->shmac_num_idents))
5242 return -EFAULT;
5243 if (copy_to_user(p->shmac_idents, hmacs->hmac_ids, data_len))
5211 return -EFAULT; 5244 return -EFAULT;
5212
5213 return 0; 5245 return 0;
5214} 5246}
5215 5247
@@ -5219,6 +5251,9 @@ static int sctp_getsockopt_active_key(struct sock *sk, int len,
5219 struct sctp_authkeyid val; 5251 struct sctp_authkeyid val;
5220 struct sctp_association *asoc; 5252 struct sctp_association *asoc;
5221 5253
5254 if (!sctp_auth_enable)
5255 return -EACCES;
5256
5222 if (len < sizeof(struct sctp_authkeyid)) 5257 if (len < sizeof(struct sctp_authkeyid))
5223 return -EINVAL; 5258 return -EINVAL;
5224 if (copy_from_user(&val, optval, sizeof(struct sctp_authkeyid))) 5259 if (copy_from_user(&val, optval, sizeof(struct sctp_authkeyid)))
@@ -5233,6 +5268,12 @@ static int sctp_getsockopt_active_key(struct sock *sk, int len,
5233 else 5268 else
5234 val.scact_keynumber = sctp_sk(sk)->ep->active_key_id; 5269 val.scact_keynumber = sctp_sk(sk)->ep->active_key_id;
5235 5270
5271 len = sizeof(struct sctp_authkeyid);
5272 if (put_user(len, optlen))
5273 return -EFAULT;
5274 if (copy_to_user(optval, &val, len))
5275 return -EFAULT;
5276
5236 return 0; 5277 return 0;
5237} 5278}
5238 5279
@@ -5243,13 +5284,16 @@ static int sctp_getsockopt_peer_auth_chunks(struct sock *sk, int len,
5243 struct sctp_authchunks val; 5284 struct sctp_authchunks val;
5244 struct sctp_association *asoc; 5285 struct sctp_association *asoc;
5245 struct sctp_chunks_param *ch; 5286 struct sctp_chunks_param *ch;
5246 u32 num_chunks; 5287 u32 num_chunks = 0;
5247 char __user *to; 5288 char __user *to;
5248 5289
5249 if (len <= sizeof(struct sctp_authchunks)) 5290 if (!sctp_auth_enable)
5291 return -EACCES;
5292
5293 if (len < sizeof(struct sctp_authchunks))
5250 return -EINVAL; 5294 return -EINVAL;
5251 5295
5252 if (copy_from_user(&val, p, sizeof(struct sctp_authchunks))) 5296 if (copy_from_user(&val, optval, sizeof(struct sctp_authchunks)))
5253 return -EFAULT; 5297 return -EFAULT;
5254 5298
5255 to = p->gauth_chunks; 5299 to = p->gauth_chunks;
@@ -5258,20 +5302,21 @@ static int sctp_getsockopt_peer_auth_chunks(struct sock *sk, int len,
5258 return -EINVAL; 5302 return -EINVAL;
5259 5303
5260 ch = asoc->peer.peer_chunks; 5304 ch = asoc->peer.peer_chunks;
5305 if (!ch)
5306 goto num;
5261 5307
5262 /* See if the user provided enough room for all the data */ 5308 /* See if the user provided enough room for all the data */
5263 num_chunks = ntohs(ch->param_hdr.length) - sizeof(sctp_paramhdr_t); 5309 num_chunks = ntohs(ch->param_hdr.length) - sizeof(sctp_paramhdr_t);
5264 if (len < num_chunks) 5310 if (len < num_chunks)
5265 return -EINVAL; 5311 return -EINVAL;
5266 5312
5267 len = num_chunks; 5313 if (copy_to_user(to, ch->chunks, num_chunks))
5268 if (put_user(len, optlen))
5269 return -EFAULT; 5314 return -EFAULT;
5315num:
5316 len = sizeof(struct sctp_authchunks) + num_chunks;
5317 if (put_user(len, optlen)) return -EFAULT;
5270 if (put_user(num_chunks, &p->gauth_number_of_chunks)) 5318 if (put_user(num_chunks, &p->gauth_number_of_chunks))
5271 return -EFAULT; 5319 return -EFAULT;
5272 if (copy_to_user(to, ch->chunks, len))
5273 return -EFAULT;
5274
5275 return 0; 5320 return 0;
5276} 5321}
5277 5322
@@ -5282,13 +5327,16 @@ static int sctp_getsockopt_local_auth_chunks(struct sock *sk, int len,
5282 struct sctp_authchunks val; 5327 struct sctp_authchunks val;
5283 struct sctp_association *asoc; 5328 struct sctp_association *asoc;
5284 struct sctp_chunks_param *ch; 5329 struct sctp_chunks_param *ch;
5285 u32 num_chunks; 5330 u32 num_chunks = 0;
5286 char __user *to; 5331 char __user *to;
5287 5332
5288 if (len <= sizeof(struct sctp_authchunks)) 5333 if (!sctp_auth_enable)
5334 return -EACCES;
5335
5336 if (len < sizeof(struct sctp_authchunks))
5289 return -EINVAL; 5337 return -EINVAL;
5290 5338
5291 if (copy_from_user(&val, p, sizeof(struct sctp_authchunks))) 5339 if (copy_from_user(&val, optval, sizeof(struct sctp_authchunks)))
5292 return -EFAULT; 5340 return -EFAULT;
5293 5341
5294 to = p->gauth_chunks; 5342 to = p->gauth_chunks;
@@ -5301,17 +5349,21 @@ static int sctp_getsockopt_local_auth_chunks(struct sock *sk, int len,
5301 else 5349 else
5302 ch = sctp_sk(sk)->ep->auth_chunk_list; 5350 ch = sctp_sk(sk)->ep->auth_chunk_list;
5303 5351
5352 if (!ch)
5353 goto num;
5354
5304 num_chunks = ntohs(ch->param_hdr.length) - sizeof(sctp_paramhdr_t); 5355 num_chunks = ntohs(ch->param_hdr.length) - sizeof(sctp_paramhdr_t);
5305 if (len < num_chunks) 5356 if (len < sizeof(struct sctp_authchunks) + num_chunks)
5306 return -EINVAL; 5357 return -EINVAL;
5307 5358
5308 len = num_chunks; 5359 if (copy_to_user(to, ch->chunks, num_chunks))
5360 return -EFAULT;
5361num:
5362 len = sizeof(struct sctp_authchunks) + num_chunks;
5309 if (put_user(len, optlen)) 5363 if (put_user(len, optlen))
5310 return -EFAULT; 5364 return -EFAULT;
5311 if (put_user(num_chunks, &p->gauth_number_of_chunks)) 5365 if (put_user(num_chunks, &p->gauth_number_of_chunks))
5312 return -EFAULT; 5366 return -EFAULT;
5313 if (copy_to_user(to, ch->chunks, len))
5314 return -EFAULT;
5315 5367
5316 return 0; 5368 return 0;
5317} 5369}
diff --git a/net/socket.c b/net/socket.c
index 8ef8ba81b9e..3e8d4e35c08 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -1511,6 +1511,7 @@ out_fd:
1511 goto out_put; 1511 goto out_put;
1512} 1512}
1513 1513
1514#if 0
1514#ifdef HAVE_SET_RESTORE_SIGMASK 1515#ifdef HAVE_SET_RESTORE_SIGMASK
1515asmlinkage long sys_paccept(int fd, struct sockaddr __user *upeer_sockaddr, 1516asmlinkage long sys_paccept(int fd, struct sockaddr __user *upeer_sockaddr,
1516 int __user *upeer_addrlen, 1517 int __user *upeer_addrlen,
@@ -1564,6 +1565,7 @@ asmlinkage long sys_paccept(int fd, struct sockaddr __user *upeer_sockaddr,
1564 return do_accept(fd, upeer_sockaddr, upeer_addrlen, flags); 1565 return do_accept(fd, upeer_sockaddr, upeer_addrlen, flags);
1565} 1566}
1566#endif 1567#endif
1568#endif
1567 1569
1568asmlinkage long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr, 1570asmlinkage long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr,
1569 int __user *upeer_addrlen) 1571 int __user *upeer_addrlen)
diff --git a/net/sunrpc/sysctl.c b/net/sunrpc/sysctl.c
index 0f8c439b848..5231f7aaac0 100644
--- a/net/sunrpc/sysctl.c
+++ b/net/sunrpc/sysctl.c
@@ -60,24 +60,14 @@ static int proc_do_xprt(ctl_table *table, int write, struct file *file,
60 void __user *buffer, size_t *lenp, loff_t *ppos) 60 void __user *buffer, size_t *lenp, loff_t *ppos)
61{ 61{
62 char tmpbuf[256]; 62 char tmpbuf[256];
63 int len; 63 size_t len;
64
64 if ((*ppos && !write) || !*lenp) { 65 if ((*ppos && !write) || !*lenp) {
65 *lenp = 0; 66 *lenp = 0;
66 return 0; 67 return 0;
67 } 68 }
68 if (write) 69 len = svc_print_xprts(tmpbuf, sizeof(tmpbuf));
69 return -EINVAL; 70 return simple_read_from_buffer(buffer, *lenp, ppos, tmpbuf, len);
70 else {
71 len = svc_print_xprts(tmpbuf, sizeof(tmpbuf));
72 if (!access_ok(VERIFY_WRITE, buffer, len))
73 return -EFAULT;
74
75 if (__copy_to_user(buffer, tmpbuf, len))
76 return -EFAULT;
77 }
78 *lenp -= len;
79 *ppos += len;
80 return 0;
81} 71}
82 72
83static int 73static int
diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
index b4b17f44cb2..74de31a0661 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
@@ -443,18 +443,18 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
443 443
444 dprintk("svcrdma: rqstp=%p\n", rqstp); 444 dprintk("svcrdma: rqstp=%p\n", rqstp);
445 445
446 spin_lock_bh(&rdma_xprt->sc_read_complete_lock); 446 spin_lock_bh(&rdma_xprt->sc_rq_dto_lock);
447 if (!list_empty(&rdma_xprt->sc_read_complete_q)) { 447 if (!list_empty(&rdma_xprt->sc_read_complete_q)) {
448 ctxt = list_entry(rdma_xprt->sc_read_complete_q.next, 448 ctxt = list_entry(rdma_xprt->sc_read_complete_q.next,
449 struct svc_rdma_op_ctxt, 449 struct svc_rdma_op_ctxt,
450 dto_q); 450 dto_q);
451 list_del_init(&ctxt->dto_q); 451 list_del_init(&ctxt->dto_q);
452 } 452 }
453 spin_unlock_bh(&rdma_xprt->sc_read_complete_lock); 453 if (ctxt) {
454 if (ctxt) 454 spin_unlock_bh(&rdma_xprt->sc_rq_dto_lock);
455 return rdma_read_complete(rqstp, ctxt); 455 return rdma_read_complete(rqstp, ctxt);
456 }
456 457
457 spin_lock_bh(&rdma_xprt->sc_rq_dto_lock);
458 if (!list_empty(&rdma_xprt->sc_rq_dto_q)) { 458 if (!list_empty(&rdma_xprt->sc_rq_dto_q)) {
459 ctxt = list_entry(rdma_xprt->sc_rq_dto_q.next, 459 ctxt = list_entry(rdma_xprt->sc_rq_dto_q.next,
460 struct svc_rdma_op_ctxt, 460 struct svc_rdma_op_ctxt,
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
index 19ddc382b77..900cb69728c 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
@@ -359,11 +359,11 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
359 if (test_bit(RDMACTXT_F_LAST_CTXT, &ctxt->flags)) { 359 if (test_bit(RDMACTXT_F_LAST_CTXT, &ctxt->flags)) {
360 struct svc_rdma_op_ctxt *read_hdr = ctxt->read_hdr; 360 struct svc_rdma_op_ctxt *read_hdr = ctxt->read_hdr;
361 BUG_ON(!read_hdr); 361 BUG_ON(!read_hdr);
362 spin_lock_bh(&xprt->sc_rq_dto_lock);
362 set_bit(XPT_DATA, &xprt->sc_xprt.xpt_flags); 363 set_bit(XPT_DATA, &xprt->sc_xprt.xpt_flags);
363 spin_lock_bh(&xprt->sc_read_complete_lock);
364 list_add_tail(&read_hdr->dto_q, 364 list_add_tail(&read_hdr->dto_q,
365 &xprt->sc_read_complete_q); 365 &xprt->sc_read_complete_q);
366 spin_unlock_bh(&xprt->sc_read_complete_lock); 366 spin_unlock_bh(&xprt->sc_rq_dto_lock);
367 svc_xprt_enqueue(&xprt->sc_xprt); 367 svc_xprt_enqueue(&xprt->sc_xprt);
368 } 368 }
369 svc_rdma_put_context(ctxt, 0); 369 svc_rdma_put_context(ctxt, 0);
@@ -428,7 +428,6 @@ static struct svcxprt_rdma *rdma_create_xprt(struct svc_serv *serv,
428 init_waitqueue_head(&cma_xprt->sc_send_wait); 428 init_waitqueue_head(&cma_xprt->sc_send_wait);
429 429
430 spin_lock_init(&cma_xprt->sc_lock); 430 spin_lock_init(&cma_xprt->sc_lock);
431 spin_lock_init(&cma_xprt->sc_read_complete_lock);
432 spin_lock_init(&cma_xprt->sc_rq_dto_lock); 431 spin_lock_init(&cma_xprt->sc_rq_dto_lock);
433 432
434 cma_xprt->sc_ord = svcrdma_ord; 433 cma_xprt->sc_ord = svcrdma_ord;
diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c
index b1ff16aa4bd..3ddaff42d1b 100644
--- a/net/tipc/bcast.c
+++ b/net/tipc/bcast.c
@@ -96,8 +96,8 @@ struct bcbearer {
96 struct media media; 96 struct media media;
97 struct bcbearer_pair bpairs[MAX_BEARERS]; 97 struct bcbearer_pair bpairs[MAX_BEARERS];
98 struct bcbearer_pair bpairs_temp[TIPC_MAX_LINK_PRI + 1]; 98 struct bcbearer_pair bpairs_temp[TIPC_MAX_LINK_PRI + 1];
99 struct node_map remains; 99 struct tipc_node_map remains;
100 struct node_map remains_new; 100 struct tipc_node_map remains_new;
101}; 101};
102 102
103/** 103/**
@@ -110,7 +110,7 @@ struct bcbearer {
110 110
111struct bclink { 111struct bclink {
112 struct link link; 112 struct link link;
113 struct node node; 113 struct tipc_node node;
114}; 114};
115 115
116 116
@@ -149,7 +149,7 @@ static void bcbuf_decr_acks(struct sk_buff *buf)
149 * Called with 'node' locked, bc_lock unlocked 149 * Called with 'node' locked, bc_lock unlocked
150 */ 150 */
151 151
152static void bclink_set_gap(struct node *n_ptr) 152static void bclink_set_gap(struct tipc_node *n_ptr)
153{ 153{
154 struct sk_buff *buf = n_ptr->bclink.deferred_head; 154 struct sk_buff *buf = n_ptr->bclink.deferred_head;
155 155
@@ -202,7 +202,7 @@ static void bclink_retransmit_pkt(u32 after, u32 to)
202 * Node is locked, bc_lock unlocked. 202 * Node is locked, bc_lock unlocked.
203 */ 203 */
204 204
205void tipc_bclink_acknowledge(struct node *n_ptr, u32 acked) 205void tipc_bclink_acknowledge(struct tipc_node *n_ptr, u32 acked)
206{ 206{
207 struct sk_buff *crs; 207 struct sk_buff *crs;
208 struct sk_buff *next; 208 struct sk_buff *next;
@@ -250,7 +250,7 @@ void tipc_bclink_acknowledge(struct node *n_ptr, u32 acked)
250 * tipc_net_lock and node lock set 250 * tipc_net_lock and node lock set
251 */ 251 */
252 252
253static void bclink_send_ack(struct node *n_ptr) 253static void bclink_send_ack(struct tipc_node *n_ptr)
254{ 254{
255 struct link *l_ptr = n_ptr->active_links[n_ptr->addr & 1]; 255 struct link *l_ptr = n_ptr->active_links[n_ptr->addr & 1];
256 256
@@ -264,7 +264,7 @@ static void bclink_send_ack(struct node *n_ptr)
264 * tipc_net_lock and node lock set 264 * tipc_net_lock and node lock set
265 */ 265 */
266 266
267static void bclink_send_nack(struct node *n_ptr) 267static void bclink_send_nack(struct tipc_node *n_ptr)
268{ 268{
269 struct sk_buff *buf; 269 struct sk_buff *buf;
270 struct tipc_msg *msg; 270 struct tipc_msg *msg;
@@ -308,7 +308,7 @@ static void bclink_send_nack(struct node *n_ptr)
308 * tipc_net_lock and node lock set 308 * tipc_net_lock and node lock set
309 */ 309 */
310 310
311void tipc_bclink_check_gap(struct node *n_ptr, u32 last_sent) 311void tipc_bclink_check_gap(struct tipc_node *n_ptr, u32 last_sent)
312{ 312{
313 if (!n_ptr->bclink.supported || 313 if (!n_ptr->bclink.supported ||
314 less_eq(last_sent, mod(n_ptr->bclink.last_in))) 314 less_eq(last_sent, mod(n_ptr->bclink.last_in)))
@@ -328,7 +328,7 @@ void tipc_bclink_check_gap(struct node *n_ptr, u32 last_sent)
328 328
329static void tipc_bclink_peek_nack(u32 dest, u32 sender_tag, u32 gap_after, u32 gap_to) 329static void tipc_bclink_peek_nack(u32 dest, u32 sender_tag, u32 gap_after, u32 gap_to)
330{ 330{
331 struct node *n_ptr = tipc_node_find(dest); 331 struct tipc_node *n_ptr = tipc_node_find(dest);
332 u32 my_after, my_to; 332 u32 my_after, my_to;
333 333
334 if (unlikely(!n_ptr || !tipc_node_is_up(n_ptr))) 334 if (unlikely(!n_ptr || !tipc_node_is_up(n_ptr)))
@@ -418,7 +418,7 @@ void tipc_bclink_recv_pkt(struct sk_buff *buf)
418 static int rx_count = 0; 418 static int rx_count = 0;
419#endif 419#endif
420 struct tipc_msg *msg = buf_msg(buf); 420 struct tipc_msg *msg = buf_msg(buf);
421 struct node* node = tipc_node_find(msg_prevnode(msg)); 421 struct tipc_node* node = tipc_node_find(msg_prevnode(msg));
422 u32 next_in; 422 u32 next_in;
423 u32 seqno; 423 u32 seqno;
424 struct sk_buff *deferred; 424 struct sk_buff *deferred;
@@ -538,7 +538,7 @@ u32 tipc_bclink_get_last_sent(void)
538 return last_sent; 538 return last_sent;
539} 539}
540 540
541u32 tipc_bclink_acks_missing(struct node *n_ptr) 541u32 tipc_bclink_acks_missing(struct tipc_node *n_ptr)
542{ 542{
543 return (n_ptr->bclink.supported && 543 return (n_ptr->bclink.supported &&
544 (tipc_bclink_get_last_sent() != n_ptr->bclink.acked)); 544 (tipc_bclink_get_last_sent() != n_ptr->bclink.acked));
diff --git a/net/tipc/bcast.h b/net/tipc/bcast.h
index a2416fa6b90..5aa024b99c5 100644
--- a/net/tipc/bcast.h
+++ b/net/tipc/bcast.h
@@ -41,12 +41,12 @@
41#define WSIZE 32 41#define WSIZE 32
42 42
43/** 43/**
44 * struct node_map - set of node identifiers 44 * struct tipc_node_map - set of node identifiers
45 * @count: # of nodes in set 45 * @count: # of nodes in set
46 * @map: bitmap of node identifiers that are in the set 46 * @map: bitmap of node identifiers that are in the set
47 */ 47 */
48 48
49struct node_map { 49struct tipc_node_map {
50 u32 count; 50 u32 count;
51 u32 map[MAX_NODES / WSIZE]; 51 u32 map[MAX_NODES / WSIZE];
52}; 52};
@@ -68,7 +68,7 @@ struct port_list {
68}; 68};
69 69
70 70
71struct node; 71struct tipc_node;
72 72
73extern char tipc_bclink_name[]; 73extern char tipc_bclink_name[];
74 74
@@ -77,7 +77,7 @@ extern char tipc_bclink_name[];
77 * nmap_add - add a node to a node map 77 * nmap_add - add a node to a node map
78 */ 78 */
79 79
80static inline void tipc_nmap_add(struct node_map *nm_ptr, u32 node) 80static inline void tipc_nmap_add(struct tipc_node_map *nm_ptr, u32 node)
81{ 81{
82 int n = tipc_node(node); 82 int n = tipc_node(node);
83 int w = n / WSIZE; 83 int w = n / WSIZE;
@@ -93,7 +93,7 @@ static inline void tipc_nmap_add(struct node_map *nm_ptr, u32 node)
93 * nmap_remove - remove a node from a node map 93 * nmap_remove - remove a node from a node map
94 */ 94 */
95 95
96static inline void tipc_nmap_remove(struct node_map *nm_ptr, u32 node) 96static inline void tipc_nmap_remove(struct tipc_node_map *nm_ptr, u32 node)
97{ 97{
98 int n = tipc_node(node); 98 int n = tipc_node(node);
99 int w = n / WSIZE; 99 int w = n / WSIZE;
@@ -109,7 +109,7 @@ static inline void tipc_nmap_remove(struct node_map *nm_ptr, u32 node)
109 * nmap_equal - test for equality of node maps 109 * nmap_equal - test for equality of node maps
110 */ 110 */
111 111
112static inline int tipc_nmap_equal(struct node_map *nm_a, struct node_map *nm_b) 112static inline int tipc_nmap_equal(struct tipc_node_map *nm_a, struct tipc_node_map *nm_b)
113{ 113{
114 return !memcmp(nm_a, nm_b, sizeof(*nm_a)); 114 return !memcmp(nm_a, nm_b, sizeof(*nm_a));
115} 115}
@@ -121,8 +121,8 @@ static inline int tipc_nmap_equal(struct node_map *nm_a, struct node_map *nm_b)
121 * @nm_diff: output node map A-B (i.e. nodes of A that are not in B) 121 * @nm_diff: output node map A-B (i.e. nodes of A that are not in B)
122 */ 122 */
123 123
124static inline void tipc_nmap_diff(struct node_map *nm_a, struct node_map *nm_b, 124static inline void tipc_nmap_diff(struct tipc_node_map *nm_a, struct tipc_node_map *nm_b,
125 struct node_map *nm_diff) 125 struct tipc_node_map *nm_diff)
126{ 126{
127 int stop = sizeof(nm_a->map) / sizeof(u32); 127 int stop = sizeof(nm_a->map) / sizeof(u32);
128 int w; 128 int w;
@@ -195,12 +195,12 @@ static inline void tipc_port_list_free(struct port_list *pl_ptr)
195 195
196int tipc_bclink_init(void); 196int tipc_bclink_init(void);
197void tipc_bclink_stop(void); 197void tipc_bclink_stop(void);
198void tipc_bclink_acknowledge(struct node *n_ptr, u32 acked); 198void tipc_bclink_acknowledge(struct tipc_node *n_ptr, u32 acked);
199int tipc_bclink_send_msg(struct sk_buff *buf); 199int tipc_bclink_send_msg(struct sk_buff *buf);
200void tipc_bclink_recv_pkt(struct sk_buff *buf); 200void tipc_bclink_recv_pkt(struct sk_buff *buf);
201u32 tipc_bclink_get_last_sent(void); 201u32 tipc_bclink_get_last_sent(void);
202u32 tipc_bclink_acks_missing(struct node *n_ptr); 202u32 tipc_bclink_acks_missing(struct tipc_node *n_ptr);
203void tipc_bclink_check_gap(struct node *n_ptr, u32 seqno); 203void tipc_bclink_check_gap(struct tipc_node *n_ptr, u32 seqno);
204int tipc_bclink_stats(char *stats_buf, const u32 buf_size); 204int tipc_bclink_stats(char *stats_buf, const u32 buf_size);
205int tipc_bclink_reset_stats(void); 205int tipc_bclink_reset_stats(void);
206int tipc_bclink_set_queue_limits(u32 limit); 206int tipc_bclink_set_queue_limits(u32 limit);
diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c
index 6a9aba3edd0..a7a36779b9b 100644
--- a/net/tipc/bearer.c
+++ b/net/tipc/bearer.c
@@ -599,7 +599,7 @@ int tipc_block_bearer(const char *name)
599 spin_lock_bh(&b_ptr->publ.lock); 599 spin_lock_bh(&b_ptr->publ.lock);
600 b_ptr->publ.blocked = 1; 600 b_ptr->publ.blocked = 1;
601 list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) { 601 list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) {
602 struct node *n_ptr = l_ptr->owner; 602 struct tipc_node *n_ptr = l_ptr->owner;
603 603
604 spin_lock_bh(&n_ptr->lock); 604 spin_lock_bh(&n_ptr->lock);
605 tipc_link_reset(l_ptr); 605 tipc_link_reset(l_ptr);
diff --git a/net/tipc/bearer.h b/net/tipc/bearer.h
index 6a36b6600e6..ca573489271 100644
--- a/net/tipc/bearer.h
+++ b/net/tipc/bearer.h
@@ -104,7 +104,7 @@ struct bearer {
104 u32 continue_count; 104 u32 continue_count;
105 int active; 105 int active;
106 char net_plane; 106 char net_plane;
107 struct node_map nodes; 107 struct tipc_node_map nodes;
108}; 108};
109 109
110struct bearer_name { 110struct bearer_name {
diff --git a/net/tipc/cluster.c b/net/tipc/cluster.c
index 46ee6c58532..689fdefe9d0 100644
--- a/net/tipc/cluster.c
+++ b/net/tipc/cluster.c
@@ -48,8 +48,8 @@ static void tipc_cltr_multicast(struct cluster *c_ptr, struct sk_buff *buf,
48 u32 lower, u32 upper); 48 u32 lower, u32 upper);
49static struct sk_buff *tipc_cltr_prepare_routing_msg(u32 data_size, u32 dest); 49static struct sk_buff *tipc_cltr_prepare_routing_msg(u32 data_size, u32 dest);
50 50
51struct node **tipc_local_nodes = NULL; 51struct tipc_node **tipc_local_nodes = NULL;
52struct node_map tipc_cltr_bcast_nodes = {0,{0,}}; 52struct tipc_node_map tipc_cltr_bcast_nodes = {0,{0,}};
53u32 tipc_highest_allowed_slave = 0; 53u32 tipc_highest_allowed_slave = 0;
54 54
55struct cluster *tipc_cltr_create(u32 addr) 55struct cluster *tipc_cltr_create(u32 addr)
@@ -115,7 +115,7 @@ void tipc_cltr_delete(struct cluster *c_ptr)
115 115
116u32 tipc_cltr_next_node(struct cluster *c_ptr, u32 addr) 116u32 tipc_cltr_next_node(struct cluster *c_ptr, u32 addr)
117{ 117{
118 struct node *n_ptr; 118 struct tipc_node *n_ptr;
119 u32 n_num = tipc_node(addr) + 1; 119 u32 n_num = tipc_node(addr) + 1;
120 120
121 if (!c_ptr) 121 if (!c_ptr)
@@ -133,7 +133,7 @@ u32 tipc_cltr_next_node(struct cluster *c_ptr, u32 addr)
133 return 0; 133 return 0;
134} 134}
135 135
136void tipc_cltr_attach_node(struct cluster *c_ptr, struct node *n_ptr) 136void tipc_cltr_attach_node(struct cluster *c_ptr, struct tipc_node *n_ptr)
137{ 137{
138 u32 n_num = tipc_node(n_ptr->addr); 138 u32 n_num = tipc_node(n_ptr->addr);
139 u32 max_n_num = tipc_max_nodes; 139 u32 max_n_num = tipc_max_nodes;
@@ -196,7 +196,7 @@ u32 tipc_cltr_select_router(struct cluster *c_ptr, u32 ref)
196 * Uses deterministic and fair algorithm. 196 * Uses deterministic and fair algorithm.
197 */ 197 */
198 198
199struct node *tipc_cltr_select_node(struct cluster *c_ptr, u32 selector) 199struct tipc_node *tipc_cltr_select_node(struct cluster *c_ptr, u32 selector)
200{ 200{
201 u32 n_num; 201 u32 n_num;
202 u32 mask = tipc_max_nodes; 202 u32 mask = tipc_max_nodes;
@@ -379,7 +379,7 @@ void tipc_cltr_recv_routing_table(struct sk_buff *buf)
379{ 379{
380 struct tipc_msg *msg = buf_msg(buf); 380 struct tipc_msg *msg = buf_msg(buf);
381 struct cluster *c_ptr; 381 struct cluster *c_ptr;
382 struct node *n_ptr; 382 struct tipc_node *n_ptr;
383 unchar *node_table; 383 unchar *node_table;
384 u32 table_size; 384 u32 table_size;
385 u32 router; 385 u32 router;
@@ -499,7 +499,7 @@ static void tipc_cltr_multicast(struct cluster *c_ptr, struct sk_buff *buf,
499 u32 lower, u32 upper) 499 u32 lower, u32 upper)
500{ 500{
501 struct sk_buff *buf_copy; 501 struct sk_buff *buf_copy;
502 struct node *n_ptr; 502 struct tipc_node *n_ptr;
503 u32 n_num; 503 u32 n_num;
504 u32 tstop; 504 u32 tstop;
505 505
@@ -534,7 +534,7 @@ void tipc_cltr_broadcast(struct sk_buff *buf)
534{ 534{
535 struct sk_buff *buf_copy; 535 struct sk_buff *buf_copy;
536 struct cluster *c_ptr; 536 struct cluster *c_ptr;
537 struct node *n_ptr; 537 struct tipc_node *n_ptr;
538 u32 n_num; 538 u32 n_num;
539 u32 tstart; 539 u32 tstart;
540 u32 tstop; 540 u32 tstop;
diff --git a/net/tipc/cluster.h b/net/tipc/cluster.h
index 62df074afae..333efb0b9c4 100644
--- a/net/tipc/cluster.h
+++ b/net/tipc/cluster.h
@@ -54,24 +54,24 @@
54struct cluster { 54struct cluster {
55 u32 addr; 55 u32 addr;
56 struct _zone *owner; 56 struct _zone *owner;
57 struct node **nodes; 57 struct tipc_node **nodes;
58 u32 highest_node; 58 u32 highest_node;
59 u32 highest_slave; 59 u32 highest_slave;
60}; 60};
61 61
62 62
63extern struct node **tipc_local_nodes; 63extern struct tipc_node **tipc_local_nodes;
64extern u32 tipc_highest_allowed_slave; 64extern u32 tipc_highest_allowed_slave;
65extern struct node_map tipc_cltr_bcast_nodes; 65extern struct tipc_node_map tipc_cltr_bcast_nodes;
66 66
67void tipc_cltr_remove_as_router(struct cluster *c_ptr, u32 router); 67void tipc_cltr_remove_as_router(struct cluster *c_ptr, u32 router);
68void tipc_cltr_send_ext_routes(struct cluster *c_ptr, u32 dest); 68void tipc_cltr_send_ext_routes(struct cluster *c_ptr, u32 dest);
69struct node *tipc_cltr_select_node(struct cluster *c_ptr, u32 selector); 69struct tipc_node *tipc_cltr_select_node(struct cluster *c_ptr, u32 selector);
70u32 tipc_cltr_select_router(struct cluster *c_ptr, u32 ref); 70u32 tipc_cltr_select_router(struct cluster *c_ptr, u32 ref);
71void tipc_cltr_recv_routing_table(struct sk_buff *buf); 71void tipc_cltr_recv_routing_table(struct sk_buff *buf);
72struct cluster *tipc_cltr_create(u32 addr); 72struct cluster *tipc_cltr_create(u32 addr);
73void tipc_cltr_delete(struct cluster *c_ptr); 73void tipc_cltr_delete(struct cluster *c_ptr);
74void tipc_cltr_attach_node(struct cluster *c_ptr, struct node *n_ptr); 74void tipc_cltr_attach_node(struct cluster *c_ptr, struct tipc_node *n_ptr);
75void tipc_cltr_send_slave_routes(struct cluster *c_ptr, u32 dest); 75void tipc_cltr_send_slave_routes(struct cluster *c_ptr, u32 dest);
76void tipc_cltr_broadcast(struct sk_buff *buf); 76void tipc_cltr_broadcast(struct sk_buff *buf);
77int tipc_cltr_init(void); 77int tipc_cltr_init(void);
diff --git a/net/tipc/discover.c b/net/tipc/discover.c
index 1657f0e795f..74b7d1e28ae 100644
--- a/net/tipc/discover.c
+++ b/net/tipc/discover.c
@@ -193,7 +193,7 @@ void tipc_disc_recv_msg(struct sk_buff *buf, struct bearer *b_ptr)
193 /* Always accept link here */ 193 /* Always accept link here */
194 struct sk_buff *rbuf; 194 struct sk_buff *rbuf;
195 struct tipc_media_addr *addr; 195 struct tipc_media_addr *addr;
196 struct node *n_ptr = tipc_node_find(orig); 196 struct tipc_node *n_ptr = tipc_node_find(orig);
197 int link_fully_up; 197 int link_fully_up;
198 198
199 dbg(" in own cluster\n"); 199 dbg(" in own cluster\n");
diff --git a/net/tipc/link.c b/net/tipc/link.c
index d60113ba4b1..dd4c18b9a35 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -1155,7 +1155,7 @@ int tipc_link_send_buf(struct link *l_ptr, struct sk_buff *buf)
1155int tipc_link_send(struct sk_buff *buf, u32 dest, u32 selector) 1155int tipc_link_send(struct sk_buff *buf, u32 dest, u32 selector)
1156{ 1156{
1157 struct link *l_ptr; 1157 struct link *l_ptr;
1158 struct node *n_ptr; 1158 struct tipc_node *n_ptr;
1159 int res = -ELINKCONG; 1159 int res = -ELINKCONG;
1160 1160
1161 read_lock_bh(&tipc_net_lock); 1161 read_lock_bh(&tipc_net_lock);
@@ -1226,7 +1226,7 @@ static int link_send_buf_fast(struct link *l_ptr, struct sk_buff *buf,
1226int tipc_send_buf_fast(struct sk_buff *buf, u32 destnode) 1226int tipc_send_buf_fast(struct sk_buff *buf, u32 destnode)
1227{ 1227{
1228 struct link *l_ptr; 1228 struct link *l_ptr;
1229 struct node *n_ptr; 1229 struct tipc_node *n_ptr;
1230 int res; 1230 int res;
1231 u32 selector = msg_origport(buf_msg(buf)) & 1; 1231 u32 selector = msg_origport(buf_msg(buf)) & 1;
1232 u32 dummy; 1232 u32 dummy;
@@ -1270,7 +1270,7 @@ int tipc_link_send_sections_fast(struct port *sender,
1270 struct tipc_msg *hdr = &sender->publ.phdr; 1270 struct tipc_msg *hdr = &sender->publ.phdr;
1271 struct link *l_ptr; 1271 struct link *l_ptr;
1272 struct sk_buff *buf; 1272 struct sk_buff *buf;
1273 struct node *node; 1273 struct tipc_node *node;
1274 int res; 1274 int res;
1275 u32 selector = msg_origport(hdr) & 1; 1275 u32 selector = msg_origport(hdr) & 1;
1276 1276
@@ -1364,7 +1364,7 @@ static int link_send_sections_long(struct port *sender,
1364 u32 destaddr) 1364 u32 destaddr)
1365{ 1365{
1366 struct link *l_ptr; 1366 struct link *l_ptr;
1367 struct node *node; 1367 struct tipc_node *node;
1368 struct tipc_msg *hdr = &sender->publ.phdr; 1368 struct tipc_msg *hdr = &sender->publ.phdr;
1369 u32 dsz = msg_data_sz(hdr); 1369 u32 dsz = msg_data_sz(hdr);
1370 u32 max_pkt,fragm_sz,rest; 1370 u32 max_pkt,fragm_sz,rest;
@@ -1636,7 +1636,7 @@ void tipc_link_push_queue(struct link *l_ptr)
1636 1636
1637static void link_reset_all(unsigned long addr) 1637static void link_reset_all(unsigned long addr)
1638{ 1638{
1639 struct node *n_ptr; 1639 struct tipc_node *n_ptr;
1640 char addr_string[16]; 1640 char addr_string[16];
1641 u32 i; 1641 u32 i;
1642 1642
@@ -1682,7 +1682,7 @@ static void link_retransmit_failure(struct link *l_ptr, struct sk_buff *buf)
1682 1682
1683 /* Handle failure on broadcast link */ 1683 /* Handle failure on broadcast link */
1684 1684
1685 struct node *n_ptr; 1685 struct tipc_node *n_ptr;
1686 char addr_string[16]; 1686 char addr_string[16];
1687 1687
1688 tipc_printf(TIPC_OUTPUT, "Msg seq number: %u, ", msg_seqno(msg)); 1688 tipc_printf(TIPC_OUTPUT, "Msg seq number: %u, ", msg_seqno(msg));
@@ -1843,7 +1843,7 @@ void tipc_recv_msg(struct sk_buff *head, struct tipc_bearer *tb_ptr)
1843 read_lock_bh(&tipc_net_lock); 1843 read_lock_bh(&tipc_net_lock);
1844 while (head) { 1844 while (head) {
1845 struct bearer *b_ptr = (struct bearer *)tb_ptr; 1845 struct bearer *b_ptr = (struct bearer *)tb_ptr;
1846 struct node *n_ptr; 1846 struct tipc_node *n_ptr;
1847 struct link *l_ptr; 1847 struct link *l_ptr;
1848 struct sk_buff *crs; 1848 struct sk_buff *crs;
1849 struct sk_buff *buf = head; 1849 struct sk_buff *buf = head;
@@ -2935,7 +2935,7 @@ void tipc_link_set_queue_limits(struct link *l_ptr, u32 window)
2935 * Returns pointer to link (or 0 if invalid link name). 2935 * Returns pointer to link (or 0 if invalid link name).
2936 */ 2936 */
2937 2937
2938static struct link *link_find_link(const char *name, struct node **node) 2938static struct link *link_find_link(const char *name, struct tipc_node **node)
2939{ 2939{
2940 struct link_name link_name_parts; 2940 struct link_name link_name_parts;
2941 struct bearer *b_ptr; 2941 struct bearer *b_ptr;
@@ -2965,7 +2965,7 @@ struct sk_buff *tipc_link_cmd_config(const void *req_tlv_area, int req_tlv_space
2965 struct tipc_link_config *args; 2965 struct tipc_link_config *args;
2966 u32 new_value; 2966 u32 new_value;
2967 struct link *l_ptr; 2967 struct link *l_ptr;
2968 struct node *node; 2968 struct tipc_node *node;
2969 int res; 2969 int res;
2970 2970
2971 if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_LINK_CONFIG)) 2971 if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_LINK_CONFIG))
@@ -3043,7 +3043,7 @@ struct sk_buff *tipc_link_cmd_reset_stats(const void *req_tlv_area, int req_tlv_
3043{ 3043{
3044 char *link_name; 3044 char *link_name;
3045 struct link *l_ptr; 3045 struct link *l_ptr;
3046 struct node *node; 3046 struct tipc_node *node;
3047 3047
3048 if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_LINK_NAME)) 3048 if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_LINK_NAME))
3049 return tipc_cfg_reply_error_string(TIPC_CFG_TLV_ERROR); 3049 return tipc_cfg_reply_error_string(TIPC_CFG_TLV_ERROR);
@@ -3091,7 +3091,7 @@ static int tipc_link_stats(const char *name, char *buf, const u32 buf_size)
3091{ 3091{
3092 struct print_buf pb; 3092 struct print_buf pb;
3093 struct link *l_ptr; 3093 struct link *l_ptr;
3094 struct node *node; 3094 struct tipc_node *node;
3095 char *status; 3095 char *status;
3096 u32 profile_total = 0; 3096 u32 profile_total = 0;
3097 3097
@@ -3207,7 +3207,7 @@ int link_control(const char *name, u32 op, u32 val)
3207 int res = -EINVAL; 3207 int res = -EINVAL;
3208 struct link *l_ptr; 3208 struct link *l_ptr;
3209 u32 bearer_id; 3209 u32 bearer_id;
3210 struct node * node; 3210 struct tipc_node * node;
3211 u32 a; 3211 u32 a;
3212 3212
3213 a = link_name2addr(name, &bearer_id); 3213 a = link_name2addr(name, &bearer_id);
@@ -3249,7 +3249,7 @@ int link_control(const char *name, u32 op, u32 val)
3249 3249
3250u32 tipc_link_get_max_pkt(u32 dest, u32 selector) 3250u32 tipc_link_get_max_pkt(u32 dest, u32 selector)
3251{ 3251{
3252 struct node *n_ptr; 3252 struct tipc_node *n_ptr;
3253 struct link *l_ptr; 3253 struct link *l_ptr;
3254 u32 res = MAX_PKT_DEFAULT; 3254 u32 res = MAX_PKT_DEFAULT;
3255 3255
diff --git a/net/tipc/link.h b/net/tipc/link.h
index 52f3e7c1871..6a51e38ad25 100644
--- a/net/tipc/link.h
+++ b/net/tipc/link.h
@@ -116,7 +116,7 @@ struct link {
116 char name[TIPC_MAX_LINK_NAME]; 116 char name[TIPC_MAX_LINK_NAME];
117 struct tipc_media_addr media_addr; 117 struct tipc_media_addr media_addr;
118 struct timer_list timer; 118 struct timer_list timer;
119 struct node *owner; 119 struct tipc_node *owner;
120 struct list_head link_list; 120 struct list_head link_list;
121 121
122 /* Management and link supervision data */ 122 /* Management and link supervision data */
diff --git a/net/tipc/name_table.h b/net/tipc/name_table.h
index b9e7cd336d7..139882d4ed0 100644
--- a/net/tipc/name_table.h
+++ b/net/tipc/name_table.h
@@ -76,7 +76,7 @@ struct publication {
76 u32 node; 76 u32 node;
77 u32 ref; 77 u32 ref;
78 u32 key; 78 u32 key;
79 struct node_subscr subscr; 79 struct tipc_node_subscr subscr;
80 struct list_head local_list; 80 struct list_head local_list;
81 struct list_head pport_list; 81 struct list_head pport_list;
82 struct publication *node_list_next; 82 struct publication *node_list_next;
diff --git a/net/tipc/net.c b/net/tipc/net.c
index ec7b04fbdc4..7906608bf51 100644
--- a/net/tipc/net.c
+++ b/net/tipc/net.c
@@ -118,7 +118,7 @@
118DEFINE_RWLOCK(tipc_net_lock); 118DEFINE_RWLOCK(tipc_net_lock);
119struct network tipc_net = { NULL }; 119struct network tipc_net = { NULL };
120 120
121struct node *tipc_net_select_remote_node(u32 addr, u32 ref) 121struct tipc_node *tipc_net_select_remote_node(u32 addr, u32 ref)
122{ 122{
123 return tipc_zone_select_remote_node(tipc_net.zones[tipc_zone(addr)], addr, ref); 123 return tipc_zone_select_remote_node(tipc_net.zones[tipc_zone(addr)], addr, ref);
124} 124}
diff --git a/net/tipc/net.h b/net/tipc/net.h
index d154ac2bda9..de2b9ad8f64 100644
--- a/net/tipc/net.h
+++ b/net/tipc/net.h
@@ -55,7 +55,7 @@ extern rwlock_t tipc_net_lock;
55void tipc_net_remove_as_router(u32 router); 55void tipc_net_remove_as_router(u32 router);
56void tipc_net_send_external_routes(u32 dest); 56void tipc_net_send_external_routes(u32 dest);
57void tipc_net_route_msg(struct sk_buff *buf); 57void tipc_net_route_msg(struct sk_buff *buf);
58struct node *tipc_net_select_remote_node(u32 addr, u32 ref); 58struct tipc_node *tipc_net_select_remote_node(u32 addr, u32 ref);
59u32 tipc_net_select_router(u32 addr, u32 ref); 59u32 tipc_net_select_router(u32 addr, u32 ref);
60 60
61int tipc_net_start(u32 addr); 61int tipc_net_start(u32 addr);
diff --git a/net/tipc/node.c b/net/tipc/node.c
index ee952ad6021..20d98c56e15 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -46,11 +46,11 @@
46#include "bearer.h" 46#include "bearer.h"
47#include "name_distr.h" 47#include "name_distr.h"
48 48
49void node_print(struct print_buf *buf, struct node *n_ptr, char *str); 49void node_print(struct print_buf *buf, struct tipc_node *n_ptr, char *str);
50static void node_lost_contact(struct node *n_ptr); 50static void node_lost_contact(struct tipc_node *n_ptr);
51static void node_established_contact(struct node *n_ptr); 51static void node_established_contact(struct tipc_node *n_ptr);
52 52
53struct node *tipc_nodes = NULL; /* sorted list of nodes within cluster */ 53struct tipc_node *tipc_nodes = NULL; /* sorted list of nodes within cluster */
54 54
55static DEFINE_SPINLOCK(node_create_lock); 55static DEFINE_SPINLOCK(node_create_lock);
56 56
@@ -66,11 +66,11 @@ u32 tipc_own_tag = 0;
66 * but this is a non-trivial change.) 66 * but this is a non-trivial change.)
67 */ 67 */
68 68
69struct node *tipc_node_create(u32 addr) 69struct tipc_node *tipc_node_create(u32 addr)
70{ 70{
71 struct cluster *c_ptr; 71 struct cluster *c_ptr;
72 struct node *n_ptr; 72 struct tipc_node *n_ptr;
73 struct node **curr_node; 73 struct tipc_node **curr_node;
74 74
75 spin_lock_bh(&node_create_lock); 75 spin_lock_bh(&node_create_lock);
76 76
@@ -120,7 +120,7 @@ struct node *tipc_node_create(u32 addr)
120 return n_ptr; 120 return n_ptr;
121} 121}
122 122
123void tipc_node_delete(struct node *n_ptr) 123void tipc_node_delete(struct tipc_node *n_ptr)
124{ 124{
125 if (!n_ptr) 125 if (!n_ptr)
126 return; 126 return;
@@ -146,7 +146,7 @@ void tipc_node_delete(struct node *n_ptr)
146 * Link becomes active (alone or shared) or standby, depending on its priority. 146 * Link becomes active (alone or shared) or standby, depending on its priority.
147 */ 147 */
148 148
149void tipc_node_link_up(struct node *n_ptr, struct link *l_ptr) 149void tipc_node_link_up(struct tipc_node *n_ptr, struct link *l_ptr)
150{ 150{
151 struct link **active = &n_ptr->active_links[0]; 151 struct link **active = &n_ptr->active_links[0];
152 152
@@ -180,7 +180,7 @@ void tipc_node_link_up(struct node *n_ptr, struct link *l_ptr)
180 * node_select_active_links - select active link 180 * node_select_active_links - select active link
181 */ 181 */
182 182
183static void node_select_active_links(struct node *n_ptr) 183static void node_select_active_links(struct tipc_node *n_ptr)
184{ 184{
185 struct link **active = &n_ptr->active_links[0]; 185 struct link **active = &n_ptr->active_links[0];
186 u32 i; 186 u32 i;
@@ -208,7 +208,7 @@ static void node_select_active_links(struct node *n_ptr)
208 * tipc_node_link_down - handle loss of link 208 * tipc_node_link_down - handle loss of link
209 */ 209 */
210 210
211void tipc_node_link_down(struct node *n_ptr, struct link *l_ptr) 211void tipc_node_link_down(struct tipc_node *n_ptr, struct link *l_ptr)
212{ 212{
213 struct link **active; 213 struct link **active;
214 214
@@ -235,30 +235,30 @@ void tipc_node_link_down(struct node *n_ptr, struct link *l_ptr)
235 node_lost_contact(n_ptr); 235 node_lost_contact(n_ptr);
236} 236}
237 237
238int tipc_node_has_active_links(struct node *n_ptr) 238int tipc_node_has_active_links(struct tipc_node *n_ptr)
239{ 239{
240 return (n_ptr && 240 return (n_ptr &&
241 ((n_ptr->active_links[0]) || (n_ptr->active_links[1]))); 241 ((n_ptr->active_links[0]) || (n_ptr->active_links[1])));
242} 242}
243 243
244int tipc_node_has_redundant_links(struct node *n_ptr) 244int tipc_node_has_redundant_links(struct tipc_node *n_ptr)
245{ 245{
246 return (n_ptr->working_links > 1); 246 return (n_ptr->working_links > 1);
247} 247}
248 248
249static int tipc_node_has_active_routes(struct node *n_ptr) 249static int tipc_node_has_active_routes(struct tipc_node *n_ptr)
250{ 250{
251 return (n_ptr && (n_ptr->last_router >= 0)); 251 return (n_ptr && (n_ptr->last_router >= 0));
252} 252}
253 253
254int tipc_node_is_up(struct node *n_ptr) 254int tipc_node_is_up(struct tipc_node *n_ptr)
255{ 255{
256 return (tipc_node_has_active_links(n_ptr) || tipc_node_has_active_routes(n_ptr)); 256 return (tipc_node_has_active_links(n_ptr) || tipc_node_has_active_routes(n_ptr));
257} 257}
258 258
259struct node *tipc_node_attach_link(struct link *l_ptr) 259struct tipc_node *tipc_node_attach_link(struct link *l_ptr)
260{ 260{
261 struct node *n_ptr = tipc_node_find(l_ptr->addr); 261 struct tipc_node *n_ptr = tipc_node_find(l_ptr->addr);
262 262
263 if (!n_ptr) 263 if (!n_ptr)
264 n_ptr = tipc_node_create(l_ptr->addr); 264 n_ptr = tipc_node_create(l_ptr->addr);
@@ -285,7 +285,7 @@ struct node *tipc_node_attach_link(struct link *l_ptr)
285 return NULL; 285 return NULL;
286} 286}
287 287
288void tipc_node_detach_link(struct node *n_ptr, struct link *l_ptr) 288void tipc_node_detach_link(struct tipc_node *n_ptr, struct link *l_ptr)
289{ 289{
290 n_ptr->links[l_ptr->b_ptr->identity] = NULL; 290 n_ptr->links[l_ptr->b_ptr->identity] = NULL;
291 tipc_net.zones[tipc_zone(l_ptr->addr)]->links--; 291 tipc_net.zones[tipc_zone(l_ptr->addr)]->links--;
@@ -338,7 +338,7 @@ void tipc_node_detach_link(struct node *n_ptr, struct link *l_ptr)
338 * 338 *
339 */ 339 */
340 340
341static void node_established_contact(struct node *n_ptr) 341static void node_established_contact(struct tipc_node *n_ptr)
342{ 342{
343 struct cluster *c_ptr; 343 struct cluster *c_ptr;
344 344
@@ -384,10 +384,10 @@ static void node_established_contact(struct node *n_ptr)
384 tipc_highest_allowed_slave); 384 tipc_highest_allowed_slave);
385} 385}
386 386
387static void node_lost_contact(struct node *n_ptr) 387static void node_lost_contact(struct tipc_node *n_ptr)
388{ 388{
389 struct cluster *c_ptr; 389 struct cluster *c_ptr;
390 struct node_subscr *ns, *tns; 390 struct tipc_node_subscr *ns, *tns;
391 char addr_string[16]; 391 char addr_string[16];
392 u32 i; 392 u32 i;
393 393
@@ -466,9 +466,9 @@ static void node_lost_contact(struct node *n_ptr)
466 * Called by when cluster local lookup has failed. 466 * Called by when cluster local lookup has failed.
467 */ 467 */
468 468
469struct node *tipc_node_select_next_hop(u32 addr, u32 selector) 469struct tipc_node *tipc_node_select_next_hop(u32 addr, u32 selector)
470{ 470{
471 struct node *n_ptr; 471 struct tipc_node *n_ptr;
472 u32 router_addr; 472 u32 router_addr;
473 473
474 if (!tipc_addr_domain_valid(addr)) 474 if (!tipc_addr_domain_valid(addr))
@@ -513,7 +513,7 @@ struct node *tipc_node_select_next_hop(u32 addr, u32 selector)
513 * Uses a deterministic and fair algorithm for selecting router node. 513 * Uses a deterministic and fair algorithm for selecting router node.
514 */ 514 */
515 515
516u32 tipc_node_select_router(struct node *n_ptr, u32 ref) 516u32 tipc_node_select_router(struct tipc_node *n_ptr, u32 ref)
517{ 517{
518 u32 ulim; 518 u32 ulim;
519 u32 mask; 519 u32 mask;
@@ -551,7 +551,7 @@ u32 tipc_node_select_router(struct node *n_ptr, u32 ref)
551 return tipc_addr(own_zone(), own_cluster(), r); 551 return tipc_addr(own_zone(), own_cluster(), r);
552} 552}
553 553
554void tipc_node_add_router(struct node *n_ptr, u32 router) 554void tipc_node_add_router(struct tipc_node *n_ptr, u32 router)
555{ 555{
556 u32 r_num = tipc_node(router); 556 u32 r_num = tipc_node(router);
557 557
@@ -562,7 +562,7 @@ void tipc_node_add_router(struct node *n_ptr, u32 router)
562 !n_ptr->routers[n_ptr->last_router]); 562 !n_ptr->routers[n_ptr->last_router]);
563} 563}
564 564
565void tipc_node_remove_router(struct node *n_ptr, u32 router) 565void tipc_node_remove_router(struct tipc_node *n_ptr, u32 router)
566{ 566{
567 u32 r_num = tipc_node(router); 567 u32 r_num = tipc_node(router);
568 568
@@ -580,7 +580,7 @@ void tipc_node_remove_router(struct node *n_ptr, u32 router)
580} 580}
581 581
582#if 0 582#if 0
583void node_print(struct print_buf *buf, struct node *n_ptr, char *str) 583void node_print(struct print_buf *buf, struct tipc_node *n_ptr, char *str)
584{ 584{
585 u32 i; 585 u32 i;
586 586
@@ -597,7 +597,7 @@ void node_print(struct print_buf *buf, struct node *n_ptr, char *str)
597 597
598u32 tipc_available_nodes(const u32 domain) 598u32 tipc_available_nodes(const u32 domain)
599{ 599{
600 struct node *n_ptr; 600 struct tipc_node *n_ptr;
601 u32 cnt = 0; 601 u32 cnt = 0;
602 602
603 read_lock_bh(&tipc_net_lock); 603 read_lock_bh(&tipc_net_lock);
@@ -615,7 +615,7 @@ struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space)
615{ 615{
616 u32 domain; 616 u32 domain;
617 struct sk_buff *buf; 617 struct sk_buff *buf;
618 struct node *n_ptr; 618 struct tipc_node *n_ptr;
619 struct tipc_node_info node_info; 619 struct tipc_node_info node_info;
620 u32 payload_size; 620 u32 payload_size;
621 621
@@ -667,7 +667,7 @@ struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space)
667{ 667{
668 u32 domain; 668 u32 domain;
669 struct sk_buff *buf; 669 struct sk_buff *buf;
670 struct node *n_ptr; 670 struct tipc_node *n_ptr;
671 struct tipc_link_info link_info; 671 struct tipc_link_info link_info;
672 u32 payload_size; 672 u32 payload_size;
673 673
diff --git a/net/tipc/node.h b/net/tipc/node.h
index cd1882654bb..6f990da5d14 100644
--- a/net/tipc/node.h
+++ b/net/tipc/node.h
@@ -43,7 +43,7 @@
43#include "bearer.h" 43#include "bearer.h"
44 44
45/** 45/**
46 * struct node - TIPC node structure 46 * struct tipc_node - TIPC node structure
47 * @addr: network address of node 47 * @addr: network address of node
48 * @lock: spinlock governing access to structure 48 * @lock: spinlock governing access to structure
49 * @owner: pointer to cluster that node belongs to 49 * @owner: pointer to cluster that node belongs to
@@ -68,11 +68,11 @@
68 * @defragm: list of partially reassembled b'cast message fragments from node 68 * @defragm: list of partially reassembled b'cast message fragments from node
69 */ 69 */
70 70
71struct node { 71struct tipc_node {
72 u32 addr; 72 u32 addr;
73 spinlock_t lock; 73 spinlock_t lock;
74 struct cluster *owner; 74 struct cluster *owner;
75 struct node *next; 75 struct tipc_node *next;
76 struct list_head nsub; 76 struct list_head nsub;
77 struct link *active_links[2]; 77 struct link *active_links[2];
78 struct link *links[MAX_BEARERS]; 78 struct link *links[MAX_BEARERS];
@@ -94,26 +94,26 @@ struct node {
94 } bclink; 94 } bclink;
95}; 95};
96 96
97extern struct node *tipc_nodes; 97extern struct tipc_node *tipc_nodes;
98extern u32 tipc_own_tag; 98extern u32 tipc_own_tag;
99 99
100struct node *tipc_node_create(u32 addr); 100struct tipc_node *tipc_node_create(u32 addr);
101void tipc_node_delete(struct node *n_ptr); 101void tipc_node_delete(struct tipc_node *n_ptr);
102struct node *tipc_node_attach_link(struct link *l_ptr); 102struct tipc_node *tipc_node_attach_link(struct link *l_ptr);
103void tipc_node_detach_link(struct node *n_ptr, struct link *l_ptr); 103void tipc_node_detach_link(struct tipc_node *n_ptr, struct link *l_ptr);
104void tipc_node_link_down(struct node *n_ptr, struct link *l_ptr); 104void tipc_node_link_down(struct tipc_node *n_ptr, struct link *l_ptr);
105void tipc_node_link_up(struct node *n_ptr, struct link *l_ptr); 105void tipc_node_link_up(struct tipc_node *n_ptr, struct link *l_ptr);
106int tipc_node_has_active_links(struct node *n_ptr); 106int tipc_node_has_active_links(struct tipc_node *n_ptr);
107int tipc_node_has_redundant_links(struct node *n_ptr); 107int tipc_node_has_redundant_links(struct tipc_node *n_ptr);
108u32 tipc_node_select_router(struct node *n_ptr, u32 ref); 108u32 tipc_node_select_router(struct tipc_node *n_ptr, u32 ref);
109struct node *tipc_node_select_next_hop(u32 addr, u32 selector); 109struct tipc_node *tipc_node_select_next_hop(u32 addr, u32 selector);
110int tipc_node_is_up(struct node *n_ptr); 110int tipc_node_is_up(struct tipc_node *n_ptr);
111void tipc_node_add_router(struct node *n_ptr, u32 router); 111void tipc_node_add_router(struct tipc_node *n_ptr, u32 router);
112void tipc_node_remove_router(struct node *n_ptr, u32 router); 112void tipc_node_remove_router(struct tipc_node *n_ptr, u32 router);
113struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space); 113struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space);
114struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space); 114struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space);
115 115
116static inline struct node *tipc_node_find(u32 addr) 116static inline struct tipc_node *tipc_node_find(u32 addr)
117{ 117{
118 if (likely(in_own_cluster(addr))) 118 if (likely(in_own_cluster(addr)))
119 return tipc_local_nodes[tipc_node(addr)]; 119 return tipc_local_nodes[tipc_node(addr)];
@@ -126,19 +126,19 @@ static inline struct node *tipc_node_find(u32 addr)
126 return NULL; 126 return NULL;
127} 127}
128 128
129static inline struct node *tipc_node_select(u32 addr, u32 selector) 129static inline struct tipc_node *tipc_node_select(u32 addr, u32 selector)
130{ 130{
131 if (likely(in_own_cluster(addr))) 131 if (likely(in_own_cluster(addr)))
132 return tipc_local_nodes[tipc_node(addr)]; 132 return tipc_local_nodes[tipc_node(addr)];
133 return tipc_node_select_next_hop(addr, selector); 133 return tipc_node_select_next_hop(addr, selector);
134} 134}
135 135
136static inline void tipc_node_lock(struct node *n_ptr) 136static inline void tipc_node_lock(struct tipc_node *n_ptr)
137{ 137{
138 spin_lock_bh(&n_ptr->lock); 138 spin_lock_bh(&n_ptr->lock);
139} 139}
140 140
141static inline void tipc_node_unlock(struct node *n_ptr) 141static inline void tipc_node_unlock(struct tipc_node *n_ptr)
142{ 142{
143 spin_unlock_bh(&n_ptr->lock); 143 spin_unlock_bh(&n_ptr->lock);
144} 144}
diff --git a/net/tipc/node_subscr.c b/net/tipc/node_subscr.c
index 8ecbd0fb610..19194d476a9 100644
--- a/net/tipc/node_subscr.c
+++ b/net/tipc/node_subscr.c
@@ -44,7 +44,7 @@
44 * tipc_nodesub_subscribe - create "node down" subscription for specified node 44 * tipc_nodesub_subscribe - create "node down" subscription for specified node
45 */ 45 */
46 46
47void tipc_nodesub_subscribe(struct node_subscr *node_sub, u32 addr, 47void tipc_nodesub_subscribe(struct tipc_node_subscr *node_sub, u32 addr,
48 void *usr_handle, net_ev_handler handle_down) 48 void *usr_handle, net_ev_handler handle_down)
49{ 49{
50 if (addr == tipc_own_addr) { 50 if (addr == tipc_own_addr) {
@@ -69,7 +69,7 @@ void tipc_nodesub_subscribe(struct node_subscr *node_sub, u32 addr,
69 * tipc_nodesub_unsubscribe - cancel "node down" subscription (if any) 69 * tipc_nodesub_unsubscribe - cancel "node down" subscription (if any)
70 */ 70 */
71 71
72void tipc_nodesub_unsubscribe(struct node_subscr *node_sub) 72void tipc_nodesub_unsubscribe(struct tipc_node_subscr *node_sub)
73{ 73{
74 if (!node_sub->node) 74 if (!node_sub->node)
75 return; 75 return;
diff --git a/net/tipc/node_subscr.h b/net/tipc/node_subscr.h
index 5f3f5859b84..006ed739f51 100644
--- a/net/tipc/node_subscr.h
+++ b/net/tipc/node_subscr.h
@@ -42,22 +42,22 @@
42typedef void (*net_ev_handler) (void *usr_handle); 42typedef void (*net_ev_handler) (void *usr_handle);
43 43
44/** 44/**
45 * struct node_subscr - "node down" subscription entry 45 * struct tipc_node_subscr - "node down" subscription entry
46 * @node: ptr to node structure of interest (or NULL, if none) 46 * @node: ptr to node structure of interest (or NULL, if none)
47 * @handle_node_down: routine to invoke when node fails 47 * @handle_node_down: routine to invoke when node fails
48 * @usr_handle: argument to pass to routine when node fails 48 * @usr_handle: argument to pass to routine when node fails
49 * @nodesub_list: adjacent entries in list of subscriptions for the node 49 * @nodesub_list: adjacent entries in list of subscriptions for the node
50 */ 50 */
51 51
52struct node_subscr { 52struct tipc_node_subscr {
53 struct node *node; 53 struct tipc_node *node;
54 net_ev_handler handle_node_down; 54 net_ev_handler handle_node_down;
55 void *usr_handle; 55 void *usr_handle;
56 struct list_head nodesub_list; 56 struct list_head nodesub_list;
57}; 57};
58 58
59void tipc_nodesub_subscribe(struct node_subscr *node_sub, u32 addr, 59void tipc_nodesub_subscribe(struct tipc_node_subscr *node_sub, u32 addr,
60 void *usr_handle, net_ev_handler handle_down); 60 void *usr_handle, net_ev_handler handle_down);
61void tipc_nodesub_unsubscribe(struct node_subscr *node_sub); 61void tipc_nodesub_unsubscribe(struct tipc_node_subscr *node_sub);
62 62
63#endif 63#endif
diff --git a/net/tipc/port.h b/net/tipc/port.h
index e5f8c16429b..ff31ee4a1dc 100644
--- a/net/tipc/port.h
+++ b/net/tipc/port.h
@@ -105,7 +105,7 @@ struct port {
105 u32 probing_interval; 105 u32 probing_interval;
106 u32 last_in_seqno; 106 u32 last_in_seqno;
107 struct timer_list timer; 107 struct timer_list timer;
108 struct node_subscr subscription; 108 struct tipc_node_subscr subscription;
109}; 109};
110 110
111extern spinlock_t tipc_port_list_lock; 111extern spinlock_t tipc_port_list_lock;
diff --git a/net/tipc/zone.c b/net/tipc/zone.c
index 3506f856344..2c01ba2d86b 100644
--- a/net/tipc/zone.c
+++ b/net/tipc/zone.c
@@ -111,10 +111,10 @@ void tipc_zone_send_external_routes(struct _zone *z_ptr, u32 dest)
111 } 111 }
112} 112}
113 113
114struct node *tipc_zone_select_remote_node(struct _zone *z_ptr, u32 addr, u32 ref) 114struct tipc_node *tipc_zone_select_remote_node(struct _zone *z_ptr, u32 addr, u32 ref)
115{ 115{
116 struct cluster *c_ptr; 116 struct cluster *c_ptr;
117 struct node *n_ptr; 117 struct tipc_node *n_ptr;
118 u32 c_num; 118 u32 c_num;
119 119
120 if (!z_ptr) 120 if (!z_ptr)
diff --git a/net/tipc/zone.h b/net/tipc/zone.h
index 6e7a08df8af..7bdc3406ba9 100644
--- a/net/tipc/zone.h
+++ b/net/tipc/zone.h
@@ -54,7 +54,7 @@ struct _zone {
54 u32 links; 54 u32 links;
55}; 55};
56 56
57struct node *tipc_zone_select_remote_node(struct _zone *z_ptr, u32 addr, u32 ref); 57struct tipc_node *tipc_zone_select_remote_node(struct _zone *z_ptr, u32 addr, u32 ref);
58u32 tipc_zone_select_router(struct _zone *z_ptr, u32 addr, u32 ref); 58u32 tipc_zone_select_router(struct _zone *z_ptr, u32 addr, u32 ref);
59void tipc_zone_remove_as_router(struct _zone *z_ptr, u32 router); 59void tipc_zone_remove_as_router(struct _zone *z_ptr, u32 router);
60void tipc_zone_send_external_routes(struct _zone *z_ptr, u32 dest); 60void tipc_zone_send_external_routes(struct _zone *z_ptr, u32 dest);
diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig
index ab015c62d56..833b024f8f6 100644
--- a/net/wireless/Kconfig
+++ b/net/wireless/Kconfig
@@ -39,4 +39,5 @@ config WIRELESS_EXT_SYSFS
39 files in /sys/class/net/*/wireless/. The same information 39 files in /sys/class/net/*/wireless/. The same information
40 is available via the ioctls as well. 40 is available via the ioctls as well.
41 41
42 Say Y if you have programs using it (we don't know of any). 42 Say Y if you have programs using it, like old versions of
43 hal.
diff --git a/net/xfrm/xfrm_output.c b/net/xfrm/xfrm_output.c
index ac25b4c0e98..dc50f1e71f7 100644
--- a/net/xfrm/xfrm_output.c
+++ b/net/xfrm/xfrm_output.c
@@ -27,10 +27,14 @@ static int xfrm_state_check_space(struct xfrm_state *x, struct sk_buff *skb)
27 - skb_headroom(skb); 27 - skb_headroom(skb);
28 int ntail = dst->dev->needed_tailroom - skb_tailroom(skb); 28 int ntail = dst->dev->needed_tailroom - skb_tailroom(skb);
29 29
30 if (nhead > 0 || ntail > 0) 30 if (nhead <= 0) {
31 return pskb_expand_head(skb, nhead, ntail, GFP_ATOMIC); 31 if (ntail <= 0)
32 32 return 0;
33 return 0; 33 nhead = 0;
34 } else if (ntail < 0)
35 ntail = 0;
36
37 return pskb_expand_head(skb, nhead, ntail, GFP_ATOMIC);
34} 38}
35 39
36static int xfrm_output_one(struct sk_buff *skb, int err) 40static int xfrm_output_one(struct sk_buff *skb, int err)
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 841b32a2e68..b7754b1b73a 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1077,6 +1077,7 @@ static void __xfrm_policy_link(struct xfrm_policy *pol, int dir)
1077 struct hlist_head *chain = policy_hash_bysel(&pol->selector, 1077 struct hlist_head *chain = policy_hash_bysel(&pol->selector,
1078 pol->family, dir); 1078 pol->family, dir);
1079 1079
1080 list_add_tail(&pol->bytype, &xfrm_policy_bytype[pol->type]);
1080 hlist_add_head(&pol->bydst, chain); 1081 hlist_add_head(&pol->bydst, chain);
1081 hlist_add_head(&pol->byidx, xfrm_policy_byidx+idx_hash(pol->index)); 1082 hlist_add_head(&pol->byidx, xfrm_policy_byidx+idx_hash(pol->index));
1082 xfrm_policy_count[dir]++; 1083 xfrm_policy_count[dir]++;
@@ -1731,8 +1732,7 @@ restart:
1731 * We can't enlist stable bundles either. 1732 * We can't enlist stable bundles either.
1732 */ 1733 */
1733 write_unlock_bh(&policy->lock); 1734 write_unlock_bh(&policy->lock);
1734 if (dst) 1735 dst_free(dst);
1735 dst_free(dst);
1736 1736
1737 if (pol_dead) 1737 if (pol_dead)
1738 XFRM_INC_STATS(LINUX_MIB_XFRMOUTPOLDEAD); 1738 XFRM_INC_STATS(LINUX_MIB_XFRMOUTPOLDEAD);
@@ -1748,8 +1748,7 @@ restart:
1748 err = xfrm_dst_update_origin(dst, fl); 1748 err = xfrm_dst_update_origin(dst, fl);
1749 if (unlikely(err)) { 1749 if (unlikely(err)) {
1750 write_unlock_bh(&policy->lock); 1750 write_unlock_bh(&policy->lock);
1751 if (dst) 1751 dst_free(dst);
1752 dst_free(dst);
1753 XFRM_INC_STATS(LINUX_MIB_XFRMOUTBUNDLECHECKERROR); 1752 XFRM_INC_STATS(LINUX_MIB_XFRMOUTBUNDLECHECKERROR);
1754 goto error; 1753 goto error;
1755 } 1754 }
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 4c6914ef7d9..0a8f09c3144 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -780,11 +780,13 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
780{ 780{
781 unsigned int h; 781 unsigned int h;
782 struct hlist_node *entry; 782 struct hlist_node *entry;
783 struct xfrm_state *x, *x0; 783 struct xfrm_state *x, *x0, *to_put;
784 int acquire_in_progress = 0; 784 int acquire_in_progress = 0;
785 int error = 0; 785 int error = 0;
786 struct xfrm_state *best = NULL; 786 struct xfrm_state *best = NULL;
787 787
788 to_put = NULL;
789
788 spin_lock_bh(&xfrm_state_lock); 790 spin_lock_bh(&xfrm_state_lock);
789 h = xfrm_dst_hash(daddr, saddr, tmpl->reqid, family); 791 h = xfrm_dst_hash(daddr, saddr, tmpl->reqid, family);
790 hlist_for_each_entry(x, entry, xfrm_state_bydst+h, bydst) { 792 hlist_for_each_entry(x, entry, xfrm_state_bydst+h, bydst) {
@@ -833,7 +835,7 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
833 if (tmpl->id.spi && 835 if (tmpl->id.spi &&
834 (x0 = __xfrm_state_lookup(daddr, tmpl->id.spi, 836 (x0 = __xfrm_state_lookup(daddr, tmpl->id.spi,
835 tmpl->id.proto, family)) != NULL) { 837 tmpl->id.proto, family)) != NULL) {
836 xfrm_state_put(x0); 838 to_put = x0;
837 error = -EEXIST; 839 error = -EEXIST;
838 goto out; 840 goto out;
839 } 841 }
@@ -849,13 +851,14 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
849 error = security_xfrm_state_alloc_acquire(x, pol->security, fl->secid); 851 error = security_xfrm_state_alloc_acquire(x, pol->security, fl->secid);
850 if (error) { 852 if (error) {
851 x->km.state = XFRM_STATE_DEAD; 853 x->km.state = XFRM_STATE_DEAD;
852 xfrm_state_put(x); 854 to_put = x;
853 x = NULL; 855 x = NULL;
854 goto out; 856 goto out;
855 } 857 }
856 858
857 if (km_query(x, tmpl, pol) == 0) { 859 if (km_query(x, tmpl, pol) == 0) {
858 x->km.state = XFRM_STATE_ACQ; 860 x->km.state = XFRM_STATE_ACQ;
861 list_add_tail(&x->all, &xfrm_state_all);
859 hlist_add_head(&x->bydst, xfrm_state_bydst+h); 862 hlist_add_head(&x->bydst, xfrm_state_bydst+h);
860 h = xfrm_src_hash(daddr, saddr, family); 863 h = xfrm_src_hash(daddr, saddr, family);
861 hlist_add_head(&x->bysrc, xfrm_state_bysrc+h); 864 hlist_add_head(&x->bysrc, xfrm_state_bysrc+h);
@@ -870,7 +873,7 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
870 xfrm_hash_grow_check(x->bydst.next != NULL); 873 xfrm_hash_grow_check(x->bydst.next != NULL);
871 } else { 874 } else {
872 x->km.state = XFRM_STATE_DEAD; 875 x->km.state = XFRM_STATE_DEAD;
873 xfrm_state_put(x); 876 to_put = x;
874 x = NULL; 877 x = NULL;
875 error = -ESRCH; 878 error = -ESRCH;
876 } 879 }
@@ -881,6 +884,8 @@ out:
881 else 884 else
882 *err = acquire_in_progress ? -EAGAIN : error; 885 *err = acquire_in_progress ? -EAGAIN : error;
883 spin_unlock_bh(&xfrm_state_lock); 886 spin_unlock_bh(&xfrm_state_lock);
887 if (to_put)
888 xfrm_state_put(to_put);
884 return x; 889 return x;
885} 890}
886 891
@@ -1051,6 +1056,7 @@ static struct xfrm_state *__find_acq_core(unsigned short family, u8 mode, u32 re
1051 xfrm_state_hold(x); 1056 xfrm_state_hold(x);
1052 x->timer.expires = jiffies + sysctl_xfrm_acq_expires*HZ; 1057 x->timer.expires = jiffies + sysctl_xfrm_acq_expires*HZ;
1053 add_timer(&x->timer); 1058 add_timer(&x->timer);
1059 list_add_tail(&x->all, &xfrm_state_all);
1054 hlist_add_head(&x->bydst, xfrm_state_bydst+h); 1060 hlist_add_head(&x->bydst, xfrm_state_bydst+h);
1055 h = xfrm_src_hash(daddr, saddr, family); 1061 h = xfrm_src_hash(daddr, saddr, family);
1056 hlist_add_head(&x->bysrc, xfrm_state_bysrc+h); 1062 hlist_add_head(&x->bysrc, xfrm_state_bysrc+h);
@@ -1067,18 +1073,20 @@ static struct xfrm_state *__xfrm_find_acq_byseq(u32 seq);
1067 1073
1068int xfrm_state_add(struct xfrm_state *x) 1074int xfrm_state_add(struct xfrm_state *x)
1069{ 1075{
1070 struct xfrm_state *x1; 1076 struct xfrm_state *x1, *to_put;
1071 int family; 1077 int family;
1072 int err; 1078 int err;
1073 int use_spi = xfrm_id_proto_match(x->id.proto, IPSEC_PROTO_ANY); 1079 int use_spi = xfrm_id_proto_match(x->id.proto, IPSEC_PROTO_ANY);
1074 1080
1075 family = x->props.family; 1081 family = x->props.family;
1076 1082
1083 to_put = NULL;
1084
1077 spin_lock_bh(&xfrm_state_lock); 1085 spin_lock_bh(&xfrm_state_lock);
1078 1086
1079 x1 = __xfrm_state_locate(x, use_spi, family); 1087 x1 = __xfrm_state_locate(x, use_spi, family);
1080 if (x1) { 1088 if (x1) {
1081 xfrm_state_put(x1); 1089 to_put = x1;
1082 x1 = NULL; 1090 x1 = NULL;
1083 err = -EEXIST; 1091 err = -EEXIST;
1084 goto out; 1092 goto out;
@@ -1088,7 +1096,7 @@ int xfrm_state_add(struct xfrm_state *x)
1088 x1 = __xfrm_find_acq_byseq(x->km.seq); 1096 x1 = __xfrm_find_acq_byseq(x->km.seq);
1089 if (x1 && ((x1->id.proto != x->id.proto) || 1097 if (x1 && ((x1->id.proto != x->id.proto) ||
1090 xfrm_addr_cmp(&x1->id.daddr, &x->id.daddr, family))) { 1098 xfrm_addr_cmp(&x1->id.daddr, &x->id.daddr, family))) {
1091 xfrm_state_put(x1); 1099 to_put = x1;
1092 x1 = NULL; 1100 x1 = NULL;
1093 } 1101 }
1094 } 1102 }
@@ -1110,6 +1118,9 @@ out:
1110 xfrm_state_put(x1); 1118 xfrm_state_put(x1);
1111 } 1119 }
1112 1120
1121 if (to_put)
1122 xfrm_state_put(to_put);
1123
1113 return err; 1124 return err;
1114} 1125}
1115EXPORT_SYMBOL(xfrm_state_add); 1126EXPORT_SYMBOL(xfrm_state_add);
@@ -1269,10 +1280,12 @@ EXPORT_SYMBOL(xfrm_state_migrate);
1269 1280
1270int xfrm_state_update(struct xfrm_state *x) 1281int xfrm_state_update(struct xfrm_state *x)
1271{ 1282{
1272 struct xfrm_state *x1; 1283 struct xfrm_state *x1, *to_put;
1273 int err; 1284 int err;
1274 int use_spi = xfrm_id_proto_match(x->id.proto, IPSEC_PROTO_ANY); 1285 int use_spi = xfrm_id_proto_match(x->id.proto, IPSEC_PROTO_ANY);
1275 1286
1287 to_put = NULL;
1288
1276 spin_lock_bh(&xfrm_state_lock); 1289 spin_lock_bh(&xfrm_state_lock);
1277 x1 = __xfrm_state_locate(x, use_spi, x->props.family); 1290 x1 = __xfrm_state_locate(x, use_spi, x->props.family);
1278 1291
@@ -1281,7 +1294,7 @@ int xfrm_state_update(struct xfrm_state *x)
1281 goto out; 1294 goto out;
1282 1295
1283 if (xfrm_state_kern(x1)) { 1296 if (xfrm_state_kern(x1)) {
1284 xfrm_state_put(x1); 1297 to_put = x1;
1285 err = -EEXIST; 1298 err = -EEXIST;
1286 goto out; 1299 goto out;
1287 } 1300 }
@@ -1295,6 +1308,9 @@ int xfrm_state_update(struct xfrm_state *x)
1295out: 1308out:
1296 spin_unlock_bh(&xfrm_state_lock); 1309 spin_unlock_bh(&xfrm_state_lock);
1297 1310
1311 if (to_put)
1312 xfrm_state_put(to_put);
1313
1298 if (err) 1314 if (err)
1299 return err; 1315 return err;
1300 1316
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 36b5eedcdc7..3e1057f885c 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -32,6 +32,7 @@ char *defconfig_file;
32 32
33static int indent = 1; 33static int indent = 1;
34static int valid_stdin = 1; 34static int valid_stdin = 1;
35static int sync_kconfig;
35static int conf_cnt; 36static int conf_cnt;
36static char line[128]; 37static char line[128];
37static struct menu *rootEntry; 38static struct menu *rootEntry;
@@ -65,7 +66,7 @@ static void strip(char *str)
65 66
66static void check_stdin(void) 67static void check_stdin(void)
67{ 68{
68 if (!valid_stdin && input_mode == ask_silent) { 69 if (!valid_stdin) {
69 printf(_("aborted!\n\n")); 70 printf(_("aborted!\n\n"));
70 printf(_("Console input/output is redirected. ")); 71 printf(_("Console input/output is redirected. "));
71 printf(_("Run 'make oldconfig' to update configuration.\n\n")); 72 printf(_("Run 'make oldconfig' to update configuration.\n\n"));
@@ -427,43 +428,6 @@ static void check_conf(struct menu *menu)
427 check_conf(child); 428 check_conf(child);
428} 429}
429 430
430static void conf_do_update(void)
431{
432 /* Update until a loop caused no more changes */
433 do {
434 conf_cnt = 0;
435 check_conf(&rootmenu);
436 } while (conf_cnt);
437}
438
439static int conf_silent_update(void)
440{
441 const char *name;
442
443 if (conf_get_changed()) {
444 name = getenv("KCONFIG_NOSILENTUPDATE");
445 if (name && *name) {
446 fprintf(stderr,
447 _("\n*** Kernel configuration requires explicit update.\n\n"));
448 return 1;
449 }
450 conf_do_update();
451 }
452 return 0;
453}
454
455static int conf_update(void)
456{
457 rootEntry = &rootmenu;
458 conf(&rootmenu);
459 if (input_mode == ask_all) {
460 input_mode = ask_silent;
461 valid_stdin = 1;
462 }
463 conf_do_update();
464 return 0;
465}
466
467int main(int ac, char **av) 431int main(int ac, char **av)
468{ 432{
469 int opt; 433 int opt;
@@ -477,11 +441,11 @@ int main(int ac, char **av)
477 while ((opt = getopt(ac, av, "osdD:nmyrh")) != -1) { 441 while ((opt = getopt(ac, av, "osdD:nmyrh")) != -1) {
478 switch (opt) { 442 switch (opt) {
479 case 'o': 443 case 'o':
480 input_mode = ask_new; 444 input_mode = ask_silent;
481 break; 445 break;
482 case 's': 446 case 's':
483 input_mode = ask_silent; 447 input_mode = ask_silent;
484 valid_stdin = isatty(0) && isatty(1) && isatty(2); 448 sync_kconfig = 1;
485 break; 449 break;
486 case 'd': 450 case 'd':
487 input_mode = set_default; 451 input_mode = set_default;
@@ -519,6 +483,19 @@ int main(int ac, char **av)
519 name = av[optind]; 483 name = av[optind];
520 conf_parse(name); 484 conf_parse(name);
521 //zconfdump(stdout); 485 //zconfdump(stdout);
486 if (sync_kconfig) {
487 if (stat(".config", &tmpstat)) {
488 fprintf(stderr, _("***\n"
489 "*** You have not yet configured your kernel!\n"
490 "*** (missing kernel .config file)\n"
491 "***\n"
492 "*** Please run some configurator (e.g. \"make oldconfig\" or\n"
493 "*** \"make menuconfig\" or \"make xconfig\").\n"
494 "***\n"));
495 exit(1);
496 }
497 }
498
522 switch (input_mode) { 499 switch (input_mode) {
523 case set_default: 500 case set_default:
524 if (!defconfig_file) 501 if (!defconfig_file)
@@ -531,16 +508,6 @@ int main(int ac, char **av)
531 } 508 }
532 break; 509 break;
533 case ask_silent: 510 case ask_silent:
534 if (stat(".config", &tmpstat)) {
535 printf(_("***\n"
536 "*** You have not yet configured your kernel!\n"
537 "*** (missing kernel .config file)\n"
538 "***\n"
539 "*** Please run some configurator (e.g. \"make oldconfig\" or\n"
540 "*** \"make menuconfig\" or \"make xconfig\").\n"
541 "***\n"));
542 exit(1);
543 }
544 case ask_all: 511 case ask_all:
545 case ask_new: 512 case ask_new:
546 conf_read(NULL); 513 conf_read(NULL);
@@ -569,6 +536,19 @@ int main(int ac, char **av)
569 default: 536 default:
570 break; 537 break;
571 } 538 }
539
540 if (sync_kconfig) {
541 if (conf_get_changed()) {
542 name = getenv("KCONFIG_NOSILENTUPDATE");
543 if (name && *name) {
544 fprintf(stderr,
545 _("\n*** Kernel configuration requires explicit update.\n\n"));
546 return 1;
547 }
548 }
549 valid_stdin = isatty(0) && isatty(1) && isatty(2);
550 }
551
572 switch (input_mode) { 552 switch (input_mode) {
573 case set_no: 553 case set_no:
574 conf_set_all_new_symbols(def_no); 554 conf_set_all_new_symbols(def_no);
@@ -585,27 +565,38 @@ int main(int ac, char **av)
585 case set_default: 565 case set_default:
586 conf_set_all_new_symbols(def_default); 566 conf_set_all_new_symbols(def_default);
587 break; 567 break;
588 case ask_silent:
589 case ask_new: 568 case ask_new:
590 if (conf_silent_update())
591 exit(1);
592 break;
593 case ask_all: 569 case ask_all:
594 if (conf_update()) 570 rootEntry = &rootmenu;
595 exit(1); 571 conf(&rootmenu);
572 input_mode = ask_silent;
573 /* fall through */
574 case ask_silent:
575 /* Update until a loop caused no more changes */
576 do {
577 conf_cnt = 0;
578 check_conf(&rootmenu);
579 } while (conf_cnt);
596 break; 580 break;
597 } 581 }
598 582
599 if (conf_write(NULL)) { 583 if (sync_kconfig) {
600 fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); 584 /* silentoldconfig is used during the build so we shall update autoconf.
601 exit(1); 585 * All other commands are only used to generate a config.
602 } 586 */
603 /* ask_silent is used during the build so we shall update autoconf. 587 if (conf_get_changed() && conf_write(NULL)) {
604 * All other commands are only used to generate a config. 588 fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
605 */ 589 exit(1);
606 if (input_mode == ask_silent && conf_write_autoconf()) { 590 }
607 fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); 591 if (conf_write_autoconf()) {
608 return 1; 592 fprintf(stderr, _("\n*** Error during update of the kernel configuration.\n\n"));
593 return 1;
594 }
595 } else {
596 if (conf_write(NULL)) {
597 fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n"));
598 exit(1);
599 }
609 } 600 }
610 return 0; 601 return 0;
611} 602}
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index df6a188b993..b91cf241a53 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -222,8 +222,10 @@ load:
222 continue; 222 continue;
223 if (def == S_DEF_USER) { 223 if (def == S_DEF_USER) {
224 sym = sym_find(line + 9); 224 sym = sym_find(line + 9);
225 if (!sym) 225 if (!sym) {
226 sym_add_change_count(1);
226 break; 227 break;
228 }
227 } else { 229 } else {
228 sym = sym_lookup(line + 9, 0); 230 sym = sym_lookup(line + 9, 0);
229 if (sym->type == S_UNKNOWN) 231 if (sym->type == S_UNKNOWN)
@@ -259,8 +261,10 @@ load:
259 } 261 }
260 if (def == S_DEF_USER) { 262 if (def == S_DEF_USER) {
261 sym = sym_find(line + 7); 263 sym = sym_find(line + 7);
262 if (!sym) 264 if (!sym) {
265 sym_add_change_count(1);
263 break; 266 break;
267 }
264 } else { 268 } else {
265 sym = sym_lookup(line + 7, 0); 269 sym = sym_lookup(line + 7, 0);
266 if (sym->type == S_UNKNOWN) 270 if (sym->type == S_UNKNOWN)
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index ff787e6ff8e..44ee94d2ab7 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -781,6 +781,7 @@ sub output_struct_xml(%) {
781 print " <refsect1>\n"; 781 print " <refsect1>\n";
782 print " <title>Members</title>\n"; 782 print " <title>Members</title>\n";
783 783
784 if ($#{$args{'parameterlist'}} >= 0) {
784 print " <variablelist>\n"; 785 print " <variablelist>\n";
785 foreach $parameter (@{$args{'parameterlist'}}) { 786 foreach $parameter (@{$args{'parameterlist'}}) {
786 ($parameter =~ /^#/) && next; 787 ($parameter =~ /^#/) && next;
@@ -798,6 +799,9 @@ sub output_struct_xml(%) {
798 print " </varlistentry>\n"; 799 print " </varlistentry>\n";
799 } 800 }
800 print " </variablelist>\n"; 801 print " </variablelist>\n";
802 } else {
803 print " <para>\n None\n </para>\n";
804 }
801 print " </refsect1>\n"; 805 print " </refsect1>\n";
802 806
803 output_section_xml(@_); 807 output_section_xml(@_);
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index 4fa1f3ad251..4c9890ec252 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -344,14 +344,20 @@ static void do_pnp_device_entry(void *symval, unsigned long size,
344 struct module *mod) 344 struct module *mod)
345{ 345{
346 const unsigned long id_size = sizeof(struct pnp_device_id); 346 const unsigned long id_size = sizeof(struct pnp_device_id);
347 const struct pnp_device_id *id = symval; 347 const unsigned int count = (size / id_size)-1;
348 const struct pnp_device_id *devs = symval;
349 unsigned int i;
348 350
349 device_id_check(mod->name, "pnp", size, id_size, symval); 351 device_id_check(mod->name, "pnp", size, id_size, symval);
350 352
351 buf_printf(&mod->dev_table_buf, 353 for (i = 0; i < count; i++) {
352 "MODULE_ALIAS(\"pnp:d%s*\");\n", id->id); 354 const char *id = (char *)devs[i].id;
353 buf_printf(&mod->dev_table_buf, 355
354 "MODULE_ALIAS(\"acpi*:%s:*\");\n", id->id); 356 buf_printf(&mod->dev_table_buf,
357 "MODULE_ALIAS(\"pnp:d%s*\");\n", id);
358 buf_printf(&mod->dev_table_buf,
359 "MODULE_ALIAS(\"acpi*:%s:*\");\n", id);
360 }
355} 361}
356 362
357/* looks like: "pnp:dD" for every device of the card */ 363/* looks like: "pnp:dD" for every device of the card */
diff --git a/security/device_cgroup.c b/security/device_cgroup.c
index 7bd296cca04..46f23971f7e 100644
--- a/security/device_cgroup.c
+++ b/security/device_cgroup.c
@@ -508,12 +508,11 @@ int devcgroup_inode_permission(struct inode *inode, int mask)
508 return 0; 508 return 0;
509 if (!S_ISBLK(inode->i_mode) && !S_ISCHR(inode->i_mode)) 509 if (!S_ISBLK(inode->i_mode) && !S_ISCHR(inode->i_mode))
510 return 0; 510 return 0;
511 dev_cgroup = css_to_devcgroup(task_subsys_state(current,
512 devices_subsys_id));
513 if (!dev_cgroup)
514 return 0;
515 511
516 rcu_read_lock(); 512 rcu_read_lock();
513
514 dev_cgroup = task_devcgroup(current);
515
517 list_for_each_entry_rcu(wh, &dev_cgroup->whitelist, list) { 516 list_for_each_entry_rcu(wh, &dev_cgroup->whitelist, list) {
518 if (wh->type & DEV_ALL) 517 if (wh->type & DEV_ALL)
519 goto acc_check; 518 goto acc_check;
@@ -533,6 +532,7 @@ acc_check:
533 rcu_read_unlock(); 532 rcu_read_unlock();
534 return 0; 533 return 0;
535 } 534 }
535
536 rcu_read_unlock(); 536 rcu_read_unlock();
537 537
538 return -EPERM; 538 return -EPERM;
@@ -543,12 +543,10 @@ int devcgroup_inode_mknod(int mode, dev_t dev)
543 struct dev_cgroup *dev_cgroup; 543 struct dev_cgroup *dev_cgroup;
544 struct dev_whitelist_item *wh; 544 struct dev_whitelist_item *wh;
545 545
546 dev_cgroup = css_to_devcgroup(task_subsys_state(current,
547 devices_subsys_id));
548 if (!dev_cgroup)
549 return 0;
550
551 rcu_read_lock(); 546 rcu_read_lock();
547
548 dev_cgroup = task_devcgroup(current);
549
552 list_for_each_entry(wh, &dev_cgroup->whitelist, list) { 550 list_for_each_entry(wh, &dev_cgroup->whitelist, list) {
553 if (wh->type & DEV_ALL) 551 if (wh->type & DEV_ALL)
554 goto acc_check; 552 goto acc_check;
@@ -566,6 +564,8 @@ acc_check:
566 rcu_read_unlock(); 564 rcu_read_unlock();
567 return 0; 565 return 0;
568 } 566 }
567
569 rcu_read_unlock(); 568 rcu_read_unlock();
569
570 return -EPERM; 570 return -EPERM;
571} 571}
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
index b52f923ce68..8551952ef32 100644
--- a/security/selinux/ss/services.c
+++ b/security/selinux/ss/services.c
@@ -811,11 +811,12 @@ static int string_to_context_struct(struct policydb *pol,
811 /* Check the validity of the new context. */ 811 /* Check the validity of the new context. */
812 if (!policydb_context_isvalid(pol, ctx)) { 812 if (!policydb_context_isvalid(pol, ctx)) {
813 rc = -EINVAL; 813 rc = -EINVAL;
814 context_destroy(ctx);
815 goto out; 814 goto out;
816 } 815 }
817 rc = 0; 816 rc = 0;
818out: 817out:
818 if (rc)
819 context_destroy(ctx);
819 return rc; 820 return rc;
820} 821}
821 822
@@ -868,8 +869,7 @@ static int security_context_to_sid_core(const char *scontext, u32 scontext_len,
868 } else if (rc) 869 } else if (rc)
869 goto out; 870 goto out;
870 rc = sidtab_context_to_sid(&sidtab, &context, sid); 871 rc = sidtab_context_to_sid(&sidtab, &context, sid);
871 if (rc) 872 context_destroy(&context);
872 context_destroy(&context);
873out: 873out:
874 read_unlock(&policy_rwlock); 874 read_unlock(&policy_rwlock);
875 kfree(scontext2); 875 kfree(scontext2);
@@ -2737,6 +2737,7 @@ int security_netlbl_secattr_to_sid(struct netlbl_lsm_secattr *secattr,
2737 if (ctx == NULL) 2737 if (ctx == NULL)
2738 goto netlbl_secattr_to_sid_return; 2738 goto netlbl_secattr_to_sid_return;
2739 2739
2740 context_init(&ctx_new);
2740 ctx_new.user = ctx->user; 2741 ctx_new.user = ctx->user;
2741 ctx_new.role = ctx->role; 2742 ctx_new.role = ctx->role;
2742 ctx_new.type = ctx->type; 2743 ctx_new.type = ctx->type;
@@ -2745,13 +2746,9 @@ int security_netlbl_secattr_to_sid(struct netlbl_lsm_secattr *secattr,
2745 if (ebitmap_netlbl_import(&ctx_new.range.level[0].cat, 2746 if (ebitmap_netlbl_import(&ctx_new.range.level[0].cat,
2746 secattr->attr.mls.cat) != 0) 2747 secattr->attr.mls.cat) != 0)
2747 goto netlbl_secattr_to_sid_return; 2748 goto netlbl_secattr_to_sid_return;
2748 ctx_new.range.level[1].cat.highbit = 2749 memcpy(&ctx_new.range.level[1].cat,
2749 ctx_new.range.level[0].cat.highbit; 2750 &ctx_new.range.level[0].cat,
2750 ctx_new.range.level[1].cat.node = 2751 sizeof(ctx_new.range.level[0].cat));
2751 ctx_new.range.level[0].cat.node;
2752 } else {
2753 ebitmap_init(&ctx_new.range.level[0].cat);
2754 ebitmap_init(&ctx_new.range.level[1].cat);
2755 } 2752 }
2756 if (mls_context_isvalid(&policydb, &ctx_new) != 1) 2753 if (mls_context_isvalid(&policydb, &ctx_new) != 1)
2757 goto netlbl_secattr_to_sid_return_cleanup; 2754 goto netlbl_secattr_to_sid_return_cleanup;
diff --git a/sound/Kconfig b/sound/Kconfig
index a37bee094eb..8ebf512ced6 100644
--- a/sound/Kconfig
+++ b/sound/Kconfig
@@ -91,6 +91,9 @@ endif # SOUND_PRIME
91 91
92endif # !M68K 92endif # !M68K
93 93
94endif # SOUND
95
96# AC97_BUS is used from both sound and ucb1400
94config AC97_BUS 97config AC97_BUS
95 tristate 98 tristate
96 help 99 help
@@ -99,4 +102,3 @@ config AC97_BUS
99 sound although they're sharing the AC97 bus. Concerned drivers 102 sound although they're sharing the AC97 bus. Concerned drivers
100 should "select" this. 103 should "select" this.
101 104
102endif # SOUND
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index 9dd9bc73fe1..ece25c718e9 100644
--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -781,7 +781,7 @@ int snd_pcm_attach_substream(struct snd_pcm *pcm, int stream,
781 return -ENODEV; 781 return -ENODEV;
782 782
783 card = pcm->card; 783 card = pcm->card;
784 down_read(&card->controls_rwsem); 784 read_lock(&card->ctl_files_rwlock);
785 list_for_each_entry(kctl, &card->ctl_files, list) { 785 list_for_each_entry(kctl, &card->ctl_files, list) {
786 if (kctl->pid == current->pid) { 786 if (kctl->pid == current->pid) {
787 prefer_subdevice = kctl->prefer_pcm_subdevice; 787 prefer_subdevice = kctl->prefer_pcm_subdevice;
@@ -789,7 +789,7 @@ int snd_pcm_attach_substream(struct snd_pcm *pcm, int stream,
789 break; 789 break;
790 } 790 }
791 } 791 }
792 up_read(&card->controls_rwsem); 792 read_unlock(&card->ctl_files_rwlock);
793 793
794 switch (stream) { 794 switch (stream) {
795 case SNDRV_PCM_STREAM_PLAYBACK: 795 case SNDRV_PCM_STREAM_PLAYBACK:
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index c49b9d9e303..c487025d345 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -1546,16 +1546,10 @@ static int snd_pcm_drop(struct snd_pcm_substream *substream)
1546 card = substream->pcm->card; 1546 card = substream->pcm->card;
1547 1547
1548 if (runtime->status->state == SNDRV_PCM_STATE_OPEN || 1548 if (runtime->status->state == SNDRV_PCM_STATE_OPEN ||
1549 runtime->status->state == SNDRV_PCM_STATE_DISCONNECTED) 1549 runtime->status->state == SNDRV_PCM_STATE_DISCONNECTED ||
1550 runtime->status->state == SNDRV_PCM_STATE_SUSPENDED)
1550 return -EBADFD; 1551 return -EBADFD;
1551 1552
1552 snd_power_lock(card);
1553 if (runtime->status->state == SNDRV_PCM_STATE_SUSPENDED) {
1554 result = snd_power_wait(card, SNDRV_CTL_POWER_D0);
1555 if (result < 0)
1556 goto _unlock;
1557 }
1558
1559 snd_pcm_stream_lock_irq(substream); 1553 snd_pcm_stream_lock_irq(substream);
1560 /* resume pause */ 1554 /* resume pause */
1561 if (runtime->status->state == SNDRV_PCM_STATE_PAUSED) 1555 if (runtime->status->state == SNDRV_PCM_STATE_PAUSED)
@@ -1564,8 +1558,7 @@ static int snd_pcm_drop(struct snd_pcm_substream *substream)
1564 snd_pcm_stop(substream, SNDRV_PCM_STATE_SETUP); 1558 snd_pcm_stop(substream, SNDRV_PCM_STATE_SETUP);
1565 /* runtime->control->appl_ptr = runtime->status->hw_ptr; */ 1559 /* runtime->control->appl_ptr = runtime->status->hw_ptr; */
1566 snd_pcm_stream_unlock_irq(substream); 1560 snd_pcm_stream_unlock_irq(substream);
1567 _unlock: 1561
1568 snd_power_unlock(card);
1569 return result; 1562 return result;
1570} 1563}
1571 1564
diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c
index f7ea7287c59..b917a9f981c 100644
--- a/sound/core/rawmidi.c
+++ b/sound/core/rawmidi.c
@@ -418,7 +418,7 @@ static int snd_rawmidi_open(struct inode *inode, struct file *file)
418 mutex_lock(&rmidi->open_mutex); 418 mutex_lock(&rmidi->open_mutex);
419 while (1) { 419 while (1) {
420 subdevice = -1; 420 subdevice = -1;
421 down_read(&card->controls_rwsem); 421 read_lock(&card->ctl_files_rwlock);
422 list_for_each_entry(kctl, &card->ctl_files, list) { 422 list_for_each_entry(kctl, &card->ctl_files, list) {
423 if (kctl->pid == current->pid) { 423 if (kctl->pid == current->pid) {
424 subdevice = kctl->prefer_rawmidi_subdevice; 424 subdevice = kctl->prefer_rawmidi_subdevice;
@@ -426,7 +426,7 @@ static int snd_rawmidi_open(struct inode *inode, struct file *file)
426 break; 426 break;
427 } 427 }
428 } 428 }
429 up_read(&card->controls_rwsem); 429 read_unlock(&card->ctl_files_rwlock);
430 err = snd_rawmidi_kernel_open(rmidi->card, rmidi->device, 430 err = snd_rawmidi_kernel_open(rmidi->card, rmidi->device,
431 subdevice, fflags, rawmidi_file); 431 subdevice, fflags, rawmidi_file);
432 if (err >= 0) 432 if (err >= 0)
diff --git a/sound/mips/au1x00.c b/sound/mips/au1x00.c
index ee0741f9eb5..fbef38a9604 100644
--- a/sound/mips/au1x00.c
+++ b/sound/mips/au1x00.c
@@ -38,7 +38,6 @@
38#include <linux/interrupt.h> 38#include <linux/interrupt.h>
39#include <linux/init.h> 39#include <linux/init.h>
40#include <linux/slab.h> 40#include <linux/slab.h>
41#include <linux/version.h>
42#include <sound/core.h> 41#include <sound/core.h>
43#include <sound/initval.h> 42#include <sound/initval.h>
44#include <sound/pcm.h> 43#include <sound/pcm.h>
diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c
index 2f8b28add27..6abe8a3bd36 100644
--- a/sound/pci/ca0106/ca0106_main.c
+++ b/sound/pci/ca0106/ca0106_main.c
@@ -249,11 +249,12 @@ static struct snd_ca0106_details ca0106_chip_details[] = {
249 .name = "MSI K8N Diamond MB [SB0438]", 249 .name = "MSI K8N Diamond MB [SB0438]",
250 .gpio_type = 2, 250 .gpio_type = 2,
251 .i2c_adc = 1 } , 251 .i2c_adc = 1 } ,
252 /* Another MSI K8N Diamond MB, which has apprently a different SSID */ 252 /* MSI K8N Diamond PLUS MB */
253 { .serial = 0x10091102, 253 { .serial = 0x10091102,
254 .name = "MSI K8N Diamond MB", 254 .name = "MSI K8N Diamond MB",
255 .gpio_type = 2, 255 .gpio_type = 2,
256 .i2c_adc = 1 } , 256 .i2c_adc = 1,
257 .spi_dac = 2 },
257 /* Shuttle XPC SD31P which has an onboard Creative Labs 258 /* Shuttle XPC SD31P which has an onboard Creative Labs
258 * Sound Blaster Live! 24-bit EAX 259 * Sound Blaster Live! 24-bit EAX
259 * high-definition 7.1 audio processor". 260 * high-definition 7.1 audio processor".
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index a73d6ca0a90..1c53e337ecb 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -278,6 +278,9 @@ enum {
278/* Defines for Nvidia HDA support */ 278/* Defines for Nvidia HDA support */
279#define NVIDIA_HDA_TRANSREG_ADDR 0x4e 279#define NVIDIA_HDA_TRANSREG_ADDR 0x4e
280#define NVIDIA_HDA_ENABLE_COHBITS 0x0f 280#define NVIDIA_HDA_ENABLE_COHBITS 0x0f
281#define NVIDIA_HDA_ISTRM_COH 0x4d
282#define NVIDIA_HDA_OSTRM_COH 0x4c
283#define NVIDIA_HDA_ENABLE_COHBIT 0x01
281 284
282/* Defines for Intel SCH HDA snoop control */ 285/* Defines for Intel SCH HDA snoop control */
283#define INTEL_SCH_HDA_DEVC 0x78 286#define INTEL_SCH_HDA_DEVC 0x78
@@ -900,6 +903,12 @@ static void azx_init_pci(struct azx *chip)
900 update_pci_byte(chip->pci, 903 update_pci_byte(chip->pci,
901 NVIDIA_HDA_TRANSREG_ADDR, 904 NVIDIA_HDA_TRANSREG_ADDR,
902 0x0f, NVIDIA_HDA_ENABLE_COHBITS); 905 0x0f, NVIDIA_HDA_ENABLE_COHBITS);
906 update_pci_byte(chip->pci,
907 NVIDIA_HDA_ISTRM_COH,
908 0x01, NVIDIA_HDA_ENABLE_COHBIT);
909 update_pci_byte(chip->pci,
910 NVIDIA_HDA_OSTRM_COH,
911 0x01, NVIDIA_HDA_ENABLE_COHBIT);
903 break; 912 break;
904 case AZX_DRIVER_SCH: 913 case AZX_DRIVER_SCH:
905 pci_read_config_word(chip->pci, INTEL_SCH_HDA_DEVC, &snoop); 914 pci_read_config_word(chip->pci, INTEL_SCH_HDA_DEVC, &snoop);
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index b80e725432f..66025161bd6 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -952,7 +952,7 @@ do_sku:
952 tmp | 0x2010); 952 tmp | 0x2010);
953 break; 953 break;
954 case 0x10ec0888: 954 case 0x10ec0888:
955 alc888_coef_init(codec); 955 /*alc888_coef_init(codec);*/ /* called in alc_init() */
956 break; 956 break;
957 case 0x10ec0267: 957 case 0x10ec0267:
958 case 0x10ec0268: 958 case 0x10ec0268:
@@ -2439,6 +2439,8 @@ static int alc_init(struct hda_codec *codec)
2439 unsigned int i; 2439 unsigned int i;
2440 2440
2441 alc_fix_pll(codec); 2441 alc_fix_pll(codec);
2442 if (codec->vendor_id == 0x10ec0888)
2443 alc888_coef_init(codec);
2442 2444
2443 for (i = 0; i < spec->num_init_verbs; i++) 2445 for (i = 0; i < spec->num_init_verbs; i++)
2444 snd_hda_sequence_write(codec, spec->init_verbs[i]); 2446 snd_hda_sequence_write(codec, spec->init_verbs[i]);
@@ -6195,7 +6197,6 @@ static struct snd_pci_quirk alc882_cfg_tbl[] = {
6195 SND_PCI_QUIRK(0x1043, 0x817f, "Asus P5LD2", ALC882_6ST_DIG), 6197 SND_PCI_QUIRK(0x1043, 0x817f, "Asus P5LD2", ALC882_6ST_DIG),
6196 SND_PCI_QUIRK(0x1043, 0x81d8, "Asus P5WD", ALC882_6ST_DIG), 6198 SND_PCI_QUIRK(0x1043, 0x81d8, "Asus P5WD", ALC882_6ST_DIG),
6197 SND_PCI_QUIRK(0x105b, 0x6668, "Foxconn", ALC882_6ST_DIG), 6199 SND_PCI_QUIRK(0x105b, 0x6668, "Foxconn", ALC882_6ST_DIG),
6198 SND_PCI_QUIRK(0x106b, 0x00a0, "Apple iMac 24''", ALC885_IMAC24),
6199 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte P35 DS3R", ALC882_6ST_DIG), 6200 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte P35 DS3R", ALC882_6ST_DIG),
6200 SND_PCI_QUIRK(0x1462, 0x28fb, "Targa T8", ALC882_TARGA), /* MSI-1049 T8 */ 6201 SND_PCI_QUIRK(0x1462, 0x28fb, "Targa T8", ALC882_TARGA), /* MSI-1049 T8 */
6201 SND_PCI_QUIRK(0x1462, 0x6668, "MSI", ALC882_6ST_DIG), 6202 SND_PCI_QUIRK(0x1462, 0x6668, "MSI", ALC882_6ST_DIG),
@@ -8426,8 +8427,6 @@ static int patch_alc883(struct hda_codec *codec)
8426 codec->patch_ops = alc_patch_ops; 8427 codec->patch_ops = alc_patch_ops;
8427 if (board_config == ALC883_AUTO) 8428 if (board_config == ALC883_AUTO)
8428 spec->init_hook = alc883_auto_init; 8429 spec->init_hook = alc883_auto_init;
8429 else if (codec->vendor_id == 0x10ec0888)
8430 spec->init_hook = alc888_coef_init;
8431 8430
8432#ifdef CONFIG_SND_HDA_POWER_SAVE 8431#ifdef CONFIG_SND_HDA_POWER_SAVE
8433 if (!spec->loopback.amplist) 8432 if (!spec->loopback.amplist)
@@ -14067,6 +14066,13 @@ static struct hda_verb alc662_auto_init_verbs[] = {
14067 { } 14066 { }
14068}; 14067};
14069 14068
14069/* additional verbs for ALC663 */
14070static struct hda_verb alc663_auto_init_verbs[] = {
14071 {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
14072 {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
14073 { }
14074};
14075
14070static struct hda_verb alc663_m51va_init_verbs[] = { 14076static struct hda_verb alc663_m51va_init_verbs[] = {
14071 {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, 14077 {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
14072 {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, 14078 {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
@@ -14595,6 +14601,14 @@ static int alc662_auto_create_extra_out(struct alc_spec *spec, hda_nid_t pin,
14595 if (!pin) 14601 if (!pin)
14596 return 0; 14602 return 0;
14597 14603
14604 if (pin == 0x17) {
14605 /* ALC663 has a mono output pin on 0x17 */
14606 sprintf(name, "%s Playback Switch", pfx);
14607 err = add_control(spec, ALC_CTL_WIDGET_MUTE, name,
14608 HDA_COMPOSE_AMP_VAL(pin, 2, 0, HDA_OUTPUT));
14609 return err;
14610 }
14611
14598 if (alc880_is_fixed_pin(pin)) { 14612 if (alc880_is_fixed_pin(pin)) {
14599 nid = alc880_idx_to_dac(alc880_fixed_pin_idx(pin)); 14613 nid = alc880_idx_to_dac(alc880_fixed_pin_idx(pin));
14600 /* printk("DAC nid=%x\n",nid); */ 14614 /* printk("DAC nid=%x\n",nid); */
@@ -14765,6 +14779,14 @@ static int alc662_parse_auto_config(struct hda_codec *codec)
14765 spec->input_mux = &spec->private_imux; 14779 spec->input_mux = &spec->private_imux;
14766 14780
14767 spec->init_verbs[spec->num_init_verbs++] = alc662_auto_init_verbs; 14781 spec->init_verbs[spec->num_init_verbs++] = alc662_auto_init_verbs;
14782 if (codec->vendor_id == 0x10ec0663)
14783 spec->init_verbs[spec->num_init_verbs++] =
14784 alc663_auto_init_verbs;
14785
14786 err = alc_auto_add_mic_boost(codec);
14787 if (err < 0)
14788 return err;
14789
14768 spec->mixers[spec->num_mixers] = alc662_capture_mixer; 14790 spec->mixers[spec->num_mixers] = alc662_capture_mixer;
14769 spec->num_mixers++; 14791 spec->num_mixers++;
14770 return 1; 14792 return 1;
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 7fdafcb0015..f3da621f25c 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -560,8 +560,9 @@ static struct hda_verb dell_eq_core_init[] = {
560}; 560};
561 561
562static struct hda_verb dell_m6_core_init[] = { 562static struct hda_verb dell_m6_core_init[] = {
563 /* set master volume and direct control */ 563 /* set master volume to max value without distortion
564 { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff}, 564 * and direct control */
565 { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xec},
565 /* setup audio connections */ 566 /* setup audio connections */
566 { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, 567 { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00},
567 { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01}, 568 { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01},
@@ -1682,8 +1683,8 @@ static struct snd_pci_quirk stac927x_cfg_tbl[] = {
1682 /* Dell 3 stack systems with verb table in BIOS */ 1683 /* Dell 3 stack systems with verb table in BIOS */
1683 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f3, "Dell Inspiron 1420", STAC_DELL_BIOS), 1684 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f3, "Dell Inspiron 1420", STAC_DELL_BIOS),
1684 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0227, "Dell Vostro 1400 ", STAC_DELL_BIOS), 1685 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0227, "Dell Vostro 1400 ", STAC_DELL_BIOS),
1685 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x022f, "Dell ", STAC_DELL_BIOS),
1686 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x022e, "Dell ", STAC_DELL_BIOS), 1686 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x022e, "Dell ", STAC_DELL_BIOS),
1687 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x022f, "Dell Inspiron 1525", STAC_DELL_3ST),
1687 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0242, "Dell ", STAC_DELL_BIOS), 1688 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0242, "Dell ", STAC_DELL_BIOS),
1688 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0243, "Dell ", STAC_DELL_BIOS), 1689 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0243, "Dell ", STAC_DELL_BIOS),
1689 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02ff, "Dell ", STAC_DELL_BIOS), 1690 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02ff, "Dell ", STAC_DELL_BIOS),
diff --git a/sound/pci/oxygen/hifier.c b/sound/pci/oxygen/hifier.c
index 7442460583d..dad393ae040 100644
--- a/sound/pci/oxygen/hifier.c
+++ b/sound/pci/oxygen/hifier.c
@@ -17,6 +17,7 @@
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 18 */
19 19
20#include <linux/delay.h>
20#include <linux/pci.h> 21#include <linux/pci.h>
21#include <sound/control.h> 22#include <sound/control.h>
22#include <sound/core.h> 23#include <sound/core.h>
@@ -107,6 +108,9 @@ static void set_ak4396_params(struct oxygen *chip,
107 else 108 else
108 value |= AK4396_DFS_QUAD; 109 value |= AK4396_DFS_QUAD;
109 data->ak4396_ctl2 = value; 110 data->ak4396_ctl2 = value;
111
112 msleep(1); /* wait for the new MCLK to become stable */
113
110 ak4396_write(chip, AK4396_CONTROL_1, AK4396_DIF_24_MSB); 114 ak4396_write(chip, AK4396_CONTROL_1, AK4396_DIF_24_MSB);
111 ak4396_write(chip, AK4396_CONTROL_2, value); 115 ak4396_write(chip, AK4396_CONTROL_2, value);
112 ak4396_write(chip, AK4396_CONTROL_1, AK4396_DIF_24_MSB | AK4396_RSTN); 116 ak4396_write(chip, AK4396_CONTROL_1, AK4396_DIF_24_MSB | AK4396_RSTN);
diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c
index 7c8ae31eb46..c5829d30ef8 100644
--- a/sound/pci/oxygen/oxygen.c
+++ b/sound/pci/oxygen/oxygen.c
@@ -28,6 +28,7 @@
28 * GPIO 1 -> DFS1 of AK5385 28 * GPIO 1 -> DFS1 of AK5385
29 */ 29 */
30 30
31#include <linux/delay.h>
31#include <linux/mutex.h> 32#include <linux/mutex.h>
32#include <linux/pci.h> 33#include <linux/pci.h>
33#include <sound/ac97_codec.h> 34#include <sound/ac97_codec.h>
@@ -213,6 +214,9 @@ static void set_ak4396_params(struct oxygen *chip,
213 else 214 else
214 value |= AK4396_DFS_QUAD; 215 value |= AK4396_DFS_QUAD;
215 data->ak4396_ctl2 = value; 216 data->ak4396_ctl2 = value;
217
218 msleep(1); /* wait for the new MCLK to become stable */
219
216 for (i = 0; i < 4; ++i) { 220 for (i = 0; i < 4; ++i) {
217 ak4396_write(chip, i, 221 ak4396_write(chip, i,
218 AK4396_CONTROL_1, AK4396_DIF_24_MSB); 222 AK4396_CONTROL_1, AK4396_DIF_24_MSB);
diff --git a/sound/pci/oxygen/oxygen_mixer.c b/sound/pci/oxygen/oxygen_mixer.c
index 6facac5aed9..05eb8994c14 100644
--- a/sound/pci/oxygen/oxygen_mixer.c
+++ b/sound/pci/oxygen/oxygen_mixer.c
@@ -512,9 +512,12 @@ static int ac97_switch_get(struct snd_kcontrol *ctl,
512 512
513static void mute_ac97_ctl(struct oxygen *chip, unsigned int control) 513static void mute_ac97_ctl(struct oxygen *chip, unsigned int control)
514{ 514{
515 unsigned int priv_idx = chip->controls[control]->private_value & 0xff; 515 unsigned int priv_idx;
516 u16 value; 516 u16 value;
517 517
518 if (!chip->controls[control])
519 return;
520 priv_idx = chip->controls[control]->private_value & 0xff;
518 value = oxygen_read_ac97(chip, 0, priv_idx); 521 value = oxygen_read_ac97(chip, 0, priv_idx);
519 if (!(value & 0x8000)) { 522 if (!(value & 0x8000)) {
520 oxygen_write_ac97(chip, 0, priv_idx, value | 0x8000); 523 oxygen_write_ac97(chip, 0, priv_idx, value | 0x8000);
diff --git a/sound/ppc/awacs.c b/sound/ppc/awacs.c
index 566a6d0daf4..106c48225bb 100644
--- a/sound/ppc/awacs.c
+++ b/sound/ppc/awacs.c
@@ -621,6 +621,13 @@ static struct snd_kcontrol_new snd_pmac_screamer_mixers_imac[] __initdata = {
621 AWACS_SWITCH("CD Capture Switch", 0, SHIFT_MUX_CD, 0), 621 AWACS_SWITCH("CD Capture Switch", 0, SHIFT_MUX_CD, 0),
622}; 622};
623 623
624static struct snd_kcontrol_new snd_pmac_screamer_mixers_g4agp[] __initdata = {
625 AWACS_VOLUME("Line out Playback Volume", 2, 6, 1),
626 AWACS_VOLUME("Master Playback Volume", 5, 6, 1),
627 AWACS_SWITCH("CD Capture Switch", 0, SHIFT_MUX_CD, 0),
628 AWACS_SWITCH("Line Capture Switch", 0, SHIFT_MUX_MIC, 0),
629};
630
624static struct snd_kcontrol_new snd_pmac_awacs_mixers_pmac7500[] __initdata = { 631static struct snd_kcontrol_new snd_pmac_awacs_mixers_pmac7500[] __initdata = {
625 AWACS_VOLUME("Line out Playback Volume", 2, 6, 1), 632 AWACS_VOLUME("Line out Playback Volume", 2, 6, 1),
626 AWACS_SWITCH("CD Capture Switch", 0, SHIFT_MUX_CD, 0), 633 AWACS_SWITCH("CD Capture Switch", 0, SHIFT_MUX_CD, 0),
@@ -688,7 +695,10 @@ static struct snd_kcontrol_new snd_pmac_awacs_speaker_vol[] __initdata = {
688static struct snd_kcontrol_new snd_pmac_awacs_speaker_sw __initdata = 695static struct snd_kcontrol_new snd_pmac_awacs_speaker_sw __initdata =
689AWACS_SWITCH("PC Speaker Playback Switch", 1, SHIFT_SPKMUTE, 1); 696AWACS_SWITCH("PC Speaker Playback Switch", 1, SHIFT_SPKMUTE, 1);
690 697
691static struct snd_kcontrol_new snd_pmac_awacs_speaker_sw_imac __initdata = 698static struct snd_kcontrol_new snd_pmac_awacs_speaker_sw_imac1 __initdata =
699AWACS_SWITCH("PC Speaker Playback Switch", 1, SHIFT_PAROUT1, 1);
700
701static struct snd_kcontrol_new snd_pmac_awacs_speaker_sw_imac2 __initdata =
692AWACS_SWITCH("PC Speaker Playback Switch", 1, SHIFT_PAROUT1, 0); 702AWACS_SWITCH("PC Speaker Playback Switch", 1, SHIFT_PAROUT1, 0);
693 703
694 704
@@ -765,11 +775,12 @@ static void snd_pmac_awacs_resume(struct snd_pmac *chip)
765 775
766#define IS_PM7500 (machine_is_compatible("AAPL,7500")) 776#define IS_PM7500 (machine_is_compatible("AAPL,7500"))
767#define IS_BEIGE (machine_is_compatible("AAPL,Gossamer")) 777#define IS_BEIGE (machine_is_compatible("AAPL,Gossamer"))
768#define IS_IMAC (machine_is_compatible("PowerMac2,1") \ 778#define IS_IMAC1 (machine_is_compatible("PowerMac2,1"))
769 || machine_is_compatible("PowerMac2,2") \ 779#define IS_IMAC2 (machine_is_compatible("PowerMac2,2") \
770 || machine_is_compatible("PowerMac4,1")) 780 || machine_is_compatible("PowerMac4,1"))
781#define IS_G4AGP (machine_is_compatible("PowerMac3,1"))
771 782
772static int imac; 783static int imac1, imac2;
773 784
774#ifdef PMAC_SUPPORT_AUTOMUTE 785#ifdef PMAC_SUPPORT_AUTOMUTE
775/* 786/*
@@ -815,13 +826,18 @@ static void snd_pmac_awacs_update_automute(struct snd_pmac *chip, int do_notify)
815 { 826 {
816 int reg = chip->awacs_reg[1] 827 int reg = chip->awacs_reg[1]
817 | (MASK_HDMUTE | MASK_SPKMUTE); 828 | (MASK_HDMUTE | MASK_SPKMUTE);
818 if (imac) { 829 if (imac1) {
830 reg &= ~MASK_SPKMUTE;
831 reg |= MASK_PAROUT1;
832 } else if (imac2) {
819 reg &= ~MASK_SPKMUTE; 833 reg &= ~MASK_SPKMUTE;
820 reg &= ~MASK_PAROUT1; 834 reg &= ~MASK_PAROUT1;
821 } 835 }
822 if (snd_pmac_awacs_detect_headphone(chip)) 836 if (snd_pmac_awacs_detect_headphone(chip))
823 reg &= ~MASK_HDMUTE; 837 reg &= ~MASK_HDMUTE;
824 else if (imac) 838 else if (imac1)
839 reg &= ~MASK_PAROUT1;
840 else if (imac2)
825 reg |= MASK_PAROUT1; 841 reg |= MASK_PAROUT1;
826 else 842 else
827 reg &= ~MASK_SPKMUTE; 843 reg &= ~MASK_SPKMUTE;
@@ -850,9 +866,13 @@ snd_pmac_awacs_init(struct snd_pmac *chip)
850{ 866{
851 int pm7500 = IS_PM7500; 867 int pm7500 = IS_PM7500;
852 int beige = IS_BEIGE; 868 int beige = IS_BEIGE;
869 int g4agp = IS_G4AGP;
870 int imac;
853 int err, vol; 871 int err, vol;
854 872
855 imac = IS_IMAC; 873 imac1 = IS_IMAC1;
874 imac2 = IS_IMAC2;
875 imac = imac1 || imac2;
856 /* looks like MASK_GAINLINE triggers something, so we set here 876 /* looks like MASK_GAINLINE triggers something, so we set here
857 * as start-up 877 * as start-up
858 */ 878 */
@@ -939,7 +959,7 @@ snd_pmac_awacs_init(struct snd_pmac *chip)
939 snd_pmac_awacs_mixers); 959 snd_pmac_awacs_mixers);
940 if (err < 0) 960 if (err < 0)
941 return err; 961 return err;
942 if (beige) 962 if (beige || g4agp)
943 ; 963 ;
944 else if (chip->model == PMAC_SCREAMER) 964 else if (chip->model == PMAC_SCREAMER)
945 err = build_mixers(chip, ARRAY_SIZE(snd_pmac_screamer_mixers2), 965 err = build_mixers(chip, ARRAY_SIZE(snd_pmac_screamer_mixers2),
@@ -961,13 +981,17 @@ snd_pmac_awacs_init(struct snd_pmac *chip)
961 err = build_mixers(chip, 981 err = build_mixers(chip,
962 ARRAY_SIZE(snd_pmac_screamer_mixers_imac), 982 ARRAY_SIZE(snd_pmac_screamer_mixers_imac),
963 snd_pmac_screamer_mixers_imac); 983 snd_pmac_screamer_mixers_imac);
984 else if (g4agp)
985 err = build_mixers(chip,
986 ARRAY_SIZE(snd_pmac_screamer_mixers_g4agp),
987 snd_pmac_screamer_mixers_g4agp);
964 else 988 else
965 err = build_mixers(chip, 989 err = build_mixers(chip,
966 ARRAY_SIZE(snd_pmac_awacs_mixers_pmac), 990 ARRAY_SIZE(snd_pmac_awacs_mixers_pmac),
967 snd_pmac_awacs_mixers_pmac); 991 snd_pmac_awacs_mixers_pmac);
968 if (err < 0) 992 if (err < 0)
969 return err; 993 return err;
970 chip->master_sw_ctl = snd_ctl_new1((pm7500 || imac) 994 chip->master_sw_ctl = snd_ctl_new1((pm7500 || imac || g4agp)
971 ? &snd_pmac_awacs_master_sw_imac 995 ? &snd_pmac_awacs_master_sw_imac
972 : &snd_pmac_awacs_master_sw, chip); 996 : &snd_pmac_awacs_master_sw, chip);
973 err = snd_ctl_add(chip->card, chip->master_sw_ctl); 997 err = snd_ctl_add(chip->card, chip->master_sw_ctl);
@@ -1004,15 +1028,17 @@ snd_pmac_awacs_init(struct snd_pmac *chip)
1004 snd_pmac_awacs_speaker_vol); 1028 snd_pmac_awacs_speaker_vol);
1005 if (err < 0) 1029 if (err < 0)
1006 return err; 1030 return err;
1007 chip->speaker_sw_ctl = snd_ctl_new1(imac 1031 chip->speaker_sw_ctl = snd_ctl_new1(imac1
1008 ? &snd_pmac_awacs_speaker_sw_imac 1032 ? &snd_pmac_awacs_speaker_sw_imac1
1033 : imac2
1034 ? &snd_pmac_awacs_speaker_sw_imac2
1009 : &snd_pmac_awacs_speaker_sw, chip); 1035 : &snd_pmac_awacs_speaker_sw, chip);
1010 err = snd_ctl_add(chip->card, chip->speaker_sw_ctl); 1036 err = snd_ctl_add(chip->card, chip->speaker_sw_ctl);
1011 if (err < 0) 1037 if (err < 0)
1012 return err; 1038 return err;
1013 } 1039 }
1014 1040
1015 if (beige) 1041 if (beige || g4agp)
1016 err = build_mixers(chip, 1042 err = build_mixers(chip,
1017 ARRAY_SIZE(snd_pmac_screamer_mic_boost_beige), 1043 ARRAY_SIZE(snd_pmac_screamer_mic_boost_beige),
1018 snd_pmac_screamer_mic_boost_beige); 1044 snd_pmac_screamer_mic_boost_beige);
diff --git a/sound/soc/at32/at32-pcm.c b/sound/soc/at32/at32-pcm.c
index 435f1daf177..c83584f989a 100644
--- a/sound/soc/at32/at32-pcm.c
+++ b/sound/soc/at32/at32-pcm.c
@@ -434,7 +434,8 @@ static int at32_pcm_suspend(struct platform_device *pdev,
434 params = prtd->params; 434 params = prtd->params;
435 435
436 /* Disable the PDC and save the PDC registers */ 436 /* Disable the PDC and save the PDC registers */
437 ssc_writex(params->ssc->regs, PDC_PTCR, params->mask->pdc_disable); 437 ssc_writex(params->ssc->regs, ATMEL_PDC_PTCR,
438 params->mask->pdc_disable);
438 439
439 prtd->pdc_xpr_save = ssc_readx(params->ssc->regs, params->pdc->xpr); 440 prtd->pdc_xpr_save = ssc_readx(params->ssc->regs, params->pdc->xpr);
440 prtd->pdc_xcr_save = ssc_readx(params->ssc->regs, params->pdc->xcr); 441 prtd->pdc_xcr_save = ssc_readx(params->ssc->regs, params->pdc->xcr);
@@ -464,7 +465,7 @@ static int at32_pcm_resume(struct platform_device *pdev,
464 ssc_writex(params->ssc->regs, params->pdc->xnpr, prtd->pdc_xnpr_save); 465 ssc_writex(params->ssc->regs, params->pdc->xnpr, prtd->pdc_xnpr_save);
465 ssc_writex(params->ssc->regs, params->pdc->xncr, prtd->pdc_xncr_save); 466 ssc_writex(params->ssc->regs, params->pdc->xncr, prtd->pdc_xncr_save);
466 467
467 ssc_writex(params->ssc->regs, PDC_PTCR, params->mask->pdc_enable); 468 ssc_writex(params->ssc->regs, ATMEL_PDC_PTCR, params->mask->pdc_enable);
468 return 0; 469 return 0;
469} 470}
470#else /* CONFIG_PM */ 471#else /* CONFIG_PM */
diff --git a/sound/soc/at91/eti_b1_wm8731.c b/sound/soc/at91/eti_b1_wm8731.c
index b081e83766b..b81d6b2cfa1 100644
--- a/sound/soc/at91/eti_b1_wm8731.c
+++ b/sound/soc/at91/eti_b1_wm8731.c
@@ -22,7 +22,6 @@
22 22
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/moduleparam.h> 24#include <linux/moduleparam.h>
25#include <linux/version.h>
26#include <linux/kernel.h> 25#include <linux/kernel.h>
27#include <linux/clk.h> 26#include <linux/clk.h>
28#include <linux/timer.h> 27#include <linux/timer.h>
diff --git a/sound/soc/codecs/ak4535.c b/sound/soc/codecs/ak4535.c
index b26003c4f3e..7da9f467b7b 100644
--- a/sound/soc/codecs/ak4535.c
+++ b/sound/soc/codecs/ak4535.c
@@ -562,10 +562,9 @@ static int ak4535_codec_probe(struct i2c_adapter *adap, int addr, int kind)
562 client_template.addr = addr; 562 client_template.addr = addr;
563 563
564 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); 564 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL);
565 if (i2c == NULL) { 565 if (i2c == NULL)
566 kfree(codec);
567 return -ENOMEM; 566 return -ENOMEM;
568 } 567
569 i2c_set_clientdata(i2c, codec); 568 i2c_set_clientdata(i2c, codec);
570 codec->control_data = i2c; 569 codec->control_data = i2c;
571 570
@@ -583,7 +582,6 @@ static int ak4535_codec_probe(struct i2c_adapter *adap, int addr, int kind)
583 return ret; 582 return ret;
584 583
585err: 584err:
586 kfree(codec);
587 kfree(i2c); 585 kfree(i2c);
588 return ret; 586 return ret;
589} 587}
@@ -660,6 +658,11 @@ static int ak4535_probe(struct platform_device *pdev)
660#else 658#else
661 /* Add other interfaces here */ 659 /* Add other interfaces here */
662#endif 660#endif
661
662 if (ret != 0) {
663 kfree(codec->private_data);
664 kfree(codec);
665 }
663 return ret; 666 return ret;
664} 667}
665 668
diff --git a/sound/soc/codecs/cs4270.c b/sound/soc/codecs/cs4270.c
index 9deb8c74fdf..0bbd94501d7 100644
--- a/sound/soc/codecs/cs4270.c
+++ b/sound/soc/codecs/cs4270.c
@@ -490,34 +490,7 @@ static int cs4270_mute(struct snd_soc_dai *dai, int mute)
490 490
491#endif 491#endif
492 492
493static int cs4270_i2c_probe(struct i2c_adapter *adap, int addr, int kind); 493static int cs4270_i2c_probe(struct i2c_client *, const struct i2c_device_id *);
494
495/*
496 * Notify the driver that a new I2C bus has been found.
497 *
498 * This function is called for each I2C bus in the system. The function
499 * then asks the I2C subsystem to probe that bus at the addresses on which
500 * our device (the CS4270) could exist. If a device is found at one of
501 * those addresses, then our probe function (cs4270_i2c_probe) is called.
502 */
503static int cs4270_i2c_attach(struct i2c_adapter *adapter)
504{
505 return i2c_probe(adapter, &addr_data, cs4270_i2c_probe);
506}
507
508static int cs4270_i2c_detach(struct i2c_client *client)
509{
510 struct snd_soc_codec *codec = i2c_get_clientdata(client);
511
512 i2c_detach_client(client);
513 codec->control_data = NULL;
514
515 kfree(codec->reg_cache);
516 codec->reg_cache = NULL;
517
518 kfree(client);
519 return 0;
520}
521 494
522/* A list of non-DAPM controls that the CS4270 supports */ 495/* A list of non-DAPM controls that the CS4270 supports */
523static const struct snd_kcontrol_new cs4270_snd_controls[] = { 496static const struct snd_kcontrol_new cs4270_snd_controls[] = {
@@ -525,14 +498,19 @@ static const struct snd_kcontrol_new cs4270_snd_controls[] = {
525 CS4270_VOLA, CS4270_VOLB, 0, 0xFF, 1) 498 CS4270_VOLA, CS4270_VOLB, 0, 0xFF, 1)
526}; 499};
527 500
501static const struct i2c_device_id cs4270_id[] = {
502 {"cs4270", 0},
503 {}
504};
505MODULE_DEVICE_TABLE(i2c, cs4270_id);
506
528static struct i2c_driver cs4270_i2c_driver = { 507static struct i2c_driver cs4270_i2c_driver = {
529 .driver = { 508 .driver = {
530 .name = "CS4270 I2C", 509 .name = "CS4270 I2C",
531 .owner = THIS_MODULE, 510 .owner = THIS_MODULE,
532 }, 511 },
533 .id = I2C_DRIVERID_CS4270, 512 .id_table = cs4270_id,
534 .attach_adapter = cs4270_i2c_attach, 513 .probe = cs4270_i2c_probe,
535 .detach_client = cs4270_i2c_detach,
536}; 514};
537 515
538/* 516/*
@@ -561,11 +539,11 @@ static struct snd_soc_device *cs4270_socdev;
561 * Note: snd_soc_new_pcms() must be called before this function can be called, 539 * Note: snd_soc_new_pcms() must be called before this function can be called,
562 * because of snd_ctl_add(). 540 * because of snd_ctl_add().
563 */ 541 */
564static int cs4270_i2c_probe(struct i2c_adapter *adapter, int addr, int kind) 542static int cs4270_i2c_probe(struct i2c_client *i2c_client,
543 const struct i2c_device_id *id)
565{ 544{
566 struct snd_soc_device *socdev = cs4270_socdev; 545 struct snd_soc_device *socdev = cs4270_socdev;
567 struct snd_soc_codec *codec = socdev->codec; 546 struct snd_soc_codec *codec = socdev->codec;
568 struct i2c_client *i2c_client = NULL;
569 int i; 547 int i;
570 int ret = 0; 548 int ret = 0;
571 549
@@ -578,12 +556,6 @@ static int cs4270_i2c_probe(struct i2c_adapter *adapter, int addr, int kind)
578 556
579 /* Note: codec_dai->codec is NULL here */ 557 /* Note: codec_dai->codec is NULL here */
580 558
581 i2c_client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
582 if (!i2c_client) {
583 printk(KERN_ERR "cs4270: could not allocate I2C client\n");
584 return -ENOMEM;
585 }
586
587 codec->reg_cache = kzalloc(CS4270_NUMREGS, GFP_KERNEL); 559 codec->reg_cache = kzalloc(CS4270_NUMREGS, GFP_KERNEL);
588 if (!codec->reg_cache) { 560 if (!codec->reg_cache) {
589 printk(KERN_ERR "cs4270: could not allocate register cache\n"); 561 printk(KERN_ERR "cs4270: could not allocate register cache\n");
@@ -591,13 +563,6 @@ static int cs4270_i2c_probe(struct i2c_adapter *adapter, int addr, int kind)
591 goto error; 563 goto error;
592 } 564 }
593 565
594 i2c_set_clientdata(i2c_client, codec);
595 strcpy(i2c_client->name, "CS4270");
596
597 i2c_client->driver = &cs4270_i2c_driver;
598 i2c_client->adapter = adapter;
599 i2c_client->addr = addr;
600
601 /* Verify that we have a CS4270 */ 566 /* Verify that we have a CS4270 */
602 567
603 ret = i2c_smbus_read_byte_data(i2c_client, CS4270_CHIPID); 568 ret = i2c_smbus_read_byte_data(i2c_client, CS4270_CHIPID);
@@ -612,18 +577,10 @@ static int cs4270_i2c_probe(struct i2c_adapter *adapter, int addr, int kind)
612 goto error; 577 goto error;
613 } 578 }
614 579
615 printk(KERN_INFO "cs4270: found device at I2C address %X\n", addr); 580 printk(KERN_INFO "cs4270: found device at I2C address %X\n",
581 i2c_client->addr);
616 printk(KERN_INFO "cs4270: hardware revision %X\n", ret & 0xF); 582 printk(KERN_INFO "cs4270: hardware revision %X\n", ret & 0xF);
617 583
618 /* Tell the I2C layer a new client has arrived */
619
620 ret = i2c_attach_client(i2c_client);
621 if (ret) {
622 printk(KERN_ERR "cs4270: could not attach codec, "
623 "I2C address %x, error code %i\n", addr, ret);
624 goto error;
625 }
626
627 codec->control_data = i2c_client; 584 codec->control_data = i2c_client;
628 codec->read = cs4270_read_reg_cache; 585 codec->read = cs4270_read_reg_cache;
629 codec->write = cs4270_i2c_write; 586 codec->write = cs4270_i2c_write;
@@ -648,20 +605,17 @@ static int cs4270_i2c_probe(struct i2c_adapter *adapter, int addr, int kind)
648 goto error; 605 goto error;
649 } 606 }
650 607
608 i2c_set_clientdata(i2c_client, codec);
609
651 return 0; 610 return 0;
652 611
653error: 612error:
654 if (codec->control_data) { 613 codec->control_data = NULL;
655 i2c_detach_client(i2c_client);
656 codec->control_data = NULL;
657 }
658 614
659 kfree(codec->reg_cache); 615 kfree(codec->reg_cache);
660 codec->reg_cache = NULL; 616 codec->reg_cache = NULL;
661 codec->reg_cache_size = 0; 617 codec->reg_cache_size = 0;
662 618
663 kfree(i2c_client);
664
665 return ret; 619 return ret;
666} 620}
667 621
@@ -727,7 +681,7 @@ static int cs4270_probe(struct platform_device *pdev)
727 ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1); 681 ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
728 if (ret < 0) { 682 if (ret < 0) {
729 printk(KERN_ERR "cs4270: failed to create PCMs\n"); 683 printk(KERN_ERR "cs4270: failed to create PCMs\n");
730 return ret; 684 goto error_free_codec;
731 } 685 }
732 686
733#ifdef USE_I2C 687#ifdef USE_I2C
@@ -736,8 +690,7 @@ static int cs4270_probe(struct platform_device *pdev)
736 ret = i2c_add_driver(&cs4270_i2c_driver); 690 ret = i2c_add_driver(&cs4270_i2c_driver);
737 if (ret) { 691 if (ret) {
738 printk(KERN_ERR "cs4270: failed to attach driver"); 692 printk(KERN_ERR "cs4270: failed to attach driver");
739 snd_soc_free_pcms(socdev); 693 goto error_free_pcms;
740 return ret;
741 } 694 }
742 695
743 /* Did we find a CS4270 on the I2C bus? */ 696 /* Did we find a CS4270 on the I2C bus? */
@@ -759,10 +712,23 @@ static int cs4270_probe(struct platform_device *pdev)
759 ret = snd_soc_register_card(socdev); 712 ret = snd_soc_register_card(socdev);
760 if (ret < 0) { 713 if (ret < 0) {
761 printk(KERN_ERR "cs4270: failed to register card\n"); 714 printk(KERN_ERR "cs4270: failed to register card\n");
762 snd_soc_free_pcms(socdev); 715 goto error_del_driver;
763 return ret;
764 } 716 }
765 717
718 return 0;
719
720error_del_driver:
721#ifdef USE_I2C
722 i2c_del_driver(&cs4270_i2c_driver);
723
724error_free_pcms:
725#endif
726 snd_soc_free_pcms(socdev);
727
728error_free_codec:
729 kfree(socdev->codec);
730 socdev->codec = NULL;
731
766 return ret; 732 return ret;
767} 733}
768 734
@@ -773,8 +739,7 @@ static int cs4270_remove(struct platform_device *pdev)
773 snd_soc_free_pcms(socdev); 739 snd_soc_free_pcms(socdev);
774 740
775#ifdef USE_I2C 741#ifdef USE_I2C
776 if (socdev->codec->control_data) 742 i2c_del_driver(&cs4270_i2c_driver);
777 i2c_del_driver(&cs4270_i2c_driver);
778#endif 743#endif
779 744
780 kfree(socdev->codec); 745 kfree(socdev->codec);
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
index b1dce5f459d..5f9abb19943 100644
--- a/sound/soc/codecs/tlv320aic3x.c
+++ b/sound/soc/codecs/tlv320aic3x.c
@@ -1199,10 +1199,9 @@ static int aic3x_codec_probe(struct i2c_adapter *adap, int addr, int kind)
1199 client_template.addr = addr; 1199 client_template.addr = addr;
1200 1200
1201 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); 1201 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL);
1202 if (i2c == NULL) { 1202 if (i2c == NULL)
1203 kfree(codec);
1204 return -ENOMEM; 1203 return -ENOMEM;
1205 } 1204
1206 i2c_set_clientdata(i2c, codec); 1205 i2c_set_clientdata(i2c, codec);
1207 codec->control_data = i2c; 1206 codec->control_data = i2c;
1208 1207
@@ -1221,7 +1220,6 @@ static int aic3x_codec_probe(struct i2c_adapter *adap, int addr, int kind)
1221 return ret; 1220 return ret;
1222 1221
1223err: 1222err:
1224 kfree(codec);
1225 kfree(i2c); 1223 kfree(i2c);
1226 return ret; 1224 return ret;
1227} 1225}
@@ -1302,6 +1300,11 @@ static int aic3x_probe(struct platform_device *pdev)
1302#else 1300#else
1303 /* Add other interfaces here */ 1301 /* Add other interfaces here */
1304#endif 1302#endif
1303
1304 if (ret != 0) {
1305 kfree(codec->private_data);
1306 kfree(codec);
1307 }
1305 return ret; 1308 return ret;
1306} 1309}
1307 1310
diff --git a/sound/soc/codecs/uda1380.c b/sound/soc/codecs/uda1380.c
index a52d6d9e007..807318fbdc8 100644
--- a/sound/soc/codecs/uda1380.c
+++ b/sound/soc/codecs/uda1380.c
@@ -729,10 +729,9 @@ static int uda1380_codec_probe(struct i2c_adapter *adap, int addr, int kind)
729 client_template.addr = addr; 729 client_template.addr = addr;
730 730
731 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); 731 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL);
732 if (i2c == NULL) { 732 if (i2c == NULL)
733 kfree(codec);
734 return -ENOMEM; 733 return -ENOMEM;
735 } 734
736 i2c_set_clientdata(i2c, codec); 735 i2c_set_clientdata(i2c, codec);
737 codec->control_data = i2c; 736 codec->control_data = i2c;
738 737
@@ -750,7 +749,6 @@ static int uda1380_codec_probe(struct i2c_adapter *adap, int addr, int kind)
750 return ret; 749 return ret;
751 750
752err: 751err:
753 kfree(codec);
754 kfree(i2c); 752 kfree(i2c);
755 return ret; 753 return ret;
756} 754}
@@ -817,6 +815,9 @@ static int uda1380_probe(struct platform_device *pdev)
817#else 815#else
818 /* Add other interfaces here */ 816 /* Add other interfaces here */
819#endif 817#endif
818
819 if (ret != 0)
820 kfree(codec);
820 return ret; 821 return ret;
821} 822}
822 823
diff --git a/sound/soc/codecs/wm8510.c b/sound/soc/codecs/wm8510.c
index 67325fd9544..3d998e6a997 100644
--- a/sound/soc/codecs/wm8510.c
+++ b/sound/soc/codecs/wm8510.c
@@ -693,10 +693,9 @@ static int wm8510_codec_probe(struct i2c_adapter *adap, int addr, int kind)
693 client_template.addr = addr; 693 client_template.addr = addr;
694 694
695 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); 695 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL);
696 if (i2c == NULL) { 696 if (i2c == NULL)
697 kfree(codec);
698 return -ENOMEM; 697 return -ENOMEM;
699 } 698
700 i2c_set_clientdata(i2c, codec); 699 i2c_set_clientdata(i2c, codec);
701 codec->control_data = i2c; 700 codec->control_data = i2c;
702 701
@@ -714,7 +713,6 @@ static int wm8510_codec_probe(struct i2c_adapter *adap, int addr, int kind)
714 return ret; 713 return ret;
715 714
716err: 715err:
717 kfree(codec);
718 kfree(i2c); 716 kfree(i2c);
719 return ret; 717 return ret;
720} 718}
@@ -782,6 +780,9 @@ static int wm8510_probe(struct platform_device *pdev)
782#else 780#else
783 /* Add other interfaces here */ 781 /* Add other interfaces here */
784#endif 782#endif
783
784 if (ret != 0)
785 kfree(codec);
785 return ret; 786 return ret;
786} 787}
787 788
diff --git a/sound/soc/codecs/wm8731.c b/sound/soc/codecs/wm8731.c
index 369d39c3f74..9402fcaf04f 100644
--- a/sound/soc/codecs/wm8731.c
+++ b/sound/soc/codecs/wm8731.c
@@ -596,10 +596,9 @@ static int wm8731_codec_probe(struct i2c_adapter *adap, int addr, int kind)
596 client_template.addr = addr; 596 client_template.addr = addr;
597 597
598 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); 598 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL);
599 if (i2c == NULL) { 599 if (i2c == NULL)
600 kfree(codec);
601 return -ENOMEM; 600 return -ENOMEM;
602 } 601
603 i2c_set_clientdata(i2c, codec); 602 i2c_set_clientdata(i2c, codec);
604 codec->control_data = i2c; 603 codec->control_data = i2c;
605 604
@@ -617,7 +616,6 @@ static int wm8731_codec_probe(struct i2c_adapter *adap, int addr, int kind)
617 return ret; 616 return ret;
618 617
619err: 618err:
620 kfree(codec);
621 kfree(i2c); 619 kfree(i2c);
622 return ret; 620 return ret;
623} 621}
@@ -693,6 +691,11 @@ static int wm8731_probe(struct platform_device *pdev)
693#else 691#else
694 /* Add other interfaces here */ 692 /* Add other interfaces here */
695#endif 693#endif
694
695 if (ret != 0) {
696 kfree(codec->private_data);
697 kfree(codec);
698 }
696 return ret; 699 return ret;
697} 700}
698 701
diff --git a/sound/soc/codecs/wm8750.c b/sound/soc/codecs/wm8750.c
index c6a8edf302a..dd1f55404b2 100644
--- a/sound/soc/codecs/wm8750.c
+++ b/sound/soc/codecs/wm8750.c
@@ -869,10 +869,9 @@ static int wm8750_codec_probe(struct i2c_adapter *adap, int addr, int kind)
869 client_template.addr = addr; 869 client_template.addr = addr;
870 870
871 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); 871 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL);
872 if (i2c == NULL) { 872 if (i2c == NULL)
873 kfree(codec);
874 return -ENOMEM; 873 return -ENOMEM;
875 } 874
876 i2c_set_clientdata(i2c, codec); 875 i2c_set_clientdata(i2c, codec);
877 codec->control_data = i2c; 876 codec->control_data = i2c;
878 877
@@ -890,7 +889,6 @@ static int wm8750_codec_probe(struct i2c_adapter *adap, int addr, int kind)
890 return ret; 889 return ret;
891 890
892err: 891err:
893 kfree(codec);
894 kfree(i2c); 892 kfree(i2c);
895 return ret; 893 return ret;
896} 894}
@@ -966,6 +964,10 @@ static int wm8750_probe(struct platform_device *pdev)
966 /* Add other interfaces here */ 964 /* Add other interfaces here */
967#endif 965#endif
968 966
967 if (ret != 0) {
968 kfree(codec->private_data);
969 kfree(codec);
970 }
969 return ret; 971 return ret;
970} 972}
971 973
diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c
index 8604809f0c3..e873414840c 100644
--- a/sound/soc/codecs/wm8753.c
+++ b/sound/soc/codecs/wm8753.c
@@ -34,7 +34,6 @@
34 34
35#include <linux/module.h> 35#include <linux/module.h>
36#include <linux/moduleparam.h> 36#include <linux/moduleparam.h>
37#include <linux/version.h>
38#include <linux/kernel.h> 37#include <linux/kernel.h>
39#include <linux/init.h> 38#include <linux/init.h>
40#include <linux/delay.h> 39#include <linux/delay.h>
@@ -584,7 +583,7 @@ static const struct snd_soc_dapm_route audio_map[] = {
584 583
585 /* out 4 */ 584 /* out 4 */
586 {"Out4 Mux", "VREF", "VREF"}, 585 {"Out4 Mux", "VREF", "VREF"},
587 {"Out4 Mux", "Capture ST", "Capture ST Mixer"}, 586 {"Out4 Mux", "Capture ST", "Playback Mixer"},
588 {"Out4 Mux", "LOUT2", "LOUT2"}, 587 {"Out4 Mux", "LOUT2", "LOUT2"},
589 {"Out 4", NULL, "Out4 Mux"}, 588 {"Out 4", NULL, "Out4 Mux"},
590 {"OUT4", NULL, "Out 4"}, 589 {"OUT4", NULL, "Out 4"},
@@ -608,7 +607,7 @@ static const struct snd_soc_dapm_route audio_map[] = {
608 /* Capture Right Mux */ 607 /* Capture Right Mux */
609 {"Capture Right Mux", "PGA", "Right Capture Volume"}, 608 {"Capture Right Mux", "PGA", "Right Capture Volume"},
610 {"Capture Right Mux", "Line or RXP-RXN", "Line Right Mux"}, 609 {"Capture Right Mux", "Line or RXP-RXN", "Line Right Mux"},
611 {"Capture Right Mux", "Sidetone", "Capture ST Mixer"}, 610 {"Capture Right Mux", "Sidetone", "Playback Mixer"},
612 611
613 /* Mono Capture mixer-mux */ 612 /* Mono Capture mixer-mux */
614 {"Capture Right Mixer", "Stereo", "Capture Right Mux"}, 613 {"Capture Right Mixer", "Stereo", "Capture Right Mux"},
@@ -1661,10 +1660,9 @@ static int wm8753_codec_probe(struct i2c_adapter *adap, int addr, int kind)
1661 client_template.addr = addr; 1660 client_template.addr = addr;
1662 1661
1663 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); 1662 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL);
1664 if (!i2c) { 1663 if (!i2c)
1665 kfree(codec);
1666 return -ENOMEM; 1664 return -ENOMEM;
1667 } 1665
1668 i2c_set_clientdata(i2c, codec); 1666 i2c_set_clientdata(i2c, codec);
1669 codec->control_data = i2c; 1667 codec->control_data = i2c;
1670 1668
@@ -1683,7 +1681,6 @@ static int wm8753_codec_probe(struct i2c_adapter *adap, int addr, int kind)
1683 return ret; 1681 return ret;
1684 1682
1685err: 1683err:
1686 kfree(codec);
1687 kfree(i2c); 1684 kfree(i2c);
1688 return ret; 1685 return ret;
1689} 1686}
@@ -1760,6 +1757,11 @@ static int wm8753_probe(struct platform_device *pdev)
1760#else 1757#else
1761 /* Add other interfaces here */ 1758 /* Add other interfaces here */
1762#endif 1759#endif
1760
1761 if (ret != 0) {
1762 kfree(codec->private_data);
1763 kfree(codec);
1764 }
1763 return ret; 1765 return ret;
1764} 1766}
1765 1767
diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c
index e44153fa38d..dd995ef448b 100644
--- a/sound/soc/codecs/wm8990.c
+++ b/sound/soc/codecs/wm8990.c
@@ -1500,10 +1500,9 @@ static int wm8990_codec_probe(struct i2c_adapter *adap, int addr, int kind)
1500 client_template.addr = addr; 1500 client_template.addr = addr;
1501 1501
1502 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); 1502 i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL);
1503 if (i2c == NULL) { 1503 if (i2c == NULL)
1504 kfree(codec);
1505 return -ENOMEM; 1504 return -ENOMEM;
1506 } 1505
1507 i2c_set_clientdata(i2c, codec); 1506 i2c_set_clientdata(i2c, codec);
1508 codec->control_data = i2c; 1507 codec->control_data = i2c;
1509 1508
@@ -1521,7 +1520,6 @@ static int wm8990_codec_probe(struct i2c_adapter *adap, int addr, int kind)
1521 return ret; 1520 return ret;
1522 1521
1523err: 1522err:
1524 kfree(codec);
1525 kfree(i2c); 1523 kfree(i2c);
1526 return ret; 1524 return ret;
1527} 1525}
@@ -1595,6 +1593,11 @@ static int wm8990_probe(struct platform_device *pdev)
1595#else 1593#else
1596 /* Add other interfaces here */ 1594 /* Add other interfaces here */
1597#endif 1595#endif
1596
1597 if (ret != 0) {
1598 kfree(codec->private_data);
1599 kfree(codec);
1600 }
1598 return ret; 1601 return ret;
1599} 1602}
1600 1603
diff --git a/sound/soc/codecs/wm9712.c b/sound/soc/codecs/wm9712.c
index 1fb7f9a7aec..2f1c91b1d55 100644
--- a/sound/soc/codecs/wm9712.c
+++ b/sound/soc/codecs/wm9712.c
@@ -13,7 +13,6 @@
13 13
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/version.h>
17#include <linux/kernel.h> 16#include <linux/kernel.h>
18#include <linux/device.h> 17#include <linux/device.h>
19#include <sound/core.h> 18#include <sound/core.h>
diff --git a/sound/soc/omap/n810.c b/sound/soc/omap/n810.c
index 7694621ec40..87d0ed01f65 100644
--- a/sound/soc/omap/n810.c
+++ b/sound/soc/omap/n810.c
@@ -329,12 +329,14 @@ static int __init n810_soc_init(void)
329 sys_clkout2_src = clk_get(dev, "sys_clkout2_src"); 329 sys_clkout2_src = clk_get(dev, "sys_clkout2_src");
330 if (IS_ERR(sys_clkout2_src)) { 330 if (IS_ERR(sys_clkout2_src)) {
331 dev_err(dev, "Could not get sys_clkout2_src clock\n"); 331 dev_err(dev, "Could not get sys_clkout2_src clock\n");
332 return -ENODEV; 332 err = PTR_ERR(sys_clkout2_src);
333 goto err2;
333 } 334 }
334 sys_clkout2 = clk_get(dev, "sys_clkout2"); 335 sys_clkout2 = clk_get(dev, "sys_clkout2");
335 if (IS_ERR(sys_clkout2)) { 336 if (IS_ERR(sys_clkout2)) {
336 dev_err(dev, "Could not get sys_clkout2\n"); 337 dev_err(dev, "Could not get sys_clkout2\n");
337 goto err1; 338 err = PTR_ERR(sys_clkout2);
339 goto err3;
338 } 340 }
339 /* 341 /*
340 * Configure 12 MHz output on SYS_CLKOUT2. Therefore we must use 342 * Configure 12 MHz output on SYS_CLKOUT2. Therefore we must use
@@ -343,7 +345,8 @@ static int __init n810_soc_init(void)
343 func96m_clk = clk_get(dev, "func_96m_ck"); 345 func96m_clk = clk_get(dev, "func_96m_ck");
344 if (IS_ERR(func96m_clk)) { 346 if (IS_ERR(func96m_clk)) {
345 dev_err(dev, "Could not get func 96M clock\n"); 347 dev_err(dev, "Could not get func 96M clock\n");
346 goto err2; 348 err = PTR_ERR(func96m_clk);
349 goto err4;
347 } 350 }
348 clk_set_parent(sys_clkout2_src, func96m_clk); 351 clk_set_parent(sys_clkout2_src, func96m_clk);
349 clk_set_rate(sys_clkout2, 12000000); 352 clk_set_rate(sys_clkout2, 12000000);
@@ -356,20 +359,25 @@ static int __init n810_soc_init(void)
356 gpio_direction_output(N810_SPEAKER_AMP_GPIO, 0); 359 gpio_direction_output(N810_SPEAKER_AMP_GPIO, 0);
357 360
358 return 0; 361 return 0;
359err2: 362err4:
360 clk_put(sys_clkout2); 363 clk_put(sys_clkout2);
364err3:
365 clk_put(sys_clkout2_src);
366err2:
361 platform_device_del(n810_snd_device); 367 platform_device_del(n810_snd_device);
362err1: 368err1:
363 platform_device_put(n810_snd_device); 369 platform_device_put(n810_snd_device);
364 370
365 return err; 371 return err;
366
367} 372}
368 373
369static void __exit n810_soc_exit(void) 374static void __exit n810_soc_exit(void)
370{ 375{
371 gpio_free(N810_SPEAKER_AMP_GPIO); 376 gpio_free(N810_SPEAKER_AMP_GPIO);
372 gpio_free(N810_HEADSET_AMP_GPIO); 377 gpio_free(N810_HEADSET_AMP_GPIO);
378 clk_put(sys_clkout2_src);
379 clk_put(sys_clkout2);
380 clk_put(func96m_clk);
373 381
374 platform_device_unregister(n810_snd_device); 382 platform_device_unregister(n810_snd_device);
375} 383}
diff --git a/sound/soc/pxa/pxa2xx-i2s.c b/sound/soc/pxa/pxa2xx-i2s.c
index 8548818eea0..c796b188277 100644
--- a/sound/soc/pxa/pxa2xx-i2s.c
+++ b/sound/soc/pxa/pxa2xx-i2s.c
@@ -16,6 +16,7 @@
16#include <linux/device.h> 16#include <linux/device.h>
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/clk.h> 18#include <linux/clk.h>
19#include <linux/platform_device.h>
19#include <sound/core.h> 20#include <sound/core.h>
20#include <sound/pcm.h> 21#include <sound/pcm.h>
21#include <sound/initval.h> 22#include <sound/initval.h>
@@ -81,7 +82,6 @@ static int pxa2xx_i2s_startup(struct snd_pcm_substream *substream)
81 struct snd_soc_pcm_runtime *rtd = substream->private_data; 82 struct snd_soc_pcm_runtime *rtd = substream->private_data;
82 struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; 83 struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
83 84
84 clk_i2s = clk_get(NULL, "I2SCLK");
85 if (IS_ERR(clk_i2s)) 85 if (IS_ERR(clk_i2s))
86 return PTR_ERR(clk_i2s); 86 return PTR_ERR(clk_i2s);
87 87
@@ -152,6 +152,7 @@ static int pxa2xx_i2s_hw_params(struct snd_pcm_substream *substream,
152 pxa_gpio_mode(gpio_bus[pxa_i2s.master].tx); 152 pxa_gpio_mode(gpio_bus[pxa_i2s.master].tx);
153 pxa_gpio_mode(gpio_bus[pxa_i2s.master].frm); 153 pxa_gpio_mode(gpio_bus[pxa_i2s.master].frm);
154 pxa_gpio_mode(gpio_bus[pxa_i2s.master].clk); 154 pxa_gpio_mode(gpio_bus[pxa_i2s.master].clk);
155 BUG_ON(IS_ERR(clk_i2s));
155 clk_enable(clk_i2s); 156 clk_enable(clk_i2s);
156 pxa_i2s_wait(); 157 pxa_i2s_wait();
157 158
@@ -317,6 +318,43 @@ struct snd_soc_dai pxa_i2s_dai = {
317 318
318EXPORT_SYMBOL_GPL(pxa_i2s_dai); 319EXPORT_SYMBOL_GPL(pxa_i2s_dai);
319 320
321static int pxa2xx_i2s_probe(struct platform_device *dev)
322{
323 clk_i2s = clk_get(&dev->dev, "I2SCLK");
324 return IS_ERR(clk_i2s) ? PTR_ERR(clk_i2s) : 0;
325}
326
327static int __devexit pxa2xx_i2s_remove(struct platform_device *dev)
328{
329 clk_put(clk_i2s);
330 clk_i2s = ERR_PTR(-ENOENT);
331 return 0;
332}
333
334static struct platform_driver pxa2xx_i2s_driver = {
335 .probe = pxa2xx_i2s_probe,
336 .remove = __devexit_p(pxa2xx_i2s_remove),
337
338 .driver = {
339 .name = "pxa2xx-i2s",
340 .owner = THIS_MODULE,
341 },
342};
343
344static int __init pxa2xx_i2s_init(void)
345{
346 clk_i2s = ERR_PTR(-ENOENT);
347 return platform_driver_register(&pxa2xx_i2s_driver);
348}
349
350static void __exit pxa2xx_i2s_exit(void)
351{
352 platform_driver_unregister(&pxa2xx_i2s_driver);
353}
354
355module_init(pxa2xx_i2s_init);
356module_exit(pxa2xx_i2s_exit);
357
320/* Module information */ 358/* Module information */
321MODULE_AUTHOR("Liam Girdwood, liam.girdwood@wolfsonmicro.com, www.wolfsonmicro.com"); 359MODULE_AUTHOR("Liam Girdwood, liam.girdwood@wolfsonmicro.com, www.wolfsonmicro.com");
322MODULE_DESCRIPTION("pxa2xx I2S SoC Interface"); 360MODULE_DESCRIPTION("pxa2xx I2S SoC Interface");